scopeRule function

  1. @visibleForTesting
StyleRule scopeRule(
  1. StyleRule rule
)

Implementation

@visibleForTesting
StyleRule scopeRule(StyleRule rule) {
  return switch (rule) {
    NestedStyleRule(:final selector, :final ownStyles, :final children) => NestedStyleRule(
      _scopeSelector(selector),
      ownStyles,
      children.map(scopeRule).toList(),
    ),
    BlockStyleRule(:final selector, :final styles) => BlockStyleRule(
      selector: _scopeSelector(selector),
      styles: styles,
    ),
    // Recurse into at-rules because they don't have a selector of their own
    MediaStyleRule(:final query, :final rules) => MediaStyleRule(
      query: query,
      styles: rules.map(scopeRule).toList(),
    ),
    SupportsStyleRule(:final condition, :final rules) => SupportsStyleRule(
      condition: condition,
      styles: rules.map(scopeRule).toList(),
    ),
    LayerStyleRule(:final name, :final rules) => LayerStyleRule(
      name: name,
      styles: rules.map(scopeRule).toList(),
    ),
    _ => rule,
  };
}