CssTransformProperty
More information available at MDN:
https://developer.mozilla.org/en-US/docs/Web/CSS/transform
using AngleSharp.Css;
using AngleSharp.Css.Values;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssTransformProperty : CssProperty, ICssTransformProperty, ICssProperty
{
internal static readonly ITransform[] Default = new ITransform[0];
internal static readonly IValueConverter<ITransform[]> Converter = Converters.TransformConverter.Many(1, 2147483647).Or(Keywords.None, Default);
private readonly List<ITransform> _transforms;
public IEnumerable<ITransform> Transforms => _transforms;
internal CssTransformProperty(CssStyleDeclaration rule)
: base(PropertyNames.Transform, rule, PropertyFlags.Animatable)
{
_transforms = new List<ITransform>();
}
public void SetTransforms(IEnumerable<ITransform> transforms)
{
_transforms.Clear();
_transforms.AddRange(transforms);
}
internal override void Reset()
{
_transforms.Clear();
_transforms.AddRange(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetTransforms);
}
}
}