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