CssTransitionPropertyProperty
sealed class CssTransitionPropertyProperty : CssProperty, ICssTransitionPropertyProperty, ICssProperty
More information available at:
https://developer.mozilla.org/en-US/docs/CSS/transition-property
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssTransitionPropertyProperty : CssProperty, ICssTransitionPropertyProperty, ICssProperty
{
internal static readonly IValueConverter<string> SingleConverter = Converters.AnimatableConverter;
internal static readonly IValueConverter<string[]> Converter = SingleConverter.FromList().Or(Keywords.None, new string[0]);
internal static readonly string Default = Keywords.All;
private readonly List<string> _properties;
public IEnumerable<string> Properties => _properties;
internal CssTransitionPropertyProperty(CssStyleDeclaration rule)
: base(PropertyNames.TransitionProperty, rule, PropertyFlags.None)
{
_properties = new List<string>();
}
public void SetProperties(IEnumerable<string> properties)
{
_properties.Clear();
_properties.AddRange(properties);
}
internal override void Reset()
{
_properties.Clear();
_properties.Add(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetProperties);
}
}
}