AngleSharp by AngleSharp

<PackageReference Include="AngleSharp" Version="1.1.2-beta.395" />

.NET API 956,416 bytes

 ShadowRoot

Represents a shadow root.
using AngleSharp.Css.Dom; using AngleSharp.Html; using AngleSharp.Text; using System.Linq; using System.Runtime.CompilerServices; using System.Text; namespace AngleSharp.Dom { [System.Runtime.CompilerServices.NullableContext(1)] [System.Runtime.CompilerServices.Nullable(0)] internal sealed class ShadowRoot : Node, IShadowRoot, IDocumentFragment, INode, IEventTarget, IMarkupFormattable, IParentNode, INonElementParentNode { private readonly Element _host; private readonly IStyleSheetList _styleSheets; private readonly ShadowRootMode _mode; [System.Runtime.CompilerServices.Nullable(new byte[] { 2, 1 })] private HtmlCollection<IElement> _elements; [System.Runtime.CompilerServices.Nullable(2)] public IElement ActiveElement { [System.Runtime.CompilerServices.NullableContext(2)] get { return this.GetDescendants().OfType<Element>().FirstOrDefault((Element m) => m.IsFocused); } } public ShadowRootMode Mode => _mode; public IElement Host => _host; public string InnerHtml { get { return base.ChildNodes.ToHtml(HtmlMarkupFormatter.Instance); } set { ReplaceAll(new DocumentFragment(_host, value), false); } } public IStyleSheetList StyleSheets => _styleSheets; public int ChildElementCount => base.ChildNodes.OfType<Element>().Count(); public IHtmlCollection<IElement> Children => _elements ?? (_elements = new HtmlCollection<IElement>(this, false, null)); [System.Runtime.CompilerServices.Nullable(2)] public IElement FirstElementChild { [System.Runtime.CompilerServices.NullableContext(2)] get { NodeList childNodes = base.ChildNodes; int length = childNodes.Length; for (int i = 0; i < length; i++) { IElement element = childNodes[i] as IElement; if (element != null) return element; } return null; } } [System.Runtime.CompilerServices.Nullable(2)] public IElement LastElementChild { [System.Runtime.CompilerServices.NullableContext(2)] get { NodeList childNodes = base.ChildNodes; for (int num = childNodes.Length - 1; num >= 0; num--) { IElement element = childNodes[num] as IElement; if (element != null) return element; } return null; } } public override string TextContent { get { StringBuilder stringBuilder = StringBuilderPool.Obtain(); foreach (IText item in this.GetDescendants().OfType<IText>()) { stringBuilder.Append(item.Data); } return stringBuilder.ToPool(); } set { TextNode node = (!string.IsNullOrEmpty(value)) ? new TextNode(base.Owner, value) : null; ReplaceAll(node, false); } } internal ShadowRoot(Element host, ShadowRootMode mode) : base(host.Owner, "#shadow-root", NodeType.DocumentFragment, NodeFlags.None) { _host = host; _styleSheets = this.CreateStyleSheets(); _mode = mode; } public void Prepend(params INode[] nodes) { this.PrependNodes(nodes); } public void Append(params INode[] nodes) { this.AppendNodes(nodes); } [return: System.Runtime.CompilerServices.Nullable(2)] public IElement QuerySelector(string selectors) { return base.ChildNodes.QuerySelector(selectors, _host); } public IHtmlCollection<IElement> QuerySelectorAll(string selectors) { return base.ChildNodes.QuerySelectorAll(selectors, _host); } public IHtmlCollection<IElement> GetElementsByClassName(string classNames) { return base.ChildNodes.GetElementsByClassName(classNames); } public IHtmlCollection<IElement> GetElementsByTagName(string tagName) { return base.ChildNodes.GetElementsByTagName(tagName); } public IHtmlCollection<IElement> GetElementsByTagNameNS([System.Runtime.CompilerServices.Nullable(2)] string namespaceURI, string tagName) { return base.ChildNodes.GetElementsByTagName(namespaceURI, tagName); } [return: System.Runtime.CompilerServices.Nullable(2)] public IElement GetElementById(string elementId) { return base.ChildNodes.GetElementById(elementId); } public override Node Clone(Document owner, bool deep) { ShadowRoot shadowRoot = new ShadowRoot(_host, _mode); CloneNode(shadowRoot, owner, deep); return shadowRoot; } } }