@dooboostore/dom-parser 1.0.2 → 1.0.4

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.
Files changed (727) hide show
  1. package/README.MD +369 -6
  2. package/dist/cjs/DomParser.js +11 -1
  3. package/dist/cjs/DomParser.js.map +2 -2
  4. package/dist/cjs/bundle-entry.js +36 -0
  5. package/dist/cjs/bundle-entry.js.map +7 -0
  6. package/dist/cjs/factory/ElementFactory.js +31 -7
  7. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  8. package/dist/cjs/index.js +26 -0
  9. package/dist/cjs/index.js.map +2 -2
  10. package/dist/cjs/node/CharacterData.js.map +1 -1
  11. package/dist/cjs/node/ChildNode.js +0 -15
  12. package/dist/cjs/node/ChildNode.js.map +3 -3
  13. package/dist/cjs/node/ChildNodeBase.js +20 -0
  14. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  15. package/dist/cjs/node/Comment.js.map +2 -2
  16. package/dist/cjs/node/Document.js +0 -27
  17. package/dist/cjs/node/Document.js.map +4 -4
  18. package/dist/cjs/node/DocumentBase.js +168 -205
  19. package/dist/cjs/node/DocumentBase.js.map +2 -2
  20. package/dist/cjs/node/DocumentFragment.js +0 -15
  21. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  22. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  23. package/dist/cjs/node/Node.js.map +1 -1
  24. package/dist/cjs/node/NodeBase.js +44 -2
  25. package/dist/cjs/node/NodeBase.js.map +2 -2
  26. package/dist/cjs/node/NodeFilter.js +43 -0
  27. package/dist/cjs/node/NodeFilter.js.map +7 -0
  28. package/dist/cjs/node/NodeIterator.js +1 -28
  29. package/dist/cjs/node/NodeIterator.js.map +2 -2
  30. package/dist/cjs/node/ParentNode.js +0 -15
  31. package/dist/cjs/node/ParentNode.js.map +3 -3
  32. package/dist/cjs/node/ParentNodeBase.js +10 -10
  33. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  34. package/dist/cjs/node/ShadowRootBase.js +79 -0
  35. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  36. package/dist/cjs/node/Text.js +0 -15
  37. package/dist/cjs/node/Text.js.map +3 -3
  38. package/dist/cjs/node/TextBase.js +0 -3
  39. package/dist/cjs/node/TextBase.js.map +2 -2
  40. package/dist/cjs/node/TreeWalker.js +272 -0
  41. package/dist/cjs/node/TreeWalker.js.map +7 -0
  42. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  43. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  44. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  45. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  47. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  48. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  49. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  50. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  51. package/dist/cjs/node/collection/index.js +6 -6
  52. package/dist/cjs/node/collection/index.js.map +2 -2
  53. package/dist/cjs/node/elements/Element.js +0 -15
  54. package/dist/cjs/node/elements/Element.js.map +3 -3
  55. package/dist/cjs/node/elements/ElementBase.js +163 -331
  56. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  57. package/dist/cjs/node/elements/HTMLAnchorElement.js +2 -2
  58. package/dist/cjs/node/elements/HTMLAnchorElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLAreaElement.js +2 -2
  60. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  61. package/dist/cjs/node/elements/{HTMLGenericElement.js → HTMLAudioElement.js} +8 -11
  62. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLBaseElement.js +2 -2
  64. package/dist/cjs/node/elements/HTMLBaseElement.js.map +2 -2
  65. package/dist/cjs/node/elements/HTMLBodyElement.js +2 -2
  66. package/dist/cjs/node/elements/HTMLBodyElement.js.map +2 -2
  67. package/dist/cjs/node/elements/HTMLButtonElement.js +3 -3
  68. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  69. package/dist/cjs/node/elements/HTMLCanvasElement.js +2 -2
  70. package/dist/cjs/node/elements/HTMLCanvasElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLCaptionElement.js +2 -2
  72. package/dist/cjs/node/elements/HTMLCaptionElement.js.map +2 -2
  73. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLDListElement.js} +9 -16
  74. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  75. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  76. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  77. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  78. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  79. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  80. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  81. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  82. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  83. package/dist/cjs/node/elements/HTMLDivElement.js +2 -2
  84. package/dist/cjs/node/elements/HTMLDivElement.js.map +2 -2
  85. package/dist/cjs/node/elements/HTMLElement.js +13 -0
  86. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  87. package/dist/cjs/node/elements/HTMLElementBase.js +44 -44
  88. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  89. package/dist/cjs/node/elements/HTMLEmbedElement.js +2 -2
  90. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  91. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  92. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  93. package/dist/cjs/node/elements/HTMLFormElement.js +2 -2
  94. package/dist/cjs/node/elements/HTMLFormElement.js.map +2 -2
  95. package/dist/cjs/node/elements/HTMLH1Element.js +2 -2
  96. package/dist/cjs/node/elements/HTMLH1Element.js.map +2 -2
  97. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  98. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  99. package/dist/cjs/node/elements/HTMLHeadElement.js +2 -2
  100. package/dist/cjs/node/elements/HTMLHeadElement.js.map +2 -2
  101. package/dist/cjs/node/elements/HTMLHtmlElement.js +2 -2
  102. package/dist/cjs/node/elements/HTMLHtmlElement.js.map +2 -2
  103. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  104. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  105. package/dist/cjs/node/elements/HTMLImgElement.js +2 -2
  106. package/dist/cjs/node/elements/HTMLImgElement.js.map +2 -2
  107. package/dist/cjs/node/elements/HTMLInputElement.js +2 -2
  108. package/dist/cjs/node/elements/HTMLInputElement.js.map +2 -2
  109. package/dist/cjs/node/elements/HTMLLIElement.js +2 -2
  110. package/dist/cjs/node/elements/HTMLLIElement.js.map +2 -2
  111. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  112. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  113. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  114. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  115. package/dist/cjs/node/elements/HTMLLinkElement.js +2 -2
  116. package/dist/cjs/node/elements/HTMLLinkElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  118. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  119. package/dist/cjs/node/elements/HTMLMetaElement.js +2 -2
  120. package/dist/cjs/node/elements/HTMLMetaElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  122. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  123. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  124. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  125. package/dist/cjs/node/elements/HTMLOListElement.js +2 -2
  126. package/dist/cjs/node/elements/HTMLOListElement.js.map +2 -2
  127. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  129. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  130. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  131. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  132. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  133. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  134. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  135. package/dist/cjs/node/elements/HTMLPElement.js +2 -2
  136. package/dist/cjs/node/elements/HTMLPElement.js.map +2 -2
  137. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  138. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  139. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  140. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  141. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  142. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  143. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  144. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  145. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  146. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  147. package/dist/cjs/node/elements/HTMLScriptElement.js +2 -2
  148. package/dist/cjs/node/elements/HTMLScriptElement.js.map +2 -2
  149. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  150. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  151. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  152. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  153. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  154. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  155. package/dist/cjs/node/elements/HTMLSpanElement.js +2 -2
  156. package/dist/cjs/node/elements/HTMLSpanElement.js.map +2 -2
  157. package/dist/cjs/node/elements/HTMLStyleElement.js +2 -2
  158. package/dist/cjs/node/elements/HTMLStyleElement.js.map +2 -2
  159. package/dist/cjs/node/elements/HTMLTableElement.js +2 -2
  160. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  161. package/dist/cjs/node/elements/HTMLTbodyElement.js +2 -2
  162. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  163. package/dist/cjs/node/elements/HTMLTdElement.js +2 -2
  164. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  165. package/dist/cjs/node/elements/HTMLTemplateElement.js +2 -2
  166. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  167. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  168. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  169. package/dist/cjs/node/elements/HTMLTfootElement.js +2 -2
  170. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  171. package/dist/cjs/node/elements/HTMLThElement.js +2 -2
  172. package/dist/cjs/node/elements/HTMLThElement.js.map +2 -2
  173. package/dist/cjs/node/elements/HTMLTheadElement.js +2 -2
  174. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  175. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  176. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  177. package/dist/cjs/node/elements/HTMLTitleElement.js +2 -2
  178. package/dist/cjs/node/elements/HTMLTitleElement.js.map +2 -2
  179. package/dist/cjs/node/elements/HTMLTrElement.js +2 -2
  180. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  181. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  182. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  183. package/dist/cjs/node/elements/HTMLUListElement.js +2 -2
  184. package/dist/cjs/node/elements/HTMLUListElement.js.map +2 -2
  185. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  186. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  187. package/dist/cjs/node/elements/MathMLElement.js +2 -2
  188. package/dist/cjs/node/elements/MathMLElement.js.map +2 -2
  189. package/dist/cjs/node/elements/SVGElement.js +2 -2
  190. package/dist/cjs/node/elements/SVGElement.js.map +2 -2
  191. package/dist/cjs/node/elements/index.js +181 -94
  192. package/dist/cjs/node/elements/index.js.map +2 -2
  193. package/dist/cjs/node/index.js +6 -16
  194. package/dist/cjs/node/index.js.map +2 -2
  195. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  196. package/dist/cjs/window/CustomElementRegistryImp.js +113 -0
  197. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  198. package/dist/cjs/window/Window.js +0 -15
  199. package/dist/cjs/window/Window.js.map +3 -3
  200. package/dist/cjs/window/WindowBase.js +210 -613
  201. package/dist/cjs/window/WindowBase.js.map +2 -2
  202. package/dist/cjs/window/index.js +0 -5
  203. package/dist/cjs/window/index.js.map +2 -2
  204. package/dist/esm/DomParser.js +11 -1
  205. package/dist/esm/DomParser.js.map +2 -2
  206. package/dist/esm/bundle-entry.js +6 -0
  207. package/dist/esm/bundle-entry.js.map +7 -0
  208. package/dist/esm/factory/ElementFactory.js +32 -8
  209. package/dist/esm/factory/ElementFactory.js.map +2 -2
  210. package/dist/esm/index.js +26 -0
  211. package/dist/esm/index.js.map +2 -2
  212. package/dist/esm/node/ChildNodeBase.js +20 -0
  213. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  214. package/dist/esm/node/Comment.js.map +2 -2
  215. package/dist/esm/node/Document.js +0 -8
  216. package/dist/esm/node/Document.js.map +4 -4
  217. package/dist/esm/node/DocumentBase.js +165 -202
  218. package/dist/esm/node/DocumentBase.js.map +2 -2
  219. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  220. package/dist/esm/node/Node.js.map +1 -1
  221. package/dist/esm/node/NodeBase.js +45 -22
  222. package/dist/esm/node/NodeBase.js.map +2 -2
  223. package/dist/esm/node/NodeFilter.js +24 -0
  224. package/dist/esm/node/NodeFilter.js.map +7 -0
  225. package/dist/esm/node/NodeIterator.js +1 -28
  226. package/dist/esm/node/NodeIterator.js.map +2 -2
  227. package/dist/esm/node/ParentNodeBase.js +4 -4
  228. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  229. package/dist/esm/node/ShadowRootBase.js +60 -0
  230. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  231. package/dist/esm/node/TextBase.js +0 -3
  232. package/dist/esm/node/TextBase.js.map +2 -2
  233. package/dist/esm/node/TreeWalker.js +253 -0
  234. package/dist/esm/node/TreeWalker.js.map +7 -0
  235. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  236. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  237. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  238. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  239. package/dist/esm/node/collection/NodeList.js.map +1 -1
  240. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  241. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  242. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  243. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  244. package/dist/esm/node/collection/index.js +6 -6
  245. package/dist/esm/node/collection/index.js.map +2 -2
  246. package/dist/esm/node/elements/ElementBase.js +163 -331
  247. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  248. package/dist/esm/node/elements/HTMLAnchorElement.js +2 -2
  249. package/dist/esm/node/elements/HTMLAnchorElement.js.map +2 -2
  250. package/dist/esm/node/elements/HTMLAreaElement.js +2 -2
  251. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLBaseElement.js +2 -2
  255. package/dist/esm/node/elements/HTMLBaseElement.js.map +2 -2
  256. package/dist/esm/node/elements/HTMLBodyElement.js +2 -2
  257. package/dist/esm/node/elements/HTMLBodyElement.js.map +2 -2
  258. package/dist/esm/node/elements/HTMLButtonElement.js +3 -3
  259. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  260. package/dist/esm/node/elements/HTMLCanvasElement.js +2 -2
  261. package/dist/esm/node/elements/HTMLCanvasElement.js.map +2 -2
  262. package/dist/esm/node/elements/HTMLCaptionElement.js +2 -2
  263. package/dist/esm/node/elements/HTMLCaptionElement.js.map +2 -2
  264. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  265. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  266. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  267. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  268. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  269. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  270. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  271. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  272. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  273. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  274. package/dist/esm/node/elements/HTMLDivElement.js +2 -2
  275. package/dist/esm/node/elements/HTMLDivElement.js.map +2 -2
  276. package/dist/esm/node/elements/HTMLElement.js +9 -0
  277. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  278. package/dist/esm/node/elements/HTMLElementBase.js +43 -43
  279. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  280. package/dist/esm/node/elements/HTMLEmbedElement.js +2 -2
  281. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  282. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  283. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  284. package/dist/esm/node/elements/HTMLFormElement.js +2 -2
  285. package/dist/esm/node/elements/HTMLFormElement.js.map +2 -2
  286. package/dist/esm/node/elements/HTMLH1Element.js +2 -2
  287. package/dist/esm/node/elements/HTMLH1Element.js.map +2 -2
  288. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  289. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  290. package/dist/esm/node/elements/HTMLHeadElement.js +2 -2
  291. package/dist/esm/node/elements/HTMLHeadElement.js.map +2 -2
  292. package/dist/esm/node/elements/HTMLHtmlElement.js +2 -2
  293. package/dist/esm/node/elements/HTMLHtmlElement.js.map +2 -2
  294. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  295. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  296. package/dist/esm/node/elements/HTMLImgElement.js +2 -2
  297. package/dist/esm/node/elements/HTMLImgElement.js.map +2 -2
  298. package/dist/esm/node/elements/HTMLInputElement.js +2 -2
  299. package/dist/esm/node/elements/HTMLInputElement.js.map +2 -2
  300. package/dist/esm/node/elements/HTMLLIElement.js +2 -2
  301. package/dist/esm/node/elements/HTMLLIElement.js.map +2 -2
  302. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  303. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  304. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  305. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  306. package/dist/esm/node/elements/HTMLLinkElement.js +2 -2
  307. package/dist/esm/node/elements/HTMLLinkElement.js.map +2 -2
  308. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  309. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  310. package/dist/esm/node/elements/HTMLMetaElement.js +2 -2
  311. package/dist/esm/node/elements/HTMLMetaElement.js.map +2 -2
  312. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  313. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  314. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  315. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  316. package/dist/esm/node/elements/HTMLOListElement.js +2 -2
  317. package/dist/esm/node/elements/HTMLOListElement.js.map +2 -2
  318. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  319. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  320. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  321. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  322. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  323. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  324. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  325. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  326. package/dist/esm/node/elements/HTMLPElement.js +2 -2
  327. package/dist/esm/node/elements/HTMLPElement.js.map +2 -2
  328. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  329. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  330. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  331. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  332. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  333. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  334. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  335. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  336. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  337. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  338. package/dist/esm/node/elements/HTMLScriptElement.js +2 -2
  339. package/dist/esm/node/elements/HTMLScriptElement.js.map +2 -2
  340. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  341. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  342. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  343. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  344. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  345. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  346. package/dist/esm/node/elements/HTMLSpanElement.js +2 -2
  347. package/dist/esm/node/elements/HTMLSpanElement.js.map +2 -2
  348. package/dist/esm/node/elements/HTMLStyleElement.js +2 -2
  349. package/dist/esm/node/elements/HTMLStyleElement.js.map +2 -2
  350. package/dist/esm/node/elements/HTMLTableElement.js +2 -2
  351. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  352. package/dist/esm/node/elements/HTMLTbodyElement.js +2 -2
  353. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  354. package/dist/esm/node/elements/HTMLTdElement.js +2 -2
  355. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  356. package/dist/esm/node/elements/HTMLTemplateElement.js +2 -2
  357. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  358. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  359. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  360. package/dist/esm/node/elements/HTMLTfootElement.js +2 -2
  361. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  362. package/dist/esm/node/elements/HTMLThElement.js +2 -2
  363. package/dist/esm/node/elements/HTMLThElement.js.map +2 -2
  364. package/dist/esm/node/elements/HTMLTheadElement.js +2 -2
  365. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  366. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  367. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  368. package/dist/esm/node/elements/HTMLTitleElement.js +2 -2
  369. package/dist/esm/node/elements/HTMLTitleElement.js.map +2 -2
  370. package/dist/esm/node/elements/HTMLTrElement.js +2 -2
  371. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  372. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  373. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  374. package/dist/esm/node/elements/HTMLUListElement.js +2 -2
  375. package/dist/esm/node/elements/HTMLUListElement.js.map +2 -2
  376. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  377. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  378. package/dist/esm/node/elements/MathMLElement.js +2 -2
  379. package/dist/esm/node/elements/MathMLElement.js.map +2 -2
  380. package/dist/esm/node/elements/SVGElement.js +2 -2
  381. package/dist/esm/node/elements/SVGElement.js.map +2 -2
  382. package/dist/esm/node/elements/index.js +182 -95
  383. package/dist/esm/node/elements/index.js.map +2 -2
  384. package/dist/esm/node/index.js +7 -17
  385. package/dist/esm/node/index.js.map +2 -2
  386. package/dist/esm/utils/CSSSelector.js.map +2 -2
  387. package/dist/esm/window/CustomElementRegistryImp.js +94 -0
  388. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  389. package/dist/esm/window/WindowBase.js +259 -597
  390. package/dist/esm/window/WindowBase.js.map +2 -2
  391. package/dist/esm/window/index.js +0 -5
  392. package/dist/esm/window/index.js.map +2 -2
  393. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3477 -3558
  394. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  395. package/dist/types/DomParser.d.ts.map +1 -1
  396. package/dist/types/bundle-entry.d.ts +3 -0
  397. package/dist/types/bundle-entry.d.ts.map +1 -0
  398. package/dist/types/factory/ElementFactory.d.ts +1 -1
  399. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  400. package/dist/types/index.d.ts +14 -1
  401. package/dist/types/index.d.ts.map +1 -1
  402. package/dist/types/node/CharacterData.d.ts +0 -2
  403. package/dist/types/node/CharacterData.d.ts.map +1 -1
  404. package/dist/types/node/ChildNode.d.ts +0 -38
  405. package/dist/types/node/ChildNode.d.ts.map +1 -1
  406. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  407. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  408. package/dist/types/node/Comment.d.ts +1 -1
  409. package/dist/types/node/Comment.d.ts.map +1 -1
  410. package/dist/types/node/Document.d.ts +0 -856
  411. package/dist/types/node/Document.d.ts.map +1 -1
  412. package/dist/types/node/DocumentBase.d.ts +68 -110
  413. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  414. package/dist/types/node/DocumentFragment.d.ts +0 -38
  415. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  416. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  417. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  418. package/dist/types/node/Node.d.ts +0 -213
  419. package/dist/types/node/Node.d.ts.map +1 -1
  420. package/dist/types/node/NodeBase.d.ts +11 -8
  421. package/dist/types/node/NodeBase.d.ts.map +1 -1
  422. package/dist/types/node/NodeFilter.d.ts +25 -0
  423. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  424. package/dist/types/node/NodeIterator.d.ts +0 -34
  425. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  426. package/dist/types/node/ParentNode.d.ts +0 -84
  427. package/dist/types/node/ParentNode.d.ts.map +1 -1
  428. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  429. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  430. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  431. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  432. package/dist/types/node/Text.d.ts +0 -24
  433. package/dist/types/node/Text.d.ts.map +1 -1
  434. package/dist/types/node/TextBase.d.ts +2 -3
  435. package/dist/types/node/TextBase.d.ts.map +1 -1
  436. package/dist/types/node/TreeWalker.d.ts +48 -0
  437. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  438. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  439. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  440. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  441. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  442. package/dist/types/node/collection/NodeList.d.ts +0 -1
  443. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  444. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  445. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  446. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  447. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  448. package/dist/types/node/collection/index.d.ts +3 -3
  449. package/dist/types/node/collection/index.d.ts.map +1 -1
  450. package/dist/types/node/elements/Element.d.ts +0 -687
  451. package/dist/types/node/elements/Element.d.ts.map +1 -1
  452. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  453. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  454. package/dist/types/node/elements/HTMLAnchorElement.d.ts +2 -2
  455. package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -1
  456. package/dist/types/node/elements/HTMLAreaElement.d.ts +2 -3
  457. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  458. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  459. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  460. package/dist/types/node/elements/HTMLBaseElement.d.ts +2 -2
  461. package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -1
  462. package/dist/types/node/elements/HTMLBodyElement.d.ts +2 -2
  463. package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -1
  464. package/dist/types/node/elements/HTMLButtonElement.d.ts +3 -3
  465. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  466. package/dist/types/node/elements/HTMLCanvasElement.d.ts +2 -2
  467. package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -1
  468. package/dist/types/node/elements/HTMLCaptionElement.d.ts +2 -2
  469. package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -1
  470. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  471. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  472. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  473. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  474. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  475. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  476. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  477. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  478. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  479. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  480. package/dist/types/node/elements/HTMLDivElement.d.ts +2 -2
  481. package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -1
  482. package/dist/types/node/elements/HTMLElement.d.ts +3 -119
  483. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  484. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  485. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  486. package/dist/types/node/elements/HTMLEmbedElement.d.ts +2 -3
  487. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  488. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  489. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  490. package/dist/types/node/elements/HTMLFormElement.d.ts +2 -2
  491. package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -1
  492. package/dist/types/node/elements/HTMLH1Element.d.ts +2 -2
  493. package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -1
  494. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  495. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  496. package/dist/types/node/elements/HTMLHeadElement.d.ts +2 -2
  497. package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -1
  498. package/dist/types/node/elements/HTMLHtmlElement.d.ts +2 -2
  499. package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -1
  500. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  501. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  502. package/dist/types/node/elements/HTMLImgElement.d.ts +2 -2
  503. package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -1
  504. package/dist/types/node/elements/HTMLInputElement.d.ts +2 -2
  505. package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -1
  506. package/dist/types/node/elements/HTMLLIElement.d.ts +2 -2
  507. package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -1
  508. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  509. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  510. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  511. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  512. package/dist/types/node/elements/HTMLLinkElement.d.ts +2 -2
  513. package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -1
  514. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  515. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  516. package/dist/types/node/elements/HTMLMetaElement.d.ts +2 -2
  517. package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -1
  518. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  519. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  520. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  521. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  522. package/dist/types/node/elements/HTMLOListElement.d.ts +2 -2
  523. package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -1
  524. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  525. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  526. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  527. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  528. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  529. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  530. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  531. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  532. package/dist/types/node/elements/HTMLPElement.d.ts +2 -2
  533. package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -1
  534. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  535. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  536. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  537. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  538. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  539. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  540. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  541. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  542. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  543. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  544. package/dist/types/node/elements/HTMLScriptElement.d.ts +2 -2
  545. package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -1
  546. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  547. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  548. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  549. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  550. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  551. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  552. package/dist/types/node/elements/HTMLSpanElement.d.ts +2 -2
  553. package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -1
  554. package/dist/types/node/elements/HTMLStyleElement.d.ts +2 -2
  555. package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -1
  556. package/dist/types/node/elements/HTMLTableElement.d.ts +5 -6
  557. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  558. package/dist/types/node/elements/HTMLTbodyElement.d.ts +3 -4
  559. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  560. package/dist/types/node/elements/HTMLTdElement.d.ts +2 -2
  561. package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -1
  562. package/dist/types/node/elements/HTMLTemplateElement.d.ts +2 -3
  563. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  564. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  565. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  566. package/dist/types/node/elements/HTMLTfootElement.d.ts +4 -5
  567. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  568. package/dist/types/node/elements/HTMLThElement.d.ts +2 -2
  569. package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -1
  570. package/dist/types/node/elements/HTMLTheadElement.d.ts +4 -5
  571. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  572. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  573. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  574. package/dist/types/node/elements/HTMLTitleElement.d.ts +2 -2
  575. package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -1
  576. package/dist/types/node/elements/HTMLTrElement.d.ts +4 -5
  577. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  578. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  579. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  580. package/dist/types/node/elements/HTMLUListElement.d.ts +2 -2
  581. package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -1
  582. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  583. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  584. package/dist/types/node/elements/MathMLElement.d.ts +2 -2
  585. package/dist/types/node/elements/MathMLElement.d.ts.map +1 -1
  586. package/dist/types/node/elements/SVGElement.d.ts +2 -2
  587. package/dist/types/node/elements/SVGElement.d.ts.map +1 -1
  588. package/dist/types/node/elements/index.d.ts +108 -55
  589. package/dist/types/node/elements/index.d.ts.map +1 -1
  590. package/dist/types/node/index.d.ts +4 -7
  591. package/dist/types/node/index.d.ts.map +1 -1
  592. package/dist/types/utils/CSSSelector.d.ts +0 -1
  593. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  594. package/dist/types/window/CustomElementRegistryImp.d.ts +19 -0
  595. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  596. package/dist/types/window/Window.d.ts +0 -619
  597. package/dist/types/window/Window.d.ts.map +1 -1
  598. package/dist/types/window/WindowBase.d.ts +253 -286
  599. package/dist/types/window/WindowBase.d.ts.map +1 -1
  600. package/dist/types/window/index.d.ts +0 -1
  601. package/dist/types/window/index.d.ts.map +1 -1
  602. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3482 -3563
  603. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  604. package/package.json +6 -1
  605. package/src/DomParser.ts +29 -20
  606. package/src/bundle-entry.ts +2 -0
  607. package/src/factory/ElementFactory.ts +87 -54
  608. package/src/index.ts +22 -10
  609. package/src/node/CharacterData.ts +0 -2
  610. package/src/node/ChildNode.ts +42 -42
  611. package/src/node/ChildNodeBase.ts +60 -39
  612. package/src/node/Comment.ts +60 -60
  613. package/src/node/Document.ts +129 -882
  614. package/src/node/DocumentBase.ts +371 -467
  615. package/src/node/DocumentFragment.ts +38 -44
  616. package/src/node/DocumentFragmentBase.ts +4 -9
  617. package/src/node/Node.ts +231 -224
  618. package/src/node/NodeBase.ts +469 -443
  619. package/src/node/NodeFilter.ts +50 -0
  620. package/src/node/NodeIterator.ts +117 -172
  621. package/src/node/ParentNode.ts +93 -93
  622. package/src/node/ParentNodeBase.ts +7 -10
  623. package/src/node/ShadowRootBase.ts +87 -0
  624. package/src/node/Text.ts +30 -30
  625. package/src/node/TextBase.ts +92 -94
  626. package/src/node/TreeWalker.ts +280 -0
  627. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  628. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  629. package/src/node/collection/NodeList.ts +1 -1
  630. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  631. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  632. package/src/node/collection/index.ts +3 -3
  633. package/src/node/elements/Element.ts +212 -772
  634. package/src/node/elements/ElementBase.ts +840 -1204
  635. package/src/node/elements/HTMLAnchorElement.ts +2 -1
  636. package/src/node/elements/HTMLAreaElement.ts +2 -2
  637. package/src/node/elements/HTMLAudioElement.ts +11 -0
  638. package/src/node/elements/HTMLBaseElement.ts +2 -1
  639. package/src/node/elements/HTMLBodyElement.ts +2 -1
  640. package/src/node/elements/HTMLButtonElement.ts +65 -64
  641. package/src/node/elements/HTMLCanvasElement.ts +2 -1
  642. package/src/node/elements/HTMLCaptionElement.ts +2 -1
  643. package/src/node/elements/HTMLDListElement.ts +8 -0
  644. package/src/node/elements/HTMLDataElement.ts +7 -0
  645. package/src/node/elements/HTMLDataListElement.ts +8 -0
  646. package/src/node/elements/HTMLDetailsElement.ts +8 -0
  647. package/src/node/elements/HTMLDialogElement.ts +8 -0
  648. package/src/node/elements/HTMLDivElement.ts +2 -1
  649. package/src/node/elements/HTMLElement.ts +6 -137
  650. package/src/node/elements/HTMLElementBase.ts +472 -355
  651. package/src/node/elements/HTMLEmbedElement.ts +2 -2
  652. package/src/node/elements/HTMLFieldSetElement.ts +8 -0
  653. package/src/node/elements/HTMLFormElement.ts +2 -1
  654. package/src/node/elements/HTMLH1Element.ts +2 -1
  655. package/src/node/elements/HTMLHRElement.ts +8 -0
  656. package/src/node/elements/HTMLHeadElement.ts +2 -1
  657. package/src/node/elements/HTMLHtmlElement.ts +2 -1
  658. package/src/node/elements/HTMLIFrameElement.ts +8 -0
  659. package/src/node/elements/HTMLImgElement.ts +2 -1
  660. package/src/node/elements/HTMLInputElement.ts +2 -1
  661. package/src/node/elements/HTMLLIElement.ts +2 -1
  662. package/src/node/elements/HTMLLabelElement.ts +3 -0
  663. package/src/node/elements/HTMLLegendElement.ts +3 -0
  664. package/src/node/elements/HTMLLinkElement.ts +2 -1
  665. package/src/node/elements/HTMLMapElement.ts +3 -0
  666. package/src/node/elements/HTMLMetaElement.ts +2 -1
  667. package/src/node/elements/HTMLMeterElement.ts +3 -0
  668. package/src/node/elements/HTMLModElement.ts +3 -0
  669. package/src/node/elements/HTMLOListElement.ts +2 -1
  670. package/src/node/elements/HTMLObjectElement.ts +3 -0
  671. package/src/node/elements/HTMLOptGroupElement.ts +3 -0
  672. package/src/node/elements/HTMLOptionElement.ts +3 -0
  673. package/src/node/elements/HTMLOutputElement.ts +3 -0
  674. package/src/node/elements/HTMLPElement.ts +2 -1
  675. package/src/node/elements/HTMLParamElement.ts +3 -0
  676. package/src/node/elements/HTMLPictureElement.ts +3 -0
  677. package/src/node/elements/HTMLPreElement.ts +3 -0
  678. package/src/node/elements/HTMLProgressElement.ts +3 -0
  679. package/src/node/elements/HTMLQuoteElement.ts +3 -0
  680. package/src/node/elements/HTMLScriptElement.ts +2 -1
  681. package/src/node/elements/HTMLSelectElement.ts +3 -0
  682. package/src/node/elements/HTMLSlotElement.ts +3 -0
  683. package/src/node/elements/HTMLSourceElement.ts +3 -0
  684. package/src/node/elements/HTMLSpanElement.ts +2 -1
  685. package/src/node/elements/HTMLStyleElement.ts +2 -1
  686. package/src/node/elements/HTMLTableElement.ts +5 -8
  687. package/src/node/elements/HTMLTbodyElement.ts +4 -4
  688. package/src/node/elements/HTMLTdElement.ts +3 -2
  689. package/src/node/elements/HTMLTemplateElement.ts +5 -7
  690. package/src/node/elements/HTMLTextAreaElement.ts +3 -0
  691. package/src/node/elements/HTMLTfootElement.ts +4 -4
  692. package/src/node/elements/HTMLThElement.ts +2 -1
  693. package/src/node/elements/HTMLTheadElement.ts +5 -5
  694. package/src/node/elements/HTMLTimeElement.ts +3 -0
  695. package/src/node/elements/HTMLTitleElement.ts +2 -1
  696. package/src/node/elements/HTMLTrElement.ts +7 -5
  697. package/src/node/elements/HTMLTrackElement.ts +3 -0
  698. package/src/node/elements/HTMLUListElement.ts +2 -1
  699. package/src/node/elements/HTMLVideoElement.ts +11 -0
  700. package/src/node/elements/MathMLElement.ts +2 -1
  701. package/src/node/elements/SVGElement.ts +2 -1
  702. package/src/node/elements/index.ts +231 -153
  703. package/src/node/index.ts +8 -8
  704. package/src/utils/CSSSelector.ts +0 -1
  705. package/src/window/CustomElementRegistryImp.ts +138 -0
  706. package/src/window/Window.ts +716 -715
  707. package/src/window/WindowBase.ts +482 -847
  708. package/src/window/index.ts +0 -1
  709. package/tsconfig.json +1 -0
  710. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  711. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  712. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  713. package/dist/cjs/node/elements/HTMLGenericElement.js.map +0 -7
  714. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  715. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  716. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  717. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  718. package/dist/esm/node/elements/HTMLGenericElement.js +0 -13
  719. package/dist/esm/node/elements/HTMLGenericElement.js.map +0 -7
  720. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  721. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  722. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  723. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  724. package/dist/types/node/elements/HTMLGenericElement.d.ts +0 -6
  725. package/dist/types/node/elements/HTMLGenericElement.d.ts.map +0 -1
  726. package/src/node/collection/HTMLCollectionOf.ts +0 -26
  727. package/src/node/elements/HTMLGenericElement.ts +0 -13
@@ -1,470 +1,374 @@
1
- import {ParentNodeBase} from './ParentNodeBase';
2
- import {DOCUMENT_NODE, Node} from './Node';
3
- import {Document, ElementCreationOptions, DocumentReadyState, DocumentVisibilityState, ImportNodeOptions, CaretPositionFromPointOptions, StartViewTransitionOptions, ViewTransitionUpdateCallback} from './Document';
4
- import {Location} from '../window/Window';
5
- import {Comment} from './Comment';
6
- import {Text} from './Text';
7
- import {DocumentFragment} from './DocumentFragment';
8
- import {DocumentFragmentBase} from './DocumentFragmentBase';
9
- import {Element} from './elements/Element';
10
- import {HTMLElement} from './elements/HTMLElement';
11
- import {HTMLCollection, HTMLCollectionOf} from './collection';
12
- import {HTMLElementTagNameMap, SVGElementTagNameMap, MathMLElementTagNameMap, HTMLElementDeprecatedTagNameMap} from './elements';
13
- import {NodeListOf} from './collection/NodeListOf';
14
- import {ElementFactory} from '../factory';
15
- import {NodeIterator, NodeFilter} from './NodeIterator';
16
-
17
- // Document event listener interface
18
- interface DocumentEventListener {
19
- type: string;
20
- listener: (event: any) => void;
21
- options?: boolean | AddEventListenerOptions;
22
- }
1
+ import { ParentNodeBase } from './ParentNodeBase';
2
+ import { DOCUMENT_NODE } from './Node';
3
+ import { HTMLCollectionOfImp } from './collection/HTMLCollectionOfImp';
4
+ import { NodeListOfImp } from './collection/NodeListOfImp';
5
+ import { ElementFactory } from '../factory/ElementFactory';
23
6
 
24
- /**
25
- * The **`DocumentBase`** class is the concrete implementation of the Document interface.
26
- */
27
7
  export class DocumentBase extends ParentNodeBase implements Document {
28
- // Event system
29
- private _eventListeners: DocumentEventListener[] = [];
30
- private _readyState: DocumentReadyState = 'uninitialized' as any;
31
- private _window: any = null; // Reference to window for load event
32
- // Properties
33
- readonly URL: string = 'about:blank';
34
- alinkColor: string = '';
35
- readonly all: any = null;
36
- readonly anchors: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
37
- readonly applets: HTMLCollection = new HTMLCollection([]);
38
- bgColor: string = '';
39
- body: HTMLElement = null as any;
40
- readonly characterSet: string = 'UTF-8';
41
- readonly charset: string = 'UTF-8';
42
- readonly compatMode: string = 'CSS1Compat';
43
- readonly contentType: string = 'text/html';
44
- cookie: string = '';
45
- readonly currentScript: any = null;
46
- readonly defaultView: any = null;
47
- designMode: string = 'off';
48
- dir: string = '';
49
- readonly doctype: any = null;
50
- readonly documentElement: HTMLElement = null as any;
51
- readonly documentURI: string = 'about:blank';
52
- domain: string = '';
53
- readonly embeds: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
54
- fgColor: string = '';
55
- readonly forms: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
56
- readonly fragmentDirective: any = null;
57
- readonly fullscreen: boolean = false;
58
- readonly fullscreenEnabled: boolean = false;
59
- readonly head: any = null;
60
- readonly hidden: boolean = false;
61
- readonly images: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
62
- readonly implementation: any = null;
63
- readonly inputEncoding: string = 'UTF-8';
64
- readonly lastModified: string = new Date().toString();
65
- linkColor: string = '';
66
- readonly links: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
67
-
68
- // Location property - simple implementation for Document
69
- private _location: Location = {
70
- href: 'about:blank',
71
- protocol: 'about:',
72
- host: '',
73
- hostname: '',
74
- port: '',
75
- pathname: 'blank',
76
- search: '',
77
- hash: '',
78
- origin: 'null',
79
- assign: (url: string) => { this._location.href = url; },
80
- replace: (url: string) => { this._location.href = url; },
81
- reload: () => {},
82
- // @ts-ignore
83
- toString: () => this._location.href
84
- };
85
-
86
- setLocation(location: Location): void {
87
- this._location = location;
88
- }
89
- get location(): any {
90
- return this._location;
91
- }
92
-
93
- set location(href: string) {
94
- this._location.href = href;
95
- // Simple URL parsing for document location
96
- try {
97
- const url = new URL(href);
98
- this._location.protocol = url.protocol;
99
- this._location.host = url.host;
100
- this._location.hostname = url.hostname;
101
- this._location.port = url.port;
102
- this._location.pathname = url.pathname;
103
- this._location.search = url.search;
104
- this._location.hash = url.hash;
105
- this._location.origin = url.origin;
106
- } catch (e) {
107
- // Keep defaults for invalid URLs
108
- }
109
- }
110
-
111
- // Event handlers
112
- onfullscreenchange: ((this: Document, ev: Event) => any) | null = null;
113
- onfullscreenerror: ((this: Document, ev: Event) => any) | null = null;
114
- onpointerlockchange: ((this: Document, ev: Event) => any) | null = null;
115
- onpointerlockerror: ((this: Document, ev: Event) => any) | null = null;
116
- onreadystatechange: ((this: Document, ev: Event) => any) | null = null;
117
- onvisibilitychange: ((this: Document, ev: Event) => any) | null = null;
118
-
119
- get ownerDocument(): null {
120
- return null;
121
- }
122
- readonly pictureInPictureEnabled: boolean = false;
123
- readonly plugins: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
124
- get readyState(): DocumentReadyState {
125
- return this._readyState;
126
- }
127
- readonly referrer: string = '';
128
- readonly rootElement: any = null;
129
- readonly scripts: HTMLCollectionOf<any> = new HTMLCollectionOf([]);
130
- readonly scrollingElement: Element | null = null;
131
- readonly timeline: any = null;
132
- get title(): string {
133
- const titleElement = this.querySelector('title');
134
- return titleElement ? titleElement.textContent || '' : '';
135
- }
136
-
137
- set title(value: string) {
138
- let titleElement = this.querySelector('title');
139
- if (!titleElement) {
140
- // Create title element if it doesn't exist
141
- titleElement = this.createElement('title');
142
- const head = this.head || this.querySelector('head');
143
- if (head) {
144
- head.appendChild(titleElement);
145
- }
146
- }
147
- titleElement.textContent = value;
148
- }
149
- readonly visibilityState: DocumentVisibilityState = 'visible';
150
- vlinkColor: string = '';
151
-
152
- constructor() {
153
- super(DOCUMENT_NODE, '#document');
154
- this._ownerDocument = null;
155
-
156
- // Create basic document structure
157
- const documentElement = this.createElement('html') as HTMLElement;
158
- const head = this.createElement('head') as HTMLElement;
159
- const body = this.createElement('body') as HTMLElement;
160
-
161
- documentElement.appendChild(head);
162
- documentElement.appendChild(body);
163
- this.appendChild(documentElement);
164
-
165
- // Set readonly properties
166
- (this as any).documentElement = documentElement;
167
- (this as any).head = head;
168
- this.body = body;
169
- }
170
-
171
- get textContent(): null {
172
- return null;
173
- }
174
-
175
- // Methods
176
- adoptNode<T extends Node>(node: T): T {
177
- (node as any)._ownerDocument = this;
178
- return node;
179
- }
180
-
181
- captureEvents(): void {}
182
-
183
- caretPositionFromPoint(_x: number, _y: number, _options?: CaretPositionFromPointOptions): any {
184
- return null;
185
- }
186
-
187
- caretRangeFromPoint(_x: number, _y: number): any {
188
- return null;
189
- }
190
-
191
- clear(): void {}
192
-
193
- close(): void {}
194
-
195
- createAttribute(localName: string): any {
196
- return { name: localName, value: '' };
197
- }
198
-
199
- createAttributeNS(_namespace: string | null, qualifiedName: string): any {
200
- return { name: qualifiedName, value: '' };
201
- }
202
-
203
- createCDATASection(data: string): any {
204
- return { data, nodeType: 4 };
205
- }
206
-
207
- createComment(data: string): Comment {
208
- return new Comment(data, this);
209
- }
210
-
211
- createDocumentFragment(): DocumentFragment {
212
- return new DocumentFragmentBase(this);
213
- }
214
-
215
- createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementTagNameMap[K];
216
- createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];
217
- createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement;
218
- createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement {
219
- return ElementFactory.createElement(tagName, this);
220
- }
221
-
222
- createElementNS(namespaceURI: "http://www.w3.org/1999/xhtml", qualifiedName: string): HTMLElement;
223
- createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: K): SVGElementTagNameMap[K];
224
- createElementNS(namespaceURI: "http://www.w3.org/2000/svg", qualifiedName: string): any;
225
- createElementNS<K extends keyof MathMLElementTagNameMap>(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: K): MathMLElementTagNameMap[K];
226
- createElementNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", qualifiedName: string): any;
227
- createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;
228
- createElementNS(_namespace: string | null, qualifiedName: string, _options?: string | ElementCreationOptions): Element;
229
- createElementNS(_namespaceURI: string | null, qualifiedName: string, _options?: ElementCreationOptions | string): Element {
230
- return ElementFactory.createElement(qualifiedName, this);
231
- }
232
-
233
- createEvent(_eventInterface: string): any {
234
- return {};
235
- }
236
-
237
- createNodeIterator(root: Node, whatToShow: number = NodeFilter.SHOW_ALL, filter: NodeFilter | null = null): NodeIterator {
238
- return new NodeIterator(root, whatToShow, filter);
239
- }
240
-
241
- createProcessingInstruction(target: string, data: string): any {
242
- return { target, data, nodeType: 7 };
243
- }
244
-
245
- createRange(): any {
246
- return {};
247
- }
248
-
249
- createTextNode(data: string): Text {
250
- const { TextBase } = require('./TextBase');
251
- return new TextBase(data, this);
252
- }
253
-
254
- createTreeWalker(_root: Node, _whatToShow?: number, _filter?: any): any {
255
- return {};
256
- }
257
-
258
- execCommand(_commandId: string, _showUI?: boolean, _value?: string): boolean {
259
- return false;
260
- }
261
-
262
- exitFullscreen(): Promise<void> {
263
- return Promise.resolve();
264
- }
265
-
266
- exitPictureInPicture(): Promise<void> {
267
- return Promise.resolve();
268
- }
269
-
270
- exitPointerLock(): void {}
271
-
272
- getElementById(elementId: string): HTMLElement | null {
273
- const elements = this.querySelectorAll(`#${elementId}`);
274
- return elements.length > 0 ? elements[0] as HTMLElement : null;
275
- }
276
-
277
- getElementsByClassName(classNames: string): HTMLCollectionOf<Element> {
278
- const elements = this.querySelectorAll(`.${classNames.split(' ').join('.')}`);
279
- return new HTMLCollectionOf(Array.from(elements));
280
- }
281
-
282
- getElementsByName(elementName: string): NodeListOf<HTMLElement> {
283
- const elements = this.querySelectorAll(`[name="${elementName}"]`);
284
- return new NodeListOf(Array.from(elements) as HTMLElement[]);
285
- }
286
-
287
- getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
288
- getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;
289
- getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;
290
- getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;
291
- getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;
292
- getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element> {
293
- const elements = this.querySelectorAll<Element>(qualifiedName);
294
- return new HTMLCollectionOf(Array.from(elements));
295
- }
296
-
297
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1999/xhtml", localName: string): HTMLCollectionOf<HTMLElement>;
298
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/2000/svg", localName: string): HTMLCollectionOf<any>;
299
- getElementsByTagNameNS(namespaceURI: "http://www.w3.org/1998/Math/MathML", localName: string): HTMLCollectionOf<any>;
300
- getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element>;
301
- getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element> {
302
- return this.getElementsByTagName(localName);
303
- }
304
-
305
- getSelection(): any {
306
- return null;
307
- }
308
-
309
- hasFocus(): boolean {
310
- return false;
311
- }
312
-
313
- hasStorageAccess(): Promise<boolean> {
314
- return Promise.resolve(false);
315
- }
316
-
317
- importNode<T extends Node>(node: T, _options?: boolean | ImportNodeOptions): T {
318
- const cloned = (node as any).cloneNode(typeof _options === 'boolean' ? _options : _options?.deep);
319
- (cloned as any)._ownerDocument = this;
320
- return cloned;
321
- }
322
-
323
- open(_unused1?: string, _unused2?: string): Document;
324
- open(_url: string | URL, _name: string, _features: string): any;
325
- open(_arg1?: string | URL, _arg2?: string, _arg3?: string): Document | any {
326
- if (arguments.length <= 2) {
327
- return this;
328
- }
329
- return null;
330
- }
331
-
332
- queryCommandEnabled(_commandId: string): boolean {
333
- return false;
334
- }
335
-
336
- queryCommandIndeterm(_commandId: string): boolean {
337
- return false;
338
- }
339
-
340
- queryCommandState(_commandId: string): boolean {
341
- return false;
342
- }
343
-
344
- queryCommandSupported(_commandId: string): boolean {
345
- return false;
346
- }
347
-
348
- queryCommandValue(_commandId: string): string {
349
- return '';
350
- }
351
-
352
- releaseEvents(): void {}
353
-
354
- requestStorageAccess(): Promise<void> {
355
- return Promise.resolve();
356
- }
357
-
358
- startViewTransition(_callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): any {
359
- return {};
360
- }
361
-
362
- write(...text: string[]): void {
363
- console.log('Document.write:', text.join(''));
364
- }
365
-
366
- writeln(...text: string[]): void {
367
- this.write(...text, '\n');
368
- }
369
-
370
- addEventListener(type: string, listener: any, options?: boolean | any): void {
371
- // Support DOMContentLoaded and readystatechange events
372
- if (type === 'DOMContentLoaded' || type === 'readystatechange') {
373
- this._eventListeners.push({
374
- type,
375
- listener: typeof listener === 'function' ? listener : listener.handleEvent,
376
- options
377
- });
378
- }
379
- }
380
-
381
- removeEventListener(type: string, listener: any, options?: boolean | any): void {
382
- if (type === 'DOMContentLoaded' || type === 'readystatechange') {
383
- const targetListener = typeof listener === 'function' ? listener : listener.handleEvent;
384
- this._eventListeners = this._eventListeners.filter(
385
- eventListener => !(eventListener.type === type && eventListener.listener === targetListener)
386
- );
387
- }
388
- }
389
-
390
- dispatchEvent(event: any): boolean {
391
- const eventListeners = this._eventListeners.filter(listener => listener.type === event.type);
392
-
393
- for (const eventListener of eventListeners) {
394
- try {
395
- eventListener.listener.call(this, event);
396
-
397
- // Handle 'once' option
398
- if (eventListener.options && typeof eventListener.options === 'object' && eventListener.options.once) {
399
- this.removeEventListener(event.type, eventListener.listener);
400
- }
401
- } catch (error) {
402
- console.error('Error in document event listener:', error);
403
- }
404
- }
405
-
406
- return true;
407
- }
408
-
409
- /**
410
- * Set window reference for load event dispatching
411
- */
412
- setWindow(window: any): void {
413
- this._window = window;
414
- }
415
-
416
- /**
417
- * Change document ready state and dispatch events
418
- */
419
- setReadyState(state: DocumentReadyState): void {
420
- if (this._readyState === state) return;
421
-
422
- this._readyState = state;
423
-
424
- // Dispatch readystatechange event
425
- this.dispatchEvent({
426
- type: 'readystatechange',
427
- target: this,
428
- readyState: state
429
- });
430
-
431
- // Dispatch DOMContentLoaded when interactive
432
- if (state === 'interactive') {
433
- this.dispatchEvent({
434
- type: 'DOMContentLoaded',
435
- target: this
436
- });
8
+ [key: string]: any;
9
+ private _readyState: DocumentReadyState = 'loading';
10
+ private _window: any = null;
11
+ public head!: any;
12
+ public body!: any;
13
+ public documentElement!: any;
14
+ public location: any;
15
+ get title(): string {
16
+ const titleEl = this.querySelector('title');
17
+ return titleEl ? titleEl.textContent || '' : this._title || '';
18
+ }
19
+
20
+ set title(value: string) {
21
+ this._title = value;
22
+ let titleEl = this.querySelector('title');
23
+ if (!titleEl && this.head) {
24
+ titleEl = this.createElement('title');
25
+ this.head.appendChild(titleEl);
26
+ }
27
+ if (titleEl) {
28
+ titleEl.textContent = value;
29
+ }
30
+ }
31
+
32
+ private _title: string = '';
33
+ public cookie: string = '';
34
+ public designMode: string = 'off';
35
+ public dir: string = 'ltr';
36
+ public domain: string = '';
37
+ public referrer: string = '';
38
+
39
+ constructor() {
40
+ super(DOCUMENT_NODE, '#document');
41
+ this._ownerDocument = this as any;
42
+ }
43
+
44
+ get URL(): string {
45
+ return this.location?.href || '';
46
+ }
47
+ get alinkColor(): string {
48
+ return '';
49
+ }
50
+ set alinkColor(_: string) {}
51
+ get all(): any {
52
+ return [];
53
+ }
54
+ get anchors(): any {
55
+ return [];
56
+ }
57
+ get applets(): any {
58
+ return [];
59
+ }
60
+ get bgColor(): string {
61
+ return '';
62
+ }
63
+ set bgColor(_: string) {}
64
+ get characterSet(): string {
65
+ return 'UTF-8';
66
+ }
67
+ get charset(): string {
68
+ return 'UTF-8';
69
+ }
70
+ get compatMode(): string {
71
+ return 'CSS1Compat';
72
+ }
73
+ get contentType(): string {
74
+ return 'text/html';
75
+ }
76
+ get currentScript(): any {
77
+ return null;
78
+ }
79
+ get defaultView(): any {
80
+ return this._window;
81
+ }
82
+ get doctype(): any {
83
+ return null;
84
+ }
85
+ get documentURI(): string {
86
+ return this.URL;
87
+ }
88
+ get embeds(): any {
89
+ return [];
90
+ }
91
+ get fgColor(): string {
92
+ return '';
93
+ }
94
+ set fgColor(_: string) {}
95
+ get forms(): any {
96
+ return [];
97
+ }
98
+ get fragmentDirective(): any {
99
+ return {};
100
+ }
101
+ get fullscreen(): boolean {
102
+ return false;
103
+ }
104
+ get fullscreenEnabled(): boolean {
105
+ return false;
106
+ }
107
+ get hidden(): boolean {
108
+ return false;
109
+ }
110
+ get images(): any {
111
+ return [];
112
+ }
113
+ get implementation(): any {
114
+ return {};
115
+ }
116
+ get inputEncoding(): string {
117
+ return 'UTF-8';
118
+ }
119
+ get lastModified(): string {
120
+ return new Date().toISOString();
121
+ }
122
+ get linkColor(): string {
123
+ return '';
124
+ }
125
+ set linkColor(_: string) {}
126
+ get links(): any {
127
+ return [];
128
+ }
129
+ get ownerDocument(): null {
130
+ return null;
131
+ }
132
+ get pictureInPictureEnabled(): boolean {
133
+ return false;
134
+ }
135
+ get plugins(): any {
136
+ return [];
137
+ }
138
+ get readyState(): DocumentReadyState {
139
+ return this._readyState;
140
+ }
141
+ get rootElement(): any {
142
+ return null;
143
+ }
144
+ get scripts(): any {
145
+ return [];
146
+ }
147
+ get scrollingElement(): any {
148
+ return this.body;
149
+ }
150
+ get timeline(): any {
151
+ return {};
152
+ }
153
+ get visibilityState(): any {
154
+ return 'visible';
155
+ }
156
+ get vlinkColor(): string {
157
+ return '';
158
+ }
159
+ set vlinkColor(_: string) {}
160
+ get textContent(): null {
161
+ return null;
162
+ }
163
+
164
+ adoptNode<T extends Node>(node: T): T {
165
+ (node as any)._ownerDocument = this;
166
+ return node;
167
+ }
168
+
169
+ captureEvents(): void {}
170
+
171
+ caretPositionFromPoint(_x: number, _y: number, _options?: CaretPositionFromPointOptions): any {
172
+ return null;
173
+ }
174
+
175
+ caretRangeFromPoint(_x: number, _y: number): any {
176
+ return null;
177
+ }
178
+
179
+ clear(): void {}
180
+
181
+ close(): void {}
182
+
183
+ createAttribute(localName: string): any {
184
+ return { name: localName, value: '', nodeType: 2 };
185
+ }
186
+
187
+ createAttributeNS(_ns: string | null, qualifiedName: string): any {
188
+ return this.createAttribute(qualifiedName);
189
+ }
190
+
191
+ createCDATASection(data: string): any {
192
+ return { data, nodeType: 4 };
193
+ }
194
+
195
+ createComment(data: string): any {
196
+ const { Comment } = require('./Comment');
197
+ return new Comment(data, this);
198
+ }
199
+
200
+ createDocumentFragment(): any {
201
+ const { DocumentFragmentBase } = require('./DocumentFragmentBase');
202
+ return new DocumentFragmentBase(this);
203
+ }
204
+
205
+ createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];
206
+ createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;
207
+ createElement(tagName: string, options?: ElementCreationOptions): HTMLElement {
208
+ return ElementFactory.createElement(tagName, this, options) as any;
209
+ }
210
+
211
+ createElementNS(_ns: string | null, qualifiedName: string, options?: ElementCreationOptions): any {
212
+ return this.createElement(qualifiedName as any, options);
213
+ }
214
+
215
+ createEvent(_eventInterface: string): any {
216
+ return { type: _eventInterface };
217
+ }
218
+
219
+ createNodeIterator(root: Node, whatToShow: number = 0xffffffff, filter: any = null): any {
220
+ const { NodeIterator } = require('./NodeIterator');
221
+ return new NodeIterator(root, whatToShow, filter);
222
+ }
223
+
224
+ createProcessingInstruction(target: string, data: string): any {
225
+ return { target, data, nodeType: 7 };
226
+ }
227
+
228
+ createRange(): any {
229
+ return {};
230
+ }
231
+
232
+ createTextNode(data: string): any {
233
+ const { TextBase } = require('./TextBase');
234
+ return new TextBase(data, this);
235
+ }
236
+
237
+ createTreeWalker(root: Node, whatToShow: number = 0xffffffff, filter: any = null): any {
238
+ const { TreeWalker } = require('./TreeWalker');
239
+ return new TreeWalker(root, whatToShow, filter);
240
+ }
241
+
242
+ execCommand(_commandId: string, _showUI?: boolean, _value?: string): boolean {
243
+ return false;
244
+ }
245
+
246
+ exitFullscreen(): Promise<void> {
247
+ return Promise.resolve();
248
+ }
249
+
250
+ exitPictureInPicture(): Promise<void> {
251
+ return Promise.resolve();
252
+ }
253
+
254
+ exitPointerLock(): void {}
255
+
256
+ getElementById(elementId: string): HTMLElement | null {
257
+ const elements = this.querySelectorAll(`#${elementId}`);
258
+ return elements.length > 0 ? (elements[0] as HTMLElement) : null;
259
+ }
260
+
261
+ getElementsByClassName(classNames: string): HTMLCollectionOf<Element> {
262
+ const elements = this.querySelectorAll(`.${classNames.split(' ').join('.')}`);
263
+ return new HTMLCollectionOfImp(Array.from(elements)) as unknown as HTMLCollectionOf<Element>;
264
+ }
265
+
266
+ // @ts-ignore
267
+ getElementsByName(elementName: string): NodeListOfImp<HTMLElement> {
268
+ const elements = this.querySelectorAll(`[name="${elementName}"]`);
269
+ return new NodeListOfImp<HTMLElement>(Array.from(elements) as unknown as HTMLElement[]) as unknown as NodeListOfImp<HTMLElement>;
270
+ }
271
+
272
+ // @ts-ignore
273
+ getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;
274
+ getElementsByTagName(qualifiedName: string): HTMLCollectionOfImp<Element>;
275
+ getElementsByTagName(qualifiedName: string): HTMLCollectionOfImp<Element> {
276
+ const elements = this.querySelectorAll<Element>(qualifiedName);
277
+ return new HTMLCollectionOfImp(Array.from(elements));
278
+ }
279
+
280
+ // @ts-ignore
281
+ getElementsByTagNameNS(_ns: string | null, localName: string): HTMLCollectionOf<Element> {
282
+ return this.getElementsByTagName(localName) as unknown as HTMLCollectionOf<Element>;
283
+ }
284
+
285
+ getSelection(): any {
286
+ return null;
287
+ }
288
+
289
+ hasFocus(): boolean {
290
+ return false;
291
+ }
292
+
293
+ hasStorageAccess(): Promise<boolean> {
294
+ return Promise.resolve(false);
295
+ }
296
+
297
+ importNode<T extends Node>(node: T, _options?: boolean | ImportNodeOptions): T {
298
+ const cloned = (node as any).cloneNode(typeof _options === 'boolean' ? _options : (_options as any)?.deep);
299
+ (cloned as any)._ownerDocument = this;
300
+ return cloned;
301
+ }
302
+
303
+ open(_unused1?: string, _unused2?: string): any {
304
+ return this;
305
+ }
306
+
307
+ queryCommandEnabled(_commandId: string): boolean {
308
+ return false;
309
+ }
310
+
311
+ queryCommandSupported(_commandId: string): boolean {
312
+ return false;
313
+ }
314
+
315
+ releaseEvents(): void {}
316
+
317
+ requestStorageAccess(): Promise<void> {
318
+ return Promise.resolve();
319
+ }
320
+
321
+ startViewTransition(_callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): any {
322
+ return {};
323
+ }
324
+
325
+ write(...text: string[]): void {
326
+ console.log('Document.write:', text.join(''));
327
+ }
328
+
329
+ writeln(...text: string[]): void {
330
+ this.write(...text, '\n');
331
+ }
332
+
333
+ addEventListener(type: string, listener: any, options?: any): void {
334
+ this._eventListeners.push({ type, listener, options });
335
+ }
336
+
337
+ removeEventListener(type: string, listener: any, options?: any): void {
338
+ this._eventListeners = this._eventListeners.filter(l => !(l.type === type && l.listener === listener));
339
+ }
340
+
341
+ setWindow(window: any): void {
342
+ this._window = window;
343
+ }
344
+
345
+ setReadyState(state: DocumentReadyState): void {
346
+ if (this._readyState === state) return;
347
+ this._readyState = state;
348
+ this.dispatchEvent({ type: 'readystatechange', target: this });
349
+ if (state === 'interactive') {
350
+ this.dispatchEvent({ type: 'DOMContentLoaded', target: this });
351
+ }
352
+ if (state === 'complete' && this._window) {
353
+ setTimeout(() => {
354
+ if (this._window && this._window.dispatchEvent) {
355
+ this._window.dispatchEvent({ type: 'load', target: this._window });
437
356
  }
438
-
439
- // Dispatch load event on window when complete
440
- if (state === 'complete' && this._window) {
441
- // Use setTimeout to ensure it's dispatched after current execution
442
- setTimeout(() => {
443
- if (this._window && this._window.dispatchEvent) {
444
- this._window.dispatchEvent({
445
- type: 'load',
446
- target: this._window
447
- });
448
- }
449
- }, 0);
450
- }
451
- }
452
-
453
- /**
454
- * Simulate document loading process
455
- */
456
- simulateLoading(): void {
457
- // Start with loading state
458
- this.setReadyState('loading');
459
-
460
- // Simulate DOM parsing completion
461
- setTimeout(() => {
462
- this.setReadyState('interactive');
463
-
464
- // Simulate resource loading completion
465
- setTimeout(() => {
466
- this.setReadyState('complete');
467
- }, 10);
468
- }, 5);
469
- }
470
- }
357
+ }, 0);
358
+ }
359
+ }
360
+
361
+ simulateLoading(): void {
362
+ // Start with a small delay to allow test listeners to be added
363
+ setTimeout(() => {
364
+ this.setReadyState('interactive');
365
+ setTimeout(() => {
366
+ this.setReadyState('complete');
367
+ }, 10);
368
+ }, 10);
369
+ }
370
+
371
+ setLocation(location: any): void {
372
+ this.location = location;
373
+ }
374
+ }