happy-dom 10.5.2 → 10.5.3

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.

Files changed (290) hide show
  1. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +20 -18
  2. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
  3. package/cjs/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  4. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +4 -3
  5. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
  6. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  7. package/cjs/named-node-map/INamedNodeMap.d.ts +26 -26
  8. package/cjs/named-node-map/INamedNodeMap.d.ts.map +1 -1
  9. package/cjs/named-node-map/NamedNodeMap.cjs +121 -81
  10. package/cjs/named-node-map/NamedNodeMap.cjs.map +1 -1
  11. package/cjs/named-node-map/NamedNodeMap.d.ts +57 -40
  12. package/cjs/named-node-map/NamedNodeMap.d.ts.map +1 -1
  13. package/cjs/nodes/element/Dataset.cjs +16 -17
  14. package/cjs/nodes/element/Dataset.cjs.map +1 -1
  15. package/cjs/nodes/element/Dataset.d.ts.map +1 -1
  16. package/cjs/nodes/element/Element.cjs +22 -133
  17. package/cjs/nodes/element/Element.cjs.map +1 -1
  18. package/cjs/nodes/element/Element.d.ts +9 -16
  19. package/cjs/nodes/element/Element.d.ts.map +1 -1
  20. package/cjs/nodes/element/ElementNamedNodeMap.cjs +152 -0
  21. package/cjs/nodes/element/ElementNamedNodeMap.cjs.map +1 -0
  22. package/cjs/nodes/element/ElementNamedNodeMap.d.ts +45 -0
  23. package/cjs/nodes/element/ElementNamedNodeMap.d.ts.map +1 -0
  24. package/cjs/nodes/element/ElementUtility.cjs +20 -15
  25. package/cjs/nodes/element/ElementUtility.cjs.map +1 -1
  26. package/cjs/nodes/element/ElementUtility.d.ts.map +1 -1
  27. package/cjs/nodes/element/IElement.d.ts +5 -5
  28. package/cjs/nodes/element/IElement.d.ts.map +1 -1
  29. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +2 -26
  30. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  31. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +7 -11
  32. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  33. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs +44 -0
  34. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs.map +1 -0
  35. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts +20 -0
  36. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -0
  37. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +2 -26
  38. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
  39. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +2 -9
  40. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  41. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs +41 -0
  42. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs.map +1 -0
  43. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts +20 -0
  44. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts.map +1 -0
  45. package/cjs/nodes/html-element/HTMLElement.cjs +2 -20
  46. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  47. package/cjs/nodes/html-element/HTMLElement.d.ts +3 -10
  48. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  49. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs +35 -0
  50. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs.map +1 -0
  51. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts +20 -0
  52. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -0
  53. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +2 -12
  54. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  55. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +2 -5
  56. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  57. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs +26 -0
  58. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs.map +1 -0
  59. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts +16 -0
  60. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -0
  61. package/cjs/nodes/html-input-element/HTMLInputElement.cjs +2 -26
  62. package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
  63. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +2 -9
  64. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  65. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs +42 -0
  66. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs.map +1 -0
  67. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts +20 -0
  68. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts.map +1 -0
  69. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +2 -23
  70. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  71. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +4 -10
  72. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  73. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs +39 -0
  74. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs.map +1 -0
  75. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts +20 -0
  76. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -0
  77. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs +2 -30
  78. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs.map +1 -1
  79. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts +2 -9
  80. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  81. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs +45 -0
  82. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs.map +1 -0
  83. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts +20 -0
  84. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts.map +1 -0
  85. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +2 -14
  86. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  87. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +2 -9
  88. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  89. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs +26 -0
  90. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs.map +1 -0
  91. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts +16 -0
  92. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts.map +1 -0
  93. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +2 -26
  94. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
  95. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts +2 -9
  96. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  97. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs +42 -0
  98. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs.map +1 -0
  99. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts +20 -0
  100. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts.map +1 -0
  101. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +2 -26
  102. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
  103. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +2 -9
  104. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  105. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs +42 -0
  106. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs.map +1 -0
  107. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts +20 -0
  108. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts.map +1 -0
  109. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs +5 -2
  110. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs.map +1 -1
  111. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  112. package/cjs/nodes/node/NodeUtility.cjs +4 -15
  113. package/cjs/nodes/node/NodeUtility.cjs.map +1 -1
  114. package/cjs/nodes/node/NodeUtility.d.ts.map +1 -1
  115. package/cjs/nodes/svg-element/SVGElement.cjs +2 -20
  116. package/cjs/nodes/svg-element/SVGElement.cjs.map +1 -1
  117. package/cjs/nodes/svg-element/SVGElement.d.ts +3 -10
  118. package/cjs/nodes/svg-element/SVGElement.d.ts.map +1 -1
  119. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs +35 -0
  120. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs.map +1 -0
  121. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts +20 -0
  122. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -0
  123. package/cjs/query-selector/SelectorItem.cjs +1 -1
  124. package/cjs/query-selector/SelectorItem.cjs.map +1 -1
  125. package/cjs/xml-serializer/XMLSerializer.cjs +3 -2
  126. package/cjs/xml-serializer/XMLSerializer.cjs.map +1 -1
  127. package/cjs/xml-serializer/XMLSerializer.d.ts.map +1 -1
  128. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  129. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +20 -18
  130. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  131. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  132. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +4 -3
  133. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
  134. package/lib/named-node-map/INamedNodeMap.d.ts +26 -26
  135. package/lib/named-node-map/INamedNodeMap.d.ts.map +1 -1
  136. package/lib/named-node-map/NamedNodeMap.d.ts +57 -40
  137. package/lib/named-node-map/NamedNodeMap.d.ts.map +1 -1
  138. package/lib/named-node-map/NamedNodeMap.js +121 -81
  139. package/lib/named-node-map/NamedNodeMap.js.map +1 -1
  140. package/lib/nodes/element/Dataset.d.ts.map +1 -1
  141. package/lib/nodes/element/Dataset.js +16 -17
  142. package/lib/nodes/element/Dataset.js.map +1 -1
  143. package/lib/nodes/element/Element.d.ts +9 -16
  144. package/lib/nodes/element/Element.d.ts.map +1 -1
  145. package/lib/nodes/element/Element.js +22 -133
  146. package/lib/nodes/element/Element.js.map +1 -1
  147. package/lib/nodes/element/ElementNamedNodeMap.d.ts +45 -0
  148. package/lib/nodes/element/ElementNamedNodeMap.d.ts.map +1 -0
  149. package/lib/nodes/element/ElementNamedNodeMap.js +146 -0
  150. package/lib/nodes/element/ElementNamedNodeMap.js.map +1 -0
  151. package/lib/nodes/element/ElementUtility.d.ts.map +1 -1
  152. package/lib/nodes/element/ElementUtility.js +20 -15
  153. package/lib/nodes/element/ElementUtility.js.map +1 -1
  154. package/lib/nodes/element/IElement.d.ts +5 -5
  155. package/lib/nodes/element/IElement.d.ts.map +1 -1
  156. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +7 -11
  157. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  158. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +2 -26
  159. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  160. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts +20 -0
  161. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -0
  162. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js +38 -0
  163. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js.map +1 -0
  164. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +2 -9
  165. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  166. package/lib/nodes/html-button-element/HTMLButtonElement.js +2 -26
  167. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  168. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts +20 -0
  169. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.d.ts.map +1 -0
  170. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js +35 -0
  171. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js.map +1 -0
  172. package/lib/nodes/html-element/HTMLElement.d.ts +3 -10
  173. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  174. package/lib/nodes/html-element/HTMLElement.js +2 -20
  175. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  176. package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts +20 -0
  177. package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -0
  178. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js +29 -0
  179. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js.map +1 -0
  180. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +2 -5
  181. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  182. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +2 -12
  183. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  184. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts +16 -0
  185. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -0
  186. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js +20 -0
  187. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js.map +1 -0
  188. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +2 -9
  189. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  190. package/lib/nodes/html-input-element/HTMLInputElement.js +2 -26
  191. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  192. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts +20 -0
  193. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.d.ts.map +1 -0
  194. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js +36 -0
  195. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js.map +1 -0
  196. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +4 -10
  197. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  198. package/lib/nodes/html-link-element/HTMLLinkElement.js +2 -23
  199. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  200. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts +20 -0
  201. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -0
  202. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js +33 -0
  203. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js.map +1 -0
  204. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +2 -9
  205. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  206. package/lib/nodes/html-option-element/HTMLOptionElement.js +2 -30
  207. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  208. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts +20 -0
  209. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.d.ts.map +1 -0
  210. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js +39 -0
  211. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js.map +1 -0
  212. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +2 -9
  213. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  214. package/lib/nodes/html-script-element/HTMLScriptElement.js +2 -14
  215. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  216. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts +16 -0
  217. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.d.ts.map +1 -0
  218. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js +20 -0
  219. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js.map +1 -0
  220. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +2 -9
  221. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  222. package/lib/nodes/html-select-element/HTMLSelectElement.js +2 -26
  223. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  224. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts +20 -0
  225. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.d.ts.map +1 -0
  226. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js +36 -0
  227. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js.map +1 -0
  228. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +2 -9
  229. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  230. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +2 -26
  231. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  232. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts +20 -0
  233. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.d.ts.map +1 -0
  234. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js +36 -0
  235. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js.map +1 -0
  236. package/lib/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  237. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +5 -2
  238. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -1
  239. package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
  240. package/lib/nodes/node/NodeUtility.js +4 -15
  241. package/lib/nodes/node/NodeUtility.js.map +1 -1
  242. package/lib/nodes/svg-element/SVGElement.d.ts +3 -10
  243. package/lib/nodes/svg-element/SVGElement.d.ts.map +1 -1
  244. package/lib/nodes/svg-element/SVGElement.js +2 -20
  245. package/lib/nodes/svg-element/SVGElement.js.map +1 -1
  246. package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts +20 -0
  247. package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -0
  248. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js +29 -0
  249. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js.map +1 -0
  250. package/lib/query-selector/SelectorItem.js +1 -1
  251. package/lib/query-selector/SelectorItem.js.map +1 -1
  252. package/lib/xml-serializer/XMLSerializer.d.ts.map +1 -1
  253. package/lib/xml-serializer/XMLSerializer.js +3 -2
  254. package/lib/xml-serializer/XMLSerializer.js.map +1 -1
  255. package/package.json +1 -1
  256. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +32 -20
  257. package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +4 -3
  258. package/src/named-node-map/INamedNodeMap.ts +26 -26
  259. package/src/named-node-map/NamedNodeMap.ts +135 -73
  260. package/src/nodes/element/Dataset.ts +19 -17
  261. package/src/nodes/element/Element.ts +27 -176
  262. package/src/nodes/element/ElementNamedNodeMap.ts +194 -0
  263. package/src/nodes/element/ElementUtility.ts +20 -18
  264. package/src/nodes/element/IElement.ts +5 -5
  265. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +5 -33
  266. package/src/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.ts +48 -0
  267. package/src/nodes/html-button-element/HTMLButtonElement.ts +3 -33
  268. package/src/nodes/html-button-element/HTMLButtonElementNamedNodeMap.ts +56 -0
  269. package/src/nodes/html-element/HTMLElement.ts +4 -28
  270. package/src/nodes/html-element/HTMLElementNamedNodeMap.ts +38 -0
  271. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +4 -18
  272. package/src/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.ts +26 -0
  273. package/src/nodes/html-input-element/HTMLInputElement.ts +4 -33
  274. package/src/nodes/html-input-element/HTMLInputElementNamedNodeMap.ts +57 -0
  275. package/src/nodes/html-link-element/HTMLLinkElement.ts +4 -32
  276. package/src/nodes/html-link-element/HTMLLinkElementNamedNodeMap.ts +43 -0
  277. package/src/nodes/html-option-element/HTMLOptionElement.ts +3 -43
  278. package/src/nodes/html-option-element/HTMLOptionElementNamedNodeMap.ts +55 -0
  279. package/src/nodes/html-script-element/HTMLScriptElement.ts +3 -18
  280. package/src/nodes/html-script-element/HTMLScriptElementNamedNodeMap.ts +26 -0
  281. package/src/nodes/html-select-element/HTMLSelectElement.ts +4 -33
  282. package/src/nodes/html-select-element/HTMLSelectElementNamedNodeMap.ts +57 -0
  283. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +3 -33
  284. package/src/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.ts +57 -0
  285. package/src/nodes/html-unknown-element/HTMLUnknownElement.ts +6 -2
  286. package/src/nodes/node/NodeUtility.ts +7 -24
  287. package/src/nodes/svg-element/SVGElement.ts +5 -28
  288. package/src/nodes/svg-element/SVGElementNamedNodeMap.ts +38 -0
  289. package/src/query-selector/SelectorItem.ts +1 -1
  290. package/src/xml-serializer/XMLSerializer.ts +4 -2
@@ -1 +1 @@
1
- {"version":3,"file":"SelectorItem.js","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SelectorItem.js","sourceRoot":"","sources":["../../src/query-selector/SelectorItem.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"XMLSerializer.d.ts","sourceRoot":"","sources":["../../src/xml-serializer/XMLSerializer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAO3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAC1B,QAAQ;;;MAGb;IAEF;;;;;;OAMG;gBACS,OAAO,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAYhF;;;;;OAKG;IACI,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IA0D7C;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAiBtB"}
1
+ {"version":3,"file":"XMLSerializer.d.ts","sourceRoot":"","sources":["../../src/xml-serializer/XMLSerializer.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,MAAM,wBAAwB,CAAC;AAO3C;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,aAAa;IAC1B,QAAQ;;;MAGb;IAEF;;;;;;OAMG;gBACS,OAAO,CAAC,EAAE;QAAE,kBAAkB,CAAC,EAAE,OAAO,CAAC;QAAC,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE;IAYhF;;;;;OAKG;IACI,iBAAiB,CAAC,IAAI,EAAE,KAAK,GAAG,MAAM;IA0D7C;;;;;OAKG;IACH,OAAO,CAAC,cAAc;CAmBtB"}
@@ -89,10 +89,11 @@ export default class XMLSerializer {
89
89
  */
90
90
  _getAttributes(element) {
91
91
  let attributeString = '';
92
- if (!element._attributes.is && element._isValue) {
92
+ if (!element.attributes.getNamedItem('is') && element._isValue) {
93
93
  attributeString += ' is="' + element._isValue + '"';
94
94
  }
95
- for (const attribute of Object.values(element._attributes)) {
95
+ for (let i = 0, max = element.attributes.length; i < max; i++) {
96
+ const attribute = element.attributes[i];
96
97
  if (attribute.value !== null) {
97
98
  const escapedValue = this._options.escapeEntities
98
99
  ? Entities.escapeText(attribute.value)
@@ -1 +1 @@
1
- {"version":3,"file":"XMLSerializer.js","sourceRoot":"","sources":["../../src/xml-serializer/XMLSerializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XMLSerializer.js","sourceRoot":"","sources":["../../src/xml-serializer/XMLSerializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "10.5.2",
3
+ "version": "10.5.3",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -1,10 +1,11 @@
1
1
  import IElement from '../../nodes/element/IElement.js';
2
- import Attr from '../../nodes/attr/Attr.js';
2
+ import IAttr from '../../nodes/attr/IAttr.js';
3
3
  import CSSRule from '../CSSRule.js';
4
4
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum.js';
5
5
  import DOMException from '../../exception/DOMException.js';
6
6
  import CSSStyleDeclarationElementStyle from './element-style/CSSStyleDeclarationElementStyle.js';
7
7
  import CSSStyleDeclarationPropertyManager from './property-manager/CSSStyleDeclarationPropertyManager.js';
8
+ import NamedNodeMap from '../../named-node-map/NamedNodeMap.js';
8
9
 
9
10
  /**
10
11
  * CSS Style Declaration.
@@ -77,17 +78,21 @@ export default abstract class AbstractCSSStyleDeclaration {
77
78
 
78
79
  if (this._ownerElement) {
79
80
  const style = new CSSStyleDeclarationPropertyManager({ cssText });
80
- if (!this._ownerElement['_attributes']['style']) {
81
- Attr._ownerDocument = this._ownerElement.ownerDocument;
82
- this._ownerElement['_attributes']['style'] = new Attr();
83
- this._ownerElement['_attributes']['style'].name = 'style';
81
+ let styleAttribute = <IAttr>this._ownerElement.attributes['style'];
82
+
83
+ if (!styleAttribute) {
84
+ styleAttribute = this._ownerElement.ownerDocument.createAttribute('style');
85
+ // We use "_setNamedItemWithoutConsequences" here to avoid triggering setting "Element.style.cssText" when setting the "style" attribute.
86
+ (<NamedNodeMap>this._ownerElement.attributes)._setNamedItemWithoutConsequences(
87
+ styleAttribute
88
+ );
84
89
  }
85
90
 
86
91
  if (this._ownerElement.isConnected) {
87
92
  this._ownerElement.ownerDocument['_cacheID']++;
88
93
  }
89
94
 
90
- this._ownerElement['_attributes']['style'].value = style.toString();
95
+ styleAttribute.value = style.toString();
91
96
  } else {
92
97
  this._style = new CSSStyleDeclarationPropertyManager({ cssText });
93
98
  }
@@ -130,20 +135,25 @@ export default abstract class AbstractCSSStyleDeclaration {
130
135
  if (!stringValue) {
131
136
  this.removeProperty(name);
132
137
  } else if (this._ownerElement) {
133
- if (!this._ownerElement['_attributes']['style']) {
134
- Attr._ownerDocument = this._ownerElement.ownerDocument;
135
- this._ownerElement['_attributes']['style'] = new Attr();
136
- this._ownerElement['_attributes']['style'].name = 'style';
137
- }
138
+ let styleAttribute = <IAttr>this._ownerElement.attributes['style'];
138
139
 
139
- const style = this._elementStyle.getElementStyle();
140
- style.set(name, stringValue, !!priority);
140
+ if (!styleAttribute) {
141
+ styleAttribute = this._ownerElement.ownerDocument.createAttribute('style');
142
+
143
+ // We use "_setNamedItemWithoutConsequences" here to avoid triggering setting "Element.style.cssText" when setting the "style" attribute.
144
+ (<NamedNodeMap>this._ownerElement.attributes)._setNamedItemWithoutConsequences(
145
+ styleAttribute
146
+ );
147
+ }
141
148
 
142
149
  if (this._ownerElement.isConnected) {
143
150
  this._ownerElement.ownerDocument['_cacheID']++;
144
151
  }
145
152
 
146
- this._ownerElement['_attributes']['style'].value = style.toString();
153
+ const style = this._elementStyle.getElementStyle();
154
+ style.set(name, stringValue, !!priority);
155
+
156
+ styleAttribute.value = style.toString();
147
157
  } else {
148
158
  this._style.set(name, stringValue, !!priority);
149
159
  }
@@ -168,14 +178,16 @@ export default abstract class AbstractCSSStyleDeclaration {
168
178
  const style = this._elementStyle.getElementStyle();
169
179
  style.remove(name);
170
180
  const newCSSText = style.toString();
171
- if (newCSSText) {
172
- if (this._ownerElement.isConnected) {
173
- this._ownerElement.ownerDocument['_cacheID']++;
174
- }
175
181
 
176
- this._ownerElement['_attributes']['style'].value = newCSSText;
182
+ if (this._ownerElement.isConnected) {
183
+ this._ownerElement.ownerDocument['_cacheID']++;
184
+ }
185
+
186
+ if (newCSSText) {
187
+ (<IAttr>this._ownerElement.attributes['style']).value = newCSSText;
177
188
  } else {
178
- delete this._ownerElement['_attributes']['style'];
189
+ // We use "_removeNamedItemWithoutConsequences" here to avoid triggering setting "Element.style.cssText" when setting the "style" attribute.
190
+ (<NamedNodeMap>this._ownerElement.attributes)._removeNamedItemWithoutConsequences('style');
179
191
  }
180
192
  } else {
181
193
  this._style.remove(name);
@@ -63,7 +63,7 @@ export default class CSSStyleDeclarationElementStyle {
63
63
  return this.getComputedElementStyle();
64
64
  }
65
65
 
66
- const cssText = this.element['_attributes']['style']?.value;
66
+ const cssText = this.element.attributes['style']?.value;
67
67
 
68
68
  if (cssText) {
69
69
  if (this.cache.propertyManager && this.cache.cssText === cssText) {
@@ -182,8 +182,9 @@ export default class CSSStyleDeclarationElementStyle {
182
182
  elementCSSText += cssText.cssText;
183
183
  }
184
184
 
185
- if (parentElement.element['_attributes']['style']?.value) {
186
- elementCSSText += parentElement.element['_attributes']['style'].value;
185
+ const elementStyleAttribute = (<IElement>parentElement.element).attributes['style'];
186
+ if (elementStyleAttribute) {
187
+ elementCSSText += elementStyleAttribute.value;
187
188
  }
188
189
 
189
190
  CSSStyleDeclarationCSSParser.parse(elementCSSText, (name, value, important) => {
@@ -6,65 +6,65 @@ import IAttr from '../nodes/attr/IAttr.js';
6
6
  * Reference:
7
7
  * https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.
8
8
  */
9
- export default interface INamedNodeMap extends Iterable<IAttr> {
9
+ export default interface INamedNodeMap {
10
10
  [index: number]: IAttr;
11
11
  [Symbol.toStringTag]: string;
12
12
  readonly length: number;
13
13
 
14
14
  /**
15
- * Returns attribute by index.
15
+ * Returns item by index.
16
16
  *
17
17
  * @param index Index.
18
18
  */
19
- item: (index: number) => IAttr;
19
+ item: (index: number) => IAttr | null;
20
20
 
21
21
  /**
22
- * Returns attribute by name.
22
+ * Returns named item.
23
23
  *
24
- * @param qualifiedName Name.
25
- * @returns Attribute.
24
+ * @param name Name.
25
+ * @returns Itme.
26
26
  */
27
- getNamedItem: (qualifiedName: string) => IAttr;
27
+ getNamedItem(name: string): IAttr | null;
28
28
 
29
29
  /**
30
- * Returns attribute by name and namespace.
30
+ * Returns item by name and namespace.
31
31
  *
32
32
  * @param namespace Namespace.
33
33
  * @param localName Local name of the attribute.
34
- * @returns Attribute.
34
+ * @returns Item.
35
35
  */
36
- getNamedItemNS: (namespace: string, localName: string) => IAttr;
36
+ getNamedItemNS(namespace: string, localName: string): IAttr | null;
37
37
 
38
38
  /**
39
- * Adds a new attribute node.
39
+ * Sets named item.
40
40
  *
41
- * @param attr Attribute.
42
- * @returns Replaced attribute.
41
+ * @param item Item.
42
+ * @returns Replaced item.
43
43
  */
44
- setNamedItem: (attr: IAttr) => IAttr;
44
+ setNamedItem(item: IAttr): IAttr | null;
45
45
 
46
46
  /**
47
- * Adds a new namespaced attribute node.
47
+ * Adds a new namespaced item.
48
48
  *
49
- * @param attr Attribute.
50
- * @returns Replaced attribute.
49
+ * @param item Item.
50
+ * @returns Replaced item.
51
51
  */
52
- setNamedItemNS: (attr: IAttr) => IAttr;
52
+ setNamedItemNS(item: IAttr): IAttr | null;
53
53
 
54
54
  /**
55
- * Removes an attribute.
55
+ * Removes an item.
56
56
  *
57
- * @param qualifiedName Name of the attribute.
58
- * @returns Removed attribute.
57
+ * @param name Name of item.
58
+ * @returns Removed item.
59
59
  */
60
- removeNamedItem: (qualifiedName: string) => IAttr;
60
+ removeNamedItem(name: string): IAttr | null;
61
61
 
62
62
  /**
63
- * Removes a namespaced attribute.
63
+ * Removes a namespaced item.
64
64
  *
65
65
  * @param namespace Namespace.
66
- * @param localName Local name of the attribute.
67
- * @returns Removed attribute.
66
+ * @param localName Local name of the item.
67
+ * @returns Removed item.
68
68
  */
69
- removeNamedItemNS: (namespace: string, localName: string) => IAttr;
69
+ removeNamedItemNS(namespace: string, localName: string): IAttr | null;
70
70
  }
@@ -1,145 +1,207 @@
1
- import type Element from '../nodes/element/Element.js';
2
- import IAttr from '../nodes/attr/IAttr.js';
3
1
  import INamedNodeMap from './INamedNodeMap.js';
2
+ import IAttr from '../nodes/attr/IAttr.js';
4
3
 
5
4
  /**
6
- * NamedNodeMap.
5
+ * Named Node Map.
7
6
  *
8
- * Reference:
9
- * https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap.
7
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/NamedNodeMap
10
8
  */
11
9
  export default class NamedNodeMap implements INamedNodeMap {
12
10
  [index: number]: IAttr;
11
+ public length = 0;
12
+ protected _namedItems: { [k: string]: IAttr } = {};
13
13
 
14
14
  /**
15
- * Reference to the element.
15
+ * Returns string.
16
+ *
17
+ * @returns string.
16
18
  */
17
- #ownerElement: Element;
19
+ public get [Symbol.toStringTag](): string {
20
+ return 'NamedNodeMap';
21
+ }
18
22
 
19
23
  /**
20
- * Constructor.
24
+ * Iterator.
21
25
  *
22
- * @param element Associated element.
26
+ * @returns Iterator.
23
27
  */
24
- constructor(element: Element) {
25
- this.#ownerElement = element;
28
+ public *[Symbol.iterator](): IterableIterator<IAttr> {
29
+ for (let i = 0, max = this.length; i < max; i++) {
30
+ yield this[i];
31
+ }
26
32
  }
27
33
 
28
34
  /**
29
- * Returns string.
35
+ * Returns item by index.
30
36
  *
31
- * @returns string.
37
+ * @param index Index.
32
38
  */
33
- public get [Symbol.toStringTag](): string {
34
- return this.constructor.name;
39
+ public item(index: number): IAttr | null {
40
+ return index >= 0 && this[index] ? this[index] : null;
35
41
  }
36
42
 
37
43
  /**
38
- * Length.
44
+ * Returns named item.
39
45
  *
40
- * @returns Length.
46
+ * @param name Name.
47
+ * @returns Itme.
41
48
  */
42
- public get length(): number {
43
- return Object.keys(this.#ownerElement._attributes).length;
49
+ public getNamedItem(name: string): IAttr | null {
50
+ return this._namedItems[name] || null;
44
51
  }
45
52
 
46
53
  /**
47
- * Returns attribute by index.
54
+ * Returns item by name and namespace.
48
55
  *
49
- * @param index Index.
56
+ * @param namespace Namespace.
57
+ * @param localName Local name of the attribute.
58
+ * @returns Item.
50
59
  */
51
- public item(index: number): IAttr | null {
52
- if (index < 0) {
53
- return null;
60
+ public getNamedItemNS(namespace: string, localName: string): IAttr | null {
61
+ const attribute = this.getNamedItem(localName);
62
+
63
+ if (attribute && attribute.namespaceURI === namespace && attribute.localName === localName) {
64
+ return attribute;
65
+ }
66
+
67
+ for (let i = 0, max = this.length; i < max; i++) {
68
+ if (this[i].namespaceURI === namespace && this[i].localName === localName) {
69
+ return this[i];
70
+ }
54
71
  }
55
- const attr = Object.values(this.#ownerElement._attributes)[index];
56
- return attr ? attr : null;
72
+
73
+ return null;
57
74
  }
58
75
 
59
76
  /**
60
- * Returns attribute by name.
77
+ * Sets named item.
61
78
  *
62
- * @param qualifiedName Name.
63
- * @returns Attribute.
79
+ * @param item Item.
80
+ * @returns Replaced item.
64
81
  */
65
- public getNamedItem(qualifiedName: string): IAttr | null {
66
- return this.#ownerElement.getAttributeNode(qualifiedName);
82
+ public setNamedItem(item: IAttr): IAttr | null {
83
+ return this._setNamedItemWithoutConsequences(item);
67
84
  }
68
85
 
69
86
  /**
70
- * Returns attribute by name and namespace.
87
+ * Adds a new namespaced item.
71
88
  *
72
- * @param namespace Namespace.
73
- * @param localName Local name of the attribute.
74
- * @returns Attribute.
89
+ * @alias setNamedItem()
90
+ * @param item Item.
91
+ * @returns Replaced item.
75
92
  */
76
- public getNamedItemNS(namespace: string, localName: string): IAttr | null {
77
- return this.#ownerElement.getAttributeNodeNS(namespace, localName);
93
+ public setNamedItemNS(item: IAttr): IAttr | null {
94
+ return this.setNamedItem(item);
78
95
  }
79
96
 
80
97
  /**
81
- * Adds a new attribute node.
98
+ * Removes an item.
82
99
  *
83
- * @param attr Attribute.
84
- * @returns Replaced attribute.
100
+ * @param name Name of item.
101
+ * @returns Removed item.
85
102
  */
86
- public setNamedItem(attr: IAttr): IAttr {
87
- return this.#ownerElement.setAttributeNode(attr);
103
+ public removeNamedItem(name: string): IAttr | null {
104
+ return this._removeNamedItemWithoutConsequences(name);
88
105
  }
89
106
 
90
107
  /**
91
- * Adds a new namespaced attribute node.
108
+ * Removes a namespaced item.
92
109
  *
93
- * @param attr Attribute.
94
- * @returns Replaced attribute.
110
+ * @param namespace Namespace.
111
+ * @param localName Local name of the item.
112
+ * @returns Removed item.
95
113
  */
96
- public setNamedItemNS(attr: IAttr): IAttr {
97
- return this.#ownerElement.setAttributeNodeNS(attr);
114
+ public removeNamedItemNS(namespace: string, localName: string): IAttr | null {
115
+ const attribute = this.getNamedItemNS(namespace, localName);
116
+ if (attribute) {
117
+ return this.removeNamedItem(attribute.name);
118
+ }
119
+ return null;
98
120
  }
99
121
 
100
122
  /**
101
- * Removes an attribute.
123
+ * Sets named item without calling listeners for certain attributes.
102
124
  *
103
- * @param qualifiedName Name of the attribute.
104
- * @returns Removed attribute.
125
+ * @param item Item.
126
+ * @returns Replaced item.
105
127
  */
106
- public removeNamedItem(qualifiedName: string): IAttr | null {
107
- const attr = this.getNamedItem(qualifiedName);
128
+ public _setNamedItemWithoutConsequences(item: IAttr): IAttr | null {
129
+ if (item.name) {
130
+ const replacedItem = this._namedItems[item.name] || null;
131
+
132
+ this._namedItems[item.name] = item;
133
+
134
+ if (replacedItem) {
135
+ this._removeNamedItemIndex(replacedItem);
136
+ }
108
137
 
109
- if (attr) {
110
- this.#ownerElement.removeAttributeNode(attr);
138
+ this[this.length] = item;
139
+ this.length++;
140
+
141
+ if (this._isValidPropertyName(item.name)) {
142
+ this[item.name] = item;
143
+ }
144
+
145
+ return replacedItem;
111
146
  }
112
- return attr;
147
+ return null;
113
148
  }
114
149
 
115
150
  /**
116
- * Removes a namespaced attribute.
151
+ * Removes an item without calling listeners for certain attributes.
117
152
  *
118
- * @param namespace Namespace.
119
- * @param localName Local name of the attribute.
120
- * @returns Removed attribute.
153
+ * @param name Name of item.
154
+ * @returns Removed item.
121
155
  */
122
- public removeNamedItemNS(namespace: string, localName: string): IAttr | null {
123
- const attr = this.getNamedItemNS(namespace, localName);
156
+ public _removeNamedItemWithoutConsequences(name: string): IAttr | null {
157
+ const removedItem = this._namedItems[name] || null;
124
158
 
125
- if (attr) {
126
- this.#ownerElement.removeAttributeNode(attr);
159
+ if (!removedItem) {
160
+ return null;
127
161
  }
128
- return attr;
162
+
163
+ this._removeNamedItemIndex(removedItem);
164
+
165
+ if (this[name] === removedItem) {
166
+ delete this[name];
167
+ }
168
+
169
+ delete this._namedItems[name];
170
+
171
+ return removedItem;
129
172
  }
130
173
 
131
174
  /**
132
- * Iterator.
175
+ * Removes an item from index.
133
176
  *
134
- * @returns Iterator.
177
+ * @param item Item.
135
178
  */
136
- public [Symbol.iterator](): Iterator<IAttr> {
137
- let index = -1;
138
- return {
139
- next: () => {
140
- index++;
141
- return { value: this.item(index), done: index >= this.length };
179
+ protected _removeNamedItemIndex(item: IAttr): void {
180
+ for (let i = 0; i < this.length; i++) {
181
+ if (this[i] === item) {
182
+ for (let b = i; b < this.length; b++) {
183
+ if (b < this.length - 1) {
184
+ this[b] = this[b + 1];
185
+ } else {
186
+ delete this[b];
187
+ }
188
+ }
189
+ this.length--;
190
+ break;
142
191
  }
143
- };
192
+ }
193
+ }
194
+
195
+ /**
196
+ * Returns "true" if the property name is valid.
197
+ *
198
+ * @param name Name.
199
+ * @returns True if the property name is valid.
200
+ */
201
+ protected _isValidPropertyName(name: string): boolean {
202
+ return (
203
+ !this.constructor.prototype.hasOwnProperty(name) &&
204
+ (isNaN(Number(name)) || name.includes('.'))
205
+ );
144
206
  }
145
207
  }
@@ -20,11 +20,12 @@ export default class Dataset {
20
20
  constructor(element: Element) {
21
21
  // Build the initial dataset record from all data attributes.
22
22
  const dataset: DatasetRecord = {};
23
- const attributes = element._attributes;
24
- for (const name of Object.keys(attributes)) {
25
- if (name.startsWith('data-')) {
26
- const key = Dataset.kebabToCamelCase(name.replace('data-', ''));
27
- dataset[key] = attributes[name].value;
23
+
24
+ for (let i = 0, max = element.attributes.length; i < max; i++) {
25
+ const attribute = element.attributes[i];
26
+ if (attribute.name.startsWith('data-')) {
27
+ const key = Dataset.kebabToCamelCase(attribute.name.replace('data-', ''));
28
+ dataset[key] = attribute.value;
28
29
  }
29
30
  }
30
31
 
@@ -32,9 +33,9 @@ export default class Dataset {
32
33
  // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Proxy
33
34
  this.proxy = new Proxy(dataset, {
34
35
  get(dataset: DatasetRecord, key: string): string {
35
- const name = 'data-' + Dataset.camelCaseToKebab(key);
36
- if (name in attributes) {
37
- return (dataset[key] = attributes[name].value);
36
+ const attribute = element.attributes.getNamedItem('data-' + Dataset.camelCaseToKebab(key));
37
+ if (attribute) {
38
+ return (dataset[key] = attribute.value);
38
39
  }
39
40
  delete dataset[key];
40
41
  return undefined;
@@ -45,10 +46,10 @@ export default class Dataset {
45
46
  return true;
46
47
  },
47
48
  deleteProperty(dataset: DatasetRecord, key: string): boolean {
48
- const name = 'data-' + Dataset.camelCaseToKebab(key);
49
- const result1 = delete attributes[name];
50
- const result2 = delete dataset[key];
51
- return result1 && result2;
49
+ return (
50
+ !!element.attributes.removeNamedItem('data-' + Dataset.camelCaseToKebab(key)) &&
51
+ delete dataset[key]
52
+ );
52
53
  },
53
54
  ownKeys(dataset: DatasetRecord): string[] {
54
55
  // According to Mozilla we have to update the dataset object (target) to contain the same keys as what we return:
@@ -56,11 +57,12 @@ export default class Dataset {
56
57
  // "The result List must contain the keys of all non-configurable own properties of the target object."
57
58
  const keys = [];
58
59
  const deleteKeys = [];
59
- for (const name of Object.keys(attributes)) {
60
- if (name.startsWith('data-')) {
61
- const key = Dataset.kebabToCamelCase(name.replace('data-', ''));
60
+ for (let i = 0, max = element.attributes.length; i < max; i++) {
61
+ const attribute = element.attributes[i];
62
+ if (attribute.name.startsWith('data-')) {
63
+ const key = Dataset.kebabToCamelCase(attribute.name.replace('data-', ''));
62
64
  keys.push(key);
63
- dataset[key] = attributes[name].value;
65
+ dataset[key] = attribute.value;
64
66
  if (!dataset[key]) {
65
67
  deleteKeys.push(key);
66
68
  }
@@ -72,7 +74,7 @@ export default class Dataset {
72
74
  return keys;
73
75
  },
74
76
  has(_dataset: DatasetRecord, key: string): boolean {
75
- return !!attributes['data-' + Dataset.camelCaseToKebab(key)];
77
+ return !!element.attributes.getNamedItem('data-' + Dataset.camelCaseToKebab(key));
76
78
  }
77
79
  });
78
80
  }