CssTransitionTimingFunctionProperty
sealed class CssTransitionTimingFunctionProperty : CssProperty, ICssTransitionTimingFunctionProperty, ICssProperty
More information available at:
https://developer.mozilla.org/en-US/docs/CSS/transition-timing-function
using AngleSharp.Css;
using AngleSharp.Css.Values;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssTransitionTimingFunctionProperty : CssProperty, ICssTransitionTimingFunctionProperty, ICssProperty
{
internal static readonly IValueConverter<ITimingFunction> SingleConverter = Converters.TransitionConverter;
internal static readonly IValueConverter<ITimingFunction[]> Converter = SingleConverter.FromList();
internal static readonly ITimingFunction Default = Map.TimingFunctions[Keywords.Ease];
private readonly List<ITimingFunction> _functions;
public IEnumerable<ITimingFunction> TimingFunctions => _functions;
internal CssTransitionTimingFunctionProperty(CssStyleDeclaration rule)
: base(PropertyNames.TransitionTimingFunction, rule, PropertyFlags.None)
{
_functions = new List<ITimingFunction>();
Reset();
}
public void SetTimingFunctions(IEnumerable<ITimingFunction> functions)
{
_functions.Clear();
_functions.AddRange(functions);
}
internal override void Reset()
{
_functions.Clear();
_functions.Add(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetTimingFunctions);
}
}
}