CssAnimationNameProperty
More information available at:
https://developer.mozilla.org/en-US/docs/CSS/animation-name
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssAnimationNameProperty : CssProperty, ICssAnimationNameProperty, ICssProperty
{
internal static readonly IValueConverter<string> SingleConverter = Converters.IdentifierConverter;
internal static readonly IValueConverter<string[]> Converter = Converters.Assign(Keywords.None, new string[0]).Or(SingleConverter.FromList());
internal static readonly string Default = string.Empty;
private readonly List<string> _names;
public IEnumerable<string> Names => _names;
internal CssAnimationNameProperty(CssStyleDeclaration rule)
: base(PropertyNames.AnimationName, rule, PropertyFlags.None)
{
_names = new List<string>();
}
public void SetNames(IEnumerable<string> names)
{
_names.Clear();
_names.AddRange(names);
}
internal override void Reset()
{
_names.Clear();
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetNames);
}
}
}