'use strict' var css = require('css') var util = require('./lib/util') var validateItem = require('./lib/validator').validate var shorthandParser = require('./lib/shorthand-parser') // padding & margin shorthand parsing function convertLengthShorthand (rule, prop) { for (var i = 0; i < rule.declarations.length; i++) { var declaration = rule.declarations[i] if (declaration.property === prop) { var values = declaration.value.split(/\s+/) // values[0] = values[0] || 0 values[1] = values[1] || values[0] values[2] = values[2] || values[0] values[3] = values[3] || values[1] rule.declarations.splice(i, 1) rule.declarations.splice(i, 0, { type: 'declaration', property: prop + '-left', value: values[3], position: declaration.position }) rule.declarations.splice(i, 0, { type: 'declaration', property: prop + '-bottom', value: values[2], position: declaration.position }) rule.declarations.splice(i, 0, { type: 'declaration', property: prop + '-right', value: values[1], position: declaration.position }) rule.declarations.splice(i, 0, { type: 'declaration', property: prop + '-top', value: values[0], position: declaration.position }) // break } } } /** * mergeStyle * @param {*} object * @param {*} classNames * @param {*} preClassNames * @param {*} ruleResult * @param {*} prop * @param {*} index */ function mergeStyle (object, classNames, preClassNames, ruleResult, prop, index) { if (process.env.UNI_NVUE_STYLE_COMPILER !== 'uni-app') { object[classNames] = object[classNames] || {} object[classNames][prop] = ruleResult[prop] return } classNames = classNames.split('.').map(str => '.' + str).slice(1) var className = classNames.find(className => className in object) || classNames[0] // 假设选择器已经去重简化 preClassNames += classNames.filter(str => str !== className).sort().join('') var rules = object[className] = object[className] || {} var style = rules[preClassNames] = rules[preClassNames] || {} // 增加其他权重信息 style[prop] = [...ruleResult[prop], preClassNames.split('.').length - 1, index] } /** * Parse `