UNPKG

@maskedeng-tom/ssrsx

Version:
62 lines 2.54 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.nestedStyleToString = void 0; const cssTypes_1 = require("./cssTypes"); const changeCase_1 = require("./changeCase"); //////////////////////////////////////////////////////////////////////////////// const convertToCssValue = (selector, value) => { if (typeof value === 'number') { const enableAppendPx = (cssTypes_1.ignorePixelStyle.indexOf((0, changeCase_1.kebabu2Camel)(selector)) < 0) && (cssTypes_1.ignorePixelStyle.indexOf(selector) < 0); return enableAppendPx ? `${value}px` : String(value); } return value; }; //////////////////////////////////////////////////////////////////////////////// const convertToCss = (selector, value) => { if (typeof value === 'string' || typeof value === 'number') { return `${(0, changeCase_1.camel2Kebabu)(selector)}:${convertToCssValue(selector, value)};`; } const styleValue = value.map(v => convertToCssValue(selector, v)).join((' ')); return `${(0, changeCase_1.camel2Kebabu)(selector)}:${styleValue};`; }; //////////////////////////////////////////////////////////////////////////////// const nestedStyleToStringCore = (sass) => { // if (typeof sass === 'string') { return sass; } const result = []; for (const key in sass) { const value = sass[key]; if (typeof value === 'boolean' || value === undefined || value === null) { continue; } if (Array.isArray(value)) { const values = []; for (const item of value) { if (item) { values.push(convertToCssValue(key, item)); } } result.push(convertToCss(key, values.join(' '))); } else if (typeof value === 'object') { result.push(`${key}{${nestedStyleToStringCore(value)}}`); } else if (typeof value === 'number') { result.push(convertToCss(key, value)); } else if (typeof value === 'string') { result.push(convertToCss(key, value)); } } // return result.join(''); }; //////////////////////////////////////////////////////////////////////////////// const nestedStyleToString = (sass, scope) => { const result = nestedStyleToStringCore(sass); return result.replace(/::v-scope/g, `[${scope}]`).replace(/::v-deep/g, `[${scope}]`); }; exports.nestedStyleToString = nestedStyleToString; //# sourceMappingURL=nestedStyleToString.js.map