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
@@ -1,5 +1,7 @@
|
|
1
1
|
import Document from '../document/Document.js';
|
2
2
|
import * as PropertySymbol from '../../PropertySymbol.js';
|
3
|
+
import Node from '../node/Node.js';
|
4
|
+
import NodeTypeEnum from '../node/NodeTypeEnum.js';
|
3
5
|
|
4
6
|
/**
|
5
7
|
* Document.
|
@@ -12,15 +14,69 @@ export default class HTMLDocument extends Document {
|
|
12
14
|
super();
|
13
15
|
|
14
16
|
// Default document elements
|
15
|
-
const doctype = this[PropertySymbol.implementation].createDocumentType('html', '', '');
|
16
17
|
const documentElement = this.createElement('html');
|
17
18
|
const bodyElement = this.createElement('body');
|
18
19
|
const headElement = this.createElement('head');
|
19
20
|
|
20
|
-
this.appendChild(doctype);
|
21
21
|
this.appendChild(documentElement);
|
22
22
|
|
23
23
|
documentElement.appendChild(headElement);
|
24
24
|
documentElement.appendChild(bodyElement);
|
25
25
|
}
|
26
|
+
|
27
|
+
/**
|
28
|
+
* @override
|
29
|
+
*/
|
30
|
+
public override [PropertySymbol.appendChild](node: Node, disableValidations = false): Node {
|
31
|
+
if (node[PropertySymbol.nodeType] === NodeTypeEnum.textNode) {
|
32
|
+
throw new this[PropertySymbol.window].Error(
|
33
|
+
`Failed to execute 'appendChild' on 'Node': Nodes of type '#text' may not be inserted inside nodes of type '#document'.`
|
34
|
+
);
|
35
|
+
}
|
36
|
+
|
37
|
+
if (node[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode) {
|
38
|
+
return;
|
39
|
+
}
|
40
|
+
|
41
|
+
if (
|
42
|
+
node[PropertySymbol.nodeType] === NodeTypeEnum.elementNode &&
|
43
|
+
this[PropertySymbol.elementArray].length !== 0
|
44
|
+
) {
|
45
|
+
throw new this[PropertySymbol.window].Error(
|
46
|
+
`Failed to execute 'appendChild' on 'Node': Only one element on document allowed.`
|
47
|
+
);
|
48
|
+
}
|
49
|
+
|
50
|
+
return super[PropertySymbol.appendChild](node, disableValidations);
|
51
|
+
}
|
52
|
+
|
53
|
+
/**
|
54
|
+
* @override
|
55
|
+
*/
|
56
|
+
public override [PropertySymbol.insertBefore](
|
57
|
+
newNode: Node,
|
58
|
+
referenceNode: Node | null,
|
59
|
+
disableValidations = false
|
60
|
+
): Node {
|
61
|
+
if (newNode[PropertySymbol.nodeType] === NodeTypeEnum.textNode) {
|
62
|
+
throw new this[PropertySymbol.window].Error(
|
63
|
+
`Failed to execute 'insertBefore' on 'Node': Nodes of type '#text' may not be inserted inside nodes of type '#document'.`
|
64
|
+
);
|
65
|
+
}
|
66
|
+
|
67
|
+
if (newNode[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode) {
|
68
|
+
return;
|
69
|
+
}
|
70
|
+
|
71
|
+
if (
|
72
|
+
newNode[PropertySymbol.nodeType] === NodeTypeEnum.elementNode &&
|
73
|
+
this[PropertySymbol.elementArray].length !== 0
|
74
|
+
) {
|
75
|
+
throw new this[PropertySymbol.window].Error(
|
76
|
+
`Failed to execute 'insertBefore' on 'Node': Only one element on document allowed.`
|
77
|
+
);
|
78
|
+
}
|
79
|
+
|
80
|
+
return super[PropertySymbol.insertBefore](newNode, referenceNode, disableValidations);
|
81
|
+
}
|
26
82
|
}
|
@@ -6,7 +6,7 @@ import NodeTypeEnum from '../node/NodeTypeEnum.js';
|
|
6
6
|
import Event from '../../event/Event.js';
|
7
7
|
import HTMLElementUtility from './HTMLElementUtility.js';
|
8
8
|
import DOMStringMap from '../../dom/DOMStringMap.js';
|
9
|
-
import
|
9
|
+
import Attr from '../attr/Attr.js';
|
10
10
|
|
11
11
|
/**
|
12
12
|
* HTML Element.
|
@@ -17,6 +17,7 @@ import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
|
17
17
|
export default class HTMLElement extends Element {
|
18
18
|
// Public properties
|
19
19
|
public declare cloneNode: (deep?: boolean) => HTMLElement;
|
20
|
+
public static observedAttributes?: string[];
|
20
21
|
|
21
22
|
// Events
|
22
23
|
public oncopy: (event: Event) => void | null = null;
|
@@ -492,6 +493,25 @@ export default class HTMLElement extends Element {
|
|
492
493
|
this.setAttribute('popover', value);
|
493
494
|
}
|
494
495
|
|
496
|
+
/**
|
497
|
+
* Connected callback.
|
498
|
+
*/
|
499
|
+
public connectedCallback?(): void;
|
500
|
+
|
501
|
+
/**
|
502
|
+
* Disconnected callback.
|
503
|
+
*/
|
504
|
+
public disconnectedCallback?(): void;
|
505
|
+
|
506
|
+
/**
|
507
|
+
* Attribute changed callback.
|
508
|
+
*
|
509
|
+
* @param name Name.
|
510
|
+
* @param oldValue Old value.
|
511
|
+
* @param newValue New value.
|
512
|
+
*/
|
513
|
+
public attributeChangedCallback?(name: string, oldValue: string, newValue: string): void;
|
514
|
+
|
495
515
|
/**
|
496
516
|
* Triggers a click event.
|
497
517
|
*/
|
@@ -548,7 +568,7 @@ export default class HTMLElement extends Element {
|
|
548
568
|
const callback = this.#onCustomElementConnected.bind(this);
|
549
569
|
const callbacks = allCallbacks.get(localName);
|
550
570
|
if (callbacks) {
|
551
|
-
callbacks.
|
571
|
+
callbacks.unshift(callback);
|
552
572
|
} else {
|
553
573
|
allCallbacks.set(localName, [callback]);
|
554
574
|
}
|
@@ -587,6 +607,69 @@ export default class HTMLElement extends Element {
|
|
587
607
|
super[PropertySymbol.disconnectedFromNode]();
|
588
608
|
}
|
589
609
|
|
610
|
+
/**
|
611
|
+
* @override
|
612
|
+
*/
|
613
|
+
public override [PropertySymbol.connectedToDocument](): void {
|
614
|
+
super[PropertySymbol.connectedToDocument]();
|
615
|
+
|
616
|
+
if (
|
617
|
+
this[PropertySymbol.ownerDocument][PropertySymbol.window].document ===
|
618
|
+
this[PropertySymbol.ownerDocument]
|
619
|
+
) {
|
620
|
+
this[PropertySymbol.window][PropertySymbol.customElementReactionStack].enqueueReaction(
|
621
|
+
this,
|
622
|
+
'connectedCallback'
|
623
|
+
);
|
624
|
+
}
|
625
|
+
}
|
626
|
+
|
627
|
+
/**
|
628
|
+
* @override
|
629
|
+
*/
|
630
|
+
public override [PropertySymbol.disconnectedFromDocument](): void {
|
631
|
+
super[PropertySymbol.disconnectedFromDocument]();
|
632
|
+
|
633
|
+
if (
|
634
|
+
this[PropertySymbol.ownerDocument][PropertySymbol.window].document ===
|
635
|
+
this[PropertySymbol.ownerDocument]
|
636
|
+
) {
|
637
|
+
this[PropertySymbol.window][PropertySymbol.customElementReactionStack].enqueueReaction(
|
638
|
+
this,
|
639
|
+
'disconnectedCallback'
|
640
|
+
);
|
641
|
+
}
|
642
|
+
}
|
643
|
+
|
644
|
+
/**
|
645
|
+
* @override
|
646
|
+
*/
|
647
|
+
public override [PropertySymbol.onSetAttribute](
|
648
|
+
attribute: Attr,
|
649
|
+
replacedAttribute: Attr | null
|
650
|
+
): void {
|
651
|
+
super[PropertySymbol.onSetAttribute](attribute, replacedAttribute);
|
652
|
+
|
653
|
+
this[PropertySymbol.window][PropertySymbol.customElementReactionStack].enqueueReaction(
|
654
|
+
this,
|
655
|
+
'attributeChangedCallback',
|
656
|
+
[attribute.name, replacedAttribute?.value ?? null, attribute.value]
|
657
|
+
);
|
658
|
+
}
|
659
|
+
|
660
|
+
/**
|
661
|
+
* @override
|
662
|
+
*/
|
663
|
+
public override [PropertySymbol.onRemoveAttribute](removedAttribute: Attr): void {
|
664
|
+
super[PropertySymbol.onRemoveAttribute](removedAttribute);
|
665
|
+
|
666
|
+
this[PropertySymbol.window][PropertySymbol.customElementReactionStack].enqueueReaction(
|
667
|
+
this,
|
668
|
+
'attributeChangedCallback',
|
669
|
+
[removedAttribute.name, removedAttribute.value, null]
|
670
|
+
);
|
671
|
+
}
|
672
|
+
|
590
673
|
/**
|
591
674
|
* Triggered when a custom element is connected to the DOM.
|
592
675
|
*/
|
@@ -595,6 +678,7 @@ export default class HTMLElement extends Element {
|
|
595
678
|
return;
|
596
679
|
}
|
597
680
|
|
681
|
+
const window = this[PropertySymbol.window];
|
598
682
|
const localName = this[PropertySymbol.localName];
|
599
683
|
const newElement = <HTMLElement>this[PropertySymbol.ownerDocument].createElement(localName);
|
600
684
|
const newCache = newElement[PropertySymbol.cache];
|
@@ -604,7 +688,6 @@ export default class HTMLElement extends Element {
|
|
604
688
|
newElement[PropertySymbol.childNodes] = null;
|
605
689
|
newElement[PropertySymbol.children] = null;
|
606
690
|
newElement[PropertySymbol.isConnected] = this[PropertySymbol.isConnected];
|
607
|
-
|
608
691
|
newElement[PropertySymbol.rootNode] = this[PropertySymbol.rootNode];
|
609
692
|
newElement[PropertySymbol.formNode] = this[PropertySymbol.formNode];
|
610
693
|
newElement[PropertySymbol.parentNode] = this[PropertySymbol.parentNode];
|
@@ -619,19 +702,25 @@ export default class HTMLElement extends Element {
|
|
619
702
|
newElement[PropertySymbol.attributes][PropertySymbol.namespaceItems] =
|
620
703
|
this[PropertySymbol.attributes][PropertySymbol.namespaceItems];
|
621
704
|
|
622
|
-
for (const attr of newElement[PropertySymbol.attributes][
|
705
|
+
for (const attr of newElement[PropertySymbol.attributes][
|
706
|
+
PropertySymbol.namespaceItems
|
707
|
+
].values()) {
|
623
708
|
attr[PropertySymbol.ownerElement] = newElement;
|
624
709
|
}
|
625
710
|
|
711
|
+
this[PropertySymbol.clearCache]();
|
712
|
+
|
626
713
|
this[PropertySymbol.nodeArray] = [];
|
627
714
|
this[PropertySymbol.elementArray] = [];
|
628
715
|
this[PropertySymbol.childNodes] = null;
|
629
716
|
this[PropertySymbol.children] = null;
|
630
717
|
|
718
|
+
this[PropertySymbol.parentNode] = null;
|
631
719
|
this[PropertySymbol.rootNode] = null;
|
632
720
|
this[PropertySymbol.formNode] = null;
|
633
721
|
this[PropertySymbol.selectNode] = null;
|
634
722
|
this[PropertySymbol.textAreaNode] = null;
|
723
|
+
|
635
724
|
this[PropertySymbol.mutationListeners] = [];
|
636
725
|
this[PropertySymbol.isValue] = null;
|
637
726
|
this[PropertySymbol.cache] = newCache;
|
@@ -639,32 +728,35 @@ export default class HTMLElement extends Element {
|
|
639
728
|
this[PropertySymbol.attributes][PropertySymbol.namedItems] = new Map();
|
640
729
|
this[PropertySymbol.attributes][PropertySymbol.namespaceItems] = new Map();
|
641
730
|
|
642
|
-
const
|
643
|
-
|
731
|
+
for (const node of newElement[PropertySymbol.nodeArray]) {
|
732
|
+
node[PropertySymbol.parentNode] = newElement;
|
733
|
+
}
|
734
|
+
|
735
|
+
const parentChildNodes = newElement[PropertySymbol.parentNode][PropertySymbol.nodeArray];
|
736
|
+
const parentChildElements = newElement[PropertySymbol.parentNode][PropertySymbol.elementArray];
|
737
|
+
|
644
738
|
parentChildNodes[parentChildNodes.indexOf(this)] = newElement;
|
645
739
|
parentChildElements[parentChildElements.indexOf(this)] = newElement;
|
646
740
|
|
647
|
-
|
648
|
-
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
655
|
-
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
if (asyncTaskManager) {
|
660
|
-
const taskID = asyncTaskManager.startTask();
|
661
|
-
result
|
662
|
-
.then(() => asyncTaskManager.endTask(taskID))
|
663
|
-
.catch(() => asyncTaskManager.endTask(taskID));
|
664
|
-
}
|
741
|
+
const allCallbacks = window.customElements[PropertySymbol.callbacks];
|
742
|
+
const callbacks = allCallbacks.get(localName);
|
743
|
+
|
744
|
+
if (callbacks && this.#customElementDefineCallback) {
|
745
|
+
const index = callbacks.indexOf(this.#customElementDefineCallback);
|
746
|
+
|
747
|
+
if (index !== -1) {
|
748
|
+
callbacks.splice(index, 1);
|
749
|
+
}
|
750
|
+
|
751
|
+
if (!callbacks.length) {
|
752
|
+
allCallbacks.delete(localName);
|
665
753
|
}
|
754
|
+
|
755
|
+
this.#customElementDefineCallback = null;
|
666
756
|
}
|
667
757
|
|
668
|
-
|
758
|
+
if (newElement[PropertySymbol.isConnected]) {
|
759
|
+
newElement[PropertySymbol.connectedToDocument]();
|
760
|
+
}
|
669
761
|
}
|
670
762
|
}
|
@@ -56,10 +56,7 @@ export default class HTMLFieldSetElement extends HTMLElement {
|
|
56
56
|
if (this[PropertySymbol.formNode]) {
|
57
57
|
return this[PropertySymbol.formNode];
|
58
58
|
}
|
59
|
-
const id =
|
60
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[
|
61
|
-
PropertySymbol.value
|
62
|
-
];
|
59
|
+
const id = this.getAttribute('form');
|
63
60
|
if (!id || !this[PropertySymbol.isConnected]) {
|
64
61
|
return null;
|
65
62
|
}
|
@@ -13,7 +13,7 @@ import THTMLFormControlElement from './THTMLFormControlElement.js';
|
|
13
13
|
import QuerySelector from '../../query-selector/QuerySelector.js';
|
14
14
|
import RadioNodeList from './RadioNodeList.js';
|
15
15
|
import WindowBrowserContext from '../../window/WindowBrowserContext.js';
|
16
|
-
import ClassMethodBinder from '../../ClassMethodBinder.js';
|
16
|
+
import ClassMethodBinder from '../../utilities/ClassMethodBinder.js';
|
17
17
|
import Node from '../node/Node.js';
|
18
18
|
import Element from '../element/Element.js';
|
19
19
|
import EventTarget from '../../event/EventTarget.js';
|
@@ -112,13 +112,7 @@ export default class HTMLFormElement extends HTMLElement {
|
|
112
112
|
|
113
113
|
for (let i = 0; i < items.length; i++) {
|
114
114
|
const item = items[i];
|
115
|
-
const name =
|
116
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
117
|
-
PropertySymbol.value
|
118
|
-
] ||
|
119
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('name')?.[
|
120
|
-
PropertySymbol.value
|
121
|
-
];
|
115
|
+
const name = item.getAttribute('id') || item.getAttribute('name');
|
122
116
|
|
123
117
|
if (name && name === property) {
|
124
118
|
return true;
|
@@ -162,13 +156,7 @@ export default class HTMLFormElement extends HTMLElement {
|
|
162
156
|
|
163
157
|
for (let i = 0; i < items.length; i++) {
|
164
158
|
const item = items[i];
|
165
|
-
const name =
|
166
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
167
|
-
PropertySymbol.value
|
168
|
-
] ||
|
169
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('name')?.[
|
170
|
-
PropertySymbol.value
|
171
|
-
];
|
159
|
+
const name = item.getAttribute('id') || item.getAttribute('name');
|
172
160
|
|
173
161
|
if (name && name === property) {
|
174
162
|
return {
|
@@ -503,10 +491,7 @@ export default class HTMLFormElement extends HTMLElement {
|
|
503
491
|
);
|
504
492
|
|
505
493
|
if (this[PropertySymbol.isConnected]) {
|
506
|
-
const id =
|
507
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
508
|
-
PropertySymbol.value
|
509
|
-
];
|
494
|
+
const id = this.getAttribute('id');
|
510
495
|
if (id) {
|
511
496
|
for (const element of <THTMLFormControlElement[]>(
|
512
497
|
QuerySelector.querySelectorAll(
|
@@ -539,14 +524,7 @@ export default class HTMLFormElement extends HTMLElement {
|
|
539
524
|
name = String(name);
|
540
525
|
|
541
526
|
for (const item of items) {
|
542
|
-
if (
|
543
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('id')?.[
|
544
|
-
PropertySymbol.value
|
545
|
-
] === name ||
|
546
|
-
item[PropertySymbol.attributes][PropertySymbol.namedItems].get('name')?.[
|
547
|
-
PropertySymbol.value
|
548
|
-
] === name
|
549
|
-
) {
|
527
|
+
if (item.getAttribute('id') === name || item.getAttribute('name') === name) {
|
550
528
|
namedItems.push(item);
|
551
529
|
}
|
552
530
|
}
|
@@ -267,7 +267,7 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
267
267
|
if (
|
268
268
|
attribute[PropertySymbol.name] === 'src' &&
|
269
269
|
attribute[PropertySymbol.value] &&
|
270
|
-
!this
|
270
|
+
!this.hasAttribute('srcdoc') &&
|
271
271
|
attribute[PropertySymbol.value] !== replacedAttribute?.[PropertySymbol.value]
|
272
272
|
) {
|
273
273
|
this.#loadPage();
|
@@ -206,10 +206,7 @@ export default class HTMLInputElement extends HTMLElement {
|
|
206
206
|
if (this[PropertySymbol.formNode]) {
|
207
207
|
return this[PropertySymbol.formNode];
|
208
208
|
}
|
209
|
-
const id =
|
210
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[
|
211
|
-
PropertySymbol.value
|
212
|
-
];
|
209
|
+
const id = this.getAttribute('form');
|
213
210
|
if (!id || !this[PropertySymbol.isConnected]) {
|
214
211
|
return null;
|
215
212
|
}
|
@@ -1,7 +1,7 @@
|
|
1
1
|
import TextTrack from './TextTrack.js';
|
2
2
|
import EventTarget from '../../event/EventTarget.js';
|
3
3
|
import * as PropertySymbol from '../../PropertySymbol.js';
|
4
|
-
import ClassMethodBinder from '../../ClassMethodBinder.js';
|
4
|
+
import ClassMethodBinder from '../../utilities/ClassMethodBinder.js';
|
5
5
|
|
6
6
|
/**
|
7
7
|
* TextTrackList.
|
@@ -69,10 +69,7 @@ export default class HTMLObjectElement extends HTMLElement {
|
|
69
69
|
if (this[PropertySymbol.formNode]) {
|
70
70
|
return this[PropertySymbol.formNode];
|
71
71
|
}
|
72
|
-
const id =
|
73
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[
|
74
|
-
PropertySymbol.value
|
75
|
-
];
|
72
|
+
const id = this.getAttribute('form');
|
76
73
|
if (!id || !this[PropertySymbol.isConnected]) {
|
77
74
|
return null;
|
78
75
|
}
|
@@ -44,10 +44,7 @@ export default class HTMLOutputElement extends HTMLElement {
|
|
44
44
|
if (this[PropertySymbol.formNode]) {
|
45
45
|
return this[PropertySymbol.formNode];
|
46
46
|
}
|
47
|
-
const id =
|
48
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[
|
49
|
-
PropertySymbol.value
|
50
|
-
];
|
47
|
+
const id = this.getAttribute('form');
|
51
48
|
if (!id || !this[PropertySymbol.isConnected]) {
|
52
49
|
return null;
|
53
50
|
}
|
@@ -249,7 +249,10 @@ export default class HTMLScriptElement extends HTMLElement {
|
|
249
249
|
async #loadScript(url: string): Promise<void> {
|
250
250
|
const window = this[PropertySymbol.window];
|
251
251
|
const browserFrame = new WindowBrowserContext(window).getBrowserFrame();
|
252
|
-
const async =
|
252
|
+
const async =
|
253
|
+
this.getAttribute('async') !== null ||
|
254
|
+
this.getAttribute('defer') !== null ||
|
255
|
+
this.getAttribute('type') === 'module';
|
253
256
|
|
254
257
|
if (!browserFrame) {
|
255
258
|
return;
|
@@ -11,7 +11,7 @@ import HTMLCollection from '../element/HTMLCollection.js';
|
|
11
11
|
import NodeTypeEnum from '../node/NodeTypeEnum.js';
|
12
12
|
import QuerySelector from '../../query-selector/QuerySelector.js';
|
13
13
|
import NodeList from '../node/NodeList.js';
|
14
|
-
import ClassMethodBinder from '../../ClassMethodBinder.js';
|
14
|
+
import ClassMethodBinder from '../../utilities/ClassMethodBinder.js';
|
15
15
|
import Node from '../node/Node.js';
|
16
16
|
import Element from '../element/Element.js';
|
17
17
|
import EventTarget from '../../event/EventTarget.js';
|
@@ -493,10 +493,7 @@ export default class HTMLSelectElement extends HTMLElement {
|
|
493
493
|
if (this[PropertySymbol.formNode]) {
|
494
494
|
return this[PropertySymbol.formNode];
|
495
495
|
}
|
496
|
-
const id =
|
497
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[
|
498
|
-
PropertySymbol.value
|
499
|
-
];
|
496
|
+
const id = this.getAttribute('form');
|
500
497
|
if (!id || !this[PropertySymbol.isConnected]) {
|
501
498
|
return null;
|
502
499
|
}
|
@@ -286,7 +286,14 @@ export default class HTMLTableElement extends HTMLElement {
|
|
286
286
|
const row = this[PropertySymbol.ownerDocument].createElement('tr');
|
287
287
|
|
288
288
|
if (index === -1 || index === rows.length) {
|
289
|
-
|
289
|
+
const tbody = QuerySelector.querySelector(this, 'tbody');
|
290
|
+
if (tbody) {
|
291
|
+
tbody.appendChild(row);
|
292
|
+
} else {
|
293
|
+
const tbody = this[PropertySymbol.ownerDocument].createElement('tbody');
|
294
|
+
tbody.appendChild(row);
|
295
|
+
this.appendChild(tbody);
|
296
|
+
}
|
290
297
|
return row;
|
291
298
|
}
|
292
299
|
|
@@ -95,7 +95,7 @@ export default class HTMLTableRowElement extends HTMLElement {
|
|
95
95
|
);
|
96
96
|
}
|
97
97
|
|
98
|
-
const cell = this[PropertySymbol.ownerDocument].createElement('
|
98
|
+
const cell = this[PropertySymbol.ownerDocument].createElement('td');
|
99
99
|
|
100
100
|
if (index === -1 || index === cells.length) {
|
101
101
|
this.appendChild(cell);
|
@@ -2,9 +2,9 @@ import HTMLElement from '../html-element/HTMLElement.js';
|
|
2
2
|
import * as PropertySymbol from '../../PropertySymbol.js';
|
3
3
|
import DocumentFragment from '../document-fragment/DocumentFragment.js';
|
4
4
|
import Node from '../node/Node.js';
|
5
|
-
import XMLSerializer from '../../xml-serializer/XMLSerializer.js';
|
6
|
-
import XMLParser from '../../xml-parser/XMLParser.js';
|
7
5
|
import ShadowRoot from '../shadow-root/ShadowRoot.js';
|
6
|
+
import HTMLSerializer from '../../html-serializer/HTMLSerializer.js';
|
7
|
+
import HTMLParser from '../../html-parser/HTMLParser.js';
|
8
8
|
|
9
9
|
/**
|
10
10
|
* HTML Template Element.
|
@@ -47,9 +47,7 @@ export default class HTMLTemplateElement extends HTMLElement {
|
|
47
47
|
content.removeChild(childNodes[0]);
|
48
48
|
}
|
49
49
|
|
50
|
-
|
51
|
-
rootNode: this[PropertySymbol.content]
|
52
|
-
});
|
50
|
+
new HTMLParser(this[PropertySymbol.window]).parse(html, this[PropertySymbol.content]);
|
53
51
|
}
|
54
52
|
|
55
53
|
/**
|
@@ -71,18 +69,18 @@ export default class HTMLTemplateElement extends HTMLElement {
|
|
71
69
|
* @override
|
72
70
|
*/
|
73
71
|
public override getInnerHTML(_options?: { includeShadowRoots?: boolean }): string {
|
74
|
-
const
|
72
|
+
const serializer = new HTMLSerializer();
|
75
73
|
|
76
74
|
// Options should be ignored as shadow roots should not be serialized for HTMLTemplateElement.
|
77
75
|
|
78
76
|
const content = <DocumentFragment>this[PropertySymbol.content];
|
79
|
-
let
|
77
|
+
let html = '';
|
80
78
|
|
81
79
|
for (const node of content[PropertySymbol.nodeArray]) {
|
82
|
-
|
80
|
+
html += serializer.serializeToString(node);
|
83
81
|
}
|
84
82
|
|
85
|
-
return
|
83
|
+
return html;
|
86
84
|
}
|
87
85
|
|
88
86
|
/**
|
@@ -92,25 +90,25 @@ export default class HTMLTemplateElement extends HTMLElement {
|
|
92
90
|
serializableShadowRoots?: boolean;
|
93
91
|
shadowRoots?: ShadowRoot[];
|
94
92
|
}): string {
|
95
|
-
const
|
93
|
+
const serializer = new HTMLSerializer();
|
96
94
|
|
97
95
|
// Options should be ignored as shadow roots should not be serialized for HTMLTemplateElement.
|
98
96
|
|
99
97
|
const content = <DocumentFragment>this[PropertySymbol.content];
|
100
|
-
let
|
98
|
+
let html = '';
|
101
99
|
|
102
100
|
for (const node of content[PropertySymbol.nodeArray]) {
|
103
|
-
|
101
|
+
html += serializer.serializeToString(node);
|
104
102
|
}
|
105
103
|
|
106
|
-
return
|
104
|
+
return html;
|
107
105
|
}
|
108
106
|
|
109
107
|
/**
|
110
108
|
* @override
|
111
109
|
*/
|
112
|
-
public override [PropertySymbol.appendChild](node: Node,
|
113
|
-
return this[PropertySymbol.content][PropertySymbol.appendChild](node,
|
110
|
+
public override [PropertySymbol.appendChild](node: Node, disableValidations = false): Node {
|
111
|
+
return this[PropertySymbol.content][PropertySymbol.appendChild](node, disableValidations);
|
114
112
|
}
|
115
113
|
|
116
114
|
/**
|
@@ -123,8 +121,16 @@ export default class HTMLTemplateElement extends HTMLElement {
|
|
123
121
|
/**
|
124
122
|
* @override
|
125
123
|
*/
|
126
|
-
public override [PropertySymbol.insertBefore](
|
127
|
-
|
124
|
+
public override [PropertySymbol.insertBefore](
|
125
|
+
newNode: Node,
|
126
|
+
referenceNode: Node,
|
127
|
+
disableValidations = false
|
128
|
+
): Node {
|
129
|
+
return this[PropertySymbol.content][PropertySymbol.insertBefore](
|
130
|
+
newNode,
|
131
|
+
referenceNode,
|
132
|
+
disableValidations
|
133
|
+
);
|
128
134
|
}
|
129
135
|
|
130
136
|
/**
|
@@ -413,10 +413,7 @@ export default class HTMLTextAreaElement extends HTMLElement {
|
|
413
413
|
if (this[PropertySymbol.formNode]) {
|
414
414
|
return this[PropertySymbol.formNode];
|
415
415
|
}
|
416
|
-
const id =
|
417
|
-
this[PropertySymbol.attributes][PropertySymbol.namedItems].get('form')?.[
|
418
|
-
PropertySymbol.value
|
419
|
-
];
|
416
|
+
const id = this.getAttribute('form');
|
420
417
|
if (!id || !this[PropertySymbol.isConnected]) {
|
421
418
|
return null;
|
422
419
|
}
|