CssBorderImageRepeatProperty
sealed class CssBorderImageRepeatProperty : CssProperty, ICssBorderImageRepeatProperty, ICssProperty
More information available at:
https://developer.mozilla.org/en-US/docs/Web/CSS/border-image-repeat
using AngleSharp.Css;
using AngleSharp.Extensions;
namespace AngleSharp.Dom.Css
{
internal sealed class CssBorderImageRepeatProperty : CssProperty, ICssBorderImageRepeatProperty, ICssProperty
{
internal static readonly BorderRepeat Default = BorderRepeat.Stretch;
internal static readonly IValueConverter<BorderRepeat[]> Converter = Map.BorderRepeatModes.ToConverter().Many(1, 2);
private BorderRepeat _horizontal;
private BorderRepeat _vertical;
public BorderRepeat Horizontal => _horizontal;
public BorderRepeat Vertical => _vertical;
internal CssBorderImageRepeatProperty(CssStyleDeclaration rule)
: base(PropertyNames.BorderImageRepeat, rule, PropertyFlags.None)
{
}
private void SetRepeat(BorderRepeat horizontal, BorderRepeat vertical)
{
_horizontal = horizontal;
_vertical = vertical;
}
internal override void Reset()
{
_horizontal = Default;
_vertical = Default;
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, delegate(BorderRepeat[] m) {
SetRepeat(m[0], (m.Length == 2) ? m[1] : m[0]);
});
}
}
}