CssStyleRule.internal constructor

CssStyleRule.internal(
  1. CssStyleSheet parentStyleSheet,
  2. RuleSet node
)

Implementation

factory CssStyleRule.internal(
  CssStyleSheet parentStyleSheet,
  css.RuleSet node,
) {
  final selectorGroup = node.selectorGroup!;
  final selectorText = selectorGroup.span!.text;
  final priotizedSelectors = <_PriotizedSelector>[];
  for (var selector in selectorGroup.selectors) {
    priotizedSelectors.add(_PriotizedSelector(selector));
  }
  final styleDeclaration = _CssStyleDeclaration._();
  for (var declaration in node.declarationGroup.declarations) {
    if (declaration is css.Declaration) {
      final expression = declaration.expression!;
      styleDeclaration.setProperty(
        declaration.property,
        expression.span!.text,
      );
    }
  }
  return CssStyleRule._constructor(
    parentStyleSheet,
    selectorText,
    styleDeclaration,
    priotizedSelectors,
  );
}