@dooboostore/dom-parser 1.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.MD +280 -0
- package/dist/cjs/DomParser.js +360 -0
- package/dist/cjs/DomParser.js.map +7 -0
- package/dist/cjs/factory/ElementFactory.js +76 -0
- package/dist/cjs/factory/ElementFactory.js.map +7 -0
- package/dist/cjs/factory/index.js +24 -0
- package/dist/cjs/factory/index.js.map +7 -0
- package/dist/cjs/index.js +34 -0
- package/dist/cjs/index.js.map +7 -0
- package/dist/cjs/node/CharacterData.js +16 -0
- package/dist/cjs/node/CharacterData.js.map +7 -0
- package/dist/cjs/node/ChildNode.js +16 -0
- package/dist/cjs/node/ChildNode.js.map +7 -0
- package/dist/cjs/node/ChildNodeBase.js +62 -0
- package/dist/cjs/node/ChildNodeBase.js.map +7 -0
- package/dist/cjs/node/Comment.js +86 -0
- package/dist/cjs/node/Comment.js.map +7 -0
- package/dist/cjs/node/Document.js +28 -0
- package/dist/cjs/node/Document.js.map +7 -0
- package/dist/cjs/node/DocumentBase.js +378 -0
- package/dist/cjs/node/DocumentBase.js.map +7 -0
- package/dist/cjs/node/DocumentFragment.js +16 -0
- package/dist/cjs/node/DocumentFragment.js.map +7 -0
- package/dist/cjs/node/DocumentFragmentBase.js +88 -0
- package/dist/cjs/node/DocumentFragmentBase.js.map +7 -0
- package/dist/cjs/node/GetRootNodeOptions.js +16 -0
- package/dist/cjs/node/GetRootNodeOptions.js.map +7 -0
- package/dist/cjs/node/Node.js +58 -0
- package/dist/cjs/node/Node.js.map +7 -0
- package/dist/cjs/node/NodeBase.js +380 -0
- package/dist/cjs/node/NodeBase.js.map +7 -0
- package/dist/cjs/node/NodeIterator.js +163 -0
- package/dist/cjs/node/NodeIterator.js.map +7 -0
- package/dist/cjs/node/ParentNode.js +16 -0
- package/dist/cjs/node/ParentNode.js.map +7 -0
- package/dist/cjs/node/ParentNodeBase.js +134 -0
- package/dist/cjs/node/ParentNodeBase.js.map +7 -0
- package/dist/cjs/node/Text.js +16 -0
- package/dist/cjs/node/Text.js.map +7 -0
- package/dist/cjs/node/TextBase.js +106 -0
- package/dist/cjs/node/TextBase.js.map +7 -0
- package/dist/cjs/node/collection/HTMLCollection.js +105 -0
- package/dist/cjs/node/collection/HTMLCollection.js.map +7 -0
- package/dist/cjs/node/collection/HTMLCollectionOf.js +36 -0
- package/dist/cjs/node/collection/HTMLCollectionOf.js.map +7 -0
- package/dist/cjs/node/collection/NodeList.js +135 -0
- package/dist/cjs/node/collection/NodeList.js.map +7 -0
- package/dist/cjs/node/collection/NodeListOf.js +38 -0
- package/dist/cjs/node/collection/NodeListOf.js.map +7 -0
- package/dist/cjs/node/collection/index.js +30 -0
- package/dist/cjs/node/collection/index.js.map +7 -0
- package/dist/cjs/node/elements/Element.js +16 -0
- package/dist/cjs/node/elements/Element.js.map +7 -0
- package/dist/cjs/node/elements/ElementBase.js +936 -0
- package/dist/cjs/node/elements/ElementBase.js.map +7 -0
- package/dist/cjs/node/elements/HTMLAnchorElement.js +71 -0
- package/dist/cjs/node/elements/HTMLAnchorElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLAreaElement.js +77 -0
- package/dist/cjs/node/elements/HTMLAreaElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLBaseElement.js +77 -0
- package/dist/cjs/node/elements/HTMLBaseElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLBodyElement.js +29 -0
- package/dist/cjs/node/elements/HTMLBodyElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLButtonElement.js +89 -0
- package/dist/cjs/node/elements/HTMLButtonElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLCanvasElement.js +79 -0
- package/dist/cjs/node/elements/HTMLCanvasElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLCaptionElement.js +41 -0
- package/dist/cjs/node/elements/HTMLCaptionElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLDivElement.js +29 -0
- package/dist/cjs/node/elements/HTMLDivElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLElement.js +16 -0
- package/dist/cjs/node/elements/HTMLElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLElementBase.js +182 -0
- package/dist/cjs/node/elements/HTMLElementBase.js.map +7 -0
- package/dist/cjs/node/elements/HTMLEmbedElement.js +45 -0
- package/dist/cjs/node/elements/HTMLEmbedElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLFormElement.js +127 -0
- package/dist/cjs/node/elements/HTMLFormElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLGenericElement.js +32 -0
- package/dist/cjs/node/elements/HTMLGenericElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLH1Element.js +29 -0
- package/dist/cjs/node/elements/HTMLH1Element.js.map +7 -0
- package/dist/cjs/node/elements/HTMLHeadElement.js +29 -0
- package/dist/cjs/node/elements/HTMLHeadElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLHtmlElement.js +92 -0
- package/dist/cjs/node/elements/HTMLHtmlElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLImgElement.js +99 -0
- package/dist/cjs/node/elements/HTMLImgElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLInputElement.js +157 -0
- package/dist/cjs/node/elements/HTMLInputElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLLIElement.js +57 -0
- package/dist/cjs/node/elements/HTMLLIElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLLinkElement.js +99 -0
- package/dist/cjs/node/elements/HTMLLinkElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLMetaElement.js +29 -0
- package/dist/cjs/node/elements/HTMLMetaElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLOListElement.js +89 -0
- package/dist/cjs/node/elements/HTMLOListElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLPElement.js +29 -0
- package/dist/cjs/node/elements/HTMLPElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLScriptElement.js +127 -0
- package/dist/cjs/node/elements/HTMLScriptElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLSpanElement.js +29 -0
- package/dist/cjs/node/elements/HTMLSpanElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLStyleElement.js +71 -0
- package/dist/cjs/node/elements/HTMLStyleElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTableElement.js +112 -0
- package/dist/cjs/node/elements/HTMLTableElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTbodyElement.js +54 -0
- package/dist/cjs/node/elements/HTMLTbodyElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTdElement.js +72 -0
- package/dist/cjs/node/elements/HTMLTdElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTemplateElement.js +97 -0
- package/dist/cjs/node/elements/HTMLTemplateElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTfootElement.js +56 -0
- package/dist/cjs/node/elements/HTMLTfootElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLThElement.js +72 -0
- package/dist/cjs/node/elements/HTMLThElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTheadElement.js +54 -0
- package/dist/cjs/node/elements/HTMLTheadElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTitleElement.js +38 -0
- package/dist/cjs/node/elements/HTMLTitleElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLTrElement.js +77 -0
- package/dist/cjs/node/elements/HTMLTrElement.js.map +7 -0
- package/dist/cjs/node/elements/HTMLUListElement.js +29 -0
- package/dist/cjs/node/elements/HTMLUListElement.js.map +7 -0
- package/dist/cjs/node/elements/MathMLElement.js +32 -0
- package/dist/cjs/node/elements/MathMLElement.js.map +7 -0
- package/dist/cjs/node/elements/SVGCircleElement.js +69 -0
- package/dist/cjs/node/elements/SVGCircleElement.js.map +7 -0
- package/dist/cjs/node/elements/SVGElement.js +32 -0
- package/dist/cjs/node/elements/SVGElement.js.map +7 -0
- package/dist/cjs/node/elements/SVGRectElement.js +80 -0
- package/dist/cjs/node/elements/SVGRectElement.js.map +7 -0
- package/dist/cjs/node/elements/index.js +183 -0
- package/dist/cjs/node/elements/index.js.map +7 -0
- package/dist/cjs/node/index.js +73 -0
- package/dist/cjs/node/index.js.map +7 -0
- package/dist/cjs/package.json +5 -0
- package/dist/cjs/utils/CSSSelector.js +271 -0
- package/dist/cjs/utils/CSSSelector.js.map +7 -0
- package/dist/cjs/window/Window.js +16 -0
- package/dist/cjs/window/Window.js.map +7 -0
- package/dist/cjs/window/WindowBase.js +847 -0
- package/dist/cjs/window/WindowBase.js.map +7 -0
- package/dist/cjs/window/index.js +29 -0
- package/dist/cjs/window/index.js.map +7 -0
- package/dist/esm/DomParser.js +341 -0
- package/dist/esm/DomParser.js.map +7 -0
- package/dist/esm/factory/ElementFactory.js +57 -0
- package/dist/esm/factory/ElementFactory.js.map +7 -0
- package/dist/esm/factory/index.js +5 -0
- package/dist/esm/factory/index.js.map +7 -0
- package/dist/esm/index.js +15 -0
- package/dist/esm/index.js.map +7 -0
- package/dist/esm/node/CharacterData.js +1 -0
- package/dist/esm/node/CharacterData.js.map +7 -0
- package/dist/esm/node/ChildNode.js +1 -0
- package/dist/esm/node/ChildNode.js.map +7 -0
- package/dist/esm/node/ChildNodeBase.js +43 -0
- package/dist/esm/node/ChildNodeBase.js.map +7 -0
- package/dist/esm/node/Comment.js +67 -0
- package/dist/esm/node/Comment.js.map +7 -0
- package/dist/esm/node/Document.js +9 -0
- package/dist/esm/node/Document.js.map +7 -0
- package/dist/esm/node/DocumentBase.js +359 -0
- package/dist/esm/node/DocumentBase.js.map +7 -0
- package/dist/esm/node/DocumentFragment.js +1 -0
- package/dist/esm/node/DocumentFragment.js.map +7 -0
- package/dist/esm/node/DocumentFragmentBase.js +69 -0
- package/dist/esm/node/DocumentFragmentBase.js.map +7 -0
- package/dist/esm/node/GetRootNodeOptions.js +1 -0
- package/dist/esm/node/GetRootNodeOptions.js.map +7 -0
- package/dist/esm/node/Node.js +39 -0
- package/dist/esm/node/Node.js.map +7 -0
- package/dist/esm/node/NodeBase.js +380 -0
- package/dist/esm/node/NodeBase.js.map +7 -0
- package/dist/esm/node/NodeIterator.js +144 -0
- package/dist/esm/node/NodeIterator.js.map +7 -0
- package/dist/esm/node/ParentNode.js +1 -0
- package/dist/esm/node/ParentNode.js.map +7 -0
- package/dist/esm/node/ParentNodeBase.js +115 -0
- package/dist/esm/node/ParentNodeBase.js.map +7 -0
- package/dist/esm/node/Text.js +1 -0
- package/dist/esm/node/Text.js.map +7 -0
- package/dist/esm/node/TextBase.js +87 -0
- package/dist/esm/node/TextBase.js.map +7 -0
- package/dist/esm/node/collection/HTMLCollection.js +86 -0
- package/dist/esm/node/collection/HTMLCollection.js.map +7 -0
- package/dist/esm/node/collection/HTMLCollectionOf.js +17 -0
- package/dist/esm/node/collection/HTMLCollectionOf.js.map +7 -0
- package/dist/esm/node/collection/NodeList.js +116 -0
- package/dist/esm/node/collection/NodeList.js.map +7 -0
- package/dist/esm/node/collection/NodeListOf.js +19 -0
- package/dist/esm/node/collection/NodeListOf.js.map +7 -0
- package/dist/esm/node/collection/index.js +11 -0
- package/dist/esm/node/collection/index.js.map +7 -0
- package/dist/esm/node/elements/Element.js +1 -0
- package/dist/esm/node/elements/Element.js.map +7 -0
- package/dist/esm/node/elements/ElementBase.js +917 -0
- package/dist/esm/node/elements/ElementBase.js.map +7 -0
- package/dist/esm/node/elements/HTMLAnchorElement.js +52 -0
- package/dist/esm/node/elements/HTMLAnchorElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLAreaElement.js +58 -0
- package/dist/esm/node/elements/HTMLAreaElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLBaseElement.js +58 -0
- package/dist/esm/node/elements/HTMLBaseElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLBodyElement.js +10 -0
- package/dist/esm/node/elements/HTMLBodyElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLButtonElement.js +70 -0
- package/dist/esm/node/elements/HTMLButtonElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLCanvasElement.js +60 -0
- package/dist/esm/node/elements/HTMLCanvasElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLCaptionElement.js +22 -0
- package/dist/esm/node/elements/HTMLCaptionElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLDivElement.js +10 -0
- package/dist/esm/node/elements/HTMLDivElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLElement.js +1 -0
- package/dist/esm/node/elements/HTMLElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLElementBase.js +163 -0
- package/dist/esm/node/elements/HTMLElementBase.js.map +7 -0
- package/dist/esm/node/elements/HTMLEmbedElement.js +26 -0
- package/dist/esm/node/elements/HTMLEmbedElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLFormElement.js +108 -0
- package/dist/esm/node/elements/HTMLFormElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLGenericElement.js +13 -0
- package/dist/esm/node/elements/HTMLGenericElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLH1Element.js +10 -0
- package/dist/esm/node/elements/HTMLH1Element.js.map +7 -0
- package/dist/esm/node/elements/HTMLHeadElement.js +10 -0
- package/dist/esm/node/elements/HTMLHeadElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLHtmlElement.js +73 -0
- package/dist/esm/node/elements/HTMLHtmlElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLImgElement.js +80 -0
- package/dist/esm/node/elements/HTMLImgElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLInputElement.js +138 -0
- package/dist/esm/node/elements/HTMLInputElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLLIElement.js +38 -0
- package/dist/esm/node/elements/HTMLLIElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLLinkElement.js +80 -0
- package/dist/esm/node/elements/HTMLLinkElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLMetaElement.js +10 -0
- package/dist/esm/node/elements/HTMLMetaElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLOListElement.js +70 -0
- package/dist/esm/node/elements/HTMLOListElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLPElement.js +10 -0
- package/dist/esm/node/elements/HTMLPElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLScriptElement.js +108 -0
- package/dist/esm/node/elements/HTMLScriptElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLSpanElement.js +10 -0
- package/dist/esm/node/elements/HTMLSpanElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLStyleElement.js +52 -0
- package/dist/esm/node/elements/HTMLStyleElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTableElement.js +93 -0
- package/dist/esm/node/elements/HTMLTableElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTbodyElement.js +35 -0
- package/dist/esm/node/elements/HTMLTbodyElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTdElement.js +53 -0
- package/dist/esm/node/elements/HTMLTdElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTemplateElement.js +78 -0
- package/dist/esm/node/elements/HTMLTemplateElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTfootElement.js +37 -0
- package/dist/esm/node/elements/HTMLTfootElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLThElement.js +53 -0
- package/dist/esm/node/elements/HTMLThElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTheadElement.js +35 -0
- package/dist/esm/node/elements/HTMLTheadElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTitleElement.js +19 -0
- package/dist/esm/node/elements/HTMLTitleElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLTrElement.js +58 -0
- package/dist/esm/node/elements/HTMLTrElement.js.map +7 -0
- package/dist/esm/node/elements/HTMLUListElement.js +10 -0
- package/dist/esm/node/elements/HTMLUListElement.js.map +7 -0
- package/dist/esm/node/elements/MathMLElement.js +13 -0
- package/dist/esm/node/elements/MathMLElement.js.map +7 -0
- package/dist/esm/node/elements/SVGCircleElement.js +50 -0
- package/dist/esm/node/elements/SVGCircleElement.js.map +7 -0
- package/dist/esm/node/elements/SVGElement.js +13 -0
- package/dist/esm/node/elements/SVGElement.js.map +7 -0
- package/dist/esm/node/elements/SVGRectElement.js +61 -0
- package/dist/esm/node/elements/SVGRectElement.js.map +7 -0
- package/dist/esm/node/elements/index.js +164 -0
- package/dist/esm/node/elements/index.js.map +7 -0
- package/dist/esm/node/index.js +53 -0
- package/dist/esm/node/index.js.map +7 -0
- package/dist/esm/utils/CSSSelector.js +252 -0
- package/dist/esm/utils/CSSSelector.js.map +7 -0
- package/dist/esm/window/Window.js +1 -0
- package/dist/esm/window/Window.js.map +7 -0
- package/dist/esm/window/WindowBase.js +828 -0
- package/dist/esm/window/WindowBase.js.map +7 -0
- package/dist/esm/window/index.js +10 -0
- package/dist/esm/window/index.js.map +7 -0
- package/dist/esm-bundle/dooboostore-dom-parser.esm.js +6176 -0
- package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +7 -0
- package/dist/types/DomParser.d.ts +30 -0
- package/dist/types/DomParser.d.ts.map +1 -0
- package/dist/types/factory/ElementFactory.d.ts +27 -0
- package/dist/types/factory/ElementFactory.d.ts.map +1 -0
- package/dist/types/factory/index.d.ts +2 -0
- package/dist/types/factory/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +9 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/node/CharacterData.d.ts +52 -0
- package/dist/types/node/CharacterData.d.ts.map +1 -0
- package/dist/types/node/ChildNode.d.ts +39 -0
- package/dist/types/node/ChildNode.d.ts.map +1 -0
- package/dist/types/node/ChildNodeBase.d.ts +12 -0
- package/dist/types/node/ChildNodeBase.d.ts.map +1 -0
- package/dist/types/node/Comment.d.ts +26 -0
- package/dist/types/node/Comment.d.ts.map +1 -0
- package/dist/types/node/Document.d.ts +857 -0
- package/dist/types/node/Document.d.ts.map +1 -0
- package/dist/types/node/DocumentBase.d.ts +153 -0
- package/dist/types/node/DocumentBase.d.ts.map +1 -0
- package/dist/types/node/DocumentFragment.d.ts +39 -0
- package/dist/types/node/DocumentFragment.d.ts.map +1 -0
- package/dist/types/node/DocumentFragmentBase.d.ts +51 -0
- package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -0
- package/dist/types/node/GetRootNodeOptions.d.ts +14 -0
- package/dist/types/node/GetRootNodeOptions.d.ts.map +1 -0
- package/dist/types/node/Node.d.ts +232 -0
- package/dist/types/node/Node.d.ts.map +1 -0
- package/dist/types/node/NodeBase.d.ts +98 -0
- package/dist/types/node/NodeBase.d.ts.map +1 -0
- package/dist/types/node/NodeIterator.d.ts +61 -0
- package/dist/types/node/NodeIterator.d.ts.map +1 -0
- package/dist/types/node/ParentNode.d.ts +85 -0
- package/dist/types/node/ParentNode.d.ts.map +1 -0
- package/dist/types/node/ParentNodeBase.d.ts +22 -0
- package/dist/types/node/ParentNodeBase.d.ts.map +1 -0
- package/dist/types/node/Text.d.ts +25 -0
- package/dist/types/node/Text.d.ts.map +1 -0
- package/dist/types/node/TextBase.d.ts +26 -0
- package/dist/types/node/TextBase.d.ts.map +1 -0
- package/dist/types/node/collection/HTMLCollection.d.ts +37 -0
- package/dist/types/node/collection/HTMLCollection.d.ts.map +1 -0
- package/dist/types/node/collection/HTMLCollectionOf.d.ts +14 -0
- package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +1 -0
- package/dist/types/node/collection/NodeList.d.ts +55 -0
- package/dist/types/node/collection/NodeList.d.ts.map +1 -0
- package/dist/types/node/collection/NodeListOf.d.ts +14 -0
- package/dist/types/node/collection/NodeListOf.d.ts.map +1 -0
- package/dist/types/node/collection/index.d.ts +5 -0
- package/dist/types/node/collection/index.d.ts.map +1 -0
- package/dist/types/node/elements/Element.d.ts +687 -0
- package/dist/types/node/elements/Element.d.ts.map +1 -0
- package/dist/types/node/elements/ElementBase.d.ts +143 -0
- package/dist/types/node/elements/ElementBase.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLAnchorElement.d.ts +18 -0
- package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLAreaElement.d.ts +59 -0
- package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLBaseElement.d.ts +25 -0
- package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLBodyElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLButtonElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLCanvasElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLCaptionElement.d.ts +18 -0
- package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLDivElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLElement.d.ts +90 -0
- package/dist/types/node/elements/HTMLElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLElementBase.d.ts +42 -0
- package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLEmbedElement.d.ts +27 -0
- package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLFormElement.d.ts +30 -0
- package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLGenericElement.d.ts +6 -0
- package/dist/types/node/elements/HTMLGenericElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLH1Element.d.ts +10 -0
- package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLHeadElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLHtmlElement.d.ts +17 -0
- package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLImgElement.d.ts +24 -0
- package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLInputElement.d.ts +33 -0
- package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLLIElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLLinkElement.d.ts +24 -0
- package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLMetaElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLOListElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLPElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLScriptElement.d.ts +29 -0
- package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLSpanElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLStyleElement.d.ts +18 -0
- package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTableElement.d.ts +25 -0
- package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTbodyElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTdElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTemplateElement.d.ts +32 -0
- package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTfootElement.d.ts +16 -0
- package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLThElement.d.ts +21 -0
- package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTheadElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTitleElement.d.ts +15 -0
- package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLTrElement.d.ts +17 -0
- package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -0
- package/dist/types/node/elements/HTMLUListElement.d.ts +10 -0
- package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -0
- package/dist/types/node/elements/MathMLElement.d.ts +11 -0
- package/dist/types/node/elements/MathMLElement.d.ts.map +1 -0
- package/dist/types/node/elements/SVGCircleElement.d.ts +20 -0
- package/dist/types/node/elements/SVGCircleElement.d.ts.map +1 -0
- package/dist/types/node/elements/SVGElement.d.ts +11 -0
- package/dist/types/node/elements/SVGElement.d.ts.map +1 -0
- package/dist/types/node/elements/SVGRectElement.d.ts +23 -0
- package/dist/types/node/elements/SVGRectElement.d.ts.map +1 -0
- package/dist/types/node/elements/index.d.ts +128 -0
- package/dist/types/node/elements/index.d.ts.map +1 -0
- package/dist/types/node/index.d.ts +16 -0
- package/dist/types/node/index.d.ts.map +1 -0
- package/dist/types/utils/CSSSelector.d.ts +36 -0
- package/dist/types/utils/CSSSelector.d.ts.map +1 -0
- package/dist/types/window/Window.d.ts +620 -0
- package/dist/types/window/Window.d.ts.map +1 -0
- package/dist/types/window/WindowBase.d.ts +342 -0
- package/dist/types/window/WindowBase.d.ts.map +1 -0
- package/dist/types/window/index.d.ts +3 -0
- package/dist/types/window/index.d.ts.map +1 -0
- package/dist/umd-bundle/dooboostore-dom-parser.umd.js +6182 -0
- package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +7 -0
- package/package.json +120 -0
- package/src/DomParser.ts +491 -0
- package/src/factory/ElementFactory.ts +69 -0
- package/src/factory/index.ts +1 -0
- package/src/index.ts +28 -0
- package/src/node/CharacterData.ts +58 -0
- package/src/node/ChildNode.ts +42 -0
- package/src/node/ChildNodeBase.ts +54 -0
- package/src/node/Comment.ts +98 -0
- package/src/node/Document.ts +882 -0
- package/src/node/DocumentBase.ts +465 -0
- package/src/node/DocumentFragment.ts +44 -0
- package/src/node/DocumentFragmentBase.ts +109 -0
- package/src/node/GetRootNodeOptions.ts +13 -0
- package/src/node/Node.ts +245 -0
- package/src/node/NodeBase.ts +506 -0
- package/src/node/NodeIterator.ts +200 -0
- package/src/node/ParentNode.ts +93 -0
- package/src/node/ParentNodeBase.ts +145 -0
- package/src/node/Text.ts +30 -0
- package/src/node/TextBase.ts +113 -0
- package/src/node/collection/HTMLCollection.ts +107 -0
- package/src/node/collection/HTMLCollectionOf.ts +26 -0
- package/src/node/collection/NodeList.ts +140 -0
- package/src/node/collection/NodeListOf.ts +28 -0
- package/src/node/collection/index.ts +4 -0
- package/src/node/elements/Element.ts +771 -0
- package/src/node/elements/ElementBase.ts +1239 -0
- package/src/node/elements/HTMLAnchorElement.ts +63 -0
- package/src/node/elements/HTMLAreaElement.ts +73 -0
- package/src/node/elements/HTMLBaseElement.ts +70 -0
- package/src/node/elements/HTMLBodyElement.ts +12 -0
- package/src/node/elements/HTMLButtonElement.ts +83 -0
- package/src/node/elements/HTMLCanvasElement.ts +71 -0
- package/src/node/elements/HTMLCaptionElement.ts +26 -0
- package/src/node/elements/HTMLDivElement.ts +12 -0
- package/src/node/elements/HTMLElement.ts +105 -0
- package/src/node/elements/HTMLElementBase.ts +198 -0
- package/src/node/elements/HTMLEmbedElement.ts +33 -0
- package/src/node/elements/HTMLFormElement.ts +131 -0
- package/src/node/elements/HTMLGenericElement.ts +13 -0
- package/src/node/elements/HTMLH1Element.ts +12 -0
- package/src/node/elements/HTMLHeadElement.ts +12 -0
- package/src/node/elements/HTMLHtmlElement.ts +82 -0
- package/src/node/elements/HTMLImgElement.ts +96 -0
- package/src/node/elements/HTMLInputElement.ts +160 -0
- package/src/node/elements/HTMLLIElement.ts +47 -0
- package/src/node/elements/HTMLLinkElement.ts +95 -0
- package/src/node/elements/HTMLMetaElement.ts +12 -0
- package/src/node/elements/HTMLOListElement.ts +83 -0
- package/src/node/elements/HTMLPElement.ts +12 -0
- package/src/node/elements/HTMLScriptElement.ts +127 -0
- package/src/node/elements/HTMLSpanElement.ts +12 -0
- package/src/node/elements/HTMLStyleElement.ts +63 -0
- package/src/node/elements/HTMLTableElement.ts +117 -0
- package/src/node/elements/HTMLTbodyElement.ts +46 -0
- package/src/node/elements/HTMLTdElement.ts +67 -0
- package/src/node/elements/HTMLTemplateElement.ts +112 -0
- package/src/node/elements/HTMLTfootElement.ts +47 -0
- package/src/node/elements/HTMLThElement.ts +67 -0
- package/src/node/elements/HTMLTheadElement.ts +46 -0
- package/src/node/elements/HTMLTitleElement.ts +23 -0
- package/src/node/elements/HTMLTrElement.ts +72 -0
- package/src/node/elements/HTMLUListElement.ts +12 -0
- package/src/node/elements/MathMLElement.ts +16 -0
- package/src/node/elements/SVGCircleElement.ts +61 -0
- package/src/node/elements/SVGElement.ts +16 -0
- package/src/node/elements/SVGRectElement.ts +74 -0
- package/src/node/elements/index.ts +186 -0
- package/src/node/index.ts +28 -0
- package/src/utils/CSSSelector.ts +360 -0
- package/src/window/Window.ts +715 -0
- package/src/window/WindowBase.ts +1018 -0
- package/src/window/index.ts +2 -0
- package/tsconfig.json +24 -0
|
@@ -0,0 +1,16 @@
|
|
|
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 ParentNode_exports = {};
|
|
15
|
+
module.exports = __toCommonJS(ParentNode_exports);
|
|
16
|
+
//# sourceMappingURL=ParentNode.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/node/ParentNode.ts"],
|
|
4
|
+
"sourcesContent": ["import { Node } from './Node';\nimport { NodeListOf } from './collection/NodeListOf';\nimport { HTMLCollection } from './collection/HTMLCollection';\nimport { Element } from './elements/Element';\nimport {HTMLElementDeprecatedTagNameMap, HTMLElementTagNameMap, MathMLElementTagNameMap, SVGElementTagNameMap} from \"./elements\";\n\n/**\n * The **`ParentNode`** interface contains methods and properties that are common to all types of Node objects that can have children.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ParentNode)\n */\nexport interface ParentNode extends Node {\n /**\n * Returns the number of child elements of this ParentNode.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/childElementCount)\n */\n readonly childElementCount: number;\n\n /**\n * Returns the child elements.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/children)\n */\n readonly children: HTMLCollection;\n\n /**\n * Returns the first child that is an element, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/firstElementChild)\n */\n readonly firstElementChild: Element | null;\n\n /**\n * Returns the last child that is an element, and null otherwise.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/lastElementChild)\n */\n readonly lastElementChild: Element | null;\n\n /**\n * Inserts nodes after the last child of node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/append)\n */\n append(...nodes: (Node | string)[]): void;\n\n /**\n * Inserts nodes before the first child of node, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/prepend)\n */\n prepend(...nodes: (Node | string)[]): void;\n\n /**\n * Returns the first element that is a descendant of node that matches selectors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelector)\n */\n querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;\n querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;\n querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;\n /** @deprecated */\n querySelector<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): HTMLElementDeprecatedTagNameMap[K] | null;\n querySelector<E extends Element = Element>(selectors: string): E | null;\n querySelector(selectors: string): Element | null;\n\n /**\n * Returns all element descendants of node that match selectors.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/querySelectorAll)\n */\n querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;\n querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;\n querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;\n /** @deprecated */\n querySelectorAll<K extends keyof HTMLElementDeprecatedTagNameMap>(selectors: K): NodeListOf<HTMLElementDeprecatedTagNameMap[K]>;\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;\n querySelectorAll(selectors: string): NodeListOf<Element>;\n\n /**\n * Replace all children of node with nodes, while replacing strings in nodes with equivalent Text nodes.\n *\n * Throws a \"HierarchyRequestError\" DOMException if the constraints of the node tree are violated.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Document/replaceChildren)\n */\n replaceChildren(...nodes: (Node | string)[]): void;\n}"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,134 @@
|
|
|
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 ParentNodeBase_exports = {};
|
|
19
|
+
__export(ParentNodeBase_exports, {
|
|
20
|
+
ParentNodeBase: () => ParentNodeBase
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(ParentNodeBase_exports);
|
|
23
|
+
var import_ChildNodeBase = require("./ChildNodeBase");
|
|
24
|
+
var import_HTMLCollection = require("./collection/HTMLCollection");
|
|
25
|
+
var import_NodeListOf = require("./collection/NodeListOf");
|
|
26
|
+
var import_Node2 = require("./Node");
|
|
27
|
+
var import_TextBase = require("./TextBase");
|
|
28
|
+
var import_CSSSelector = require("../utils/CSSSelector");
|
|
29
|
+
class ParentNodeBase extends import_ChildNodeBase.ChildNodeBase {
|
|
30
|
+
// ParentNode interface implementation
|
|
31
|
+
get childElementCount() {
|
|
32
|
+
let count = 0;
|
|
33
|
+
for (const child of this._childNodesInternal) {
|
|
34
|
+
if (child && child.nodeType === import_Node2.ELEMENT_NODE) {
|
|
35
|
+
count++;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return count;
|
|
39
|
+
}
|
|
40
|
+
get children() {
|
|
41
|
+
const elements = [];
|
|
42
|
+
for (const child of this._childNodesInternal) {
|
|
43
|
+
if (child && child.nodeType === import_Node2.ELEMENT_NODE) {
|
|
44
|
+
elements.push(child);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
return new import_HTMLCollection.HTMLCollection(elements);
|
|
48
|
+
}
|
|
49
|
+
get firstElementChild() {
|
|
50
|
+
for (const child of this._childNodesInternal) {
|
|
51
|
+
if (child && child.nodeType === import_Node2.ELEMENT_NODE) {
|
|
52
|
+
return child;
|
|
53
|
+
}
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
get lastElementChild() {
|
|
58
|
+
for (let i = this._childNodesInternal.length - 1; i >= 0; i--) {
|
|
59
|
+
const child = this._childNodesInternal[i];
|
|
60
|
+
if (child && child.nodeType === import_Node2.ELEMENT_NODE) {
|
|
61
|
+
return child;
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return null;
|
|
65
|
+
}
|
|
66
|
+
append(...nodes) {
|
|
67
|
+
for (const node of nodes) {
|
|
68
|
+
if (typeof node === "string") {
|
|
69
|
+
const textNode = new import_TextBase.TextBase(node, this._ownerDocument);
|
|
70
|
+
this.appendChild(textNode);
|
|
71
|
+
} else {
|
|
72
|
+
this.appendChild(node);
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
prepend(...nodes) {
|
|
77
|
+
const firstChild = this.firstChild;
|
|
78
|
+
for (const node of nodes) {
|
|
79
|
+
if (typeof node === "string") {
|
|
80
|
+
const textNode = new import_TextBase.TextBase(node, this._ownerDocument);
|
|
81
|
+
this.insertBefore(textNode, firstChild);
|
|
82
|
+
} else {
|
|
83
|
+
this.insertBefore(node, firstChild);
|
|
84
|
+
}
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
replaceChildren(...nodes) {
|
|
88
|
+
while (this._childNodesInternal.length > 0) {
|
|
89
|
+
const child = this._childNodesInternal[0];
|
|
90
|
+
if (child) {
|
|
91
|
+
this.removeChild(child);
|
|
92
|
+
}
|
|
93
|
+
}
|
|
94
|
+
this.append(...nodes);
|
|
95
|
+
}
|
|
96
|
+
// Query selector implementation
|
|
97
|
+
querySelector(selectors) {
|
|
98
|
+
const elements = this.querySelectorAll(selectors);
|
|
99
|
+
return elements.length > 0 ? elements.item(0) : null;
|
|
100
|
+
}
|
|
101
|
+
querySelectorAll(selectors) {
|
|
102
|
+
const results = [];
|
|
103
|
+
const selectorList = selectors.split(",").map((s) => s.trim());
|
|
104
|
+
for (const selector of selectorList) {
|
|
105
|
+
if (selector) {
|
|
106
|
+
this._querySelectorAllRecursive(selector, results);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
const uniqueResults = [];
|
|
110
|
+
const seen = /* @__PURE__ */ new Set();
|
|
111
|
+
for (const element of results) {
|
|
112
|
+
if (!seen.has(element)) {
|
|
113
|
+
seen.add(element);
|
|
114
|
+
uniqueResults.push(element);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
return new import_NodeListOf.NodeListOf(uniqueResults);
|
|
118
|
+
}
|
|
119
|
+
// Private helper methods for querySelector
|
|
120
|
+
_querySelectorAllRecursive(selectors, results) {
|
|
121
|
+
for (const child of this._childNodesInternal) {
|
|
122
|
+
if (child && child.nodeType === import_Node2.ELEMENT_NODE) {
|
|
123
|
+
const element = child;
|
|
124
|
+
if (import_CSSSelector.CSSSelector.matches(element, selectors)) {
|
|
125
|
+
results.push(element);
|
|
126
|
+
}
|
|
127
|
+
if (child instanceof ParentNodeBase) {
|
|
128
|
+
child._querySelectorAllRecursive(selectors, results);
|
|
129
|
+
}
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
//# sourceMappingURL=ParentNodeBase.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/node/ParentNodeBase.ts"],
|
|
4
|
+
"sourcesContent": ["import { Node } from './Node';\nimport { ChildNodeBase } from './ChildNodeBase';\nimport { ParentNode } from './ParentNode';\nimport { Element } from './elements/Element';\nimport { HTMLCollection } from './collection/HTMLCollection';\nimport { NodeListOf } from './collection/NodeListOf';\nimport { ELEMENT_NODE, TEXT_NODE } from './Node';\nimport { TextBase } from './TextBase';\nimport { CSSSelector } from '../utils/CSSSelector';\n\n/**\n * Base implementation of the ParentNode interface\n */\nexport abstract class ParentNodeBase extends ChildNodeBase implements ParentNode {\n\n // ParentNode interface implementation\n get childElementCount(): number {\n let count = 0;\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n count++;\n }\n }\n return count;\n }\n\n get children(): HTMLCollection {\n const elements: Element[] = [];\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n elements.push(child as unknown as Element);\n }\n }\n return new HTMLCollection(elements);\n }\n\n get firstElementChild(): Element | null {\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n return child as unknown as Element;\n }\n }\n return null;\n }\n\n get lastElementChild(): Element | null {\n for (let i = this._childNodesInternal.length - 1; i >= 0; i--) {\n const child = this._childNodesInternal[i];\n if (child && child.nodeType === ELEMENT_NODE) {\n return child as unknown as Element;\n }\n }\n return null;\n }\n\n append(...nodes: (Node | string)[]): void {\n for (const node of nodes) {\n if (typeof node === 'string') {\n const textNode = new TextBase(node, this._ownerDocument);\n this.appendChild(textNode);\n } else {\n this.appendChild(node);\n }\n }\n }\n\n prepend(...nodes: (Node | string)[]): void {\n const firstChild = this.firstChild;\n for (const node of nodes) {\n if (typeof node === 'string') {\n const textNode = new TextBase(node, this._ownerDocument);\n this.insertBefore(textNode, firstChild);\n } else {\n this.insertBefore(node, firstChild);\n }\n }\n }\n\n replaceChildren(...nodes: (Node | string)[]): void {\n // Remove all existing children\n while (this._childNodesInternal.length > 0) {\n const child = this._childNodesInternal[0];\n if (child) {\n this.removeChild(child);\n }\n }\n\n // Add new nodes\n this.append(...nodes);\n }\n\n // Query selector implementation\n querySelector<E extends Element>(selectors: string): E | null {\n const elements = this.querySelectorAll(selectors);\n return elements.length > 0 ? elements.item(0) as E: null;\n }\n\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E> {\n const results: E[] = [];\n \n // Split selectors by comma and process each one\n const selectorList = selectors.split(',').map(s => s.trim());\n \n for (const selector of selectorList) {\n if (selector) {\n this._querySelectorAllRecursive(selector, results);\n }\n }\n \n // Remove duplicates while preserving order\n const uniqueResults: E[] = [];\n const seen = new Set();\n for (const element of results) {\n if (!seen.has(element)) {\n seen.add(element);\n uniqueResults.push(element);\n }\n }\n \n return new NodeListOf<E>(uniqueResults);\n }\n\n // Private helper methods for querySelector\n private _querySelectorAllRecursive(selectors: string, results: Element[]): void {\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n const element = child as unknown as Element;\n\n // Check if this element matches the selector\n if (CSSSelector.matches(element, selectors)) {\n results.push(element);\n }\n\n // Recursively search in child elements\n if (child instanceof ParentNodeBase) {\n child._querySelectorAllRecursive(selectors, results);\n }\n }\n }\n }\n\n\n}\n\n// TextNode is now in a separate file"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,2BAA8B;AAG9B,4BAA+B;AAC/B,wBAA2B;AAC3B,IAAAA,eAAwC;AACxC,sBAAyB;AACzB,yBAA4B;AAKrB,MAAe,uBAAuB,mCAAoC;AAAA;AAAA,EAG7E,IAAI,oBAA4B;AAC5B,QAAI,QAAQ;AACZ,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,2BAAc;AAC1C;AAAA,MACJ;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,WAA2B;AAC3B,UAAM,WAAsB,CAAC;AAC7B,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,2BAAc;AAC1C,iBAAS,KAAK,KAA2B;AAAA,MAC7C;AAAA,IACJ;AACA,WAAO,IAAI,qCAAe,QAAQ;AAAA,EACtC;AAAA,EAEA,IAAI,oBAAoC;AACpC,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,2BAAc;AAC1C,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,mBAAmC;AACnC,aAAS,IAAI,KAAK,oBAAoB,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3D,YAAM,QAAQ,KAAK,oBAAoB,CAAC;AACxC,UAAI,SAAS,MAAM,aAAa,2BAAc;AAC1C,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU,OAAgC;AACtC,eAAW,QAAQ,OAAO;AACtB,UAAI,OAAO,SAAS,UAAU;AAC1B,cAAM,WAAW,IAAI,yBAAS,MAAM,KAAK,cAAc;AACvD,aAAK,YAAY,QAAQ;AAAA,MAC7B,OAAO;AACH,aAAK,YAAY,IAAI;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,WAAW,OAAgC;AACvC,UAAM,aAAa,KAAK;AACxB,eAAW,QAAQ,OAAO;AACtB,UAAI,OAAO,SAAS,UAAU;AAC1B,cAAM,WAAW,IAAI,yBAAS,MAAM,KAAK,cAAc;AACvD,aAAK,aAAa,UAAU,UAAU;AAAA,MAC1C,OAAO;AACH,aAAK,aAAa,MAAM,UAAU;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,mBAAmB,OAAgC;AAE/C,WAAO,KAAK,oBAAoB,SAAS,GAAG;AACxC,YAAM,QAAQ,KAAK,oBAAoB,CAAC;AACxC,UAAI,OAAO;AACP,aAAK,YAAY,KAAK;AAAA,MAC1B;AAAA,IACJ;AAGA,SAAK,OAAO,GAAG,KAAK;AAAA,EACxB;AAAA;AAAA,EAGA,cAAiC,WAA6B;AAC1D,UAAM,WAAW,KAAK,iBAAiB,SAAS;AAChD,WAAO,SAAS,SAAS,IAAI,SAAS,KAAK,CAAC,IAAQ;AAAA,EACxD;AAAA,EAEA,iBAA8C,WAAkC;AAC5E,UAAM,UAAe,CAAC;AAGtB,UAAM,eAAe,UAAU,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAE3D,eAAW,YAAY,cAAc;AACjC,UAAI,UAAU;AACV,aAAK,2BAA2B,UAAU,OAAO;AAAA,MACrD;AAAA,IACJ;AAGA,UAAM,gBAAqB,CAAC;AAC5B,UAAM,OAAO,oBAAI,IAAI;AACrB,eAAW,WAAW,SAAS;AAC3B,UAAI,CAAC,KAAK,IAAI,OAAO,GAAG;AACpB,aAAK,IAAI,OAAO;AAChB,sBAAc,KAAK,OAAO;AAAA,MAC9B;AAAA,IACJ;AAEA,WAAO,IAAI,6BAAc,aAAa;AAAA,EAC1C;AAAA;AAAA,EAGQ,2BAA2B,WAAmB,SAA0B;AAC5E,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,2BAAc;AAC1C,cAAM,UAAU;AAGhB,YAAI,+BAAY,QAAQ,SAAS,SAAS,GAAG;AACzC,kBAAQ,KAAK,OAAO;AAAA,QACxB;AAGA,YAAI,iBAAiB,gBAAgB;AACjC,gBAAM,2BAA2B,WAAW,OAAO;AAAA,QACvD;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAGJ;",
|
|
6
|
+
"names": ["import_Node"]
|
|
7
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
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 Text_exports = {};
|
|
15
|
+
module.exports = __toCommonJS(Text_exports);
|
|
16
|
+
//# sourceMappingURL=Text.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/node/Text.ts"],
|
|
4
|
+
"sourcesContent": ["import { CharacterData } from './CharacterData';\nimport { ChildNode } from './ChildNode';\nimport {TEXT_NODE} from \"./Node\";\n\n/**\n * The **`Text`** interface represents a text node in the DOM.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text)\n */\nexport interface Text extends CharacterData, ChildNode {\n readonly nodeType: typeof TEXT_NODE; // TEXT_NODE\n readonly nodeName: '#text';\n \n /**\n * The **`Text.splitText()`** method breaks the Text node into two nodes at the specified offset, keeping both nodes in the tree as siblings.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/splitText)\n */\n splitText(offset: number): Text;\n \n /**\n * The **`Text.wholeText`** read-only property returns the full text of all Text nodes logically adjacent to the node.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Text/wholeText)\n */\n readonly wholeText: string;\n}\n\n// Note: TextBase is the implementation class for this interface\n\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;AAAA;AAAA;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,106 @@
|
|
|
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 TextBase_exports = {};
|
|
19
|
+
__export(TextBase_exports, {
|
|
20
|
+
TextBase: () => TextBase
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(TextBase_exports);
|
|
23
|
+
var import_ChildNodeBase = require("./ChildNodeBase");
|
|
24
|
+
var import_Node = require("./Node");
|
|
25
|
+
class TextBase extends import_ChildNodeBase.ChildNodeBase {
|
|
26
|
+
constructor(data, ownerDocument) {
|
|
27
|
+
super(import_Node.TEXT_NODE, "#text", ownerDocument);
|
|
28
|
+
// Override nodeType to match Text interface
|
|
29
|
+
this.nodeType = import_Node.TEXT_NODE;
|
|
30
|
+
this.nodeName = "#text";
|
|
31
|
+
this._data = data;
|
|
32
|
+
this._nodeValue = data;
|
|
33
|
+
}
|
|
34
|
+
get data() {
|
|
35
|
+
return this._data;
|
|
36
|
+
}
|
|
37
|
+
set data(value) {
|
|
38
|
+
this._data = value;
|
|
39
|
+
this._nodeValue = value;
|
|
40
|
+
}
|
|
41
|
+
get length() {
|
|
42
|
+
return this._data.length;
|
|
43
|
+
}
|
|
44
|
+
get textContent() {
|
|
45
|
+
return this._data ? this.decodeHTMLEntities(this._data) : this._data;
|
|
46
|
+
}
|
|
47
|
+
set textContent(value) {
|
|
48
|
+
this._data = value || "";
|
|
49
|
+
this._nodeValue = this._data;
|
|
50
|
+
}
|
|
51
|
+
get wholeText() {
|
|
52
|
+
return this._data;
|
|
53
|
+
}
|
|
54
|
+
// CharacterData methods
|
|
55
|
+
appendData(data) {
|
|
56
|
+
this._data += data;
|
|
57
|
+
this._nodeValue = this._data;
|
|
58
|
+
}
|
|
59
|
+
deleteData(offset, count) {
|
|
60
|
+
if (offset < 0 || offset > this._data.length) {
|
|
61
|
+
throw new Error("Index out of bounds");
|
|
62
|
+
}
|
|
63
|
+
const endOffset = Math.min(offset + count, this._data.length);
|
|
64
|
+
this._data = this._data.slice(0, offset) + this._data.slice(endOffset);
|
|
65
|
+
this._nodeValue = this._data;
|
|
66
|
+
}
|
|
67
|
+
insertData(offset, data) {
|
|
68
|
+
if (offset < 0 || offset > this._data.length) {
|
|
69
|
+
throw new Error("Index out of bounds");
|
|
70
|
+
}
|
|
71
|
+
this._data = this._data.slice(0, offset) + data + this._data.slice(offset);
|
|
72
|
+
this._nodeValue = this._data;
|
|
73
|
+
}
|
|
74
|
+
replaceData(offset, count, data) {
|
|
75
|
+
this.deleteData(offset, count);
|
|
76
|
+
this.insertData(offset, data);
|
|
77
|
+
}
|
|
78
|
+
substringData(offset, count) {
|
|
79
|
+
if (offset < 0 || offset > this._data.length) {
|
|
80
|
+
throw new Error("Index out of bounds");
|
|
81
|
+
}
|
|
82
|
+
const endOffset = Math.min(offset + count, this._data.length);
|
|
83
|
+
return this._data.slice(offset, endOffset);
|
|
84
|
+
}
|
|
85
|
+
splitText(offset) {
|
|
86
|
+
if (offset < 0 || offset > this._data.length) {
|
|
87
|
+
throw new Error("Index out of bounds");
|
|
88
|
+
}
|
|
89
|
+
const newData = this._data.slice(offset);
|
|
90
|
+
this._data = this._data.slice(0, offset);
|
|
91
|
+
this._nodeValue = this._data;
|
|
92
|
+
const newTextNode = new TextBase(newData, this._ownerDocument);
|
|
93
|
+
if (this._parentNodeInternal) {
|
|
94
|
+
const nextSibling = this.nextSibling;
|
|
95
|
+
this._parentNodeInternal.insertBefore(newTextNode, nextSibling);
|
|
96
|
+
}
|
|
97
|
+
return newTextNode;
|
|
98
|
+
}
|
|
99
|
+
cloneNode(deep) {
|
|
100
|
+
return new TextBase(this._data, this._ownerDocument);
|
|
101
|
+
}
|
|
102
|
+
toString() {
|
|
103
|
+
return this._data;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
//# sourceMappingURL=TextBase.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../src/node/TextBase.ts"],
|
|
4
|
+
"sourcesContent": ["import { ChildNodeBase } from './ChildNodeBase';\nimport { TEXT_NODE } from './Node';\nimport { Text } from './Text';\n\n/**\n * The **`TextBase`** class represents a text node implementation in the DOM.\n */\nexport class TextBase extends ChildNodeBase implements Text {\n private _data: string;\n \n // Override nodeType to match Text interface\n readonly nodeType: 3 = TEXT_NODE as 3;\n readonly nodeName: '#text' = '#text';\n\n constructor(data: string, ownerDocument?: any) {\n super(TEXT_NODE, '#text', ownerDocument);\n this._data = data;\n this._nodeValue = data;\n }\n\n get data(): string {\n return this._data;\n }\n\n set data(value: string) {\n this._data = value;\n this._nodeValue = value;\n }\n\n get length(): number {\n return this._data.length;\n }\n\n get textContent(): string | null {\n // Decode HTML entities to return original text\n return this._data ? this.decodeHTMLEntities(this._data) : this._data;\n }\n\n set textContent(value: string | null) {\n this._data = value || '';\n this._nodeValue = this._data;\n }\n\n get wholeText(): string {\n // For now, just return the current text\n // In a full implementation, this would collect adjacent text nodes\n return this._data;\n }\n\n // CharacterData methods\n appendData(data: string): void {\n this._data += data;\n this._nodeValue = this._data;\n }\n\n deleteData(offset: number, count: number): void {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n const endOffset = Math.min(offset + count, this._data.length);\n this._data = this._data.slice(0, offset) + this._data.slice(endOffset);\n this._nodeValue = this._data;\n }\n\n insertData(offset: number, data: string): void {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n this._data = this._data.slice(0, offset) + data + this._data.slice(offset);\n this._nodeValue = this._data;\n }\n\n replaceData(offset: number, count: number, data: string): void {\n this.deleteData(offset, count);\n this.insertData(offset, data);\n }\n\n substringData(offset: number, count: number): string {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n const endOffset = Math.min(offset + count, this._data.length);\n return this._data.slice(offset, endOffset);\n }\n\n splitText(offset: number): Text {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n\n const newData = this._data.slice(offset);\n this._data = this._data.slice(0, offset);\n this._nodeValue = this._data;\n\n const newTextNode = new TextBase(newData, this._ownerDocument);\n\n // Insert the new text node after this one\n if (this._parentNodeInternal) {\n const nextSibling = this.nextSibling;\n this._parentNodeInternal.insertBefore(newTextNode, nextSibling);\n }\n\n return newTextNode as Text;\n }\n\n cloneNode(deep?: boolean): Text {\n return new TextBase(this._data, this._ownerDocument) as Text;\n }\n\n toString(): string {\n return this._data;\n }\n}"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,2BAA8B;AAC9B,kBAA0B;AAMnB,MAAM,iBAAiB,mCAA8B;AAAA,EAOxD,YAAY,MAAc,eAAqB;AAC3C,UAAM,uBAAW,SAAS,aAAa;AAJ3C;AAAA,SAAS,WAAc;AACvB,SAAS,WAAoB;AAIzB,SAAK,QAAQ;AACb,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,IAAI,OAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,KAAK,OAAe;AACpB,SAAK,QAAQ;AACb,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,IAAI,SAAiB;AACjB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,IAAI,cAA6B;AAE7B,WAAO,KAAK,QAAQ,KAAK,mBAAmB,KAAK,KAAK,IAAI,KAAK;AAAA,EACnE;AAAA,EAEA,IAAI,YAAY,OAAsB;AAClC,SAAK,QAAQ,SAAS;AACtB,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,YAAoB;AAGpB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,WAAW,MAAoB;AAC3B,SAAK,SAAS;AACd,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,WAAW,QAAgB,OAAqB;AAC5C,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AACA,UAAM,YAAY,KAAK,IAAI,SAAS,OAAO,KAAK,MAAM,MAAM;AAC5D,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM,IAAI,KAAK,MAAM,MAAM,SAAS;AACrE,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,WAAW,QAAgB,MAAoB;AAC3C,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AACA,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,KAAK,MAAM,MAAM,MAAM;AACzE,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,YAAY,QAAgB,OAAe,MAAoB;AAC3D,SAAK,WAAW,QAAQ,KAAK;AAC7B,SAAK,WAAW,QAAQ,IAAI;AAAA,EAChC;AAAA,EAEA,cAAc,QAAgB,OAAuB;AACjD,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AACA,UAAM,YAAY,KAAK,IAAI,SAAS,OAAO,KAAK,MAAM,MAAM;AAC5D,WAAO,KAAK,MAAM,MAAM,QAAQ,SAAS;AAAA,EAC7C;AAAA,EAEA,UAAU,QAAsB;AAC5B,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AAEA,UAAM,UAAU,KAAK,MAAM,MAAM,MAAM;AACvC,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM;AACvC,SAAK,aAAa,KAAK;AAEvB,UAAM,cAAc,IAAI,SAAS,SAAS,KAAK,cAAc;AAG7D,QAAI,KAAK,qBAAqB;AAC1B,YAAM,cAAc,KAAK;AACzB,WAAK,oBAAoB,aAAa,aAAa,WAAW;AAAA,IAClE;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU,MAAsB;AAC5B,WAAO,IAAI,SAAS,KAAK,OAAO,KAAK,cAAc;AAAA,EACvD;AAAA,EAEA,WAAmB;AACf,WAAO,KAAK;AAAA,EAChB;AACJ;",
|
|
6
|
+
"names": []
|
|
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 HTMLCollection_exports = {};
|
|
19
|
+
__export(HTMLCollection_exports, {
|
|
20
|
+
HTMLCollection: () => HTMLCollection
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(HTMLCollection_exports);
|
|
23
|
+
class HTMLCollection {
|
|
24
|
+
constructor(elements = []) {
|
|
25
|
+
this._elements = [];
|
|
26
|
+
this._elements = [...elements];
|
|
27
|
+
return new Proxy(this, {
|
|
28
|
+
get(target, prop) {
|
|
29
|
+
if (typeof prop === "string" && /^\d+$/.test(prop)) {
|
|
30
|
+
const index = parseInt(prop, 10);
|
|
31
|
+
return target._elements[index] || null;
|
|
32
|
+
}
|
|
33
|
+
return target[prop];
|
|
34
|
+
},
|
|
35
|
+
set(target, prop, value) {
|
|
36
|
+
if (typeof prop === "string" && /^\d+$/.test(prop)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
target[prop] = value;
|
|
40
|
+
return true;
|
|
41
|
+
},
|
|
42
|
+
has(target, prop) {
|
|
43
|
+
if (typeof prop === "string" && /^\d+$/.test(prop)) {
|
|
44
|
+
const index = parseInt(prop, 10);
|
|
45
|
+
return index >= 0 && index < target._elements.length;
|
|
46
|
+
}
|
|
47
|
+
return prop in target;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Returns the number of elements in the collection.
|
|
53
|
+
*
|
|
54
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length)
|
|
55
|
+
*/
|
|
56
|
+
get length() {
|
|
57
|
+
return this._elements.length;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns the element at the specified index, or null if the index is out of range.
|
|
61
|
+
*
|
|
62
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item)
|
|
63
|
+
*/
|
|
64
|
+
item(index) {
|
|
65
|
+
if (index < 0 || index >= this._elements.length) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
return this._elements[index];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Returns the element with the specified ID or name, or null if no such element exists.
|
|
72
|
+
*
|
|
73
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem)
|
|
74
|
+
*/
|
|
75
|
+
namedItem(name) {
|
|
76
|
+
for (const element of this._elements) {
|
|
77
|
+
if (element.id === name || element.getAttribute("name") === name) {
|
|
78
|
+
return element;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
return null;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* Returns an iterator for the collection.
|
|
85
|
+
*/
|
|
86
|
+
[Symbol.iterator]() {
|
|
87
|
+
return this._elements[Symbol.iterator]();
|
|
88
|
+
}
|
|
89
|
+
// 내부적으로 요소 추가/제거를 위한 메서드들 (DOM 조작 시 사용)
|
|
90
|
+
_addElement(element) {
|
|
91
|
+
this._elements.push(element);
|
|
92
|
+
}
|
|
93
|
+
_removeElement(element) {
|
|
94
|
+
const index = this._elements.indexOf(element);
|
|
95
|
+
if (index !== -1) {
|
|
96
|
+
this._elements.splice(index, 1);
|
|
97
|
+
return true;
|
|
98
|
+
}
|
|
99
|
+
return false;
|
|
100
|
+
}
|
|
101
|
+
_insertElement(index, element) {
|
|
102
|
+
this._elements.splice(index, 0, element);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=HTMLCollection.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/node/collection/HTMLCollection.ts"],
|
|
4
|
+
"sourcesContent": ["import { Element } from '../elements/Element';\n\n/**\n * **`HTMLCollection`** represents a generic collection of HTML elements.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection)\n */\nexport class HTMLCollection {\n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uC120\uC5B8\n [index: number]: Element;\n \n private _elements: Element[] = [];\n\n constructor(elements: Element[] = []) {\n this._elements = [...elements];\n \n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uAD6C\uD604\uC744 \uC704\uD55C \uD504\uB85D\uC2DC \uC124\uC815\n return new Proxy(this, {\n get(target, prop) {\n // \uC22B\uC790 \uC778\uB371\uC2A4\uC778 \uACBD\uC6B0\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return target._elements[index] || null;\n }\n // \uC77C\uBC18 \uD504\uB85C\uD37C\uD2F0/\uBA54\uC11C\uB4DC\uC778 \uACBD\uC6B0\n return (target as any)[prop];\n },\n \n set(target, prop, value) {\n // \uC22B\uC790 \uC778\uB371\uC2A4 \uC124\uC815 \uBC29\uC9C0 (\uC77D\uAE30 \uC804\uC6A9)\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n return false;\n }\n (target as any)[prop] = value;\n return true;\n },\n \n has(target, prop) {\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return index >= 0 && index < target._elements.length;\n }\n return prop in target;\n }\n });\n }\n\n /**\n * Returns the number of elements in the collection.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length)\n */\n get length(): number {\n return this._elements.length;\n }\n\n /**\n * Returns the element at the specified index, or null if the index is out of range.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item)\n */\n item(index: number): Element | null {\n if (index < 0 || index >= this._elements.length) {\n return null;\n }\n return this._elements[index];\n }\n\n /**\n * Returns the element with the specified ID or name, or null if no such element exists.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem)\n */\n namedItem(name: string): Element | null {\n for (const element of this._elements) {\n if (element.id === name || element.getAttribute('name') === name) {\n return element;\n }\n }\n return null;\n }\n\n /**\n * Returns an iterator for the collection.\n */\n [Symbol.iterator](): IterableIterator<Element> {\n return this._elements[Symbol.iterator]();\n }\n\n // \uB0B4\uBD80\uC801\uC73C\uB85C \uC694\uC18C \uCD94\uAC00/\uC81C\uAC70\uB97C \uC704\uD55C \uBA54\uC11C\uB4DC\uB4E4 (DOM \uC870\uC791 \uC2DC \uC0AC\uC6A9)\n _addElement(element: Element): void {\n this._elements.push(element);\n }\n\n _removeElement(element: Element): boolean {\n const index = this._elements.indexOf(element);\n if (index !== -1) {\n this._elements.splice(index, 1);\n return true;\n }\n return false;\n }\n\n _insertElement(index: number, element: Element): void {\n this._elements.splice(index, 0, element);\n }\n}\n"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAOO,MAAM,eAAe;AAAA,EAMxB,YAAY,WAAsB,CAAC,GAAG;AAFtC,SAAQ,YAAuB,CAAC;AAG5B,SAAK,YAAY,CAAC,GAAG,QAAQ;AAG7B,WAAO,IAAI,MAAM,MAAM;AAAA,MACnB,IAAI,QAAQ,MAAM;AAEd,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,gBAAM,QAAQ,SAAS,MAAM,EAAE;AAC/B,iBAAO,OAAO,UAAU,KAAK,KAAK;AAAA,QACtC;AAEA,eAAQ,OAAe,IAAI;AAAA,MAC/B;AAAA,MAEA,IAAI,QAAQ,MAAM,OAAO;AAErB,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,iBAAO;AAAA,QACX;AACA,QAAC,OAAe,IAAI,IAAI;AACxB,eAAO;AAAA,MACX;AAAA,MAEA,IAAI,QAAQ,MAAM;AACd,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,gBAAM,QAAQ,SAAS,MAAM,EAAE;AAC/B,iBAAO,SAAS,KAAK,QAAQ,OAAO,UAAU;AAAA,QAClD;AACA,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,SAAiB;AACjB,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,OAA+B;AAChC,QAAI,QAAQ,KAAK,SAAS,KAAK,UAAU,QAAQ;AAC7C,aAAO;AAAA,IACX;AACA,WAAO,KAAK,UAAU,KAAK;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,MAA8B;AACpC,eAAW,WAAW,KAAK,WAAW;AAClC,UAAI,QAAQ,OAAO,QAAQ,QAAQ,aAAa,MAAM,MAAM,MAAM;AAC9D,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,CAAC,OAAO,QAAQ,IAA+B;AAC3C,WAAO,KAAK,UAAU,OAAO,QAAQ,EAAE;AAAA,EAC3C;AAAA;AAAA,EAGA,YAAY,SAAwB;AAChC,SAAK,UAAU,KAAK,OAAO;AAAA,EAC/B;AAAA,EAEA,eAAe,SAA2B;AACtC,UAAM,QAAQ,KAAK,UAAU,QAAQ,OAAO;AAC5C,QAAI,UAAU,IAAI;AACd,WAAK,UAAU,OAAO,OAAO,CAAC;AAC9B,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,OAAe,SAAwB;AAClD,SAAK,UAAU,OAAO,OAAO,GAAG,OAAO;AAAA,EAC3C;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,36 @@
|
|
|
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 HTMLCollectionOf_exports = {};
|
|
19
|
+
__export(HTMLCollectionOf_exports, {
|
|
20
|
+
HTMLCollectionOf: () => HTMLCollectionOf
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(HTMLCollectionOf_exports);
|
|
23
|
+
var import_HTMLCollection = require("./HTMLCollection");
|
|
24
|
+
class HTMLCollectionOf extends import_HTMLCollection.HTMLCollection {
|
|
25
|
+
constructor(elements = []) {
|
|
26
|
+
super(elements);
|
|
27
|
+
}
|
|
28
|
+
// 타입 안전성을 위한 오버라이드 - 단순 캐스팅만
|
|
29
|
+
item(index) {
|
|
30
|
+
return super.item(index);
|
|
31
|
+
}
|
|
32
|
+
namedItem(name) {
|
|
33
|
+
return super.namedItem(name);
|
|
34
|
+
}
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=HTMLCollectionOf.js.map
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
{
|
|
2
|
+
"version": 3,
|
|
3
|
+
"sources": ["../../../../src/node/collection/HTMLCollectionOf.ts"],
|
|
4
|
+
"sourcesContent": ["import { Element } from '../elements/Element';\nimport { HTMLCollection } from './HTMLCollection';\n\n/**\n * **`HTMLCollectionOf<T>`** is a generic version of HTMLCollection that provides type safety for specific element types.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection)\n */\nexport class HTMLCollectionOf<T extends Element> extends HTMLCollection {\n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98\uB97C \uBA85\uC2DC\uC801\uC73C\uB85C \uC120\uC5B8\uD558\uC5EC \uD0C0\uC785 \uCD94\uB860 \uC9C0\uC6D0\n [index: number]: T;\n \n constructor(elements: T[] = []) {\n // \uBD80\uBAA8 HTMLCollection\uC758 \uC0DD\uC131\uC790\uB97C \uD638\uCD9C\uD558\uBA74\uC11C \uD0C0\uC785\uC774 \uC9C0\uC815\uB41C \uC694\uC18C\uB4E4\uC744 \uC804\uB2EC\n super(elements as Element[]);\n }\n\n // \uD0C0\uC785 \uC548\uC804\uC131\uC744 \uC704\uD55C \uC624\uBC84\uB77C\uC774\uB4DC - \uB2E8\uC21C \uCE90\uC2A4\uD305\uB9CC\n item(index: number): T | null {\n return super.item(index) as T | null;\n }\n\n namedItem(name: string): T | null {\n return super.namedItem(name) as T | null;\n }\n}"],
|
|
5
|
+
"mappings": ";;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AACA,4BAA+B;AAOxB,MAAM,yBAA4C,qCAAe;AAAA,EAIpE,YAAY,WAAgB,CAAC,GAAG;AAE5B,UAAM,QAAqB;AAAA,EAC/B;AAAA;AAAA,EAGA,KAAK,OAAyB;AAC1B,WAAO,MAAM,KAAK,KAAK;AAAA,EAC3B;AAAA,EAEA,UAAU,MAAwB;AAC9B,WAAO,MAAM,UAAU,IAAI;AAAA,EAC/B;AACJ;",
|
|
6
|
+
"names": []
|
|
7
|
+
}
|
|
@@ -0,0 +1,135 @@
|
|
|
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 NodeList_exports = {};
|
|
19
|
+
__export(NodeList_exports, {
|
|
20
|
+
NodeList: () => NodeList
|
|
21
|
+
});
|
|
22
|
+
module.exports = __toCommonJS(NodeList_exports);
|
|
23
|
+
class NodeList {
|
|
24
|
+
constructor(nodes = []) {
|
|
25
|
+
this._nodes = [];
|
|
26
|
+
this._nodes = [...nodes];
|
|
27
|
+
return new Proxy(this, {
|
|
28
|
+
get(target, prop) {
|
|
29
|
+
if (typeof prop === "string" && /^\d+$/.test(prop)) {
|
|
30
|
+
const index = parseInt(prop, 10);
|
|
31
|
+
return target._nodes[index] || null;
|
|
32
|
+
}
|
|
33
|
+
return target[prop];
|
|
34
|
+
},
|
|
35
|
+
set(target, prop, value) {
|
|
36
|
+
if (typeof prop === "string" && /^\d+$/.test(prop)) {
|
|
37
|
+
return false;
|
|
38
|
+
}
|
|
39
|
+
target[prop] = value;
|
|
40
|
+
return true;
|
|
41
|
+
},
|
|
42
|
+
has(target, prop) {
|
|
43
|
+
if (typeof prop === "string" && /^\d+$/.test(prop)) {
|
|
44
|
+
const index = parseInt(prop, 10);
|
|
45
|
+
return index >= 0 && index < target._nodes.length;
|
|
46
|
+
}
|
|
47
|
+
return prop in target;
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* The **`NodeList.length`** property returns the number of items in a NodeList.
|
|
53
|
+
*
|
|
54
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/length)
|
|
55
|
+
*/
|
|
56
|
+
get length() {
|
|
57
|
+
return this._nodes.length;
|
|
58
|
+
}
|
|
59
|
+
/**
|
|
60
|
+
* Returns a node from a `NodeList` by index.
|
|
61
|
+
*
|
|
62
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/item)
|
|
63
|
+
*/
|
|
64
|
+
item(index) {
|
|
65
|
+
if (index < 0 || index >= this._nodes.length) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
68
|
+
return this._nodes[index];
|
|
69
|
+
}
|
|
70
|
+
/**
|
|
71
|
+
* Executes a provided function once for each `Node` value in the `NodeList`.
|
|
72
|
+
*
|
|
73
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/forEach)
|
|
74
|
+
*/
|
|
75
|
+
forEach(callbackfn, thisArg) {
|
|
76
|
+
this._nodes.forEach((node, index) => {
|
|
77
|
+
callbackfn.call(thisArg, node, index, this);
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
// 내부적으로 노드 추가/제거를 위한 메서드들 (DOM 조작 시 사용)
|
|
81
|
+
_addNode(node) {
|
|
82
|
+
this._nodes.push(node);
|
|
83
|
+
}
|
|
84
|
+
_removeNode(node) {
|
|
85
|
+
const index = this._nodes.indexOf(node);
|
|
86
|
+
if (index !== -1) {
|
|
87
|
+
this._nodes.splice(index, 1);
|
|
88
|
+
return true;
|
|
89
|
+
}
|
|
90
|
+
return false;
|
|
91
|
+
}
|
|
92
|
+
_insertNode(index, node) {
|
|
93
|
+
this._nodes.splice(index, 0, node);
|
|
94
|
+
}
|
|
95
|
+
// Iterator 지원 (for...of 사용 가능)
|
|
96
|
+
*[Symbol.iterator]() {
|
|
97
|
+
for (const node of this._nodes) {
|
|
98
|
+
yield node;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Returns an iterator allowing to go through all keys contained in this object.
|
|
103
|
+
* The keys are unsigned integer (index).
|
|
104
|
+
*
|
|
105
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/keys)
|
|
106
|
+
*/
|
|
107
|
+
*keys() {
|
|
108
|
+
for (let i = 0; i < this._nodes.length; i++) {
|
|
109
|
+
yield i;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
/**
|
|
113
|
+
* Returns an iterator allowing to go through all values contained in this object.
|
|
114
|
+
* The values are Node objects.
|
|
115
|
+
*
|
|
116
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/values)
|
|
117
|
+
*/
|
|
118
|
+
*values() {
|
|
119
|
+
for (const node of this._nodes) {
|
|
120
|
+
yield node;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Returns an iterator allowing to go through all key/value pairs contained in this object.
|
|
125
|
+
* The key is an unsigned integer (index) and the value is a Node object.
|
|
126
|
+
*
|
|
127
|
+
* [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/entries)
|
|
128
|
+
*/
|
|
129
|
+
*entries() {
|
|
130
|
+
for (let i = 0; i < this._nodes.length; i++) {
|
|
131
|
+
yield [i, this._nodes[i]];
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
}
|
|
135
|
+
//# sourceMappingURL=NodeList.js.map
|