happy-dom 15.11.7 → 16.0.1
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/cjs/PropertySymbol.cjs +12 -9
- package/cjs/PropertySymbol.cjs.map +1 -1
- package/cjs/PropertySymbol.d.ts +4 -1
- package/cjs/PropertySymbol.d.ts.map +1 -1
- package/cjs/config/HTMLElementConfig.cjs +42 -16
- package/cjs/config/HTMLElementConfig.cjs.map +1 -1
- package/cjs/config/HTMLElementConfig.d.ts +7 -0
- package/cjs/config/HTMLElementConfig.d.ts.map +1 -1
- package/cjs/config/HTMLElementConfigContentModelEnum.cjs +3 -0
- package/cjs/config/HTMLElementConfigContentModelEnum.cjs.map +1 -1
- package/cjs/config/HTMLElementConfigContentModelEnum.d.ts +3 -0
- package/cjs/config/HTMLElementConfigContentModelEnum.d.ts.map +1 -1
- package/cjs/config/NamespaceURI.cjs +2 -0
- package/cjs/config/NamespaceURI.cjs.map +1 -1
- package/cjs/config/NamespaceURI.d.ts +2 -0
- package/cjs/config/NamespaceURI.d.ts.map +1 -1
- package/cjs/css/declaration/CSSStyleDeclaration.cjs +1 -1
- package/cjs/css/declaration/CSSStyleDeclaration.cjs.map +1 -1
- package/cjs/css/declaration/CSSStyleDeclaration.d.ts.map +1 -1
- package/cjs/css/declaration/computed-style/CSSStyleDeclarationComputedStyle.cjs +2 -2
- package/cjs/css/declaration/computed-style/CSSStyleDeclarationComputedStyle.cjs.map +1 -1
- package/cjs/css/declaration/computed-style/CSSStyleDeclarationComputedStyle.d.ts.map +1 -1
- package/cjs/css/rules/CSSStyleRule.cjs +1 -1
- package/cjs/css/rules/CSSStyleRule.cjs.map +1 -1
- package/cjs/css/rules/CSSStyleRule.d.ts +1 -1
- package/cjs/css/rules/CSSStyleRule.d.ts.map +1 -1
- package/cjs/custom-element/CustomElementReactionStack.cjs +104 -0
- package/cjs/custom-element/CustomElementReactionStack.cjs.map +1 -0
- package/cjs/custom-element/CustomElementReactionStack.d.ts +27 -0
- package/cjs/custom-element/CustomElementReactionStack.d.ts.map +1 -0
- package/cjs/custom-element/CustomElementRegistry.cjs +32 -45
- package/cjs/custom-element/CustomElementRegistry.cjs.map +1 -1
- package/cjs/custom-element/CustomElementRegistry.d.ts +2 -6
- package/cjs/custom-element/CustomElementRegistry.d.ts.map +1 -1
- package/cjs/custom-element/CustomElementUtility.cjs +35 -0
- package/cjs/custom-element/CustomElementUtility.cjs.map +1 -0
- package/cjs/custom-element/CustomElementUtility.d.ts +14 -0
- package/cjs/custom-element/CustomElementUtility.d.ts.map +1 -0
- package/cjs/custom-element/ICustomElementDefinition.cjs +3 -0
- package/cjs/custom-element/ICustomElementDefinition.cjs.map +1 -0
- package/cjs/custom-element/ICustomElementDefinition.d.ts +12 -0
- package/cjs/custom-element/ICustomElementDefinition.d.ts.map +1 -0
- package/cjs/dom/DOMStringMap.cjs +8 -8
- package/cjs/dom/DOMStringMap.cjs.map +1 -1
- package/cjs/dom/DOMStringMap.d.ts.map +1 -1
- package/cjs/dom/DOMTokenList.cjs +1 -1
- package/cjs/dom/DOMTokenList.cjs.map +1 -1
- package/cjs/dom-parser/DOMParser.cjs +5 -67
- package/cjs/dom-parser/DOMParser.cjs.map +1 -1
- package/cjs/dom-parser/DOMParser.d.ts +0 -1
- package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
- package/cjs/exception/DOMExceptionNameEnum.cjs +1 -0
- package/cjs/exception/DOMExceptionNameEnum.cjs.map +1 -1
- package/cjs/exception/DOMExceptionNameEnum.d.ts +2 -1
- package/cjs/exception/DOMExceptionNameEnum.d.ts.map +1 -1
- package/cjs/history/History.cjs +6 -6
- package/cjs/history/History.cjs.map +1 -1
- package/cjs/html-parser/HTMLParser.cjs +726 -0
- package/cjs/html-parser/HTMLParser.cjs.map +1 -0
- package/cjs/html-parser/HTMLParser.d.ts +91 -0
- package/cjs/html-parser/HTMLParser.d.ts.map +1 -0
- package/cjs/html-serializer/HTMLSerializer.cjs +152 -0
- package/cjs/html-serializer/HTMLSerializer.cjs.map +1 -0
- package/cjs/html-serializer/HTMLSerializer.d.ts +36 -0
- package/cjs/html-serializer/HTMLSerializer.d.ts.map +1 -0
- package/cjs/nodes/document/Document.cjs +104 -120
- package/cjs/nodes/document/Document.cjs.map +1 -1
- package/cjs/nodes/document/Document.d.ts +8 -0
- package/cjs/nodes/document/Document.d.ts.map +1 -1
- package/cjs/nodes/element/Element.cjs +35 -53
- package/cjs/nodes/element/Element.cjs.map +1 -1
- package/cjs/nodes/element/Element.d.ts +2 -12
- package/cjs/nodes/element/Element.d.ts.map +1 -1
- package/cjs/nodes/element/HTMLCollection.cjs +5 -9
- package/cjs/nodes/element/HTMLCollection.cjs.map +1 -1
- package/cjs/nodes/element/HTMLCollection.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.cjs +39 -52
- package/cjs/nodes/element/NamedNodeMap.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMap.d.ts +1 -16
- package/cjs/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs +12 -14
- package/cjs/nodes/element/NamedNodeMapProxyFactory.cjs.map +1 -1
- package/cjs/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/cjs/nodes/html-document/HTMLDocument.cjs +33 -2
- package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
- package/cjs/nodes/html-document/HTMLDocument.d.ts +10 -0
- package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.cjs +58 -22
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts +34 -0
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-field-set-element/HTMLFieldSetElement.cjs +1 -1
- package/cjs/nodes/html-field-set-element/HTMLFieldSetElement.cjs.map +1 -1
- package/cjs/nodes/html-field-set-element/HTMLFieldSetElement.d.ts.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs +5 -8
- package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
- package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/TextTrackList.cjs +1 -1
- package/cjs/nodes/html-media-element/TextTrackList.cjs.map +1 -1
- package/cjs/nodes/html-object-element/HTMLObjectElement.cjs +1 -1
- package/cjs/nodes/html-object-element/HTMLObjectElement.cjs.map +1 -1
- package/cjs/nodes/html-object-element/HTMLObjectElement.d.ts.map +1 -1
- package/cjs/nodes/html-output-element/HTMLOutputElement.cjs +1 -1
- package/cjs/nodes/html-output-element/HTMLOutputElement.cjs.map +1 -1
- package/cjs/nodes/html-output-element/HTMLOutputElement.d.ts.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +3 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +2 -2
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-element/HTMLTableElement.cjs +9 -1
- package/cjs/nodes/html-table-element/HTMLTableElement.cjs.map +1 -1
- package/cjs/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
- package/cjs/nodes/html-table-row-element/HTMLTableRowElement.cjs +1 -1
- package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs +15 -17
- package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs.map +1 -1
- package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts +2 -2
- package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/cjs/nodes/node/Node.cjs +44 -48
- package/cjs/nodes/node/Node.cjs.map +1 -1
- package/cjs/nodes/node/Node.d.ts +2 -10
- package/cjs/nodes/node/Node.d.ts.map +1 -1
- package/cjs/nodes/node/NodeList.cjs +1 -1
- package/cjs/nodes/node/NodeList.cjs.map +1 -1
- package/cjs/nodes/node/NodeUtility.cjs +4 -3
- package/cjs/nodes/node/NodeUtility.cjs.map +1 -1
- package/cjs/nodes/node/NodeUtility.d.ts.map +1 -1
- package/cjs/nodes/parent-node/ParentNodeUtility.cjs +5 -2
- package/cjs/nodes/parent-node/ParentNodeUtility.cjs.map +1 -1
- package/cjs/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
- package/cjs/nodes/shadow-root/ShadowRoot.cjs +8 -8
- package/cjs/nodes/shadow-root/ShadowRoot.cjs.map +1 -1
- package/cjs/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
- package/cjs/nodes/xml-document/XMLDocument.cjs +26 -0
- package/cjs/nodes/xml-document/XMLDocument.cjs.map +1 -1
- package/cjs/nodes/xml-document/XMLDocument.d.ts +2 -0
- package/cjs/nodes/xml-document/XMLDocument.d.ts.map +1 -1
- package/cjs/query-selector/SelectorItem.cjs +1 -2
- package/cjs/query-selector/SelectorItem.cjs.map +1 -1
- package/cjs/query-selector/SelectorItem.d.ts.map +1 -1
- package/cjs/range/Range.cjs +3 -3
- package/cjs/range/Range.cjs.map +1 -1
- package/cjs/range/Range.d.ts.map +1 -1
- package/cjs/storage/Storage.cjs +1 -1
- package/cjs/storage/Storage.cjs.map +1 -1
- package/cjs/svg/SVGLengthList.cjs +1 -1
- package/cjs/svg/SVGLengthList.cjs.map +1 -1
- package/cjs/svg/SVGNumberList.cjs +1 -1
- package/cjs/svg/SVGNumberList.cjs.map +1 -1
- package/cjs/svg/SVGPointList.cjs +1 -1
- package/cjs/svg/SVGPointList.cjs.map +1 -1
- package/cjs/svg/SVGStringList.cjs +1 -1
- package/cjs/svg/SVGStringList.cjs.map +1 -1
- package/cjs/svg/SVGTransformList.cjs +1 -1
- package/cjs/svg/SVGTransformList.cjs.map +1 -1
- package/cjs/tree-walker/NodeIterator.cjs +63 -6
- package/cjs/tree-walker/NodeIterator.cjs.map +1 -1
- package/cjs/tree-walker/NodeIterator.d.ts +18 -3
- package/cjs/tree-walker/NodeIterator.d.ts.map +1 -1
- package/cjs/tree-walker/TreeWalker.cjs +6 -6
- package/cjs/tree-walker/TreeWalker.cjs.map +1 -1
- package/cjs/tree-walker/TreeWalker.d.ts +2 -1
- package/cjs/tree-walker/TreeWalker.d.ts.map +1 -1
- package/cjs/utilities/ClassMethodBinder.cjs.map +1 -0
- package/cjs/utilities/ClassMethodBinder.d.ts.map +1 -0
- package/cjs/utilities/StringUtility.cjs.map +1 -0
- package/cjs/utilities/StringUtility.d.ts.map +1 -0
- package/cjs/utilities/XMLEncodeUtility.cjs +119 -0
- package/cjs/utilities/XMLEncodeUtility.cjs.map +1 -0
- package/cjs/utilities/XMLEncodeUtility.d.ts +48 -0
- package/cjs/utilities/XMLEncodeUtility.d.ts.map +1 -0
- package/cjs/window/BrowserWindow.cjs +5 -3
- package/cjs/window/BrowserWindow.cjs.map +1 -1
- package/cjs/window/BrowserWindow.d.ts +2 -0
- package/cjs/window/BrowserWindow.d.ts.map +1 -1
- package/cjs/window/WindowErrorUtility.cjs +1 -1
- package/cjs/window/WindowErrorUtility.cjs.map +1 -1
- package/cjs/xml-http-request/XMLHttpRequest.cjs +2 -1
- package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
- package/cjs/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
- package/cjs/xml-http-request/XMLHttpRequestResponseDataParser.cjs +1 -1
- package/cjs/xml-http-request/XMLHttpRequestResponseDataParser.cjs.map +1 -1
- package/cjs/xml-parser/XMLParser.cjs +531 -242
- package/cjs/xml-parser/XMLParser.cjs.map +1 -1
- package/cjs/xml-parser/XMLParser.d.ts +89 -19
- package/cjs/xml-parser/XMLParser.d.ts.map +1 -1
- package/cjs/xml-serializer/XMLSerializer.cjs +136 -40
- package/cjs/xml-serializer/XMLSerializer.cjs.map +1 -1
- package/cjs/xml-serializer/XMLSerializer.d.ts +6 -17
- package/cjs/xml-serializer/XMLSerializer.d.ts.map +1 -1
- package/lib/PropertySymbol.d.ts +4 -1
- package/lib/PropertySymbol.d.ts.map +1 -1
- package/lib/PropertySymbol.js +4 -1
- package/lib/PropertySymbol.js.map +1 -1
- package/lib/config/HTMLElementConfig.d.ts +7 -0
- package/lib/config/HTMLElementConfig.d.ts.map +1 -1
- package/lib/config/HTMLElementConfig.js +42 -16
- package/lib/config/HTMLElementConfig.js.map +1 -1
- package/lib/config/HTMLElementConfigContentModelEnum.d.ts +3 -0
- package/lib/config/HTMLElementConfigContentModelEnum.d.ts.map +1 -1
- package/lib/config/HTMLElementConfigContentModelEnum.js +3 -0
- package/lib/config/HTMLElementConfigContentModelEnum.js.map +1 -1
- package/lib/config/NamespaceURI.d.ts +2 -0
- package/lib/config/NamespaceURI.d.ts.map +1 -1
- package/lib/config/NamespaceURI.js +2 -0
- package/lib/config/NamespaceURI.js.map +1 -1
- package/lib/css/declaration/CSSStyleDeclaration.d.ts.map +1 -1
- package/lib/css/declaration/CSSStyleDeclaration.js +1 -1
- package/lib/css/declaration/CSSStyleDeclaration.js.map +1 -1
- package/lib/css/declaration/computed-style/CSSStyleDeclarationComputedStyle.d.ts.map +1 -1
- package/lib/css/declaration/computed-style/CSSStyleDeclarationComputedStyle.js +2 -2
- package/lib/css/declaration/computed-style/CSSStyleDeclarationComputedStyle.js.map +1 -1
- package/lib/css/rules/CSSStyleRule.d.ts +1 -1
- package/lib/css/rules/CSSStyleRule.d.ts.map +1 -1
- package/lib/css/rules/CSSStyleRule.js +1 -1
- package/lib/css/rules/CSSStyleRule.js.map +1 -1
- package/lib/custom-element/CustomElementReactionStack.d.ts +27 -0
- package/lib/custom-element/CustomElementReactionStack.d.ts.map +1 -0
- package/lib/custom-element/CustomElementReactionStack.js +75 -0
- package/lib/custom-element/CustomElementReactionStack.js.map +1 -0
- package/lib/custom-element/CustomElementRegistry.d.ts +2 -6
- package/lib/custom-element/CustomElementRegistry.d.ts.map +1 -1
- package/lib/custom-element/CustomElementRegistry.js +32 -45
- package/lib/custom-element/CustomElementRegistry.js.map +1 -1
- package/lib/custom-element/CustomElementUtility.d.ts +14 -0
- package/lib/custom-element/CustomElementUtility.d.ts.map +1 -0
- package/lib/custom-element/CustomElementUtility.js +32 -0
- package/lib/custom-element/CustomElementUtility.js.map +1 -0
- package/lib/custom-element/ICustomElementDefinition.d.ts +12 -0
- package/lib/custom-element/ICustomElementDefinition.d.ts.map +1 -0
- package/lib/custom-element/ICustomElementDefinition.js +2 -0
- package/lib/custom-element/ICustomElementDefinition.js.map +1 -0
- package/lib/dom/DOMStringMap.d.ts.map +1 -1
- package/lib/dom/DOMStringMap.js +8 -8
- package/lib/dom/DOMStringMap.js.map +1 -1
- package/lib/dom/DOMTokenList.js +1 -1
- package/lib/dom/DOMTokenList.js.map +1 -1
- package/lib/dom-parser/DOMParser.d.ts +0 -1
- package/lib/dom-parser/DOMParser.d.ts.map +1 -1
- package/lib/dom-parser/DOMParser.js +5 -67
- package/lib/dom-parser/DOMParser.js.map +1 -1
- package/lib/exception/DOMExceptionNameEnum.d.ts +2 -1
- package/lib/exception/DOMExceptionNameEnum.d.ts.map +1 -1
- package/lib/exception/DOMExceptionNameEnum.js +1 -0
- package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
- package/lib/history/History.js +6 -6
- package/lib/history/History.js.map +1 -1
- package/lib/html-parser/HTMLParser.d.ts +91 -0
- package/lib/html-parser/HTMLParser.d.ts.map +1 -0
- package/lib/html-parser/HTMLParser.js +697 -0
- package/lib/html-parser/HTMLParser.js.map +1 -0
- package/lib/html-serializer/HTMLSerializer.d.ts +36 -0
- package/lib/html-serializer/HTMLSerializer.d.ts.map +1 -0
- package/lib/html-serializer/HTMLSerializer.js +123 -0
- package/lib/html-serializer/HTMLSerializer.js.map +1 -0
- package/lib/nodes/document/Document.d.ts +8 -0
- package/lib/nodes/document/Document.d.ts.map +1 -1
- package/lib/nodes/document/Document.js +105 -121
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +2 -12
- package/lib/nodes/element/Element.d.ts.map +1 -1
- package/lib/nodes/element/Element.js +35 -53
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/HTMLCollection.d.ts.map +1 -1
- package/lib/nodes/element/HTMLCollection.js +5 -9
- package/lib/nodes/element/HTMLCollection.js.map +1 -1
- package/lib/nodes/element/NamedNodeMap.d.ts +1 -16
- package/lib/nodes/element/NamedNodeMap.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMap.js +39 -52
- package/lib/nodes/element/NamedNodeMap.js.map +1 -1
- package/lib/nodes/element/NamedNodeMapProxyFactory.d.ts.map +1 -1
- package/lib/nodes/element/NamedNodeMapProxyFactory.js +12 -14
- package/lib/nodes/element/NamedNodeMapProxyFactory.js.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.js +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
- package/lib/nodes/html-document/HTMLDocument.d.ts +10 -0
- package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
- package/lib/nodes/html-document/HTMLDocument.js +33 -2
- package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts +34 -0
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +58 -22
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-field-set-element/HTMLFieldSetElement.d.ts.map +1 -1
- package/lib/nodes/html-field-set-element/HTMLFieldSetElement.js +1 -1
- package/lib/nodes/html-field-set-element/HTMLFieldSetElement.js.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormElement.js +5 -8
- package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.js +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- package/lib/nodes/html-media-element/TextTrackList.js +1 -1
- package/lib/nodes/html-media-element/TextTrackList.js.map +1 -1
- package/lib/nodes/html-object-element/HTMLObjectElement.d.ts.map +1 -1
- package/lib/nodes/html-object-element/HTMLObjectElement.js +1 -1
- package/lib/nodes/html-object-element/HTMLObjectElement.js.map +1 -1
- package/lib/nodes/html-output-element/HTMLOutputElement.d.ts.map +1 -1
- package/lib/nodes/html-output-element/HTMLOutputElement.js +1 -1
- package/lib/nodes/html-output-element/HTMLOutputElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +3 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.js +2 -2
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/lib/nodes/html-table-element/HTMLTableElement.d.ts.map +1 -1
- package/lib/nodes/html-table-element/HTMLTableElement.js +9 -1
- package/lib/nodes/html-table-element/HTMLTableElement.js.map +1 -1
- package/lib/nodes/html-table-row-element/HTMLTableRowElement.js +1 -1
- package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts +2 -2
- package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
- package/lib/nodes/html-template-element/HTMLTemplateElement.js +15 -17
- package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
- package/lib/nodes/node/Node.d.ts +2 -10
- package/lib/nodes/node/Node.d.ts.map +1 -1
- package/lib/nodes/node/Node.js +44 -48
- package/lib/nodes/node/Node.js.map +1 -1
- package/lib/nodes/node/NodeList.js +1 -1
- package/lib/nodes/node/NodeList.js.map +1 -1
- package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
- package/lib/nodes/node/NodeUtility.js +4 -3
- package/lib/nodes/node/NodeUtility.js.map +1 -1
- package/lib/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
- package/lib/nodes/parent-node/ParentNodeUtility.js +5 -2
- package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
- package/lib/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
- package/lib/nodes/shadow-root/ShadowRoot.js +8 -8
- package/lib/nodes/shadow-root/ShadowRoot.js.map +1 -1
- package/lib/nodes/xml-document/XMLDocument.d.ts +2 -0
- package/lib/nodes/xml-document/XMLDocument.d.ts.map +1 -1
- package/lib/nodes/xml-document/XMLDocument.js +3 -0
- package/lib/nodes/xml-document/XMLDocument.js.map +1 -1
- package/lib/query-selector/SelectorItem.d.ts.map +1 -1
- package/lib/query-selector/SelectorItem.js +1 -2
- package/lib/query-selector/SelectorItem.js.map +1 -1
- package/lib/range/Range.d.ts.map +1 -1
- package/lib/range/Range.js +3 -3
- package/lib/range/Range.js.map +1 -1
- package/lib/storage/Storage.js +1 -1
- package/lib/storage/Storage.js.map +1 -1
- package/lib/svg/SVGLengthList.js +1 -1
- package/lib/svg/SVGLengthList.js.map +1 -1
- package/lib/svg/SVGNumberList.js +1 -1
- package/lib/svg/SVGNumberList.js.map +1 -1
- package/lib/svg/SVGPointList.js +1 -1
- package/lib/svg/SVGPointList.js.map +1 -1
- package/lib/svg/SVGStringList.js +1 -1
- package/lib/svg/SVGStringList.js.map +1 -1
- package/lib/svg/SVGTransformList.js +1 -1
- package/lib/svg/SVGTransformList.js.map +1 -1
- package/lib/tree-walker/NodeIterator.d.ts +18 -3
- package/lib/tree-walker/NodeIterator.d.ts.map +1 -1
- package/lib/tree-walker/NodeIterator.js +40 -6
- package/lib/tree-walker/NodeIterator.js.map +1 -1
- package/lib/tree-walker/TreeWalker.d.ts +2 -1
- package/lib/tree-walker/TreeWalker.d.ts.map +1 -1
- package/lib/tree-walker/TreeWalker.js +6 -6
- package/lib/tree-walker/TreeWalker.js.map +1 -1
- package/lib/utilities/ClassMethodBinder.d.ts.map +1 -0
- package/lib/utilities/ClassMethodBinder.js.map +1 -0
- package/lib/utilities/StringUtility.d.ts.map +1 -0
- package/lib/utilities/StringUtility.js.map +1 -0
- package/lib/utilities/XMLEncodeUtility.d.ts +48 -0
- package/lib/utilities/XMLEncodeUtility.d.ts.map +1 -0
- package/lib/utilities/XMLEncodeUtility.js +116 -0
- package/lib/utilities/XMLEncodeUtility.js.map +1 -0
- package/lib/window/BrowserWindow.d.ts +2 -0
- package/lib/window/BrowserWindow.d.ts.map +1 -1
- package/lib/window/BrowserWindow.js +5 -3
- package/lib/window/BrowserWindow.js.map +1 -1
- package/lib/window/WindowErrorUtility.js +1 -1
- package/lib/window/WindowErrorUtility.js.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.d.ts.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.js +2 -1
- package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
- package/lib/xml-http-request/XMLHttpRequestResponseDataParser.js +1 -1
- package/lib/xml-http-request/XMLHttpRequestResponseDataParser.js.map +1 -1
- package/lib/xml-parser/XMLParser.d.ts +89 -19
- package/lib/xml-parser/XMLParser.d.ts.map +1 -1
- package/lib/xml-parser/XMLParser.js +531 -242
- package/lib/xml-parser/XMLParser.js.map +1 -1
- package/lib/xml-serializer/XMLSerializer.d.ts +6 -17
- package/lib/xml-serializer/XMLSerializer.d.ts.map +1 -1
- package/lib/xml-serializer/XMLSerializer.js +136 -40
- package/lib/xml-serializer/XMLSerializer.js.map +1 -1
- package/package.json +1 -2
- package/src/PropertySymbol.ts +4 -1
- package/src/config/HTMLElementConfig.ts +53 -17
- package/src/config/HTMLElementConfigContentModelEnum.ts +3 -0
- package/src/config/NamespaceURI.ts +2 -0
- package/src/css/declaration/CSSStyleDeclaration.ts +1 -4
- package/src/css/declaration/computed-style/CSSStyleDeclarationComputedStyle.ts +2 -4
- package/src/css/rules/CSSStyleRule.ts +1 -1
- package/src/custom-element/CustomElementReactionStack.ts +86 -0
- package/src/custom-element/CustomElementRegistry.ts +35 -54
- package/src/custom-element/CustomElementUtility.ts +34 -0
- package/src/custom-element/ICustomElementDefinition.ts +16 -0
- package/src/dom/DOMStringMap.ts +12 -10
- package/src/dom/DOMTokenList.ts +1 -1
- package/src/dom-parser/DOMParser.ts +5 -75
- package/src/exception/DOMExceptionNameEnum.ts +2 -1
- package/src/history/History.ts +6 -6
- package/src/html-parser/HTMLParser.ts +864 -0
- package/src/html-serializer/HTMLSerializer.ts +162 -0
- package/src/nodes/document/Document.ts +117 -136
- package/src/nodes/element/Element.ts +48 -95
- package/src/nodes/element/HTMLCollection.ts +5 -30
- package/src/nodes/element/NamedNodeMap.ts +58 -72
- package/src/nodes/element/NamedNodeMapProxyFactory.ts +12 -15
- package/src/nodes/html-button-element/HTMLButtonElement.ts +1 -4
- package/src/nodes/html-document/HTMLDocument.ts +58 -2
- package/src/nodes/html-element/HTMLElement.ts +117 -25
- package/src/nodes/html-field-set-element/HTMLFieldSetElement.ts +1 -4
- package/src/nodes/html-form-element/HTMLFormElement.ts +5 -27
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +1 -1
- package/src/nodes/html-input-element/HTMLInputElement.ts +1 -4
- package/src/nodes/html-media-element/TextTrackList.ts +1 -1
- package/src/nodes/html-object-element/HTMLObjectElement.ts +1 -4
- package/src/nodes/html-output-element/HTMLOutputElement.ts +1 -4
- package/src/nodes/html-script-element/HTMLScriptElement.ts +4 -1
- package/src/nodes/html-select-element/HTMLSelectElement.ts +2 -5
- package/src/nodes/html-table-element/HTMLTableElement.ts +8 -1
- package/src/nodes/html-table-row-element/HTMLTableRowElement.ts +1 -1
- package/src/nodes/html-template-element/HTMLTemplateElement.ts +23 -17
- package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +1 -4
- package/src/nodes/node/Node.ts +57 -70
- package/src/nodes/node/NodeList.ts +1 -1
- package/src/nodes/node/NodeUtility.ts +4 -3
- package/src/nodes/parent-node/ParentNodeUtility.ts +6 -6
- package/src/nodes/shadow-root/ShadowRoot.ts +8 -8
- package/src/nodes/xml-document/XMLDocument.ts +5 -1
- package/src/query-selector/SelectorItem.ts +1 -2
- package/src/range/Range.ts +3 -3
- package/src/storage/Storage.ts +1 -1
- package/src/svg/SVGLengthList.ts +1 -1
- package/src/svg/SVGNumberList.ts +1 -1
- package/src/svg/SVGPointList.ts +1 -1
- package/src/svg/SVGStringList.ts +1 -1
- package/src/svg/SVGTransformList.ts +1 -1
- package/src/tree-walker/NodeIterator.ts +44 -8
- package/src/tree-walker/TreeWalker.ts +6 -6
- package/src/utilities/XMLEncodeUtility.ts +127 -0
- package/src/window/BrowserWindow.ts +7 -5
- package/src/window/WindowErrorUtility.ts +1 -1
- package/src/xml-http-request/XMLHttpRequest.ts +3 -1
- package/src/xml-http-request/XMLHttpRequestResponseDataParser.ts +1 -1
- package/src/xml-parser/XMLParser.ts +627 -313
- package/src/xml-serializer/XMLSerializer.ts +204 -58
- package/cjs/ClassMethodBinder.cjs.map +0 -1
- package/cjs/ClassMethodBinder.d.ts.map +0 -1
- package/cjs/StringUtility.cjs.map +0 -1
- package/cjs/StringUtility.d.ts.map +0 -1
- package/lib/ClassMethodBinder.d.ts.map +0 -1
- package/lib/ClassMethodBinder.js.map +0 -1
- package/lib/StringUtility.d.ts.map +0 -1
- package/lib/StringUtility.js.map +0 -1
- /package/cjs/{ClassMethodBinder.cjs → utilities/ClassMethodBinder.cjs} +0 -0
- /package/cjs/{ClassMethodBinder.d.ts → utilities/ClassMethodBinder.d.ts} +0 -0
- /package/cjs/{StringUtility.cjs → utilities/StringUtility.cjs} +0 -0
- /package/cjs/{StringUtility.d.ts → utilities/StringUtility.d.ts} +0 -0
- /package/lib/{ClassMethodBinder.d.ts → utilities/ClassMethodBinder.d.ts} +0 -0
- /package/lib/{ClassMethodBinder.js → utilities/ClassMethodBinder.js} +0 -0
- /package/lib/{StringUtility.d.ts → utilities/StringUtility.d.ts} +0 -0
- /package/lib/{StringUtility.js → utilities/StringUtility.js} +0 -0
- /package/src/{ClassMethodBinder.ts → utilities/ClassMethodBinder.ts} +0 -0
- /package/src/{StringUtility.ts → utilities/StringUtility.ts} +0 -0
@@ -4,8 +4,6 @@ import ShadowRoot from '../shadow-root/ShadowRoot.js';
|
|
4
4
|
import DOMRect from '../../dom/DOMRect.js';
|
5
5
|
import DOMTokenList from '../../dom/DOMTokenList.js';
|
6
6
|
import QuerySelector from '../../query-selector/QuerySelector.js';
|
7
|
-
import XMLParser from '../../xml-parser/XMLParser.js';
|
8
|
-
import XMLSerializer from '../../xml-serializer/XMLSerializer.js';
|
9
7
|
import ChildNodeUtility from '../child-node/ChildNodeUtility.js';
|
10
8
|
import ParentNodeUtility from '../parent-node/ParentNodeUtility.js';
|
11
9
|
import NonDocumentChildNodeUtility from '../child-node/NonDocumentChildNodeUtility.js';
|
@@ -16,7 +14,6 @@ import Attr from '../attr/Attr.js';
|
|
16
14
|
import NamedNodeMap from './NamedNodeMap.js';
|
17
15
|
import Event from '../../event/Event.js';
|
18
16
|
import EventPhaseEnum from '../../event/EventPhaseEnum.js';
|
19
|
-
import DocumentFragment from '../document-fragment/DocumentFragment.js';
|
20
17
|
import WindowErrorUtility from '../../window/WindowErrorUtility.js';
|
21
18
|
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
22
19
|
import BrowserErrorCaptureEnum from '../../browser/enums/BrowserErrorCaptureEnum.js';
|
@@ -33,6 +30,8 @@ import NodeList from '../node/NodeList.js';
|
|
33
30
|
import CSSStyleDeclaration from '../../css/declaration/CSSStyleDeclaration.js';
|
34
31
|
import NamedNodeMapProxyFactory from './NamedNodeMapProxyFactory.js';
|
35
32
|
import NodeFactory from '../NodeFactory.js';
|
33
|
+
import HTMLSerializer from '../../html-serializer/HTMLSerializer.js';
|
34
|
+
import HTMLParser from '../../html-parser/HTMLParser.js';
|
36
35
|
|
37
36
|
type InsertAdjacentPosition = 'beforebegin' | 'afterbegin' | 'beforeend' | 'afterend';
|
38
37
|
|
@@ -43,13 +42,9 @@ export default class Element
|
|
43
42
|
extends Node
|
44
43
|
implements IChildNode, INonDocumentTypeChildNode, IParentNode
|
45
44
|
{
|
46
|
-
// ObservedAttributes should only be called once by CustomElementRegistry (see #117)
|
47
|
-
// CustomElementRegistry will therefore populate "[PropertySymbol.observedAttributes]" when CustomElementRegistry.define() is called
|
48
|
-
public static [PropertySymbol.observedAttributes]: string[];
|
49
45
|
public static [PropertySymbol.tagName]: string | null = null;
|
50
46
|
public static [PropertySymbol.localName]: string | null = null;
|
51
47
|
public static [PropertySymbol.namespaceURI]: string | null = null;
|
52
|
-
public static observedAttributes: string[];
|
53
48
|
public declare cloneNode: (deep?: boolean) => Element;
|
54
49
|
|
55
50
|
// Events
|
@@ -407,7 +402,7 @@ export default class Element
|
|
407
402
|
this.removeChild(childNodes[0]);
|
408
403
|
}
|
409
404
|
|
410
|
-
|
405
|
+
new HTMLParser(this[PropertySymbol.window]).parse(html, this);
|
411
406
|
}
|
412
407
|
|
413
408
|
/**
|
@@ -416,7 +411,7 @@ export default class Element
|
|
416
411
|
* @returns HTML.
|
417
412
|
*/
|
418
413
|
public get outerHTML(): string {
|
419
|
-
return new
|
414
|
+
return new HTMLSerializer().serializeToString(this);
|
420
415
|
}
|
421
416
|
|
422
417
|
/**
|
@@ -425,9 +420,9 @@ export default class Element
|
|
425
420
|
* @param html HTML.
|
426
421
|
*/
|
427
422
|
public set outerHTML(html: string) {
|
428
|
-
const childNodes = (
|
429
|
-
|
430
|
-
|
423
|
+
const childNodes = new HTMLParser(this[PropertySymbol.window]).parse(html)[
|
424
|
+
PropertySymbol.nodeArray
|
425
|
+
];
|
431
426
|
this.replaceWith(...childNodes);
|
432
427
|
}
|
433
428
|
|
@@ -477,15 +472,6 @@ export default class Element
|
|
477
472
|
this.setAttribute('slot', title);
|
478
473
|
}
|
479
474
|
|
480
|
-
/**
|
481
|
-
* Attribute changed callback.
|
482
|
-
*
|
483
|
-
* @param name Name.
|
484
|
-
* @param oldValue Old value.
|
485
|
-
* @param newValue New value.
|
486
|
-
*/
|
487
|
-
public attributeChangedCallback?(name: string, oldValue: string, newValue: string): void;
|
488
|
-
|
489
475
|
/**
|
490
476
|
* Returns inner HTML and optionally the content of shadow roots.
|
491
477
|
*
|
@@ -495,19 +481,17 @@ export default class Element
|
|
495
481
|
* @returns HTML.
|
496
482
|
*/
|
497
483
|
public getInnerHTML(options?: { includeShadowRoots?: boolean }): string {
|
498
|
-
const
|
499
|
-
|
500
|
-
|
501
|
-
xmlSerializer[PropertySymbol.options].allShadowRoots = true;
|
502
|
-
}
|
484
|
+
const serializer = new HTMLSerializer({
|
485
|
+
allShadowRoots: !!options?.includeShadowRoots
|
486
|
+
});
|
503
487
|
|
504
|
-
let
|
488
|
+
let html = '';
|
505
489
|
|
506
490
|
for (const node of this[PropertySymbol.nodeArray]) {
|
507
|
-
|
491
|
+
html += serializer.serializeToString(node);
|
508
492
|
}
|
509
493
|
|
510
|
-
return
|
494
|
+
return html;
|
511
495
|
}
|
512
496
|
|
513
497
|
/**
|
@@ -522,25 +506,18 @@ export default class Element
|
|
522
506
|
serializableShadowRoots?: boolean;
|
523
507
|
shadowRoots?: ShadowRoot[];
|
524
508
|
}): string {
|
525
|
-
const
|
509
|
+
const serializer = new HTMLSerializer({
|
510
|
+
serializableShadowRoots: !!options?.serializableShadowRoots,
|
511
|
+
shadowRoots: options?.shadowRoots ?? null
|
512
|
+
});
|
526
513
|
|
527
|
-
|
528
|
-
if (options.serializableShadowRoots) {
|
529
|
-
xmlSerializer[PropertySymbol.options].serializableShadowRoots =
|
530
|
-
options.serializableShadowRoots;
|
531
|
-
}
|
532
|
-
if (options.shadowRoots) {
|
533
|
-
xmlSerializer[PropertySymbol.options].shadowRoots = options.shadowRoots;
|
534
|
-
}
|
535
|
-
}
|
536
|
-
|
537
|
-
let xml = '';
|
514
|
+
let html = '';
|
538
515
|
|
539
516
|
for (const node of this[PropertySymbol.nodeArray]) {
|
540
|
-
|
517
|
+
html += serializer.serializeToString(node);
|
541
518
|
}
|
542
519
|
|
543
|
-
return
|
520
|
+
return html;
|
544
521
|
}
|
545
522
|
|
546
523
|
/**
|
@@ -662,9 +639,9 @@ export default class Element
|
|
662
639
|
* @param text HTML string to insert.
|
663
640
|
*/
|
664
641
|
public insertAdjacentHTML(position: InsertAdjacentPosition, text: string): void {
|
665
|
-
const childNodes = (
|
666
|
-
|
667
|
-
|
642
|
+
const childNodes = new HTMLParser(this[PropertySymbol.window]).parse(text)[
|
643
|
+
PropertySymbol.nodeArray
|
644
|
+
];
|
668
645
|
while (childNodes.length) {
|
669
646
|
this.insertAdjacentElement(position, childNodes[0]);
|
670
647
|
}
|
@@ -694,9 +671,10 @@ export default class Element
|
|
694
671
|
const namespaceURI = this[PropertySymbol.namespaceURI];
|
695
672
|
// TODO: Is it correct to check for namespaceURI === NamespaceURI.svg?
|
696
673
|
const attribute =
|
697
|
-
namespaceURI === NamespaceURI.
|
698
|
-
|
699
|
-
|
674
|
+
namespaceURI === NamespaceURI.html &&
|
675
|
+
this[PropertySymbol.ownerDocument][PropertySymbol.contentType] === 'text/html'
|
676
|
+
? this[PropertySymbol.ownerDocument].createAttribute(name)
|
677
|
+
: this[PropertySymbol.ownerDocument].createAttributeNS(null, name);
|
700
678
|
attribute[PropertySymbol.value] = String(value);
|
701
679
|
this[PropertySymbol.attributes].setNamedItem(attribute);
|
702
680
|
}
|
@@ -721,7 +699,7 @@ export default class Element
|
|
721
699
|
*/
|
722
700
|
public getAttributeNames(): string[] {
|
723
701
|
const names = [];
|
724
|
-
for (const item of this[PropertySymbol.attributes][PropertySymbol.
|
702
|
+
for (const item of this[PropertySymbol.attributes][PropertySymbol.namespaceItems].values()) {
|
725
703
|
names.push(item[PropertySymbol.name]);
|
726
704
|
}
|
727
705
|
return names;
|
@@ -1282,8 +1260,8 @@ export default class Element
|
|
1282
1260
|
/**
|
1283
1261
|
* @override
|
1284
1262
|
*/
|
1285
|
-
public override [PropertySymbol.appendChild](node: Node,
|
1286
|
-
const returnValue = super[PropertySymbol.appendChild](node,
|
1263
|
+
public override [PropertySymbol.appendChild](node: Node, disableValidations = false): Node {
|
1264
|
+
const returnValue = super[PropertySymbol.appendChild](node, disableValidations);
|
1287
1265
|
this.#onSlotChange(node);
|
1288
1266
|
return returnValue;
|
1289
1267
|
}
|
@@ -1300,8 +1278,16 @@ export default class Element
|
|
1300
1278
|
/**
|
1301
1279
|
* @override
|
1302
1280
|
*/
|
1303
|
-
public override [PropertySymbol.insertBefore](
|
1304
|
-
|
1281
|
+
public override [PropertySymbol.insertBefore](
|
1282
|
+
newNode: Node,
|
1283
|
+
referenceNode: Node | null,
|
1284
|
+
disableValidations = false
|
1285
|
+
): Node {
|
1286
|
+
const returnValue = super[PropertySymbol.insertBefore](
|
1287
|
+
newNode,
|
1288
|
+
referenceNode,
|
1289
|
+
disableValidations
|
1290
|
+
);
|
1305
1291
|
this.#onSlotChange(newNode);
|
1306
1292
|
return returnValue;
|
1307
1293
|
}
|
@@ -1357,20 +1343,6 @@ export default class Element
|
|
1357
1343
|
this.#addIdentifierToWindow(attribute[PropertySymbol.value]);
|
1358
1344
|
}
|
1359
1345
|
|
1360
|
-
if (
|
1361
|
-
this.attributeChangedCallback &&
|
1362
|
-
(<typeof Element>this.constructor)[PropertySymbol.observedAttributes] &&
|
1363
|
-
(<typeof Element>this.constructor)[PropertySymbol.observedAttributes].includes(
|
1364
|
-
attribute[PropertySymbol.name].toLowerCase()
|
1365
|
-
)
|
1366
|
-
) {
|
1367
|
-
this.attributeChangedCallback(
|
1368
|
-
attribute[PropertySymbol.name],
|
1369
|
-
oldValue,
|
1370
|
-
attribute[PropertySymbol.value]
|
1371
|
-
);
|
1372
|
-
}
|
1373
|
-
|
1374
1346
|
this[PropertySymbol.reportMutation](
|
1375
1347
|
new MutationRecord({
|
1376
1348
|
target: this,
|
@@ -1409,20 +1381,6 @@ export default class Element
|
|
1409
1381
|
this.#removeIdentifierFromWindow(removedAttribute[PropertySymbol.value]);
|
1410
1382
|
}
|
1411
1383
|
|
1412
|
-
if (
|
1413
|
-
this.attributeChangedCallback &&
|
1414
|
-
(<typeof Element>this.constructor)[PropertySymbol.observedAttributes] &&
|
1415
|
-
(<typeof Element>this.constructor)[PropertySymbol.observedAttributes].includes(
|
1416
|
-
removedAttribute[PropertySymbol.name].toLowerCase()
|
1417
|
-
)
|
1418
|
-
) {
|
1419
|
-
this.attributeChangedCallback(
|
1420
|
-
removedAttribute[PropertySymbol.name],
|
1421
|
-
removedAttribute[PropertySymbol.value],
|
1422
|
-
null
|
1423
|
-
);
|
1424
|
-
}
|
1425
|
-
|
1426
1384
|
this[PropertySymbol.reportMutation](
|
1427
1385
|
new MutationRecord({
|
1428
1386
|
type: MutationTypeEnum.attributes,
|
@@ -1437,13 +1395,12 @@ export default class Element
|
|
1437
1395
|
* @override
|
1438
1396
|
*/
|
1439
1397
|
public override [PropertySymbol.connectedToDocument](): void {
|
1440
|
-
|
1441
|
-
|
1442
|
-
const id =
|
1443
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[PropertySymbol.value];
|
1398
|
+
const id = this.getAttribute('id');
|
1444
1399
|
if (id) {
|
1445
1400
|
this.#addIdentifierToWindow(id);
|
1446
1401
|
}
|
1402
|
+
|
1403
|
+
super[PropertySymbol.connectedToDocument]();
|
1447
1404
|
}
|
1448
1405
|
|
1449
1406
|
/**
|
@@ -1452,12 +1409,9 @@ export default class Element
|
|
1452
1409
|
public override [PropertySymbol.disconnectedFromDocument](): void {
|
1453
1410
|
super[PropertySymbol.disconnectedFromDocument]();
|
1454
1411
|
|
1455
|
-
const id =
|
1456
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[PropertySymbol.value];
|
1412
|
+
const id = this.getAttribute('id');
|
1457
1413
|
if (id) {
|
1458
|
-
this.#removeIdentifierFromWindow(
|
1459
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[PropertySymbol.value]
|
1460
|
-
);
|
1414
|
+
this.#removeIdentifierFromWindow(id);
|
1461
1415
|
}
|
1462
1416
|
}
|
1463
1417
|
|
@@ -1565,10 +1519,9 @@ export default class Element
|
|
1565
1519
|
return;
|
1566
1520
|
}
|
1567
1521
|
|
1568
|
-
const slotName =
|
1569
|
-
addedOrRemovedNode
|
1570
|
-
|
1571
|
-
];
|
1522
|
+
const slotName = addedOrRemovedNode['getAttribute']
|
1523
|
+
? (<Element>addedOrRemovedNode).getAttribute('slot')
|
1524
|
+
: null;
|
1572
1525
|
if (slotName) {
|
1573
1526
|
const slot = shadowRoot.querySelector(`slot[name="${slotName}"]`);
|
1574
1527
|
if (slot) {
|
@@ -1,4 +1,4 @@
|
|
1
|
-
import ClassMethodBinder from '../../ClassMethodBinder.js';
|
1
|
+
import ClassMethodBinder from '../../utilities/ClassMethodBinder.js';
|
2
2
|
import * as PropertySymbol from '../../PropertySymbol.js';
|
3
3
|
import Element from './Element.js';
|
4
4
|
|
@@ -75,13 +75,7 @@ export default class HTMLCollection<T extends Element, NamedItem = T> {
|
|
75
75
|
const items = query();
|
76
76
|
for (let i = 0; i < items.length; i++) {
|
77
77
|
const item = items[i];
|
78
|
-
const name =
|
79
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
80
|
-
PropertySymbol.value
|
81
|
-
] ||
|
82
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('name')?.[
|
83
|
-
PropertySymbol.value
|
84
|
-
];
|
78
|
+
const name = item.getAttribute('id') || item.getAttribute('name');
|
85
79
|
keys.push(String(i));
|
86
80
|
|
87
81
|
if (name) {
|
@@ -106,13 +100,7 @@ export default class HTMLCollection<T extends Element, NamedItem = T> {
|
|
106
100
|
|
107
101
|
for (let i = 0; i < items.length; i++) {
|
108
102
|
const item = items[i];
|
109
|
-
const name =
|
110
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
111
|
-
PropertySymbol.value
|
112
|
-
] ||
|
113
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('name')?.[
|
114
|
-
PropertySymbol.value
|
115
|
-
];
|
103
|
+
const name = item.getAttribute('id') || item.getAttribute('name');
|
116
104
|
|
117
105
|
if (name && name === property) {
|
118
106
|
return true;
|
@@ -150,13 +138,7 @@ export default class HTMLCollection<T extends Element, NamedItem = T> {
|
|
150
138
|
|
151
139
|
for (let i = 0; i < items.length; i++) {
|
152
140
|
const item = items[i];
|
153
|
-
const name =
|
154
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
155
|
-
PropertySymbol.value
|
156
|
-
] ||
|
157
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('name')?.[
|
158
|
-
PropertySymbol.value
|
159
|
-
];
|
141
|
+
const name = item.getAttribute('id') || item.getAttribute('name');
|
160
142
|
|
161
143
|
if (name && name === property) {
|
162
144
|
return {
|
@@ -237,14 +219,7 @@ export default class HTMLCollection<T extends Element, NamedItem = T> {
|
|
237
219
|
const items = this[PropertySymbol.query]();
|
238
220
|
name = String(name);
|
239
221
|
for (const item of items) {
|
240
|
-
if (
|
241
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
242
|
-
PropertySymbol.value
|
243
|
-
] === name ||
|
244
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('name')?.[
|
245
|
-
PropertySymbol.value
|
246
|
-
] === name
|
247
|
-
) {
|
222
|
+
if (item.getAttribute('id') === name || item.getAttribute('name') === name) {
|
248
223
|
return <NamedItem>(<unknown>item);
|
249
224
|
}
|
250
225
|
}
|
@@ -4,6 +4,7 @@ import DOMException from '../../exception/DOMException.js';
|
|
4
4
|
import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
|
5
5
|
import Element from './Element.js';
|
6
6
|
import NamespaceURI from '../../config/NamespaceURI.js';
|
7
|
+
import StringUtility from '../../utilities/StringUtility.js';
|
7
8
|
|
8
9
|
/**
|
9
10
|
* Named Node Map.
|
@@ -17,7 +18,7 @@ export default class NamedNodeMap {
|
|
17
18
|
public [PropertySymbol.namespaceItems]: Map<string, Attr> = new Map();
|
18
19
|
|
19
20
|
// Items without namespaceURI as prefix, where the HTML namespace is the default namespace
|
20
|
-
public [PropertySymbol.namedItems]: Map<string, Attr> = new Map();
|
21
|
+
public [PropertySymbol.namedItems]: Map<string, Attr[]> = new Map();
|
21
22
|
|
22
23
|
public declare [PropertySymbol.ownerElement]: Element;
|
23
24
|
|
@@ -83,14 +84,15 @@ export default class NamedNodeMap {
|
|
83
84
|
* @returns Item.
|
84
85
|
*/
|
85
86
|
public getNamedItem(name: string): Attr | null {
|
86
|
-
|
87
|
-
this[PropertySymbol.
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
) || null
|
93
|
-
|
87
|
+
if (
|
88
|
+
this[PropertySymbol.ownerElement][PropertySymbol.namespaceURI] === NamespaceURI.html &&
|
89
|
+
this[PropertySymbol.ownerElement][PropertySymbol.ownerDocument][
|
90
|
+
PropertySymbol.contentType
|
91
|
+
] === 'text/html'
|
92
|
+
) {
|
93
|
+
return this[PropertySymbol.namedItems].get(StringUtility.asciiLowerCase(name))?.[0] || null;
|
94
|
+
}
|
95
|
+
return this[PropertySymbol.namedItems].get(name)?.[0] || null;
|
94
96
|
}
|
95
97
|
|
96
98
|
/**
|
@@ -101,15 +103,11 @@ export default class NamedNodeMap {
|
|
101
103
|
* @returns Item.
|
102
104
|
*/
|
103
105
|
public getNamedItemNS(namespace: string, localName: string): Attr | null {
|
104
|
-
|
105
|
-
|
106
|
-
item[PropertySymbol.namespaceURI] === namespace &&
|
107
|
-
item[PropertySymbol.localName] === localName
|
108
|
-
) {
|
109
|
-
return item;
|
110
|
-
}
|
106
|
+
if (namespace === '') {
|
107
|
+
namespace = null;
|
111
108
|
}
|
112
|
-
|
109
|
+
|
110
|
+
return this[PropertySymbol.namespaceItems].get(`${namespace || ''}:${localName}`) || null;
|
113
111
|
}
|
114
112
|
|
115
113
|
/**
|
@@ -185,32 +183,41 @@ export default class NamedNodeMap {
|
|
185
183
|
* @returns Replaced item.
|
186
184
|
*/
|
187
185
|
public [PropertySymbol.setNamedItem](item: Attr, ignoreListeners = false): Attr {
|
188
|
-
if (
|
189
|
-
|
186
|
+
if (
|
187
|
+
item[PropertySymbol.ownerElement] !== null &&
|
188
|
+
item[PropertySymbol.ownerElement] !== this[PropertySymbol.ownerElement]
|
189
|
+
) {
|
190
|
+
throw new this[PropertySymbol.ownerElement][PropertySymbol.window].DOMException(
|
191
|
+
'The attribute is in use.',
|
192
|
+
DOMExceptionNameEnum.inUseAttributeError
|
193
|
+
);
|
190
194
|
}
|
191
195
|
|
192
196
|
item[PropertySymbol.ownerElement] = this[PropertySymbol.ownerElement];
|
193
197
|
|
194
|
-
const
|
195
|
-
|
196
|
-
|
197
|
-
this[PropertySymbol.namedItems].get(item[PropertySymbol.name]) || null;
|
198
|
+
const replacedItem =
|
199
|
+
this.getNamedItemNS(item[PropertySymbol.namespaceURI], item[PropertySymbol.localName]) ||
|
200
|
+
null;
|
198
201
|
|
199
|
-
this[PropertySymbol.
|
202
|
+
const namedItems = this[PropertySymbol.namedItems].get(item[PropertySymbol.name]);
|
200
203
|
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
205
|
-
|
206
|
-
|
207
|
-
|
208
|
-
|
209
|
-
|
210
|
-
|
211
|
-
|
212
|
-
|
213
|
-
|
204
|
+
if (replacedItem === item) {
|
205
|
+
return item;
|
206
|
+
}
|
207
|
+
|
208
|
+
this[PropertySymbol.namespaceItems].set(
|
209
|
+
`${item[PropertySymbol.namespaceURI] || ''}:${item[PropertySymbol.localName]}`,
|
210
|
+
item
|
211
|
+
);
|
212
|
+
|
213
|
+
if (!namedItems?.length) {
|
214
|
+
this[PropertySymbol.namedItems].set(item[PropertySymbol.name], [item]);
|
215
|
+
} else {
|
216
|
+
const index = namedItems.indexOf(replacedItem);
|
217
|
+
if (index !== -1) {
|
218
|
+
namedItems.splice(index, 1);
|
219
|
+
}
|
220
|
+
namedItems.push(item);
|
214
221
|
}
|
215
222
|
|
216
223
|
if (!ignoreListeners) {
|
@@ -228,46 +235,25 @@ export default class NamedNodeMap {
|
|
228
235
|
*/
|
229
236
|
public [PropertySymbol.removeNamedItem](item: Attr, ignoreListeners = false): void {
|
230
237
|
item[PropertySymbol.ownerElement] = null;
|
231
|
-
|
232
|
-
this[PropertySymbol.
|
233
|
-
|
234
|
-
this[PropertySymbol.ownerElement][PropertySymbol.namespaceURI],
|
235
|
-
item[PropertySymbol.name]
|
236
|
-
)
|
238
|
+
|
239
|
+
this[PropertySymbol.namespaceItems].delete(
|
240
|
+
`${item[PropertySymbol.namespaceURI] || ''}:${item[PropertySymbol.localName]}`
|
237
241
|
);
|
238
242
|
|
239
|
-
|
240
|
-
this[PropertySymbol.ownerElement][PropertySymbol.onRemoveAttribute](item);
|
241
|
-
}
|
242
|
-
}
|
243
|
+
const namedItems = this[PropertySymbol.namedItems].get(item[PropertySymbol.name]);
|
243
244
|
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
if (!namespaceURI || namespaceURI === NamespaceURI.html) {
|
253
|
-
return name.toLowerCase();
|
245
|
+
if (namedItems?.length) {
|
246
|
+
const index = namedItems.indexOf(item);
|
247
|
+
if (index !== -1) {
|
248
|
+
namedItems.splice(index, 1);
|
249
|
+
}
|
250
|
+
if (!namedItems.length) {
|
251
|
+
this[PropertySymbol.namedItems].delete(item[PropertySymbol.name]);
|
252
|
+
}
|
254
253
|
}
|
255
|
-
return name;
|
256
|
-
}
|
257
254
|
|
258
|
-
|
259
|
-
|
260
|
-
*
|
261
|
-
* @param item Item.
|
262
|
-
* @returns Key.
|
263
|
-
*/
|
264
|
-
private [PropertySymbol.getNamespaceItemKey](item: Attr): string {
|
265
|
-
if (
|
266
|
-
!item[PropertySymbol.namespaceURI] ||
|
267
|
-
item[PropertySymbol.namespaceURI] === NamespaceURI.html
|
268
|
-
) {
|
269
|
-
return item[PropertySymbol.name].toLowerCase();
|
255
|
+
if (!ignoreListeners) {
|
256
|
+
this[PropertySymbol.ownerElement][PropertySymbol.onRemoveAttribute](item);
|
270
257
|
}
|
271
|
-
return `${item[PropertySymbol.namespaceURI] || ''}:${item[PropertySymbol.name]}`;
|
272
258
|
}
|
273
259
|
}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
/* eslint-disable filenames/match-exported */
|
2
2
|
|
3
|
-
import ClassMethodBinder from '../../ClassMethodBinder.js';
|
3
|
+
import ClassMethodBinder from '../../utilities/ClassMethodBinder.js';
|
4
4
|
import * as PropertySymbol from '../../PropertySymbol.js';
|
5
5
|
import NamedNodeMap from './NamedNodeMap.js';
|
6
6
|
|
@@ -16,15 +16,12 @@ export default class NamedNodeMapProxyFactory {
|
|
16
16
|
* @param namedNodeMap
|
17
17
|
*/
|
18
18
|
public static createProxy(namedNodeMap: NamedNodeMap): NamedNodeMap {
|
19
|
-
const namedItems = namedNodeMap[PropertySymbol.namedItems];
|
20
|
-
const namespaceItems = namedNodeMap[PropertySymbol.namespaceItems];
|
21
|
-
|
22
19
|
const methodBinder = new ClassMethodBinder(this, [NamedNodeMap]);
|
23
20
|
|
24
21
|
return new Proxy<NamedNodeMap>(namedNodeMap, {
|
25
22
|
get: (target, property) => {
|
26
23
|
if (property === 'length') {
|
27
|
-
return
|
24
|
+
return namedNodeMap[PropertySymbol.namedItems].size;
|
28
25
|
}
|
29
26
|
if (property in target || typeof property === 'symbol') {
|
30
27
|
methodBinder.bind(property);
|
@@ -32,7 +29,7 @@ export default class NamedNodeMapProxyFactory {
|
|
32
29
|
}
|
33
30
|
const index = Number(property);
|
34
31
|
if (!isNaN(index)) {
|
35
|
-
return Array.from(
|
32
|
+
return Array.from(namedNodeMap[PropertySymbol.namedItems].values())[index]?.[0];
|
36
33
|
}
|
37
34
|
return target.getNamedItem(<string>property) || undefined;
|
38
35
|
},
|
@@ -60,8 +57,8 @@ export default class NamedNodeMapProxyFactory {
|
|
60
57
|
return true;
|
61
58
|
},
|
62
59
|
ownKeys(): string[] {
|
63
|
-
const keys = Array.from(namedItems.keys());
|
64
|
-
for (let i = 0, max =
|
60
|
+
const keys = Array.from(namedNodeMap[PropertySymbol.namedItems].keys());
|
61
|
+
for (let i = 0, max = namedNodeMap[PropertySymbol.namedItems].size; i < max; i++) {
|
65
62
|
keys.push(String(i));
|
66
63
|
}
|
67
64
|
return keys;
|
@@ -71,13 +68,13 @@ export default class NamedNodeMapProxyFactory {
|
|
71
68
|
return false;
|
72
69
|
}
|
73
70
|
|
74
|
-
if (property in target || namedItems.has(property)) {
|
71
|
+
if (property in target || namedNodeMap[PropertySymbol.namedItems].has(property)) {
|
75
72
|
return true;
|
76
73
|
}
|
77
74
|
|
78
75
|
const index = Number(property);
|
79
76
|
|
80
|
-
if (!isNaN(index) && index >= 0 && index <
|
77
|
+
if (!isNaN(index) && index >= 0 && index < namedNodeMap[PropertySymbol.namedItems].size) {
|
81
78
|
return true;
|
82
79
|
}
|
83
80
|
|
@@ -100,20 +97,20 @@ export default class NamedNodeMapProxyFactory {
|
|
100
97
|
|
101
98
|
const index = Number(property);
|
102
99
|
|
103
|
-
if (!isNaN(index) && index >= 0 && index <
|
100
|
+
if (!isNaN(index) && index >= 0 && index < namedNodeMap[PropertySymbol.namedItems].size) {
|
104
101
|
return {
|
105
|
-
value: Array.from(
|
102
|
+
value: Array.from(namedNodeMap[PropertySymbol.namedItems].values())[index][0],
|
106
103
|
writable: false,
|
107
104
|
enumerable: true,
|
108
105
|
configurable: true
|
109
106
|
};
|
110
107
|
}
|
111
108
|
|
112
|
-
const
|
109
|
+
const namedItems = namedNodeMap[PropertySymbol.namedItems].get(<string>property);
|
113
110
|
|
114
|
-
if (
|
111
|
+
if (namedItems) {
|
115
112
|
return {
|
116
|
-
value:
|
113
|
+
value: namedItems[0],
|
117
114
|
writable: false,
|
118
115
|
enumerable: true,
|
119
116
|
configurable: true
|
@@ -236,10 +236,7 @@ export default class HTMLButtonElement extends HTMLElement {
|
|
236
236
|
if (this[PropertySymbol.formNode]) {
|
237
237
|
return this[PropertySymbol.formNode];
|
238
238
|
}
|
239
|
-
const id =
|
240
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[
|
241
|
-
PropertySymbol.value
|
242
|
-
];
|
239
|
+
const id = this.getAttribute('form');
|
243
240
|
if (!id || !this[PropertySymbol.isConnected]) {
|
244
241
|
return null;
|
245
242
|
}
|