CssAnimationDirectionProperty
sealed class CssAnimationDirectionProperty : CssProperty, ICssAnimationDirectionProperty, ICssProperty
More information available at:
https://developer.mozilla.org/en-US/docs/CSS/animation-direction
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssAnimationDirectionProperty : CssProperty, ICssAnimationDirectionProperty, ICssProperty
{
internal static readonly IValueConverter<AnimationDirection> SingleConverter = Map.AnimationDirections.ToConverter();
internal static readonly IValueConverter<AnimationDirection[]> Converter = SingleConverter.FromList();
internal static readonly AnimationDirection Default = AnimationDirection.Normal;
private readonly List<AnimationDirection> _directions;
public IEnumerable<AnimationDirection> Directions => _directions;
internal CssAnimationDirectionProperty(CssStyleDeclaration rule)
: base(PropertyNames.AnimationDirection, rule, PropertyFlags.None)
{
_directions = new List<AnimationDirection>();
Reset();
}
public void SetDirections(IEnumerable<AnimationDirection> directions)
{
_directions.Clear();
_directions.AddRange(directions);
}
internal override void Reset()
{
_directions.Clear();
_directions.Add(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetDirections);
}
}
}