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
@@ -0,0 +1,27 @@
|
|
1
|
+
import HTMLElement from '../nodes/html-element/HTMLElement.js';
|
2
|
+
import BrowserWindow from '../window/BrowserWindow.js';
|
3
|
+
/**
|
4
|
+
* Custom element reaction stack.
|
5
|
+
*
|
6
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-reactions-stack
|
7
|
+
*/
|
8
|
+
export default class CustomElementReactionStack {
|
9
|
+
private window;
|
10
|
+
/**
|
11
|
+
* Constructor.
|
12
|
+
*
|
13
|
+
* @param window Window.
|
14
|
+
*/
|
15
|
+
constructor(window: BrowserWindow);
|
16
|
+
/**
|
17
|
+
* Enqueues a custom element reaction.
|
18
|
+
*
|
19
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#enqueue-a-custom-element-callback-reaction
|
20
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#enqueue-an-element-on-the-appropriate-element-queue
|
21
|
+
* @param element Element.
|
22
|
+
* @param callbackName Callback name.
|
23
|
+
* @param [args] Arguments.
|
24
|
+
*/
|
25
|
+
enqueueReaction(element: HTMLElement, callbackName: string, args?: any[]): void;
|
26
|
+
}
|
27
|
+
//# sourceMappingURL=CustomElementReactionStack.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CustomElementReactionStack.d.ts","sourceRoot":"","sources":["../../src/custom-element/CustomElementReactionStack.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAIvD;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,0BAA0B;IAC9C,OAAO,CAAC,MAAM,CAAgB;IAE9B;;;;OAIG;gBACS,MAAM,EAAE,aAAa;IAIjC;;;;;;;;OAQG;IACI,eAAe,CAAC,OAAO,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,GAAG,EAAE,GAAG,IAAI;CAsDtF"}
|
@@ -0,0 +1,75 @@
|
|
1
|
+
import * as PropertySymbol from '../PropertySymbol.js';
|
2
|
+
import WindowBrowserContext from '../window/WindowBrowserContext.js';
|
3
|
+
/**
|
4
|
+
* Custom element reaction stack.
|
5
|
+
*
|
6
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#custom-element-reactions-stack
|
7
|
+
*/
|
8
|
+
export default class CustomElementReactionStack {
|
9
|
+
window;
|
10
|
+
/**
|
11
|
+
* Constructor.
|
12
|
+
*
|
13
|
+
* @param window Window.
|
14
|
+
*/
|
15
|
+
constructor(window) {
|
16
|
+
this.window = window;
|
17
|
+
}
|
18
|
+
/**
|
19
|
+
* Enqueues a custom element reaction.
|
20
|
+
*
|
21
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#enqueue-a-custom-element-callback-reaction
|
22
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#enqueue-an-element-on-the-appropriate-element-queue
|
23
|
+
* @param element Element.
|
24
|
+
* @param callbackName Callback name.
|
25
|
+
* @param [args] Arguments.
|
26
|
+
*/
|
27
|
+
enqueueReaction(element, callbackName, args) {
|
28
|
+
// If a polyfill is used, [PropertySymbol.registry] may be undefined
|
29
|
+
const definition = this.window.customElements[PropertySymbol.registry]?.get(element.localName);
|
30
|
+
if (!definition) {
|
31
|
+
return;
|
32
|
+
}
|
33
|
+
// If the element is not connected to the main document, we should not invoke the callback.
|
34
|
+
if (element[PropertySymbol.ownerDocument] !== this.window.document) {
|
35
|
+
return;
|
36
|
+
}
|
37
|
+
// According to the spec, we should use a queue for each element and then invoke the reactions in the order they were enqueued asynchronously.
|
38
|
+
// However, the browser seem to always invoke the reactions synchronously.
|
39
|
+
// TODO: Can we find an example where the reactions are invoked asynchronously? In that case we should use a queue for those cases.
|
40
|
+
switch (callbackName) {
|
41
|
+
case 'connectedCallback':
|
42
|
+
if (definition.livecycleCallbacks.connectedCallback) {
|
43
|
+
const returnValue = definition.livecycleCallbacks.connectedCallback.call(element);
|
44
|
+
/**
|
45
|
+
* It is common to import dependencies in the connectedCallback() method of web components.
|
46
|
+
* As Happy DOM doesn't have support for dynamic imports yet, this is a temporary solution to wait for imports in connectedCallback().
|
47
|
+
*
|
48
|
+
* @see https://github.com/capricorn86/happy-dom/issues/1442
|
49
|
+
*/
|
50
|
+
if (returnValue instanceof Promise) {
|
51
|
+
const asyncTaskManager = new WindowBrowserContext(this.window).getAsyncTaskManager();
|
52
|
+
if (asyncTaskManager) {
|
53
|
+
const taskID = asyncTaskManager.startTask();
|
54
|
+
returnValue
|
55
|
+
.then(() => asyncTaskManager.endTask(taskID))
|
56
|
+
.catch(() => asyncTaskManager.endTask(taskID));
|
57
|
+
}
|
58
|
+
}
|
59
|
+
}
|
60
|
+
break;
|
61
|
+
case 'disconnectedCallback':
|
62
|
+
if (definition.livecycleCallbacks.disconnectedCallback) {
|
63
|
+
definition.livecycleCallbacks.disconnectedCallback.call(element);
|
64
|
+
}
|
65
|
+
break;
|
66
|
+
case 'attributeChangedCallback':
|
67
|
+
if (definition.livecycleCallbacks.attributeChangedCallback &&
|
68
|
+
definition.observedAttributes.has(args[0])) {
|
69
|
+
definition.livecycleCallbacks.attributeChangedCallback.apply(element, args);
|
70
|
+
}
|
71
|
+
break;
|
72
|
+
}
|
73
|
+
}
|
74
|
+
}
|
75
|
+
//# sourceMappingURL=CustomElementReactionStack.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CustomElementReactionStack.js","sourceRoot":"","sources":["../../src/custom-element/CustomElementReactionStack.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,oBAAoB,MAAM,mCAAmC,CAAC;AAErE;;;;GAIG;AACH,MAAM,CAAC,OAAO,OAAO,0BAA0B;IACtC,MAAM,CAAgB;IAE9B;;;;OAIG;IACH,YAAY,MAAqB;QAChC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;IAED;;;;;;;;OAQG;IACI,eAAe,CAAC,OAAoB,EAAE,YAAoB,EAAE,IAAY;QAC9E,oEAAoE;QACpE,MAAM,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;QAE/F,IAAI,CAAC,UAAU,EAAE,CAAC;YACjB,OAAO;QACR,CAAC;QAED,2FAA2F;QAC3F,IAAI,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;YACpE,OAAO;QACR,CAAC;QAED,8IAA8I;QAC9I,0EAA0E;QAC1E,mIAAmI;QAEnI,QAAQ,YAAY,EAAE,CAAC;YACtB,KAAK,mBAAmB;gBACvB,IAAI,UAAU,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,CAAC;oBACrD,MAAM,WAAW,GAAG,UAAU,CAAC,kBAAkB,CAAC,iBAAiB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAElF;;;;;uBAKG;oBACH,IAAI,WAAW,YAAY,OAAO,EAAE,CAAC;wBACpC,MAAM,gBAAgB,GAAG,IAAI,oBAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,mBAAmB,EAAE,CAAC;wBACrF,IAAI,gBAAgB,EAAE,CAAC;4BACtB,MAAM,MAAM,GAAG,gBAAgB,CAAC,SAAS,EAAE,CAAC;4BAC5C,WAAW;iCACT,IAAI,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;iCAC5C,KAAK,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC;wBACjD,CAAC;oBACF,CAAC;gBACF,CAAC;gBACD,MAAM;YACP,KAAK,sBAAsB;gBAC1B,IAAI,UAAU,CAAC,kBAAkB,CAAC,oBAAoB,EAAE,CAAC;oBACxD,UAAU,CAAC,kBAAkB,CAAC,oBAAoB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAClE,CAAC;gBACD,MAAM;YACP,KAAK,0BAA0B;gBAC9B,IACC,UAAU,CAAC,kBAAkB,CAAC,wBAAwB;oBACtD,UAAU,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EACzC,CAAC;oBACF,UAAU,CAAC,kBAAkB,CAAC,wBAAwB,CAAC,KAAK,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;gBAC7E,CAAC;gBACD,MAAM;QACR,CAAC;IACF,CAAC;CACD"}
|
@@ -2,17 +2,13 @@ import * as PropertySymbol from '../PropertySymbol.js';
|
|
2
2
|
import HTMLElement from '../nodes/html-element/HTMLElement.js';
|
3
3
|
import Node from '../nodes/node/Node.js';
|
4
4
|
import BrowserWindow from '../window/BrowserWindow.js';
|
5
|
+
import ICustomElementDefinition from './ICustomElementDefinition.js';
|
5
6
|
/**
|
6
7
|
* Custom elements registry.
|
7
8
|
*/
|
8
9
|
export default class CustomElementRegistry {
|
9
10
|
#private;
|
10
|
-
[PropertySymbol.registry]:
|
11
|
-
[k: string]: {
|
12
|
-
elementClass: typeof HTMLElement;
|
13
|
-
extends: string;
|
14
|
-
};
|
15
|
-
};
|
11
|
+
[PropertySymbol.registry]: Map<string, ICustomElementDefinition>;
|
16
12
|
[PropertySymbol.classRegistry]: Map<typeof HTMLElement, string>;
|
17
13
|
[PropertySymbol.callbacks]: Map<string, Array<() => void>>;
|
18
14
|
[PropertySymbol.destroyed]: boolean;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CustomElementRegistry.d.ts","sourceRoot":"","sources":["../../src/custom-element/CustomElementRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,OAAO,IAAI,MAAM,uBAAuB,CAAC;AACzC,OAAO,aAAa,MAAM,4BAA4B,CAAC;
|
1
|
+
{"version":3,"file":"CustomElementRegistry.d.ts","sourceRoot":"","sources":["../../src/custom-element/CustomElementRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAC/D,OAAO,IAAI,MAAM,uBAAuB,CAAC;AACzC,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAIvD,OAAO,wBAAwB,MAAM,+BAA+B,CAAC;AAErE;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,qBAAqB;;IAClC,CAAC,cAAc,CAAC,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,wBAAwB,CAAC,CAAa;IAC7E,CAAC,cAAc,CAAC,aAAa,CAAC,EAAE,GAAG,CAAC,OAAO,WAAW,EAAE,MAAM,CAAC,CAAa;IAC5E,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAC,CAAa;IACvE,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,OAAO,CAAS;IAGnD;;;;OAIG;gBACS,MAAM,EAAE,aAAa;IAOjC;;;;;;;OAOG;IACI,MAAM,CACZ,IAAI,EAAE,MAAM,EACZ,YAAY,EAAE,OAAO,WAAW,EAChC,OAAO,CAAC,EAAE;QAAE,OAAO,CAAC,EAAE,MAAM,CAAA;KAAE,GAC5B,IAAI;IA8DP;;;;;OAKG;IACI,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,WAAW,GAAG,SAAS;IAIxD;;;;;;OAMG;IACI,OAAO,CAAC,KAAK,EAAE,IAAI,GAAG,IAAI;IAIjC;;;;OAIG;IACI,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IA4B/C;;;;;OAKG;IACI,OAAO,CAAC,YAAY,EAAE,OAAO,WAAW,GAAG,MAAM,GAAG,IAAI;IAI/D;;OAEG;IACI,CAAC,cAAc,CAAC,OAAO,CAAC,IAAI,IAAI;CAavC"}
|
@@ -1,10 +1,12 @@
|
|
1
1
|
import * as PropertySymbol from '../PropertySymbol.js';
|
2
2
|
import NamespaceURI from '../config/NamespaceURI.js';
|
3
|
+
import StringUtility from '../utilities/StringUtility.js';
|
4
|
+
import CustomElementUtility from './CustomElementUtility.js';
|
3
5
|
/**
|
4
6
|
* Custom elements registry.
|
5
7
|
*/
|
6
8
|
export default class CustomElementRegistry {
|
7
|
-
[PropertySymbol.registry] =
|
9
|
+
[PropertySymbol.registry] = new Map();
|
8
10
|
[PropertySymbol.classRegistry] = new Map();
|
9
11
|
[PropertySymbol.callbacks] = new Map();
|
10
12
|
[PropertySymbol.destroyed] = false;
|
@@ -32,28 +34,40 @@ export default class CustomElementRegistry {
|
|
32
34
|
if (this[PropertySymbol.destroyed]) {
|
33
35
|
return;
|
34
36
|
}
|
35
|
-
if (!
|
37
|
+
if (!CustomElementUtility.isValidCustomElementName(name)) {
|
36
38
|
throw new this.#window.DOMException(`Failed to execute 'define' on 'CustomElementRegistry': "${name}" is not a valid custom element name`);
|
37
39
|
}
|
38
|
-
if (this[PropertySymbol.registry]
|
40
|
+
if (this[PropertySymbol.registry].has(name)) {
|
39
41
|
throw new this.#window.DOMException(`Failed to execute 'define' on 'CustomElementRegistry': the name "${name}" has already been used with this registry`);
|
40
42
|
}
|
41
43
|
if (this[PropertySymbol.classRegistry].has(elementClass)) {
|
42
44
|
throw new this.#window.DOMException("Failed to execute 'define' on 'CustomElementRegistry': this constructor has already been used with this registry");
|
43
45
|
}
|
44
|
-
const tagName =
|
46
|
+
const tagName = StringUtility.asciiUpperCase(name);
|
45
47
|
elementClass.prototype[PropertySymbol.window] = this.#window;
|
46
48
|
elementClass.prototype[PropertySymbol.ownerDocument] = this.#window.document;
|
47
49
|
elementClass.prototype[PropertySymbol.tagName] = tagName;
|
48
50
|
elementClass.prototype[PropertySymbol.localName] = name;
|
49
51
|
elementClass.prototype[PropertySymbol.namespaceURI] = NamespaceURI.html;
|
50
|
-
|
52
|
+
// ObservedAttributes should only be called once by CustomElementRegistry (see #117)
|
53
|
+
const observedAttributes = new Set();
|
54
|
+
const elementObservervedAttributes = elementClass.observedAttributes;
|
55
|
+
if (Array.isArray(elementObservervedAttributes)) {
|
56
|
+
for (const attribute of elementObservervedAttributes) {
|
57
|
+
observedAttributes.add(String(attribute).toLowerCase());
|
58
|
+
}
|
59
|
+
}
|
60
|
+
this[PropertySymbol.registry].set(name, {
|
51
61
|
elementClass,
|
52
|
-
extends: options && options.extends ? options.extends.toLowerCase() : null
|
53
|
-
|
62
|
+
extends: options && options.extends ? options.extends.toLowerCase() : null,
|
63
|
+
observedAttributes,
|
64
|
+
livecycleCallbacks: {
|
65
|
+
connectedCallback: elementClass.prototype.connectedCallback,
|
66
|
+
disconnectedCallback: elementClass.prototype.disconnectedCallback,
|
67
|
+
attributeChangedCallback: elementClass.prototype.attributeChangedCallback
|
68
|
+
}
|
69
|
+
});
|
54
70
|
this[PropertySymbol.classRegistry].set(elementClass, name);
|
55
|
-
// ObservedAttributes should only be called once by CustomElementRegistry (see #117)
|
56
|
-
elementClass[PropertySymbol.observedAttributes] = (elementClass.observedAttributes || []).map((name) => String(name).toLowerCase());
|
57
71
|
const callbacks = this[PropertySymbol.callbacks].get(name);
|
58
72
|
if (callbacks) {
|
59
73
|
this[PropertySymbol.callbacks].delete(name);
|
@@ -69,7 +83,7 @@ export default class CustomElementRegistry {
|
|
69
83
|
* @returns HTMLElement Class defined or undefined.
|
70
84
|
*/
|
71
85
|
get(name) {
|
72
|
-
return this[PropertySymbol.registry]
|
86
|
+
return this[PropertySymbol.registry].get(name)?.elementClass;
|
73
87
|
}
|
74
88
|
/**
|
75
89
|
* Upgrades a custom element directly, even before it is connected to its shadow root.
|
@@ -90,7 +104,7 @@ export default class CustomElementRegistry {
|
|
90
104
|
if (this[PropertySymbol.destroyed]) {
|
91
105
|
return Promise.reject(new this.#window.DOMException(`Failed to execute 'whenDefined' on 'CustomElementRegistry': The custom element registry has been destroyed.`));
|
92
106
|
}
|
93
|
-
if (!
|
107
|
+
if (!CustomElementUtility.isValidCustomElementName(name)) {
|
94
108
|
return Promise.reject(new this.#window.DOMException(`Failed to execute 'whenDefined' on 'CustomElementRegistry': Invalid custom element name: "${name}"`));
|
95
109
|
}
|
96
110
|
if (this.get(name)) {
|
@@ -120,43 +134,16 @@ export default class CustomElementRegistry {
|
|
120
134
|
*/
|
121
135
|
[PropertySymbol.destroy]() {
|
122
136
|
this[PropertySymbol.destroyed] = true;
|
123
|
-
for (const
|
124
|
-
|
125
|
-
|
126
|
-
|
127
|
-
|
128
|
-
|
137
|
+
for (const definition of this[PropertySymbol.registry].values()) {
|
138
|
+
definition.elementClass.prototype[PropertySymbol.window] = null;
|
139
|
+
definition.elementClass.prototype[PropertySymbol.ownerDocument] = null;
|
140
|
+
definition.elementClass.prototype[PropertySymbol.tagName] = null;
|
141
|
+
definition.elementClass.prototype[PropertySymbol.localName] = null;
|
142
|
+
definition.elementClass.prototype[PropertySymbol.namespaceURI] = null;
|
129
143
|
}
|
130
|
-
this[PropertySymbol.registry] =
|
144
|
+
this[PropertySymbol.registry] = new Map();
|
131
145
|
this[PropertySymbol.classRegistry] = new Map();
|
132
146
|
this[PropertySymbol.callbacks] = new Map();
|
133
147
|
}
|
134
|
-
/**
|
135
|
-
* Validates the correctness of custom element tag names.
|
136
|
-
*
|
137
|
-
* @param name Custom element tag name.
|
138
|
-
* @returns True, if tag name is standard compliant.
|
139
|
-
*/
|
140
|
-
#isValidCustomElementName(name) {
|
141
|
-
// Validation criteria based on:
|
142
|
-
// https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name
|
143
|
-
const PCENChar = '[-_.]|[0-9]|[a-z]|\u{B7}|[\u{C0}-\u{D6}]|[\u{D8}-\u{F6}]' +
|
144
|
-
'|[\u{F8}-\u{37D}]|[\u{37F}-\u{1FFF}]' +
|
145
|
-
'|[\u{200C}-\u{200D}]|[\u{203F}-\u{2040}]|[\u{2070}-\u{218F}]' +
|
146
|
-
'|[\u{2C00}-\u{2FEF}]|[\u{3001}-\u{D7FF}]' +
|
147
|
-
'|[\u{F900}-\u{FDCF}]|[\u{FDF0}-\u{FFFD}]|[\u{10000}-\u{EFFFF}]';
|
148
|
-
const PCEN = new RegExp(`^[a-z](${PCENChar})*-(${PCENChar})*$`, 'u');
|
149
|
-
const reservedNames = [
|
150
|
-
'annotation-xml',
|
151
|
-
'color-profile',
|
152
|
-
'font-face',
|
153
|
-
'font-face-src',
|
154
|
-
'font-face-uri',
|
155
|
-
'font-face-format',
|
156
|
-
'font-face-name',
|
157
|
-
'missing-glyph'
|
158
|
-
];
|
159
|
-
return PCEN.test(name) && !reservedNames.includes(name);
|
160
|
-
}
|
161
148
|
}
|
162
149
|
//# sourceMappingURL=CustomElementRegistry.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"CustomElementRegistry.js","sourceRoot":"","sources":["../../src/custom-element/CustomElementRegistry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAIvD,OAAO,YAAY,MAAM,2BAA2B,CAAC;
|
1
|
+
{"version":3,"file":"CustomElementRegistry.js","sourceRoot":"","sources":["../../src/custom-element/CustomElementRegistry.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,14 @@
|
|
1
|
+
/**
|
2
|
+
* Custom element utility.
|
3
|
+
*/
|
4
|
+
export default class CustomElementUtility {
|
5
|
+
/**
|
6
|
+
* Returns true if the tag name is a valid custom element name.
|
7
|
+
*
|
8
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name
|
9
|
+
* @param name Tag name.
|
10
|
+
* @returns True if valid.
|
11
|
+
*/
|
12
|
+
static isValidCustomElementName(name: string): boolean;
|
13
|
+
}
|
14
|
+
//# sourceMappingURL=CustomElementUtility.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CustomElementUtility.d.ts","sourceRoot":"","sources":["../../src/custom-element/CustomElementUtility.ts"],"names":[],"mappings":"AAmBA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACxC;;;;;;OAMG;WACW,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;CAG7D"}
|
@@ -0,0 +1,32 @@
|
|
1
|
+
const PCEN_CHAR = '[-_.]|[0-9]|[a-z]|\u{B7}|[\u{C0}-\u{D6}]|[\u{D8}-\u{F6}]' +
|
2
|
+
'|[\u{F8}-\u{37D}]|[\u{37F}-\u{1FFF}]' +
|
3
|
+
'|[\u{200C}-\u{200D}]|[\u{203F}-\u{2040}]|[\u{2070}-\u{218F}]' +
|
4
|
+
'|[\u{2C00}-\u{2FEF}]|[\u{3001}-\u{D7FF}]' +
|
5
|
+
'|[\u{F900}-\u{FDCF}]|[\u{FDF0}-\u{FFFD}]|[\u{10000}-\u{EFFFF}]';
|
6
|
+
const PCEN_REGEXP = new RegExp(`^[a-z](${PCEN_CHAR})*-(${PCEN_CHAR})*$`, 'u');
|
7
|
+
const RESERVED_NAMES = [
|
8
|
+
'annotation-xml',
|
9
|
+
'color-profile',
|
10
|
+
'font-face',
|
11
|
+
'font-face-src',
|
12
|
+
'font-face-uri',
|
13
|
+
'font-face-format',
|
14
|
+
'font-face-name',
|
15
|
+
'missing-glyph'
|
16
|
+
];
|
17
|
+
/**
|
18
|
+
* Custom element utility.
|
19
|
+
*/
|
20
|
+
export default class CustomElementUtility {
|
21
|
+
/**
|
22
|
+
* Returns true if the tag name is a valid custom element name.
|
23
|
+
*
|
24
|
+
* @see https://html.spec.whatwg.org/multipage/custom-elements.html#valid-custom-element-name
|
25
|
+
* @param name Tag name.
|
26
|
+
* @returns True if valid.
|
27
|
+
*/
|
28
|
+
static isValidCustomElementName(name) {
|
29
|
+
return PCEN_REGEXP.test(name) && !RESERVED_NAMES.includes(name);
|
30
|
+
}
|
31
|
+
}
|
32
|
+
//# sourceMappingURL=CustomElementUtility.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"CustomElementUtility.js","sourceRoot":"","sources":["../../src/custom-element/CustomElementUtility.ts"],"names":[],"mappings":"AAAA,MAAM,SAAS,GACd,0DAA0D;IAC1D,sCAAsC;IACtC,8DAA8D;IAC9D,0CAA0C;IAC1C,gEAAgE,CAAC;AAElE,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,UAAU,SAAS,OAAO,SAAS,KAAK,EAAE,GAAG,CAAC,CAAC;AAC9E,MAAM,cAAc,GAAG;IACtB,gBAAgB;IAChB,eAAe;IACf,WAAW;IACX,eAAe;IACf,eAAe;IACf,kBAAkB;IAClB,gBAAgB;IAChB,eAAe;CACf,CAAC;AAEF;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,oBAAoB;IACxC;;;;;;OAMG;IACI,MAAM,CAAC,wBAAwB,CAAC,IAAY;QAClD,OAAO,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACjE,CAAC;CACD"}
|
@@ -0,0 +1,12 @@
|
|
1
|
+
import HTMLElement from '../nodes/html-element/HTMLElement.js';
|
2
|
+
export default interface ICustomElementDefinition {
|
3
|
+
elementClass: typeof HTMLElement;
|
4
|
+
extends: string;
|
5
|
+
observedAttributes: Set<string>;
|
6
|
+
livecycleCallbacks: {
|
7
|
+
connectedCallback: () => void;
|
8
|
+
disconnectedCallback: () => void;
|
9
|
+
attributeChangedCallback: (name: string, oldValue: string | null, newValue: string | null) => void;
|
10
|
+
};
|
11
|
+
}
|
12
|
+
//# sourceMappingURL=ICustomElementDefinition.d.ts.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ICustomElementDefinition.d.ts","sourceRoot":"","sources":["../../src/custom-element/ICustomElementDefinition.ts"],"names":[],"mappings":"AAAA,OAAO,WAAW,MAAM,sCAAsC,CAAC;AAE/D,MAAM,CAAC,OAAO,WAAW,wBAAwB;IAChD,YAAY,EAAE,OAAO,WAAW,CAAC;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,kBAAkB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;IAChC,kBAAkB,EAAE;QACnB,iBAAiB,EAAE,MAAM,IAAI,CAAC;QAC9B,oBAAoB,EAAE,MAAM,IAAI,CAAC;QACjC,wBAAwB,EAAE,CACzB,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,QAAQ,EAAE,MAAM,GAAG,IAAI,KACnB,IAAI,CAAC;KACV,CAAC;CACF"}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"ICustomElementDefinition.js","sourceRoot":"","sources":["../../src/custom-element/ICustomElementDefinition.ts"],"names":[],"mappings":""}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DOMStringMap.d.ts","sourceRoot":"","sources":["../../src/dom/DOMStringMap.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAIlD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;;;;OAKG;gBACS,wBAAwB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;
|
1
|
+
{"version":3,"file":"DOMStringMap.d.ts","sourceRoot":"","sources":["../../src/dom/DOMStringMap.ts"],"names":[],"mappings":"AAAA,OAAO,OAAO,MAAM,6BAA6B,CAAC;AAIlD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAChC,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC;IAEtB;;;;;OAKG;gBACS,wBAAwB,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO;CAyE9D"}
|
package/lib/dom/DOMStringMap.js
CHANGED
@@ -21,9 +21,9 @@ export default class DOMStringMap {
|
|
21
21
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
|
22
22
|
return new Proxy(this, {
|
23
23
|
get(_target, property) {
|
24
|
-
const attribute = element
|
24
|
+
const attribute = element.getAttribute('data-' + DOMStringMapUtility.camelCaseToKebab(property));
|
25
25
|
if (attribute) {
|
26
|
-
return attribute
|
26
|
+
return attribute;
|
27
27
|
}
|
28
28
|
},
|
29
29
|
set(_target, property, value) {
|
@@ -39,15 +39,15 @@ export default class DOMStringMap {
|
|
39
39
|
// https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy/Proxy/ownKeys
|
40
40
|
// "The result List must contain the keys of all non-configurable own properties of the target object."
|
41
41
|
const keys = [];
|
42
|
-
for (const
|
43
|
-
if (
|
44
|
-
keys.push(DOMStringMapUtility.kebabToCamelCase(
|
42
|
+
for (const items of element[PropertySymbol.attributes][PropertySymbol.namedItems].values()) {
|
43
|
+
if (items[0][PropertySymbol.name].startsWith('data-')) {
|
44
|
+
keys.push(DOMStringMapUtility.kebabToCamelCase(items[0][PropertySymbol.name].replace('data-', '')));
|
45
45
|
}
|
46
46
|
}
|
47
47
|
return keys;
|
48
48
|
},
|
49
49
|
has(_target, property) {
|
50
|
-
return element
|
50
|
+
return element.hasAttribute('data-' + DOMStringMapUtility.camelCaseToKebab(property));
|
51
51
|
},
|
52
52
|
defineProperty(_target, property, descriptor) {
|
53
53
|
if (descriptor.value === undefined) {
|
@@ -57,12 +57,12 @@ export default class DOMStringMap {
|
|
57
57
|
return true;
|
58
58
|
},
|
59
59
|
getOwnPropertyDescriptor(_target, property) {
|
60
|
-
const attribute = element
|
60
|
+
const attribute = element.getAttribute('data-' + DOMStringMapUtility.camelCaseToKebab(property));
|
61
61
|
if (!attribute) {
|
62
62
|
return;
|
63
63
|
}
|
64
64
|
return {
|
65
|
-
value: attribute
|
65
|
+
value: attribute,
|
66
66
|
writable: true,
|
67
67
|
enumerable: true,
|
68
68
|
configurable: true
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DOMStringMap.js","sourceRoot":"","sources":["../../src/dom/DOMStringMap.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,mBAAmB,MAAM,0BAA0B,CAAC;AAE3D;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,YAAY;IAGhC;;;;;OAKG;IACH,YAAY,wBAAgC,EAAE,OAAgB;QAC7D,IAAI,wBAAwB,KAAK,cAAc,CAAC,kBAAkB,EAAE,CAAC;YACpE,MAAM,IAAI,SAAS,CAAC,qBAAqB,CAAC,CAAC;QAC5C,CAAC;QAED,2BAA2B;QAC3B,yFAAyF;QACzF,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACtB,GAAG,CAAC,OAAO,EAAE,QAAgB;gBAC5B,MAAM,SAAS,GAAG,OAAO,CAAC,
|
1
|
+
{"version":3,"file":"DOMStringMap.js","sourceRoot":"","sources":["../../src/dom/DOMStringMap.ts"],"names":[],"mappings":"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"}
|
package/lib/dom/DOMTokenList.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DOMTokenList.js","sourceRoot":"","sources":["../../src/dom/DOMTokenList.ts"],"names":[],"mappings":"AAAA,OAAO,iBAAiB,MAAM,
|
1
|
+
{"version":3,"file":"DOMTokenList.js","sourceRoot":"","sources":["../../src/dom/DOMTokenList.ts"],"names":[],"mappings":"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"}
|
@@ -8,7 +8,6 @@ import BrowserWindow from '../window/BrowserWindow.js';
|
|
8
8
|
* https://developer.mozilla.org/en-US/docs/Web/API/DOMParser.
|
9
9
|
*/
|
10
10
|
export default class DOMParser {
|
11
|
-
#private;
|
12
11
|
protected [PropertySymbol.window]: BrowserWindow;
|
13
12
|
/**
|
14
13
|
* Parses HTML and returns a root element.
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DOMParser.d.ts","sourceRoot":"","sources":["../../src/dom-parser/DOMParser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;
|
1
|
+
{"version":3,"file":"DOMParser.d.ts","sourceRoot":"","sources":["../../src/dom-parser/DOMParser.ts"],"names":[],"mappings":"AAAA,OAAO,QAAQ,MAAM,+BAA+B,CAAC;AACrD,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAEvD,OAAO,aAAa,MAAM,4BAA4B,CAAC;AAGvD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAE7B,UAAkB,CAAC,cAAc,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC;IAEzD;;;;;;OAMG;IACI,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,QAAQ;CAuBlE"}
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import * as PropertySymbol from '../PropertySymbol.js';
|
2
2
|
import XMLParser from '../xml-parser/XMLParser.js';
|
3
|
-
import
|
3
|
+
import HTMLParser from '../html-parser/HTMLParser.js';
|
4
4
|
/**
|
5
5
|
* DOM parser.
|
6
6
|
*
|
@@ -19,79 +19,17 @@ export default class DOMParser {
|
|
19
19
|
if (!mimeType) {
|
20
20
|
throw new this[PropertySymbol.window].DOMException('Second parameter "mimeType" is mandatory.');
|
21
21
|
}
|
22
|
-
const newDocument = this.#createDocument(mimeType);
|
23
|
-
const documentChildNodes = newDocument[PropertySymbol.nodeArray];
|
24
|
-
while (documentChildNodes.length) {
|
25
|
-
newDocument.removeChild(documentChildNodes[0]);
|
26
|
-
}
|
27
|
-
const root = XMLParser.parse(newDocument, string, { evaluateScripts: true });
|
28
|
-
let documentElement = null;
|
29
|
-
let documentTypeNode = null;
|
30
|
-
for (const node of root[PropertySymbol.nodeArray]) {
|
31
|
-
if (node['tagName'] === 'HTML') {
|
32
|
-
documentElement = node;
|
33
|
-
}
|
34
|
-
else if (node[PropertySymbol.nodeType] === NodeTypeEnum.documentTypeNode) {
|
35
|
-
documentTypeNode = node;
|
36
|
-
}
|
37
|
-
if (documentElement && documentTypeNode) {
|
38
|
-
break;
|
39
|
-
}
|
40
|
-
}
|
41
|
-
if (documentElement) {
|
42
|
-
if (documentTypeNode) {
|
43
|
-
newDocument.appendChild(documentTypeNode);
|
44
|
-
}
|
45
|
-
newDocument.appendChild(documentElement);
|
46
|
-
const body = newDocument.body;
|
47
|
-
if (body) {
|
48
|
-
while (root[PropertySymbol.nodeArray].length) {
|
49
|
-
body.appendChild(root[PropertySymbol.nodeArray][0]);
|
50
|
-
}
|
51
|
-
}
|
52
|
-
}
|
53
|
-
else {
|
54
|
-
switch (mimeType) {
|
55
|
-
case 'image/svg+xml':
|
56
|
-
{
|
57
|
-
while (root[PropertySymbol.nodeArray].length) {
|
58
|
-
newDocument.appendChild(root[PropertySymbol.nodeArray][0]);
|
59
|
-
}
|
60
|
-
}
|
61
|
-
break;
|
62
|
-
case 'text/html':
|
63
|
-
default:
|
64
|
-
{
|
65
|
-
const documentElement = newDocument.createElement('html');
|
66
|
-
const bodyElement = newDocument.createElement('body');
|
67
|
-
const headElement = newDocument.createElement('head');
|
68
|
-
documentElement.appendChild(headElement);
|
69
|
-
documentElement.appendChild(bodyElement);
|
70
|
-
newDocument.appendChild(documentElement);
|
71
|
-
while (root[PropertySymbol.nodeArray].length) {
|
72
|
-
bodyElement.appendChild(root[PropertySymbol.nodeArray][0]);
|
73
|
-
}
|
74
|
-
}
|
75
|
-
break;
|
76
|
-
}
|
77
|
-
}
|
78
|
-
return newDocument;
|
79
|
-
}
|
80
|
-
/**
|
81
|
-
*
|
82
|
-
* @param mimeType Mime type.
|
83
|
-
* @returns Document.
|
84
|
-
*/
|
85
|
-
#createDocument(mimeType) {
|
86
22
|
const window = this[PropertySymbol.window];
|
87
23
|
switch (mimeType) {
|
88
24
|
case 'text/html':
|
89
|
-
|
25
|
+
const newDocument = new window.HTMLDocument();
|
26
|
+
newDocument[PropertySymbol.defaultView] = window;
|
27
|
+
return new HTMLParser(this[PropertySymbol.window]).parse(string, newDocument);
|
90
28
|
case 'image/svg+xml':
|
91
29
|
case 'text/xml':
|
92
30
|
case 'application/xml':
|
93
31
|
case 'application/xhtml+xml':
|
94
|
-
return new window.
|
32
|
+
return new XMLParser(this[PropertySymbol.window]).parse(string);
|
95
33
|
default:
|
96
34
|
throw new window.DOMException(`Unknown mime type "${mimeType}".`);
|
97
35
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"DOMParser.js","sourceRoot":"","sources":["../../src/dom-parser/DOMParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,SAAS,MAAM,4BAA4B,CAAC;
|
1
|
+
{"version":3,"file":"DOMParser.js","sourceRoot":"","sources":["../../src/dom-parser/DOMParser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AACvD,OAAO,SAAS,MAAM,4BAA4B,CAAC;AAEnD,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD;;;;;GAKG;AACH,MAAM,CAAC,OAAO,OAAO,SAAS;IAI7B;;;;;;OAMG;IACI,eAAe,CAAC,MAAc,EAAE,QAAgB;QACtD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACf,MAAM,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,YAAY,CACjD,2CAA2C,CAC3C,CAAC;QACH,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;QAE3C,QAAQ,QAAQ,EAAE,CAAC;YAClB,KAAK,WAAW;gBACf,MAAM,WAAW,GAAG,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;gBAC9C,WAAW,CAAC,cAAc,CAAC,WAAW,CAAC,GAAG,MAAM,CAAC;gBACjD,OAAiB,IAAI,UAAU,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;YACzF,KAAK,eAAe,CAAC;YACrB,KAAK,UAAU,CAAC;YAChB,KAAK,iBAAiB,CAAC;YACvB,KAAK,uBAAuB;gBAC3B,OAAiB,IAAI,SAAS,CAAC,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;YAC3E;gBACC,MAAM,IAAI,MAAM,CAAC,YAAY,CAAC,sBAAsB,QAAQ,IAAI,CAAC,CAAC;QACpE,CAAC;IACF,CAAC;CACD"}
|