CssAnimationPlayStateProperty
sealed class CssAnimationPlayStateProperty : CssProperty, ICssAnimationPlayStateProperty, ICssProperty
More information available at:
https://developer.mozilla.org/en-US/docs/CSS/animation-play-state
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssAnimationPlayStateProperty : CssProperty, ICssAnimationPlayStateProperty, ICssProperty
{
internal static readonly IValueConverter<PlayState> SingleConverter = Converters.Assign(Keywords.Running, PlayState.Running).Or(Keywords.Paused, PlayState.Paused);
internal static readonly IValueConverter<PlayState[]> Converter = SingleConverter.FromList();
internal static readonly PlayState Default = PlayState.Running;
private readonly List<PlayState> _states;
public IEnumerable<PlayState> States => _states;
internal CssAnimationPlayStateProperty(CssStyleDeclaration rule)
: base(PropertyNames.AnimationPlayState, rule, PropertyFlags.None)
{
_states = new List<PlayState>();
Reset();
}
public void SetStates(IEnumerable<PlayState> states)
{
_states.Clear();
_states.AddRange(states);
}
internal override void Reset()
{
_states.Clear();
_states.Add(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetStates);
}
}
}