fela-dom
Version:
Fela package for working with the DOM
57 lines (46 loc) • 1.29 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports["default"] = getStyleSheetStyle;
var _felaUtils = require("fela-utils");
function getRules(cssRules) {
var rules = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
for (var i = 0; i < cssRules.length; ++i) {
var rule = cssRules[i];
var selectorText = rule.selectorText,
conditionText = rule.conditionText,
style = rule.style;
if (conditionText) {
rules[conditionText] = getRules(rule.cssRules);
continue;
}
var key = cssRules.indexOf(rule) + '_' + selectorText;
rules[key] = {};
for (var j = 0; j < style.length; ++j) {
var property = style[j];
rules[key][property] = style[property];
}
}
return rules;
}
function getStyleSheetStyle(node) {
var media = node.media,
sheet = node.sheet,
textContent = node.textContent;
var type = node.getAttribute('data-fela-type');
var support = node.getAttribute('data-fela-support') || false;
if (type !== _felaUtils.RULE_TYPE) {
return {
_type: type,
style: textContent
};
}
var rules = getRules(sheet.cssRules);
return {
_type: type,
_media: media,
_support: support,
style: rules
};
}