CssKeyframeRule
Represents a CSS @keyframe rule.
using AngleSharp.Parser.Css;
using System.IO;
using System.Linq;
namespace AngleSharp.Dom.Css
{
internal sealed class CssKeyframeRule : CssRule, ICssKeyframeRule, ICssRule, ICssNode, IStyleFormattable
{
public string KeyText {
get {
return Key.Text;
}
set {
IKeyframeSelector keyframeSelector = base.Parser.ParseKeyframeSelector(value);
if (keyframeSelector == null)
throw new DomException(DomError.Syntax);
Key = keyframeSelector;
}
}
public IKeyframeSelector Key {
get {
return base.Children.OfType<IKeyframeSelector>().FirstOrDefault();
}
set {
ReplaceSingle(Key, value);
}
}
ICssStyleDeclaration ICssKeyframeRule.Style {
get {
return Style;
}
}
public CssStyleDeclaration Style => base.Children.OfType<CssStyleDeclaration>().FirstOrDefault();
internal CssKeyframeRule(CssParser parser)
: base(CssRuleType.Keyframe, parser)
{
AppendChild(new CssStyleDeclaration(this));
}
public override void ToCss(TextWriter writer, IStyleFormatter formatter)
{
writer.Write(formatter.Style(KeyText, Style));
}
}
}