@dooboostore/dom-parser 1.0.2 → 1.0.4
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 +369 -6
- package/dist/cjs/DomParser.js +11 -1
- package/dist/cjs/DomParser.js.map +2 -2
- package/dist/cjs/bundle-entry.js +36 -0
- package/dist/cjs/bundle-entry.js.map +7 -0
- package/dist/cjs/factory/ElementFactory.js +31 -7
- package/dist/cjs/factory/ElementFactory.js.map +2 -2
- package/dist/cjs/index.js +26 -0
- package/dist/cjs/index.js.map +2 -2
- package/dist/cjs/node/CharacterData.js.map +1 -1
- package/dist/cjs/node/ChildNode.js +0 -15
- package/dist/cjs/node/ChildNode.js.map +3 -3
- package/dist/cjs/node/ChildNodeBase.js +20 -0
- package/dist/cjs/node/ChildNodeBase.js.map +2 -2
- package/dist/cjs/node/Comment.js.map +2 -2
- package/dist/cjs/node/Document.js +0 -27
- package/dist/cjs/node/Document.js.map +4 -4
- package/dist/cjs/node/DocumentBase.js +168 -205
- package/dist/cjs/node/DocumentBase.js.map +2 -2
- package/dist/cjs/node/DocumentFragment.js +0 -15
- package/dist/cjs/node/DocumentFragment.js.map +3 -3
- package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
- package/dist/cjs/node/Node.js.map +1 -1
- package/dist/cjs/node/NodeBase.js +44 -2
- package/dist/cjs/node/NodeBase.js.map +2 -2
- package/dist/cjs/node/NodeFilter.js +43 -0
- package/dist/cjs/node/NodeFilter.js.map +7 -0
- package/dist/cjs/node/NodeIterator.js +1 -28
- package/dist/cjs/node/NodeIterator.js.map +2 -2
- package/dist/cjs/node/ParentNode.js +0 -15
- package/dist/cjs/node/ParentNode.js.map +3 -3
- package/dist/cjs/node/ParentNodeBase.js +10 -10
- package/dist/cjs/node/ParentNodeBase.js.map +3 -3
- package/dist/cjs/node/ShadowRootBase.js +79 -0
- package/dist/cjs/node/ShadowRootBase.js.map +7 -0
- package/dist/cjs/node/Text.js +0 -15
- package/dist/cjs/node/Text.js.map +3 -3
- package/dist/cjs/node/TextBase.js +0 -3
- package/dist/cjs/node/TextBase.js.map +2 -2
- package/dist/cjs/node/TreeWalker.js +272 -0
- package/dist/cjs/node/TreeWalker.js.map +7 -0
- package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
- package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
- package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
- package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
- package/dist/cjs/node/collection/NodeList.js.map +1 -1
- package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
- package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
- package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
- package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
- package/dist/cjs/node/collection/index.js +6 -6
- package/dist/cjs/node/collection/index.js.map +2 -2
- package/dist/cjs/node/elements/Element.js +0 -15
- package/dist/cjs/node/elements/Element.js.map +3 -3
- package/dist/cjs/node/elements/ElementBase.js +163 -331
- package/dist/cjs/node/elements/ElementBase.js.map +3 -3
- package/dist/cjs/node/elements/HTMLAnchorElement.js +2 -2
- package/dist/cjs/node/elements/HTMLAnchorElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLAreaElement.js +2 -2
- package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
- package/dist/cjs/node/elements/{HTMLGenericElement.js → HTMLAudioElement.js} +8 -11
- package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLBaseElement.js +2 -2
- package/dist/cjs/node/elements/HTMLBaseElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLBodyElement.js +2 -2
- package/dist/cjs/node/elements/HTMLBodyElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLButtonElement.js +3 -3
- package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLCanvasElement.js +2 -2
- package/dist/cjs/node/elements/HTMLCanvasElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLCaptionElement.js +2 -2
- package/dist/cjs/node/elements/HTMLCaptionElement.js.map +2 -2
- package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLDListElement.js} +9 -16
- package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
- package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
- package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
- package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
- package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLDivElement.js +2 -2
- package/dist/cjs/node/elements/HTMLDivElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLElement.js +13 -0
- package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLElementBase.js +44 -44
- package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
- package/dist/cjs/node/elements/HTMLEmbedElement.js +2 -2
- package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
- package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLFormElement.js +2 -2
- package/dist/cjs/node/elements/HTMLFormElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLH1Element.js +2 -2
- package/dist/cjs/node/elements/HTMLH1Element.js.map +2 -2
- package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
- package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLHeadElement.js +2 -2
- package/dist/cjs/node/elements/HTMLHeadElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLHtmlElement.js +2 -2
- package/dist/cjs/node/elements/HTMLHtmlElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
- package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLImgElement.js +2 -2
- package/dist/cjs/node/elements/HTMLImgElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLInputElement.js +2 -2
- package/dist/cjs/node/elements/HTMLInputElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLLIElement.js +2 -2
- package/dist/cjs/node/elements/HTMLLIElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
- package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
- package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLLinkElement.js +2 -2
- package/dist/cjs/node/elements/HTMLLinkElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
- package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLMetaElement.js +2 -2
- package/dist/cjs/node/elements/HTMLMetaElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
- package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLModElement.js +29 -0
- package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLOListElement.js +2 -2
- package/dist/cjs/node/elements/HTMLOListElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
- package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
- package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
- package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
- package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLPElement.js +2 -2
- package/dist/cjs/node/elements/HTMLPElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
- package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
- package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
- package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
- package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
- package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLScriptElement.js +2 -2
- package/dist/cjs/node/elements/HTMLScriptElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
- package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
- package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
- package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLSpanElement.js +2 -2
- package/dist/cjs/node/elements/HTMLSpanElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLStyleElement.js +2 -2
- package/dist/cjs/node/elements/HTMLStyleElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTableElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTbodyElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTdElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTemplateElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
- package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTfootElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLThElement.js +2 -2
- package/dist/cjs/node/elements/HTMLThElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTheadElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
- package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTitleElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTitleElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTrElement.js +2 -2
- package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
- package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLUListElement.js +2 -2
- package/dist/cjs/node/elements/HTMLUListElement.js.map +2 -2
- package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
- package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
- package/dist/cjs/node/elements/MathMLElement.js +2 -2
- package/dist/cjs/node/elements/MathMLElement.js.map +2 -2
- package/dist/cjs/node/elements/SVGElement.js +2 -2
- package/dist/cjs/node/elements/SVGElement.js.map +2 -2
- package/dist/cjs/node/elements/index.js +181 -94
- package/dist/cjs/node/elements/index.js.map +2 -2
- package/dist/cjs/node/index.js +6 -16
- package/dist/cjs/node/index.js.map +2 -2
- package/dist/cjs/utils/CSSSelector.js.map +2 -2
- package/dist/cjs/window/CustomElementRegistryImp.js +113 -0
- package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
- package/dist/cjs/window/Window.js +0 -15
- package/dist/cjs/window/Window.js.map +3 -3
- package/dist/cjs/window/WindowBase.js +210 -613
- package/dist/cjs/window/WindowBase.js.map +2 -2
- package/dist/cjs/window/index.js +0 -5
- package/dist/cjs/window/index.js.map +2 -2
- package/dist/esm/DomParser.js +11 -1
- package/dist/esm/DomParser.js.map +2 -2
- package/dist/esm/bundle-entry.js +6 -0
- package/dist/esm/bundle-entry.js.map +7 -0
- package/dist/esm/factory/ElementFactory.js +32 -8
- package/dist/esm/factory/ElementFactory.js.map +2 -2
- package/dist/esm/index.js +26 -0
- package/dist/esm/index.js.map +2 -2
- package/dist/esm/node/ChildNodeBase.js +20 -0
- package/dist/esm/node/ChildNodeBase.js.map +2 -2
- package/dist/esm/node/Comment.js.map +2 -2
- package/dist/esm/node/Document.js +0 -8
- package/dist/esm/node/Document.js.map +4 -4
- package/dist/esm/node/DocumentBase.js +165 -202
- package/dist/esm/node/DocumentBase.js.map +2 -2
- package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
- package/dist/esm/node/Node.js.map +1 -1
- package/dist/esm/node/NodeBase.js +45 -22
- package/dist/esm/node/NodeBase.js.map +2 -2
- package/dist/esm/node/NodeFilter.js +24 -0
- package/dist/esm/node/NodeFilter.js.map +7 -0
- package/dist/esm/node/NodeIterator.js +1 -28
- package/dist/esm/node/NodeIterator.js.map +2 -2
- package/dist/esm/node/ParentNodeBase.js +4 -4
- package/dist/esm/node/ParentNodeBase.js.map +2 -2
- package/dist/esm/node/ShadowRootBase.js +60 -0
- package/dist/esm/node/ShadowRootBase.js.map +7 -0
- package/dist/esm/node/TextBase.js +0 -3
- package/dist/esm/node/TextBase.js.map +2 -2
- package/dist/esm/node/TreeWalker.js +253 -0
- package/dist/esm/node/TreeWalker.js.map +7 -0
- package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
- package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
- package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
- package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
- package/dist/esm/node/collection/NodeList.js.map +1 -1
- package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
- package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
- package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
- package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
- package/dist/esm/node/collection/index.js +6 -6
- package/dist/esm/node/collection/index.js.map +2 -2
- package/dist/esm/node/elements/ElementBase.js +163 -331
- package/dist/esm/node/elements/ElementBase.js.map +3 -3
- package/dist/esm/node/elements/HTMLAnchorElement.js +2 -2
- package/dist/esm/node/elements/HTMLAnchorElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLAreaElement.js +2 -2
- package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
- package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLBaseElement.js +2 -2
- package/dist/esm/node/elements/HTMLBaseElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLBodyElement.js +2 -2
- package/dist/esm/node/elements/HTMLBodyElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLButtonElement.js +3 -3
- package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLCanvasElement.js +2 -2
- package/dist/esm/node/elements/HTMLCanvasElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLCaptionElement.js +2 -2
- package/dist/esm/node/elements/HTMLCaptionElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLDListElement.js +10 -0
- package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLDataElement.js +10 -0
- package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
- package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
- package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
- package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLDivElement.js +2 -2
- package/dist/esm/node/elements/HTMLDivElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLElement.js +9 -0
- package/dist/esm/node/elements/HTMLElement.js.map +3 -3
- package/dist/esm/node/elements/HTMLElementBase.js +43 -43
- package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
- package/dist/esm/node/elements/HTMLEmbedElement.js +2 -2
- package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
- package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLFormElement.js +2 -2
- package/dist/esm/node/elements/HTMLFormElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLH1Element.js +2 -2
- package/dist/esm/node/elements/HTMLH1Element.js.map +2 -2
- package/dist/esm/node/elements/HTMLHRElement.js +10 -0
- package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLHeadElement.js +2 -2
- package/dist/esm/node/elements/HTMLHeadElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLHtmlElement.js +2 -2
- package/dist/esm/node/elements/HTMLHtmlElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
- package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLImgElement.js +2 -2
- package/dist/esm/node/elements/HTMLImgElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLInputElement.js +2 -2
- package/dist/esm/node/elements/HTMLInputElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLLIElement.js +2 -2
- package/dist/esm/node/elements/HTMLLIElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
- package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
- package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLLinkElement.js +2 -2
- package/dist/esm/node/elements/HTMLLinkElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLMapElement.js +10 -0
- package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLMetaElement.js +2 -2
- package/dist/esm/node/elements/HTMLMetaElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
- package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLModElement.js +10 -0
- package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLOListElement.js +2 -2
- package/dist/esm/node/elements/HTMLOListElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
- package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
- package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
- package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
- package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLPElement.js +2 -2
- package/dist/esm/node/elements/HTMLPElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLParamElement.js +10 -0
- package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
- package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLPreElement.js +10 -0
- package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
- package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
- package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLScriptElement.js +2 -2
- package/dist/esm/node/elements/HTMLScriptElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
- package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
- package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
- package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLSpanElement.js +2 -2
- package/dist/esm/node/elements/HTMLSpanElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLStyleElement.js +2 -2
- package/dist/esm/node/elements/HTMLStyleElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTableElement.js +2 -2
- package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTbodyElement.js +2 -2
- package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTdElement.js +2 -2
- package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTemplateElement.js +2 -2
- package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
- package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTfootElement.js +2 -2
- package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLThElement.js +2 -2
- package/dist/esm/node/elements/HTMLThElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTheadElement.js +2 -2
- package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
- package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTitleElement.js +2 -2
- package/dist/esm/node/elements/HTMLTitleElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTrElement.js +2 -2
- package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
- package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLUListElement.js +2 -2
- package/dist/esm/node/elements/HTMLUListElement.js.map +2 -2
- package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
- package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
- package/dist/esm/node/elements/MathMLElement.js +2 -2
- package/dist/esm/node/elements/MathMLElement.js.map +2 -2
- package/dist/esm/node/elements/SVGElement.js +2 -2
- package/dist/esm/node/elements/SVGElement.js.map +2 -2
- package/dist/esm/node/elements/index.js +182 -95
- package/dist/esm/node/elements/index.js.map +2 -2
- package/dist/esm/node/index.js +7 -17
- package/dist/esm/node/index.js.map +2 -2
- package/dist/esm/utils/CSSSelector.js.map +2 -2
- package/dist/esm/window/CustomElementRegistryImp.js +94 -0
- package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
- package/dist/esm/window/WindowBase.js +259 -597
- package/dist/esm/window/WindowBase.js.map +2 -2
- package/dist/esm/window/index.js +0 -5
- package/dist/esm/window/index.js.map +2 -2
- package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3477 -3558
- package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
- package/dist/types/DomParser.d.ts.map +1 -1
- package/dist/types/bundle-entry.d.ts +3 -0
- package/dist/types/bundle-entry.d.ts.map +1 -0
- package/dist/types/factory/ElementFactory.d.ts +1 -1
- package/dist/types/factory/ElementFactory.d.ts.map +1 -1
- package/dist/types/index.d.ts +14 -1
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/node/CharacterData.d.ts +0 -2
- package/dist/types/node/CharacterData.d.ts.map +1 -1
- package/dist/types/node/ChildNode.d.ts +0 -38
- package/dist/types/node/ChildNode.d.ts.map +1 -1
- package/dist/types/node/ChildNodeBase.d.ts +6 -4
- package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
- package/dist/types/node/Comment.d.ts +1 -1
- package/dist/types/node/Comment.d.ts.map +1 -1
- package/dist/types/node/Document.d.ts +0 -856
- package/dist/types/node/Document.d.ts.map +1 -1
- package/dist/types/node/DocumentBase.d.ts +68 -110
- package/dist/types/node/DocumentBase.d.ts.map +1 -1
- package/dist/types/node/DocumentFragment.d.ts +0 -38
- package/dist/types/node/DocumentFragment.d.ts.map +1 -1
- package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
- package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
- package/dist/types/node/Node.d.ts +0 -213
- package/dist/types/node/Node.d.ts.map +1 -1
- package/dist/types/node/NodeBase.d.ts +11 -8
- package/dist/types/node/NodeBase.d.ts.map +1 -1
- package/dist/types/node/NodeFilter.d.ts +25 -0
- package/dist/types/node/NodeFilter.d.ts.map +1 -0
- package/dist/types/node/NodeIterator.d.ts +0 -34
- package/dist/types/node/NodeIterator.d.ts.map +1 -1
- package/dist/types/node/ParentNode.d.ts +0 -84
- package/dist/types/node/ParentNode.d.ts.map +1 -1
- package/dist/types/node/ParentNodeBase.d.ts +0 -5
- package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
- package/dist/types/node/ShadowRootBase.d.ts +36 -0
- package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
- package/dist/types/node/Text.d.ts +0 -24
- package/dist/types/node/Text.d.ts.map +1 -1
- package/dist/types/node/TextBase.d.ts +2 -3
- package/dist/types/node/TextBase.d.ts.map +1 -1
- package/dist/types/node/TreeWalker.d.ts +48 -0
- package/dist/types/node/TreeWalker.d.ts.map +1 -0
- package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
- package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
- package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
- package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
- package/dist/types/node/collection/NodeList.d.ts +0 -1
- package/dist/types/node/collection/NodeList.d.ts.map +1 -1
- package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
- package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
- package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
- package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
- package/dist/types/node/collection/index.d.ts +3 -3
- package/dist/types/node/collection/index.d.ts.map +1 -1
- package/dist/types/node/elements/Element.d.ts +0 -687
- package/dist/types/node/elements/Element.d.ts.map +1 -1
- package/dist/types/node/elements/ElementBase.d.ts +98 -74
- package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLAnchorElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLAreaElement.d.ts +2 -3
- package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
- package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLBaseElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLBodyElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLButtonElement.d.ts +3 -3
- package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLCanvasElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLCaptionElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLDivElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLElement.d.ts +3 -119
- package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
- package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLEmbedElement.d.ts +2 -3
- package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLFormElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLH1Element.d.ts +2 -2
- package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLHeadElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLHtmlElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLImgElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLInputElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLLIElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLLinkElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLMetaElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLOListElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLPElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLScriptElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLSpanElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLStyleElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTableElement.d.ts +5 -6
- package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTbodyElement.d.ts +3 -4
- package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTdElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTemplateElement.d.ts +2 -3
- package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTfootElement.d.ts +4 -5
- package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLThElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTheadElement.d.ts +4 -5
- package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTitleElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTrElement.d.ts +4 -5
- package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
- package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLUListElement.d.ts +2 -2
- package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
- package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
- package/dist/types/node/elements/MathMLElement.d.ts +2 -2
- package/dist/types/node/elements/MathMLElement.d.ts.map +1 -1
- package/dist/types/node/elements/SVGElement.d.ts +2 -2
- package/dist/types/node/elements/SVGElement.d.ts.map +1 -1
- package/dist/types/node/elements/index.d.ts +108 -55
- package/dist/types/node/elements/index.d.ts.map +1 -1
- package/dist/types/node/index.d.ts +4 -7
- package/dist/types/node/index.d.ts.map +1 -1
- package/dist/types/utils/CSSSelector.d.ts +0 -1
- package/dist/types/utils/CSSSelector.d.ts.map +1 -1
- package/dist/types/window/CustomElementRegistryImp.d.ts +19 -0
- package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
- package/dist/types/window/Window.d.ts +0 -619
- package/dist/types/window/Window.d.ts.map +1 -1
- package/dist/types/window/WindowBase.d.ts +253 -286
- package/dist/types/window/WindowBase.d.ts.map +1 -1
- package/dist/types/window/index.d.ts +0 -1
- package/dist/types/window/index.d.ts.map +1 -1
- package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3482 -3563
- package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
- package/package.json +6 -1
- package/src/DomParser.ts +29 -20
- package/src/bundle-entry.ts +2 -0
- package/src/factory/ElementFactory.ts +87 -54
- package/src/index.ts +22 -10
- package/src/node/CharacterData.ts +0 -2
- package/src/node/ChildNode.ts +42 -42
- package/src/node/ChildNodeBase.ts +60 -39
- package/src/node/Comment.ts +60 -60
- package/src/node/Document.ts +129 -882
- package/src/node/DocumentBase.ts +371 -467
- package/src/node/DocumentFragment.ts +38 -44
- package/src/node/DocumentFragmentBase.ts +4 -9
- package/src/node/Node.ts +231 -224
- package/src/node/NodeBase.ts +469 -443
- package/src/node/NodeFilter.ts +50 -0
- package/src/node/NodeIterator.ts +117 -172
- package/src/node/ParentNode.ts +93 -93
- package/src/node/ParentNodeBase.ts +7 -10
- package/src/node/ShadowRootBase.ts +87 -0
- package/src/node/Text.ts +30 -30
- package/src/node/TextBase.ts +92 -94
- package/src/node/TreeWalker.ts +280 -0
- package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
- package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
- package/src/node/collection/NodeList.ts +1 -1
- package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
- package/src/node/collection/StylePropertyMapImpl.ts +60 -0
- package/src/node/collection/index.ts +3 -3
- package/src/node/elements/Element.ts +212 -772
- package/src/node/elements/ElementBase.ts +840 -1204
- package/src/node/elements/HTMLAnchorElement.ts +2 -1
- package/src/node/elements/HTMLAreaElement.ts +2 -2
- package/src/node/elements/HTMLAudioElement.ts +11 -0
- package/src/node/elements/HTMLBaseElement.ts +2 -1
- package/src/node/elements/HTMLBodyElement.ts +2 -1
- package/src/node/elements/HTMLButtonElement.ts +65 -64
- package/src/node/elements/HTMLCanvasElement.ts +2 -1
- package/src/node/elements/HTMLCaptionElement.ts +2 -1
- package/src/node/elements/HTMLDListElement.ts +8 -0
- package/src/node/elements/HTMLDataElement.ts +7 -0
- package/src/node/elements/HTMLDataListElement.ts +8 -0
- package/src/node/elements/HTMLDetailsElement.ts +8 -0
- package/src/node/elements/HTMLDialogElement.ts +8 -0
- package/src/node/elements/HTMLDivElement.ts +2 -1
- package/src/node/elements/HTMLElement.ts +6 -137
- package/src/node/elements/HTMLElementBase.ts +472 -355
- package/src/node/elements/HTMLEmbedElement.ts +2 -2
- package/src/node/elements/HTMLFieldSetElement.ts +8 -0
- package/src/node/elements/HTMLFormElement.ts +2 -1
- package/src/node/elements/HTMLH1Element.ts +2 -1
- package/src/node/elements/HTMLHRElement.ts +8 -0
- package/src/node/elements/HTMLHeadElement.ts +2 -1
- package/src/node/elements/HTMLHtmlElement.ts +2 -1
- package/src/node/elements/HTMLIFrameElement.ts +8 -0
- package/src/node/elements/HTMLImgElement.ts +2 -1
- package/src/node/elements/HTMLInputElement.ts +2 -1
- package/src/node/elements/HTMLLIElement.ts +2 -1
- package/src/node/elements/HTMLLabelElement.ts +3 -0
- package/src/node/elements/HTMLLegendElement.ts +3 -0
- package/src/node/elements/HTMLLinkElement.ts +2 -1
- package/src/node/elements/HTMLMapElement.ts +3 -0
- package/src/node/elements/HTMLMetaElement.ts +2 -1
- package/src/node/elements/HTMLMeterElement.ts +3 -0
- package/src/node/elements/HTMLModElement.ts +3 -0
- package/src/node/elements/HTMLOListElement.ts +2 -1
- package/src/node/elements/HTMLObjectElement.ts +3 -0
- package/src/node/elements/HTMLOptGroupElement.ts +3 -0
- package/src/node/elements/HTMLOptionElement.ts +3 -0
- package/src/node/elements/HTMLOutputElement.ts +3 -0
- package/src/node/elements/HTMLPElement.ts +2 -1
- package/src/node/elements/HTMLParamElement.ts +3 -0
- package/src/node/elements/HTMLPictureElement.ts +3 -0
- package/src/node/elements/HTMLPreElement.ts +3 -0
- package/src/node/elements/HTMLProgressElement.ts +3 -0
- package/src/node/elements/HTMLQuoteElement.ts +3 -0
- package/src/node/elements/HTMLScriptElement.ts +2 -1
- package/src/node/elements/HTMLSelectElement.ts +3 -0
- package/src/node/elements/HTMLSlotElement.ts +3 -0
- package/src/node/elements/HTMLSourceElement.ts +3 -0
- package/src/node/elements/HTMLSpanElement.ts +2 -1
- package/src/node/elements/HTMLStyleElement.ts +2 -1
- package/src/node/elements/HTMLTableElement.ts +5 -8
- package/src/node/elements/HTMLTbodyElement.ts +4 -4
- package/src/node/elements/HTMLTdElement.ts +3 -2
- package/src/node/elements/HTMLTemplateElement.ts +5 -7
- package/src/node/elements/HTMLTextAreaElement.ts +3 -0
- package/src/node/elements/HTMLTfootElement.ts +4 -4
- package/src/node/elements/HTMLThElement.ts +2 -1
- package/src/node/elements/HTMLTheadElement.ts +5 -5
- package/src/node/elements/HTMLTimeElement.ts +3 -0
- package/src/node/elements/HTMLTitleElement.ts +2 -1
- package/src/node/elements/HTMLTrElement.ts +7 -5
- package/src/node/elements/HTMLTrackElement.ts +3 -0
- package/src/node/elements/HTMLUListElement.ts +2 -1
- package/src/node/elements/HTMLVideoElement.ts +11 -0
- package/src/node/elements/MathMLElement.ts +2 -1
- package/src/node/elements/SVGElement.ts +2 -1
- package/src/node/elements/index.ts +231 -153
- package/src/node/index.ts +8 -8
- package/src/utils/CSSSelector.ts +0 -1
- package/src/window/CustomElementRegistryImp.ts +138 -0
- package/src/window/Window.ts +716 -715
- package/src/window/WindowBase.ts +482 -847
- package/src/window/index.ts +0 -1
- package/tsconfig.json +1 -0
- package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
- package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
- package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
- package/dist/cjs/node/elements/HTMLGenericElement.js.map +0 -7
- package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
- package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
- package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
- package/dist/esm/node/collection/NodeListOf.js.map +0 -7
- package/dist/esm/node/elements/HTMLGenericElement.js +0 -13
- package/dist/esm/node/elements/HTMLGenericElement.js.map +0 -7
- package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
- package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
- package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
- package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
- package/dist/types/node/elements/HTMLGenericElement.d.ts +0 -6
- package/dist/types/node/elements/HTMLGenericElement.d.ts.map +0 -1
- package/src/node/collection/HTMLCollectionOf.ts +0 -26
- package/src/node/elements/HTMLGenericElement.ts +0 -13
|
@@ -1,149 +1,160 @@
|
|
|
1
1
|
import { ParentNodeBase } from "./ParentNodeBase.js";
|
|
2
2
|
import { DOCUMENT_NODE } from "./Node.js";
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import { NodeListOf } from "./collection/NodeListOf.js";
|
|
7
|
-
import { ElementFactory } from "../factory/index.js";
|
|
8
|
-
import { NodeIterator, NodeFilter } from "./NodeIterator.js";
|
|
3
|
+
import { HTMLCollectionOfImp } from "./collection/HTMLCollectionOfImp.js";
|
|
4
|
+
import { NodeListOfImp } from "./collection/NodeListOfImp.js";
|
|
5
|
+
import { ElementFactory } from "../factory/ElementFactory.js";
|
|
9
6
|
class DocumentBase extends ParentNodeBase {
|
|
10
7
|
constructor() {
|
|
11
8
|
super(DOCUMENT_NODE, "#document");
|
|
12
|
-
|
|
13
|
-
this._eventListeners = [];
|
|
14
|
-
this._readyState = "uninitialized";
|
|
9
|
+
this._readyState = "loading";
|
|
15
10
|
this._window = null;
|
|
16
|
-
|
|
17
|
-
// Properties
|
|
18
|
-
this.URL = "about:blank";
|
|
19
|
-
this.alinkColor = "";
|
|
20
|
-
this.all = null;
|
|
21
|
-
this.anchors = new HTMLCollectionOf([]);
|
|
22
|
-
this.applets = new HTMLCollection([]);
|
|
23
|
-
this.bgColor = "";
|
|
24
|
-
this.body = null;
|
|
25
|
-
this.characterSet = "UTF-8";
|
|
26
|
-
this.charset = "UTF-8";
|
|
27
|
-
this.compatMode = "CSS1Compat";
|
|
28
|
-
this.contentType = "text/html";
|
|
11
|
+
this._title = "";
|
|
29
12
|
this.cookie = "";
|
|
30
|
-
this.currentScript = null;
|
|
31
|
-
this.defaultView = null;
|
|
32
13
|
this.designMode = "off";
|
|
33
|
-
this.dir = "";
|
|
34
|
-
this.doctype = null;
|
|
35
|
-
this.documentElement = null;
|
|
36
|
-
this.documentURI = "about:blank";
|
|
14
|
+
this.dir = "ltr";
|
|
37
15
|
this.domain = "";
|
|
38
|
-
this.embeds = new HTMLCollectionOf([]);
|
|
39
|
-
this.fgColor = "";
|
|
40
|
-
this.forms = new HTMLCollectionOf([]);
|
|
41
|
-
this.fragmentDirective = null;
|
|
42
|
-
this.fullscreen = false;
|
|
43
|
-
this.fullscreenEnabled = false;
|
|
44
|
-
this.head = null;
|
|
45
|
-
this.hidden = false;
|
|
46
|
-
this.images = new HTMLCollectionOf([]);
|
|
47
|
-
this.implementation = null;
|
|
48
|
-
this.inputEncoding = "UTF-8";
|
|
49
|
-
this.lastModified = (/* @__PURE__ */ new Date()).toString();
|
|
50
|
-
this.linkColor = "";
|
|
51
|
-
this.links = new HTMLCollectionOf([]);
|
|
52
|
-
// Location property - simple implementation for Document
|
|
53
|
-
this._location = {
|
|
54
|
-
href: "about:blank",
|
|
55
|
-
protocol: "about:",
|
|
56
|
-
host: "",
|
|
57
|
-
hostname: "",
|
|
58
|
-
port: "",
|
|
59
|
-
pathname: "blank",
|
|
60
|
-
search: "",
|
|
61
|
-
hash: "",
|
|
62
|
-
origin: "null",
|
|
63
|
-
assign: (url) => {
|
|
64
|
-
this._location.href = url;
|
|
65
|
-
},
|
|
66
|
-
replace: (url) => {
|
|
67
|
-
this._location.href = url;
|
|
68
|
-
},
|
|
69
|
-
reload: () => {
|
|
70
|
-
},
|
|
71
|
-
// @ts-ignore
|
|
72
|
-
toString: () => this._location.href
|
|
73
|
-
};
|
|
74
|
-
// Event handlers
|
|
75
|
-
this.onfullscreenchange = null;
|
|
76
|
-
this.onfullscreenerror = null;
|
|
77
|
-
this.onpointerlockchange = null;
|
|
78
|
-
this.onpointerlockerror = null;
|
|
79
|
-
this.onreadystatechange = null;
|
|
80
|
-
this.onvisibilitychange = null;
|
|
81
|
-
this.pictureInPictureEnabled = false;
|
|
82
|
-
this.plugins = new HTMLCollectionOf([]);
|
|
83
16
|
this.referrer = "";
|
|
84
|
-
this.
|
|
85
|
-
this.scripts = new HTMLCollectionOf([]);
|
|
86
|
-
this.scrollingElement = null;
|
|
87
|
-
this.timeline = null;
|
|
88
|
-
this.visibilityState = "visible";
|
|
89
|
-
this.vlinkColor = "";
|
|
90
|
-
this._ownerDocument = null;
|
|
91
|
-
const documentElement = this.createElement("html");
|
|
92
|
-
const head = this.createElement("head");
|
|
93
|
-
const body = this.createElement("body");
|
|
94
|
-
documentElement.appendChild(head);
|
|
95
|
-
documentElement.appendChild(body);
|
|
96
|
-
this.appendChild(documentElement);
|
|
97
|
-
this.documentElement = documentElement;
|
|
98
|
-
this.head = head;
|
|
99
|
-
this.body = body;
|
|
17
|
+
this._ownerDocument = this;
|
|
100
18
|
}
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
this.
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
this._location.port = url.port;
|
|
115
|
-
this._location.pathname = url.pathname;
|
|
116
|
-
this._location.search = url.search;
|
|
117
|
-
this._location.hash = url.hash;
|
|
118
|
-
this._location.origin = url.origin;
|
|
119
|
-
} catch (e) {
|
|
19
|
+
get title() {
|
|
20
|
+
const titleEl = this.querySelector("title");
|
|
21
|
+
return titleEl ? titleEl.textContent || "" : this._title || "";
|
|
22
|
+
}
|
|
23
|
+
set title(value) {
|
|
24
|
+
this._title = value;
|
|
25
|
+
let titleEl = this.querySelector("title");
|
|
26
|
+
if (!titleEl && this.head) {
|
|
27
|
+
titleEl = this.createElement("title");
|
|
28
|
+
this.head.appendChild(titleEl);
|
|
29
|
+
}
|
|
30
|
+
if (titleEl) {
|
|
31
|
+
titleEl.textContent = value;
|
|
120
32
|
}
|
|
121
33
|
}
|
|
34
|
+
get URL() {
|
|
35
|
+
return this.location?.href || "";
|
|
36
|
+
}
|
|
37
|
+
get alinkColor() {
|
|
38
|
+
return "";
|
|
39
|
+
}
|
|
40
|
+
set alinkColor(_) {
|
|
41
|
+
}
|
|
42
|
+
get all() {
|
|
43
|
+
return [];
|
|
44
|
+
}
|
|
45
|
+
get anchors() {
|
|
46
|
+
return [];
|
|
47
|
+
}
|
|
48
|
+
get applets() {
|
|
49
|
+
return [];
|
|
50
|
+
}
|
|
51
|
+
get bgColor() {
|
|
52
|
+
return "";
|
|
53
|
+
}
|
|
54
|
+
set bgColor(_) {
|
|
55
|
+
}
|
|
56
|
+
get characterSet() {
|
|
57
|
+
return "UTF-8";
|
|
58
|
+
}
|
|
59
|
+
get charset() {
|
|
60
|
+
return "UTF-8";
|
|
61
|
+
}
|
|
62
|
+
get compatMode() {
|
|
63
|
+
return "CSS1Compat";
|
|
64
|
+
}
|
|
65
|
+
get contentType() {
|
|
66
|
+
return "text/html";
|
|
67
|
+
}
|
|
68
|
+
get currentScript() {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
get defaultView() {
|
|
72
|
+
return this._window;
|
|
73
|
+
}
|
|
74
|
+
get doctype() {
|
|
75
|
+
return null;
|
|
76
|
+
}
|
|
77
|
+
get documentURI() {
|
|
78
|
+
return this.URL;
|
|
79
|
+
}
|
|
80
|
+
get embeds() {
|
|
81
|
+
return [];
|
|
82
|
+
}
|
|
83
|
+
get fgColor() {
|
|
84
|
+
return "";
|
|
85
|
+
}
|
|
86
|
+
set fgColor(_) {
|
|
87
|
+
}
|
|
88
|
+
get forms() {
|
|
89
|
+
return [];
|
|
90
|
+
}
|
|
91
|
+
get fragmentDirective() {
|
|
92
|
+
return {};
|
|
93
|
+
}
|
|
94
|
+
get fullscreen() {
|
|
95
|
+
return false;
|
|
96
|
+
}
|
|
97
|
+
get fullscreenEnabled() {
|
|
98
|
+
return false;
|
|
99
|
+
}
|
|
100
|
+
get hidden() {
|
|
101
|
+
return false;
|
|
102
|
+
}
|
|
103
|
+
get images() {
|
|
104
|
+
return [];
|
|
105
|
+
}
|
|
106
|
+
get implementation() {
|
|
107
|
+
return {};
|
|
108
|
+
}
|
|
109
|
+
get inputEncoding() {
|
|
110
|
+
return "UTF-8";
|
|
111
|
+
}
|
|
112
|
+
get lastModified() {
|
|
113
|
+
return (/* @__PURE__ */ new Date()).toISOString();
|
|
114
|
+
}
|
|
115
|
+
get linkColor() {
|
|
116
|
+
return "";
|
|
117
|
+
}
|
|
118
|
+
set linkColor(_) {
|
|
119
|
+
}
|
|
120
|
+
get links() {
|
|
121
|
+
return [];
|
|
122
|
+
}
|
|
122
123
|
get ownerDocument() {
|
|
123
124
|
return null;
|
|
124
125
|
}
|
|
126
|
+
get pictureInPictureEnabled() {
|
|
127
|
+
return false;
|
|
128
|
+
}
|
|
129
|
+
get plugins() {
|
|
130
|
+
return [];
|
|
131
|
+
}
|
|
125
132
|
get readyState() {
|
|
126
133
|
return this._readyState;
|
|
127
134
|
}
|
|
128
|
-
get
|
|
129
|
-
|
|
130
|
-
return titleElement ? titleElement.textContent || "" : "";
|
|
135
|
+
get rootElement() {
|
|
136
|
+
return null;
|
|
131
137
|
}
|
|
132
|
-
|
|
133
|
-
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
138
|
+
get scripts() {
|
|
139
|
+
return [];
|
|
140
|
+
}
|
|
141
|
+
get scrollingElement() {
|
|
142
|
+
return this.body;
|
|
143
|
+
}
|
|
144
|
+
get timeline() {
|
|
145
|
+
return {};
|
|
146
|
+
}
|
|
147
|
+
get visibilityState() {
|
|
148
|
+
return "visible";
|
|
149
|
+
}
|
|
150
|
+
get vlinkColor() {
|
|
151
|
+
return "";
|
|
152
|
+
}
|
|
153
|
+
set vlinkColor(_) {
|
|
142
154
|
}
|
|
143
155
|
get textContent() {
|
|
144
156
|
return null;
|
|
145
157
|
}
|
|
146
|
-
// Methods
|
|
147
158
|
adoptNode(node) {
|
|
148
159
|
node._ownerDocument = this;
|
|
149
160
|
return node;
|
|
@@ -161,30 +172,33 @@ class DocumentBase extends ParentNodeBase {
|
|
|
161
172
|
close() {
|
|
162
173
|
}
|
|
163
174
|
createAttribute(localName) {
|
|
164
|
-
return { name: localName, value: "" };
|
|
175
|
+
return { name: localName, value: "", nodeType: 2 };
|
|
165
176
|
}
|
|
166
|
-
createAttributeNS(
|
|
167
|
-
return
|
|
177
|
+
createAttributeNS(_ns, qualifiedName) {
|
|
178
|
+
return this.createAttribute(qualifiedName);
|
|
168
179
|
}
|
|
169
180
|
createCDATASection(data) {
|
|
170
181
|
return { data, nodeType: 4 };
|
|
171
182
|
}
|
|
172
183
|
createComment(data) {
|
|
184
|
+
const { Comment } = require("./Comment");
|
|
173
185
|
return new Comment(data, this);
|
|
174
186
|
}
|
|
175
187
|
createDocumentFragment() {
|
|
188
|
+
const { DocumentFragmentBase } = require("./DocumentFragmentBase");
|
|
176
189
|
return new DocumentFragmentBase(this);
|
|
177
190
|
}
|
|
178
|
-
createElement(tagName,
|
|
179
|
-
return ElementFactory.createElement(tagName, this);
|
|
191
|
+
createElement(tagName, options) {
|
|
192
|
+
return ElementFactory.createElement(tagName, this, options);
|
|
180
193
|
}
|
|
181
|
-
createElementNS(
|
|
182
|
-
return
|
|
194
|
+
createElementNS(_ns, qualifiedName, options) {
|
|
195
|
+
return this.createElement(qualifiedName, options);
|
|
183
196
|
}
|
|
184
197
|
createEvent(_eventInterface) {
|
|
185
|
-
return {};
|
|
198
|
+
return { type: _eventInterface };
|
|
186
199
|
}
|
|
187
|
-
createNodeIterator(root, whatToShow =
|
|
200
|
+
createNodeIterator(root, whatToShow = 4294967295, filter = null) {
|
|
201
|
+
const { NodeIterator } = require("./NodeIterator");
|
|
188
202
|
return new NodeIterator(root, whatToShow, filter);
|
|
189
203
|
}
|
|
190
204
|
createProcessingInstruction(target, data) {
|
|
@@ -197,8 +211,9 @@ class DocumentBase extends ParentNodeBase {
|
|
|
197
211
|
const { TextBase } = require("./TextBase");
|
|
198
212
|
return new TextBase(data, this);
|
|
199
213
|
}
|
|
200
|
-
createTreeWalker(
|
|
201
|
-
|
|
214
|
+
createTreeWalker(root, whatToShow = 4294967295, filter = null) {
|
|
215
|
+
const { TreeWalker } = require("./TreeWalker");
|
|
216
|
+
return new TreeWalker(root, whatToShow, filter);
|
|
202
217
|
}
|
|
203
218
|
execCommand(_commandId, _showUI, _value) {
|
|
204
219
|
return false;
|
|
@@ -217,17 +232,19 @@ class DocumentBase extends ParentNodeBase {
|
|
|
217
232
|
}
|
|
218
233
|
getElementsByClassName(classNames) {
|
|
219
234
|
const elements = this.querySelectorAll(`.${classNames.split(" ").join(".")}`);
|
|
220
|
-
return new
|
|
235
|
+
return new HTMLCollectionOfImp(Array.from(elements));
|
|
221
236
|
}
|
|
237
|
+
// @ts-ignore
|
|
222
238
|
getElementsByName(elementName) {
|
|
223
239
|
const elements = this.querySelectorAll(`[name="${elementName}"]`);
|
|
224
|
-
return new
|
|
240
|
+
return new NodeListOfImp(Array.from(elements));
|
|
225
241
|
}
|
|
226
242
|
getElementsByTagName(qualifiedName) {
|
|
227
243
|
const elements = this.querySelectorAll(qualifiedName);
|
|
228
|
-
return new
|
|
244
|
+
return new HTMLCollectionOfImp(Array.from(elements));
|
|
229
245
|
}
|
|
230
|
-
|
|
246
|
+
// @ts-ignore
|
|
247
|
+
getElementsByTagNameNS(_ns, localName) {
|
|
231
248
|
return this.getElementsByTagName(localName);
|
|
232
249
|
}
|
|
233
250
|
getSelection() {
|
|
@@ -244,27 +261,15 @@ class DocumentBase extends ParentNodeBase {
|
|
|
244
261
|
cloned._ownerDocument = this;
|
|
245
262
|
return cloned;
|
|
246
263
|
}
|
|
247
|
-
open(
|
|
248
|
-
|
|
249
|
-
return this;
|
|
250
|
-
}
|
|
251
|
-
return null;
|
|
264
|
+
open(_unused1, _unused2) {
|
|
265
|
+
return this;
|
|
252
266
|
}
|
|
253
267
|
queryCommandEnabled(_commandId) {
|
|
254
268
|
return false;
|
|
255
269
|
}
|
|
256
|
-
queryCommandIndeterm(_commandId) {
|
|
257
|
-
return false;
|
|
258
|
-
}
|
|
259
|
-
queryCommandState(_commandId) {
|
|
260
|
-
return false;
|
|
261
|
-
}
|
|
262
270
|
queryCommandSupported(_commandId) {
|
|
263
271
|
return false;
|
|
264
272
|
}
|
|
265
|
-
queryCommandValue(_commandId) {
|
|
266
|
-
return "";
|
|
267
|
-
}
|
|
268
273
|
releaseEvents() {
|
|
269
274
|
}
|
|
270
275
|
requestStorageAccess() {
|
|
@@ -280,81 +285,39 @@ class DocumentBase extends ParentNodeBase {
|
|
|
280
285
|
this.write(...text, "\n");
|
|
281
286
|
}
|
|
282
287
|
addEventListener(type, listener, options) {
|
|
283
|
-
|
|
284
|
-
this._eventListeners.push({
|
|
285
|
-
type,
|
|
286
|
-
listener: typeof listener === "function" ? listener : listener.handleEvent,
|
|
287
|
-
options
|
|
288
|
-
});
|
|
289
|
-
}
|
|
288
|
+
this._eventListeners.push({ type, listener, options });
|
|
290
289
|
}
|
|
291
290
|
removeEventListener(type, listener, options) {
|
|
292
|
-
|
|
293
|
-
const targetListener = typeof listener === "function" ? listener : listener.handleEvent;
|
|
294
|
-
this._eventListeners = this._eventListeners.filter(
|
|
295
|
-
(eventListener) => !(eventListener.type === type && eventListener.listener === targetListener)
|
|
296
|
-
);
|
|
297
|
-
}
|
|
291
|
+
this._eventListeners = this._eventListeners.filter((l) => !(l.type === type && l.listener === listener));
|
|
298
292
|
}
|
|
299
|
-
dispatchEvent(event) {
|
|
300
|
-
const eventListeners = this._eventListeners.filter((listener) => listener.type === event.type);
|
|
301
|
-
for (const eventListener of eventListeners) {
|
|
302
|
-
try {
|
|
303
|
-
eventListener.listener.call(this, event);
|
|
304
|
-
if (eventListener.options && typeof eventListener.options === "object" && eventListener.options.once) {
|
|
305
|
-
this.removeEventListener(event.type, eventListener.listener);
|
|
306
|
-
}
|
|
307
|
-
} catch (error) {
|
|
308
|
-
console.error("Error in document event listener:", error);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
return true;
|
|
312
|
-
}
|
|
313
|
-
/**
|
|
314
|
-
* Set window reference for load event dispatching
|
|
315
|
-
*/
|
|
316
293
|
setWindow(window) {
|
|
317
294
|
this._window = window;
|
|
318
295
|
}
|
|
319
|
-
/**
|
|
320
|
-
* Change document ready state and dispatch events
|
|
321
|
-
*/
|
|
322
296
|
setReadyState(state) {
|
|
323
297
|
if (this._readyState === state) return;
|
|
324
298
|
this._readyState = state;
|
|
325
|
-
this.dispatchEvent({
|
|
326
|
-
type: "readystatechange",
|
|
327
|
-
target: this,
|
|
328
|
-
readyState: state
|
|
329
|
-
});
|
|
299
|
+
this.dispatchEvent({ type: "readystatechange", target: this });
|
|
330
300
|
if (state === "interactive") {
|
|
331
|
-
this.dispatchEvent({
|
|
332
|
-
type: "DOMContentLoaded",
|
|
333
|
-
target: this
|
|
334
|
-
});
|
|
301
|
+
this.dispatchEvent({ type: "DOMContentLoaded", target: this });
|
|
335
302
|
}
|
|
336
303
|
if (state === "complete" && this._window) {
|
|
337
304
|
setTimeout(() => {
|
|
338
305
|
if (this._window && this._window.dispatchEvent) {
|
|
339
|
-
this._window.dispatchEvent({
|
|
340
|
-
type: "load",
|
|
341
|
-
target: this._window
|
|
342
|
-
});
|
|
306
|
+
this._window.dispatchEvent({ type: "load", target: this._window });
|
|
343
307
|
}
|
|
344
308
|
}, 0);
|
|
345
309
|
}
|
|
346
310
|
}
|
|
347
|
-
/**
|
|
348
|
-
* Simulate document loading process
|
|
349
|
-
*/
|
|
350
311
|
simulateLoading() {
|
|
351
|
-
this.setReadyState("loading");
|
|
352
312
|
setTimeout(() => {
|
|
353
313
|
this.setReadyState("interactive");
|
|
354
314
|
setTimeout(() => {
|
|
355
315
|
this.setReadyState("complete");
|
|
356
316
|
}, 10);
|
|
357
|
-
},
|
|
317
|
+
}, 10);
|
|
318
|
+
}
|
|
319
|
+
setLocation(location) {
|
|
320
|
+
this.location = location;
|
|
358
321
|
}
|
|
359
322
|
}
|
|
360
323
|
export {
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/DocumentBase.ts"],
|
|
4
|
-
"sourcesContent": ["import {ParentNodeBase} from './ParentNodeBase';\nimport {DOCUMENT_NODE, Node} from './Node';\nimport {Document, ElementCreationOptions, DocumentReadyState, DocumentVisibilityState, ImportNodeOptions, CaretPositionFromPointOptions, StartViewTransitionOptions, ViewTransitionUpdateCallback} from './Document';\nimport {Location} from '../window/Window';\nimport {Comment} from './Comment';\nimport {Text} from './Text';\nimport {DocumentFragment} from './DocumentFragment';\nimport {DocumentFragmentBase} from './DocumentFragmentBase';\nimport {Element} from './elements/Element';\nimport {HTMLElement} from './elements/HTMLElement';\nimport {HTMLCollection, HTMLCollectionOf} from './collection';\nimport {HTMLElementTagNameMap, SVGElementTagNameMap, MathMLElementTagNameMap, HTMLElementDeprecatedTagNameMap} from './elements';\nimport {NodeListOf} from './collection/NodeListOf';\nimport {ElementFactory} from '../factory';\nimport {NodeIterator, NodeFilter} from './NodeIterator';\n\n// Document event listener interface\ninterface DocumentEventListener {\n type: string;\n listener: (event: any) => void;\n options?: boolean | AddEventListenerOptions;\n}\n\n/**\n * The **`DocumentBase`** class is the concrete implementation of the Document interface.\n */\nexport class DocumentBase extends ParentNodeBase implements Document {\n // Event system\n private _eventListeners: DocumentEventListener[] = [];\n private _readyState: DocumentReadyState = 'uninitialized' as any;\n private _window: any = null; // Reference to window for load event\n // Properties\n readonly URL: string = 'about:blank';\n alinkColor: string = '';\n readonly all: any = null;\n readonly anchors: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly applets: HTMLCollection = new HTMLCollection([]);\n bgColor: string = '';\n body: HTMLElement = null as any;\n readonly characterSet: string = 'UTF-8';\n readonly charset: string = 'UTF-8';\n readonly compatMode: string = 'CSS1Compat';\n readonly contentType: string = 'text/html';\n cookie: string = '';\n readonly currentScript: any = null;\n readonly defaultView: any = null;\n designMode: string = 'off';\n dir: string = '';\n readonly doctype: any = null;\n readonly documentElement: HTMLElement = null as any;\n readonly documentURI: string = 'about:blank';\n domain: string = '';\n readonly embeds: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n fgColor: string = '';\n readonly forms: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly fragmentDirective: any = null;\n readonly fullscreen: boolean = false;\n readonly fullscreenEnabled: boolean = false;\n readonly head: any = null;\n readonly hidden: boolean = false;\n readonly images: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly implementation: any = null;\n readonly inputEncoding: string = 'UTF-8';\n readonly lastModified: string = new Date().toString();\n linkColor: string = '';\n readonly links: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n \n // Location property - simple implementation for Document\n private _location: Location = {\n href: 'about:blank',\n protocol: 'about:',\n host: '',\n hostname: '',\n port: '',\n pathname: 'blank',\n search: '',\n hash: '',\n origin: 'null',\n assign: (url: string) => { this._location.href = url; },\n replace: (url: string) => { this._location.href = url; },\n reload: () => {},\n // @ts-ignore\n toString: () => this._location.href\n };\n\n setLocation(location: Location): void {\n this._location = location;\n }\n get location(): any {\n return this._location;\n }\n \n set location(href: string) {\n this._location.href = href;\n // Simple URL parsing for document location\n try {\n const url = new URL(href);\n this._location.protocol = url.protocol;\n this._location.host = url.host;\n this._location.hostname = url.hostname;\n this._location.port = url.port;\n this._location.pathname = url.pathname;\n this._location.search = url.search;\n this._location.hash = url.hash;\n this._location.origin = url.origin;\n } catch (e) {\n // Keep defaults for invalid URLs\n }\n }\n \n // Event handlers\n onfullscreenchange: ((this: Document, ev: Event) => any) | null = null;\n onfullscreenerror: ((this: Document, ev: Event) => any) | null = null;\n onpointerlockchange: ((this: Document, ev: Event) => any) | null = null;\n onpointerlockerror: ((this: Document, ev: Event) => any) | null = null;\n onreadystatechange: ((this: Document, ev: Event) => any) | null = null;\n onvisibilitychange: ((this: Document, ev: Event) => any) | null = null;\n \n get ownerDocument(): null {\n return null;\n }\n readonly pictureInPictureEnabled: boolean = false;\n readonly plugins: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n get readyState(): DocumentReadyState {\n return this._readyState;\n }\n readonly referrer: string = '';\n readonly rootElement: any = null;\n readonly scripts: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly scrollingElement: Element | null = null;\n readonly timeline: any = null;\n get title(): string {\n const titleElement = this.querySelector('title');\n return titleElement ? titleElement.textContent || '' : '';\n }\n \n set title(value: string) {\n let titleElement = this.querySelector('title');\n if (!titleElement) {\n // Create title element if it doesn't exist\n titleElement = this.createElement('title');\n const head = this.head || this.querySelector('head');\n if (head) {\n head.appendChild(titleElement);\n }\n }\n titleElement.textContent = value;\n }\n readonly visibilityState: DocumentVisibilityState = 'visible';\n vlinkColor: string = '';\n\n constructor() {\n super(DOCUMENT_NODE, '#document');\n this._ownerDocument = null;\n\n // Create basic document structure\n const documentElement = this.createElement('html') as HTMLElement;\n const head = this.createElement('head') as HTMLElement;\n const body = this.createElement('body') as HTMLElement;\n\n documentElement.appendChild(head);\n documentElement.appendChild(body);\n this.appendChild(documentElement);\n\n // Set readonly properties\n (this as any).documentElement = documentElement;\n (this as any).head = head;\n this.body = body;\n }\n\n get textContent(): null {\n return null;\n }\n\n // Methods\n adoptNode<T extends Node>(node: T): T {\n (node as any)._ownerDocument = this;\n return node;\n }\n\n captureEvents(): void {}\n\n caretPositionFromPoint(_x: number, _y: number, _options?: CaretPositionFromPointOptions): any {\n return null;\n }\n\n caretRangeFromPoint(_x: number, _y: number): any {\n return null;\n }\n\n clear(): void {}\n\n close(): void {}\n\n createAttribute(localName: string): any {\n return { name: localName, value: '' };\n }\n\n createAttributeNS(_namespace: string | null, qualifiedName: string): any {\n return { name: qualifiedName, value: '' };\n }\n\n createCDATASection(data: string): any {\n return { data, nodeType: 4 };\n }\n\n createComment(data: string): Comment {\n return new Comment(data, this);\n }\n\n createDocumentFragment(): DocumentFragment {\n return new DocumentFragmentBase(this);\n }\n\n createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementTagNameMap[K];\n createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];\n createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement;\n createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement {\n return ElementFactory.createElement(tagName, this);\n }\n\n createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement;\n createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K];\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): any;\n createElementNS<K extends keyof MathMLElementTagNameMap>(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K];\n createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): any;\n createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;\n createElementNS(_namespace: string | null, qualifiedName: string, _options?: string | ElementCreationOptions): Element;\n createElementNS(_namespaceURI: string | null, qualifiedName: string, _options?: ElementCreationOptions | string): Element {\n return ElementFactory.createElement(qualifiedName, this);\n }\n\n createEvent(_eventInterface: string): any {\n return {};\n }\n\n createNodeIterator(root: Node, whatToShow: number = NodeFilter.SHOW_ALL, filter: NodeFilter | null = null): NodeIterator {\n return new NodeIterator(root, whatToShow, filter);\n }\n\n createProcessingInstruction(target: string, data: string): any {\n return { target, data, nodeType: 7 };\n }\n\n createRange(): any {\n return {};\n }\n\n createTextNode(data: string): Text {\n const { TextBase } = require('./TextBase');\n return new TextBase(data, this);\n }\n\n createTreeWalker(_root: Node, _whatToShow?: number, _filter?: any): any {\n return {};\n }\n\n execCommand(_commandId: string, _showUI?: boolean, _value?: string): boolean {\n return false;\n }\n\n exitFullscreen(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPictureInPicture(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPointerLock(): void {}\n\n getElementById(elementId: string): HTMLElement | null {\n const elements = this.querySelectorAll(`#${elementId}`);\n return elements.length > 0 ? elements[0] as HTMLElement : null;\n }\n\n getElementsByClassName(classNames: string): HTMLCollectionOf<Element> {\n const elements = this.querySelectorAll(`.${classNames.split(' ').join('.')}`);\n return new HTMLCollectionOf(Array.from(elements));\n }\n\n getElementsByName(elementName: string): NodeListOf<HTMLElement> {\n const elements = this.querySelectorAll(`[name=\"${elementName}\"]`);\n return new NodeListOf(Array.from(elements) as HTMLElement[]);\n }\n\n getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element> {\n const elements = this.querySelectorAll<Element>(qualifiedName);\n return new HTMLCollectionOf(Array.from(elements));\n }\n\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf<HTMLElement>;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf<any>;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf<any>;\n getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element>;\n getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element> {\n return this.getElementsByTagName(localName);\n }\n\n getSelection(): any {\n return null;\n }\n\n hasFocus(): boolean {\n return false;\n }\n\n hasStorageAccess(): Promise<boolean> {\n return Promise.resolve(false);\n }\n\n importNode<T extends Node>(node: T, _options?: boolean | ImportNodeOptions): T {\n const cloned = (node as any).cloneNode(typeof _options === 'boolean' ? _options : _options?.deep);\n (cloned as any)._ownerDocument = this;\n return cloned;\n }\n\n open(_unused1?: string, _unused2?: string): Document;\n open(_url: string | URL, _name: string, _features: string): any;\n open(_arg1?: string | URL, _arg2?: string, _arg3?: string): Document | any {\n if (arguments.length <= 2) {\n return this;\n }\n return null;\n }\n\n queryCommandEnabled(_commandId: string): boolean {\n return false;\n }\n\n queryCommandIndeterm(_commandId: string): boolean {\n return false;\n }\n\n queryCommandState(_commandId: string): boolean {\n return false;\n }\n\n queryCommandSupported(_commandId: string): boolean {\n return false;\n }\n\n queryCommandValue(_commandId: string): string {\n return '';\n }\n\n releaseEvents(): void {}\n\n requestStorageAccess(): Promise<void> {\n return Promise.resolve();\n }\n\n startViewTransition(_callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): any {\n return {};\n }\n\n write(...text: string[]): void {\n console.log('Document.write:', text.join(''));\n }\n\n writeln(...text: string[]): void {\n this.write(...text, '\\n');\n }\n\n addEventListener(type: string, listener: any, options?: boolean | any): void {\n // Support DOMContentLoaded and readystatechange events\n if (type === 'DOMContentLoaded' || type === 'readystatechange') {\n this._eventListeners.push({\n type,\n listener: typeof listener === 'function' ? listener : listener.handleEvent,\n options\n });\n }\n }\n\n removeEventListener(type: string, listener: any, options?: boolean | any): void {\n if (type === 'DOMContentLoaded' || type === 'readystatechange') {\n const targetListener = typeof listener === 'function' ? listener : listener.handleEvent;\n this._eventListeners = this._eventListeners.filter(\n eventListener => !(eventListener.type === type && eventListener.listener === targetListener)\n );\n }\n }\n\n dispatchEvent(event: any): boolean {\n const eventListeners = this._eventListeners.filter(listener => listener.type === event.type);\n \n for (const eventListener of eventListeners) {\n try {\n eventListener.listener.call(this, event);\n \n // Handle 'once' option\n if (eventListener.options && typeof eventListener.options === 'object' && eventListener.options.once) {\n this.removeEventListener(event.type, eventListener.listener);\n }\n } catch (error) {\n console.error('Error in document event listener:', error);\n }\n }\n \n return true;\n }\n\n /**\n * Set window reference for load event dispatching\n */\n setWindow(window: any): void {\n this._window = window;\n }\n\n /**\n * Change document ready state and dispatch events\n */\n setReadyState(state: DocumentReadyState): void {\n if (this._readyState === state) return;\n \n this._readyState = state;\n \n // Dispatch readystatechange event\n this.dispatchEvent({\n type: 'readystatechange',\n target: this,\n readyState: state\n });\n \n // Dispatch DOMContentLoaded when interactive\n if (state === 'interactive') {\n this.dispatchEvent({\n type: 'DOMContentLoaded',\n target: this\n });\n }\n \n // Dispatch load event on window when complete\n if (state === 'complete' && this._window) {\n // Use setTimeout to ensure it's dispatched after current execution\n setTimeout(() => {\n if (this._window && this._window.dispatchEvent) {\n this._window.dispatchEvent({\n type: 'load',\n target: this._window\n });\n }\n }, 0);\n }\n }\n\n /**\n * Simulate document loading process\n */\n simulateLoading(): void {\n // Start with loading state\n this.setReadyState('loading');\n \n // Simulate DOM parsing completion\n setTimeout(() => {\n this.setReadyState('interactive');\n \n // Simulate resource loading completion\n setTimeout(() => {\n this.setReadyState('complete');\n }, 10);\n }, 5);\n }\n}"],
|
|
5
|
-
"mappings": "AAAA,
|
|
4
|
+
"sourcesContent": ["import { ParentNodeBase } from './ParentNodeBase';\nimport { DOCUMENT_NODE } from './Node';\nimport { HTMLCollectionOfImp } from './collection/HTMLCollectionOfImp';\nimport { NodeListOfImp } from './collection/NodeListOfImp';\nimport { ElementFactory } from '../factory/ElementFactory';\n\nexport class DocumentBase extends ParentNodeBase implements Document {\n [key: string]: any;\n private _readyState: DocumentReadyState = 'loading';\n private _window: any = null;\n public head!: any;\n public body!: any;\n public documentElement!: any;\n public location: any;\n get title(): string {\n const titleEl = this.querySelector('title');\n return titleEl ? titleEl.textContent || '' : this._title || '';\n }\n\n set title(value: string) {\n this._title = value;\n let titleEl = this.querySelector('title');\n if (!titleEl && this.head) {\n titleEl = this.createElement('title');\n this.head.appendChild(titleEl);\n }\n if (titleEl) {\n titleEl.textContent = value;\n }\n }\n\n private _title: string = '';\n public cookie: string = '';\n public designMode: string = 'off';\n public dir: string = 'ltr';\n public domain: string = '';\n public referrer: string = '';\n\n constructor() {\n super(DOCUMENT_NODE, '#document');\n this._ownerDocument = this as any;\n }\n\n get URL(): string {\n return this.location?.href || '';\n }\n get alinkColor(): string {\n return '';\n }\n set alinkColor(_: string) {}\n get all(): any {\n return [];\n }\n get anchors(): any {\n return [];\n }\n get applets(): any {\n return [];\n }\n get bgColor(): string {\n return '';\n }\n set bgColor(_: string) {}\n get characterSet(): string {\n return 'UTF-8';\n }\n get charset(): string {\n return 'UTF-8';\n }\n get compatMode(): string {\n return 'CSS1Compat';\n }\n get contentType(): string {\n return 'text/html';\n }\n get currentScript(): any {\n return null;\n }\n get defaultView(): any {\n return this._window;\n }\n get doctype(): any {\n return null;\n }\n get documentURI(): string {\n return this.URL;\n }\n get embeds(): any {\n return [];\n }\n get fgColor(): string {\n return '';\n }\n set fgColor(_: string) {}\n get forms(): any {\n return [];\n }\n get fragmentDirective(): any {\n return {};\n }\n get fullscreen(): boolean {\n return false;\n }\n get fullscreenEnabled(): boolean {\n return false;\n }\n get hidden(): boolean {\n return false;\n }\n get images(): any {\n return [];\n }\n get implementation(): any {\n return {};\n }\n get inputEncoding(): string {\n return 'UTF-8';\n }\n get lastModified(): string {\n return new Date().toISOString();\n }\n get linkColor(): string {\n return '';\n }\n set linkColor(_: string) {}\n get links(): any {\n return [];\n }\n get ownerDocument(): null {\n return null;\n }\n get pictureInPictureEnabled(): boolean {\n return false;\n }\n get plugins(): any {\n return [];\n }\n get readyState(): DocumentReadyState {\n return this._readyState;\n }\n get rootElement(): any {\n return null;\n }\n get scripts(): any {\n return [];\n }\n get scrollingElement(): any {\n return this.body;\n }\n get timeline(): any {\n return {};\n }\n get visibilityState(): any {\n return 'visible';\n }\n get vlinkColor(): string {\n return '';\n }\n set vlinkColor(_: string) {}\n get textContent(): null {\n return null;\n }\n\n adoptNode<T extends Node>(node: T): T {\n (node as any)._ownerDocument = this;\n return node;\n }\n\n captureEvents(): void {}\n\n caretPositionFromPoint(_x: number, _y: number, _options?: CaretPositionFromPointOptions): any {\n return null;\n }\n\n caretRangeFromPoint(_x: number, _y: number): any {\n return null;\n }\n\n clear(): void {}\n\n close(): void {}\n\n createAttribute(localName: string): any {\n return { name: localName, value: '', nodeType: 2 };\n }\n\n createAttributeNS(_ns: string | null, qualifiedName: string): any {\n return this.createAttribute(qualifiedName);\n }\n\n createCDATASection(data: string): any {\n return { data, nodeType: 4 };\n }\n\n createComment(data: string): any {\n const { Comment } = require('./Comment');\n return new Comment(data, this);\n }\n\n createDocumentFragment(): any {\n const { DocumentFragmentBase } = require('./DocumentFragmentBase');\n return new DocumentFragmentBase(this);\n }\n\n createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];\n createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;\n createElement(tagName: string, options?: ElementCreationOptions): HTMLElement {\n return ElementFactory.createElement(tagName, this, options) as any;\n }\n\n createElementNS(_ns: string | null, qualifiedName: string, options?: ElementCreationOptions): any {\n return this.createElement(qualifiedName as any, options);\n }\n\n createEvent(_eventInterface: string): any {\n return { type: _eventInterface };\n }\n\n createNodeIterator(root: Node, whatToShow: number = 0xffffffff, filter: any = null): any {\n const { NodeIterator } = require('./NodeIterator');\n return new NodeIterator(root, whatToShow, filter);\n }\n\n createProcessingInstruction(target: string, data: string): any {\n return { target, data, nodeType: 7 };\n }\n\n createRange(): any {\n return {};\n }\n\n createTextNode(data: string): any {\n const { TextBase } = require('./TextBase');\n return new TextBase(data, this);\n }\n\n createTreeWalker(root: Node, whatToShow: number = 0xffffffff, filter: any = null): any {\n const { TreeWalker } = require('./TreeWalker');\n return new TreeWalker(root, whatToShow, filter);\n }\n\n execCommand(_commandId: string, _showUI?: boolean, _value?: string): boolean {\n return false;\n }\n\n exitFullscreen(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPictureInPicture(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPointerLock(): void {}\n\n getElementById(elementId: string): HTMLElement | null {\n const elements = this.querySelectorAll(`#${elementId}`);\n return elements.length > 0 ? (elements[0] as HTMLElement) : null;\n }\n\n getElementsByClassName(classNames: string): HTMLCollectionOf<Element> {\n const elements = this.querySelectorAll(`.${classNames.split(' ').join('.')}`);\n return new HTMLCollectionOfImp(Array.from(elements)) as unknown as HTMLCollectionOf<Element>;\n }\n\n // @ts-ignore\n getElementsByName(elementName: string): NodeListOfImp<HTMLElement> {\n const elements = this.querySelectorAll(`[name=\"${elementName}\"]`);\n return new NodeListOfImp<HTMLElement>(Array.from(elements) as unknown as HTMLElement[]) as unknown as NodeListOfImp<HTMLElement>;\n }\n\n // @ts-ignore\n getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOfImp<Element>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOfImp<Element> {\n const elements = this.querySelectorAll<Element>(qualifiedName);\n return new HTMLCollectionOfImp(Array.from(elements));\n }\n\n // @ts-ignore\n getElementsByTagNameNS(_ns: string | null, localName: string): HTMLCollectionOf<Element> {\n return this.getElementsByTagName(localName) as unknown as HTMLCollectionOf<Element>;\n }\n\n getSelection(): any {\n return null;\n }\n\n hasFocus(): boolean {\n return false;\n }\n\n hasStorageAccess(): Promise<boolean> {\n return Promise.resolve(false);\n }\n\n importNode<T extends Node>(node: T, _options?: boolean | ImportNodeOptions): T {\n const cloned = (node as any).cloneNode(typeof _options === 'boolean' ? _options : (_options as any)?.deep);\n (cloned as any)._ownerDocument = this;\n return cloned;\n }\n\n open(_unused1?: string, _unused2?: string): any {\n return this;\n }\n\n queryCommandEnabled(_commandId: string): boolean {\n return false;\n }\n\n queryCommandSupported(_commandId: string): boolean {\n return false;\n }\n\n releaseEvents(): void {}\n\n requestStorageAccess(): Promise<void> {\n return Promise.resolve();\n }\n\n startViewTransition(_callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): any {\n return {};\n }\n\n write(...text: string[]): void {\n console.log('Document.write:', text.join(''));\n }\n\n writeln(...text: string[]): void {\n this.write(...text, '\\n');\n }\n\n addEventListener(type: string, listener: any, options?: any): void {\n this._eventListeners.push({ type, listener, options });\n }\n\n removeEventListener(type: string, listener: any, options?: any): void {\n this._eventListeners = this._eventListeners.filter(l => !(l.type === type && l.listener === listener));\n }\n\n setWindow(window: any): void {\n this._window = window;\n }\n\n setReadyState(state: DocumentReadyState): void {\n if (this._readyState === state) return;\n this._readyState = state;\n this.dispatchEvent({ type: 'readystatechange', target: this });\n if (state === 'interactive') {\n this.dispatchEvent({ type: 'DOMContentLoaded', target: this });\n }\n if (state === 'complete' && this._window) {\n setTimeout(() => {\n if (this._window && this._window.dispatchEvent) {\n this._window.dispatchEvent({ type: 'load', target: this._window });\n }\n }, 0);\n }\n }\n\n simulateLoading(): void {\n // Start with a small delay to allow test listeners to be added\n setTimeout(() => {\n this.setReadyState('interactive');\n setTimeout(() => {\n this.setReadyState('complete');\n }, 10);\n }, 10);\n }\n\n setLocation(location: any): void {\n this.location = location;\n }\n}\n"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/DocumentFragmentBase.ts"],
|
|
4
|
-
"sourcesContent": ["import { ParentNodeBase } from './ParentNodeBase';\nimport {
|
|
5
|
-
"mappings": "AAAA,SAAS,sBAAsB;
|
|
4
|
+
"sourcesContent": ["import { ParentNodeBase } from './ParentNodeBase';\nimport {DOCUMENT_FRAGMENT_NODE, ELEMENT_NODE} from './Node';\nimport { NodeBase } from './NodeBase';\nimport { NodeListOfImp } from './collection/NodeListOfImp';\n\n/**\n * The **`DocumentFragmentBase`** class is the concrete implementation of the DocumentFragment interface.\n * \n * DocumentFragment is a minimal document object that has no parent. It is used as a lightweight version of Document\n * that stores a segment of a document structure comprised of nodes just like a standard document.\n */\nexport class DocumentFragmentBase extends ParentNodeBase implements DocumentFragment {\n constructor(ownerDocument?: Document) {\n super(DOCUMENT_FRAGMENT_NODE, '#document-fragment', ownerDocument); // DOCUMENT_FRAGMENT_NODE = 11\n }\n\n /**\n * Returns the number of child elements of this DocumentFragment.\n */\n get childElementCount(): number {\n let count = 0;\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) { // ELEMENT_NODE\n count++;\n }\n }\n return count;\n }\n\n /**\n * Returns the first Element node within the DocumentFragment that matches the specified selectors.\n */\n querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;\n querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;\n querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;\n querySelector<E extends Element = Element>(selectors: string): E | null;\n querySelector(selectors: string): Element | null;\n querySelector(selectors: string): Element | null {\n const elements = this.querySelectorAll(selectors);\n return elements.length > 0 ? elements.item(0) : null;\n }\n\n /**\n * Returns all Element nodes within the DocumentFragment that match the specified selectors.\n */\n querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;\n querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;\n querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;\n querySelectorAll(selectors: string): NodeListOf<Element>;\n querySelectorAll(selectors: string): NodeListOf<Element> {\n // Use the inherited querySelectorAll from ParentNodeBase\n return super.querySelectorAll(selectors);\n }\n\n /**\n * Returns the Element within the DocumentFragment that has the specified ID.\n */\n getElementById(elementId: string): HTMLElement | null {\n const element = this.querySelector(`#${elementId}`);\n return element as HTMLElement | null;\n }\n\n /**\n * Override cloneNode to return DocumentFragment\n */\n cloneNode(deep?: boolean): DocumentFragment {\n const clone = new DocumentFragmentBase(this._ownerDocument as Document) as unknown as DocumentFragment;\n \n if (deep) {\n for (const child of this._childNodesInternal) {\n if (child && 'cloneNode' in child) {\n clone.appendChild((child as any).cloneNode(true));\n }\n }\n }\n \n return clone;\n }\n\n /**\n * Override appendChild to handle DocumentFragment behavior\n * When a DocumentFragment is appended to another node, its children are moved, not the fragment itself\n */\n appendChild<T extends Node>(node: T): T {\n // If the node being appended is a DocumentFragment, move its children instead\n if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {\n const fragment = node as any;\n \n // Move all children from fragment to this node\n while (fragment._childNodesInternal && fragment._childNodesInternal.length > 0) {\n const child = fragment._childNodesInternal[0];\n if (child) {\n fragment.removeChild(child);\n super.appendChild(child);\n }\n }\n \n return node;\n }\n \n return super.appendChild(node);\n }\n}"],
|
|
5
|
+
"mappings": "AAAA,SAAS,sBAAsB;AAC/B,SAAQ,wBAAwB,oBAAmB;AAU5C,MAAM,6BAA6B,eAA2C;AAAA,EACjF,YAAY,eAA0B;AAClC,UAAM,wBAAwB,sBAAsB,aAAa;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,oBAA4B;AAC5B,QAAI,QAAQ;AACZ,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,cAAc;AAC1C;AAAA,MACJ;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAUA,cAAc,WAAmC;AAC7C,UAAM,WAAW,KAAK,iBAAiB,SAAS;AAChD,WAAO,SAAS,SAAS,IAAI,SAAS,KAAK,CAAC,IAAI;AAAA,EACpD;AAAA,EAUA,iBAAiB,WAAwC;AAErD,WAAO,MAAM,iBAAiB,SAAS;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,WAAuC;AAClD,UAAM,UAAU,KAAK,cAAc,IAAI,SAAS,EAAE;AAClD,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,MAAkC;AACxC,UAAM,QAAQ,IAAI,qBAAqB,KAAK,cAA0B;AAEtE,QAAI,MAAM;AACN,iBAAW,SAAS,KAAK,qBAAqB;AAC1C,YAAI,SAAS,eAAe,OAAO;AAC/B,gBAAM,YAAa,MAAc,UAAU,IAAI,CAAC;AAAA,QACpD;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAA4B,MAAY;AAEpC,QAAI,KAAK,aAAa,wBAAwB;AAC1C,YAAM,WAAW;AAGjB,aAAO,SAAS,uBAAuB,SAAS,oBAAoB,SAAS,GAAG;AAC5E,cAAM,QAAQ,SAAS,oBAAoB,CAAC;AAC5C,YAAI,OAAO;AACP,mBAAS,YAAY,KAAK;AAC1B,gBAAM,YAAY,KAAK;AAAA,QAC3B;AAAA,MACJ;AAEA,aAAO;AAAA,IACX;AAEA,WAAO,MAAM,YAAY,IAAI;AAAA,EACjC;AACJ;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|