happy-dom 13.0.7 → 13.1.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.

Files changed (606) hide show
  1. package/cjs/PropertySymbol.cjs +69 -2
  2. package/cjs/PropertySymbol.cjs.map +1 -1
  3. package/cjs/PropertySymbol.d.ts +67 -1
  4. package/cjs/PropertySymbol.d.ts.map +1 -1
  5. package/cjs/browser/utilities/BrowserFrameNavigator.cjs +1 -1
  6. package/cjs/browser/utilities/BrowserFrameNavigator.cjs.map +1 -1
  7. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs +17 -16
  8. package/cjs/css/declaration/AbstractCSSStyleDeclaration.cjs.map +1 -1
  9. package/cjs/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  10. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs +43 -26
  11. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.cjs.map +1 -1
  12. package/cjs/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  13. package/cjs/dom-implementation/DOMImplementation.cjs +6 -6
  14. package/cjs/dom-implementation/DOMImplementation.cjs.map +1 -1
  15. package/cjs/dom-parser/DOMParser.cjs +2 -2
  16. package/cjs/dom-parser/DOMParser.cjs.map +1 -1
  17. package/cjs/dom-parser/DOMParser.d.ts.map +1 -1
  18. package/cjs/event/Event.cjs +3 -3
  19. package/cjs/event/Event.cjs.map +1 -1
  20. package/cjs/event/EventTarget.cjs +4 -4
  21. package/cjs/event/EventTarget.cjs.map +1 -1
  22. package/cjs/fetch/Request.cjs +2 -1
  23. package/cjs/fetch/Request.cjs.map +1 -1
  24. package/cjs/fetch/Request.d.ts +4 -4
  25. package/cjs/fetch/Request.d.ts.map +1 -1
  26. package/cjs/form-data/FormData.cjs +7 -7
  27. package/cjs/form-data/FormData.cjs.map +1 -1
  28. package/cjs/mutation-observer/MutationObserver.cjs +3 -3
  29. package/cjs/mutation-observer/MutationObserver.cjs.map +1 -1
  30. package/cjs/named-node-map/NamedNodeMap.cjs +10 -8
  31. package/cjs/named-node-map/NamedNodeMap.cjs.map +1 -1
  32. package/cjs/named-node-map/NamedNodeMap.d.ts.map +1 -1
  33. package/cjs/nodes/attr/Attr.cjs +84 -15
  34. package/cjs/nodes/attr/Attr.cjs.map +1 -1
  35. package/cjs/nodes/attr/Attr.d.ts +40 -8
  36. package/cjs/nodes/attr/Attr.d.ts.map +1 -1
  37. package/cjs/nodes/character-data/CharacterData.cjs +2 -2
  38. package/cjs/nodes/character-data/CharacterData.cjs.map +1 -1
  39. package/cjs/nodes/child-node/ChildNodeUtility.cjs +8 -8
  40. package/cjs/nodes/child-node/ChildNodeUtility.cjs.map +1 -1
  41. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs +27 -3
  42. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.cjs.map +1 -1
  43. package/cjs/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  44. package/cjs/nodes/comment/Comment.cjs +28 -2
  45. package/cjs/nodes/comment/Comment.cjs.map +1 -1
  46. package/cjs/nodes/comment/Comment.d.ts +3 -1
  47. package/cjs/nodes/comment/Comment.d.ts.map +1 -1
  48. package/cjs/nodes/document/Document.cjs +95 -41
  49. package/cjs/nodes/document/Document.cjs.map +1 -1
  50. package/cjs/nodes/document/Document.d.ts +45 -10
  51. package/cjs/nodes/document/Document.d.ts.map +1 -1
  52. package/cjs/nodes/document/IDocument.d.ts +2 -1
  53. package/cjs/nodes/document/IDocument.d.ts.map +1 -1
  54. package/cjs/nodes/document-fragment/DocumentFragment.cjs +8 -6
  55. package/cjs/nodes/document-fragment/DocumentFragment.cjs.map +1 -1
  56. package/cjs/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  57. package/cjs/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  58. package/cjs/nodes/document-type/DocumentType.cjs +58 -7
  59. package/cjs/nodes/document-type/DocumentType.cjs.map +1 -1
  60. package/cjs/nodes/document-type/DocumentType.d.ts +24 -4
  61. package/cjs/nodes/document-type/DocumentType.d.ts.map +1 -1
  62. package/cjs/nodes/element/Dataset.cjs +14 -14
  63. package/cjs/nodes/element/Dataset.cjs.map +1 -1
  64. package/cjs/nodes/element/Dataset.d.ts +1 -1
  65. package/cjs/nodes/element/Dataset.d.ts.map +1 -1
  66. package/cjs/nodes/element/Element.cjs +142 -55
  67. package/cjs/nodes/element/Element.cjs.map +1 -1
  68. package/cjs/nodes/element/Element.d.ts +77 -11
  69. package/cjs/nodes/element/Element.d.ts.map +1 -1
  70. package/cjs/nodes/element/ElementNamedNodeMap.cjs +33 -30
  71. package/cjs/nodes/element/ElementNamedNodeMap.cjs.map +1 -1
  72. package/cjs/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  73. package/cjs/nodes/element/ElementUtility.cjs +19 -19
  74. package/cjs/nodes/element/ElementUtility.cjs.map +1 -1
  75. package/cjs/nodes/element/ElementUtility.d.ts.map +1 -1
  76. package/cjs/nodes/element/IElement.d.ts +3 -3
  77. package/cjs/nodes/element/IElement.d.ts.map +1 -1
  78. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +6 -6
  79. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
  80. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  81. package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  82. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs +7 -5
  83. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.cjs.map +1 -1
  84. package/cjs/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  85. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs +25 -1
  86. package/cjs/nodes/html-base-element/HTMLBaseElement.cjs.map +1 -1
  87. package/cjs/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  88. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +27 -8
  89. package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
  90. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  91. package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  92. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs +7 -7
  93. package/cjs/nodes/html-button-element/HTMLButtonElementNamedNodeMap.cjs.map +1 -1
  94. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs +44 -1
  95. package/cjs/nodes/html-dialog-element/HTMLDialogElement.cjs.map +1 -1
  96. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  97. package/cjs/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  98. package/cjs/nodes/html-document/HTMLDocument.cjs +25 -1
  99. package/cjs/nodes/html-document/HTMLDocument.cjs.map +1 -1
  100. package/cjs/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  101. package/cjs/nodes/html-element/HTMLElement.cjs +137 -32
  102. package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
  103. package/cjs/nodes/html-element/HTMLElement.d.ts +91 -14
  104. package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
  105. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs +4 -3
  106. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.cjs.map +1 -1
  107. package/cjs/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  108. package/cjs/nodes/html-element/HTMLElementUtility.cjs +12 -10
  109. package/cjs/nodes/html-element/HTMLElementUtility.cjs.map +1 -1
  110. package/cjs/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  111. package/cjs/nodes/html-element/IHTMLElement.d.ts +3 -0
  112. package/cjs/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  113. package/cjs/nodes/html-form-element/HTMLFormElement.cjs +62 -30
  114. package/cjs/nodes/html-form-element/HTMLFormElement.cjs.map +1 -1
  115. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  116. package/cjs/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  117. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +5 -5
  118. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
  119. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  120. package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  121. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs +27 -1
  122. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.cjs.map +1 -1
  123. package/cjs/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  124. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs +2 -2
  125. package/cjs/nodes/html-iframe-element/HTMLIFrameElementPageLoader.cjs.map +1 -1
  126. package/cjs/nodes/html-image-element/HTMLImageElement.cjs +128 -26
  127. package/cjs/nodes/html-image-element/HTMLImageElement.cjs.map +1 -1
  128. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  129. package/cjs/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  130. package/cjs/nodes/html-input-element/HTMLInputElement.cjs +112 -27
  131. package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
  132. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  133. package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  134. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs +7 -7
  135. package/cjs/nodes/html-input-element/HTMLInputElementNamedNodeMap.cjs.map +1 -1
  136. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs +1 -1
  137. package/cjs/nodes/html-label-element/HTMLLabelElement.cjs.map +1 -1
  138. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs +26 -2
  139. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.cjs.map +1 -1
  140. package/cjs/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  141. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs +15 -8
  142. package/cjs/nodes/html-link-element/HTMLLinkElement.cjs.map +1 -1
  143. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  144. package/cjs/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  145. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs +7 -6
  146. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.cjs.map +1 -1
  147. package/cjs/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  148. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs +8 -5
  149. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.cjs.map +1 -1
  150. package/cjs/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  151. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +154 -53
  152. package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
  153. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  154. package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  155. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs +4 -4
  156. package/cjs/nodes/html-option-element/HTMLOptionElement.cjs.map +1 -1
  157. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  158. package/cjs/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  159. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs +3 -3
  160. package/cjs/nodes/html-option-element/HTMLOptionElementNamedNodeMap.cjs.map +1 -1
  161. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs +12 -11
  162. package/cjs/nodes/html-script-element/HTMLScriptElement.cjs.map +1 -1
  163. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  164. package/cjs/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  165. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs +4 -4
  166. package/cjs/nodes/html-script-element/HTMLScriptElementNamedNodeMap.cjs.map +1 -1
  167. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs +8 -8
  168. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.cjs.map +1 -1
  169. package/cjs/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  170. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +63 -32
  171. package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
  172. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  173. package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  174. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs +7 -7
  175. package/cjs/nodes/html-select-element/HTMLSelectElementNamedNodeMap.cjs.map +1 -1
  176. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs +6 -6
  177. package/cjs/nodes/html-style-element/HTMLStyleElement.cjs.map +1 -1
  178. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  179. package/cjs/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  180. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs +27 -12
  181. package/cjs/nodes/html-template-element/HTMLTemplateElement.cjs.map +1 -1
  182. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  183. package/cjs/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  184. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  185. package/cjs/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  186. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +27 -9
  187. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
  188. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  189. package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  190. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs +7 -7
  191. package/cjs/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.cjs.map +1 -1
  192. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs +24 -17
  193. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.cjs.map +1 -1
  194. package/cjs/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  195. package/cjs/nodes/node/INode.d.ts +2 -2
  196. package/cjs/nodes/node/INode.d.ts.map +1 -1
  197. package/cjs/nodes/node/Node.cjs +95 -56
  198. package/cjs/nodes/node/Node.cjs.map +1 -1
  199. package/cjs/nodes/node/Node.d.ts +44 -20
  200. package/cjs/nodes/node/Node.d.ts.map +1 -1
  201. package/cjs/nodes/node/NodeUtility.cjs +37 -37
  202. package/cjs/nodes/node/NodeUtility.cjs.map +1 -1
  203. package/cjs/nodes/node/NodeUtility.d.ts.map +1 -1
  204. package/cjs/nodes/parent-node/ParentNodeUtility.cjs +8 -5
  205. package/cjs/nodes/parent-node/ParentNodeUtility.cjs.map +1 -1
  206. package/cjs/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  207. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs +35 -1
  208. package/cjs/nodes/processing-instruction/ProcessingInstruction.cjs.map +1 -1
  209. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  210. package/cjs/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  211. package/cjs/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  212. package/cjs/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  213. package/cjs/nodes/shadow-root/ShadowRoot.cjs +44 -7
  214. package/cjs/nodes/shadow-root/ShadowRoot.cjs.map +1 -1
  215. package/cjs/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  216. package/cjs/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  217. package/cjs/nodes/svg-element/SVGElement.cjs +7 -6
  218. package/cjs/nodes/svg-element/SVGElement.cjs.map +1 -1
  219. package/cjs/nodes/svg-element/SVGElement.d.ts +2 -2
  220. package/cjs/nodes/svg-element/SVGElement.d.ts.map +1 -1
  221. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs +4 -3
  222. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.cjs.map +1 -1
  223. package/cjs/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  224. package/cjs/nodes/text/Text.cjs +7 -6
  225. package/cjs/nodes/text/Text.cjs.map +1 -1
  226. package/cjs/nodes/text/Text.d.ts +2 -1
  227. package/cjs/nodes/text/Text.d.ts.map +1 -1
  228. package/cjs/query-selector/QuerySelector.cjs +2 -2
  229. package/cjs/query-selector/QuerySelector.cjs.map +1 -1
  230. package/cjs/query-selector/SelectorItem.cjs +16 -16
  231. package/cjs/query-selector/SelectorItem.cjs.map +1 -1
  232. package/cjs/query-selector/SelectorItem.d.ts.map +1 -1
  233. package/cjs/range/Range.cjs +91 -79
  234. package/cjs/range/Range.cjs.map +1 -1
  235. package/cjs/range/Range.d.ts.map +1 -1
  236. package/cjs/range/RangeUtility.cjs +5 -4
  237. package/cjs/range/RangeUtility.cjs.map +1 -1
  238. package/cjs/range/RangeUtility.d.ts.map +1 -1
  239. package/cjs/selection/Selection.cjs +15 -15
  240. package/cjs/selection/Selection.cjs.map +1 -1
  241. package/cjs/tree-walker/TreeWalker.cjs +12 -6
  242. package/cjs/tree-walker/TreeWalker.cjs.map +1 -1
  243. package/cjs/tree-walker/TreeWalker.d.ts.map +1 -1
  244. package/cjs/validity-state/ValidityState.cjs +1 -1
  245. package/cjs/validity-state/ValidityState.cjs.map +1 -1
  246. package/cjs/version.cjs +1 -1
  247. package/cjs/window/BrowserWindow.cjs +2 -2
  248. package/cjs/window/BrowserWindow.cjs.map +1 -1
  249. package/cjs/window/WindowErrorUtility.cjs +1 -1
  250. package/cjs/window/WindowErrorUtility.cjs.map +1 -1
  251. package/cjs/window/WindowErrorUtility.d.ts.map +1 -1
  252. package/cjs/xml-http-request/XMLHttpRequest.cjs +1 -1
  253. package/cjs/xml-http-request/XMLHttpRequest.cjs.map +1 -1
  254. package/cjs/xml-parser/XMLParser.cjs +16 -12
  255. package/cjs/xml-parser/XMLParser.cjs.map +1 -1
  256. package/cjs/xml-parser/XMLParser.d.ts.map +1 -1
  257. package/cjs/xml-serializer/XMLSerializer.cjs +36 -35
  258. package/cjs/xml-serializer/XMLSerializer.cjs.map +1 -1
  259. package/cjs/xml-serializer/XMLSerializer.d.ts +8 -1
  260. package/cjs/xml-serializer/XMLSerializer.d.ts.map +1 -1
  261. package/lib/PropertySymbol.d.ts +67 -1
  262. package/lib/PropertySymbol.d.ts.map +1 -1
  263. package/lib/PropertySymbol.js +67 -1
  264. package/lib/PropertySymbol.js.map +1 -1
  265. package/lib/browser/utilities/BrowserFrameNavigator.js +1 -1
  266. package/lib/browser/utilities/BrowserFrameNavigator.js.map +1 -1
  267. package/lib/css/declaration/AbstractCSSStyleDeclaration.d.ts.map +1 -1
  268. package/lib/css/declaration/AbstractCSSStyleDeclaration.js +17 -16
  269. package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
  270. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.d.ts.map +1 -1
  271. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js +43 -26
  272. package/lib/css/declaration/element-style/CSSStyleDeclarationElementStyle.js.map +1 -1
  273. package/lib/dom-implementation/DOMImplementation.js +6 -6
  274. package/lib/dom-implementation/DOMImplementation.js.map +1 -1
  275. package/lib/dom-parser/DOMParser.d.ts.map +1 -1
  276. package/lib/dom-parser/DOMParser.js +2 -2
  277. package/lib/dom-parser/DOMParser.js.map +1 -1
  278. package/lib/event/Event.js +3 -3
  279. package/lib/event/Event.js.map +1 -1
  280. package/lib/event/EventTarget.js +4 -4
  281. package/lib/event/EventTarget.js.map +1 -1
  282. package/lib/fetch/Request.d.ts +4 -4
  283. package/lib/fetch/Request.d.ts.map +1 -1
  284. package/lib/fetch/Request.js +2 -1
  285. package/lib/fetch/Request.js.map +1 -1
  286. package/lib/form-data/FormData.js +7 -7
  287. package/lib/form-data/FormData.js.map +1 -1
  288. package/lib/mutation-observer/MutationObserver.js +3 -3
  289. package/lib/mutation-observer/MutationObserver.js.map +1 -1
  290. package/lib/named-node-map/NamedNodeMap.d.ts.map +1 -1
  291. package/lib/named-node-map/NamedNodeMap.js +10 -8
  292. package/lib/named-node-map/NamedNodeMap.js.map +1 -1
  293. package/lib/nodes/attr/Attr.d.ts +40 -8
  294. package/lib/nodes/attr/Attr.d.ts.map +1 -1
  295. package/lib/nodes/attr/Attr.js +63 -16
  296. package/lib/nodes/attr/Attr.js.map +1 -1
  297. package/lib/nodes/character-data/CharacterData.js +2 -2
  298. package/lib/nodes/character-data/CharacterData.js.map +1 -1
  299. package/lib/nodes/child-node/ChildNodeUtility.js +8 -8
  300. package/lib/nodes/child-node/ChildNodeUtility.js.map +1 -1
  301. package/lib/nodes/child-node/NonDocumentChildNodeUtility.d.ts.map +1 -1
  302. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js +4 -3
  303. package/lib/nodes/child-node/NonDocumentChildNodeUtility.js.map +1 -1
  304. package/lib/nodes/comment/Comment.d.ts +3 -1
  305. package/lib/nodes/comment/Comment.d.ts.map +1 -1
  306. package/lib/nodes/comment/Comment.js +7 -3
  307. package/lib/nodes/comment/Comment.js.map +1 -1
  308. package/lib/nodes/document/Document.d.ts +45 -10
  309. package/lib/nodes/document/Document.d.ts.map +1 -1
  310. package/lib/nodes/document/Document.js +95 -41
  311. package/lib/nodes/document/Document.js.map +1 -1
  312. package/lib/nodes/document/IDocument.d.ts +2 -1
  313. package/lib/nodes/document/IDocument.d.ts.map +1 -1
  314. package/lib/nodes/document-fragment/DocumentFragment.d.ts +2 -1
  315. package/lib/nodes/document-fragment/DocumentFragment.d.ts.map +1 -1
  316. package/lib/nodes/document-fragment/DocumentFragment.js +8 -6
  317. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  318. package/lib/nodes/document-type/DocumentType.d.ts +24 -4
  319. package/lib/nodes/document-type/DocumentType.d.ts.map +1 -1
  320. package/lib/nodes/document-type/DocumentType.js +37 -8
  321. package/lib/nodes/document-type/DocumentType.js.map +1 -1
  322. package/lib/nodes/element/Dataset.d.ts +1 -1
  323. package/lib/nodes/element/Dataset.d.ts.map +1 -1
  324. package/lib/nodes/element/Dataset.js +14 -14
  325. package/lib/nodes/element/Dataset.js.map +1 -1
  326. package/lib/nodes/element/Element.d.ts +77 -11
  327. package/lib/nodes/element/Element.d.ts.map +1 -1
  328. package/lib/nodes/element/Element.js +142 -55
  329. package/lib/nodes/element/Element.js.map +1 -1
  330. package/lib/nodes/element/ElementNamedNodeMap.d.ts.map +1 -1
  331. package/lib/nodes/element/ElementNamedNodeMap.js +33 -30
  332. package/lib/nodes/element/ElementNamedNodeMap.js.map +1 -1
  333. package/lib/nodes/element/ElementUtility.d.ts.map +1 -1
  334. package/lib/nodes/element/ElementUtility.js +19 -19
  335. package/lib/nodes/element/ElementUtility.js.map +1 -1
  336. package/lib/nodes/element/IElement.d.ts +3 -3
  337. package/lib/nodes/element/IElement.d.ts.map +1 -1
  338. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +1 -1
  339. package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
  340. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +6 -6
  341. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  342. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.d.ts.map +1 -1
  343. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js +7 -5
  344. package/lib/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.js.map +1 -1
  345. package/lib/nodes/html-base-element/HTMLBaseElement.d.ts.map +1 -1
  346. package/lib/nodes/html-base-element/HTMLBaseElement.js +2 -1
  347. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
  348. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +16 -3
  349. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
  350. package/lib/nodes/html-button-element/HTMLButtonElement.js +27 -8
  351. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  352. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js +7 -7
  353. package/lib/nodes/html-button-element/HTMLButtonElementNamedNodeMap.js.map +1 -1
  354. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts +14 -1
  355. package/lib/nodes/html-dialog-element/HTMLDialogElement.d.ts.map +1 -1
  356. package/lib/nodes/html-dialog-element/HTMLDialogElement.js +23 -2
  357. package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
  358. package/lib/nodes/html-document/HTMLDocument.d.ts.map +1 -1
  359. package/lib/nodes/html-document/HTMLDocument.js +2 -1
  360. package/lib/nodes/html-document/HTMLDocument.js.map +1 -1
  361. package/lib/nodes/html-element/HTMLElement.d.ts +91 -14
  362. package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
  363. package/lib/nodes/html-element/HTMLElement.js +137 -32
  364. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  365. package/lib/nodes/html-element/HTMLElementNamedNodeMap.d.ts.map +1 -1
  366. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js +4 -3
  367. package/lib/nodes/html-element/HTMLElementNamedNodeMap.js.map +1 -1
  368. package/lib/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
  369. package/lib/nodes/html-element/HTMLElementUtility.js +12 -10
  370. package/lib/nodes/html-element/HTMLElementUtility.js.map +1 -1
  371. package/lib/nodes/html-element/IHTMLElement.d.ts +3 -0
  372. package/lib/nodes/html-element/IHTMLElement.d.ts.map +1 -1
  373. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +22 -3
  374. package/lib/nodes/html-form-element/HTMLFormElement.d.ts.map +1 -1
  375. package/lib/nodes/html-form-element/HTMLFormElement.js +62 -30
  376. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  377. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +1 -1
  378. package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
  379. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +5 -5
  380. package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
  381. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.d.ts.map +1 -1
  382. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js +4 -1
  383. package/lib/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.js.map +1 -1
  384. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js +2 -2
  385. package/lib/nodes/html-iframe-element/HTMLIFrameElementPageLoader.js.map +1 -1
  386. package/lib/nodes/html-image-element/HTMLImageElement.d.ts +76 -21
  387. package/lib/nodes/html-image-element/HTMLImageElement.d.ts.map +1 -1
  388. package/lib/nodes/html-image-element/HTMLImageElement.js +107 -27
  389. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  390. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +67 -10
  391. package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
  392. package/lib/nodes/html-input-element/HTMLInputElement.js +112 -27
  393. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  394. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js +7 -7
  395. package/lib/nodes/html-input-element/HTMLInputElementNamedNodeMap.js.map +1 -1
  396. package/lib/nodes/html-label-element/HTMLLabelElement.js +1 -1
  397. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  398. package/lib/nodes/html-label-element/HTMLLabelElementUtility.d.ts.map +1 -1
  399. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js +3 -2
  400. package/lib/nodes/html-label-element/HTMLLabelElementUtility.js.map +1 -1
  401. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +6 -2
  402. package/lib/nodes/html-link-element/HTMLLinkElement.d.ts.map +1 -1
  403. package/lib/nodes/html-link-element/HTMLLinkElement.js +15 -8
  404. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  405. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.d.ts.map +1 -1
  406. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js +7 -6
  407. package/lib/nodes/html-link-element/HTMLLinkElementNamedNodeMap.js.map +1 -1
  408. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.d.ts.map +1 -1
  409. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js +8 -5
  410. package/lib/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.js.map +1 -1
  411. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +86 -12
  412. package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
  413. package/lib/nodes/html-media-element/HTMLMediaElement.js +132 -54
  414. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  415. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +1 -1
  416. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts.map +1 -1
  417. package/lib/nodes/html-option-element/HTMLOptionElement.js +4 -4
  418. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  419. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js +3 -3
  420. package/lib/nodes/html-option-element/HTMLOptionElementNamedNodeMap.js.map +1 -1
  421. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts +1 -1
  422. package/lib/nodes/html-script-element/HTMLScriptElement.d.ts.map +1 -1
  423. package/lib/nodes/html-script-element/HTMLScriptElement.js +12 -11
  424. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  425. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js +4 -4
  426. package/lib/nodes/html-script-element/HTMLScriptElementNamedNodeMap.js.map +1 -1
  427. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.d.ts.map +1 -1
  428. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js +8 -8
  429. package/lib/nodes/html-script-element/HTMLScriptElementScriptLoader.js.map +1 -1
  430. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +30 -5
  431. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
  432. package/lib/nodes/html-select-element/HTMLSelectElement.js +63 -32
  433. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  434. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js +7 -7
  435. package/lib/nodes/html-select-element/HTMLSelectElementNamedNodeMap.js.map +1 -1
  436. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts +1 -1
  437. package/lib/nodes/html-style-element/HTMLStyleElement.d.ts.map +1 -1
  438. package/lib/nodes/html-style-element/HTMLStyleElement.js +6 -6
  439. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  440. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts +8 -1
  441. package/lib/nodes/html-template-element/HTMLTemplateElement.d.ts.map +1 -1
  442. package/lib/nodes/html-template-element/HTMLTemplateElement.js +29 -13
  443. package/lib/nodes/html-template-element/HTMLTemplateElement.js.map +1 -1
  444. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts +1 -1
  445. package/lib/nodes/html-template-element/IHTMLTemplateElement.d.ts.map +1 -1
  446. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +16 -3
  447. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
  448. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +27 -9
  449. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  450. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js +7 -7
  451. package/lib/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.js.map +1 -1
  452. package/lib/nodes/html-unknown-element/HTMLUnknownElement.d.ts.map +1 -1
  453. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js +24 -17
  454. package/lib/nodes/html-unknown-element/HTMLUnknownElement.js.map +1 -1
  455. package/lib/nodes/node/INode.d.ts +2 -2
  456. package/lib/nodes/node/INode.d.ts.map +1 -1
  457. package/lib/nodes/node/Node.d.ts +44 -20
  458. package/lib/nodes/node/Node.d.ts.map +1 -1
  459. package/lib/nodes/node/Node.js +95 -56
  460. package/lib/nodes/node/Node.js.map +1 -1
  461. package/lib/nodes/node/NodeUtility.d.ts.map +1 -1
  462. package/lib/nodes/node/NodeUtility.js +37 -37
  463. package/lib/nodes/node/NodeUtility.js.map +1 -1
  464. package/lib/nodes/parent-node/ParentNodeUtility.d.ts.map +1 -1
  465. package/lib/nodes/parent-node/ParentNodeUtility.js +8 -5
  466. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  467. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts +9 -2
  468. package/lib/nodes/processing-instruction/ProcessingInstruction.d.ts.map +1 -1
  469. package/lib/nodes/processing-instruction/ProcessingInstruction.js +14 -2
  470. package/lib/nodes/processing-instruction/ProcessingInstruction.js.map +1 -1
  471. package/lib/nodes/shadow-root/IShadowRoot.d.ts +2 -0
  472. package/lib/nodes/shadow-root/IShadowRoot.d.ts.map +1 -1
  473. package/lib/nodes/shadow-root/ShadowRoot.d.ts +28 -3
  474. package/lib/nodes/shadow-root/ShadowRoot.d.ts.map +1 -1
  475. package/lib/nodes/shadow-root/ShadowRoot.js +46 -8
  476. package/lib/nodes/shadow-root/ShadowRoot.js.map +1 -1
  477. package/lib/nodes/svg-element/SVGElement.d.ts +2 -2
  478. package/lib/nodes/svg-element/SVGElement.d.ts.map +1 -1
  479. package/lib/nodes/svg-element/SVGElement.js +7 -6
  480. package/lib/nodes/svg-element/SVGElement.js.map +1 -1
  481. package/lib/nodes/svg-element/SVGElementNamedNodeMap.d.ts.map +1 -1
  482. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js +4 -3
  483. package/lib/nodes/svg-element/SVGElementNamedNodeMap.js.map +1 -1
  484. package/lib/nodes/text/Text.d.ts +2 -1
  485. package/lib/nodes/text/Text.d.ts.map +1 -1
  486. package/lib/nodes/text/Text.js +7 -6
  487. package/lib/nodes/text/Text.js.map +1 -1
  488. package/lib/query-selector/QuerySelector.js +2 -2
  489. package/lib/query-selector/QuerySelector.js.map +1 -1
  490. package/lib/query-selector/SelectorItem.d.ts.map +1 -1
  491. package/lib/query-selector/SelectorItem.js +16 -16
  492. package/lib/query-selector/SelectorItem.js.map +1 -1
  493. package/lib/range/Range.d.ts.map +1 -1
  494. package/lib/range/Range.js +91 -79
  495. package/lib/range/Range.js.map +1 -1
  496. package/lib/range/RangeUtility.d.ts.map +1 -1
  497. package/lib/range/RangeUtility.js +5 -4
  498. package/lib/range/RangeUtility.js.map +1 -1
  499. package/lib/selection/Selection.js +15 -15
  500. package/lib/selection/Selection.js.map +1 -1
  501. package/lib/tree-walker/TreeWalker.d.ts.map +1 -1
  502. package/lib/tree-walker/TreeWalker.js +12 -6
  503. package/lib/tree-walker/TreeWalker.js.map +1 -1
  504. package/lib/validity-state/ValidityState.js +1 -1
  505. package/lib/validity-state/ValidityState.js.map +1 -1
  506. package/lib/version.js +1 -1
  507. package/lib/window/BrowserWindow.js +2 -2
  508. package/lib/window/BrowserWindow.js.map +1 -1
  509. package/lib/window/WindowErrorUtility.d.ts.map +1 -1
  510. package/lib/window/WindowErrorUtility.js +1 -1
  511. package/lib/window/WindowErrorUtility.js.map +1 -1
  512. package/lib/xml-http-request/XMLHttpRequest.js +1 -1
  513. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  514. package/lib/xml-parser/XMLParser.d.ts.map +1 -1
  515. package/lib/xml-parser/XMLParser.js +16 -12
  516. package/lib/xml-parser/XMLParser.js.map +1 -1
  517. package/lib/xml-serializer/XMLSerializer.d.ts +8 -1
  518. package/lib/xml-serializer/XMLSerializer.d.ts.map +1 -1
  519. package/lib/xml-serializer/XMLSerializer.js +37 -37
  520. package/lib/xml-serializer/XMLSerializer.js.map +1 -1
  521. package/package.json +1 -1
  522. package/src/PropertySymbol.ts +67 -1
  523. package/src/browser/utilities/BrowserFrameNavigator.ts +1 -1
  524. package/src/css/declaration/AbstractCSSStyleDeclaration.ts +17 -16
  525. package/src/css/declaration/element-style/CSSStyleDeclarationElementStyle.ts +64 -28
  526. package/src/dom-implementation/DOMImplementation.ts +6 -6
  527. package/src/dom-parser/DOMParser.ts +2 -2
  528. package/src/event/Event.ts +3 -3
  529. package/src/event/EventTarget.ts +4 -4
  530. package/src/fetch/Request.ts +7 -5
  531. package/src/form-data/FormData.ts +9 -9
  532. package/src/mutation-observer/MutationObserver.ts +3 -3
  533. package/src/named-node-map/NamedNodeMap.ts +12 -8
  534. package/src/nodes/attr/Attr.ts +59 -11
  535. package/src/nodes/character-data/CharacterData.ts +2 -2
  536. package/src/nodes/child-node/ChildNodeUtility.ts +8 -8
  537. package/src/nodes/child-node/NonDocumentChildNodeUtility.ts +4 -3
  538. package/src/nodes/comment/Comment.ts +3 -2
  539. package/src/nodes/document/Document.ts +106 -46
  540. package/src/nodes/document/IDocument.ts +2 -1
  541. package/src/nodes/document-fragment/DocumentFragment.ts +8 -4
  542. package/src/nodes/document-type/DocumentType.ts +36 -7
  543. package/src/nodes/element/Dataset.ts +23 -17
  544. package/src/nodes/element/Element.ts +166 -61
  545. package/src/nodes/element/ElementNamedNodeMap.ts +58 -33
  546. package/src/nodes/element/ElementUtility.ts +26 -19
  547. package/src/nodes/element/IElement.ts +3 -3
  548. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +5 -3
  549. package/src/nodes/html-anchor-element/HTMLAnchorElementNamedNodeMap.ts +11 -5
  550. package/src/nodes/html-base-element/HTMLBaseElement.ts +2 -1
  551. package/src/nodes/html-button-element/HTMLButtonElement.ts +29 -6
  552. package/src/nodes/html-button-element/HTMLButtonElementNamedNodeMap.ts +7 -7
  553. package/src/nodes/html-dialog-element/HTMLDialogElement.ts +21 -1
  554. package/src/nodes/html-document/HTMLDocument.ts +2 -1
  555. package/src/nodes/html-element/HTMLElement.ts +161 -33
  556. package/src/nodes/html-element/HTMLElementNamedNodeMap.ts +6 -3
  557. package/src/nodes/html-element/HTMLElementUtility.ts +17 -10
  558. package/src/nodes/html-element/IHTMLElement.ts +3 -0
  559. package/src/nodes/html-form-element/HTMLFormElement.ts +67 -27
  560. package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +6 -5
  561. package/src/nodes/html-iframe-element/HTMLIFrameElementNamedNodeMap.ts +6 -1
  562. package/src/nodes/html-iframe-element/HTMLIFrameElementPageLoader.ts +2 -2
  563. package/src/nodes/html-image-element/HTMLImageElement.ts +115 -28
  564. package/src/nodes/html-input-element/HTMLInputElement.ts +125 -30
  565. package/src/nodes/html-input-element/HTMLInputElementNamedNodeMap.ts +7 -7
  566. package/src/nodes/html-label-element/HTMLLabelElement.ts +1 -1
  567. package/src/nodes/html-label-element/HTMLLabelElementUtility.ts +3 -2
  568. package/src/nodes/html-link-element/HTMLLinkElement.ts +15 -5
  569. package/src/nodes/html-link-element/HTMLLinkElementNamedNodeMap.ts +9 -6
  570. package/src/nodes/html-link-element/HTMLLinkElementStyleSheetLoader.ts +13 -5
  571. package/src/nodes/html-media-element/HTMLMediaElement.ts +142 -42
  572. package/src/nodes/html-option-element/HTMLOptionElement.ts +3 -1
  573. package/src/nodes/html-option-element/HTMLOptionElementNamedNodeMap.ts +3 -3
  574. package/src/nodes/html-script-element/HTMLScriptElement.ts +19 -12
  575. package/src/nodes/html-script-element/HTMLScriptElementNamedNodeMap.ts +4 -4
  576. package/src/nodes/html-script-element/HTMLScriptElementScriptLoader.ts +13 -9
  577. package/src/nodes/html-select-element/HTMLSelectElement.ts +69 -31
  578. package/src/nodes/html-select-element/HTMLSelectElementNamedNodeMap.ts +7 -7
  579. package/src/nodes/html-style-element/HTMLStyleElement.ts +6 -6
  580. package/src/nodes/html-template-element/HTMLTemplateElement.ts +28 -12
  581. package/src/nodes/html-template-element/IHTMLTemplateElement.ts +1 -1
  582. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +29 -6
  583. package/src/nodes/html-text-area-element/HTMLTextAreaElementNamedNodeMap.ts +7 -7
  584. package/src/nodes/html-unknown-element/HTMLUnknownElement.ts +38 -17
  585. package/src/nodes/node/INode.ts +2 -2
  586. package/src/nodes/node/Node.ts +129 -56
  587. package/src/nodes/node/NodeUtility.ts +44 -37
  588. package/src/nodes/parent-node/ParentNodeUtility.ts +10 -5
  589. package/src/nodes/processing-instruction/ProcessingInstruction.ts +12 -2
  590. package/src/nodes/shadow-root/IShadowRoot.ts +2 -0
  591. package/src/nodes/shadow-root/ShadowRoot.ts +50 -8
  592. package/src/nodes/svg-element/SVGElement.ts +6 -5
  593. package/src/nodes/svg-element/SVGElementNamedNodeMap.ts +6 -3
  594. package/src/nodes/text/Text.ts +5 -5
  595. package/src/query-selector/QuerySelector.ts +2 -2
  596. package/src/query-selector/SelectorItem.ts +20 -16
  597. package/src/range/Range.ts +109 -82
  598. package/src/range/RangeUtility.ts +7 -4
  599. package/src/selection/Selection.ts +15 -15
  600. package/src/tree-walker/TreeWalker.ts +22 -6
  601. package/src/validity-state/ValidityState.ts +1 -1
  602. package/src/window/BrowserWindow.ts +2 -2
  603. package/src/window/WindowErrorUtility.ts +3 -1
  604. package/src/xml-http-request/XMLHttpRequest.ts +1 -1
  605. package/src/xml-parser/XMLParser.ts +18 -12
  606. package/src/xml-serializer/XMLSerializer.ts +22 -20
@@ -39,13 +39,16 @@ export default class HTMLScriptElementScriptLoader {
39
39
  const element = this.#element;
40
40
  const async = element.getAttribute('async') !== null;
41
41
 
42
- if (!url || !element.isConnected) {
42
+ if (!url || !element[PropertySymbol.isConnected]) {
43
43
  return;
44
44
  }
45
45
 
46
46
  let absoluteURL: string;
47
47
  try {
48
- absoluteURL = new URL(url, element.ownerDocument[PropertySymbol.defaultView].location).href;
48
+ absoluteURL = new URL(
49
+ url,
50
+ element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].location
51
+ ).href;
49
52
  } catch (error) {
50
53
  this.#loadedScriptURL = null;
51
54
  element.dispatchEvent(new Event('error'));
@@ -72,7 +75,7 @@ export default class HTMLScriptElementScriptLoader {
72
75
 
73
76
  const resourceFetch = new ResourceFetch({
74
77
  browserFrame: this.#browserFrame,
75
- window: element.ownerDocument[PropertySymbol.defaultView]
78
+ window: element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]
76
79
  });
77
80
  let code: string | null = null;
78
81
  let error: Error | null = null;
@@ -82,7 +85,7 @@ export default class HTMLScriptElementScriptLoader {
82
85
  if (async) {
83
86
  const readyStateManager = (<
84
87
  { [PropertySymbol.readyStateManager]: DocumentReadyStateManager }
85
- >(<unknown>element.ownerDocument[PropertySymbol.defaultView]))[
88
+ >(<unknown>element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]))[
86
89
  PropertySymbol.readyStateManager
87
90
  ];
88
91
 
@@ -106,20 +109,21 @@ export default class HTMLScriptElementScriptLoader {
106
109
  if (error) {
107
110
  WindowErrorUtility.dispatchError(element, error);
108
111
  } else {
109
- element.ownerDocument[PropertySymbol.currentScript] = element;
112
+ element[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = element;
110
113
  code = '//# sourceURL=' + absoluteURL + '\n' + code;
111
114
 
112
115
  if (
113
116
  browserSettings.disableErrorCapturing ||
114
117
  browserSettings.errorCapture !== BrowserErrorCaptureEnum.tryAndCatch
115
118
  ) {
116
- element.ownerDocument[PropertySymbol.defaultView].eval(code);
119
+ element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].eval(code);
117
120
  } else {
118
- WindowErrorUtility.captureError(element.ownerDocument[PropertySymbol.defaultView], () =>
119
- element.ownerDocument[PropertySymbol.defaultView].eval(code)
121
+ WindowErrorUtility.captureError(
122
+ element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow],
123
+ () => element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].eval(code)
120
124
  );
121
125
  }
122
- element.ownerDocument[PropertySymbol.currentScript] = null;
126
+ element[PropertySymbol.ownerDocument][PropertySymbol.currentScript] = null;
123
127
  element.dispatchEvent(new Event('load'));
124
128
  }
125
129
  }
@@ -26,21 +26,56 @@ import HTMLSelectElementNamedNodeMap from './HTMLSelectElementNamedNodeMap.js';
26
26
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.
27
27
  */
28
28
  export default class HTMLSelectElement extends HTMLElement implements IHTMLSelectElement {
29
- public override readonly attributes: INamedNodeMap = new HTMLSelectElementNamedNodeMap(this);
30
-
31
- // Public properties.
32
- public readonly length = 0;
33
- public readonly options: IHTMLOptionsCollection = new HTMLOptionsCollection(this);
34
- public readonly validationMessage = '';
35
- public readonly validity = new ValidityState(this);
36
-
37
- // Private properties
29
+ // Internal properties.
30
+ public override [PropertySymbol.attributes]: INamedNodeMap = new HTMLSelectElementNamedNodeMap(
31
+ this
32
+ );
33
+ public [PropertySymbol.validationMessage] = '';
34
+ public [PropertySymbol.validity] = new ValidityState(this);
38
35
  public [PropertySymbol.selectNode]: INode = this;
36
+ public [PropertySymbol.length] = 0;
37
+ public [PropertySymbol.options]: IHTMLOptionsCollection = new HTMLOptionsCollection(this);
39
38
 
40
39
  // Events
41
40
  public onchange: (event: Event) => void | null = null;
42
41
  public oninput: (event: Event) => void | null = null;
43
42
 
43
+ /**
44
+ * Returns length.
45
+ *
46
+ * @returns Length.
47
+ */
48
+ public get length(): number {
49
+ return this[PropertySymbol.length];
50
+ }
51
+
52
+ /**
53
+ * Returns options.
54
+ *
55
+ * @returns Options.
56
+ */
57
+ public get options(): IHTMLOptionsCollection {
58
+ return this[PropertySymbol.options];
59
+ }
60
+
61
+ /**
62
+ * Returns validation message.
63
+ *
64
+ * @returns Validation message.
65
+ */
66
+ public get validationMessage(): string {
67
+ return this[PropertySymbol.validationMessage];
68
+ }
69
+
70
+ /**
71
+ * Returns validity.
72
+ *
73
+ * @returns Validity.
74
+ */
75
+ public get validity(): ValidityState {
76
+ return this[PropertySymbol.validity];
77
+ }
78
+
44
79
  /**
45
80
  * Returns name.
46
81
  *
@@ -162,8 +197,8 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
162
197
  * @returns Value.
163
198
  */
164
199
  public get value(): string {
165
- for (let i = 0, max = this.options.length; i < max; i++) {
166
- const option = <HTMLOptionElement>this.options[i];
200
+ for (let i = 0, max = this[PropertySymbol.options].length; i < max; i++) {
201
+ const option = <HTMLOptionElement>this[PropertySymbol.options][i];
167
202
  if (option[PropertySymbol.selectedness]) {
168
203
  return option.value;
169
204
  }
@@ -178,8 +213,8 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
178
213
  * @param value Value.
179
214
  */
180
215
  public set value(value: string) {
181
- for (let i = 0, max = this.options.length; i < max; i++) {
182
- const option = <HTMLOptionElement>this.options[i];
216
+ for (let i = 0, max = this[PropertySymbol.options].length; i < max; i++) {
217
+ const option = <HTMLOptionElement>this[PropertySymbol.options][i];
183
218
  if (option.value === value) {
184
219
  option[PropertySymbol.selectedness] = true;
185
220
  option[PropertySymbol.dirtyness] = true;
@@ -195,8 +230,8 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
195
230
  * @returns Value.
196
231
  */
197
232
  public get selectedIndex(): number {
198
- for (let i = 0, max = this.options.length; i < max; i++) {
199
- if ((<HTMLOptionElement>this.options[i])[PropertySymbol.selectedness]) {
233
+ for (let i = 0, max = this[PropertySymbol.options].length; i < max; i++) {
234
+ if ((<HTMLOptionElement>this[PropertySymbol.options][i])[PropertySymbol.selectedness]) {
200
235
  return i;
201
236
  }
202
237
  }
@@ -210,11 +245,11 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
210
245
  */
211
246
  public set selectedIndex(selectedIndex: number) {
212
247
  if (typeof selectedIndex === 'number' && !isNaN(selectedIndex)) {
213
- for (let i = 0, max = this.options.length; i < max; i++) {
214
- (<HTMLOptionElement>this.options[i])[PropertySymbol.selectedness] = false;
248
+ for (let i = 0, max = this[PropertySymbol.options].length; i < max; i++) {
249
+ (<HTMLOptionElement>this[PropertySymbol.options][i])[PropertySymbol.selectedness] = false;
215
250
  }
216
251
 
217
- const selectedOption = <HTMLOptionElement>this.options[selectedIndex];
252
+ const selectedOption = <HTMLOptionElement>this[PropertySymbol.options][selectedIndex];
218
253
  if (selectedOption) {
219
254
  selectedOption[PropertySymbol.selectedness] = true;
220
255
  selectedOption[PropertySymbol.dirtyness] = true;
@@ -261,7 +296,7 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
261
296
  * @param index Index.
262
297
  */
263
298
  public item(index: number): IHTMLOptionElement {
264
- return this.options.item(index);
299
+ return this[PropertySymbol.options].item(index);
265
300
  }
266
301
 
267
302
  /**
@@ -271,7 +306,7 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
271
306
  * @param before HTMLOptionElement or index number.
272
307
  */
273
308
  public add(element: IHTMLOptionElement, before?: number | IHTMLOptionElement): void {
274
- this.options.add(element, before);
309
+ this[PropertySymbol.options].add(element, before);
275
310
  }
276
311
 
277
312
  /**
@@ -281,7 +316,7 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
281
316
  */
282
317
  public override remove(index?: number): void {
283
318
  if (typeof index === 'number') {
284
- this.options.remove(index);
319
+ this[PropertySymbol.options].remove(index);
285
320
  } else {
286
321
  super.remove();
287
322
  }
@@ -293,7 +328,7 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
293
328
  * @param message Message.
294
329
  */
295
330
  public setCustomValidity(message: string): void {
296
- (<string>this.validationMessage) = String(message);
331
+ this[PropertySymbol.validationMessage] = String(message);
297
332
  }
298
333
 
299
334
  /**
@@ -302,7 +337,7 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
302
337
  * @returns "true" if the field is valid.
303
338
  */
304
339
  public checkValidity(): boolean {
305
- const valid = this.disabled || this.validity.valid;
340
+ const valid = this.disabled || this[PropertySymbol.validity].valid;
306
341
  if (!valid) {
307
342
  this.dispatchEvent(new Event('invalid', { bubbles: true, cancelable: true }));
308
343
  }
@@ -330,10 +365,13 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
330
365
  public [PropertySymbol.updateOptionItems](selectedOption?: IHTMLOptionElement): void {
331
366
  const optionElements = <IHTMLCollection<IHTMLOptionElement>>this.getElementsByTagName('option');
332
367
 
333
- if (optionElements.length < this.options.length) {
334
- this.options.splice(this.options.length - 1, this.options.length - optionElements.length);
368
+ if (optionElements.length < this[PropertySymbol.options].length) {
369
+ this[PropertySymbol.options].splice(
370
+ this[PropertySymbol.options].length - 1,
371
+ this[PropertySymbol.options].length - optionElements.length
372
+ );
335
373
 
336
- for (let i = optionElements.length - 1, max = this.length; i < max; i++) {
374
+ for (let i = optionElements.length - 1, max = this[PropertySymbol.length]; i < max; i++) {
337
375
  delete this[i];
338
376
  }
339
377
  }
@@ -342,7 +380,7 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
342
380
  const selected: HTMLOptionElement[] = [];
343
381
 
344
382
  for (let i = 0; i < optionElements.length; i++) {
345
- this.options[i] = optionElements[i];
383
+ this[PropertySymbol.options][i] = optionElements[i];
346
384
  this[i] = optionElements[i];
347
385
 
348
386
  if (!isMultiple) {
@@ -357,7 +395,7 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
357
395
  }
358
396
  }
359
397
 
360
- (<number>this.length) = optionElements.length;
398
+ (<number>this[PropertySymbol.length]) = optionElements.length;
361
399
 
362
400
  const size = this.#getDisplaySize();
363
401
 
@@ -366,11 +404,11 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
366
404
  const option = <HTMLOptionElement>optionElements[i];
367
405
 
368
406
  let disabled = option.hasAttributeNS(null, 'disabled');
369
- const parentNode = <IHTMLElement>option.parentNode;
407
+ const parentNode = <IHTMLElement>option[PropertySymbol.parentNode];
370
408
  if (
371
409
  parentNode &&
372
- parentNode.nodeType === NodeTypeEnum.elementNode &&
373
- parentNode.tagName === 'OPTGROUP' &&
410
+ parentNode[PropertySymbol.nodeType] === NodeTypeEnum.elementNode &&
411
+ parentNode[PropertySymbol.tagName] === 'OPTGROUP' &&
374
412
  parentNode.hasAttributeNS(null, 'disabled')
375
413
  ) {
376
414
  disabled = true;
@@ -19,18 +19,18 @@ export default class HTMLSelectElementNamedNodeMap extends HTMLElementNamedNodeM
19
19
  const replacedItem = super.setNamedItem(item);
20
20
 
21
21
  if (
22
- (item.name === 'id' || item.name === 'name') &&
22
+ (item[PropertySymbol.name] === 'id' || item[PropertySymbol.name] === 'name') &&
23
23
  this[PropertySymbol.ownerElement][PropertySymbol.formNode]
24
24
  ) {
25
- if (replacedItem && replacedItem.value) {
25
+ if (replacedItem && replacedItem[PropertySymbol.value]) {
26
26
  (<HTMLFormElement>this[PropertySymbol.ownerElement][PropertySymbol.formNode])[
27
27
  PropertySymbol.removeFormControlItem
28
- ](this[PropertySymbol.ownerElement], replacedItem.value);
28
+ ](this[PropertySymbol.ownerElement], replacedItem[PropertySymbol.value]);
29
29
  }
30
- if (item.value) {
30
+ if (item[PropertySymbol.value]) {
31
31
  (<HTMLFormElement>this[PropertySymbol.ownerElement][PropertySymbol.formNode])[
32
32
  PropertySymbol.appendFormControlItem
33
- ](this[PropertySymbol.ownerElement], item.value);
33
+ ](this[PropertySymbol.ownerElement], item[PropertySymbol.value]);
34
34
  }
35
35
  }
36
36
 
@@ -45,12 +45,12 @@ export default class HTMLSelectElementNamedNodeMap extends HTMLElementNamedNodeM
45
45
 
46
46
  if (
47
47
  removedItem &&
48
- (removedItem.name === 'id' || removedItem.name === 'name') &&
48
+ (removedItem[PropertySymbol.name] === 'id' || removedItem[PropertySymbol.name] === 'name') &&
49
49
  this[PropertySymbol.ownerElement][PropertySymbol.formNode]
50
50
  ) {
51
51
  (<HTMLFormElement>this[PropertySymbol.ownerElement][PropertySymbol.formNode])[
52
52
  PropertySymbol.removeFormControlItem
53
- ](this[PropertySymbol.ownerElement], removedItem.value);
53
+ ](this[PropertySymbol.ownerElement], removedItem[PropertySymbol.value]);
54
54
  }
55
55
 
56
56
  return removedItem;
@@ -10,7 +10,7 @@ import IHTMLStyleElement from './IHTMLStyleElement.js';
10
10
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLStyleElement.
11
11
  */
12
12
  export default class HTMLStyleElement extends HTMLElement implements IHTMLStyleElement {
13
- private [PropertySymbol.styleSheet]: CSSStyleSheet | null = null;
13
+ private [PropertySymbol.sheet]: CSSStyleSheet | null = null;
14
14
 
15
15
  /**
16
16
  * Returns CSS style sheet.
@@ -18,14 +18,14 @@ export default class HTMLStyleElement extends HTMLElement implements IHTMLStyleE
18
18
  * @returns CSS style sheet.
19
19
  */
20
20
  public get sheet(): CSSStyleSheet {
21
- if (!this.isConnected) {
21
+ if (!this[PropertySymbol.isConnected]) {
22
22
  return null;
23
23
  }
24
- if (!this[PropertySymbol.styleSheet]) {
25
- this[PropertySymbol.styleSheet] = new CSSStyleSheet();
24
+ if (!this[PropertySymbol.sheet]) {
25
+ this[PropertySymbol.sheet] = new CSSStyleSheet();
26
26
  }
27
- this[PropertySymbol.styleSheet].replaceSync(this.textContent);
28
- return this[PropertySymbol.styleSheet];
27
+ this[PropertySymbol.sheet].replaceSync(this.textContent);
28
+ return this[PropertySymbol.sheet];
29
29
  }
30
30
 
31
31
  /**
@@ -14,7 +14,18 @@ import DocumentFragment from '../document-fragment/DocumentFragment.js';
14
14
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement.
15
15
  */
16
16
  export default class HTMLTemplateElement extends HTMLElement implements IHTMLTemplateElement {
17
- public readonly content: IDocumentFragment = this.ownerDocument.createDocumentFragment();
17
+ // Internal properties
18
+ public [PropertySymbol.content]: IDocumentFragment =
19
+ this[PropertySymbol.ownerDocument].createDocumentFragment();
20
+
21
+ /**
22
+ * Returns content.
23
+ *
24
+ * @returns Content.
25
+ */
26
+ public get content(): IDocumentFragment {
27
+ return this[PropertySymbol.content];
28
+ }
18
29
 
19
30
  /**
20
31
  * @override
@@ -27,25 +38,29 @@ export default class HTMLTemplateElement extends HTMLElement implements IHTMLTem
27
38
  * @override
28
39
  */
29
40
  public set innerHTML(html: string) {
30
- for (const child of (<DocumentFragment>this.content)[PropertySymbol.childNodes].slice()) {
31
- this.content.removeChild(child);
41
+ const content = <DocumentFragment>this[PropertySymbol.content];
42
+
43
+ for (const child of content[PropertySymbol.childNodes].slice()) {
44
+ this[PropertySymbol.content].removeChild(child);
32
45
  }
33
46
 
34
- XMLParser.parse(this.ownerDocument, html, { rootNode: this.content });
47
+ XMLParser.parse(this[PropertySymbol.ownerDocument], html, {
48
+ rootNode: this[PropertySymbol.content]
49
+ });
35
50
  }
36
51
 
37
52
  /**
38
53
  * @override
39
54
  */
40
55
  public get firstChild(): INode {
41
- return this.content.firstChild;
56
+ return this[PropertySymbol.content].firstChild;
42
57
  }
43
58
 
44
59
  /**
45
60
  * @override
46
61
  */
47
62
  public get lastChild(): INode {
48
- return this.content.lastChild;
63
+ return this[PropertySymbol.content].lastChild;
49
64
  }
50
65
 
51
66
  /**
@@ -56,8 +71,9 @@ export default class HTMLTemplateElement extends HTMLElement implements IHTMLTem
56
71
  includeShadowRoots: options && options.includeShadowRoots,
57
72
  escapeEntities: false
58
73
  });
74
+ const content = <DocumentFragment>this[PropertySymbol.content];
59
75
  let xml = '';
60
- for (const node of (<DocumentFragment>this.content)[PropertySymbol.childNodes]) {
76
+ for (const node of content[PropertySymbol.childNodes]) {
61
77
  xml += xmlSerializer.serializeToString(node);
62
78
  }
63
79
  return xml;
@@ -67,28 +83,28 @@ export default class HTMLTemplateElement extends HTMLElement implements IHTMLTem
67
83
  * @override
68
84
  */
69
85
  public appendChild(node: INode): INode {
70
- return this.content.appendChild(node);
86
+ return this[PropertySymbol.content].appendChild(node);
71
87
  }
72
88
 
73
89
  /**
74
90
  * @override
75
91
  */
76
92
  public removeChild(node: INode): INode {
77
- return this.content.removeChild(node);
93
+ return this[PropertySymbol.content].removeChild(node);
78
94
  }
79
95
 
80
96
  /**
81
97
  * @override
82
98
  */
83
99
  public insertBefore(newNode: INode, referenceNode: INode): INode {
84
- return this.content.insertBefore(newNode, referenceNode);
100
+ return this[PropertySymbol.content].insertBefore(newNode, referenceNode);
85
101
  }
86
102
 
87
103
  /**
88
104
  * @override
89
105
  */
90
106
  public replaceChild(newChild: INode, oldChild: INode): INode {
91
- return this.content.replaceChild(newChild, oldChild);
107
+ return this[PropertySymbol.content].replaceChild(newChild, oldChild);
92
108
  }
93
109
 
94
110
  /**
@@ -96,7 +112,7 @@ export default class HTMLTemplateElement extends HTMLElement implements IHTMLTem
96
112
  */
97
113
  public cloneNode(deep = false): IHTMLTemplateElement {
98
114
  const clone = <IHTMLTemplateElement>super.cloneNode(deep);
99
- (<IDocumentFragment>clone.content) = this.content.cloneNode(deep);
115
+ clone[PropertySymbol.content] = this[PropertySymbol.content].cloneNode(deep);
100
116
  return clone;
101
117
  }
102
118
  }
@@ -8,7 +8,7 @@ import IHTMLElement from '../html-element/IHTMLElement.js';
8
8
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLTemplateElement.
9
9
  */
10
10
  export default interface IHTMLTemplateElement extends IHTMLElement {
11
- content: IDocumentFragment;
11
+ readonly content: IDocumentFragment;
12
12
 
13
13
  /**
14
14
  * Clones a node.
@@ -23,20 +23,43 @@ import HTMLTextAreaElementNamedNodeMap from './HTMLTextAreaElementNamedNodeMap.j
23
23
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLTextAreaElement.
24
24
  */
25
25
  export default class HTMLTextAreaElement extends HTMLElement implements IHTMLTextAreaElement {
26
- public override readonly attributes: INamedNodeMap = new HTMLTextAreaElementNamedNodeMap(this);
27
26
  public readonly type = 'textarea';
28
- public readonly validationMessage = '';
29
- public readonly validity = new ValidityState(this);
30
27
 
31
28
  // Events
32
29
  public oninput: (event: Event) => void | null = null;
33
30
  public onselectionchange: (event: Event) => void | null = null;
34
31
 
32
+ // Internal properties
33
+ public override [PropertySymbol.attributes]: INamedNodeMap = new HTMLTextAreaElementNamedNodeMap(
34
+ this
35
+ );
36
+ public [PropertySymbol.validationMessage] = '';
37
+ public [PropertySymbol.validity] = new ValidityState(this);
35
38
  public [PropertySymbol.value] = null;
39
+ public [PropertySymbol.textAreaNode]: HTMLTextAreaElement = this;
40
+
41
+ // Private properties
36
42
  #selectionStart = null;
37
43
  #selectionEnd = null;
38
44
  #selectionDirection = HTMLInputElementSelectionDirectionEnum.none;
39
- public [PropertySymbol.textAreaNode]: HTMLTextAreaElement = this;
45
+
46
+ /**
47
+ * Returns validation message.
48
+ *
49
+ * @returns Validation message.
50
+ */
51
+ public get validationMessage(): string {
52
+ return this[PropertySymbol.validationMessage];
53
+ }
54
+
55
+ /**
56
+ * Returns validity.
57
+ *
58
+ * @returns Validity.
59
+ */
60
+ public get validity(): ValidityState {
61
+ return this[PropertySymbol.validity];
62
+ }
40
63
 
41
64
  /**
42
65
  * Returns the default value.
@@ -519,7 +542,7 @@ export default class HTMLTextAreaElement extends HTMLElement implements IHTMLTex
519
542
  * @param message Message.
520
543
  */
521
544
  public setCustomValidity(message: string): void {
522
- (<string>this.validationMessage) = String(message);
545
+ this[PropertySymbol.validationMessage] = String(message);
523
546
  }
524
547
 
525
548
  /**
@@ -528,7 +551,7 @@ export default class HTMLTextAreaElement extends HTMLElement implements IHTMLTex
528
551
  * @returns "true" if the field is valid.
529
552
  */
530
553
  public checkValidity(): boolean {
531
- const valid = this.disabled || this.readOnly || this.validity.valid;
554
+ const valid = this.disabled || this.readOnly || this[PropertySymbol.validity].valid;
532
555
  if (!valid) {
533
556
  this.dispatchEvent(new Event('invalid', { bubbles: true, cancelable: true }));
534
557
  }
@@ -19,18 +19,18 @@ export default class HTMLTextAreaElementNamedNodeMap extends HTMLElementNamedNod
19
19
  const replacedItem = super.setNamedItem(item);
20
20
 
21
21
  if (
22
- (item.name === 'id' || item.name === 'name') &&
22
+ (item[PropertySymbol.name] === 'id' || item[PropertySymbol.name] === 'name') &&
23
23
  this[PropertySymbol.ownerElement][PropertySymbol.formNode]
24
24
  ) {
25
- if (replacedItem && replacedItem.value) {
25
+ if (replacedItem && replacedItem[PropertySymbol.value]) {
26
26
  (<HTMLFormElement>this[PropertySymbol.ownerElement][PropertySymbol.formNode])[
27
27
  PropertySymbol.removeFormControlItem
28
- ](this[PropertySymbol.ownerElement], replacedItem.value);
28
+ ](this[PropertySymbol.ownerElement], replacedItem[PropertySymbol.value]);
29
29
  }
30
- if (item.value) {
30
+ if (item[PropertySymbol.value]) {
31
31
  (<HTMLFormElement>this[PropertySymbol.ownerElement][PropertySymbol.formNode])[
32
32
  PropertySymbol.appendFormControlItem
33
- ](this[PropertySymbol.ownerElement], item.value);
33
+ ](this[PropertySymbol.ownerElement], item[PropertySymbol.value]);
34
34
  }
35
35
  }
36
36
 
@@ -45,12 +45,12 @@ export default class HTMLTextAreaElementNamedNodeMap extends HTMLElementNamedNod
45
45
 
46
46
  if (
47
47
  removedItem &&
48
- (removedItem.name === 'id' || removedItem.name === 'name') &&
48
+ (removedItem[PropertySymbol.name] === 'id' || removedItem[PropertySymbol.name] === 'name') &&
49
49
  this[PropertySymbol.ownerElement][PropertySymbol.formNode]
50
50
  ) {
51
51
  (<HTMLFormElement>this[PropertySymbol.ownerElement][PropertySymbol.formNode])[
52
52
  PropertySymbol.removeFormControlItem
53
- ](this[PropertySymbol.ownerElement], removedItem.value);
53
+ ](this[PropertySymbol.ownerElement], removedItem[PropertySymbol.value]);
54
54
  }
55
55
 
56
56
  return removedItem;
@@ -24,26 +24,32 @@ export default class HTMLUnknownElement extends HTMLElement implements IHTMLElem
24
24
  * @param parentNode Parent node.
25
25
  */
26
26
  public [PropertySymbol.connectToNode](parentNode: INode = null): void {
27
- const tagName = this.tagName;
27
+ const tagName = this[PropertySymbol.tagName];
28
28
 
29
29
  // This element can potentially be a custom element that has not been defined yet
30
30
  // Therefore we need to register a callback for when it is defined in CustomElementRegistry and replace it with the registered element (see #404)
31
31
  if (
32
32
  tagName.includes('-') &&
33
- this.ownerDocument[PropertySymbol.defaultView].customElements[PropertySymbol.callbacks]
33
+ this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].customElements[
34
+ PropertySymbol.callbacks
35
+ ]
34
36
  ) {
35
37
  const callbacks =
36
- this.ownerDocument[PropertySymbol.defaultView].customElements[PropertySymbol.callbacks];
38
+ this[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow].customElements[
39
+ PropertySymbol.callbacks
40
+ ];
37
41
 
38
42
  if (parentNode && !this.#customElementDefineCallback) {
39
43
  const callback = (): void => {
40
- if (this.parentNode) {
41
- const newElement = <HTMLElement>this.ownerDocument.createElement(tagName);
44
+ if (this[PropertySymbol.parentNode]) {
45
+ const newElement = <HTMLElement>(
46
+ this[PropertySymbol.ownerDocument].createElement(tagName)
47
+ );
42
48
  (<INodeList<INode>>newElement[PropertySymbol.childNodes]) =
43
49
  this[PropertySymbol.childNodes];
44
50
  (<IHTMLCollection<IElement>>newElement[PropertySymbol.children]) =
45
51
  this[PropertySymbol.children];
46
- (<boolean>newElement.isConnected) = this.isConnected;
52
+ (<boolean>newElement[PropertySymbol.isConnected]) = this[PropertySymbol.isConnected];
47
53
 
48
54
  newElement[PropertySymbol.rootNode] = this[PropertySymbol.rootNode];
49
55
  newElement[PropertySymbol.formNode] = this[PropertySymbol.formNode];
@@ -52,8 +58,10 @@ export default class HTMLUnknownElement extends HTMLElement implements IHTMLElem
52
58
  newElement[PropertySymbol.observers] = this[PropertySymbol.observers];
53
59
  newElement[PropertySymbol.isValue] = this[PropertySymbol.isValue];
54
60
 
55
- for (let i = 0, max = this.attributes.length; i < max; i++) {
56
- newElement.attributes.setNamedItem(this.attributes[i]);
61
+ for (let i = 0, max = this[PropertySymbol.attributes].length; i < max; i++) {
62
+ newElement[PropertySymbol.attributes].setNamedItem(
63
+ this[PropertySymbol.attributes][i]
64
+ );
57
65
  }
58
66
 
59
67
  (<INodeList<INode>>this[PropertySymbol.childNodes]) = new NodeList();
@@ -64,33 +72,46 @@ export default class HTMLUnknownElement extends HTMLElement implements IHTMLElem
64
72
  this[PropertySymbol.textAreaNode] = null;
65
73
  this[PropertySymbol.observers] = [];
66
74
  this[PropertySymbol.isValue] = null;
67
- (<HTMLElementNamedNodeMap>this.attributes) = new HTMLElementNamedNodeMap(this);
75
+ (<HTMLElementNamedNodeMap>this[PropertySymbol.attributes]) =
76
+ new HTMLElementNamedNodeMap(this);
68
77
 
69
78
  for (
70
- let i = 0, max = (<HTMLElement>this.parentNode)[PropertySymbol.childNodes].length;
79
+ let i = 0,
80
+ max = (<HTMLElement>this[PropertySymbol.parentNode])[PropertySymbol.childNodes]
81
+ .length;
71
82
  i < max;
72
83
  i++
73
84
  ) {
74
- if ((<HTMLElement>this.parentNode)[PropertySymbol.childNodes][i] === this) {
75
- (<HTMLElement>this.parentNode)[PropertySymbol.childNodes][i] = newElement;
85
+ if (
86
+ (<HTMLElement>this[PropertySymbol.parentNode])[PropertySymbol.childNodes][i] ===
87
+ this
88
+ ) {
89
+ (<HTMLElement>this[PropertySymbol.parentNode])[PropertySymbol.childNodes][i] =
90
+ newElement;
76
91
  break;
77
92
  }
78
93
  }
79
94
 
80
- if ((<HTMLElement>this.parentNode)[PropertySymbol.children]) {
95
+ if ((<HTMLElement>this[PropertySymbol.parentNode])[PropertySymbol.children]) {
81
96
  for (
82
- let i = 0, max = (<HTMLElement>this.parentNode)[PropertySymbol.children].length;
97
+ let i = 0,
98
+ max = (<HTMLElement>this[PropertySymbol.parentNode])[PropertySymbol.children]
99
+ .length;
83
100
  i < max;
84
101
  i++
85
102
  ) {
86
- if ((<HTMLElement>this.parentNode)[PropertySymbol.children][i] === this) {
87
- (<HTMLElement>this.parentNode)[PropertySymbol.children][i] = newElement;
103
+ if (
104
+ (<HTMLElement>this[PropertySymbol.parentNode])[PropertySymbol.children][i] ===
105
+ this
106
+ ) {
107
+ (<HTMLElement>this[PropertySymbol.parentNode])[PropertySymbol.children][i] =
108
+ newElement;
88
109
  break;
89
110
  }
90
111
  }
91
112
  }
92
113
 
93
- if (newElement.isConnected && newElement.connectedCallback) {
114
+ if (newElement[PropertySymbol.isConnected] && newElement.connectedCallback) {
94
115
  newElement.connectedCallback();
95
116
  }
96
117