@dooboostore/dom-parser 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +280 -0
- package/dist/cjs/DomParser.js +360 -0
- package/dist/cjs/DomParser.js.map +7 -0
- package/dist/cjs/factory/ElementFactory.js +76 -0
- package/dist/cjs/factory/ElementFactory.js.map +7 -0
- package/dist/cjs/factory/index.js +24 -0
- package/dist/cjs/factory/index.js.map +7 -0
- package/dist/cjs/index.js +34 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/node/CharacterData.js +16 -0
- package/dist/cjs/node/CharacterData.js.map +7 -0
- package/dist/cjs/node/ChildNode.js +16 -0
- package/dist/cjs/node/ChildNode.js.map +7 -0
- package/dist/cjs/node/ChildNodeBase.js +62 -0
- package/dist/cjs/node/ChildNodeBase.js.map +7 -0
- package/dist/cjs/node/Comment.js +86 -0
- package/dist/cjs/node/Comment.js.map +7 -0
- package/dist/cjs/node/Document.js +28 -0
- package/dist/cjs/node/Document.js.map +7 -0
- package/dist/cjs/node/DocumentBase.js +378 -0
- package/dist/cjs/node/DocumentBase.js.map +7 -0
- package/dist/cjs/node/DocumentFragment.js +16 -0
- package/dist/cjs/node/DocumentFragment.js.map +7 -0
- package/dist/cjs/node/DocumentFragmentBase.js +88 -0
- package/dist/cjs/node/DocumentFragmentBase.js.map +7 -0
- package/dist/cjs/node/GetRootNodeOptions.js +16 -0
- package/dist/cjs/node/GetRootNodeOptions.js.map +7 -0
- package/dist/cjs/node/Node.js +58 -0
- package/dist/cjs/node/Node.js.map +7 -0
- package/dist/cjs/node/NodeBase.js +380 -0
- package/dist/cjs/node/NodeBase.js.map +7 -0
- package/dist/cjs/node/NodeIterator.js +163 -0
- package/dist/cjs/node/NodeIterator.js.map +7 -0
- package/dist/cjs/node/ParentNode.js +16 -0
- package/dist/cjs/node/ParentNode.js.map +7 -0
- package/dist/cjs/node/ParentNodeBase.js +134 -0
- package/dist/cjs/node/ParentNodeBase.js.map +7 -0
- package/dist/cjs/node/Text.js +16 -0
- package/dist/cjs/node/Text.js.map +7 -0
- package/dist/cjs/node/TextBase.js +106 -0
- package/dist/cjs/node/TextBase.js.map +7 -0
- package/dist/cjs/node/collection/HTMLCollection.js +105 -0
- package/dist/cjs/node/collection/HTMLCollection.js.map +7 -0
- package/dist/cjs/node/collection/HTMLCollectionOf.js +36 -0
- package/dist/cjs/node/collection/HTMLCollectionOf.js.map +7 -0
- package/dist/cjs/node/collection/NodeList.js +135 -0
- package/dist/cjs/node/collection/NodeList.js.map +7 -0
- package/dist/cjs/node/collection/NodeListOf.js +38 -0
- package/dist/cjs/node/collection/NodeListOf.js.map +7 -0
- package/dist/cjs/node/collection/index.js +30 -0
- package/dist/cjs/node/collection/index.js.map +7 -0
- package/dist/cjs/node/elements/Element.js +16 -0
- package/dist/cjs/node/elements/Element.js.map +7 -0
- package/dist/cjs/node/elements/ElementBase.js +936 -0
- package/dist/cjs/node/elements/ElementBase.js.map +7 -0
- package/dist/cjs/node/elements/HTMLAnchorElement.js +71 -0
- package/dist/cjs/node/elements/HTMLAnchorElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLAreaElement.js +77 -0
- package/dist/cjs/node/elements/HTMLAreaElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLBaseElement.js +77 -0
- package/dist/cjs/node/elements/HTMLBaseElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLBodyElement.js +29 -0
- package/dist/cjs/node/elements/HTMLBodyElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLButtonElement.js +89 -0
- package/dist/cjs/node/elements/HTMLButtonElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLCanvasElement.js +79 -0
- package/dist/cjs/node/elements/HTMLCanvasElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLCaptionElement.js +41 -0
- package/dist/cjs/node/elements/HTMLCaptionElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLDivElement.js +29 -0
- package/dist/cjs/node/elements/HTMLDivElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLElement.js +16 -0
- package/dist/cjs/node/elements/HTMLElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLElementBase.js +182 -0
- package/dist/cjs/node/elements/HTMLElementBase.js.map +7 -0
- package/dist/cjs/node/elements/HTMLEmbedElement.js +45 -0
- package/dist/cjs/node/elements/HTMLEmbedElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLFormElement.js +127 -0
- package/dist/cjs/node/elements/HTMLFormElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLGenericElement.js +32 -0
- package/dist/cjs/node/elements/HTMLGenericElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLH1Element.js +29 -0
- package/dist/cjs/node/elements/HTMLH1Element.js.map +7 -0
- package/dist/cjs/node/elements/HTMLHeadElement.js +29 -0
- package/dist/cjs/node/elements/HTMLHeadElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLHtmlElement.js +92 -0
- package/dist/cjs/node/elements/HTMLHtmlElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLImgElement.js +99 -0
- package/dist/cjs/node/elements/HTMLImgElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLInputElement.js +157 -0
- package/dist/cjs/node/elements/HTMLInputElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLLIElement.js +57 -0
- package/dist/cjs/node/elements/HTMLLIElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLLinkElement.js +99 -0
- package/dist/cjs/node/elements/HTMLLinkElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLMetaElement.js +29 -0
- package/dist/cjs/node/elements/HTMLMetaElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLOListElement.js +89 -0
- package/dist/cjs/node/elements/HTMLOListElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLPElement.js +29 -0
- package/dist/cjs/node/elements/HTMLPElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLScriptElement.js +127 -0
- package/dist/cjs/node/elements/HTMLScriptElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLSpanElement.js +29 -0
- package/dist/cjs/node/elements/HTMLSpanElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLStyleElement.js +71 -0
- package/dist/cjs/node/elements/HTMLStyleElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTableElement.js +112 -0
- package/dist/cjs/node/elements/HTMLTableElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTbodyElement.js +54 -0
- package/dist/cjs/node/elements/HTMLTbodyElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTdElement.js +72 -0
- package/dist/cjs/node/elements/HTMLTdElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTemplateElement.js +97 -0
- package/dist/cjs/node/elements/HTMLTemplateElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTfootElement.js +56 -0
- package/dist/cjs/node/elements/HTMLTfootElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLThElement.js +72 -0
- package/dist/cjs/node/elements/HTMLThElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTheadElement.js +54 -0
- package/dist/cjs/node/elements/HTMLTheadElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTitleElement.js +38 -0
- package/dist/cjs/node/elements/HTMLTitleElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTrElement.js +77 -0
- package/dist/cjs/node/elements/HTMLTrElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLUListElement.js +29 -0
- package/dist/cjs/node/elements/HTMLUListElement.js.map +7 -0
- package/dist/cjs/node/elements/MathMLElement.js +32 -0
- package/dist/cjs/node/elements/MathMLElement.js.map +7 -0
- package/dist/cjs/node/elements/SVGCircleElement.js +69 -0
- package/dist/cjs/node/elements/SVGCircleElement.js.map +7 -0
- package/dist/cjs/node/elements/SVGElement.js +32 -0
- package/dist/cjs/node/elements/SVGElement.js.map +7 -0
- package/dist/cjs/node/elements/SVGRectElement.js +80 -0
- package/dist/cjs/node/elements/SVGRectElement.js.map +7 -0
- package/dist/cjs/node/elements/index.js +183 -0
- package/dist/cjs/node/elements/index.js.map +7 -0
- package/dist/cjs/node/index.js +73 -0
- package/dist/cjs/node/index.js.map +7 -0
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/utils/CSSSelector.js +271 -0
- package/dist/cjs/utils/CSSSelector.js.map +7 -0
- package/dist/cjs/window/Window.js +16 -0
- package/dist/cjs/window/Window.js.map +7 -0
- package/dist/cjs/window/WindowBase.js +847 -0
- package/dist/cjs/window/WindowBase.js.map +7 -0
- package/dist/cjs/window/index.js +29 -0
- package/dist/cjs/window/index.js.map +7 -0
- package/dist/esm/DomParser.js +341 -0
- package/dist/esm/DomParser.js.map +7 -0
- package/dist/esm/factory/ElementFactory.js +57 -0
- package/dist/esm/factory/ElementFactory.js.map +7 -0
- package/dist/esm/factory/index.js +5 -0
- package/dist/esm/factory/index.js.map +7 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/node/CharacterData.js +1 -0
- package/dist/esm/node/CharacterData.js.map +7 -0
- package/dist/esm/node/ChildNode.js +1 -0
- package/dist/esm/node/ChildNode.js.map +7 -0
- package/dist/esm/node/ChildNodeBase.js +43 -0
- package/dist/esm/node/ChildNodeBase.js.map +7 -0
- package/dist/esm/node/Comment.js +67 -0
- package/dist/esm/node/Comment.js.map +7 -0
- package/dist/esm/node/Document.js +9 -0
- package/dist/esm/node/Document.js.map +7 -0
- package/dist/esm/node/DocumentBase.js +359 -0
- package/dist/esm/node/DocumentBase.js.map +7 -0
- package/dist/esm/node/DocumentFragment.js +1 -0
- package/dist/esm/node/DocumentFragment.js.map +7 -0
- package/dist/esm/node/DocumentFragmentBase.js +69 -0
- package/dist/esm/node/DocumentFragmentBase.js.map +7 -0
- package/dist/esm/node/GetRootNodeOptions.js +1 -0
- package/dist/esm/node/GetRootNodeOptions.js.map +7 -0
- package/dist/esm/node/Node.js +39 -0
- package/dist/esm/node/Node.js.map +7 -0
- package/dist/esm/node/NodeBase.js +380 -0
- package/dist/esm/node/NodeBase.js.map +7 -0
- package/dist/esm/node/NodeIterator.js +144 -0
- package/dist/esm/node/NodeIterator.js.map +7 -0
- package/dist/esm/node/ParentNode.js +1 -0
- package/dist/esm/node/ParentNode.js.map +7 -0
- package/dist/esm/node/ParentNodeBase.js +115 -0
- package/dist/esm/node/ParentNodeBase.js.map +7 -0
- package/dist/esm/node/Text.js +1 -0
- package/dist/esm/node/Text.js.map +7 -0
- package/dist/esm/node/TextBase.js +87 -0
- package/dist/esm/node/TextBase.js.map +7 -0
- package/dist/esm/node/collection/HTMLCollection.js +86 -0
- package/dist/esm/node/collection/HTMLCollection.js.map +7 -0
- package/dist/esm/node/collection/HTMLCollectionOf.js +17 -0
- package/dist/esm/node/collection/HTMLCollectionOf.js.map +7 -0
- package/dist/esm/node/collection/NodeList.js +116 -0
- package/dist/esm/node/collection/NodeList.js.map +7 -0
- package/dist/esm/node/collection/NodeListOf.js +19 -0
- package/dist/esm/node/collection/NodeListOf.js.map +7 -0
- package/dist/esm/node/collection/index.js +11 -0
- package/dist/esm/node/collection/index.js.map +7 -0
- package/dist/esm/node/elements/Element.js +1 -0
- package/dist/esm/node/elements/Element.js.map +7 -0
- package/dist/esm/node/elements/ElementBase.js +917 -0
- package/dist/esm/node/elements/ElementBase.js.map +7 -0
- package/dist/esm/node/elements/HTMLAnchorElement.js +52 -0
- package/dist/esm/node/elements/HTMLAnchorElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLAreaElement.js +58 -0
- package/dist/esm/node/elements/HTMLAreaElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLBaseElement.js +58 -0
- package/dist/esm/node/elements/HTMLBaseElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLBodyElement.js +10 -0
- package/dist/esm/node/elements/HTMLBodyElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLButtonElement.js +70 -0
- package/dist/esm/node/elements/HTMLButtonElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLCanvasElement.js +60 -0
- package/dist/esm/node/elements/HTMLCanvasElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLCaptionElement.js +22 -0
- package/dist/esm/node/elements/HTMLCaptionElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLDivElement.js +10 -0
- package/dist/esm/node/elements/HTMLDivElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLElement.js +1 -0
- package/dist/esm/node/elements/HTMLElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLElementBase.js +163 -0
- package/dist/esm/node/elements/HTMLElementBase.js.map +7 -0
- package/dist/esm/node/elements/HTMLEmbedElement.js +26 -0
- package/dist/esm/node/elements/HTMLEmbedElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLFormElement.js +108 -0
- package/dist/esm/node/elements/HTMLFormElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLGenericElement.js +13 -0
- package/dist/esm/node/elements/HTMLGenericElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLH1Element.js +10 -0
- package/dist/esm/node/elements/HTMLH1Element.js.map +7 -0
- package/dist/esm/node/elements/HTMLHeadElement.js +10 -0
- package/dist/esm/node/elements/HTMLHeadElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLHtmlElement.js +73 -0
- package/dist/esm/node/elements/HTMLHtmlElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLImgElement.js +80 -0
- package/dist/esm/node/elements/HTMLImgElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLInputElement.js +138 -0
- package/dist/esm/node/elements/HTMLInputElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLLIElement.js +38 -0
- package/dist/esm/node/elements/HTMLLIElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLLinkElement.js +80 -0
- package/dist/esm/node/elements/HTMLLinkElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLMetaElement.js +10 -0
- package/dist/esm/node/elements/HTMLMetaElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLOListElement.js +70 -0
- package/dist/esm/node/elements/HTMLOListElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLPElement.js +10 -0
- package/dist/esm/node/elements/HTMLPElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLScriptElement.js +108 -0
- package/dist/esm/node/elements/HTMLScriptElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLSpanElement.js +10 -0
- package/dist/esm/node/elements/HTMLSpanElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLStyleElement.js +52 -0
- package/dist/esm/node/elements/HTMLStyleElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTableElement.js +93 -0
- package/dist/esm/node/elements/HTMLTableElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTbodyElement.js +35 -0
- package/dist/esm/node/elements/HTMLTbodyElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTdElement.js +53 -0
- package/dist/esm/node/elements/HTMLTdElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTemplateElement.js +78 -0
- package/dist/esm/node/elements/HTMLTemplateElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTfootElement.js +37 -0
- package/dist/esm/node/elements/HTMLTfootElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLThElement.js +53 -0
- package/dist/esm/node/elements/HTMLThElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTheadElement.js +35 -0
- package/dist/esm/node/elements/HTMLTheadElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTitleElement.js +19 -0
- package/dist/esm/node/elements/HTMLTitleElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTrElement.js +58 -0
- package/dist/esm/node/elements/HTMLTrElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLUListElement.js +10 -0
- package/dist/esm/node/elements/HTMLUListElement.js.map +7 -0
- package/dist/esm/node/elements/MathMLElement.js +13 -0
- package/dist/esm/node/elements/MathMLElement.js.map +7 -0
- package/dist/esm/node/elements/SVGCircleElement.js +50 -0
- package/dist/esm/node/elements/SVGCircleElement.js.map +7 -0
- package/dist/esm/node/elements/SVGElement.js +13 -0
- package/dist/esm/node/elements/SVGElement.js.map +7 -0
- package/dist/esm/node/elements/SVGRectElement.js +61 -0
- package/dist/esm/node/elements/SVGRectElement.js.map +7 -0
- package/dist/esm/node/elements/index.js +164 -0
- package/dist/esm/node/elements/index.js.map +7 -0
- package/dist/esm/node/index.js +53 -0
- package/dist/esm/node/index.js.map +7 -0
- package/dist/esm/utils/CSSSelector.js +252 -0
- package/dist/esm/utils/CSSSelector.js.map +7 -0
- package/dist/esm/window/Window.js +1 -0
- package/dist/esm/window/Window.js.map +7 -0
- package/dist/esm/window/WindowBase.js +828 -0
- package/dist/esm/window/WindowBase.js.map +7 -0
- package/dist/esm/window/index.js +10 -0
- package/dist/esm/window/index.js.map +7 -0
- package/dist/esm-bundle/dooboostore-dom-parser.esm.js +6176 -0
- package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +7 -0
- package/dist/types/DomParser.d.ts +30 -0
- package/dist/types/DomParser.d.ts.map +1 -0
- package/dist/types/factory/ElementFactory.d.ts +27 -0
- package/dist/types/factory/ElementFactory.d.ts.map +1 -0
- package/dist/types/factory/index.d.ts +2 -0
- package/dist/types/factory/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/node/CharacterData.d.ts +52 -0
- package/dist/types/node/CharacterData.d.ts.map +1 -0
- package/dist/types/node/ChildNode.d.ts +39 -0
- package/dist/types/node/ChildNode.d.ts.map +1 -0
- package/dist/types/node/ChildNodeBase.d.ts +12 -0
- package/dist/types/node/ChildNodeBase.d.ts.map +1 -0
- package/dist/types/node/Comment.d.ts +26 -0
- package/dist/types/node/Comment.d.ts.map +1 -0
- package/dist/types/node/Document.d.ts +857 -0
- package/dist/types/node/Document.d.ts.map +1 -0
- package/dist/types/node/DocumentBase.d.ts +153 -0
- package/dist/types/node/DocumentBase.d.ts.map +1 -0
- package/dist/types/node/DocumentFragment.d.ts +39 -0
- package/dist/types/node/DocumentFragment.d.ts.map +1 -0
- package/dist/types/node/DocumentFragmentBase.d.ts +51 -0
- package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -0
- package/dist/types/node/GetRootNodeOptions.d.ts +14 -0
- package/dist/types/node/GetRootNodeOptions.d.ts.map +1 -0
- package/dist/types/node/Node.d.ts +232 -0
- package/dist/types/node/Node.d.ts.map +1 -0
- package/dist/types/node/NodeBase.d.ts +98 -0
- package/dist/types/node/NodeBase.d.ts.map +1 -0
- package/dist/types/node/NodeIterator.d.ts +61 -0
- package/dist/types/node/NodeIterator.d.ts.map +1 -0
- package/dist/types/node/ParentNode.d.ts +85 -0
- package/dist/types/node/ParentNode.d.ts.map +1 -0
- package/dist/types/node/ParentNodeBase.d.ts +22 -0
- package/dist/types/node/ParentNodeBase.d.ts.map +1 -0
- package/dist/types/node/Text.d.ts +25 -0
- package/dist/types/node/Text.d.ts.map +1 -0
- package/dist/types/node/TextBase.d.ts +26 -0
- package/dist/types/node/TextBase.d.ts.map +1 -0
- package/dist/types/node/collection/HTMLCollection.d.ts +37 -0
- package/dist/types/node/collection/HTMLCollection.d.ts.map +1 -0
- package/dist/types/node/collection/HTMLCollectionOf.d.ts +14 -0
- package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +1 -0
- package/dist/types/node/collection/NodeList.d.ts +55 -0
- package/dist/types/node/collection/NodeList.d.ts.map +1 -0
- package/dist/types/node/collection/NodeListOf.d.ts +14 -0
- package/dist/types/node/collection/NodeListOf.d.ts.map +1 -0
- package/dist/types/node/collection/index.d.ts +5 -0
- package/dist/types/node/collection/index.d.ts.map +1 -0
- package/dist/types/node/elements/Element.d.ts +687 -0
- package/dist/types/node/elements/Element.d.ts.map +1 -0
- package/dist/types/node/elements/ElementBase.d.ts +143 -0
- package/dist/types/node/elements/ElementBase.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLAnchorElement.d.ts +18 -0
- package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLAreaElement.d.ts +59 -0
- package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLBaseElement.d.ts +25 -0
- package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLBodyElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLButtonElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLCanvasElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLCaptionElement.d.ts +18 -0
- package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLDivElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLElement.d.ts +90 -0
- package/dist/types/node/elements/HTMLElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLElementBase.d.ts +42 -0
- package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLEmbedElement.d.ts +27 -0
- package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLFormElement.d.ts +30 -0
- package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLGenericElement.d.ts +6 -0
- package/dist/types/node/elements/HTMLGenericElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLH1Element.d.ts +10 -0
- package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLHeadElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLHtmlElement.d.ts +17 -0
- package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLImgElement.d.ts +24 -0
- package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLInputElement.d.ts +33 -0
- package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLLIElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLLinkElement.d.ts +24 -0
- package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLMetaElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLOListElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLPElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLScriptElement.d.ts +29 -0
- package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLSpanElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLStyleElement.d.ts +18 -0
- package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTableElement.d.ts +25 -0
- package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTbodyElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTdElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTemplateElement.d.ts +32 -0
- package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTfootElement.d.ts +16 -0
- package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLThElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTheadElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTitleElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTrElement.d.ts +17 -0
- package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLUListElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -0
- package/dist/types/node/elements/MathMLElement.d.ts +11 -0
- package/dist/types/node/elements/MathMLElement.d.ts.map +1 -0
- package/dist/types/node/elements/SVGCircleElement.d.ts +20 -0
- package/dist/types/node/elements/SVGCircleElement.d.ts.map +1 -0
- package/dist/types/node/elements/SVGElement.d.ts +11 -0
- package/dist/types/node/elements/SVGElement.d.ts.map +1 -0
- package/dist/types/node/elements/SVGRectElement.d.ts +23 -0
- package/dist/types/node/elements/SVGRectElement.d.ts.map +1 -0
- package/dist/types/node/elements/index.d.ts +128 -0
- package/dist/types/node/elements/index.d.ts.map +1 -0
- package/dist/types/node/index.d.ts +16 -0
- package/dist/types/node/index.d.ts.map +1 -0
- package/dist/types/utils/CSSSelector.d.ts +36 -0
- package/dist/types/utils/CSSSelector.d.ts.map +1 -0
- package/dist/types/window/Window.d.ts +620 -0
- package/dist/types/window/Window.d.ts.map +1 -0
- package/dist/types/window/WindowBase.d.ts +342 -0
- package/dist/types/window/WindowBase.d.ts.map +1 -0
- package/dist/types/window/index.d.ts +3 -0
- package/dist/types/window/index.d.ts.map +1 -0
- package/dist/umd-bundle/dooboostore-dom-parser.umd.js +6182 -0
- package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +7 -0
- package/package.json +120 -0
- package/src/DomParser.ts +491 -0
- package/src/factory/ElementFactory.ts +69 -0
- package/src/factory/index.ts +1 -0
- package/src/index.ts +28 -0
- package/src/node/CharacterData.ts +58 -0
- package/src/node/ChildNode.ts +42 -0
- package/src/node/ChildNodeBase.ts +54 -0
- package/src/node/Comment.ts +98 -0
- package/src/node/Document.ts +882 -0
- package/src/node/DocumentBase.ts +465 -0
- package/src/node/DocumentFragment.ts +44 -0
- package/src/node/DocumentFragmentBase.ts +109 -0
- package/src/node/GetRootNodeOptions.ts +13 -0
- package/src/node/Node.ts +245 -0
- package/src/node/NodeBase.ts +506 -0
- package/src/node/NodeIterator.ts +200 -0
- package/src/node/ParentNode.ts +93 -0
- package/src/node/ParentNodeBase.ts +145 -0
- package/src/node/Text.ts +30 -0
- package/src/node/TextBase.ts +113 -0
- package/src/node/collection/HTMLCollection.ts +107 -0
- package/src/node/collection/HTMLCollectionOf.ts +26 -0
- package/src/node/collection/NodeList.ts +140 -0
- package/src/node/collection/NodeListOf.ts +28 -0
- package/src/node/collection/index.ts +4 -0
- package/src/node/elements/Element.ts +771 -0
- package/src/node/elements/ElementBase.ts +1239 -0
- package/src/node/elements/HTMLAnchorElement.ts +63 -0
- package/src/node/elements/HTMLAreaElement.ts +73 -0
- package/src/node/elements/HTMLBaseElement.ts +70 -0
- package/src/node/elements/HTMLBodyElement.ts +12 -0
- package/src/node/elements/HTMLButtonElement.ts +83 -0
- package/src/node/elements/HTMLCanvasElement.ts +71 -0
- package/src/node/elements/HTMLCaptionElement.ts +26 -0
- package/src/node/elements/HTMLDivElement.ts +12 -0
- package/src/node/elements/HTMLElement.ts +105 -0
- package/src/node/elements/HTMLElementBase.ts +198 -0
- package/src/node/elements/HTMLEmbedElement.ts +33 -0
- package/src/node/elements/HTMLFormElement.ts +131 -0
- package/src/node/elements/HTMLGenericElement.ts +13 -0
- package/src/node/elements/HTMLH1Element.ts +12 -0
- package/src/node/elements/HTMLHeadElement.ts +12 -0
- package/src/node/elements/HTMLHtmlElement.ts +82 -0
- package/src/node/elements/HTMLImgElement.ts +96 -0
- package/src/node/elements/HTMLInputElement.ts +160 -0
- package/src/node/elements/HTMLLIElement.ts +47 -0
- package/src/node/elements/HTMLLinkElement.ts +95 -0
- package/src/node/elements/HTMLMetaElement.ts +12 -0
- package/src/node/elements/HTMLOListElement.ts +83 -0
- package/src/node/elements/HTMLPElement.ts +12 -0
- package/src/node/elements/HTMLScriptElement.ts +127 -0
- package/src/node/elements/HTMLSpanElement.ts +12 -0
- package/src/node/elements/HTMLStyleElement.ts +63 -0
- package/src/node/elements/HTMLTableElement.ts +117 -0
- package/src/node/elements/HTMLTbodyElement.ts +46 -0
- package/src/node/elements/HTMLTdElement.ts +67 -0
- package/src/node/elements/HTMLTemplateElement.ts +112 -0
- package/src/node/elements/HTMLTfootElement.ts +47 -0
- package/src/node/elements/HTMLThElement.ts +67 -0
- package/src/node/elements/HTMLTheadElement.ts +46 -0
- package/src/node/elements/HTMLTitleElement.ts +23 -0
- package/src/node/elements/HTMLTrElement.ts +72 -0
- package/src/node/elements/HTMLUListElement.ts +12 -0
- package/src/node/elements/MathMLElement.ts +16 -0
- package/src/node/elements/SVGCircleElement.ts +61 -0
- package/src/node/elements/SVGElement.ts +16 -0
- package/src/node/elements/SVGRectElement.ts +74 -0
- package/src/node/elements/index.ts +186 -0
- package/src/node/index.ts +28 -0
- package/src/utils/CSSSelector.ts +360 -0
- package/src/window/Window.ts +715 -0
- package/src/window/WindowBase.ts +1018 -0
- package/src/window/index.ts +2 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,465 @@
|
|
|
1
|
+
import {ParentNodeBase} from './ParentNodeBase';
|
|
2
|
+
import {DOCUMENT_NODE, Node} from './Node';
|
|
3
|
+
import {Document, ElementCreationOptions, DocumentReadyState, DocumentVisibilityState, ImportNodeOptions, CaretPositionFromPointOptions, StartViewTransitionOptions, ViewTransitionUpdateCallback} from './Document';
|
|
4
|
+
import {Comment} from './Comment';
|
|
5
|
+
import {Text} from './Text';
|
|
6
|
+
import {DocumentFragment} from './DocumentFragment';
|
|
7
|
+
import {DocumentFragmentBase} from './DocumentFragmentBase';
|
|
8
|
+
import {Element} from './elements/Element';
|
|
9
|
+
import {HTMLElement} from './elements/HTMLElement';
|
|
10
|
+
import {HTMLCollection, HTMLCollectionOf} from './collection';
|
|
11
|
+
import {HTMLElementTagNameMap, SVGElementTagNameMap, MathMLElementTagNameMap, HTMLElementDeprecatedTagNameMap} from './elements';
|
|
12
|
+
import {NodeListOf} from './collection/NodeListOf';
|
|
13
|
+
import {ElementFactory} from '../factory';
|
|
14
|
+
import {NodeIterator, NodeFilter} from './NodeIterator';
|
|
15
|
+
|
|
16
|
+
// Document event listener interface
|
|
17
|
+
interface DocumentEventListener {
|
|
18
|
+
type: string;
|
|
19
|
+
listener: (event: any) => void;
|
|
20
|
+
options?: boolean | AddEventListenerOptions;
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
/**
|
|
24
|
+
* The **`DocumentBase`** class is the concrete implementation of the Document interface.
|
|
25
|
+
*/
|
|
26
|
+
export class DocumentBase extends ParentNodeBase implements Document {
|
|
27
|
+
// Event system
|
|
28
|
+
private _eventListeners: DocumentEventListener[] = [];
|
|
29
|
+
private _readyState: DocumentReadyState = 'uninitialized' as any;
|
|
30
|
+
private _window: any = null; // Reference to window for load event
|
|
31
|
+
// Properties
|
|
32
|
+
readonly URL: string = 'about:blank';
|
|
33
|
+
alinkColor: string = '';
|
|
34
|
+
readonly all: any = null;
|
|
35
|
+
readonly anchors: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
|
|
36
|
+
readonly applets: HTMLCollection = new HTMLCollection([]);
|
|
37
|
+
bgColor: string = '';
|
|
38
|
+
body: HTMLElement = null as any;
|
|
39
|
+
readonly characterSet: string = 'UTF-8';
|
|
40
|
+
readonly charset: string = 'UTF-8';
|
|
41
|
+
readonly compatMode: string = 'CSS1Compat';
|
|
42
|
+
readonly contentType: string = 'text/html';
|
|
43
|
+
cookie: string = '';
|
|
44
|
+
readonly currentScript: any = null;
|
|
45
|
+
readonly defaultView: any = null;
|
|
46
|
+
designMode: string = 'off';
|
|
47
|
+
dir: string = '';
|
|
48
|
+
readonly doctype: any = null;
|
|
49
|
+
readonly documentElement: HTMLElement = null as any;
|
|
50
|
+
readonly documentURI: string = 'about:blank';
|
|
51
|
+
domain: string = '';
|
|
52
|
+
readonly embeds: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
|
|
53
|
+
fgColor: string = '';
|
|
54
|
+
readonly forms: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
|
|
55
|
+
readonly fragmentDirective: any = null;
|
|
56
|
+
readonly fullscreen: boolean = false;
|
|
57
|
+
readonly fullscreenEnabled: boolean = false;
|
|
58
|
+
readonly head: any = null;
|
|
59
|
+
readonly hidden: boolean = false;
|
|
60
|
+
readonly images: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
|
|
61
|
+
readonly implementation: any = null;
|
|
62
|
+
readonly inputEncoding: string = 'UTF-8';
|
|
63
|
+
readonly lastModified: string = new Date().toString();
|
|
64
|
+
linkColor: string = '';
|
|
65
|
+
readonly links: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
|
|
66
|
+
|
|
67
|
+
// Location property - simple implementation for Document
|
|
68
|
+
private _location: any = {
|
|
69
|
+
href: 'about:blank',
|
|
70
|
+
protocol: 'about:',
|
|
71
|
+
host: '',
|
|
72
|
+
hostname: '',
|
|
73
|
+
port: '',
|
|
74
|
+
pathname: 'blank',
|
|
75
|
+
search: '',
|
|
76
|
+
hash: '',
|
|
77
|
+
origin: 'null',
|
|
78
|
+
assign: (url: string) => { this._location.href = url; },
|
|
79
|
+
replace: (url: string) => { this._location.href = url; },
|
|
80
|
+
reload: () => {},
|
|
81
|
+
toString: () => this._location.href
|
|
82
|
+
};
|
|
83
|
+
|
|
84
|
+
get location(): any {
|
|
85
|
+
return this._location;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
set location(href: string) {
|
|
89
|
+
this._location.href = href;
|
|
90
|
+
// Simple URL parsing for document location
|
|
91
|
+
try {
|
|
92
|
+
const url = new URL(href);
|
|
93
|
+
this._location.protocol = url.protocol;
|
|
94
|
+
this._location.host = url.host;
|
|
95
|
+
this._location.hostname = url.hostname;
|
|
96
|
+
this._location.port = url.port;
|
|
97
|
+
this._location.pathname = url.pathname;
|
|
98
|
+
this._location.search = url.search;
|
|
99
|
+
this._location.hash = url.hash;
|
|
100
|
+
this._location.origin = url.origin;
|
|
101
|
+
} catch (e) {
|
|
102
|
+
// Keep defaults for invalid URLs
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
|
|
106
|
+
// Event handlers
|
|
107
|
+
onfullscreenchange: ((this: Document, ev: Event) => any) | null = null;
|
|
108
|
+
onfullscreenerror: ((this: Document, ev: Event) => any) | null = null;
|
|
109
|
+
onpointerlockchange: ((this: Document, ev: Event) => any) | null = null;
|
|
110
|
+
onpointerlockerror: ((this: Document, ev: Event) => any) | null = null;
|
|
111
|
+
onreadystatechange: ((this: Document, ev: Event) => any) | null = null;
|
|
112
|
+
onvisibilitychange: ((this: Document, ev: Event) => any) | null = null;
|
|
113
|
+
|
|
114
|
+
get ownerDocument(): null {
|
|
115
|
+
return null;
|
|
116
|
+
}
|
|
117
|
+
readonly pictureInPictureEnabled: boolean = false;
|
|
118
|
+
readonly plugins: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
|
|
119
|
+
get readyState(): DocumentReadyState {
|
|
120
|
+
return this._readyState;
|
|
121
|
+
}
|
|
122
|
+
readonly referrer: string = '';
|
|
123
|
+
readonly rootElement: any = null;
|
|
124
|
+
readonly scripts: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
|
|
125
|
+
readonly scrollingElement: Element | null = null;
|
|
126
|
+
readonly timeline: any = null;
|
|
127
|
+
get title(): string {
|
|
128
|
+
const titleElement = this.querySelector('title');
|
|
129
|
+
return titleElement ? titleElement.textContent || '' : '';
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
set title(value: string) {
|
|
133
|
+
let titleElement = this.querySelector('title');
|
|
134
|
+
if (!titleElement) {
|
|
135
|
+
// Create title element if it doesn't exist
|
|
136
|
+
titleElement = this.createElement('title');
|
|
137
|
+
const head = this.head || this.querySelector('head');
|
|
138
|
+
if (head) {
|
|
139
|
+
head.appendChild(titleElement);
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
titleElement.textContent = value;
|
|
143
|
+
}
|
|
144
|
+
readonly visibilityState: DocumentVisibilityState = 'visible';
|
|
145
|
+
vlinkColor: string = '';
|
|
146
|
+
|
|
147
|
+
constructor() {
|
|
148
|
+
super(DOCUMENT_NODE, '#document');
|
|
149
|
+
this._ownerDocument = null;
|
|
150
|
+
|
|
151
|
+
// Create basic document structure
|
|
152
|
+
const documentElement = this.createElement('html') as HTMLElement;
|
|
153
|
+
const head = this.createElement('head') as HTMLElement;
|
|
154
|
+
const body = this.createElement('body') as HTMLElement;
|
|
155
|
+
|
|
156
|
+
documentElement.appendChild(head);
|
|
157
|
+
documentElement.appendChild(body);
|
|
158
|
+
this.appendChild(documentElement);
|
|
159
|
+
|
|
160
|
+
// Set readonly properties
|
|
161
|
+
(this as any).documentElement = documentElement;
|
|
162
|
+
(this as any).head = head;
|
|
163
|
+
this.body = body;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
get textContent(): null {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
// Methods
|
|
171
|
+
adoptNode<T extends Node>(node: T): T {
|
|
172
|
+
(node as any)._ownerDocument = this;
|
|
173
|
+
return node;
|
|
174
|
+
}
|
|
175
|
+
|
|
176
|
+
captureEvents(): void {}
|
|
177
|
+
|
|
178
|
+
caretPositionFromPoint(_x: number, _y: number, _options?: CaretPositionFromPointOptions): any {
|
|
179
|
+
return null;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
caretRangeFromPoint(_x: number, _y: number): any {
|
|
183
|
+
return null;
|
|
184
|
+
}
|
|
185
|
+
|
|
186
|
+
clear(): void {}
|
|
187
|
+
|
|
188
|
+
close(): void {}
|
|
189
|
+
|
|
190
|
+
createAttribute(localName: string): any {
|
|
191
|
+
return { name: localName, value: '' };
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
createAttributeNS(_namespace: string | null, qualifiedName: string): any {
|
|
195
|
+
return { name: qualifiedName, value: '' };
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
createCDATASection(data: string): any {
|
|
199
|
+
return { data, nodeType: 4 };
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
createComment(data: string): Comment {
|
|
203
|
+
return new Comment(data, this);
|
|
204
|
+
}
|
|
205
|
+
|
|
206
|
+
createDocumentFragment(): DocumentFragment {
|
|
207
|
+
return new DocumentFragmentBase(this);
|
|
208
|
+
}
|
|
209
|
+
|
|
210
|
+
createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementTagNameMap[K];
|
|
211
|
+
createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];
|
|
212
|
+
createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement;
|
|
213
|
+
createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement {
|
|
214
|
+
return ElementFactory.createElement(tagName, this);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement;
|
|
218
|
+
createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K];
|
|
219
|
+
createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): any;
|
|
220
|
+
createElementNS<K extends keyof MathMLElementTagNameMap>(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: K): MathMLElementTagNameMap[K];
|
|
221
|
+
createElementNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: string): any;
|
|
222
|
+
createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;
|
|
223
|
+
createElementNS(_namespace: string | null, qualifiedName: string, _options?: string | ElementCreationOptions): Element;
|
|
224
|
+
createElementNS(_namespaceURI: string | null, qualifiedName: string, _options?: ElementCreationOptions | string): Element {
|
|
225
|
+
return ElementFactory.createElement(qualifiedName, this);
|
|
226
|
+
}
|
|
227
|
+
|
|
228
|
+
createEvent(_eventInterface: string): any {
|
|
229
|
+
return {};
|
|
230
|
+
}
|
|
231
|
+
|
|
232
|
+
createNodeIterator(root: Node, whatToShow: number = NodeFilter.SHOW_ALL, filter: NodeFilter | null = null): NodeIterator {
|
|
233
|
+
return new NodeIterator(root, whatToShow, filter);
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
createProcessingInstruction(target: string, data: string): any {
|
|
237
|
+
return { target, data, nodeType: 7 };
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
createRange(): any {
|
|
241
|
+
return {};
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
createTextNode(data: string): Text {
|
|
245
|
+
const { TextBase } = require('./TextBase');
|
|
246
|
+
return new TextBase(data, this);
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
createTreeWalker(_root: Node, _whatToShow?: number, _filter?: any): any {
|
|
250
|
+
return {};
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
execCommand(_commandId: string, _showUI?: boolean, _value?: string): boolean {
|
|
254
|
+
return false;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
exitFullscreen(): Promise<void> {
|
|
258
|
+
return Promise.resolve();
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
exitPictureInPicture(): Promise<void> {
|
|
262
|
+
return Promise.resolve();
|
|
263
|
+
}
|
|
264
|
+
|
|
265
|
+
exitPointerLock(): void {}
|
|
266
|
+
|
|
267
|
+
getElementById(elementId: string): HTMLElement | null {
|
|
268
|
+
const elements = this.querySelectorAll(`#${elementId}`);
|
|
269
|
+
return elements.length > 0 ? elements[0] as HTMLElement : null;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
getElementsByClassName(classNames: string): HTMLCollectionOf<Element> {
|
|
273
|
+
const elements = this.querySelectorAll(`.${classNames.split(' ').join('.')}`);
|
|
274
|
+
return new HTMLCollectionOf(Array.from(elements));
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
getElementsByName(elementName: string): NodeListOf<HTMLElement> {
|
|
278
|
+
const elements = this.querySelectorAll(`[name="${elementName}"]`);
|
|
279
|
+
return new NodeListOf(Array.from(elements) as HTMLElement[]);
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
|
|
283
|
+
getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
|
|
284
|
+
getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
|
|
285
|
+
getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
|
|
286
|
+
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
|
|
287
|
+
getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element> {
|
|
288
|
+
const elements = this.querySelectorAll<Element>(qualifiedName);
|
|
289
|
+
return new HTMLCollectionOf(Array.from(elements));
|
|
290
|
+
}
|
|
291
|
+
|
|
292
|
+
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
|
|
293
|
+
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<any>;
|
|
294
|
+
getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<any>;
|
|
295
|
+
getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element>;
|
|
296
|
+
getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element> {
|
|
297
|
+
return this.getElementsByTagName(localName);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
getSelection(): any {
|
|
301
|
+
return null;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
hasFocus(): boolean {
|
|
305
|
+
return false;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
hasStorageAccess(): Promise<boolean> {
|
|
309
|
+
return Promise.resolve(false);
|
|
310
|
+
}
|
|
311
|
+
|
|
312
|
+
importNode<T extends Node>(node: T, _options?: boolean | ImportNodeOptions): T {
|
|
313
|
+
const cloned = (node as any).cloneNode(typeof _options === 'boolean' ? _options : _options?.deep);
|
|
314
|
+
(cloned as any)._ownerDocument = this;
|
|
315
|
+
return cloned;
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
open(_unused1?: string, _unused2?: string): Document;
|
|
319
|
+
open(_url: string | URL, _name: string, _features: string): any;
|
|
320
|
+
open(_arg1?: string | URL, _arg2?: string, _arg3?: string): Document | any {
|
|
321
|
+
if (arguments.length <= 2) {
|
|
322
|
+
return this;
|
|
323
|
+
}
|
|
324
|
+
return null;
|
|
325
|
+
}
|
|
326
|
+
|
|
327
|
+
queryCommandEnabled(_commandId: string): boolean {
|
|
328
|
+
return false;
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
queryCommandIndeterm(_commandId: string): boolean {
|
|
332
|
+
return false;
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
queryCommandState(_commandId: string): boolean {
|
|
336
|
+
return false;
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
queryCommandSupported(_commandId: string): boolean {
|
|
340
|
+
return false;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
queryCommandValue(_commandId: string): string {
|
|
344
|
+
return '';
|
|
345
|
+
}
|
|
346
|
+
|
|
347
|
+
releaseEvents(): void {}
|
|
348
|
+
|
|
349
|
+
requestStorageAccess(): Promise<void> {
|
|
350
|
+
return Promise.resolve();
|
|
351
|
+
}
|
|
352
|
+
|
|
353
|
+
startViewTransition(_callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): any {
|
|
354
|
+
return {};
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
write(...text: string[]): void {
|
|
358
|
+
console.log('Document.write:', text.join(''));
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
writeln(...text: string[]): void {
|
|
362
|
+
this.write(...text, '\n');
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
addEventListener(type: string, listener: any, options?: boolean | any): void {
|
|
366
|
+
// Support DOMContentLoaded and readystatechange events
|
|
367
|
+
if (type === 'DOMContentLoaded' || type === 'readystatechange') {
|
|
368
|
+
this._eventListeners.push({
|
|
369
|
+
type,
|
|
370
|
+
listener: typeof listener === 'function' ? listener : listener.handleEvent,
|
|
371
|
+
options
|
|
372
|
+
});
|
|
373
|
+
}
|
|
374
|
+
}
|
|
375
|
+
|
|
376
|
+
removeEventListener(type: string, listener: any, options?: boolean | any): void {
|
|
377
|
+
if (type === 'DOMContentLoaded' || type === 'readystatechange') {
|
|
378
|
+
const targetListener = typeof listener === 'function' ? listener : listener.handleEvent;
|
|
379
|
+
this._eventListeners = this._eventListeners.filter(
|
|
380
|
+
eventListener => !(eventListener.type === type && eventListener.listener === targetListener)
|
|
381
|
+
);
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
dispatchEvent(event: any): boolean {
|
|
386
|
+
const eventListeners = this._eventListeners.filter(listener => listener.type === event.type);
|
|
387
|
+
|
|
388
|
+
for (const eventListener of eventListeners) {
|
|
389
|
+
try {
|
|
390
|
+
eventListener.listener.call(this, event);
|
|
391
|
+
|
|
392
|
+
// Handle 'once' option
|
|
393
|
+
if (eventListener.options && typeof eventListener.options === 'object' && eventListener.options.once) {
|
|
394
|
+
this.removeEventListener(event.type, eventListener.listener);
|
|
395
|
+
}
|
|
396
|
+
} catch (error) {
|
|
397
|
+
console.error('Error in document event listener:', error);
|
|
398
|
+
}
|
|
399
|
+
}
|
|
400
|
+
|
|
401
|
+
return true;
|
|
402
|
+
}
|
|
403
|
+
|
|
404
|
+
/**
|
|
405
|
+
* Set window reference for load event dispatching
|
|
406
|
+
*/
|
|
407
|
+
setWindow(window: any): void {
|
|
408
|
+
this._window = window;
|
|
409
|
+
}
|
|
410
|
+
|
|
411
|
+
/**
|
|
412
|
+
* Change document ready state and dispatch events
|
|
413
|
+
*/
|
|
414
|
+
setReadyState(state: DocumentReadyState): void {
|
|
415
|
+
if (this._readyState === state) return;
|
|
416
|
+
|
|
417
|
+
this._readyState = state;
|
|
418
|
+
|
|
419
|
+
// Dispatch readystatechange event
|
|
420
|
+
this.dispatchEvent({
|
|
421
|
+
type: 'readystatechange',
|
|
422
|
+
target: this,
|
|
423
|
+
readyState: state
|
|
424
|
+
});
|
|
425
|
+
|
|
426
|
+
// Dispatch DOMContentLoaded when interactive
|
|
427
|
+
if (state === 'interactive') {
|
|
428
|
+
this.dispatchEvent({
|
|
429
|
+
type: 'DOMContentLoaded',
|
|
430
|
+
target: this
|
|
431
|
+
});
|
|
432
|
+
}
|
|
433
|
+
|
|
434
|
+
// Dispatch load event on window when complete
|
|
435
|
+
if (state === 'complete' && this._window) {
|
|
436
|
+
// Use setTimeout to ensure it's dispatched after current execution
|
|
437
|
+
setTimeout(() => {
|
|
438
|
+
if (this._window && this._window.dispatchEvent) {
|
|
439
|
+
this._window.dispatchEvent({
|
|
440
|
+
type: 'load',
|
|
441
|
+
target: this._window
|
|
442
|
+
});
|
|
443
|
+
}
|
|
444
|
+
}, 0);
|
|
445
|
+
}
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
/**
|
|
449
|
+
* Simulate document loading process
|
|
450
|
+
*/
|
|
451
|
+
simulateLoading(): void {
|
|
452
|
+
// Start with loading state
|
|
453
|
+
this.setReadyState('loading');
|
|
454
|
+
|
|
455
|
+
// Simulate DOM parsing completion
|
|
456
|
+
setTimeout(() => {
|
|
457
|
+
this.setReadyState('interactive');
|
|
458
|
+
|
|
459
|
+
// Simulate resource loading completion
|
|
460
|
+
setTimeout(() => {
|
|
461
|
+
this.setReadyState('complete');
|
|
462
|
+
}, 10);
|
|
463
|
+
}, 5);
|
|
464
|
+
}
|
|
465
|
+
}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import { Node } from './Node';
|
|
2
|
+
import { ParentNode } from './ParentNode';
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* The **`DocumentFragment`** interface represents a minimal document object that has no parent.
|
|
6
|
+
* It is used as a lightweight version of Document that stores a segment of a document structure comprised of nodes just like a standard document.
|
|
7
|
+
*
|
|
8
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/DocumentFragment)
|
|
9
|
+
*/
|
|
10
|
+
export interface DocumentFragment extends Node, ParentNode {
|
|
11
|
+
/**
|
|
12
|
+
* Returns the number of child elements of this DocumentFragment.
|
|
13
|
+
*/
|
|
14
|
+
readonly childElementCount: number;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Returns the first Element node within the DocumentFragment, in document order, that matches the specified selectors.
|
|
18
|
+
*/
|
|
19
|
+
querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
|
|
20
|
+
querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
|
|
21
|
+
querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
|
|
22
|
+
querySelector<E extends Element = Element>(selectors: string): E | null;
|
|
23
|
+
querySelector(selectors: string): Element | null;
|
|
24
|
+
|
|
25
|
+
/**
|
|
26
|
+
* Returns all Element nodes within the DocumentFragment that match the specified selectors.
|
|
27
|
+
*/
|
|
28
|
+
querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
|
|
29
|
+
querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
|
|
30
|
+
querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
|
|
31
|
+
querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
|
|
32
|
+
querySelectorAll(selectors: string): NodeListOf<Element>;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Returns the Element within the DocumentFragment that has the specified ID.
|
|
36
|
+
*/
|
|
37
|
+
getElementById(elementId: string): HTMLElement | null;
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
// Import types for the interface
|
|
41
|
+
import { HTMLElementTagNameMap, SVGElementTagNameMap, MathMLElementTagNameMap } from './elements';
|
|
42
|
+
import { Element } from './elements/Element';
|
|
43
|
+
import { HTMLElement } from './elements/HTMLElement';
|
|
44
|
+
import { NodeListOf } from './collection/NodeListOf';
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { ParentNodeBase } from './ParentNodeBase';
|
|
2
|
+
import { DocumentFragment } from './DocumentFragment';
|
|
3
|
+
import { Document } from './Document';
|
|
4
|
+
import {DOCUMENT_FRAGMENT_NODE, ELEMENT_NODE, Node} from './Node';
|
|
5
|
+
import { NodeBase } from './NodeBase';
|
|
6
|
+
import { Element } from './elements/Element';
|
|
7
|
+
import { HTMLElement } from './elements/HTMLElement';
|
|
8
|
+
import { HTMLElementTagNameMap, SVGElementTagNameMap, MathMLElementTagNameMap } from './elements';
|
|
9
|
+
import { NodeListOf } from './collection/NodeListOf';
|
|
10
|
+
|
|
11
|
+
/**
|
|
12
|
+
* The **`DocumentFragmentBase`** class is the concrete implementation of the DocumentFragment interface.
|
|
13
|
+
*
|
|
14
|
+
* DocumentFragment is a minimal document object that has no parent. It is used as a lightweight version of Document
|
|
15
|
+
* that stores a segment of a document structure comprised of nodes just like a standard document.
|
|
16
|
+
*/
|
|
17
|
+
export class DocumentFragmentBase extends ParentNodeBase implements DocumentFragment {
|
|
18
|
+
constructor(ownerDocument?: Document) {
|
|
19
|
+
super(DOCUMENT_FRAGMENT_NODE, '#document-fragment', ownerDocument); // DOCUMENT_FRAGMENT_NODE = 11
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
/**
|
|
23
|
+
* Returns the number of child elements of this DocumentFragment.
|
|
24
|
+
*/
|
|
25
|
+
get childElementCount(): number {
|
|
26
|
+
let count = 0;
|
|
27
|
+
for (const child of this._childNodesInternal) {
|
|
28
|
+
if (child && child.nodeType === ELEMENT_NODE) { // ELEMENT_NODE
|
|
29
|
+
count++;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
return count;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
/**
|
|
36
|
+
* Returns the first Element node within the DocumentFragment that matches the specified selectors.
|
|
37
|
+
*/
|
|
38
|
+
querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;
|
|
39
|
+
querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;
|
|
40
|
+
querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;
|
|
41
|
+
querySelector<E extends Element = Element>(selectors: string): E | null;
|
|
42
|
+
querySelector(selectors: string): Element | null;
|
|
43
|
+
querySelector(selectors: string): Element | null {
|
|
44
|
+
const elements = this.querySelectorAll(selectors);
|
|
45
|
+
return elements.length > 0 ? elements.item(0) : null;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
/**
|
|
49
|
+
* Returns all Element nodes within the DocumentFragment that match the specified selectors.
|
|
50
|
+
*/
|
|
51
|
+
querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;
|
|
52
|
+
querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;
|
|
53
|
+
querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;
|
|
54
|
+
querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;
|
|
55
|
+
querySelectorAll(selectors: string): NodeListOf<Element>;
|
|
56
|
+
querySelectorAll(selectors: string): NodeListOf<Element> {
|
|
57
|
+
// Use the inherited querySelectorAll from ParentNodeBase
|
|
58
|
+
return super.querySelectorAll(selectors);
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* Returns the Element within the DocumentFragment that has the specified ID.
|
|
63
|
+
*/
|
|
64
|
+
getElementById(elementId: string): HTMLElement | null {
|
|
65
|
+
const element = this.querySelector(`#${elementId}`);
|
|
66
|
+
return element as HTMLElement | null;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
/**
|
|
70
|
+
* Override cloneNode to return DocumentFragment
|
|
71
|
+
*/
|
|
72
|
+
cloneNode(deep?: boolean): DocumentFragmentBase {
|
|
73
|
+
const clone = new DocumentFragmentBase(this._ownerDocument as Document);
|
|
74
|
+
|
|
75
|
+
if (deep) {
|
|
76
|
+
for (const child of this._childNodesInternal) {
|
|
77
|
+
if (child && 'cloneNode' in child) {
|
|
78
|
+
clone.appendChild((child as any).cloneNode(true));
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
return clone;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
/**
|
|
87
|
+
* Override appendChild to handle DocumentFragment behavior
|
|
88
|
+
* When a DocumentFragment is appended to another node, its children are moved, not the fragment itself
|
|
89
|
+
*/
|
|
90
|
+
appendChild<T extends Node>(node: T): T {
|
|
91
|
+
// If the node being appended is a DocumentFragment, move its children instead
|
|
92
|
+
if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {
|
|
93
|
+
const fragment = node as any;
|
|
94
|
+
|
|
95
|
+
// Move all children from fragment to this node
|
|
96
|
+
while (fragment._childNodesInternal && fragment._childNodesInternal.length > 0) {
|
|
97
|
+
const child = fragment._childNodesInternal[0];
|
|
98
|
+
if (child) {
|
|
99
|
+
fragment.removeChild(child);
|
|
100
|
+
super.appendChild(child);
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return node;
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
return super.appendChild(node);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Options for the getRootNode() method.
|
|
3
|
+
*
|
|
4
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Node/getRootNode)
|
|
5
|
+
*/
|
|
6
|
+
export interface GetRootNodeOptions {
|
|
7
|
+
/**
|
|
8
|
+
* A boolean value that indicates whether the shadow root, if any, should be returned.
|
|
9
|
+
* If set to false (default), a shadow root node is not returned.
|
|
10
|
+
* If set to true, a shadow root node is returned.
|
|
11
|
+
*/
|
|
12
|
+
composed?: boolean;
|
|
13
|
+
}
|