CssAnimationFillModeProperty
sealed class CssAnimationFillModeProperty : CssProperty, ICssAnimationFillModeProperty, ICssProperty
More information available at:
https://developer.mozilla.org/en-US/docs/CSS/animation-fill-mode
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssAnimationFillModeProperty : CssProperty, ICssAnimationFillModeProperty, ICssProperty
{
internal static readonly IValueConverter<AnimationFillStyle> SingleConverter = Map.AnimationFillStyles.ToConverter();
internal static readonly IValueConverter<AnimationFillStyle[]> Converter = SingleConverter.FromList();
internal static readonly AnimationFillStyle Default = AnimationFillStyle.None;
private readonly List<AnimationFillStyle> _fillModes;
public IEnumerable<AnimationFillStyle> FillModes => _fillModes;
internal CssAnimationFillModeProperty(CssStyleDeclaration rule)
: base(PropertyNames.AnimationFillMode, rule, PropertyFlags.None)
{
_fillModes = new List<AnimationFillStyle>();
Reset();
}
public void SetFillModes(IEnumerable<AnimationFillStyle> fillModes)
{
_fillModes.Clear();
_fillModes.AddRange(fillModes);
}
internal override void Reset()
{
_fillModes.Clear();
_fillModes.Add(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetFillModes);
}
}
}