CssBackgroundImageProperty
More information available at:
https://developer.mozilla.org/en-US/docs/Web/CSS/background-image
using AngleSharp.Css;
using AngleSharp.Css.Values;
using AngleSharp.Extensions;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssBackgroundImageProperty : CssProperty, ICssBackgroundImageProperty, ICssProperty
{
internal static readonly IImageSource[] Default = new IImageSource[0];
internal static readonly IValueConverter<IImageSource> SingleConverter = Converters.ImageSourceConverter;
internal static readonly IValueConverter<IImageSource[]> Converter = SingleConverter.FromList().Or(Keywords.None, Default);
private readonly List<IImageSource> _images;
public IEnumerable<IImageSource> Images => _images;
internal CssBackgroundImageProperty(CssStyleDeclaration rule)
: base(PropertyNames.BackgroundImage, rule, PropertyFlags.None)
{
_images = new List<IImageSource>();
}
public void SetImages(IEnumerable<IImageSource> images)
{
_images.Clear();
_images.AddRange(images);
}
internal override void Reset()
{
_images.Clear();
_images.AddRange(Default);
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetImages);
}
}
}