happy-dom 10.5.2 → 10.6.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +20 -18
- package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
- package/cjs/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +4 -3
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
- package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
- package/cjs/named-node-map/INamedNodeMap.d.ts +26 -26
- package/cjs/named-node-map/INamedNodeMap.d.ts.map +1 -1
- package/cjs/named-node-map/NamedNodeMap.cjs +121 -81
- package/cjs/named-node-map/NamedNodeMap.cjs.map +1 -1
- package/cjs/named-node-map/NamedNodeMap.d.ts +57 -40
- package/cjs/named-node-map/NamedNodeMap.d.ts.map +1 -1
- package/cjs/nodes/element/Dataset.cjs +16 -17
- package/cjs/nodes/element/Dataset.cjs.map +1 -1
- package/cjs/nodes/element/Dataset.d.ts.map +1 -1
- package/cjs/nodes/element/Element.cjs +22 -133
- package/cjs/nodes/element/Element.cjs.map +1 -1
- package/cjs/nodes/element/Element.d.ts +9 -16
- package/cjs/nodes/element/Element.d.ts.map +1 -1
- package/cjs/nodes/element/ElementNamedNodeMap.cjs +152 -0
- package/cjs/nodes/element/ElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/element/ElementNamedNodeMap.d.ts +45 -0
- package/cjs/nodes/element/ElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/element/ElementUtility.cjs +20 -15
- package/cjs/nodes/element/ElementUtility.cjs.map +1 -1
- package/cjs/nodes/element/ElementUtility.d.ts.map +1 -1
- package/cjs/nodes/element/IElement.d.ts +5 -5
- package/cjs/nodes/element/IElement.d.ts.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +2 -26
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +7 -11
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs +44 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +2 -26
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +2 -9
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs +41 -0
- package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-element/HTMLElement.cjs +2 -20
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts +3 -10
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs +35 -0
- package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +2 -12
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +2 -5
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs +26 -0
- package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts +16 -0
- package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs +2 -26
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +2 -9
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs +42 -0
- package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +1 -6
- package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
- package/cjs/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +2 -23
- package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +4 -10
- package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs +39 -0
- package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-option-element/HTMLOptionElement.cjs +2 -30
- package/cjs/nodes/html-option-element/HTMLOptionElement.cjs.map +1 -1
- package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts +2 -9
- package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
- package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs +45 -0
- package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +2 -14
- package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +2 -9
- package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs +26 -0
- package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts +16 -0
- package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +2 -26
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts +2 -9
- package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs +42 -0
- package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +2 -26
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +2 -9
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs +42 -0
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs +5 -2
- package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs.map +1 -1
- package/cjs/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
- package/cjs/nodes/node/NodeUtility.cjs +4 -15
- package/cjs/nodes/node/NodeUtility.cjs.map +1 -1
- package/cjs/nodes/node/NodeUtility.d.ts.map +1 -1
- package/cjs/nodes/svg-element/SVGElement.cjs +2 -20
- package/cjs/nodes/svg-element/SVGElement.cjs.map +1 -1
- package/cjs/nodes/svg-element/SVGElement.d.ts +3 -10
- package/cjs/nodes/svg-element/SVGElement.d.ts.map +1 -1
- package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs +35 -0
- package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs.map +1 -0
- package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts +20 -0
- package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -0
- package/cjs/query-selector/SelectorItem.cjs +1 -1
- package/cjs/query-selector/SelectorItem.cjs.map +1 -1
- package/cjs/xml-serializer/XMLSerializer.cjs +3 -2
- package/cjs/xml-serializer/XMLSerializer.cjs.map +1 -1
- package/cjs/xml-serializer/XMLSerializer.d.ts.map +1 -1
- package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js +20 -18
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +4 -3
- package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
- package/lib/named-node-map/INamedNodeMap.d.ts +26 -26
- package/lib/named-node-map/INamedNodeMap.d.ts.map +1 -1
- package/lib/named-node-map/NamedNodeMap.d.ts +57 -40
- package/lib/named-node-map/NamedNodeMap.d.ts.map +1 -1
- package/lib/named-node-map/NamedNodeMap.js +121 -81
- package/lib/named-node-map/NamedNodeMap.js.map +1 -1
- package/lib/nodes/element/Dataset.d.ts.map +1 -1
- package/lib/nodes/element/Dataset.js +16 -17
- package/lib/nodes/element/Dataset.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +9 -16
- package/lib/nodes/element/Element.d.ts.map +1 -1
- package/lib/nodes/element/Element.js +22 -133
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/ElementNamedNodeMap.d.ts +45 -0
- package/lib/nodes/element/ElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/element/ElementNamedNodeMap.js +146 -0
- package/lib/nodes/element/ElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/element/ElementUtility.d.ts.map +1 -1
- package/lib/nodes/element/ElementUtility.js +20 -15
- package/lib/nodes/element/ElementUtility.js.map +1 -1
- package/lib/nodes/element/IElement.d.ts +5 -5
- package/lib/nodes/element/IElement.d.ts.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +7 -11
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +2 -26
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js +38 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +2 -9
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.js +2 -26
- package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js +35 -0
- package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-element/HTMLElement.d.ts +3 -10
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +2 -20
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-element/HTMLElementNamedNodeMap.js +29 -0
- package/lib/nodes/html-element/HTMLElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +2 -5
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +2 -12
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts +16 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js +20 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts +2 -9
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.js +2 -26
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js +36 -0
- package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-label-element/HTMLLabelElement.d.ts.map +1 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.js +1 -6
- package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +4 -10
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +2 -23
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js +33 -0
- package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +2 -9
- package/lib/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
- package/lib/nodes/html-option-element/HTMLOptionElement.js +2 -30
- package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
- package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js +39 -0
- package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +2 -9
- package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +2 -14
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts +16 -0
- package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js +20 -0
- package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +2 -9
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.js +2 -26
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js +36 -0
- package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +2 -9
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +2 -26
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js +36 -0
- package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js.map +1 -0
- package/lib/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
- package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +5 -2
- package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -1
- package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
- package/lib/nodes/node/NodeUtility.js +4 -15
- package/lib/nodes/node/NodeUtility.js.map +1 -1
- package/lib/nodes/svg-element/SVGElement.d.ts +3 -10
- package/lib/nodes/svg-element/SVGElement.d.ts.map +1 -1
- package/lib/nodes/svg-element/SVGElement.js +2 -20
- package/lib/nodes/svg-element/SVGElement.js.map +1 -1
- package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts +20 -0
- package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -0
- package/lib/nodes/svg-element/SVGElementNamedNodeMap.js +29 -0
- package/lib/nodes/svg-element/SVGElementNamedNodeMap.js.map +1 -0
- package/lib/query-selector/SelectorItem.js +1 -1
- package/lib/query-selector/SelectorItem.js.map +1 -1
- package/lib/xml-serializer/XMLSerializer.d.ts.map +1 -1
- package/lib/xml-serializer/XMLSerializer.js +3 -2
- package/lib/xml-serializer/XMLSerializer.js.map +1 -1
- package/package.json +1 -1
- package/src/css/declaration/AbstractCSSStyleDeclaration.ts +32 -20
- package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +4 -3
- package/src/named-node-map/INamedNodeMap.ts +26 -26
- package/src/named-node-map/NamedNodeMap.ts +135 -73
- package/src/nodes/element/Dataset.ts +19 -17
- package/src/nodes/element/Element.ts +27 -176
- package/src/nodes/element/ElementNamedNodeMap.ts +194 -0
- package/src/nodes/element/ElementUtility.ts +20 -18
- package/src/nodes/element/IElement.ts +5 -5
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +5 -33
- package/src/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.ts +48 -0
- package/src/nodes/html-button-element/HTMLButtonElement.ts +3 -33
- package/src/nodes/html-button-element/HTMLButtonElementNamedNodeMap.ts +56 -0
- package/src/nodes/html-element/HTMLElement.ts +4 -28
- package/src/nodes/html-element/HTMLElementNamedNodeMap.ts +38 -0
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +4 -18
- package/src/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.ts +26 -0
- package/src/nodes/html-input-element/HTMLInputElement.ts +4 -33
- package/src/nodes/html-input-element/HTMLInputElementNamedNodeMap.ts +57 -0
- package/src/nodes/html-label-element/HTMLLabelElement.ts +3 -6
- package/src/nodes/html-link-element/HTMLLinkElement.ts +4 -32
- package/src/nodes/html-link-element/HTMLLinkElementNamedNodeMap.ts +43 -0
- package/src/nodes/html-option-element/HTMLOptionElement.ts +3 -43
- package/src/nodes/html-option-element/HTMLOptionElementNamedNodeMap.ts +55 -0
- package/src/nodes/html-script-element/HTMLScriptElement.ts +3 -18
- package/src/nodes/html-script-element/HTMLScriptElementNamedNodeMap.ts +26 -0
- package/src/nodes/html-select-element/HTMLSelectElement.ts +4 -33
- package/src/nodes/html-select-element/HTMLSelectElementNamedNodeMap.ts +57 -0
- package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +3 -33
- package/src/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.ts +57 -0
- package/src/nodes/html-unknown-element/HTMLUnknownElement.ts +6 -2
- package/src/nodes/node/NodeUtility.ts +7 -24
- package/src/nodes/svg-element/SVGElement.ts +5 -28
- package/src/nodes/svg-element/SVGElementNamedNodeMap.ts +38 -0
- package/src/query-selector/SelectorItem.ts +1 -1
- package/src/xml-serializer/XMLSerializer.ts +4 -2
@@ -0,0 +1,57 @@
|
|
1
|
+
import IAttr from '../attr/IAttr.js';
|
2
|
+
import HTMLElementNamedNodeMap from '../html-element/HTMLElementNamedNodeMap.js';
|
3
|
+
import HTMLFormElement from '../html-form-element/HTMLFormElement.js';
|
4
|
+
import HTMLTextAreaElement from './HTMLTextAreaElement.js';
|
5
|
+
|
6
|
+
/**
|
7
|
+
* Named Node Map.
|
8
|
+
*
|
9
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap
|
10
|
+
*/
|
11
|
+
export default class HTMLTextAreaElementNamedNodeMap extends HTMLElementNamedNodeMap {
|
12
|
+
protected _ownerElement: HTMLTextAreaElement;
|
13
|
+
|
14
|
+
/**
|
15
|
+
* @override
|
16
|
+
*/
|
17
|
+
public override setNamedItem(item: IAttr): IAttr | null {
|
18
|
+
const replacedItem = super.setNamedItem(item);
|
19
|
+
|
20
|
+
if ((item.name === 'id' || item.name === 'name') && this._ownerElement._formNode) {
|
21
|
+
if (replacedItem && replacedItem.value) {
|
22
|
+
(<HTMLFormElement>this._ownerElement._formNode)._removeFormControlItem(
|
23
|
+
this._ownerElement,
|
24
|
+
replacedItem.value
|
25
|
+
);
|
26
|
+
}
|
27
|
+
if (item.value) {
|
28
|
+
(<HTMLFormElement>this._ownerElement._formNode)._appendFormControlItem(
|
29
|
+
this._ownerElement,
|
30
|
+
item.value
|
31
|
+
);
|
32
|
+
}
|
33
|
+
}
|
34
|
+
|
35
|
+
return replacedItem || null;
|
36
|
+
}
|
37
|
+
|
38
|
+
/**
|
39
|
+
* @override
|
40
|
+
*/
|
41
|
+
public override removeNamedItem(name: string): IAttr | null {
|
42
|
+
const removedItem = super.removeNamedItem(name);
|
43
|
+
|
44
|
+
if (
|
45
|
+
removedItem &&
|
46
|
+
(removedItem.name === 'id' || removedItem.name === 'name') &&
|
47
|
+
this._ownerElement._formNode
|
48
|
+
) {
|
49
|
+
(<HTMLFormElement>this._ownerElement._formNode)._removeFormControlItem(
|
50
|
+
this._ownerElement,
|
51
|
+
removedItem.value
|
52
|
+
);
|
53
|
+
}
|
54
|
+
|
55
|
+
return removedItem;
|
56
|
+
}
|
57
|
+
}
|
@@ -6,6 +6,7 @@ import IHTMLCollection from '../element/IHTMLCollection.js';
|
|
6
6
|
import IElement from '../element/IElement.js';
|
7
7
|
import NodeList from '../node/NodeList.js';
|
8
8
|
import HTMLCollection from '../element/HTMLCollection.js';
|
9
|
+
import HTMLElementNamedNodeMap from '../html-element/HTMLElementNamedNodeMap.js';
|
9
10
|
|
10
11
|
/**
|
11
12
|
* HTML Unknown Element.
|
@@ -43,7 +44,10 @@ export default class HTMLUnknownElement extends HTMLElement implements IHTMLElem
|
|
43
44
|
newElement._textAreaNode = this._textAreaNode;
|
44
45
|
newElement._observers = this._observers;
|
45
46
|
newElement._isValue = this._isValue;
|
46
|
-
|
47
|
+
|
48
|
+
for (let i = 0, max = this.attributes.length; i < max; i++) {
|
49
|
+
newElement.attributes.setNamedItem(this.attributes[i]);
|
50
|
+
}
|
47
51
|
|
48
52
|
(<INodeList<INode>>this.childNodes) = new NodeList();
|
49
53
|
(<IHTMLCollection<IElement>>this.children) = new HTMLCollection();
|
@@ -53,7 +57,7 @@ export default class HTMLUnknownElement extends HTMLElement implements IHTMLElem
|
|
53
57
|
this._textAreaNode = null;
|
54
58
|
this._observers = [];
|
55
59
|
this._isValue = null;
|
56
|
-
this.
|
60
|
+
(<HTMLElementNamedNodeMap>this.attributes) = new HTMLElementNamedNodeMap(this);
|
57
61
|
|
58
62
|
for (let i = 0, max = this.parentNode.childNodes.length; i < max; i++) {
|
59
63
|
if (this.parentNode.childNodes[i] === this) {
|
@@ -395,33 +395,16 @@ export default class NodeUtility {
|
|
395
395
|
* @param elementB
|
396
396
|
*/
|
397
397
|
public static attributeListsEqual(elementA: IElement, elementB: IElement): boolean {
|
398
|
-
|
399
|
-
|
400
|
-
|
401
|
-
|
402
|
-
|
403
|
-
|
404
|
-
|
405
|
-
return false;
|
406
|
-
}
|
407
|
-
|
408
|
-
for (let i = 0; i < lengthA; ++i) {
|
409
|
-
const attrA = listA[i];
|
410
|
-
|
411
|
-
if (
|
412
|
-
!listB.some((attrB) => {
|
413
|
-
return (
|
414
|
-
(typeof attrA === 'number' && typeof attrB === 'number' && attrA === attrB) ||
|
415
|
-
(typeof attrA === 'object' &&
|
416
|
-
typeof attrB === 'object' &&
|
417
|
-
NodeUtility.isEqualNode(attrA, attrB))
|
418
|
-
);
|
419
|
-
})
|
420
|
-
) {
|
398
|
+
for (let i = 0, max = elementA.attributes.length; i < max; i++) {
|
399
|
+
const attributeA = elementA.attributes[i];
|
400
|
+
const attributeB = elementB.attributes.getNamedItemNS(
|
401
|
+
attributeA.namespaceURI,
|
402
|
+
attributeA.localName
|
403
|
+
);
|
404
|
+
if (!attributeB || attributeB.value !== attributeA.value) {
|
421
405
|
return false;
|
422
406
|
}
|
423
407
|
}
|
424
|
-
|
425
408
|
return true;
|
426
409
|
}
|
427
410
|
|
@@ -2,10 +2,11 @@ import CSSStyleDeclaration from '../../css/declaration/CSSStyleDeclaration.js';
|
|
2
2
|
import Element from '../element/Element.js';
|
3
3
|
import ISVGElement from './ISVGElement.js';
|
4
4
|
import ISVGSVGElement from './ISVGSVGElement.js';
|
5
|
-
import IAttr from '../attr/IAttr.js';
|
6
5
|
import Event from '../../event/Event.js';
|
7
6
|
import Dataset from '../element/Dataset.js';
|
8
7
|
import HTMLElementUtility from '../html-element/HTMLElementUtility.js';
|
8
|
+
import INamedNodeMap from '../../named-node-map/INamedNodeMap.js';
|
9
|
+
import SVGElementNamedNodeMap from './SVGElementNamedNodeMap.js';
|
9
10
|
|
10
11
|
/**
|
11
12
|
* SVG Element.
|
@@ -14,6 +15,8 @@ import HTMLElementUtility from '../html-element/HTMLElementUtility.js';
|
|
14
15
|
* https://developer.mozilla.org/en-US/docs/Web/API/SVGElement.
|
15
16
|
*/
|
16
17
|
export default class SVGElement extends Element implements ISVGElement {
|
18
|
+
public override readonly attributes: INamedNodeMap = new SVGElementNamedNodeMap(this);
|
19
|
+
|
17
20
|
// Events
|
18
21
|
public onabort: (event: Event) => void | null = null;
|
19
22
|
public onerror: (event: Event) => void | null = null;
|
@@ -23,7 +26,7 @@ export default class SVGElement extends Element implements ISVGElement {
|
|
23
26
|
public onunload: (event: Event) => void | null = null;
|
24
27
|
|
25
28
|
// Private properties
|
26
|
-
|
29
|
+
public _style: CSSStyleDeclaration = null;
|
27
30
|
private _dataset: Dataset = null;
|
28
31
|
|
29
32
|
/**
|
@@ -109,30 +112,4 @@ export default class SVGElement extends Element implements ISVGElement {
|
|
109
112
|
public focus(): void {
|
110
113
|
HTMLElementUtility.focus(this);
|
111
114
|
}
|
112
|
-
|
113
|
-
/**
|
114
|
-
* @override
|
115
|
-
*/
|
116
|
-
public setAttributeNode(attribute: IAttr): IAttr | null {
|
117
|
-
const replacedAttribute = super.setAttributeNode(attribute);
|
118
|
-
|
119
|
-
if (attribute.name === 'style' && this._style) {
|
120
|
-
this._style.cssText = attribute.value;
|
121
|
-
}
|
122
|
-
|
123
|
-
return replacedAttribute;
|
124
|
-
}
|
125
|
-
|
126
|
-
/**
|
127
|
-
* @override
|
128
|
-
*/
|
129
|
-
public removeAttributeNode(attribute: IAttr): IAttr {
|
130
|
-
super.removeAttributeNode(attribute);
|
131
|
-
|
132
|
-
if (attribute.name === 'style' && this._style) {
|
133
|
-
this._style.cssText = '';
|
134
|
-
}
|
135
|
-
|
136
|
-
return attribute;
|
137
|
-
}
|
138
115
|
}
|
@@ -0,0 +1,38 @@
|
|
1
|
+
import IAttr from '../attr/IAttr.js';
|
2
|
+
import ElementNamedNodeMap from '../element/ElementNamedNodeMap.js';
|
3
|
+
import SVGElement from './SVGElement.js';
|
4
|
+
|
5
|
+
/**
|
6
|
+
* Named Node Map.
|
7
|
+
*
|
8
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap
|
9
|
+
*/
|
10
|
+
export default class SVGElementNamedNodeMap extends ElementNamedNodeMap {
|
11
|
+
protected _ownerElement: SVGElement;
|
12
|
+
|
13
|
+
/**
|
14
|
+
* @override
|
15
|
+
*/
|
16
|
+
public override setNamedItem(item: IAttr): IAttr | null {
|
17
|
+
const replacedItem = super.setNamedItem(item);
|
18
|
+
|
19
|
+
if (item.name === 'style' && this._ownerElement._style) {
|
20
|
+
this._ownerElement._style.cssText = item.value;
|
21
|
+
}
|
22
|
+
|
23
|
+
return replacedItem || null;
|
24
|
+
}
|
25
|
+
|
26
|
+
/**
|
27
|
+
* @override
|
28
|
+
*/
|
29
|
+
public override removeNamedItem(name: string): IAttr | null {
|
30
|
+
const removedItem = super.removeNamedItem(name);
|
31
|
+
|
32
|
+
if (removedItem && removedItem.name === 'style' && this._ownerElement._style) {
|
33
|
+
this._ownerElement._style.cssText = '';
|
34
|
+
}
|
35
|
+
|
36
|
+
return removedItem;
|
37
|
+
}
|
38
|
+
}
|
@@ -236,7 +236,7 @@ export default class SelectorItem {
|
|
236
236
|
let priorityWeight = 0;
|
237
237
|
|
238
238
|
for (const attribute of this.attributes) {
|
239
|
-
const elementAttribute = (<Element>element).
|
239
|
+
const elementAttribute = (<Element>element).attributes.getNamedItem(attribute.name);
|
240
240
|
|
241
241
|
if (!elementAttribute) {
|
242
242
|
return null;
|
@@ -110,11 +110,12 @@ export default class XMLSerializer {
|
|
110
110
|
private _getAttributes(element: IElement): string {
|
111
111
|
let attributeString = '';
|
112
112
|
|
113
|
-
if (!(<Element>element).
|
113
|
+
if (!(<Element>element).attributes.getNamedItem('is') && (<Element>element)._isValue) {
|
114
114
|
attributeString += ' is="' + (<Element>element)._isValue + '"';
|
115
115
|
}
|
116
116
|
|
117
|
-
for (
|
117
|
+
for (let i = 0, max = (<Element>element).attributes.length; i < max; i++) {
|
118
|
+
const attribute = (<Element>element).attributes[i];
|
118
119
|
if (attribute.value !== null) {
|
119
120
|
const escapedValue = this._options.escapeEntities
|
120
121
|
? Entities.escapeText(attribute.value)
|
@@ -122,6 +123,7 @@ export default class XMLSerializer {
|
|
122
123
|
attributeString += ' ' + attribute.name + '="' + escapedValue + '"';
|
123
124
|
}
|
124
125
|
}
|
126
|
+
|
125
127
|
return attributeString;
|
126
128
|
}
|
127
129
|
}
|