@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
package/dist/cjs/node/index.js
CHANGED
|
@@ -21,8 +21,6 @@ __export(node_exports, {
|
|
|
21
21
|
ATTRIBUTE_NODE: () => import_Node.ATTRIBUTE_NODE,
|
|
22
22
|
CDATA_SECTION_NODE: () => import_Node.CDATA_SECTION_NODE,
|
|
23
23
|
COMMENT_NODE: () => import_Node.COMMENT_NODE,
|
|
24
|
-
CharacterData: () => import_CharacterData.CharacterData,
|
|
25
|
-
ChildNode: () => import_ChildNode.ChildNode,
|
|
26
24
|
ChildNodeBase: () => import_ChildNodeBase.ChildNodeBase,
|
|
27
25
|
Comment: () => import_Comment.Comment,
|
|
28
26
|
DOCUMENT_FRAGMENT_NODE: () => import_Node.DOCUMENT_FRAGMENT_NODE,
|
|
@@ -34,40 +32,32 @@ __export(node_exports, {
|
|
|
34
32
|
DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC: () => import_Node.DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC,
|
|
35
33
|
DOCUMENT_POSITION_PRECEDING: () => import_Node.DOCUMENT_POSITION_PRECEDING,
|
|
36
34
|
DOCUMENT_TYPE_NODE: () => import_Node.DOCUMENT_TYPE_NODE,
|
|
37
|
-
Document: () => import_Document.Document,
|
|
38
|
-
DocumentFragment: () => import_Document.DocumentFragment,
|
|
39
|
-
DocumentReadyState: () => import_Document.DocumentReadyState,
|
|
40
35
|
ELEMENT_NODE: () => import_Node.ELEMENT_NODE,
|
|
41
36
|
ENTITY_NODE: () => import_Node.ENTITY_NODE,
|
|
42
37
|
ENTITY_REFERENCE_NODE: () => import_Node.ENTITY_REFERENCE_NODE,
|
|
43
38
|
ElementBase: () => import_ElementBase.ElementBase,
|
|
44
|
-
ElementCreationOptions: () => import_Document.ElementCreationOptions,
|
|
45
39
|
GetRootNodeOptions: () => import_GetRootNodeOptions.GetRootNodeOptions,
|
|
46
40
|
NOTATION_NODE: () => import_Node.NOTATION_NODE,
|
|
47
|
-
Node: () => import_Node.Node,
|
|
48
41
|
NodeBase: () => import_NodeBase.NodeBase,
|
|
42
|
+
NodeIterator: () => import_NodeIterator.NodeIterator,
|
|
49
43
|
NodeList: () => import_NodeList.NodeList,
|
|
50
|
-
|
|
44
|
+
NodeListOfImp: () => import_NodeListOfImp.NodeListOfImp,
|
|
51
45
|
PROCESSING_INSTRUCTION_NODE: () => import_Node.PROCESSING_INSTRUCTION_NODE,
|
|
52
|
-
ParentNode: () => import_ParentNode.ParentNode,
|
|
53
46
|
ParentNodeBase: () => import_ParentNodeBase.ParentNodeBase,
|
|
54
47
|
TEXT_NODE: () => import_Node.TEXT_NODE,
|
|
55
|
-
|
|
48
|
+
TreeWalker: () => import_TreeWalker.TreeWalker
|
|
56
49
|
});
|
|
57
50
|
module.exports = __toCommonJS(node_exports);
|
|
58
51
|
var import_Node = require("./Node");
|
|
59
|
-
var import_ChildNode = require("./ChildNode");
|
|
60
|
-
var import_ParentNode = require("./ParentNode");
|
|
61
52
|
var import_NodeBase = require("./NodeBase");
|
|
62
53
|
var import_ChildNodeBase = require("./ChildNodeBase");
|
|
63
54
|
var import_ParentNodeBase = require("./ParentNodeBase");
|
|
64
55
|
var import_ElementBase = require("./elements/ElementBase");
|
|
65
|
-
var import_Text = require("./Text");
|
|
66
|
-
var import_Document = require("./Document");
|
|
67
|
-
var import_CharacterData = require("./CharacterData");
|
|
68
56
|
var import_Comment = require("./Comment");
|
|
69
57
|
var import_NodeList = require("./collection/NodeList");
|
|
70
|
-
var
|
|
58
|
+
var import_NodeListOfImp = require("./collection/NodeListOfImp");
|
|
59
|
+
var import_NodeIterator = require("./NodeIterator");
|
|
60
|
+
var import_TreeWalker = require("./TreeWalker");
|
|
71
61
|
__reExport(node_exports, require("./elements"), module.exports);
|
|
72
62
|
var import_GetRootNodeOptions = require("./GetRootNodeOptions");
|
|
73
63
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/node/index.ts"],
|
|
4
|
-
"sourcesContent": ["// Core Node interfaces\nexport {
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["// Core Node interfaces\nexport { ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE, ENTITY_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, DOCUMENT_FRAGMENT_NODE, NOTATION_NODE, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_PRECEDING, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC } from './Node';\n\n// Base implementations\nexport { NodeBase } from './NodeBase';\nexport { ChildNodeBase } from './ChildNodeBase';\nexport { ParentNodeBase } from './ParentNodeBase';\nexport { ElementBase } from './elements/ElementBase';\n\n// Document class (concrete implementation)\n\n// Character data interfaces\n// export { CharacterData } from './CharacterData';\nexport { Comment } from './Comment';\n\n// Collections\nexport { NodeList } from './collection/NodeList';\nexport { NodeListOfImp } from './collection/NodeListOfImp';\n\n// Traversal\nexport { NodeIterator } from './NodeIterator';\nexport { TreeWalker } from './TreeWalker';\n\n// Element interfaces (from element directory)\nexport * from './elements';\n\n// Options and interfaces\nexport { GetRootNodeOptions } from './GetRootNodeOptions';\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,kBAAsa;AAGta,sBAAyB;AACzB,2BAA8B;AAC9B,4BAA+B;AAC/B,yBAA4B;AAM5B,qBAAwB;AAGxB,sBAAyB;AACzB,2BAA8B;AAG9B,0BAA6B;AAC7B,wBAA2B;AAG3B,yBAAc,uBAxBd;AA2BA,gCAAmC;",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../src/utils/CSSSelector.ts"],
|
|
4
|
-
"sourcesContent": ["import { Element } from '../node/elements/Element';\n\n/**\n * CSS Selector Parser and Matcher\n * Supports various CSS selector types including complex selectors\n */\nexport class CSSSelector {\n /**\n * Main method to check if an element matches a CSS selector\n */\n static matches(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Handle compound selectors (e.g., \"meta[charset]\", \"div.class\", \"input#id\")\n const components = this.parseSelector(selector);\n\n // All components must match for the selector to match\n for (const component of components) {\n if (!this.matchesSingleSelector(element, component)) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Parse a selector into individual components\n * e.g., \"div.user-panel[data-id='123']\" -> [\"div\", \".user-panel\", \"[data-id='123']\"]\n */\n private static parseSelector(selector: string): string[] {\n const components: string[] = [];\n let current = '';\n let inBrackets = false;\n let inQuotes = false;\n let quoteChar = '';\n\n for (let i = 0; i < selector.length; i++) {\n const char = selector[i];\n const prevChar = i > 0 ? selector[i - 1] : '';\n\n if (inQuotes) {\n current += char;\n if (char === quoteChar && prevChar !== '\\\\') {\n inQuotes = false;\n quoteChar = '';\n }\n continue;\n }\n\n if (char === '\"' || char === \"'\") {\n inQuotes = true;\n quoteChar = char;\n current += char;\n continue;\n }\n\n if (char === '[') {\n inBrackets = true;\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (char === ']') {\n inBrackets = false;\n current += char;\n components.push(current);\n current = '';\n } else if (!inBrackets && (char === '.' || char === '#')) {\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (!inBrackets && char === ':' && prevChar !== '\\\\') {\n // Only treat colon as pseudo-class separator if it's not escaped\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else {\n current += char;\n }\n }\n\n if (current) {\n components.push(current);\n }\n\n return components;\n }\n\n /**\n * Match a single selector component against an element\n */\n private static matchesSingleSelector(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Tag selector (e.g., \"div\", \"dr-wow\", \"wow\\\\:zz\")\n // Handle escaped colons in tag names\n const unescapedSelector = selector.replace(/\\\\:/g, ':');\n if (unescapedSelector.match(/^[a-zA-Z][a-zA-Z0-9:-]*$/)) {\n return element.tagName.toLowerCase() === unescapedSelector.toLowerCase();\n }\n\n // ID selector (e.g., \"#myId\")\n if (selector.startsWith('#')) {\n const id = selector.substring(1);\n return element.id === id;\n }\n\n // Class selector (e.g., \".myClass\")\n if (selector.startsWith('.')) {\n const className = selector.substring(1);\n return element.className.split(/\\s+/).includes(className);\n }\n\n // Pseudo-class selectors\n if (selector.startsWith(':')) {\n return this.matchesPseudoClass(element, selector);\n }\n\n // Attribute selector (e.g., \"[type='text']\", \"[disabled]\", \"[value*='test']\")\n if (selector.startsWith('[') && selector.endsWith(']')) {\n return this.matchesAttributeSelector(element, selector);\n }\n\n // Universal selector\n if (selector === '*') {\n return true;\n }\n\n // Unsupported selector\n return false;\n }\n\n /**\n * Match attribute selectors with various operators\n */\n private static matchesAttributeSelector(element: Element, selector: string): boolean {\n const attrContent = selector.slice(1, -1); // Remove [ and ]\n\n // Parse attribute selector: attr, attr=value, attr*=value, etc.\n const match = attrContent.match(/^([^=!*^$~|]+)(?:([=!*^$~|]+)(['\"]?)([^'\"]*)(['\"]?))?$/);\n\n if (!match) return false;\n\n let attrName = match[1].trim();\n const operator = match[2] || '';\n const attrValue = match[4] || '';\n\n // Handle escaped colons in attribute names\n attrName = attrName.replace(/\\\\:/g, ':');\n\n if (!operator) {\n // Just check if attribute exists: [disabled]\n return element.hasAttribute(attrName);\n }\n\n const elementValue = element.getAttribute(attrName);\n if (elementValue === null) return false;\n\n switch (operator) {\n case '=':\n // Exact match: [type=\"text\"]\n return elementValue === attrValue;\n\n case '!=':\n // Not equal: [value!=\"test\"]\n return elementValue !== attrValue;\n\n case '*=':\n // Contains: [value*=\"test\"]\n return elementValue.includes(attrValue);\n\n case '^=':\n // Starts with: [value^=\"test\"]\n return elementValue.startsWith(attrValue);\n\n case '$=':\n // Ends with: [value$=\"test\"]\n return elementValue.endsWith(attrValue);\n\n case '~=':\n // Word match: [class~=\"test\"]\n return elementValue.split(/\\s+/).includes(attrValue);\n\n case '|=':\n // Language match: [lang|=\"en\"]\n return elementValue === attrValue || elementValue.startsWith(attrValue + '-');\n\n default:\n return false;\n }\n }\n\n /**\n * Match pseudo-class selectors\n */\n private static matchesPseudoClass(element: Element, selector: string): boolean {\n const pseudoClass = selector.substring(1); // Remove :\n\n // Parse pseudo-class with parameters: nth-child(2), contains('text')\n const match = pseudoClass.match(/^([^(]+)(?:\\(([^)]*)\\))?$/);\n if (!match) return false;\n\n const pseudoName = match[1];\n const pseudoParam = match[2];\n\n switch (pseudoName) {\n case 'checked':\n // :checked - for input elements\n return this.isInputElement(element) &&\n (element.getAttribute('checked') !== null ||\n element.getAttribute('selected') !== null);\n\n case 'disabled':\n // :disabled\n return element.hasAttribute('disabled');\n\n case 'enabled':\n // :enabled\n return !element.hasAttribute('disabled');\n\n case 'focus':\n // :focus - check if element has focus (autofocus attribute or programmatically focused)\n return element.hasAttribute('autofocus') ||\n element.getAttribute('data-focused') === 'true';\n\n case 'first':\n case 'first-child':\n // :first or :first-child\n return this.isFirstChild(element);\n\n case 'last':\n case 'last-child':\n // :last or :last-child\n return this.isLastChild(element);\n\n case 'even':\n // :even (0-based indexing)\n return this.getChildIndex(element) % 2 === 0;\n\n case 'odd':\n // :odd (0-based indexing)\n return this.getChildIndex(element) % 2 === 1;\n\n case 'nth-child':\n // :nth-child(n)\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n - 1; // Convert to 0-based\n }\n return false;\n\n case 'eq':\n // :eq(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n;\n }\n return false;\n\n case 'gt':\n // :gt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) > n;\n }\n return false;\n\n case 'lt':\n // :lt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) < n;\n }\n return false;\n\n case 'contains':\n // :contains('text')\n if (pseudoParam) {\n const text = pseudoParam.replace(/^['\"]|['\"]$/g, ''); // Remove quotes\n return (element.textContent || '').includes(text);\n }\n return false;\n\n case 'visible':\n // :visible - simplified check\n return !element.hasAttribute('hidden') &&\n element.getAttribute('style')?.includes('display:none') !== true;\n\n case 'hidden':\n // :hidden\n return element.hasAttribute('hidden') ||\n element.getAttribute('style')?.includes('display:none') === true;\n\n case 'has':\n // :has(selector) - simplified implementation\n if (pseudoParam && 'querySelector' in element) {\n try {\n return (element as any).querySelector(pseudoParam) !== null;\n } catch {\n return false;\n }\n }\n return false;\n\n case 'not':\n // :not(selector) - simplified implementation\n if (pseudoParam) {\n return !CSSSelector.matches(element, pseudoParam);\n }\n return false;\n\n default:\n // Unsupported pseudo-class\n return false;\n }\n }\n\n /**\n * Helper methods for pseudo-class matching\n */\n private static isInputElement(element: Element): boolean {\n const tagName = element.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'select' || tagName === 'textarea';\n }\n\n private static isFirstChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[0] === element;\n }\n\n private static isLastChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[children.length - 1] === element;\n }\n\n private static getChildIndex(element: Element): number {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return -1;\n\n const children = (parent as any).children;\n for (let i = 0; i < children.length; i++) {\n if (children[i] === element) {\n return i;\n }\n }\n return -1;\n }\n}"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;
|
|
4
|
+
"sourcesContent": ["\n/**\n * CSS Selector Parser and Matcher\n * Supports various CSS selector types including complex selectors\n */\nexport class CSSSelector {\n /**\n * Main method to check if an element matches a CSS selector\n */\n static matches(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Handle compound selectors (e.g., \"meta[charset]\", \"div.class\", \"input#id\")\n const components = this.parseSelector(selector);\n\n // All components must match for the selector to match\n for (const component of components) {\n if (!this.matchesSingleSelector(element, component)) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Parse a selector into individual components\n * e.g., \"div.user-panel[data-id='123']\" -> [\"div\", \".user-panel\", \"[data-id='123']\"]\n */\n private static parseSelector(selector: string): string[] {\n const components: string[] = [];\n let current = '';\n let inBrackets = false;\n let inQuotes = false;\n let quoteChar = '';\n\n for (let i = 0; i < selector.length; i++) {\n const char = selector[i];\n const prevChar = i > 0 ? selector[i - 1] : '';\n\n if (inQuotes) {\n current += char;\n if (char === quoteChar && prevChar !== '\\\\') {\n inQuotes = false;\n quoteChar = '';\n }\n continue;\n }\n\n if (char === '\"' || char === \"'\") {\n inQuotes = true;\n quoteChar = char;\n current += char;\n continue;\n }\n\n if (char === '[') {\n inBrackets = true;\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (char === ']') {\n inBrackets = false;\n current += char;\n components.push(current);\n current = '';\n } else if (!inBrackets && (char === '.' || char === '#')) {\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (!inBrackets && char === ':' && prevChar !== '\\\\') {\n // Only treat colon as pseudo-class separator if it's not escaped\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else {\n current += char;\n }\n }\n\n if (current) {\n components.push(current);\n }\n\n return components;\n }\n\n /**\n * Match a single selector component against an element\n */\n private static matchesSingleSelector(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Tag selector (e.g., \"div\", \"dr-wow\", \"wow\\\\:zz\")\n // Handle escaped colons in tag names\n const unescapedSelector = selector.replace(/\\\\:/g, ':');\n if (unescapedSelector.match(/^[a-zA-Z][a-zA-Z0-9:-]*$/)) {\n return element.tagName.toLowerCase() === unescapedSelector.toLowerCase();\n }\n\n // ID selector (e.g., \"#myId\")\n if (selector.startsWith('#')) {\n const id = selector.substring(1);\n return element.id === id;\n }\n\n // Class selector (e.g., \".myClass\")\n if (selector.startsWith('.')) {\n const className = selector.substring(1);\n return element.className.split(/\\s+/).includes(className);\n }\n\n // Pseudo-class selectors\n if (selector.startsWith(':')) {\n return this.matchesPseudoClass(element, selector);\n }\n\n // Attribute selector (e.g., \"[type='text']\", \"[disabled]\", \"[value*='test']\")\n if (selector.startsWith('[') && selector.endsWith(']')) {\n return this.matchesAttributeSelector(element, selector);\n }\n\n // Universal selector\n if (selector === '*') {\n return true;\n }\n\n // Unsupported selector\n return false;\n }\n\n /**\n * Match attribute selectors with various operators\n */\n private static matchesAttributeSelector(element: Element, selector: string): boolean {\n const attrContent = selector.slice(1, -1); // Remove [ and ]\n\n // Parse attribute selector: attr, attr=value, attr*=value, etc.\n const match = attrContent.match(/^([^=!*^$~|]+)(?:([=!*^$~|]+)(['\"]?)([^'\"]*)(['\"]?))?$/);\n\n if (!match) return false;\n\n let attrName = match[1].trim();\n const operator = match[2] || '';\n const attrValue = match[4] || '';\n\n // Handle escaped colons in attribute names\n attrName = attrName.replace(/\\\\:/g, ':');\n\n if (!operator) {\n // Just check if attribute exists: [disabled]\n return element.hasAttribute(attrName);\n }\n\n const elementValue = element.getAttribute(attrName);\n if (elementValue === null) return false;\n\n switch (operator) {\n case '=':\n // Exact match: [type=\"text\"]\n return elementValue === attrValue;\n\n case '!=':\n // Not equal: [value!=\"test\"]\n return elementValue !== attrValue;\n\n case '*=':\n // Contains: [value*=\"test\"]\n return elementValue.includes(attrValue);\n\n case '^=':\n // Starts with: [value^=\"test\"]\n return elementValue.startsWith(attrValue);\n\n case '$=':\n // Ends with: [value$=\"test\"]\n return elementValue.endsWith(attrValue);\n\n case '~=':\n // Word match: [class~=\"test\"]\n return elementValue.split(/\\s+/).includes(attrValue);\n\n case '|=':\n // Language match: [lang|=\"en\"]\n return elementValue === attrValue || elementValue.startsWith(attrValue + '-');\n\n default:\n return false;\n }\n }\n\n /**\n * Match pseudo-class selectors\n */\n private static matchesPseudoClass(element: Element, selector: string): boolean {\n const pseudoClass = selector.substring(1); // Remove :\n\n // Parse pseudo-class with parameters: nth-child(2), contains('text')\n const match = pseudoClass.match(/^([^(]+)(?:\\(([^)]*)\\))?$/);\n if (!match) return false;\n\n const pseudoName = match[1];\n const pseudoParam = match[2];\n\n switch (pseudoName) {\n case 'checked':\n // :checked - for input elements\n return this.isInputElement(element) &&\n (element.getAttribute('checked') !== null ||\n element.getAttribute('selected') !== null);\n\n case 'disabled':\n // :disabled\n return element.hasAttribute('disabled');\n\n case 'enabled':\n // :enabled\n return !element.hasAttribute('disabled');\n\n case 'focus':\n // :focus - check if element has focus (autofocus attribute or programmatically focused)\n return element.hasAttribute('autofocus') ||\n element.getAttribute('data-focused') === 'true';\n\n case 'first':\n case 'first-child':\n // :first or :first-child\n return this.isFirstChild(element);\n\n case 'last':\n case 'last-child':\n // :last or :last-child\n return this.isLastChild(element);\n\n case 'even':\n // :even (0-based indexing)\n return this.getChildIndex(element) % 2 === 0;\n\n case 'odd':\n // :odd (0-based indexing)\n return this.getChildIndex(element) % 2 === 1;\n\n case 'nth-child':\n // :nth-child(n)\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n - 1; // Convert to 0-based\n }\n return false;\n\n case 'eq':\n // :eq(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n;\n }\n return false;\n\n case 'gt':\n // :gt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) > n;\n }\n return false;\n\n case 'lt':\n // :lt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) < n;\n }\n return false;\n\n case 'contains':\n // :contains('text')\n if (pseudoParam) {\n const text = pseudoParam.replace(/^['\"]|['\"]$/g, ''); // Remove quotes\n return (element.textContent || '').includes(text);\n }\n return false;\n\n case 'visible':\n // :visible - simplified check\n return !element.hasAttribute('hidden') &&\n element.getAttribute('style')?.includes('display:none') !== true;\n\n case 'hidden':\n // :hidden\n return element.hasAttribute('hidden') ||\n element.getAttribute('style')?.includes('display:none') === true;\n\n case 'has':\n // :has(selector) - simplified implementation\n if (pseudoParam && 'querySelector' in element) {\n try {\n return (element as any).querySelector(pseudoParam) !== null;\n } catch {\n return false;\n }\n }\n return false;\n\n case 'not':\n // :not(selector) - simplified implementation\n if (pseudoParam) {\n return !CSSSelector.matches(element, pseudoParam);\n }\n return false;\n\n default:\n // Unsupported pseudo-class\n return false;\n }\n }\n\n /**\n * Helper methods for pseudo-class matching\n */\n private static isInputElement(element: Element): boolean {\n const tagName = element.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'select' || tagName === 'textarea';\n }\n\n private static isFirstChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[0] === element;\n }\n\n private static isLastChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[children.length - 1] === element;\n }\n\n private static getChildIndex(element: Element): number {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return -1;\n\n const children = (parent as any).children;\n for (let i = 0; i < children.length; i++) {\n if (children[i] === element) {\n return i;\n }\n }\n return -1;\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
+
var __export = (target, all) => {
|
|
6
|
+
for (var name in all)
|
|
7
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
8
|
+
};
|
|
9
|
+
var __copyProps = (to, from, except, desc) => {
|
|
10
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
11
|
+
for (let key of __getOwnPropNames(from))
|
|
12
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
13
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
14
|
+
}
|
|
15
|
+
return to;
|
|
16
|
+
};
|
|
17
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
18
|
+
var CustomElementRegistryImp_exports = {};
|
|
19
|
+
__export(CustomElementRegistryImp_exports, {
|
|
20
|
+
CustomElementRegistryImp: () => CustomElementRegistryImp
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(CustomElementRegistryImp_exports);
|
|
23
|
+
class CustomElementRegistryImp {
|
|
24
|
+
constructor() {
|
|
25
|
+
this._definitions = /* @__PURE__ */ new Map();
|
|
26
|
+
this._whenDefinedPromises = /* @__PURE__ */ new Map();
|
|
27
|
+
}
|
|
28
|
+
setWindow(window) {
|
|
29
|
+
this._window = window;
|
|
30
|
+
}
|
|
31
|
+
define(name, constructor, options) {
|
|
32
|
+
if (this._definitions.has(name)) {
|
|
33
|
+
throw new Error(`Registration failed for '${name}': a device with this name has already been registered.`);
|
|
34
|
+
}
|
|
35
|
+
if (!name.includes("-")) {
|
|
36
|
+
throw new Error(`Registration failed for '${name}': the name is not a valid custom element name.`);
|
|
37
|
+
}
|
|
38
|
+
this._definitions.set(name, { constructor, options });
|
|
39
|
+
if (this._whenDefinedPromises.has(name)) {
|
|
40
|
+
this._whenDefinedPromises.get(name).resolve();
|
|
41
|
+
}
|
|
42
|
+
if (this._window && this._window.document) {
|
|
43
|
+
this.upgrade(this._window.document);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
get(name) {
|
|
47
|
+
return this._definitions.get(name)?.constructor;
|
|
48
|
+
}
|
|
49
|
+
upgrade(root) {
|
|
50
|
+
if (!root) return;
|
|
51
|
+
const nodesToUpgrade = [];
|
|
52
|
+
const walk = (node) => {
|
|
53
|
+
if (node.nodeType === 1) {
|
|
54
|
+
const tagName = node.tagName.toLowerCase();
|
|
55
|
+
const isAttr = node.getAttribute("is");
|
|
56
|
+
const registration = isAttr ? this._definitions.get(isAttr) : this._definitions.get(tagName);
|
|
57
|
+
if (registration) {
|
|
58
|
+
const isInstance = node instanceof registration.constructor;
|
|
59
|
+
if (!isInstance) {
|
|
60
|
+
nodesToUpgrade.push({ node, registration });
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
let child = node.firstChild;
|
|
65
|
+
while (child) {
|
|
66
|
+
walk(child);
|
|
67
|
+
child = child.nextSibling;
|
|
68
|
+
}
|
|
69
|
+
};
|
|
70
|
+
walk(root);
|
|
71
|
+
for (const { node, registration } of nodesToUpgrade) {
|
|
72
|
+
const newInstance = new registration.constructor();
|
|
73
|
+
newInstance._tagName = node.tagName;
|
|
74
|
+
newInstance.nodeName = node.tagName;
|
|
75
|
+
if (node.attributes) {
|
|
76
|
+
for (let i = 0; i < node.attributes.length; i++) {
|
|
77
|
+
const attr = node.attributes.item(i);
|
|
78
|
+
if (attr) {
|
|
79
|
+
newInstance.setAttribute(attr.name, attr.value);
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
while (node.firstChild) {
|
|
84
|
+
newInstance.appendChild(node.firstChild);
|
|
85
|
+
}
|
|
86
|
+
if (node.parentNode) {
|
|
87
|
+
node.parentNode.replaceChild(newInstance, node);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
}
|
|
91
|
+
whenDefined(name) {
|
|
92
|
+
if (this._definitions.has(name)) {
|
|
93
|
+
return Promise.resolve();
|
|
94
|
+
}
|
|
95
|
+
if (!this._whenDefinedPromises.has(name)) {
|
|
96
|
+
let resolve;
|
|
97
|
+
const promise = new Promise((r) => {
|
|
98
|
+
resolve = r;
|
|
99
|
+
});
|
|
100
|
+
this._whenDefinedPromises.set(name, { promise, resolve });
|
|
101
|
+
}
|
|
102
|
+
return this._whenDefinedPromises.get(name).promise;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=CustomElementRegistryImp.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/window/CustomElementRegistryImp.ts"],
|
|
4
|
+
"sourcesContent": ["export interface CustomElementRegistration {\n constructor: any;\n options?: ElementDefinitionOptions;\n}\n\nexport class CustomElementRegistryImp implements CustomElementRegistration {\n private _definitions = new Map<string, CustomElementRegistration>();\n private _whenDefinedPromises = new Map<string, { promise: Promise<void>; resolve: () => void }>();\n private _window: any;\n\n setWindow(window: any): void {\n this._window = window;\n }\n\n define(name: string, constructor: any, options?: ElementDefinitionOptions): void {\n if (this._definitions.has(name)) {\n throw new Error(`Registration failed for '${name}': a device with this name has already been registered.`);\n }\n\n // Basic validation of custom element name (must contain a hyphen)\n if (!name.includes('-')) {\n throw new Error(`Registration failed for '${name}': the name is not a valid custom element name.`);\n }\n\n this._definitions.set(name, { constructor, options });\n\n // Resolve any pending whenDefined promises\n if (this._whenDefinedPromises.has(name)) {\n this._whenDefinedPromises.get(name)!.resolve();\n }\n\n // Automatically upgrade existing elements in the document\n if (this._window && this._window.document) {\n // console.log(` [CustomElementRegistry] Upgrading document for: ${name}`);\n this.upgrade(this._window.document);\n }\n }\n\n get(name: string): any | undefined {\n return this._definitions.get(name)?.constructor;\n }\n\n upgrade(root: any): void {\n if (!root) return;\n\n const nodesToUpgrade: any[] = [];\n const walk = (node: any) => {\n if (node.nodeType === 1) {\n const tagName = node.tagName.toLowerCase();\n const isAttr = node.getAttribute('is');\n const registration = isAttr ? this._definitions.get(isAttr) : this._definitions.get(tagName);\n\n if (registration) {\n const isInstance = node instanceof registration.constructor;\n if (!isInstance) {\n // console.log(` [CustomElementRegistry] Found node to upgrade: <${tagName}${isAttr ? ' is=\"' + isAttr + '\"' : ''}>`);\n nodesToUpgrade.push({ node, registration });\n }\n }\n }\n\n let child = node.firstChild;\n while (child) {\n walk(child);\n child = child.nextSibling;\n }\n };\n\n walk(root);\n\n // Perform upgrades after walking to avoid traversal issues\n for (const { node, registration } of nodesToUpgrade) {\n const newInstance = new registration.constructor();\n // Ensure the tag name is preserved if it's an autonomous custom element\n // or set correctly if it's a customized built-in\n newInstance._tagName = node.tagName;\n newInstance.nodeName = node.tagName;\n\n // Copy attributes\n if (node.attributes) {\n for (let i = 0; i < node.attributes.length; i++) {\n const attr = node.attributes.item(i);\n if (attr) {\n newInstance.setAttribute(attr.name, attr.value);\n }\n }\n }\n\n // Move children\n while (node.firstChild) {\n newInstance.appendChild(node.firstChild);\n }\n\n // Replace in parent\n if (node.parentNode) {\n node.parentNode.replaceChild(newInstance, node);\n }\n }\n }\n\n whenDefined(name: string): Promise<void> {\n if (this._definitions.has(name)) {\n return Promise.resolve();\n }\n\n if (!this._whenDefinedPromises.has(name)) {\n let resolve!: () => void;\n const promise = new Promise<void>(r => {\n resolve = r;\n });\n this._whenDefinedPromises.set(name, { promise, resolve });\n }\n\n return this._whenDefinedPromises.get(name)!.promise;\n }\n}\n\nexport interface ElementDefinitionOptions {\n extends?: string;\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAKO,MAAM,yBAA8D;AAAA,EAApE;AACL,SAAQ,eAAe,oBAAI,IAAuC;AAClE,SAAQ,uBAAuB,oBAAI,IAA6D;AAAA;AAAA,EAGhG,UAAU,QAAmB;AAC3B,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,OAAO,MAAc,aAAkB,SAA0C;AAC/E,QAAI,KAAK,aAAa,IAAI,IAAI,GAAG;AAC/B,YAAM,IAAI,MAAM,4BAA4B,IAAI,yDAAyD;AAAA,IAC3G;AAGA,QAAI,CAAC,KAAK,SAAS,GAAG,GAAG;AACvB,YAAM,IAAI,MAAM,4BAA4B,IAAI,iDAAiD;AAAA,IACnG;AAEA,SAAK,aAAa,IAAI,MAAM,EAAE,aAAa,QAAQ,CAAC;AAGpD,QAAI,KAAK,qBAAqB,IAAI,IAAI,GAAG;AACvC,WAAK,qBAAqB,IAAI,IAAI,EAAG,QAAQ;AAAA,IAC/C;AAGA,QAAI,KAAK,WAAW,KAAK,QAAQ,UAAU;AAEzC,WAAK,QAAQ,KAAK,QAAQ,QAAQ;AAAA,IACpC;AAAA,EACF;AAAA,EAEA,IAAI,MAA+B;AACjC,WAAO,KAAK,aAAa,IAAI,IAAI,GAAG;AAAA,EACtC;AAAA,EAEA,QAAQ,MAAiB;AACvB,QAAI,CAAC,KAAM;AAEX,UAAM,iBAAwB,CAAC;AAC/B,UAAM,OAAO,CAAC,SAAc;AAC1B,UAAI,KAAK,aAAa,GAAG;AACvB,cAAM,UAAU,KAAK,QAAQ,YAAY;AACzC,cAAM,SAAS,KAAK,aAAa,IAAI;AACrC,cAAM,eAAe,SAAS,KAAK,aAAa,IAAI,MAAM,IAAI,KAAK,aAAa,IAAI,OAAO;AAE3F,YAAI,cAAc;AAChB,gBAAM,aAAa,gBAAgB,aAAa;AAChD,cAAI,CAAC,YAAY;AAEf,2BAAe,KAAK,EAAE,MAAM,aAAa,CAAC;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAEA,UAAI,QAAQ,KAAK;AACjB,aAAO,OAAO;AACZ,aAAK,KAAK;AACV,gBAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAEA,SAAK,IAAI;AAGT,eAAW,EAAE,MAAM,aAAa,KAAK,gBAAgB;AACnD,YAAM,cAAc,IAAI,aAAa,YAAY;AAGjD,kBAAY,WAAW,KAAK;AAC5B,kBAAY,WAAW,KAAK;AAG5B,UAAI,KAAK,YAAY;AACnB,iBAAS,IAAI,GAAG,IAAI,KAAK,WAAW,QAAQ,KAAK;AAC/C,gBAAM,OAAO,KAAK,WAAW,KAAK,CAAC;AACnC,cAAI,MAAM;AACR,wBAAY,aAAa,KAAK,MAAM,KAAK,KAAK;AAAA,UAChD;AAAA,QACF;AAAA,MACF;AAGA,aAAO,KAAK,YAAY;AACtB,oBAAY,YAAY,KAAK,UAAU;AAAA,MACzC;AAGA,UAAI,KAAK,YAAY;AACnB,aAAK,WAAW,aAAa,aAAa,IAAI;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,YAAY,MAA6B;AACvC,QAAI,KAAK,aAAa,IAAI,IAAI,GAAG;AAC/B,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,QAAI,CAAC,KAAK,qBAAqB,IAAI,IAAI,GAAG;AACxC,UAAI;AACJ,YAAM,UAAU,IAAI,QAAc,OAAK;AACrC,kBAAU;AAAA,MACZ,CAAC;AACD,WAAK,qBAAqB,IAAI,MAAM,EAAE,SAAS,QAAQ,CAAC;AAAA,IAC1D;AAEA,WAAO,KAAK,qBAAqB,IAAI,IAAI,EAAG;AAAA,EAC9C;AACF;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -1,16 +1 @@
|
|
|
1
|
-
var __defProp = Object.defineProperty;
|
|
2
|
-
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
3
|
-
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
4
|
-
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
5
|
-
var __copyProps = (to, from, except, desc) => {
|
|
6
|
-
if (from && typeof from === "object" || typeof from === "function") {
|
|
7
|
-
for (let key of __getOwnPropNames(from))
|
|
8
|
-
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
9
|
-
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
10
|
-
}
|
|
11
|
-
return to;
|
|
12
|
-
};
|
|
13
|
-
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
14
|
-
var Window_exports = {};
|
|
15
|
-
module.exports = __toCommonJS(Window_exports);
|
|
16
1
|
//# sourceMappingURL=Window.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
|
-
"sources": [
|
|
4
|
-
"sourcesContent": ["import { Document } from '../node/Document';\nimport { NodeBase } from '../node/NodeBase';\nimport { ElementBase } from '../node/elements/ElementBase';\n\nexport interface Window {\n /**\n * @deprecated This is a legacy alias of `navigator`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)\n */\n readonly clientInformation: Navigator;\n \n /**\n * The **`Window.closed`** read-only property indicates whether the referenced window is closed or not.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/closed)\n */\n readonly closed: boolean;\n \n /**\n * The **`cookieStore`** read-only property of the Window interface returns a reference to the CookieStore object for the current document context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cookieStore)\n */\n readonly cookieStore: CookieStore;\n \n /**\n * The **`customElements`** read-only property of the Window interface returns a reference to the CustomElementRegistry object, which can be used to register new custom elements and get information about previously registered custom elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/customElements)\n */\n readonly customElements: CustomElementRegistry;\n \n /**\n * The **`devicePixelRatio`** of Window interface returns the ratio of the resolution in _physical pixels_ to the resolution in _CSS pixels_ for the current display device.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicePixelRatio)\n */\n readonly devicePixelRatio: number;\n \n /**\n * **`window.document`** returns a reference to the document contained in the window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/document)\n */\n readonly document: Document;\n \n /**\n * The read-only Window property **`event`** returns the Event which is currently being handled by the site's code.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/event)\n */\n readonly event: Event | undefined;\n \n /**\n * The `external` property of the Window API returns an instance of the `External` interface, which was intended to contain functions related to adding external search providers to the browser.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/external)\n */\n readonly external: External;\n \n /**\n * The **`Window.frameElement`** property returns the element (such as iframe or object) in which the window is embedded.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frameElement)\n */\n readonly frameElement: Element | null;\n \n /**\n * Returns the window itself, which is an array-like object, listing the direct sub-frames of the current window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/frames)\n */\n readonly frames: WindowProxy;\n \n /**\n * The `Window.history` read-only property returns a reference to the History object, which provides an interface for manipulating the browser _session history_ (pages visited in the tab or frame that the current page is loaded in).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/history)\n */\n readonly history: History;\n \n /**\n * The read-only **`innerHeight`** property of the including the height of the horizontal scroll bar, if present.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerHeight)\n */\n readonly innerHeight: number;\n \n /**\n * The read-only Window property **`innerWidth`** returns the interior width of the window in pixels (that is, the width of the window's layout viewport).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/innerWidth)\n */\n readonly innerWidth: number;\n \n /**\n * Returns the number of frames (either frame or A number.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/length)\n */\n readonly length: number;\n \n /**\n * The **`Window.location`** read-only property returns a Location object with information about the current location of the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/location)\n */\n get location(): Location;\n set location(href: string);\n \n /**\n * Returns the `locationbar` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/locationbar)\n */\n readonly locationbar: BarProp;\n \n /**\n * Returns the `menubar` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/menubar)\n */\n readonly menubar: BarProp;\n \n /**\n * The `Window.name` property gets/sets the name of the window's browsing context.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/name)\n */\n name: string;\n \n /**\n * The **`Window.navigator`** read-only property returns a reference to the Navigator object, which has methods and properties about the application running the script.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/navigator)\n */\n readonly navigator: Navigator;\n \n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/devicemotion_event)\n */\n ondevicemotion: ((this: Window, ev: DeviceMotionEvent) => any) | null;\n \n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientation_event)\n */\n ondeviceorientation: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\n \n /**\n * Available only in secure contexts.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/deviceorientationabsolute_event)\n */\n ondeviceorientationabsolute: ((this: Window, ev: DeviceOrientationEvent) => any) | null;\n \n /**\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientationchange_event)\n */\n onorientationchange: ((this: Window, ev: Event) => any) | null;\n \n /**\n * The Window interface's **`opener`** property returns a reference to the window that opened the window, either with Window.open, or by navigating a link with a `target` attribute.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/opener)\n */\n opener: any;\n \n /**\n * Returns the orientation in degrees (in 90-degree increments) of the viewport relative to the device's natural orientation.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/orientation)\n */\n readonly orientation: number;\n \n /**\n * The **`originAgentCluster`** read-only property of the Window interface returns `true` if this window belongs to an _origin-keyed agent cluster_: this means that the operating system has provided dedicated resources (for example an operating system process) to this window's origin that are not shared with windows from other origins.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/originAgentCluster)\n */\n readonly originAgentCluster: boolean;\n \n /**\n * The **`Window.outerHeight`** read-only property returns the height in pixels of the whole browser window, including any sidebar, window chrome, and window-resizing borders/handles.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerHeight)\n */\n readonly outerHeight: number;\n \n /**\n * **`Window.outerWidth`** read-only property returns the width of the outside of the browser window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/outerWidth)\n */\n readonly outerWidth: number;\n \n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX) */\n readonly pageXOffset: number;\n \n /** [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY) */\n readonly pageYOffset: number;\n \n /**\n * The **`Window.parent`** property is a reference to the parent of the current window or subframe.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/parent)\n */\n readonly parent: WindowProxy;\n \n /**\n * Returns the `personalbar` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/personalbar)\n */\n readonly personalbar: BarProp;\n \n /**\n * The Window property **`screen`** returns a reference to the screen object associated with the window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screen)\n */\n readonly screen: Screen;\n \n /**\n * The **`Window.screenLeft`** read-only property returns the horizontal distance, in CSS pixels, from the left border of the user's browser viewport to the left side of the screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenLeft)\n */\n readonly screenLeft: number;\n \n /**\n * The **`Window.screenTop`** read-only property returns the vertical distance, in CSS pixels, from the top border of the user's browser viewport to the top side of the screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenTop)\n */\n readonly screenTop: number;\n \n /**\n * The **`Window.screenX`** read-only property returns the horizontal distance, in CSS pixels, of the left border of the user's browser viewport to the left side of the screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenX)\n */\n readonly screenX: number;\n \n /**\n * The **`Window.screenY`** read-only property returns the vertical distance, in CSS pixels, of the top border of the user's browser viewport to the top edge of the screen.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/screenY)\n */\n readonly screenY: number;\n \n /**\n * The read-only **`scrollX`** property of the Window interface returns the number of pixels by which the document is currently scrolled horizontally.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollX)\n */\n readonly scrollX: number;\n \n /**\n * The read-only **`scrollY`** property of the Window interface returns the number of pixels by which the document is currently scrolled vertically.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollY)\n */\n readonly scrollY: number;\n \n /**\n * Returns the `scrollbars` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollbars)\n */\n readonly scrollbars: BarProp;\n \n /**\n * The **`Window.self`** read-only property returns the window itself, as a WindowProxy.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/self)\n */\n readonly self: Window & typeof globalThis;\n \n /**\n * The `speechSynthesis` read-only property of the Window object returns a SpeechSynthesis object, which is the entry point into using Web Speech API speech synthesis functionality.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/speechSynthesis)\n */\n readonly speechSynthesis: SpeechSynthesis;\n \n /**\n * The **`status`** property of the bar at the bottom of the browser window.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/status)\n */\n status: string;\n \n /**\n * Returns the `statusbar` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/statusbar)\n */\n readonly statusbar: BarProp;\n \n /**\n * Returns the `toolbar` object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/toolbar)\n */\n readonly toolbar: BarProp;\n \n /**\n * Returns a reference to the topmost window in the window hierarchy.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/top)\n */\n readonly top: WindowProxy | null;\n \n /**\n * The **`visualViewport`** read-only property of the Window interface returns a VisualViewport object representing the visual viewport for a given window, or `null` if current document is not fully active.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/visualViewport)\n */\n readonly visualViewport: VisualViewport | null;\n \n /**\n * The **`window`** property of a Window object points to the window object itself.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/window)\n */\n readonly window: Window & typeof globalThis;\n \n /**\n * `window.alert()` instructs the browser to display a dialog with an optional message, and to wait until the user dismisses the dialog.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/alert)\n */\n alert(message?: any): void;\n \n /**\n * The **`Window.blur()`** method does nothing.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/blur)\n */\n blur(): void;\n \n /**\n * The **`window.cancelIdleCallback()`** method cancels a callback previously scheduled with window.requestIdleCallback().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/cancelIdleCallback)\n */\n cancelIdleCallback(handle: number): void;\n \n /**\n * The **`Window.captureEvents()`** method does nothing.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/captureEvents)\n */\n captureEvents(): void;\n \n /**\n * The **`Window.close()`** method closes the current window, or the window on which it was called.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/close)\n */\n close(): void;\n \n /**\n * `window.confirm()` instructs the browser to display a dialog with an optional message, and to wait until the user either confirms or cancels the dialog.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/confirm)\n */\n confirm(message?: string): boolean;\n \n /**\n * Makes a request to bring the window to the front.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/focus)\n */\n focus(): void;\n \n /**\n * The **`Window.getComputedStyle()`** method returns an object containing the values of all CSS properties of an element, after applying active stylesheets and resolving any basic computation those values may contain.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getComputedStyle)\n */\n getComputedStyle(elt: Element, pseudoElt?: string | null): CSSStyleDeclaration;\n \n /**\n * The **`getSelection()`** method of the Window interface returns the Selection object associated with the window's document, representing the range of text selected by the user or the current position of the caret.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/getSelection)\n */\n getSelection(): Selection | null;\n \n /**\n * The Window interface's **`matchMedia()`** method returns a new MediaQueryList object that can then be used to determine if the document matches the media query string, as well as to monitor the document to detect when it matches (or stops matching) that media query.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/matchMedia)\n */\n matchMedia(query: string): MediaQueryList;\n \n /**\n * The **`moveBy()`** method of the Window interface moves the current window by a specified amount.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveBy)\n */\n moveBy(x: number, y: number): void;\n \n /**\n * The **`moveTo()`** method of the Window interface moves the current window to the specified coordinates.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/moveTo)\n */\n moveTo(x: number, y: number): void;\n \n /**\n * The **`open()`** method of the `Window` interface loads a specified resource into a new or existing browsing context (that is, a tab, a window, or an iframe) under a specified name.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/open)\n */\n open(url?: string | URL, target?: string, features?: string): WindowProxy | null;\n \n /**\n * The **`window.postMessage()`** method safely enables cross-origin communication between Window objects; _e.g.,_ between a page and a pop-up that it spawned, or between a page and an iframe embedded within it.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/postMessage)\n */\n postMessage(message: any, targetOrigin: string, transfer?: Transferable[]): void;\n postMessage(message: any, options?: WindowPostMessageOptions): void;\n \n /**\n * Opens the print dialog to print the current document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/print)\n */\n print(): void;\n \n /**\n * `window.prompt()` instructs the browser to display a dialog with an optional message prompting the user to input some text, and to wait until the user either submits the text or cancels the dialog.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/prompt)\n */\n prompt(message?: string, _default?: string): string | null;\n \n /**\n * Releases the window from trapping events of a specific type.\n * @deprecated\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/releaseEvents)\n */\n releaseEvents(): void;\n \n /**\n * The **`window.requestIdleCallback()`** method queues a function to be called during a browser's idle periods.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/requestIdleCallback)\n */\n requestIdleCallback(callback: IdleRequestCallback, options?: IdleRequestOptions): number;\n \n /**\n * The **`Window.resizeBy()`** method resizes the current window by a specified amount.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeBy)\n */\n resizeBy(x: number, y: number): void;\n \n /**\n * The **`Window.resizeTo()`** method dynamically resizes the window.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/resizeTo)\n */\n resizeTo(width: number, height: number): void;\n \n /**\n * The **`Window.scroll()`** method scrolls the window to a particular place in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scroll)\n */\n scroll(options?: ScrollToOptions): void;\n scroll(x: number, y: number): void;\n \n /**\n * The **`Window.scrollBy()`** method scrolls the document in the window by the given amount.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollBy)\n */\n scrollBy(options?: ScrollToOptions): void;\n scrollBy(x: number, y: number): void;\n \n /**\n * **`Window.scrollTo()`** scrolls to a particular set of coordinates in the document.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/scrollTo)\n */\n scrollTo(options?: ScrollToOptions): void;\n scrollTo(x: number, y: number): void;\n \n /**\n * The **`window.stop()`** stops further resource loading in the current browsing context, equivalent to the stop button in the browser.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Window/stop)\n */\n stop(): void;\n \n addEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;\n addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;\n removeEventListener<K extends keyof WindowEventMap>(type: K, listener: (this: Window, ev: WindowEventMap[K]) => any, options?: boolean | EventListenerOptions): void;\n removeEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | EventListenerOptions): void;\n \n [index: number]: Window;\n \n // Additional event handlers that might be missing\n onbeforematch?: ((this: Window, ev: Event) => any) | null;\n onbeforetoggle?: ((this: Window, ev: Event) => any) | null;\n oncontextlost?: ((this: Window, ev: Event) => any) | null;\n oncontextrestored?: ((this: Window, ev: Event) => any) | null;\n onscrollsnapchange?: ((this: Window, ev: Event) => any) | null;\n onscrollsnapchanging?: ((this: Window, ev: Event) => any) | null;\n onpointerrawupdate?: ((this: Window, ev: Event) => any) | null;\n ongamepadconnected?: ((this: Window, ev: Event) => any) | null;\n ongamepaddisconnected?: ((this: Window, ev: Event) => any) | null;\n onpagereveal?: ((this: Window, ev: Event) => any) | null;\n onpageswap?: ((this: Window, ev: Event) => any) | null;\n \n // Basic event handlers\n onabort?: ((this: Window, ev: Event) => any) | null;\n onblur?: ((this: Window, ev: Event) => any) | null;\n oncancel?: ((this: Window, ev: Event) => any) | null;\n oncanplay?: ((this: Window, ev: Event) => any) | null;\n oncanplaythrough?: ((this: Window, ev: Event) => any) | null;\n onchange?: ((this: Window, ev: Event) => any) | null;\n onclick?: ((this: Window, ev: Event) => any) | null;\n onclose?: ((this: Window, ev: Event) => any) | null;\n oncontextmenu?: ((this: Window, ev: Event) => any) | null;\n oncuechange?: ((this: Window, ev: Event) => any) | null;\n ondblclick?: ((this: Window, ev: Event) => any) | null;\n ondrag?: ((this: Window, ev: Event) => any) | null;\n ondragend?: ((this: Window, ev: Event) => any) | null;\n ondragenter?: ((this: Window, ev: Event) => any) | null;\n ondragleave?: ((this: Window, ev: Event) => any) | null;\n ondragover?: ((this: Window, ev: Event) => any) | null;\n ondragstart?: ((this: Window, ev: Event) => any) | null;\n ondrop?: ((this: Window, ev: Event) => any) | null;\n ondurationchange?: ((this: Window, ev: Event) => any) | null;\n onemptied?: ((this: Window, ev: Event) => any) | null;\n onended?: ((this: Window, ev: Event) => any) | null;\n onerror?: ((this: Window, ev: Event) => any) | null;\n onfocus?: ((this: Window, ev: Event) => any) | null;\n oninput?: ((this: Window, ev: Event) => any) | null;\n oninvalid?: ((this: Window, ev: Event) => any) | null;\n onkeydown?: ((this: Window, ev: Event) => any) | null;\n onkeypress?: ((this: Window, ev: Event) => any) | null;\n onkeyup?: ((this: Window, ev: Event) => any) | null;\n onload?: ((this: Window, ev: Event) => any) | null;\n onloadeddata?: ((this: Window, ev: Event) => any) | null;\n onloadedmetadata?: ((this: Window, ev: Event) => any) | null;\n onloadstart?: ((this: Window, ev: Event) => any) | null;\n onmousedown?: ((this: Window, ev: Event) => any) | null;\n onmouseenter?: ((this: Window, ev: Event) => any) | null;\n onmouseleave?: ((this: Window, ev: Event) => any) | null;\n onmousemove?: ((this: Window, ev: Event) => any) | null;\n onmouseout?: ((this: Window, ev: Event) => any) | null;\n onmouseover?: ((this: Window, ev: Event) => any) | null;\n onmouseup?: ((this: Window, ev: Event) => any) | null;\n onpause?: ((this: Window, ev: Event) => any) | null;\n onplay?: ((this: Window, ev: Event) => any) | null;\n onplaying?: ((this: Window, ev: Event) => any) | null;\n onprogress?: ((this: Window, ev: Event) => any) | null;\n onratechange?: ((this: Window, ev: Event) => any) | null;\n onreset?: ((this: Window, ev: Event) => any) | null;\n onresize?: ((this: Window, ev: Event) => any) | null;\n onscroll?: ((this: Window, ev: Event) => any) | null;\n onseeked?: ((this: Window, ev: Event) => any) | null;\n onseeking?: ((this: Window, ev: Event) => any) | null;\n onselect?: ((this: Window, ev: Event) => any) | null;\n onstalled?: ((this: Window, ev: Event) => any) | null;\n onsubmit?: ((this: Window, ev: Event) => any) | null;\n onsuspend?: ((this: Window, ev: Event) => any) | null;\n ontimeupdate?: ((this: Window, ev: Event) => any) | null;\n onvolumechange?: ((this: Window, ev: Event) => any) | null;\n onwaiting?: ((this: Window, ev: Event) => any) | null;\n \n // Window-specific event handlers\n onafterprint?: ((this: Window, ev: Event) => any) | null;\n onbeforeprint?: ((this: Window, ev: Event) => any) | null;\n onbeforeunload?: ((this: Window, ev: Event) => any) | null;\n onhashchange?: ((this: Window, ev: Event) => any) | null;\n onlanguagechange?: ((this: Window, ev: Event) => any) | null;\n onmessage?: ((this: Window, ev: Event) => any) | null;\n onmessageerror?: ((this: Window, ev: Event) => any) | null;\n onoffline?: ((this: Window, ev: Event) => any) | null;\n ononline?: ((this: Window, ev: Event) => any) | null;\n onpagehide?: ((this: Window, ev: Event) => any) | null;\n onpageshow?: ((this: Window, ev: Event) => any) | null;\n onpopstate?: ((this: Window, ev: Event) => any) | null;\n onrejectionhandled?: ((this: Window, ev: Event) => any) | null;\n onstorage?: ((this: Window, ev: Event) => any) | null;\n onunhandledrejection?: ((this: Window, ev: Event) => any) | null;\n onunload?: ((this: Window, ev: Event) => any) | null;\n \n // Storage\n localStorage?: Storage;\n sessionStorage?: Storage;\n \n // Additional properties\n caches?: CacheStorage;\n crossOriginIsolated?: boolean;\n crypto?: Crypto;\n indexedDB?: IDBFactory;\n isSecureContext?: boolean;\n origin?: string;\n performance?: Performance;\n \n // Additional methods\n atob?: (data: string) => string;\n btoa?: (data: string) => string;\n createImageBitmap?: (...args: any[]) => Promise<ImageBitmap>;\n fetch?: (input: RequestInfo | URL, init?: RequestInit) => Promise<Response>;\n queueMicrotask?: (callback: VoidFunction) => void;\n reportError?: (e: any) => void;\n structuredClone?: (value: any, options?: StructuredSerializeOptions) => any;\n \n // Global constructors\n Node: typeof NodeBase;\n Element: typeof ElementBase;\n HTMLElement: typeof ElementBase;\n Event: any;\n PopStateEvent: any;\n IntersectionObserver: any;\n NodeFilter: any;\n DocumentFragment: any;\n HTMLMetaElement: any;\n HTMLCanvasElement: any;\n CanvasRenderingContext2D: any;\n CanvasPattern: any;\n CanvasGradient: any;\n Path2D: any;\n ImageData: any;\n \n // Additional HTML element constructors\n HTMLAnchorElement: any;\n HTMLBodyElement: any;\n HTMLButtonElement: any;\n HTMLDivElement: any;\n HTMLH1Element: any;\n HTMLHeadElement: any;\n HTMLHtmlElement: any;\n HTMLImgElement: any;\n HTMLInputElement: any;\n HTMLPElement: any;\n HTMLSpanElement: any;\n HTMLTitleElement: any;\n HTMLLinkElement: any;\n HTMLScriptElement: any;\n HTMLStyleElement: any;\n HTMLFormElement: any;\n HTMLTableElement: any;\n HTMLUListElement: any;\n HTMLOListElement: any;\n HTMLLIElement: any;\n HTMLTemplateElement: any;\n HTMLTheadElement: any;\n HTMLTfootElement: any;\n HTMLTrElement: any;\n HTMLTdElement: any;\n HTMLThElement: any;\n HTMLCaptionElement: any;\n HTMLTbodyElement: any;\n}\n\n// Location interface for server-side rendering\nexport interface Location {\n href: string;\n protocol: string;\n host: string;\n hostname: string;\n port: string;\n pathname: string;\n search: string;\n hash: string;\n origin: string;\n assign: (url: string) => void;\n replace: (url: string) => void;\n reload: (forcedReload?: boolean) => void;\n}\n\n// History interface for server-side rendering\nexport interface History {\n length: number;\n state: any;\n back: () => void;\n forward: () => void;\n go: (delta?: number) => void;\n pushState: (data: any, title: string, url?: string) => void;\n replaceState: (data: any, title: string, url?: string) => void;\n}\n\n// Navigator interface for server-side rendering\nexport interface Navigator {\n userAgent: string;\n language: string;\n languages: readonly string[];\n platform: string;\n cookieEnabled: boolean;\n onLine: boolean;\n}"],
|
|
5
|
-
"mappings": "
|
|
3
|
+
"sources": [],
|
|
4
|
+
"sourcesContent": [],
|
|
5
|
+
"mappings": "",
|
|
6
6
|
"names": []
|
|
7
7
|
}
|