CssValue
Represents a CSS value.
using AngleSharp.Extensions;
using AngleSharp.Parser.Css;
using System.Collections;
using System.Collections.Generic;
using System.IO;
using System.Linq;
namespace AngleSharp.Dom.Css
{
internal sealed class CssValue : CssNode, IEnumerable<CssToken>, IEnumerable
{
private readonly List<CssToken> _tokens;
public static CssValue Initial = FromString(Keywords.Initial);
public static CssValue Empty = new CssValue(Enumerable.Empty<CssToken>());
public CssToken this[int index] {
get {
return _tokens[index];
}
}
public int Count => _tokens.Count;
public string CssText => this.ToCss();
private CssValue(CssToken token)
{
_tokens = new List<CssToken> {
token
};
}
public CssValue(IEnumerable<CssToken> tokens)
{
_tokens = new List<CssToken>(tokens);
}
public static CssValue FromString(string text)
{
return new CssValue(new CssToken(CssTokenType.Ident, text, TextPosition.Empty));
}
public override void ToCss(TextWriter writer, IStyleFormatter formatter)
{
writer.Write(_tokens.ToText());
}
public IEnumerator<CssToken> GetEnumerator()
{
return _tokens.GetEnumerator();
}
IEnumerator IEnumerable.GetEnumerator()
{
return GetEnumerator();
}
}
}