AngleSharp by Florian Rappl

<PackageReference Include="AngleSharp" Version="0.8.0" />

.NET API 1,171,968 bytes

 CssTextDecorationLineProperty

Information: https://developer.mozilla.org/en-US/docs/Web/CSS/text-decoration-line
using AngleSharp.Css; using AngleSharp.Extensions; using System.Collections.Generic; namespace AngleSharp.Dom.Css { internal sealed class CssTextDecorationLineProperty : CssProperty, ICssTextDecorationLineProperty, ICssProperty { internal static readonly TextDecorationLine[] Default = new TextDecorationLine[0]; internal static readonly IValueConverter<TextDecorationLine[]> SingleConverter = Map.TextDecorationLines.ToConverter().Many(1, 2147483647); internal static readonly IValueConverter<TextDecorationLine[]> Converter = SingleConverter.Or(Keywords.None, Default); private readonly List<TextDecorationLine> _lines; public IEnumerable<TextDecorationLine> Lines => _lines; internal CssTextDecorationLineProperty(CssStyleDeclaration rule) : base(PropertyNames.TextDecorationLine, rule, PropertyFlags.None) { _lines = new List<TextDecorationLine>(); } public void SetLines(IEnumerable<TextDecorationLine> lines) { _lines.Clear(); _lines.AddRange(lines); } internal override void Reset() { _lines.Clear(); _lines.AddRange(Default); } protected override bool IsValid(ICssValue value) { return Converter.TryConvert(value, SetLines); } } }