import warning from 'tiny-warning'; var semiWithNl = /;\n/; /** * Naive CSS parser. * - Supports only rule body (no selectors) * - Requires semicolon and new line after the value (except of last line) * - No nested rules support */ var parse = function parse(cssText) { var style = {}; var split = cssText.split(semiWithNl); for (var i = 0; i < split.length; i++) { var decl = (split[i] || '').trim(); if (!decl) continue; var colonIndex = decl.indexOf(':'); if (colonIndex === -1) { process.env.NODE_ENV !== "production" ? warning(false, "[JSS] Malformed CSS string \"" + decl + "\"") : void 0; continue; } var prop = decl.substr(0, colonIndex).trim(); var value = decl.substr(colonIndex + 1).trim(); style[prop] = value; } return style; }; var onProcessRule = function onProcessRule(rule) { if (typeof rule.style === 'string') { rule.style = parse(rule.style); } }; function templatePlugin() { return { onProcessRule: onProcessRule }; } export default templatePlugin;