cascadeMatchedStyleRules function
Implementation
CSSStyleDeclaration cascadeMatchedStyleRules(List<CSSStyleRule> rules) {
final declaration = CSSStyleDeclaration();
if (rules.isEmpty) return declaration;
final normalOrder = List<CSSStyleRule>.from(rules)
..sort((a, b) => compareStyleRulesForCascade(a, b, important: false));
for (final r in normalOrder) {
declaration.unionByImportance(r.declaration, important: false);
}
final importantOrder = List<CSSStyleRule>.from(rules)
..sort((a, b) => compareStyleRulesForCascade(a, b, important: true));
for (final r in importantOrder) {
declaration.unionByImportance(r.declaration, important: true);
}
return declaration;
}