UNPKG

@web-atoms/core

Version:
76 lines (75 loc) 2.28 kB
System.register(["../../style/StyleRule"], function (_export, _context) { "use strict"; var AtomStyleRules, styleId; function fromCamelToHyphen(input) { return input.replace(/([a-z])([A-Z])/g, "$1-$2").toLowerCase(); } function createStyleText(name, styles) { const styleList = []; const subclasses = []; for (const key in styles) { if (styles.hasOwnProperty(key)) { if (/^(\_\$\_|className$|toString$)/i.test(key)) { continue; } const element = styles[key]; if (element === undefined || element === null) { continue; } const keyName = fromCamelToHyphen(key); if (key === "subclasses") { const n = name; for (const subclassKey in element) { if (element.hasOwnProperty(subclassKey)) { const ve = element[subclassKey]; subclasses.push(...createStyleText(`${n}${subclassKey}`, ve)); } } } else { if (element.url) { styleList.push(`${keyName}: url(${element})`); } else { styleList.push(`${keyName}: ${element}`); } } } } const cname = fromCamelToHyphen(name); const styleClassName = `${cname}`; if (styleList.length) { return [`${styleClassName} {\r\n${styleList.join(";\r\n")}; }`, ...subclasses]; } return subclasses; } function CSS(style, selectorName) { let styleName = ""; if (style instanceof AtomStyleRules) { styleName = style.name || ""; if (styleName) { styleName = "-" + styleName; } style = style.style; } let className = selectorName; if (!selectorName) { className = `wa-style-${styleId++}${styleName}`; selectorName = `.${className}`; } const s = document.createElement("style"); s.id = selectorName; const list = createStyleText(selectorName, style); s.textContent = list.join("\r\n"); document.head.appendChild(s); return className; } _export("default", CSS); return { setters: [function (_styleStyleRule) { AtomStyleRules = _styleStyleRule.AtomStyleRules; }], execute: function () { styleId = 1; } }; }); //# sourceMappingURL=CSS.js.map