CssQuotesProperty
Information can be found on MDN:
https://developer.mozilla.org/en-US/docs/Web/CSS/quotes
using AngleSharp.Css;
using AngleSharp.Extensions;
using System;
using System.Collections.Generic;
namespace AngleSharp.Dom.Css
{
internal sealed class CssQuotesProperty : CssProperty, ICssQuotesProperty, ICssProperty
{
internal static readonly Tuple<string, string>[] Default = new Tuple<string, string>[1] {
Tuple.Create("«", "»")
};
internal static readonly IValueConverter<Tuple<string, string>[]> Converter = Converters.StringConverter.Many(1, 2147483647).Constraint((string[] m) => m.Length % 2 == 0).To(TransformArray)
.Or(Keywords.None, new Tuple<string, string>[0]);
private Tuple<string, string>[] _quotes;
public IEnumerable<Tuple<string, string>> Quotes => _quotes;
internal CssQuotesProperty(CssStyleDeclaration rule)
: base(PropertyNames.Quotes, rule, PropertyFlags.Inherited)
{
Reset();
}
public void SetQuotes(Tuple<string, string>[] quotes)
{
_quotes = quotes;
}
internal override void Reset()
{
_quotes = Default;
}
protected override bool IsValid(ICssValue value)
{
return Converter.TryConvert(value, SetQuotes);
}
private static Tuple<string, string>[] TransformArray(string[] arrays)
{
Tuple<string, string>[] array = new Tuple<string, string>[arrays.Length / 2];
int num = 0;
int num2 = 0;
while (num < arrays.Length) {
array[num2] = Tuple.Create(arrays[num], arrays[num + 1]);
num += 2;
num2++;
}
return array;
}
}
}