CssBackgroundOriginProperty
More information available at:
https://developer.mozilla.org/en-US/docs/Web/CSS/background-origins
using AngleSharp.Css;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssBackgroundOriginProperty : CssProperty, ICssBackgroundOriginProperty, ICssProperty
{
internal static readonly BoxModel Default = BoxModel.PaddingBox;
internal static readonly IValueConverter<BoxModel> SingleConverter = Map.BoxModels.ToConverter();
internal static readonly IValueConverter<BoxModel[]> Converter = SingleConverter.FromList();
private readonly List<BoxModel> _origins;
public IEnumerable<BoxModel> Origins => _origins;
internal CssBackgroundOriginProperty(CssStyleDeclaration rule)
: base(PropertyNames.BackgroundOrigin, rule, PropertyFlags.None)
{
_origins = new List<BoxModel>();
Reset();
}
public void SetOrigins(IEnumerable<BoxModel> origins)
{
_origins.Clear();
_origins.AddRange(origins);
}
internal override void Reset()
{
_origins.Clear();
_origins.Add(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetOrigins);
}
}
}