CssBoxShadowProperty
Information can be found on MDN:
https://developer.mozilla.org/en-US/docs/Web/CSS/box-shadow
using AngleSharp.Css;
using AngleSharp.Css.Values;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssBoxShadowProperty : CssProperty, ICssBoxShadowProperty, ICssProperty
{
internal static readonly Shadow[] Default = new Shadow[0];
internal static readonly IValueConverter<Shadow[]> Converter = Converters.ShadowConverter.FromList().Or(Keywords.None, Default);
private readonly List<Shadow> _shadows;
public IEnumerable<Shadow> Shadows => _shadows;
internal CssBoxShadowProperty(CssStyleDeclaration rule)
: base(PropertyNames.BoxShadow, rule, PropertyFlags.Animatable)
{
_shadows = new List<Shadow>();
}
public void SetShadows(IEnumerable<Shadow> shadows)
{
_shadows.Clear();
_shadows.AddRange(shadows);
}
internal override void Reset()
{
_shadows.Clear();
_shadows.AddRange(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetShadows);
}
}
}