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
@@ -65,7 +65,7 @@ export default class CSSStyleDeclarationElementStyle {
65
65
  return this.getComputedElementStyle();
66
66
  }
67
67
 
68
- const cssText = this.element.attributes['style']?.value;
68
+ const cssText = this.element[PropertySymbol.attributes]['style']?.[PropertySymbol.value];
69
69
 
70
70
  if (cssText) {
71
71
  if (this.cache.propertyManager && this.cache.cssText === cssText) {
@@ -94,24 +94,25 @@ export default class CSSStyleDeclarationElementStyle {
94
94
  };
95
95
  let shadowRootElements: Array<IStyleAndElement> = [];
96
96
 
97
- if (!this.element.isConnected) {
97
+ if (!this.element[PropertySymbol.isConnected]) {
98
98
  return new CSSStyleDeclarationPropertyManager();
99
99
  }
100
100
 
101
101
  if (
102
102
  this.cache.propertyManager &&
103
- this.cache.documentCacheID === this.element.ownerDocument[PropertySymbol.cacheID]
103
+ this.cache.documentCacheID ===
104
+ this.element[PropertySymbol.ownerDocument][PropertySymbol.cacheID]
104
105
  ) {
105
106
  return this.cache.propertyManager;
106
107
  }
107
108
 
108
- this.cache.documentCacheID = this.element.ownerDocument[PropertySymbol.cacheID];
109
+ this.cache.documentCacheID = this.element[PropertySymbol.ownerDocument][PropertySymbol.cacheID];
109
110
 
110
111
  // Walks through all parent elements and stores them in an array with element and matching CSS text.
111
112
  while (styleAndElement.element) {
112
- if (styleAndElement.element.nodeType === NodeTypeEnum.elementNode) {
113
+ if (styleAndElement.element[PropertySymbol.nodeType] === NodeTypeEnum.elementNode) {
113
114
  const rootNode = styleAndElement.element.getRootNode();
114
- if (rootNode.nodeType === NodeTypeEnum.documentNode) {
115
+ if (rootNode[PropertySymbol.nodeType] === NodeTypeEnum.documentNode) {
115
116
  documentElements.unshift(styleAndElement);
116
117
  } else {
117
118
  shadowRootElements.unshift(styleAndElement);
@@ -119,9 +120,11 @@ export default class CSSStyleDeclarationElementStyle {
119
120
  parentElements.unshift(styleAndElement);
120
121
  }
121
122
 
122
- if (styleAndElement.element === this.element.ownerDocument) {
123
+ if (styleAndElement.element === this.element[PropertySymbol.ownerDocument]) {
123
124
  const styleSheets = <INodeList<IHTMLStyleElement>>(
124
- this.element.ownerDocument.querySelectorAll('style,link[rel="stylesheet"]')
125
+ this.element[PropertySymbol.ownerDocument].querySelectorAll(
126
+ 'style,link[rel="stylesheet"]'
127
+ )
125
128
  );
126
129
 
127
130
  for (const styleSheet of styleSheets) {
@@ -134,17 +137,25 @@ export default class CSSStyleDeclarationElementStyle {
134
137
  }
135
138
  }
136
139
 
140
+ for (const styleSheet of this.element[PropertySymbol.ownerDocument].adoptedStyleSheets) {
141
+ this.parseCSSRules({
142
+ elements: documentElements,
143
+ cssRules: styleSheet.cssRules
144
+ });
145
+ }
146
+
137
147
  styleAndElement = { element: null, cssTexts: [] };
138
148
  } else if (
139
- styleAndElement.element.nodeType === NodeTypeEnum.documentFragmentNode &&
149
+ styleAndElement.element[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode &&
140
150
  (<IShadowRoot>styleAndElement.element).host
141
151
  ) {
152
+ const shadowRoot = <IShadowRoot>styleAndElement.element;
142
153
  const styleSheets = <INodeList<IHTMLStyleElement>>(
143
- (<IShadowRoot>styleAndElement.element).querySelectorAll('style,link[rel="stylesheet"]')
154
+ shadowRoot.querySelectorAll('style,link[rel="stylesheet"]')
144
155
  );
145
156
 
146
157
  styleAndElement = {
147
- element: <IElement>(<IShadowRoot>styleAndElement.element).host,
158
+ element: <IElement>shadowRoot.host,
148
159
  cssTexts: []
149
160
  };
150
161
 
@@ -158,9 +169,21 @@ export default class CSSStyleDeclarationElementStyle {
158
169
  });
159
170
  }
160
171
  }
172
+
173
+ for (const styleSheet of shadowRoot.adoptedStyleSheets) {
174
+ this.parseCSSRules({
175
+ elements: shadowRootElements,
176
+ cssRules: styleSheet.cssRules,
177
+ hostElement: styleAndElement
178
+ });
179
+ }
180
+
161
181
  shadowRootElements = [];
162
182
  } else {
163
- styleAndElement = { element: <IElement>styleAndElement.element.parentNode, cssTexts: [] };
183
+ styleAndElement = {
184
+ element: <IElement>styleAndElement.element[PropertySymbol.parentNode],
185
+ cssTexts: []
186
+ };
164
187
  }
165
188
  }
166
189
 
@@ -175,36 +198,49 @@ export default class CSSStyleDeclarationElementStyle {
175
198
  parentElement.cssTexts.sort((a, b) => a.priorityWeight - b.priorityWeight);
176
199
 
177
200
  let elementCSSText = '';
178
- if (CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName]) {
201
+ if (
202
+ CSSStyleDeclarationElementDefaultCSS[
203
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
204
+ ]
205
+ ) {
179
206
  if (
180
- typeof CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName] ===
181
- 'string'
207
+ typeof CSSStyleDeclarationElementDefaultCSS[
208
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
209
+ ] === 'string'
182
210
  ) {
183
211
  elementCSSText +=
184
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName];
212
+ CSSStyleDeclarationElementDefaultCSS[
213
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
214
+ ];
185
215
  } else {
186
216
  for (const key of Object.keys(
187
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName]
217
+ CSSStyleDeclarationElementDefaultCSS[
218
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
219
+ ]
188
220
  )) {
189
221
  if (key === 'default' || !!parentElement.element[key]) {
190
222
  elementCSSText +=
191
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName][
192
- key
193
- ];
223
+ CSSStyleDeclarationElementDefaultCSS[
224
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
225
+ ][key];
194
226
  }
195
227
  }
196
228
  }
197
229
  elementCSSText +=
198
- CSSStyleDeclarationElementDefaultCSS[(<IElement>parentElement.element).tagName];
230
+ CSSStyleDeclarationElementDefaultCSS[
231
+ (<IElement>parentElement.element)[PropertySymbol.tagName]
232
+ ];
199
233
  }
200
234
 
201
235
  for (const cssText of parentElement.cssTexts) {
202
236
  elementCSSText += cssText.cssText;
203
237
  }
204
238
 
205
- const elementStyleAttribute = (<IElement>parentElement.element).attributes['style'];
239
+ const elementStyleAttribute = (<IElement>parentElement.element)[PropertySymbol.attributes][
240
+ 'style'
241
+ ];
206
242
  if (elementStyleAttribute) {
207
- elementCSSText += elementStyleAttribute.value;
243
+ elementCSSText += elementStyleAttribute[PropertySymbol.value];
208
244
  }
209
245
 
210
246
  CSSStyleDeclarationCSSParser.parse(elementCSSText, (name, value, important) => {
@@ -229,7 +265,7 @@ export default class CSSStyleDeclarationElementStyle {
229
265
  parentFontSize,
230
266
  parentSize: parentFontSize
231
267
  });
232
- if ((<IElement>parentElement.element).tagName === 'HTML') {
268
+ if ((<IElement>parentElement.element)[PropertySymbol.tagName] === 'HTML') {
233
269
  rootFontSize = parsedValue;
234
270
  } else if (parentElement !== targetElement) {
235
271
  parentFontSize = parsedValue;
@@ -277,7 +313,7 @@ export default class CSSStyleDeclarationElementStyle {
277
313
  return;
278
314
  }
279
315
 
280
- const ownerWindow = this.element.ownerDocument[PropertySymbol.defaultView];
316
+ const ownerWindow = this.element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow];
281
317
 
282
318
  for (const rule of options.cssRules) {
283
319
  if (rule.type === CSSRuleTypeEnum.styleRule) {
@@ -308,7 +344,7 @@ export default class CSSStyleDeclarationElementStyle {
308
344
  new MediaQueryList({
309
345
  ownerWindow,
310
346
  media: (<CSSMediaRule>rule).conditionText,
311
- rootFontSize: this.element.tagName === 'HTML' ? 16 : null
347
+ rootFontSize: this.element[PropertySymbol.tagName] === 'HTML' ? 16 : null
312
348
  }).matches
313
349
  ) {
314
350
  this.parseCSSRules({
@@ -362,7 +398,7 @@ export default class CSSStyleDeclarationElementStyle {
362
398
  }): string {
363
399
  if (
364
400
  WindowBrowserSettingsReader.getSettings(
365
- this.element.ownerDocument[PropertySymbol.defaultView]
401
+ this.element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]
366
402
  ).disableComputedStyleRendering
367
403
  ) {
368
404
  return options.value;
@@ -375,7 +411,7 @@ export default class CSSStyleDeclarationElementStyle {
375
411
  while ((match = regexp.exec(options.value)) !== null) {
376
412
  if (match[1] !== 'px') {
377
413
  const valueInPixels = CSSMeasurementConverter.toPixels({
378
- ownerWindow: this.element.ownerDocument[PropertySymbol.defaultView],
414
+ ownerWindow: this.element[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow],
379
415
  value: match[0],
380
416
  rootFontSize: options.rootFontSize,
381
417
  parentFontSize: options.parentFontSize,
@@ -24,14 +24,14 @@ export default class DOMImplementation {
24
24
  * TODO: Not fully implemented.
25
25
  */
26
26
  public createDocument(): IDocument {
27
- return new this.#document[PropertySymbol.defaultView].HTMLDocument();
27
+ return new this.#document[PropertySymbol.ownerWindow].HTMLDocument();
28
28
  }
29
29
 
30
30
  /**
31
31
  * Creates and returns an HTML Document.
32
32
  */
33
33
  public createHTMLDocument(): IDocument {
34
- return new this.#document[PropertySymbol.defaultView].HTMLDocument();
34
+ return new this.#document[PropertySymbol.ownerWindow].HTMLDocument();
35
35
  }
36
36
 
37
37
  /**
@@ -48,11 +48,11 @@ export default class DOMImplementation {
48
48
  ): DocumentType {
49
49
  const documentType = NodeFactory.createNode<DocumentType>(
50
50
  this.#document,
51
- this.#document[PropertySymbol.defaultView].DocumentType
51
+ this.#document[PropertySymbol.ownerWindow].DocumentType
52
52
  );
53
- documentType.name = qualifiedName;
54
- documentType.publicId = publicId;
55
- documentType.systemId = systemId;
53
+ documentType[PropertySymbol.name] = qualifiedName;
54
+ documentType[PropertySymbol.publicId] = publicId;
55
+ documentType[PropertySymbol.systemId] = systemId;
56
56
  return documentType;
57
57
  }
58
58
  }
@@ -1,10 +1,10 @@
1
1
  import IDocument from '../nodes/document/IDocument.js';
2
2
  import * as PropertySymbol from '../PropertySymbol.js';
3
3
  import XMLParser from '../xml-parser/XMLParser.js';
4
- import Node from '../nodes/node/Node.js';
5
4
  import DOMException from '../exception/DOMException.js';
6
5
  import DocumentFragment from '../nodes/document-fragment/DocumentFragment.js';
7
6
  import IBrowserWindow from '../window/IBrowserWindow.js';
7
+ import NodeTypeEnum from '../nodes/node/NodeTypeEnum.js';
8
8
 
9
9
  /**
10
10
  * DOM parser.
@@ -48,7 +48,7 @@ export default class DOMParser {
48
48
  for (const node of root[PropertySymbol.childNodes]) {
49
49
  if (node['tagName'] === 'HTML') {
50
50
  documentElement = node;
51
- } else if (node.nodeType === Node.DOCUMENT_TYPE_NODE) {
51
+ } else if (node[PropertySymbol.nodeType] === NodeTypeEnum.documentTypeNode) {
52
52
  documentTypeNode = node;
53
53
  }
54
54
 
@@ -94,12 +94,12 @@ export default class Event {
94
94
  eventTarget = (<INode>(<unknown>eventTarget)).parentNode;
95
95
  } else if (
96
96
  this.composed &&
97
- (<INode>eventTarget).nodeType === NodeTypeEnum.documentFragmentNode &&
97
+ (<INode>eventTarget)[PropertySymbol.nodeType] === NodeTypeEnum.documentFragmentNode &&
98
98
  (<IShadowRoot>eventTarget).host
99
99
  ) {
100
100
  eventTarget = (<IShadowRoot>eventTarget).host;
101
- } else if ((<INode>eventTarget).nodeType === NodeTypeEnum.documentNode) {
102
- eventTarget = (<IDocument>(<unknown>eventTarget))[PropertySymbol.defaultView];
101
+ } else if ((<INode>eventTarget)[PropertySymbol.nodeType] === NodeTypeEnum.documentNode) {
102
+ eventTarget = (<IDocument>(<unknown>eventTarget))[PropertySymbol.ownerWindow];
103
103
  } else {
104
104
  break;
105
105
  }
@@ -279,11 +279,11 @@ export default abstract class EventTarget implements IEventTarget {
279
279
  * @returns Window.
280
280
  */
281
281
  #getWindow(): IBrowserWindow | null {
282
- if ((<INode>(<unknown>this)).ownerDocument) {
283
- return (<INode>(<unknown>this)).ownerDocument[PropertySymbol.defaultView];
282
+ if ((<INode>(<unknown>this))[PropertySymbol.ownerDocument]) {
283
+ return (<INode>(<unknown>this))[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow];
284
284
  }
285
- if ((<IDocument>(<unknown>this))[PropertySymbol.defaultView]) {
286
- return (<IDocument>(<unknown>this))[PropertySymbol.defaultView];
285
+ if ((<IDocument>(<unknown>this))[PropertySymbol.ownerWindow]) {
286
+ return (<IDocument>(<unknown>this))[PropertySymbol.ownerWindow];
287
287
  }
288
288
  if ((<IBrowserWindow>(<unknown>this)).document) {
289
289
  return <IBrowserWindow>(<unknown>this);
@@ -44,11 +44,13 @@ export default class Request implements IRequest {
44
44
  public readonly credentials: IRequestCredentials;
45
45
 
46
46
  // Internal properties
47
- public readonly [PropertySymbol.contentLength]: number | null = null;
48
- public readonly [PropertySymbol.contentType]: string | null = null;
47
+ public [PropertySymbol.contentLength]: number | null = null;
48
+ public [PropertySymbol.contentType]: string | null = null;
49
49
  public [PropertySymbol.referrer]: '' | 'no-referrer' | 'client' | URL = 'client';
50
- public readonly [PropertySymbol.url]: URL;
51
- public readonly [PropertySymbol.bodyBuffer]: Buffer | null;
50
+ public [PropertySymbol.url]: URL;
51
+ public [PropertySymbol.bodyBuffer]: Buffer | null;
52
+
53
+ // Private properties
52
54
  readonly #window: IBrowserWindow;
53
55
  readonly #asyncTaskManager: AsyncTaskManager;
54
56
 
@@ -149,7 +151,7 @@ export default class Request implements IRequest {
149
151
  * Returns owner document.
150
152
  */
151
153
  protected get [PropertySymbol.ownerDocument](): IDocument {
152
- throw new Error('[PropertySymbol.ownerDocument] needs to be implemented by sub-class.');
154
+ throw new Error('[PropertySymbol.ownerDocument] getter needs to be implemented by sub-class.');
153
155
  }
154
156
 
155
157
  /**
@@ -29,14 +29,14 @@ export default class FormData implements Iterable<[string, string | File]> {
29
29
  constructor(form?: IHTMLFormElement) {
30
30
  if (form) {
31
31
  for (const name of Object.keys(
32
- (<HTMLFormControlsCollection>form.elements)[PropertySymbol.namedItems]
32
+ (<HTMLFormControlsCollection>form[PropertySymbol.elements])[PropertySymbol.namedItems]
33
33
  )) {
34
- let radioNodeList = (<HTMLFormControlsCollection>form.elements)[PropertySymbol.namedItems][
35
- name
36
- ];
34
+ let radioNodeList = (<HTMLFormControlsCollection>form[PropertySymbol.elements])[
35
+ PropertySymbol.namedItems
36
+ ][name];
37
37
 
38
38
  if (
39
- radioNodeList[0].tagName === 'INPUT' &&
39
+ radioNodeList[0][PropertySymbol.tagName] === 'INPUT' &&
40
40
  (radioNodeList[0].type === 'checkbox' || radioNodeList[0].type === 'radio')
41
41
  ) {
42
42
  const newRadioNodeList = new RadioNodeList();
@@ -50,12 +50,12 @@ export default class FormData implements Iterable<[string, string | File]> {
50
50
  }
51
51
 
52
52
  for (const node of radioNodeList) {
53
- if (node.name && SUBMITTABLE_ELEMENTS.includes(node.tagName)) {
54
- if (node.tagName === 'INPUT' && node.type === 'file') {
55
- if ((<IHTMLInputElement>node).files.length === 0) {
53
+ if (node.name && SUBMITTABLE_ELEMENTS.includes(node[PropertySymbol.tagName])) {
54
+ if (node[PropertySymbol.tagName] === 'INPUT' && node.type === 'file') {
55
+ if ((<IHTMLInputElement>node)[PropertySymbol.files].length === 0) {
56
56
  this.append(node.name, new File([], '', { type: 'application/octet-stream' }));
57
57
  } else {
58
- for (const file of (<IHTMLInputElement>node).files) {
58
+ for (const file of (<IHTMLInputElement>node)[PropertySymbol.files]) {
59
59
  this.append(node.name, file);
60
60
  }
61
61
  }
@@ -46,9 +46,9 @@ export default class MutationObserver {
46
46
  }
47
47
 
48
48
  if (!this.#window) {
49
- this.#window = target.ownerDocument
50
- ? target.ownerDocument[PropertySymbol.defaultView]
51
- : target[PropertySymbol.defaultView];
49
+ this.#window = target[PropertySymbol.ownerDocument]
50
+ ? target[PropertySymbol.ownerDocument][PropertySymbol.ownerWindow]
51
+ : target[PropertySymbol.ownerWindow];
52
52
  }
53
53
 
54
54
  // Makes sure that attribute names are lower case.
@@ -63,12 +63,16 @@ export default class NamedNodeMap implements INamedNodeMap {
63
63
  public getNamedItemNS(namespace: string, localName: string): IAttr | null {
64
64
  const attribute = this.getNamedItem(localName);
65
65
 
66
- if (attribute && attribute.namespaceURI === namespace && attribute.localName === localName) {
66
+ if (
67
+ attribute &&
68
+ attribute[PropertySymbol.namespaceURI] === namespace &&
69
+ attribute.localName === localName
70
+ ) {
67
71
  return attribute;
68
72
  }
69
73
 
70
74
  for (let i = 0, max = this.length; i < max; i++) {
71
- if (this[i].namespaceURI === namespace && this[i].localName === localName) {
75
+ if (this[i][PropertySymbol.namespaceURI] === namespace && this[i].localName === localName) {
72
76
  return this[i];
73
77
  }
74
78
  }
@@ -125,7 +129,7 @@ export default class NamedNodeMap implements INamedNodeMap {
125
129
  public removeNamedItemNS(namespace: string, localName: string): IAttr | null {
126
130
  const attribute = this.getNamedItemNS(namespace, localName);
127
131
  if (attribute) {
128
- return this.removeNamedItem(attribute.name);
132
+ return this.removeNamedItem(attribute[PropertySymbol.name]);
129
133
  }
130
134
  return null;
131
135
  }
@@ -137,10 +141,10 @@ export default class NamedNodeMap implements INamedNodeMap {
137
141
  * @returns Replaced item.
138
142
  */
139
143
  public [PropertySymbol.setNamedItemWithoutConsequences](item: IAttr): IAttr | null {
140
- if (item.name) {
141
- const replacedItem = this[PropertySymbol.namedItems][item.name] || null;
144
+ if (item[PropertySymbol.name]) {
145
+ const replacedItem = this[PropertySymbol.namedItems][item[PropertySymbol.name]] || null;
142
146
 
143
- this[PropertySymbol.namedItems][item.name] = item;
147
+ this[PropertySymbol.namedItems][item[PropertySymbol.name]] = item;
144
148
 
145
149
  if (replacedItem) {
146
150
  this[PropertySymbol.removeNamedItemIndex](replacedItem);
@@ -149,8 +153,8 @@ export default class NamedNodeMap implements INamedNodeMap {
149
153
  this[this.length] = item;
150
154
  this.length++;
151
155
 
152
- if (this[PropertySymbol.isValidPropertyName](item.name)) {
153
- this[item.name] = item;
156
+ if (this[PropertySymbol.isValidPropertyName](item[PropertySymbol.name])) {
157
+ this[item[PropertySymbol.name]] = item;
154
158
  }
155
159
 
156
160
  return replacedItem;
@@ -1,6 +1,8 @@
1
1
  import IElement from '../element/IElement.js';
2
2
  import Node from '../node/Node.js';
3
3
  import IAttr from './IAttr.js';
4
+ import * as PropertySymbol from '../../PropertySymbol.js';
5
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
4
6
 
5
7
  /**
6
8
  * Attribute node interface.
@@ -8,20 +10,57 @@ import IAttr from './IAttr.js';
8
10
  * Reference: https://developer.mozilla.org/en-US/docs/Web/API/Attr.
9
11
  */
10
12
  export default class Attr extends Node implements IAttr {
11
- public readonly nodeType = Node.ATTRIBUTE_NODE;
12
- public value: string = null;
13
- public name: string = null;
14
- public namespaceURI: string = null;
13
+ public [PropertySymbol.nodeType] = NodeTypeEnum.attributeNode;
14
+ public [PropertySymbol.namespaceURI]: string | null = null;
15
+ public [PropertySymbol.name]: string | null = null;
16
+ public [PropertySymbol.value]: string | null = null;
17
+ public [PropertySymbol.specified] = true;
18
+ public [PropertySymbol.ownerElement]: IElement | null = null;
15
19
 
16
20
  /**
17
- * @deprecated
21
+ * Returns specified.
22
+ *
23
+ * @returns Specified.
24
+ */
25
+ public get specified(): boolean {
26
+ return this[PropertySymbol.specified];
27
+ }
28
+
29
+ /**
30
+ * Returns owner element.
31
+ *
32
+ * @returns Owner element.
33
+ */
34
+ public get ownerElement(): IElement | null {
35
+ return this[PropertySymbol.ownerElement];
36
+ }
37
+
38
+ /**
39
+ * Returns value.
40
+ *
41
+ * @returns Value.
42
+ */
43
+ public get value(): string {
44
+ return this[PropertySymbol.value];
45
+ }
46
+
47
+ /**
48
+ * Sets value.
49
+ *
50
+ * @param value Value.
18
51
  */
19
- public readonly ownerElement: IElement = null;
52
+ public set value(value: string) {
53
+ this[PropertySymbol.value] = value;
54
+ }
20
55
 
21
56
  /**
22
- * @deprecated
57
+ * Returns name.
58
+ *
59
+ * @returns Name.
23
60
  */
24
- public readonly specified = true;
61
+ public get name(): string {
62
+ return this[PropertySymbol.name];
63
+ }
25
64
 
26
65
  /**
27
66
  * Returns local name.
@@ -29,7 +68,7 @@ export default class Attr extends Node implements IAttr {
29
68
  * @returns Local name.
30
69
  */
31
70
  public get localName(): string {
32
- return this.name ? this.name.split(':').reverse()[0] : null;
71
+ return this[PropertySymbol.name] ? this[PropertySymbol.name].split(':').reverse()[0] : null;
33
72
  }
34
73
 
35
74
  /**
@@ -38,13 +77,22 @@ export default class Attr extends Node implements IAttr {
38
77
  * @returns Prefix.
39
78
  */
40
79
  public get prefix(): string {
41
- return this.name ? this.name.split(':')[0] : null;
80
+ return this[PropertySymbol.name] ? this[PropertySymbol.name].split(':')[0] : null;
42
81
  }
43
82
 
44
83
  /**
45
84
  * @override
46
85
  */
47
86
  public get textContent(): string {
48
- return this.value;
87
+ return this[PropertySymbol.value];
88
+ }
89
+
90
+ /**
91
+ * Returns namespace URI.
92
+ *
93
+ * @returns Namespace URI.
94
+ */
95
+ public get namespaceURI(): string | null {
96
+ return this[PropertySymbol.namespaceURI];
49
97
  }
50
98
  }
@@ -57,8 +57,8 @@ export default abstract class CharacterData extends Node implements ICharacterDa
57
57
  const oldValue = this[PropertySymbol.data];
58
58
  this[PropertySymbol.data] = String(data);
59
59
 
60
- if (this.isConnected) {
61
- this.ownerDocument[PropertySymbol.cacheID]++;
60
+ if (this[PropertySymbol.isConnected]) {
61
+ this[PropertySymbol.ownerDocument][PropertySymbol.cacheID]++;
62
62
  }
63
63
 
64
64
  // MutationObserver
@@ -17,8 +17,8 @@ export default class ChildNodeUtility {
17
17
  * @param childNode Child node.
18
18
  */
19
19
  public static remove(childNode: IChildNode): void {
20
- if (childNode.parentNode) {
21
- childNode.parentNode.removeChild(childNode);
20
+ if (childNode[PropertySymbol.parentNode]) {
21
+ childNode[PropertySymbol.parentNode].removeChild(childNode);
22
22
  }
23
23
  }
24
24
 
@@ -29,7 +29,7 @@ export default class ChildNodeUtility {
29
29
  * @param nodes List of Node or DOMString.
30
30
  */
31
31
  public static replaceWith(childNode: IChildNode, ...nodes: (INode | string)[]): void {
32
- const parent = <IParentNode>childNode.parentNode;
32
+ const parent = <IParentNode>childNode[PropertySymbol.parentNode];
33
33
 
34
34
  if (!parent) {
35
35
  throw new DOMException('This element has no parent node.');
@@ -38,7 +38,7 @@ export default class ChildNodeUtility {
38
38
  for (const node of nodes) {
39
39
  if (typeof node === 'string') {
40
40
  const newChildNodes = (<DocumentFragment>(
41
- XMLParser.parse(<Document>childNode.ownerDocument, node)
41
+ XMLParser.parse(<Document>childNode[PropertySymbol.ownerDocument], node)
42
42
  ))[PropertySymbol.childNodes].slice();
43
43
  for (const newChildNode of newChildNodes) {
44
44
  parent.insertBefore(newChildNode, childNode);
@@ -58,7 +58,7 @@ export default class ChildNodeUtility {
58
58
  * @param nodes List of Node or DOMString.
59
59
  */
60
60
  public static before(childNode: IChildNode, ...nodes: (string | INode)[]): void {
61
- const parent = <IParentNode>childNode.parentNode;
61
+ const parent = <IParentNode>childNode[PropertySymbol.parentNode];
62
62
 
63
63
  if (!parent) {
64
64
  return;
@@ -67,7 +67,7 @@ export default class ChildNodeUtility {
67
67
  for (const node of nodes) {
68
68
  if (typeof node === 'string') {
69
69
  const newChildNodes = (<DocumentFragment>(
70
- XMLParser.parse(<Document>childNode.ownerDocument, node)
70
+ XMLParser.parse(<Document>childNode[PropertySymbol.ownerDocument], node)
71
71
  ))[PropertySymbol.childNodes].slice();
72
72
  for (const newChildNode of newChildNodes) {
73
73
  parent.insertBefore(newChildNode, childNode);
@@ -85,7 +85,7 @@ export default class ChildNodeUtility {
85
85
  * @param nodes List of Node or DOMString.
86
86
  */
87
87
  public static after(childNode: IChildNode, ...nodes: (string | INode)[]): void {
88
- const parent = <IParentNode>childNode.parentNode;
88
+ const parent = <IParentNode>childNode[PropertySymbol.parentNode];
89
89
 
90
90
  if (!parent) {
91
91
  return;
@@ -96,7 +96,7 @@ export default class ChildNodeUtility {
96
96
  for (const node of nodes) {
97
97
  if (typeof node === 'string') {
98
98
  const newChildNodes = (<DocumentFragment>(
99
- XMLParser.parse(<Document>childNode.ownerDocument, node)
99
+ XMLParser.parse(<Document>childNode[PropertySymbol.ownerDocument], node)
100
100
  ))[PropertySymbol.childNodes].slice();
101
101
  for (const newChildNode of newChildNodes) {
102
102
  if (!nextSibling) {
@@ -1,6 +1,7 @@
1
- import Element from '../element/Element.js';
2
1
  import IElement from '../element/IElement.js';
2
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
3
3
  import INonDocumentTypeChildNode from './INonDocumentTypeChildNode.js';
4
+ import * as PropertySymbol from '../../PropertySymbol.js';
4
5
 
5
6
  /**
6
7
  * Non Document Child node utility.
@@ -14,7 +15,7 @@ export default class NonDocumentChildNodeUtility {
14
15
  */
15
16
  public static previousElementSibling(childNode: INonDocumentTypeChildNode): IElement {
16
17
  let sibling = childNode.previousSibling;
17
- while (sibling && sibling.nodeType !== Element.ELEMENT_NODE) {
18
+ while (sibling && sibling[PropertySymbol.nodeType] !== NodeTypeEnum.elementNode) {
18
19
  sibling = sibling.previousSibling;
19
20
  }
20
21
  return <IElement>sibling;
@@ -28,7 +29,7 @@ export default class NonDocumentChildNodeUtility {
28
29
  */
29
30
  public static nextElementSibling(childNode: INonDocumentTypeChildNode): IElement {
30
31
  let sibling = childNode.nextSibling;
31
- while (sibling && sibling.nodeType !== Element.ELEMENT_NODE) {
32
+ while (sibling && sibling[PropertySymbol.nodeType] !== NodeTypeEnum.elementNode) {
32
33
  sibling = sibling.nextSibling;
33
34
  }
34
35
  return <IElement>sibling;
@@ -1,12 +1,13 @@
1
- import Node from '../node/Node.js';
2
1
  import CharacterData from '../character-data/CharacterData.js';
3
2
  import IComment from './IComment.js';
3
+ import * as PropertySymbol from '../../PropertySymbol.js';
4
+ import NodeTypeEnum from '../node/NodeTypeEnum.js';
4
5
 
5
6
  /**
6
7
  * Comment node.
7
8
  */
8
9
  export default class Comment extends CharacterData implements IComment {
9
- public readonly nodeType = Node.COMMENT_NODE;
10
+ public [PropertySymbol.nodeType] = NodeTypeEnum.commentNode;
10
11
 
11
12
  /**
12
13
  * Node name.