void Populate(ICssRuleList rules) { foreach (var rule in rules) { children.Add(new CssRuleViewModel(rule)); } }
/// <summary> /// Gets the style rule with the provided selector text. /// </summary> /// <param name="rules">The rules to look in.</param> /// <param name="selectorText">The selector text to look for.</param> /// <param name="context">The context for normalizing the CSS selector.</param> /// <returns>The style rule, if any.</returns> public static ICssStyleRule GetStyleRuleWith(this ICssRuleList rules, String selectorText, IBrowsingContext context = null) { var styleRules = rules.OfType <ICssStyleRule>(); var parser = context?.GetService <ICssSelectorParser>(); var normalizedSelectorText = parser?.ParseSelector(selectorText)?.Text ?? selectorText; foreach (var rule in styleRules) { if (rule.SelectorText.Is(normalizedSelectorText)) { return(rule); } } return(null); }
/// <summary> /// Gets the styles matching the given render device. /// </summary> /// <param name="rules">The set of rules.</param> /// <param name="device">The render device.</param> /// <returns>The style rules.</returns> public static IEnumerable <ICssStyleRule> GetMatchingStyles(this ICssRuleList rules, IRenderDevice device) { foreach (var rule in rules) { if (rule.Type == CssRuleType.Media) { var media = (ICssMediaRule)rule; if (media.IsValid(device)) { var subrules = media.Rules.GetMatchingStyles(device); foreach (var subrule in subrules) { yield return(subrule); } } } else if (rule.Type == CssRuleType.Supports) { var support = (ICssSupportsRule)rule; if (support.IsValid(device)) { var subrules = support.Rules.GetMatchingStyles(device); foreach (var subrule in subrules) { yield return(subrule); } } } else if (rule.Type == CssRuleType.Style) { yield return((ICssStyleRule)rule); } } }
private IEnumerable <ICssStyleRule> GetRules(ICssRuleList rules) { foreach (var rule in rules) { if (rule.Type == CssRuleType.Media) { var media = (ICssMediaRule)rule; if (media.IsValid(_device)) { var subrules = GetRules(media.Rules); foreach (var subrule in subrules) { yield return(subrule); } } } else if (rule.Type == CssRuleType.Supports) { var support = (ICssSupportsRule)rule; if (support.IsValid(_device)) { var subrules = GetRules(support.Rules); foreach (var subrule in subrules) { yield return(subrule); } } } else if (rule.Type == CssRuleType.Style) { yield return((ICssStyleRule)rule); } } }
void Populate(ICssRuleList rules) { foreach (var rule in rules) children.Add(new CssRuleViewModel(rule)); }