@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,9 +1,9 @@
|
|
|
1
1
|
import { ParentNodeBase } from "../ParentNodeBase.js";
|
|
2
|
-
import {
|
|
3
|
-
import { ElementFactory } from "../../factory/ElementFactory.js";
|
|
2
|
+
import { HTMLCollectionImp, HTMLCollectionOfImp } from "../collection/index.js";
|
|
4
3
|
import { ELEMENT_NODE, TEXT_NODE, ATTRIBUTE_NODE } from "../Node.js";
|
|
5
4
|
import { CSSSelector } from "../../utils/CSSSelector.js";
|
|
6
5
|
import { NodeBase } from "../NodeBase.js";
|
|
6
|
+
import { ShadowRootBase } from "../ShadowRootBase.js";
|
|
7
7
|
class DOMException extends Error {
|
|
8
8
|
constructor(message, name = "DOMException") {
|
|
9
9
|
super(message);
|
|
@@ -11,16 +11,23 @@ class DOMException extends Error {
|
|
|
11
11
|
this.name = name;
|
|
12
12
|
}
|
|
13
13
|
}
|
|
14
|
-
class
|
|
15
|
-
constructor(_tagName, ownerDocument) {
|
|
14
|
+
const _ElementBase = class _ElementBase extends ParentNodeBase {
|
|
15
|
+
constructor(_tagName = "DIV", ownerDocument) {
|
|
16
16
|
super(ELEMENT_NODE, _tagName.toUpperCase(), ownerDocument);
|
|
17
17
|
this._tagName = _tagName;
|
|
18
18
|
this._id = "";
|
|
19
19
|
this._className = "";
|
|
20
20
|
this._attributes = /* @__PURE__ */ new Map();
|
|
21
|
+
this._shadowRoot = null;
|
|
21
22
|
this.onfullscreenchange = null;
|
|
22
23
|
this.onfullscreenerror = null;
|
|
23
24
|
}
|
|
25
|
+
animate(keyframes, options) {
|
|
26
|
+
throw new Error("Method not implemented.");
|
|
27
|
+
}
|
|
28
|
+
getAnimations(options) {
|
|
29
|
+
throw new Error("Method not implemented.");
|
|
30
|
+
}
|
|
24
31
|
get tagName() {
|
|
25
32
|
return this._tagName.toUpperCase();
|
|
26
33
|
}
|
|
@@ -66,10 +73,12 @@ class ElementBase extends ParentNodeBase {
|
|
|
66
73
|
if (value !== null && value !== void 0) {
|
|
67
74
|
const stringValue = String(value);
|
|
68
75
|
const escapedValue = this.escapeHTMLEntities(stringValue);
|
|
69
|
-
const { TextBase } =
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
76
|
+
const { TextBase } = _ElementBase.dependencies;
|
|
77
|
+
if (TextBase) {
|
|
78
|
+
const textNode = new TextBase(escapedValue, this._ownerDocument);
|
|
79
|
+
this._childNodesInternal.push(textNode);
|
|
80
|
+
textNode._parentNodeInternal = this;
|
|
81
|
+
}
|
|
73
82
|
}
|
|
74
83
|
}
|
|
75
84
|
set innerHTML(value) {
|
|
@@ -95,6 +104,9 @@ class ElementBase extends ParentNodeBase {
|
|
|
95
104
|
return `<${tagName}${attrs} />`;
|
|
96
105
|
} else {
|
|
97
106
|
let childHTML = "";
|
|
107
|
+
if (element.shadowRoot) {
|
|
108
|
+
childHTML += `<template shadowrootmode="${element.shadowRoot.mode}">${element.shadowRoot.innerHTML}</template>`;
|
|
109
|
+
}
|
|
98
110
|
for (const child of element._childNodesInternal || []) {
|
|
99
111
|
if (child.nodeType === TEXT_NODE) {
|
|
100
112
|
childHTML += child._nodeValue || "";
|
|
@@ -110,8 +122,12 @@ class ElementBase extends ParentNodeBase {
|
|
|
110
122
|
/**
|
|
111
123
|
* Improved HTML parser for innerHTML using a stack-based approach
|
|
112
124
|
*/
|
|
113
|
-
parseAndAppendHTML(html) {
|
|
114
|
-
const
|
|
125
|
+
parseAndAppendHTML(html, targetNode = this) {
|
|
126
|
+
const { ElementFactory, TextBase, Comment } = _ElementBase.dependencies;
|
|
127
|
+
if (!ElementFactory) {
|
|
128
|
+
console.error("SWC DOM Parser: ElementFactory dependency not injected.");
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
115
131
|
let i = 0;
|
|
116
132
|
const length = html.length;
|
|
117
133
|
while (i < length) {
|
|
@@ -120,18 +136,14 @@ class ElementBase extends ParentNodeBase {
|
|
|
120
136
|
let text = html.substring(i).trim();
|
|
121
137
|
if (text) {
|
|
122
138
|
text = this.fixBrokenClosingTags(text);
|
|
123
|
-
|
|
124
|
-
const textNode = new TextBase(text, this._ownerDocument);
|
|
125
|
-
this.appendChild(textNode);
|
|
139
|
+
if (TextBase) targetNode.appendChild(new TextBase(text, this._ownerDocument));
|
|
126
140
|
}
|
|
127
141
|
break;
|
|
128
142
|
} else if (nextTagStart > i) {
|
|
129
143
|
let text = html.substring(i, nextTagStart).trim();
|
|
130
144
|
if (text) {
|
|
131
145
|
text = this.fixBrokenClosingTags(text);
|
|
132
|
-
|
|
133
|
-
const textNode = new TextBase(text, this._ownerDocument);
|
|
134
|
-
this.appendChild(textNode);
|
|
146
|
+
if (TextBase) targetNode.appendChild(new TextBase(text, this._ownerDocument));
|
|
135
147
|
}
|
|
136
148
|
}
|
|
137
149
|
i = nextTagStart;
|
|
@@ -142,9 +154,7 @@ class ElementBase extends ParentNodeBase {
|
|
|
142
154
|
const commentEnd = html.indexOf("-->", i);
|
|
143
155
|
if (commentEnd !== -1) {
|
|
144
156
|
const commentContent = html.substring(i + 4, commentEnd);
|
|
145
|
-
|
|
146
|
-
const commentNode = new Comment(commentContent, this._ownerDocument);
|
|
147
|
-
this.appendChild(commentNode);
|
|
157
|
+
if (Comment) targetNode.appendChild(new Comment(commentContent, this._ownerDocument));
|
|
148
158
|
i = commentEnd + 3;
|
|
149
159
|
continue;
|
|
150
160
|
}
|
|
@@ -153,17 +163,15 @@ class ElementBase extends ParentNodeBase {
|
|
|
153
163
|
const parts2 = tagContent.slice(0, -1).trim().split(/\s+/);
|
|
154
164
|
const tagName2 = parts2[0];
|
|
155
165
|
const attributeString2 = tagContent.slice(tagName2.length, -1).trim();
|
|
156
|
-
const element =
|
|
166
|
+
const element = ElementFactory.createElement(tagName2, this._ownerDocument);
|
|
157
167
|
this.parseAttributes(element, attributeString2);
|
|
158
|
-
|
|
168
|
+
targetNode.appendChild(element);
|
|
159
169
|
i = tagEnd + 1;
|
|
160
170
|
continue;
|
|
161
171
|
}
|
|
162
172
|
if (tagContent.startsWith("/")) {
|
|
163
173
|
const closingTagText = `<${tagContent}>`;
|
|
164
|
-
|
|
165
|
-
const textNode = new TextBase(closingTagText, this._ownerDocument);
|
|
166
|
-
this.appendChild(textNode);
|
|
174
|
+
if (TextBase) targetNode.appendChild(new TextBase(closingTagText, this._ownerDocument));
|
|
167
175
|
i = tagEnd + 1;
|
|
168
176
|
continue;
|
|
169
177
|
}
|
|
@@ -171,44 +179,38 @@ class ElementBase extends ParentNodeBase {
|
|
|
171
179
|
const tagName = parts[0];
|
|
172
180
|
const attributeString = tagContent.slice(tagName.length).trim();
|
|
173
181
|
if (tagName === "style" || tagName === "script") {
|
|
174
|
-
const
|
|
175
|
-
const closingTagIndex2 = html.indexOf(
|
|
182
|
+
const closingTag = `</${tagName}>`;
|
|
183
|
+
const closingTagIndex2 = html.indexOf(closingTag, tagEnd + 1);
|
|
176
184
|
if (closingTagIndex2 !== -1) {
|
|
177
|
-
const element =
|
|
185
|
+
const element = ElementFactory.createElement(tagName, this._ownerDocument);
|
|
178
186
|
this.parseAttributes(element, attributeString);
|
|
179
187
|
const content = html.substring(tagEnd + 1, closingTagIndex2);
|
|
180
|
-
if (content) {
|
|
181
|
-
|
|
182
|
-
const textNode = new TextBase(content, this._ownerDocument);
|
|
183
|
-
element.appendChild(textNode);
|
|
188
|
+
if (content && TextBase) {
|
|
189
|
+
element.appendChild(new TextBase(content, this._ownerDocument));
|
|
184
190
|
}
|
|
185
|
-
|
|
186
|
-
i = closingTagIndex2 +
|
|
191
|
+
targetNode.appendChild(element);
|
|
192
|
+
i = closingTagIndex2 + closingTag.length;
|
|
187
193
|
continue;
|
|
188
194
|
}
|
|
189
195
|
}
|
|
190
|
-
const closingTag = `</${tagName}>`;
|
|
191
196
|
const closingTagIndex = this.findMatchingClosingTag(html, tagName, tagEnd + 1);
|
|
192
197
|
if (closingTagIndex !== -1) {
|
|
193
|
-
const element =
|
|
198
|
+
const element = ElementFactory.createElement(tagName, this._ownerDocument);
|
|
194
199
|
this.parseAttributes(element, attributeString);
|
|
195
200
|
const content = html.substring(tagEnd + 1, closingTagIndex);
|
|
196
201
|
if (content.trim()) {
|
|
197
202
|
element.innerHTML = content;
|
|
198
203
|
}
|
|
199
|
-
|
|
200
|
-
i = closingTagIndex +
|
|
204
|
+
targetNode.appendChild(element);
|
|
205
|
+
i = closingTagIndex + (tagName.length + 3);
|
|
201
206
|
} else {
|
|
202
|
-
const element =
|
|
207
|
+
const element = ElementFactory.createElement(tagName, this._ownerDocument);
|
|
203
208
|
this.parseAttributes(element, attributeString);
|
|
204
|
-
|
|
209
|
+
targetNode.appendChild(element);
|
|
205
210
|
i = tagEnd + 1;
|
|
206
211
|
}
|
|
207
212
|
}
|
|
208
213
|
}
|
|
209
|
-
/**
|
|
210
|
-
* Find the real end of a tag, considering quoted attributes
|
|
211
|
-
*/
|
|
212
214
|
findTagEnd(html, startIndex) {
|
|
213
215
|
let i = startIndex + 1;
|
|
214
216
|
let inQuotes = false;
|
|
@@ -219,9 +221,7 @@ class ElementBase extends ParentNodeBase {
|
|
|
219
221
|
if (char === '"' || char === "'") {
|
|
220
222
|
inQuotes = true;
|
|
221
223
|
quoteChar = char;
|
|
222
|
-
} else if (char === ">")
|
|
223
|
-
return i;
|
|
224
|
-
}
|
|
224
|
+
} else if (char === ">") return i;
|
|
225
225
|
} else {
|
|
226
226
|
if (char === quoteChar) {
|
|
227
227
|
inQuotes = false;
|
|
@@ -232,16 +232,9 @@ class ElementBase extends ParentNodeBase {
|
|
|
232
232
|
}
|
|
233
233
|
return -1;
|
|
234
234
|
}
|
|
235
|
-
/**
|
|
236
|
-
* Fix broken closing tags in text content
|
|
237
|
-
* Converts patterns like "/div>" to "</div>"
|
|
238
|
-
*/
|
|
239
235
|
fixBrokenClosingTags(text) {
|
|
240
236
|
return text.replace(/\/(\w+)>/g, "</$1>");
|
|
241
237
|
}
|
|
242
|
-
/**
|
|
243
|
-
* Find the matching closing tag, accounting for nested tags of the same type
|
|
244
|
-
*/
|
|
245
238
|
findMatchingClosingTag(html, tagName, startIndex) {
|
|
246
239
|
const openTag = `<${tagName}`;
|
|
247
240
|
const closeTag = `</${tagName}>`;
|
|
@@ -250,135 +243,70 @@ class ElementBase extends ParentNodeBase {
|
|
|
250
243
|
while (i < html.length && depth > 0) {
|
|
251
244
|
const nextOpen = html.indexOf(openTag, i);
|
|
252
245
|
const nextClose = html.indexOf(closeTag, i);
|
|
253
|
-
if (nextClose === -1)
|
|
254
|
-
return -1;
|
|
255
|
-
}
|
|
246
|
+
if (nextClose === -1) return -1;
|
|
256
247
|
if (nextOpen !== -1 && nextOpen < nextClose) {
|
|
257
248
|
const afterTag = html.charAt(nextOpen + openTag.length);
|
|
258
|
-
if (afterTag === " " || afterTag === ">" || afterTag === "/")
|
|
259
|
-
depth++;
|
|
260
|
-
}
|
|
249
|
+
if (afterTag === " " || afterTag === ">" || afterTag === "/") depth++;
|
|
261
250
|
i = nextOpen + openTag.length;
|
|
262
251
|
} else {
|
|
263
252
|
depth--;
|
|
264
|
-
if (depth === 0)
|
|
265
|
-
return nextClose;
|
|
266
|
-
}
|
|
253
|
+
if (depth === 0) return nextClose;
|
|
267
254
|
i = nextClose + closeTag.length;
|
|
268
255
|
}
|
|
269
256
|
}
|
|
270
257
|
return -1;
|
|
271
258
|
}
|
|
272
|
-
/**
|
|
273
|
-
* Parse attributes from attribute string
|
|
274
|
-
*/
|
|
275
259
|
parseAttributes(element, attributeString) {
|
|
276
260
|
let position = 0;
|
|
277
261
|
const length = attributeString.length;
|
|
278
262
|
while (position < length) {
|
|
279
|
-
while (position < length && /\s/.test(attributeString[position]))
|
|
280
|
-
position++;
|
|
281
|
-
}
|
|
263
|
+
while (position < length && /\s/.test(attributeString[position])) position++;
|
|
282
264
|
if (position >= length) break;
|
|
283
265
|
const nameStart = position;
|
|
284
|
-
while (position < length && /[\w:-]/.test(attributeString[position]))
|
|
285
|
-
position++;
|
|
286
|
-
}
|
|
266
|
+
while (position < length && /[\w:-]/.test(attributeString[position])) position++;
|
|
287
267
|
if (position === nameStart) {
|
|
288
268
|
position++;
|
|
289
269
|
continue;
|
|
290
270
|
}
|
|
291
271
|
const name = attributeString.substring(nameStart, position);
|
|
292
|
-
while (position < length && /\s/.test(attributeString[position]))
|
|
293
|
-
position++;
|
|
294
|
-
}
|
|
272
|
+
while (position < length && /\s/.test(attributeString[position])) position++;
|
|
295
273
|
let value = "";
|
|
296
274
|
if (position < length && attributeString[position] === "=") {
|
|
297
275
|
position++;
|
|
298
|
-
while (position < length && /\s/.test(attributeString[position]))
|
|
299
|
-
position++;
|
|
300
|
-
}
|
|
276
|
+
while (position < length && /\s/.test(attributeString[position])) position++;
|
|
301
277
|
if (position < length) {
|
|
302
278
|
const quote = attributeString[position];
|
|
303
279
|
if (quote === '"' || quote === "'") {
|
|
304
280
|
position++;
|
|
305
281
|
const valueStart = position;
|
|
306
|
-
while (position < length && attributeString[position] !== quote)
|
|
307
|
-
position++;
|
|
308
|
-
}
|
|
282
|
+
while (position < length && attributeString[position] !== quote) position++;
|
|
309
283
|
value = attributeString.substring(valueStart, position);
|
|
310
|
-
if (position < length && attributeString[position] === quote)
|
|
311
|
-
position++;
|
|
312
|
-
}
|
|
284
|
+
if (position < length && attributeString[position] === quote) position++;
|
|
313
285
|
} else {
|
|
314
286
|
const valueStart = position;
|
|
315
|
-
while (position < length && !/\s/.test(attributeString[position]))
|
|
316
|
-
position++;
|
|
317
|
-
}
|
|
287
|
+
while (position < length && !/\s/.test(attributeString[position])) position++;
|
|
318
288
|
value = attributeString.substring(valueStart, position);
|
|
319
289
|
}
|
|
320
290
|
}
|
|
321
291
|
}
|
|
322
|
-
|
|
323
|
-
element.setAttribute(name, value);
|
|
292
|
+
element.setAttribute(name, this.decodeHTMLEntities(value));
|
|
324
293
|
}
|
|
325
294
|
}
|
|
326
|
-
/**
|
|
327
|
-
* Escape HTML entities in a string to prevent XSS
|
|
328
|
-
*/
|
|
329
295
|
escapeHTMLEntities(str) {
|
|
330
|
-
const entityMap = {
|
|
331
|
-
|
|
332
|
-
"<": "<",
|
|
333
|
-
">": ">",
|
|
334
|
-
'"': """,
|
|
335
|
-
"'": "'"
|
|
336
|
-
};
|
|
337
|
-
return str.replace(/[&<>"']/g, (char) => {
|
|
338
|
-
return entityMap[char] || char;
|
|
339
|
-
});
|
|
296
|
+
const entityMap = { "&": "&", "<": "<", ">": ">", '"': """, "'": "'" };
|
|
297
|
+
return str.replace(/[&<>"']/g, (char) => entityMap[char] || char);
|
|
340
298
|
}
|
|
341
|
-
/**
|
|
342
|
-
* Decode HTML entities in a string
|
|
343
|
-
*/
|
|
344
299
|
decodeHTMLEntities(str) {
|
|
345
|
-
const entityMap = {
|
|
346
|
-
"&": "&",
|
|
347
|
-
"<": "<",
|
|
348
|
-
">": ">",
|
|
349
|
-
""": '"',
|
|
350
|
-
"'": "'",
|
|
351
|
-
""": '"',
|
|
352
|
-
"'": "'",
|
|
353
|
-
"©": "\xA9",
|
|
354
|
-
"®": "\xAE",
|
|
355
|
-
"™": "\u2122",
|
|
356
|
-
" ": " ",
|
|
357
|
-
"…": "\u2026",
|
|
358
|
-
"—": "\u2014",
|
|
359
|
-
"–": "\u2013",
|
|
360
|
-
"‘": "\u2018",
|
|
361
|
-
"’": "\u2019",
|
|
362
|
-
"“": '"',
|
|
363
|
-
"”": '"'
|
|
364
|
-
};
|
|
300
|
+
const entityMap = { "&": "&", "<": "<", ">": ">", """: '"', "'": "'", """: '"', "'": "'", "©": "\xA9", "®": "\xAE", "™": "\u2122", " ": " ", "…": "\u2026", "—": "\u2014", "–": "\u2013", "‘": "\u2018", "’": "\u2019", "“": '"', "”": '"' };
|
|
365
301
|
return str.replace(/&[a-zA-Z0-9#]+;/g, (entity) => {
|
|
366
|
-
if (entityMap[entity])
|
|
367
|
-
return entityMap[entity];
|
|
368
|
-
}
|
|
302
|
+
if (entityMap[entity]) return entityMap[entity];
|
|
369
303
|
if (entity.startsWith("&#") && entity.endsWith(";")) {
|
|
370
|
-
const
|
|
371
|
-
|
|
372
|
-
if (!isNaN(num)) {
|
|
373
|
-
return String.fromCharCode(num);
|
|
374
|
-
}
|
|
304
|
+
const num = parseInt(entity.slice(2, -1), 10);
|
|
305
|
+
return isNaN(num) ? entity : String.fromCharCode(num);
|
|
375
306
|
}
|
|
376
307
|
if (entity.startsWith("&#x") && entity.endsWith(";")) {
|
|
377
|
-
const
|
|
378
|
-
|
|
379
|
-
if (!isNaN(num)) {
|
|
380
|
-
return String.fromCharCode(num);
|
|
381
|
-
}
|
|
308
|
+
const num = parseInt(entity.slice(3, -1), 16);
|
|
309
|
+
return isNaN(num) ? entity : String.fromCharCode(num);
|
|
382
310
|
}
|
|
383
311
|
return entity;
|
|
384
312
|
});
|
|
@@ -387,11 +315,7 @@ class ElementBase extends ParentNodeBase {
|
|
|
387
315
|
const attrs = Array.from(this._attributes.entries()).map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${value.replace(/"/g, """)}"`).join("");
|
|
388
316
|
const selfClosingTags = ["img", "input", "br", "hr", "meta", "link", "area", "base", "col", "embed", "source", "track", "wbr"];
|
|
389
317
|
const isSelfClosing = selfClosingTags.includes(this.tagName.toLowerCase());
|
|
390
|
-
|
|
391
|
-
return `<${this.tagName.toLowerCase()}${attrs} />`;
|
|
392
|
-
} else {
|
|
393
|
-
return `<${this.tagName.toLowerCase()}${attrs}>${this.innerHTML}</${this.tagName.toLowerCase()}>`;
|
|
394
|
-
}
|
|
318
|
+
return isSelfClosing ? `<${this.tagName.toLowerCase()}${attrs} />` : `<${this.tagName.toLowerCase()}${attrs}>${this.innerHTML}</${this.tagName.toLowerCase()}>`;
|
|
395
319
|
}
|
|
396
320
|
get namespaceURI() {
|
|
397
321
|
return "http://www.w3.org/1999/xhtml";
|
|
@@ -399,28 +323,20 @@ class ElementBase extends ParentNodeBase {
|
|
|
399
323
|
get prefix() {
|
|
400
324
|
return null;
|
|
401
325
|
}
|
|
402
|
-
// Attribute methods
|
|
403
326
|
getAttribute(qualifiedName) {
|
|
404
|
-
|
|
405
|
-
return value !== void 0 ? value : null;
|
|
327
|
+
return this._attributes.get(qualifiedName.toLowerCase()) ?? null;
|
|
406
328
|
}
|
|
407
329
|
setAttribute(qualifiedName, value) {
|
|
408
330
|
const name = qualifiedName.toLowerCase();
|
|
409
331
|
this._attributes.set(name, value);
|
|
410
|
-
if (name === "id")
|
|
411
|
-
|
|
412
|
-
} else if (name === "class") {
|
|
413
|
-
this._className = value;
|
|
414
|
-
}
|
|
332
|
+
if (name === "id") this._id = value;
|
|
333
|
+
else if (name === "class") this._className = value;
|
|
415
334
|
}
|
|
416
335
|
removeAttribute(qualifiedName) {
|
|
417
336
|
const name = qualifiedName.toLowerCase();
|
|
418
337
|
this._attributes.delete(name);
|
|
419
|
-
if (name === "id")
|
|
420
|
-
|
|
421
|
-
} else if (name === "class") {
|
|
422
|
-
this._className = "";
|
|
423
|
-
}
|
|
338
|
+
if (name === "id") this._id = "";
|
|
339
|
+
else if (name === "class") this._className = "";
|
|
424
340
|
}
|
|
425
341
|
hasAttribute(qualifiedName) {
|
|
426
342
|
return this._attributes.has(qualifiedName.toLowerCase());
|
|
@@ -428,82 +344,74 @@ class ElementBase extends ParentNodeBase {
|
|
|
428
344
|
closest(selectors) {
|
|
429
345
|
let element = this;
|
|
430
346
|
while (element) {
|
|
431
|
-
if (element.matches && element.matches(selectors))
|
|
432
|
-
return element;
|
|
433
|
-
}
|
|
347
|
+
if (element.matches && element.matches(selectors)) return element;
|
|
434
348
|
element = element.parentElement;
|
|
435
349
|
}
|
|
436
350
|
return null;
|
|
437
351
|
}
|
|
438
|
-
/**
|
|
439
|
-
* Returns true if the element would be selected by the specified CSS selector; otherwise, returns false.
|
|
440
|
-
*
|
|
441
|
-
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)
|
|
442
|
-
*/
|
|
443
352
|
matches(selectors) {
|
|
444
353
|
return CSSSelector.matches(this, selectors);
|
|
445
354
|
}
|
|
446
|
-
// ChildNode methods are inherited from ParentNodeBase -> ChildNodeBase
|
|
447
|
-
// Additional Element properties and methods - Not implemented yet
|
|
448
355
|
get attributes() {
|
|
449
356
|
return new NamedNodeMapImpl(this._attributes);
|
|
450
357
|
}
|
|
451
358
|
get clientHeight() {
|
|
452
|
-
|
|
359
|
+
return 0;
|
|
453
360
|
}
|
|
454
361
|
get clientLeft() {
|
|
455
|
-
|
|
362
|
+
return 0;
|
|
456
363
|
}
|
|
457
364
|
get clientTop() {
|
|
458
|
-
|
|
365
|
+
return 0;
|
|
459
366
|
}
|
|
460
367
|
get clientWidth() {
|
|
461
|
-
|
|
368
|
+
return 0;
|
|
462
369
|
}
|
|
463
370
|
get currentCSSZoom() {
|
|
464
|
-
|
|
371
|
+
return 1;
|
|
465
372
|
}
|
|
466
373
|
get part() {
|
|
467
|
-
|
|
374
|
+
return { length: 0, value: "", add: () => {
|
|
375
|
+
}, remove: () => {
|
|
376
|
+
}, contains: () => false, toggle: () => false, replace: () => false, item: () => null };
|
|
468
377
|
}
|
|
469
378
|
get scrollHeight() {
|
|
470
|
-
|
|
379
|
+
return 0;
|
|
471
380
|
}
|
|
472
381
|
get scrollLeft() {
|
|
473
|
-
|
|
382
|
+
return 0;
|
|
474
383
|
}
|
|
475
|
-
set scrollLeft(
|
|
476
|
-
throw new Error("Element.scrollLeft setter is not implemented yet");
|
|
384
|
+
set scrollLeft(_) {
|
|
477
385
|
}
|
|
478
386
|
get scrollTop() {
|
|
479
|
-
|
|
387
|
+
return 0;
|
|
480
388
|
}
|
|
481
|
-
set scrollTop(
|
|
482
|
-
throw new Error("Element.scrollTop setter is not implemented yet");
|
|
389
|
+
set scrollTop(_) {
|
|
483
390
|
}
|
|
484
391
|
get scrollWidth() {
|
|
485
|
-
|
|
392
|
+
return 0;
|
|
486
393
|
}
|
|
487
394
|
get shadowRoot() {
|
|
488
|
-
|
|
395
|
+
return this._shadowRoot;
|
|
489
396
|
}
|
|
490
397
|
get slot() {
|
|
491
|
-
|
|
398
|
+
return this.getAttribute("slot") || "";
|
|
492
399
|
}
|
|
493
400
|
set slot(value) {
|
|
494
|
-
|
|
401
|
+
this.setAttribute("slot", value);
|
|
495
402
|
}
|
|
496
|
-
// Methods - Not implemented yet
|
|
497
403
|
attachShadow(init) {
|
|
498
|
-
throw new
|
|
404
|
+
if (this._shadowRoot) throw new DOMException("Shadow root already attached", "NotSupportedError");
|
|
405
|
+
this._shadowRoot = new ShadowRootBase(this, init, this._ownerDocument);
|
|
406
|
+
return this._shadowRoot;
|
|
499
407
|
}
|
|
500
|
-
checkVisibility(
|
|
501
|
-
|
|
408
|
+
checkVisibility(_options) {
|
|
409
|
+
return true;
|
|
502
410
|
}
|
|
503
411
|
computedStyleMap() {
|
|
504
|
-
|
|
412
|
+
return /* @__PURE__ */ new Map();
|
|
505
413
|
}
|
|
506
|
-
getAttributeNS(
|
|
414
|
+
getAttributeNS(_ns, localName) {
|
|
507
415
|
return this.getAttribute(localName);
|
|
508
416
|
}
|
|
509
417
|
getAttributeNames() {
|
|
@@ -511,29 +419,17 @@ class ElementBase extends ParentNodeBase {
|
|
|
511
419
|
}
|
|
512
420
|
getAttributeNode(qualifiedName) {
|
|
513
421
|
const value = this.getAttribute(qualifiedName);
|
|
514
|
-
|
|
515
|
-
return new AttrImpl(qualifiedName, value);
|
|
516
|
-
}
|
|
517
|
-
return null;
|
|
422
|
+
return value !== null ? new AttrImpl(qualifiedName, value) : null;
|
|
518
423
|
}
|
|
519
|
-
getAttributeNodeNS(
|
|
424
|
+
getAttributeNodeNS(_ns, localName) {
|
|
520
425
|
return this.getAttributeNode(localName);
|
|
521
426
|
}
|
|
522
427
|
getBoundingClientRect() {
|
|
523
|
-
return {
|
|
524
|
-
bottom: 0,
|
|
525
|
-
height: 0,
|
|
526
|
-
left: 0,
|
|
527
|
-
right: 0,
|
|
528
|
-
top: 0,
|
|
529
|
-
width: 0,
|
|
530
|
-
x: 0,
|
|
531
|
-
y: 0,
|
|
532
|
-
toJSON: () => ({})
|
|
533
|
-
};
|
|
428
|
+
return { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0, toJSON: () => ({}) };
|
|
534
429
|
}
|
|
535
430
|
getClientRects() {
|
|
536
|
-
|
|
431
|
+
return { length: 0, item: () => null, [Symbol.iterator]: function* () {
|
|
432
|
+
} };
|
|
537
433
|
}
|
|
538
434
|
getElementsByClassName(classNames) {
|
|
539
435
|
const result = [];
|
|
@@ -543,55 +439,37 @@ class ElementBase extends ParentNodeBase {
|
|
|
543
439
|
return classes.every((cls) => elementClasses.includes(cls));
|
|
544
440
|
};
|
|
545
441
|
const traverse = (node) => {
|
|
546
|
-
if (node.nodeType === ELEMENT_NODE)
|
|
547
|
-
|
|
548
|
-
if (hasAllClasses(element, classNameList)) {
|
|
549
|
-
result.push(element);
|
|
550
|
-
}
|
|
551
|
-
}
|
|
552
|
-
for (let i = 0; i < node.childNodes.length; i++) {
|
|
553
|
-
traverse(node.childNodes[i]);
|
|
554
|
-
}
|
|
442
|
+
if (node.nodeType === ELEMENT_NODE && hasAllClasses(node, classNameList)) result.push(node);
|
|
443
|
+
for (let i = 0; i < node.childNodes.length; i++) traverse(node.childNodes[i]);
|
|
555
444
|
};
|
|
556
|
-
for (let i = 0; i < this.childNodes.length; i++)
|
|
557
|
-
|
|
558
|
-
}
|
|
559
|
-
return new HTMLCollection(result);
|
|
445
|
+
for (let i = 0; i < this.childNodes.length; i++) traverse(this.childNodes[i]);
|
|
446
|
+
return new HTMLCollectionOfImp(result);
|
|
560
447
|
}
|
|
561
448
|
getElementsByTagName(qualifiedName) {
|
|
562
449
|
const result = [];
|
|
563
450
|
const tagName = qualifiedName.toLowerCase();
|
|
564
451
|
const isWildcard = tagName === "*";
|
|
565
452
|
const traverse = (node) => {
|
|
566
|
-
if (node.nodeType === ELEMENT_NODE)
|
|
567
|
-
|
|
568
|
-
if (isWildcard || element.localName === tagName) {
|
|
569
|
-
result.push(element);
|
|
570
|
-
}
|
|
571
|
-
}
|
|
572
|
-
for (let i = 0; i < node.childNodes.length; i++) {
|
|
573
|
-
traverse(node.childNodes[i]);
|
|
574
|
-
}
|
|
453
|
+
if (node.nodeType === ELEMENT_NODE && (isWildcard || node.localName === tagName)) result.push(node);
|
|
454
|
+
for (let i = 0; i < node.childNodes.length; i++) traverse(node.childNodes[i]);
|
|
575
455
|
};
|
|
576
|
-
for (let i = 0; i < this.childNodes.length; i++)
|
|
577
|
-
|
|
578
|
-
}
|
|
579
|
-
return new HTMLCollection(result);
|
|
456
|
+
for (let i = 0; i < this.childNodes.length; i++) traverse(this.childNodes[i]);
|
|
457
|
+
return new HTMLCollectionImp(result);
|
|
580
458
|
}
|
|
581
|
-
getElementsByTagNameNS(
|
|
459
|
+
getElementsByTagNameNS(_ns, localName) {
|
|
582
460
|
return this.getElementsByTagName(localName);
|
|
583
461
|
}
|
|
584
|
-
getHTML(
|
|
585
|
-
|
|
462
|
+
getHTML(_options) {
|
|
463
|
+
return this.outerHTML;
|
|
586
464
|
}
|
|
587
|
-
hasAttributeNS(
|
|
465
|
+
hasAttributeNS(_ns, localName) {
|
|
588
466
|
return this.hasAttribute(localName);
|
|
589
467
|
}
|
|
590
468
|
hasAttributes() {
|
|
591
469
|
return this._attributes.size > 0;
|
|
592
470
|
}
|
|
593
|
-
hasPointerCapture(
|
|
594
|
-
|
|
471
|
+
hasPointerCapture(_id) {
|
|
472
|
+
return false;
|
|
595
473
|
}
|
|
596
474
|
insertAdjacentElement(where, element) {
|
|
597
475
|
const position = where.toLowerCase();
|
|
@@ -603,22 +481,16 @@ class ElementBase extends ParentNodeBase {
|
|
|
603
481
|
}
|
|
604
482
|
return null;
|
|
605
483
|
case "afterbegin":
|
|
606
|
-
if (this.firstChild)
|
|
607
|
-
|
|
608
|
-
} else {
|
|
609
|
-
this.appendChild(element);
|
|
610
|
-
}
|
|
484
|
+
if (this.firstChild) this.insertBefore(element, this.firstChild);
|
|
485
|
+
else this.appendChild(element);
|
|
611
486
|
return element;
|
|
612
487
|
case "beforeend":
|
|
613
488
|
this.appendChild(element);
|
|
614
489
|
return element;
|
|
615
490
|
case "afterend":
|
|
616
491
|
if (this.parentNode) {
|
|
617
|
-
if (this.nextSibling)
|
|
618
|
-
|
|
619
|
-
} else {
|
|
620
|
-
this.parentNode.appendChild(element);
|
|
621
|
-
}
|
|
492
|
+
if (this.nextSibling) this.parentNode.insertBefore(element, this.nextSibling);
|
|
493
|
+
else this.parentNode.appendChild(element);
|
|
622
494
|
return element;
|
|
623
495
|
}
|
|
624
496
|
return null;
|
|
@@ -631,32 +503,22 @@ class ElementBase extends ParentNodeBase {
|
|
|
631
503
|
const tempDiv = this._ownerDocument.createElement("div");
|
|
632
504
|
tempDiv.innerHTML = html;
|
|
633
505
|
const fragment = this._ownerDocument.createDocumentFragment();
|
|
634
|
-
while (tempDiv.firstChild)
|
|
635
|
-
fragment.appendChild(tempDiv.firstChild);
|
|
636
|
-
}
|
|
506
|
+
while (tempDiv.firstChild) fragment.appendChild(tempDiv.firstChild);
|
|
637
507
|
switch (pos) {
|
|
638
508
|
case "beforebegin":
|
|
639
|
-
if (this.parentNode)
|
|
640
|
-
this.parentNode.insertBefore(fragment, this);
|
|
641
|
-
}
|
|
509
|
+
if (this.parentNode) this.parentNode.insertBefore(fragment, this);
|
|
642
510
|
break;
|
|
643
511
|
case "afterbegin":
|
|
644
|
-
if (this.firstChild)
|
|
645
|
-
|
|
646
|
-
} else {
|
|
647
|
-
this.appendChild(fragment);
|
|
648
|
-
}
|
|
512
|
+
if (this.firstChild) this.insertBefore(fragment, this.firstChild);
|
|
513
|
+
else this.appendChild(fragment);
|
|
649
514
|
break;
|
|
650
515
|
case "beforeend":
|
|
651
516
|
this.appendChild(fragment);
|
|
652
517
|
break;
|
|
653
518
|
case "afterend":
|
|
654
519
|
if (this.parentNode) {
|
|
655
|
-
if (this.nextSibling)
|
|
656
|
-
|
|
657
|
-
} else {
|
|
658
|
-
this.parentNode.appendChild(fragment);
|
|
659
|
-
}
|
|
520
|
+
if (this.nextSibling) this.parentNode.insertBefore(fragment, this.nextSibling);
|
|
521
|
+
else this.parentNode.appendChild(fragment);
|
|
660
522
|
}
|
|
661
523
|
break;
|
|
662
524
|
default:
|
|
@@ -668,36 +530,28 @@ class ElementBase extends ParentNodeBase {
|
|
|
668
530
|
const textNode = this._ownerDocument.createTextNode(data);
|
|
669
531
|
switch (position) {
|
|
670
532
|
case "beforebegin":
|
|
671
|
-
if (this.parentNode)
|
|
672
|
-
this.parentNode.insertBefore(textNode, this);
|
|
673
|
-
}
|
|
533
|
+
if (this.parentNode) this.parentNode.insertBefore(textNode, this);
|
|
674
534
|
break;
|
|
675
535
|
case "afterbegin":
|
|
676
|
-
if (this.firstChild)
|
|
677
|
-
|
|
678
|
-
} else {
|
|
679
|
-
this.appendChild(textNode);
|
|
680
|
-
}
|
|
536
|
+
if (this.firstChild) this.insertBefore(textNode, this.firstChild);
|
|
537
|
+
else this.appendChild(textNode);
|
|
681
538
|
break;
|
|
682
539
|
case "beforeend":
|
|
683
540
|
this.appendChild(textNode);
|
|
684
541
|
break;
|
|
685
542
|
case "afterend":
|
|
686
543
|
if (this.parentNode) {
|
|
687
|
-
if (this.nextSibling)
|
|
688
|
-
|
|
689
|
-
} else {
|
|
690
|
-
this.parentNode.appendChild(textNode);
|
|
691
|
-
}
|
|
544
|
+
if (this.nextSibling) this.parentNode.insertBefore(textNode, this.nextSibling);
|
|
545
|
+
else this.parentNode.appendChild(textNode);
|
|
692
546
|
}
|
|
693
547
|
break;
|
|
694
548
|
default:
|
|
695
549
|
throw new DOMException(`Invalid position: ${where}`, "SyntaxError");
|
|
696
550
|
}
|
|
697
551
|
}
|
|
698
|
-
releasePointerCapture(
|
|
552
|
+
releasePointerCapture(_id) {
|
|
699
553
|
}
|
|
700
|
-
removeAttributeNS(
|
|
554
|
+
removeAttributeNS(_ns, localName) {
|
|
701
555
|
this.removeAttribute(localName);
|
|
702
556
|
}
|
|
703
557
|
removeAttributeNode(attr) {
|
|
@@ -708,21 +562,21 @@ class ElementBase extends ParentNodeBase {
|
|
|
708
562
|
}
|
|
709
563
|
throw new DOMException("The attribute node is not an attribute of this element", "NotFoundError");
|
|
710
564
|
}
|
|
711
|
-
requestFullscreen(
|
|
712
|
-
|
|
565
|
+
requestFullscreen(_opt) {
|
|
566
|
+
return Promise.resolve();
|
|
713
567
|
}
|
|
714
|
-
requestPointerLock(
|
|
715
|
-
|
|
568
|
+
requestPointerLock(_opt) {
|
|
569
|
+
return Promise.resolve();
|
|
716
570
|
}
|
|
717
|
-
scroll(
|
|
571
|
+
scroll(_x, _y) {
|
|
718
572
|
}
|
|
719
|
-
scrollBy(
|
|
573
|
+
scrollBy(_x, _y) {
|
|
720
574
|
}
|
|
721
|
-
scrollIntoView(
|
|
575
|
+
scrollIntoView(_arg) {
|
|
722
576
|
}
|
|
723
|
-
scrollTo(
|
|
577
|
+
scrollTo(_x, _y) {
|
|
724
578
|
}
|
|
725
|
-
setAttributeNS(
|
|
579
|
+
setAttributeNS(_ns, qualifiedName, value) {
|
|
726
580
|
this.setAttribute(qualifiedName, value);
|
|
727
581
|
}
|
|
728
582
|
setAttributeNode(attr) {
|
|
@@ -734,8 +588,9 @@ class ElementBase extends ParentNodeBase {
|
|
|
734
588
|
return this.setAttributeNode(attr);
|
|
735
589
|
}
|
|
736
590
|
setHTMLUnsafe(html) {
|
|
591
|
+
this.innerHTML = html;
|
|
737
592
|
}
|
|
738
|
-
setPointerCapture(
|
|
593
|
+
setPointerCapture(_id) {
|
|
739
594
|
}
|
|
740
595
|
toggleAttribute(qualifiedName, force) {
|
|
741
596
|
const hasAttr = this.hasAttribute(qualifiedName);
|
|
@@ -749,31 +604,31 @@ class ElementBase extends ParentNodeBase {
|
|
|
749
604
|
return hasAttr;
|
|
750
605
|
}
|
|
751
606
|
webkitMatchesSelector(selectors) {
|
|
752
|
-
return
|
|
607
|
+
return this.matches(selectors);
|
|
753
608
|
}
|
|
754
|
-
// EventTarget methods - Not implemented yet
|
|
755
609
|
addEventListener(type, listener, options) {
|
|
756
610
|
}
|
|
757
611
|
removeEventListener(type, listener, options) {
|
|
758
612
|
}
|
|
759
|
-
dispatchEvent(
|
|
613
|
+
dispatchEvent(_event) {
|
|
760
614
|
return true;
|
|
761
615
|
}
|
|
762
616
|
cloneNode(deep) {
|
|
617
|
+
const { ElementFactory } = _ElementBase.dependencies;
|
|
763
618
|
const clone = ElementFactory.createElement(this.tagName, this._ownerDocument);
|
|
764
|
-
for (const [name, value] of this._attributes)
|
|
765
|
-
clone.setAttribute(name, value);
|
|
766
|
-
}
|
|
619
|
+
for (const [name, value] of this._attributes) clone.setAttribute(name, value);
|
|
767
620
|
if (deep) {
|
|
768
|
-
for (const child of this._childNodesInternal)
|
|
769
|
-
if (child && "cloneNode" in child) {
|
|
770
|
-
clone.appendChild(child.cloneNode(true));
|
|
771
|
-
}
|
|
772
|
-
}
|
|
621
|
+
for (const child of this._childNodesInternal) if (child && "cloneNode" in child) clone.appendChild(child.cloneNode(true));
|
|
773
622
|
}
|
|
774
623
|
return clone;
|
|
775
624
|
}
|
|
776
|
-
}
|
|
625
|
+
};
|
|
626
|
+
/**
|
|
627
|
+
* Static dependencies to break circular references without using 'require' or 'global'.
|
|
628
|
+
* These are injected by the main DomParser entry point.
|
|
629
|
+
*/
|
|
630
|
+
_ElementBase.dependencies = {};
|
|
631
|
+
let ElementBase = _ElementBase;
|
|
777
632
|
class DOMTokenListImpl {
|
|
778
633
|
constructor(element) {
|
|
779
634
|
this.element = element;
|
|
@@ -789,16 +644,12 @@ class DOMTokenListImpl {
|
|
|
789
644
|
}
|
|
790
645
|
add(...tokens) {
|
|
791
646
|
const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
|
|
792
|
-
|
|
793
|
-
classes.add(token);
|
|
794
|
-
}
|
|
647
|
+
tokens.forEach((t) => classes.add(t));
|
|
795
648
|
this.element.className = Array.from(classes).join(" ");
|
|
796
649
|
}
|
|
797
650
|
remove(...tokens) {
|
|
798
651
|
const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
|
|
799
|
-
|
|
800
|
-
classes.delete(token);
|
|
801
|
-
}
|
|
652
|
+
tokens.forEach((t) => classes.delete(t));
|
|
802
653
|
this.element.className = Array.from(classes).join(" ");
|
|
803
654
|
}
|
|
804
655
|
contains(token) {
|
|
@@ -852,16 +703,12 @@ class NamedNodeMapImpl {
|
|
|
852
703
|
const value = this.attributes.get(qualifiedName.toLowerCase());
|
|
853
704
|
return value !== void 0 ? new AttrImpl(qualifiedName, value) : null;
|
|
854
705
|
}
|
|
855
|
-
getNamedItemNS(
|
|
706
|
+
getNamedItemNS(_ns, localName) {
|
|
856
707
|
return this.getNamedItem(localName);
|
|
857
708
|
}
|
|
858
709
|
item(index) {
|
|
859
710
|
const keys = Array.from(this.attributes.keys());
|
|
860
|
-
if (index >= 0 && index < keys.length)
|
|
861
|
-
const key = keys[index];
|
|
862
|
-
const value = this.attributes.get(key);
|
|
863
|
-
return new AttrImpl(key, value);
|
|
864
|
-
}
|
|
711
|
+
if (index >= 0 && index < keys.length) return new AttrImpl(keys[index], this.attributes.get(keys[index]));
|
|
865
712
|
return null;
|
|
866
713
|
}
|
|
867
714
|
removeNamedItem(qualifiedName) {
|
|
@@ -872,7 +719,7 @@ class NamedNodeMapImpl {
|
|
|
872
719
|
}
|
|
873
720
|
throw new DOMException("The attribute is not found", "NotFoundError");
|
|
874
721
|
}
|
|
875
|
-
removeNamedItemNS(
|
|
722
|
+
removeNamedItemNS(_ns, localName) {
|
|
876
723
|
return this.removeNamedItem(localName);
|
|
877
724
|
}
|
|
878
725
|
setNamedItem(attr) {
|
|
@@ -883,42 +730,27 @@ class NamedNodeMapImpl {
|
|
|
883
730
|
setNamedItemNS(attr) {
|
|
884
731
|
return this.setNamedItem(attr);
|
|
885
732
|
}
|
|
886
|
-
// Iterator implementation
|
|
887
733
|
*[Symbol.iterator]() {
|
|
888
|
-
const
|
|
889
|
-
for (const key of keys) {
|
|
890
|
-
const value = this.attributes.get(key);
|
|
891
|
-
yield new AttrImpl(key, value);
|
|
892
|
-
}
|
|
734
|
+
for (const [key, value] of this.attributes) yield new AttrImpl(key, value);
|
|
893
735
|
}
|
|
894
|
-
// Additional iterator methods for compatibility
|
|
895
736
|
keys() {
|
|
896
737
|
return this.attributes.keys();
|
|
897
738
|
}
|
|
898
739
|
values() {
|
|
899
740
|
const self = this;
|
|
900
741
|
return function* () {
|
|
901
|
-
for (const [key, value] of self.attributes)
|
|
902
|
-
yield new AttrImpl(key, value);
|
|
903
|
-
}
|
|
742
|
+
for (const [key, value] of self.attributes) yield new AttrImpl(key, value);
|
|
904
743
|
}();
|
|
905
744
|
}
|
|
906
745
|
entries() {
|
|
907
746
|
const self = this;
|
|
908
747
|
return function* () {
|
|
909
|
-
for (const [key, value] of self.attributes)
|
|
910
|
-
yield [key, new AttrImpl(key, value)];
|
|
911
|
-
}
|
|
748
|
+
for (const [key, value] of self.attributes) yield [key, new AttrImpl(key, value)];
|
|
912
749
|
}();
|
|
913
750
|
}
|
|
914
|
-
// forEach method for compatibility
|
|
915
751
|
forEach(callback, thisArg) {
|
|
916
752
|
const keys = Array.from(this.attributes.keys());
|
|
917
|
-
keys.forEach((key, index) =>
|
|
918
|
-
const value = this.attributes.get(key);
|
|
919
|
-
const attr = new AttrImpl(key, value);
|
|
920
|
-
callback.call(thisArg, attr, index, this);
|
|
921
|
-
});
|
|
753
|
+
keys.forEach((key, index) => callback.call(thisArg, new AttrImpl(key, this.attributes.get(key)), index, this));
|
|
922
754
|
}
|
|
923
755
|
}
|
|
924
756
|
export {
|