CSSKeyframesRule
Represents an @keyframes rule.
using AngleSharp.Css;
using System;
namespace AngleSharp.DOM.Css
{
[DOM("CSSKeyframesRule")]
public sealed class CSSKeyframesRule : CSSRule
{
internal const string RuleName = "keyframes";
private CSSRuleList _cssRules;
private string _name;
[DOM("name")]
public string Name {
get {
return _name;
}
set {
_name = value;
}
}
[DOM("cssRules")]
public CSSRuleList CssRules {
get {
return _cssRules;
}
}
internal CSSKeyframesRule()
{
_cssRules = new CSSRuleList();
_type = CssRuleType.Keyframes;
}
[DOM("appendRule")]
public CSSKeyframesRule AppendRule(string rule)
{
CSSKeyframeRule cSSKeyframeRule = CssParser.ParseKeyframeRule(rule, false);
cSSKeyframeRule.ParentStyleSheet = _parent;
cSSKeyframeRule.ParentRule = this;
_cssRules.InsertAt(_cssRules.Length, cSSKeyframeRule);
return this;
}
[DOM("deleteRule")]
public CSSKeyframesRule DeleteRule(string key)
{
for (int i = 0; i < _cssRules.Length; i++) {
if ((_cssRules[i] as CSSKeyframeRule).KeyText.Equals(key, StringComparison.OrdinalIgnoreCase)) {
_cssRules.RemoveAt(i);
break;
}
}
return this;
}
[DOM("findRule")]
public CSSKeyframeRule FindRule(string key)
{
for (int i = 0; i < _cssRules.Length; i++) {
CSSKeyframeRule cSSKeyframeRule = _cssRules[i] as CSSKeyframeRule;
if (cSSKeyframeRule.KeyText.Equals(key, StringComparison.OrdinalIgnoreCase))
return cSSKeyframeRule;
}
return null;
}
public override string ToCss()
{
return $"""{_name}""{Environment.NewLine}{_cssRules.ToCss()}""";
}
}
}