fela-dom
Version:
Fela package for working with the DOM
50 lines (41 loc) • 1.17 kB
JavaScript
import { RULE_TYPE } from '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;
}
export default 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 !== RULE_TYPE) {
return {
_type: type,
style: textContent
};
}
var rules = getRules(sheet.cssRules);
return {
_type: type,
_media: media,
_support: support,
style: rules
};
}