@dooboostore/dom-parser 1.0.1 → 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 +43 -13
- 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 +169 -202
- 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 +164 -322
- 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 +153 -3
- 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 +233 -515
- 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 +43 -13
- 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 +166 -199
- 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 +164 -322
- 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 +153 -3
- 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 +282 -499
- 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 +3755 -3548
- package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
- package/dist/types/DomParser.d.ts +4 -0
- 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 -108
- 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 -686
- package/dist/types/node/elements/Element.d.ts.map +1 -1
- package/dist/types/node/elements/ElementBase.d.ts +97 -73
- 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 -88
- package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
- package/dist/types/node/elements/HTMLElementBase.d.ts +133 -3
- 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 +261 -284
- 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 +3765 -3558
- package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
- package/package.json +1 -1
- package/src/DomParser.ts +458 -429
- 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 -462
- 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 -771
- package/src/node/elements/ElementBase.ts +840 -1195
- 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 -102
- package/src/node/elements/HTMLElementBase.ts +453 -156
- 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 +842 -998
- 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) {
|
|
@@ -110,13 +119,16 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
110
119
|
*/
|
|
111
120
|
generateChildElementHTML(element) {
|
|
112
121
|
const tagName = element.tagName.toLowerCase();
|
|
113
|
-
const attrs = Array.from(element._attributes?.entries() || []).map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${value.replace(/"/g, """)}"`).join("");
|
|
122
|
+
const attrs = Array.from(element._attributes?.entries() || []).map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${String(value).replace(/"/g, """)}"`).join("");
|
|
114
123
|
const selfClosingTags = ["img", "input", "br", "hr", "meta", "link", "area", "base", "col", "embed", "source", "track", "wbr"];
|
|
115
124
|
const isSelfClosing = selfClosingTags.includes(tagName);
|
|
116
125
|
if (isSelfClosing) {
|
|
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,19 +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
|
-
|
|
450
|
+
return { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0, toJSON: () => ({}) };
|
|
546
451
|
}
|
|
547
452
|
getClientRects() {
|
|
548
|
-
|
|
453
|
+
return { length: 0, item: () => null, [Symbol.iterator]: function* () {
|
|
454
|
+
} };
|
|
549
455
|
}
|
|
550
456
|
getElementsByClassName(classNames) {
|
|
551
457
|
const result = [];
|
|
@@ -555,55 +461,37 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
555
461
|
return classes.every((cls) => elementClasses.includes(cls));
|
|
556
462
|
};
|
|
557
463
|
const traverse = (node) => {
|
|
558
|
-
if (node.nodeType === import_Node.ELEMENT_NODE)
|
|
559
|
-
|
|
560
|
-
if (hasAllClasses(element, classNameList)) {
|
|
561
|
-
result.push(element);
|
|
562
|
-
}
|
|
563
|
-
}
|
|
564
|
-
for (let i = 0; i < node.childNodes.length; i++) {
|
|
565
|
-
traverse(node.childNodes[i]);
|
|
566
|
-
}
|
|
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]);
|
|
567
466
|
};
|
|
568
|
-
for (let i = 0; i < this.childNodes.length; i++)
|
|
569
|
-
|
|
570
|
-
}
|
|
571
|
-
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);
|
|
572
469
|
}
|
|
573
470
|
getElementsByTagName(qualifiedName) {
|
|
574
471
|
const result = [];
|
|
575
472
|
const tagName = qualifiedName.toLowerCase();
|
|
576
473
|
const isWildcard = tagName === "*";
|
|
577
474
|
const traverse = (node) => {
|
|
578
|
-
if (node.nodeType === import_Node.ELEMENT_NODE)
|
|
579
|
-
|
|
580
|
-
if (isWildcard || element.localName === tagName) {
|
|
581
|
-
result.push(element);
|
|
582
|
-
}
|
|
583
|
-
}
|
|
584
|
-
for (let i = 0; i < node.childNodes.length; i++) {
|
|
585
|
-
traverse(node.childNodes[i]);
|
|
586
|
-
}
|
|
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]);
|
|
587
477
|
};
|
|
588
|
-
for (let i = 0; i < this.childNodes.length; i++)
|
|
589
|
-
|
|
590
|
-
}
|
|
591
|
-
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);
|
|
592
480
|
}
|
|
593
|
-
getElementsByTagNameNS(
|
|
481
|
+
getElementsByTagNameNS(_ns, localName) {
|
|
594
482
|
return this.getElementsByTagName(localName);
|
|
595
483
|
}
|
|
596
|
-
getHTML(
|
|
597
|
-
|
|
484
|
+
getHTML(_options) {
|
|
485
|
+
return this.outerHTML;
|
|
598
486
|
}
|
|
599
|
-
hasAttributeNS(
|
|
487
|
+
hasAttributeNS(_ns, localName) {
|
|
600
488
|
return this.hasAttribute(localName);
|
|
601
489
|
}
|
|
602
490
|
hasAttributes() {
|
|
603
491
|
return this._attributes.size > 0;
|
|
604
492
|
}
|
|
605
|
-
hasPointerCapture(
|
|
606
|
-
|
|
493
|
+
hasPointerCapture(_id) {
|
|
494
|
+
return false;
|
|
607
495
|
}
|
|
608
496
|
insertAdjacentElement(where, element) {
|
|
609
497
|
const position = where.toLowerCase();
|
|
@@ -615,22 +503,16 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
615
503
|
}
|
|
616
504
|
return null;
|
|
617
505
|
case "afterbegin":
|
|
618
|
-
if (this.firstChild)
|
|
619
|
-
|
|
620
|
-
} else {
|
|
621
|
-
this.appendChild(element);
|
|
622
|
-
}
|
|
506
|
+
if (this.firstChild) this.insertBefore(element, this.firstChild);
|
|
507
|
+
else this.appendChild(element);
|
|
623
508
|
return element;
|
|
624
509
|
case "beforeend":
|
|
625
510
|
this.appendChild(element);
|
|
626
511
|
return element;
|
|
627
512
|
case "afterend":
|
|
628
513
|
if (this.parentNode) {
|
|
629
|
-
if (this.nextSibling)
|
|
630
|
-
|
|
631
|
-
} else {
|
|
632
|
-
this.parentNode.appendChild(element);
|
|
633
|
-
}
|
|
514
|
+
if (this.nextSibling) this.parentNode.insertBefore(element, this.nextSibling);
|
|
515
|
+
else this.parentNode.appendChild(element);
|
|
634
516
|
return element;
|
|
635
517
|
}
|
|
636
518
|
return null;
|
|
@@ -643,32 +525,22 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
643
525
|
const tempDiv = this._ownerDocument.createElement("div");
|
|
644
526
|
tempDiv.innerHTML = html;
|
|
645
527
|
const fragment = this._ownerDocument.createDocumentFragment();
|
|
646
|
-
while (tempDiv.firstChild)
|
|
647
|
-
fragment.appendChild(tempDiv.firstChild);
|
|
648
|
-
}
|
|
528
|
+
while (tempDiv.firstChild) fragment.appendChild(tempDiv.firstChild);
|
|
649
529
|
switch (pos) {
|
|
650
530
|
case "beforebegin":
|
|
651
|
-
if (this.parentNode)
|
|
652
|
-
this.parentNode.insertBefore(fragment, this);
|
|
653
|
-
}
|
|
531
|
+
if (this.parentNode) this.parentNode.insertBefore(fragment, this);
|
|
654
532
|
break;
|
|
655
533
|
case "afterbegin":
|
|
656
|
-
if (this.firstChild)
|
|
657
|
-
|
|
658
|
-
} else {
|
|
659
|
-
this.appendChild(fragment);
|
|
660
|
-
}
|
|
534
|
+
if (this.firstChild) this.insertBefore(fragment, this.firstChild);
|
|
535
|
+
else this.appendChild(fragment);
|
|
661
536
|
break;
|
|
662
537
|
case "beforeend":
|
|
663
538
|
this.appendChild(fragment);
|
|
664
539
|
break;
|
|
665
540
|
case "afterend":
|
|
666
541
|
if (this.parentNode) {
|
|
667
|
-
if (this.nextSibling)
|
|
668
|
-
|
|
669
|
-
} else {
|
|
670
|
-
this.parentNode.appendChild(fragment);
|
|
671
|
-
}
|
|
542
|
+
if (this.nextSibling) this.parentNode.insertBefore(fragment, this.nextSibling);
|
|
543
|
+
else this.parentNode.appendChild(fragment);
|
|
672
544
|
}
|
|
673
545
|
break;
|
|
674
546
|
default:
|
|
@@ -680,36 +552,28 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
680
552
|
const textNode = this._ownerDocument.createTextNode(data);
|
|
681
553
|
switch (position) {
|
|
682
554
|
case "beforebegin":
|
|
683
|
-
if (this.parentNode)
|
|
684
|
-
this.parentNode.insertBefore(textNode, this);
|
|
685
|
-
}
|
|
555
|
+
if (this.parentNode) this.parentNode.insertBefore(textNode, this);
|
|
686
556
|
break;
|
|
687
557
|
case "afterbegin":
|
|
688
|
-
if (this.firstChild)
|
|
689
|
-
|
|
690
|
-
} else {
|
|
691
|
-
this.appendChild(textNode);
|
|
692
|
-
}
|
|
558
|
+
if (this.firstChild) this.insertBefore(textNode, this.firstChild);
|
|
559
|
+
else this.appendChild(textNode);
|
|
693
560
|
break;
|
|
694
561
|
case "beforeend":
|
|
695
562
|
this.appendChild(textNode);
|
|
696
563
|
break;
|
|
697
564
|
case "afterend":
|
|
698
565
|
if (this.parentNode) {
|
|
699
|
-
if (this.nextSibling)
|
|
700
|
-
|
|
701
|
-
} else {
|
|
702
|
-
this.parentNode.appendChild(textNode);
|
|
703
|
-
}
|
|
566
|
+
if (this.nextSibling) this.parentNode.insertBefore(textNode, this.nextSibling);
|
|
567
|
+
else this.parentNode.appendChild(textNode);
|
|
704
568
|
}
|
|
705
569
|
break;
|
|
706
570
|
default:
|
|
707
571
|
throw new DOMException(`Invalid position: ${where}`, "SyntaxError");
|
|
708
572
|
}
|
|
709
573
|
}
|
|
710
|
-
releasePointerCapture(
|
|
574
|
+
releasePointerCapture(_id) {
|
|
711
575
|
}
|
|
712
|
-
removeAttributeNS(
|
|
576
|
+
removeAttributeNS(_ns, localName) {
|
|
713
577
|
this.removeAttribute(localName);
|
|
714
578
|
}
|
|
715
579
|
removeAttributeNode(attr) {
|
|
@@ -720,21 +584,21 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
720
584
|
}
|
|
721
585
|
throw new DOMException("The attribute node is not an attribute of this element", "NotFoundError");
|
|
722
586
|
}
|
|
723
|
-
requestFullscreen(
|
|
724
|
-
|
|
587
|
+
requestFullscreen(_opt) {
|
|
588
|
+
return Promise.resolve();
|
|
725
589
|
}
|
|
726
|
-
requestPointerLock(
|
|
727
|
-
|
|
590
|
+
requestPointerLock(_opt) {
|
|
591
|
+
return Promise.resolve();
|
|
728
592
|
}
|
|
729
|
-
scroll(
|
|
593
|
+
scroll(_x, _y) {
|
|
730
594
|
}
|
|
731
|
-
scrollBy(
|
|
595
|
+
scrollBy(_x, _y) {
|
|
732
596
|
}
|
|
733
|
-
scrollIntoView(
|
|
597
|
+
scrollIntoView(_arg) {
|
|
734
598
|
}
|
|
735
|
-
scrollTo(
|
|
599
|
+
scrollTo(_x, _y) {
|
|
736
600
|
}
|
|
737
|
-
setAttributeNS(
|
|
601
|
+
setAttributeNS(_ns, qualifiedName, value) {
|
|
738
602
|
this.setAttribute(qualifiedName, value);
|
|
739
603
|
}
|
|
740
604
|
setAttributeNode(attr) {
|
|
@@ -746,8 +610,9 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
746
610
|
return this.setAttributeNode(attr);
|
|
747
611
|
}
|
|
748
612
|
setHTMLUnsafe(html) {
|
|
613
|
+
this.innerHTML = html;
|
|
749
614
|
}
|
|
750
|
-
setPointerCapture(
|
|
615
|
+
setPointerCapture(_id) {
|
|
751
616
|
}
|
|
752
617
|
toggleAttribute(qualifiedName, force) {
|
|
753
618
|
const hasAttr = this.hasAttribute(qualifiedName);
|
|
@@ -761,31 +626,31 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
|
|
|
761
626
|
return hasAttr;
|
|
762
627
|
}
|
|
763
628
|
webkitMatchesSelector(selectors) {
|
|
764
|
-
return
|
|
629
|
+
return this.matches(selectors);
|
|
765
630
|
}
|
|
766
|
-
// EventTarget methods - Not implemented yet
|
|
767
631
|
addEventListener(type, listener, options) {
|
|
768
632
|
}
|
|
769
633
|
removeEventListener(type, listener, options) {
|
|
770
634
|
}
|
|
771
|
-
dispatchEvent(
|
|
635
|
+
dispatchEvent(_event) {
|
|
772
636
|
return true;
|
|
773
637
|
}
|
|
774
638
|
cloneNode(deep) {
|
|
775
|
-
const
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
}
|
|
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);
|
|
779
642
|
if (deep) {
|
|
780
|
-
for (const child of this._childNodesInternal)
|
|
781
|
-
if (child && "cloneNode" in child) {
|
|
782
|
-
clone.appendChild(child.cloneNode(true));
|
|
783
|
-
}
|
|
784
|
-
}
|
|
643
|
+
for (const child of this._childNodesInternal) if (child && "cloneNode" in child) clone.appendChild(child.cloneNode(true));
|
|
785
644
|
}
|
|
786
645
|
return clone;
|
|
787
646
|
}
|
|
788
|
-
}
|
|
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;
|
|
789
654
|
class DOMTokenListImpl {
|
|
790
655
|
constructor(element) {
|
|
791
656
|
this.element = element;
|
|
@@ -801,16 +666,12 @@ class DOMTokenListImpl {
|
|
|
801
666
|
}
|
|
802
667
|
add(...tokens) {
|
|
803
668
|
const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
|
|
804
|
-
|
|
805
|
-
classes.add(token);
|
|
806
|
-
}
|
|
669
|
+
tokens.forEach((t) => classes.add(t));
|
|
807
670
|
this.element.className = Array.from(classes).join(" ");
|
|
808
671
|
}
|
|
809
672
|
remove(...tokens) {
|
|
810
673
|
const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
|
|
811
|
-
|
|
812
|
-
classes.delete(token);
|
|
813
|
-
}
|
|
674
|
+
tokens.forEach((t) => classes.delete(t));
|
|
814
675
|
this.element.className = Array.from(classes).join(" ");
|
|
815
676
|
}
|
|
816
677
|
contains(token) {
|
|
@@ -864,16 +725,12 @@ class NamedNodeMapImpl {
|
|
|
864
725
|
const value = this.attributes.get(qualifiedName.toLowerCase());
|
|
865
726
|
return value !== void 0 ? new AttrImpl(qualifiedName, value) : null;
|
|
866
727
|
}
|
|
867
|
-
getNamedItemNS(
|
|
728
|
+
getNamedItemNS(_ns, localName) {
|
|
868
729
|
return this.getNamedItem(localName);
|
|
869
730
|
}
|
|
870
731
|
item(index) {
|
|
871
732
|
const keys = Array.from(this.attributes.keys());
|
|
872
|
-
if (index >= 0 && index < keys.length)
|
|
873
|
-
const key = keys[index];
|
|
874
|
-
const value = this.attributes.get(key);
|
|
875
|
-
return new AttrImpl(key, value);
|
|
876
|
-
}
|
|
733
|
+
if (index >= 0 && index < keys.length) return new AttrImpl(keys[index], this.attributes.get(keys[index]));
|
|
877
734
|
return null;
|
|
878
735
|
}
|
|
879
736
|
removeNamedItem(qualifiedName) {
|
|
@@ -884,7 +741,7 @@ class NamedNodeMapImpl {
|
|
|
884
741
|
}
|
|
885
742
|
throw new DOMException("The attribute is not found", "NotFoundError");
|
|
886
743
|
}
|
|
887
|
-
removeNamedItemNS(
|
|
744
|
+
removeNamedItemNS(_ns, localName) {
|
|
888
745
|
return this.removeNamedItem(localName);
|
|
889
746
|
}
|
|
890
747
|
setNamedItem(attr) {
|
|
@@ -895,42 +752,27 @@ class NamedNodeMapImpl {
|
|
|
895
752
|
setNamedItemNS(attr) {
|
|
896
753
|
return this.setNamedItem(attr);
|
|
897
754
|
}
|
|
898
|
-
// Iterator implementation
|
|
899
755
|
*[Symbol.iterator]() {
|
|
900
|
-
const
|
|
901
|
-
for (const key of keys) {
|
|
902
|
-
const value = this.attributes.get(key);
|
|
903
|
-
yield new AttrImpl(key, value);
|
|
904
|
-
}
|
|
756
|
+
for (const [key, value] of this.attributes) yield new AttrImpl(key, value);
|
|
905
757
|
}
|
|
906
|
-
// Additional iterator methods for compatibility
|
|
907
758
|
keys() {
|
|
908
759
|
return this.attributes.keys();
|
|
909
760
|
}
|
|
910
761
|
values() {
|
|
911
762
|
const self = this;
|
|
912
763
|
return function* () {
|
|
913
|
-
for (const [key, value] of self.attributes)
|
|
914
|
-
yield new AttrImpl(key, value);
|
|
915
|
-
}
|
|
764
|
+
for (const [key, value] of self.attributes) yield new AttrImpl(key, value);
|
|
916
765
|
}();
|
|
917
766
|
}
|
|
918
767
|
entries() {
|
|
919
768
|
const self = this;
|
|
920
769
|
return function* () {
|
|
921
|
-
for (const [key, value] of self.attributes)
|
|
922
|
-
yield [key, new AttrImpl(key, value)];
|
|
923
|
-
}
|
|
770
|
+
for (const [key, value] of self.attributes) yield [key, new AttrImpl(key, value)];
|
|
924
771
|
}();
|
|
925
772
|
}
|
|
926
|
-
// forEach method for compatibility
|
|
927
773
|
forEach(callback, thisArg) {
|
|
928
774
|
const keys = Array.from(this.attributes.keys());
|
|
929
|
-
keys.forEach((key, index) =>
|
|
930
|
-
const value = this.attributes.get(key);
|
|
931
|
-
const attr = new AttrImpl(key, value);
|
|
932
|
-
callback.call(thisArg, attr, index, this);
|
|
933
|
-
});
|
|
775
|
+
keys.forEach((key, index) => callback.call(thisArg, new AttrImpl(key, this.attributes.get(key)), index, this));
|
|
934
776
|
}
|
|
935
777
|
}
|
|
936
778
|
//# sourceMappingURL=ElementBase.js.map
|