CssGroupingRule
Represents the CSSGroupingRule interface.
using AngleSharp.Parser.Css;
namespace AngleSharp.Dom.Css
{
internal abstract class CssGroupingRule : CssRule, ICssGroupingRule, ICssRule, IStyleFormattable
{
private readonly CssRuleList _rules;
public CssRuleList Rules => _rules;
ICssRuleList ICssGroupingRule.Rules {
get {
return _rules;
}
}
internal CssGroupingRule(CssRuleType type, CssParser parser)
: base(type, parser)
{
_rules = new CssRuleList();
}
public int Insert(string rule, int index)
{
CssRule value = base.Parser.ParseRule(rule);
_rules.Insert(value, index, base.Owner, this);
return index;
}
public void RemoveAt(int index)
{
_rules.RemoveAt(index);
}
internal void AddRule(CssRule rule)
{
if (rule != null)
_rules.Add(rule, base.Owner, this);
}
protected override void ReplaceWith(ICssRule rule)
{
CssGroupingRule cssGroupingRule = (CssGroupingRule)rule;
_rules.Clear();
_rules.Import(cssGroupingRule._rules, base.Owner, base.Parent);
}
}
}