@dooboostore/dom-parser 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/dist/cjs/DomParser.js +10 -1
  2. package/dist/cjs/DomParser.js.map +2 -2
  3. package/dist/cjs/factory/ElementFactory.js +27 -6
  4. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  5. package/dist/cjs/index.js +4 -0
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/node/CharacterData.js.map +1 -1
  8. package/dist/cjs/node/ChildNode.js +0 -15
  9. package/dist/cjs/node/ChildNode.js.map +3 -3
  10. package/dist/cjs/node/ChildNodeBase.js +20 -0
  11. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  12. package/dist/cjs/node/Comment.js.map +2 -2
  13. package/dist/cjs/node/Document.js +0 -27
  14. package/dist/cjs/node/Document.js.map +4 -4
  15. package/dist/cjs/node/DocumentBase.js +168 -205
  16. package/dist/cjs/node/DocumentBase.js.map +2 -2
  17. package/dist/cjs/node/DocumentFragment.js +0 -15
  18. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  19. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  20. package/dist/cjs/node/Node.js.map +1 -1
  21. package/dist/cjs/node/NodeBase.js +44 -2
  22. package/dist/cjs/node/NodeBase.js.map +2 -2
  23. package/dist/cjs/node/NodeFilter.js +43 -0
  24. package/dist/cjs/node/NodeFilter.js.map +7 -0
  25. package/dist/cjs/node/NodeIterator.js +1 -28
  26. package/dist/cjs/node/NodeIterator.js.map +2 -2
  27. package/dist/cjs/node/ParentNode.js +0 -15
  28. package/dist/cjs/node/ParentNode.js.map +3 -3
  29. package/dist/cjs/node/ParentNodeBase.js +10 -10
  30. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  31. package/dist/cjs/node/ShadowRootBase.js +79 -0
  32. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  33. package/dist/cjs/node/Text.js +0 -15
  34. package/dist/cjs/node/Text.js.map +3 -3
  35. package/dist/cjs/node/TextBase.js +0 -3
  36. package/dist/cjs/node/TextBase.js.map +2 -2
  37. package/dist/cjs/node/TreeWalker.js +272 -0
  38. package/dist/cjs/node/TreeWalker.js.map +7 -0
  39. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  40. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  41. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  42. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  43. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  44. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  45. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  47. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  48. package/dist/cjs/node/collection/index.js +6 -6
  49. package/dist/cjs/node/collection/index.js.map +2 -2
  50. package/dist/cjs/node/elements/Element.js +0 -15
  51. package/dist/cjs/node/elements/Element.js.map +3 -3
  52. package/dist/cjs/node/elements/ElementBase.js +163 -331
  53. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  54. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  55. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLAudioElement.js} +9 -16
  56. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  57. package/dist/cjs/node/elements/HTMLButtonElement.js +1 -1
  58. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLDListElement.js +29 -0
  60. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  61. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  62. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  64. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  65. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  66. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  67. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  68. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  69. package/dist/cjs/node/elements/HTMLElement.js +10 -0
  70. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLElementBase.js +41 -43
  72. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  73. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  74. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  75. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  76. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  77. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  78. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  79. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  80. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  81. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  82. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  83. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  84. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  85. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  86. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  87. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  88. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  89. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  90. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  91. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  92. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  93. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  94. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  95. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  96. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  97. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  98. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  99. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  100. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  101. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  102. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  103. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  104. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  105. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  106. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  107. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  108. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  109. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  110. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  111. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  112. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  113. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  114. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  115. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  116. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  118. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  119. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  120. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  122. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  123. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  124. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  125. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  126. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  127. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  129. package/dist/cjs/node/elements/index.js +181 -92
  130. package/dist/cjs/node/elements/index.js.map +2 -2
  131. package/dist/cjs/node/index.js +6 -16
  132. package/dist/cjs/node/index.js.map +2 -2
  133. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  134. package/dist/cjs/window/CustomElementRegistryImp.js +105 -0
  135. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  136. package/dist/cjs/window/Window.js +0 -15
  137. package/dist/cjs/window/Window.js.map +3 -3
  138. package/dist/cjs/window/WindowBase.js +210 -613
  139. package/dist/cjs/window/WindowBase.js.map +2 -2
  140. package/dist/cjs/window/index.js +0 -5
  141. package/dist/cjs/window/index.js.map +2 -2
  142. package/dist/esm/DomParser.js +10 -1
  143. package/dist/esm/DomParser.js.map +2 -2
  144. package/dist/esm/factory/ElementFactory.js +27 -6
  145. package/dist/esm/factory/ElementFactory.js.map +2 -2
  146. package/dist/esm/index.js +4 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/node/ChildNodeBase.js +20 -0
  149. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  150. package/dist/esm/node/Comment.js.map +2 -2
  151. package/dist/esm/node/Document.js +0 -8
  152. package/dist/esm/node/Document.js.map +4 -4
  153. package/dist/esm/node/DocumentBase.js +165 -202
  154. package/dist/esm/node/DocumentBase.js.map +2 -2
  155. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  156. package/dist/esm/node/Node.js.map +1 -1
  157. package/dist/esm/node/NodeBase.js +45 -22
  158. package/dist/esm/node/NodeBase.js.map +2 -2
  159. package/dist/esm/node/NodeFilter.js +24 -0
  160. package/dist/esm/node/NodeFilter.js.map +7 -0
  161. package/dist/esm/node/NodeIterator.js +1 -28
  162. package/dist/esm/node/NodeIterator.js.map +2 -2
  163. package/dist/esm/node/ParentNodeBase.js +4 -4
  164. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  165. package/dist/esm/node/ShadowRootBase.js +60 -0
  166. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  167. package/dist/esm/node/TextBase.js +0 -3
  168. package/dist/esm/node/TextBase.js.map +2 -2
  169. package/dist/esm/node/TreeWalker.js +253 -0
  170. package/dist/esm/node/TreeWalker.js.map +7 -0
  171. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  172. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  173. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  174. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  175. package/dist/esm/node/collection/NodeList.js.map +1 -1
  176. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  177. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  178. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  179. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  180. package/dist/esm/node/collection/index.js +6 -6
  181. package/dist/esm/node/collection/index.js.map +2 -2
  182. package/dist/esm/node/elements/ElementBase.js +163 -331
  183. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  184. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  185. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  186. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  187. package/dist/esm/node/elements/HTMLButtonElement.js +1 -1
  188. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  189. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  190. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  191. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  192. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  193. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  194. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  195. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  196. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  197. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  198. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  199. package/dist/esm/node/elements/HTMLElement.js +6 -0
  200. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  201. package/dist/esm/node/elements/HTMLElementBase.js +40 -42
  202. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  203. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  204. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  205. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  206. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  207. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  208. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  209. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  210. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  211. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  212. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  213. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  214. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  215. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  216. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  217. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  218. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  219. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  220. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  221. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  222. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  223. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  224. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  225. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  226. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  227. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  228. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  229. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  230. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  231. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  232. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  233. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  234. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  235. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  236. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  237. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  238. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  239. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  240. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  241. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  242. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  243. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  244. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  245. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  246. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  247. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  248. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  249. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  250. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  251. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  255. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  256. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  257. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  258. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  259. package/dist/esm/node/elements/index.js +182 -93
  260. package/dist/esm/node/elements/index.js.map +2 -2
  261. package/dist/esm/node/index.js +7 -17
  262. package/dist/esm/node/index.js.map +2 -2
  263. package/dist/esm/utils/CSSSelector.js.map +2 -2
  264. package/dist/esm/window/CustomElementRegistryImp.js +86 -0
  265. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  266. package/dist/esm/window/WindowBase.js +259 -597
  267. package/dist/esm/window/WindowBase.js.map +2 -2
  268. package/dist/esm/window/index.js +0 -5
  269. package/dist/esm/window/index.js.map +2 -2
  270. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3449 -3551
  271. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  272. package/dist/types/DomParser.d.ts.map +1 -1
  273. package/dist/types/factory/ElementFactory.d.ts +1 -1
  274. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  275. package/dist/types/index.d.ts +3 -1
  276. package/dist/types/index.d.ts.map +1 -1
  277. package/dist/types/node/CharacterData.d.ts +0 -2
  278. package/dist/types/node/CharacterData.d.ts.map +1 -1
  279. package/dist/types/node/ChildNode.d.ts +0 -38
  280. package/dist/types/node/ChildNode.d.ts.map +1 -1
  281. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  282. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  283. package/dist/types/node/Comment.d.ts +1 -1
  284. package/dist/types/node/Comment.d.ts.map +1 -1
  285. package/dist/types/node/Document.d.ts +0 -856
  286. package/dist/types/node/Document.d.ts.map +1 -1
  287. package/dist/types/node/DocumentBase.d.ts +68 -110
  288. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  289. package/dist/types/node/DocumentFragment.d.ts +0 -38
  290. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  291. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  292. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  293. package/dist/types/node/Node.d.ts +0 -213
  294. package/dist/types/node/Node.d.ts.map +1 -1
  295. package/dist/types/node/NodeBase.d.ts +11 -8
  296. package/dist/types/node/NodeBase.d.ts.map +1 -1
  297. package/dist/types/node/NodeFilter.d.ts +25 -0
  298. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  299. package/dist/types/node/NodeIterator.d.ts +0 -34
  300. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  301. package/dist/types/node/ParentNode.d.ts +0 -84
  302. package/dist/types/node/ParentNode.d.ts.map +1 -1
  303. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  304. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  305. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  306. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  307. package/dist/types/node/Text.d.ts +0 -24
  308. package/dist/types/node/Text.d.ts.map +1 -1
  309. package/dist/types/node/TextBase.d.ts +2 -3
  310. package/dist/types/node/TextBase.d.ts.map +1 -1
  311. package/dist/types/node/TreeWalker.d.ts +48 -0
  312. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  313. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  314. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  315. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  316. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  317. package/dist/types/node/collection/NodeList.d.ts +0 -1
  318. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  319. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  320. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  321. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  322. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  323. package/dist/types/node/collection/index.d.ts +3 -3
  324. package/dist/types/node/collection/index.d.ts.map +1 -1
  325. package/dist/types/node/elements/Element.d.ts +0 -687
  326. package/dist/types/node/elements/Element.d.ts.map +1 -1
  327. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  328. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  329. package/dist/types/node/elements/HTMLAreaElement.d.ts +0 -1
  330. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  331. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  332. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  333. package/dist/types/node/elements/HTMLButtonElement.d.ts +1 -1
  334. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  335. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  336. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  337. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  338. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  339. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  340. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  341. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  342. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  343. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  344. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  345. package/dist/types/node/elements/HTMLElement.d.ts +2 -119
  346. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  347. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  348. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  349. package/dist/types/node/elements/HTMLEmbedElement.d.ts +0 -1
  350. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  351. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  352. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  353. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  354. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  355. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  356. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  357. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  358. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  359. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  360. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  361. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  362. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  363. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  364. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  365. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  366. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  367. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  368. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  369. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  370. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  371. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  372. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  373. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  374. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  375. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  376. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  377. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  378. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  379. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  380. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  381. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  382. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  383. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  384. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  385. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  386. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  387. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  388. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  389. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  390. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  391. package/dist/types/node/elements/HTMLTableElement.d.ts +3 -4
  392. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  393. package/dist/types/node/elements/HTMLTbodyElement.d.ts +2 -3
  394. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  395. package/dist/types/node/elements/HTMLTemplateElement.d.ts +0 -1
  396. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  397. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  398. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  399. package/dist/types/node/elements/HTMLTfootElement.d.ts +2 -3
  400. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  401. package/dist/types/node/elements/HTMLTheadElement.d.ts +2 -3
  402. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  403. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  404. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  405. package/dist/types/node/elements/HTMLTrElement.d.ts +2 -3
  406. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  407. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  408. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  409. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  410. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  411. package/dist/types/node/elements/index.d.ts +106 -52
  412. package/dist/types/node/elements/index.d.ts.map +1 -1
  413. package/dist/types/node/index.d.ts +4 -7
  414. package/dist/types/node/index.d.ts.map +1 -1
  415. package/dist/types/utils/CSSSelector.d.ts +0 -1
  416. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  417. package/dist/types/window/CustomElementRegistryImp.d.ts +18 -0
  418. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  419. package/dist/types/window/Window.d.ts +0 -619
  420. package/dist/types/window/Window.d.ts.map +1 -1
  421. package/dist/types/window/WindowBase.d.ts +253 -286
  422. package/dist/types/window/WindowBase.d.ts.map +1 -1
  423. package/dist/types/window/index.d.ts +0 -1
  424. package/dist/types/window/index.d.ts.map +1 -1
  425. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3460 -3562
  426. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  427. package/package.json +1 -1
  428. package/src/DomParser.ts +28 -20
  429. package/src/factory/ElementFactory.ts +79 -53
  430. package/src/index.ts +11 -10
  431. package/src/node/CharacterData.ts +0 -2
  432. package/src/node/ChildNode.ts +42 -42
  433. package/src/node/ChildNodeBase.ts +60 -39
  434. package/src/node/Comment.ts +60 -60
  435. package/src/node/Document.ts +129 -882
  436. package/src/node/DocumentBase.ts +371 -467
  437. package/src/node/DocumentFragment.ts +38 -44
  438. package/src/node/DocumentFragmentBase.ts +4 -9
  439. package/src/node/Node.ts +231 -224
  440. package/src/node/NodeBase.ts +469 -443
  441. package/src/node/NodeFilter.ts +50 -0
  442. package/src/node/NodeIterator.ts +117 -172
  443. package/src/node/ParentNode.ts +93 -93
  444. package/src/node/ParentNodeBase.ts +7 -10
  445. package/src/node/ShadowRootBase.ts +87 -0
  446. package/src/node/Text.ts +30 -30
  447. package/src/node/TextBase.ts +92 -94
  448. package/src/node/TreeWalker.ts +280 -0
  449. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  450. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  451. package/src/node/collection/NodeList.ts +1 -1
  452. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  453. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  454. package/src/node/collection/index.ts +3 -3
  455. package/src/node/elements/Element.ts +212 -772
  456. package/src/node/elements/ElementBase.ts +840 -1204
  457. package/src/node/elements/HTMLAreaElement.ts +0 -1
  458. package/src/node/elements/HTMLAudioElement.ts +10 -0
  459. package/src/node/elements/HTMLButtonElement.ts +63 -63
  460. package/src/node/elements/HTMLDListElement.ts +2 -0
  461. package/src/node/elements/HTMLDataElement.ts +6 -0
  462. package/src/node/elements/HTMLDataListElement.ts +2 -0
  463. package/src/node/elements/HTMLDetailsElement.ts +2 -0
  464. package/src/node/elements/HTMLDialogElement.ts +2 -0
  465. package/src/node/elements/HTMLElement.ts +2 -137
  466. package/src/node/elements/HTMLElementBase.ts +466 -355
  467. package/src/node/elements/HTMLEmbedElement.ts +0 -1
  468. package/src/node/elements/HTMLFieldSetElement.ts +2 -0
  469. package/src/node/elements/HTMLHRElement.ts +2 -0
  470. package/src/node/elements/HTMLIFrameElement.ts +2 -0
  471. package/src/node/elements/HTMLLabelElement.ts +2 -0
  472. package/src/node/elements/HTMLLegendElement.ts +2 -0
  473. package/src/node/elements/HTMLMapElement.ts +2 -0
  474. package/src/node/elements/HTMLMeterElement.ts +2 -0
  475. package/src/node/elements/HTMLModElement.ts +2 -0
  476. package/src/node/elements/HTMLObjectElement.ts +2 -0
  477. package/src/node/elements/HTMLOptGroupElement.ts +2 -0
  478. package/src/node/elements/HTMLOptionElement.ts +2 -0
  479. package/src/node/elements/HTMLOutputElement.ts +2 -0
  480. package/src/node/elements/HTMLParamElement.ts +2 -0
  481. package/src/node/elements/HTMLPictureElement.ts +2 -0
  482. package/src/node/elements/HTMLPreElement.ts +2 -0
  483. package/src/node/elements/HTMLProgressElement.ts +2 -0
  484. package/src/node/elements/HTMLQuoteElement.ts +2 -0
  485. package/src/node/elements/HTMLSelectElement.ts +2 -0
  486. package/src/node/elements/HTMLSlotElement.ts +2 -0
  487. package/src/node/elements/HTMLSourceElement.ts +2 -0
  488. package/src/node/elements/HTMLTableElement.ts +3 -7
  489. package/src/node/elements/HTMLTbodyElement.ts +2 -3
  490. package/src/node/elements/HTMLTdElement.ts +1 -1
  491. package/src/node/elements/HTMLTemplateElement.ts +3 -6
  492. package/src/node/elements/HTMLTextAreaElement.ts +2 -0
  493. package/src/node/elements/HTMLTfootElement.ts +2 -3
  494. package/src/node/elements/HTMLTheadElement.ts +2 -3
  495. package/src/node/elements/HTMLTimeElement.ts +2 -0
  496. package/src/node/elements/HTMLTrElement.ts +3 -4
  497. package/src/node/elements/HTMLTrackElement.ts +2 -0
  498. package/src/node/elements/HTMLVideoElement.ts +10 -0
  499. package/src/node/elements/index.ts +226 -149
  500. package/src/node/index.ts +8 -8
  501. package/src/utils/CSSSelector.ts +0 -1
  502. package/src/window/CustomElementRegistryImp.ts +120 -0
  503. package/src/window/Window.ts +716 -715
  504. package/src/window/WindowBase.ts +482 -847
  505. package/src/window/index.ts +0 -1
  506. package/tsconfig.json +1 -0
  507. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  508. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  509. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  510. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  511. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  512. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  513. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  514. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  515. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  516. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  517. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  518. package/src/node/collection/HTMLCollectionOf.ts +0 -26
@@ -23,36 +23,8 @@ module.exports = __toCommonJS(WindowBase_exports);
23
23
  var import_DocumentBase = require("../node/DocumentBase");
24
24
  var import_NodeBase = require("../node/NodeBase");
25
25
  var import_ElementBase = require("../node/elements/ElementBase");
26
- var import_HTMLAnchorElement = require("../node/elements/HTMLAnchorElement");
27
- var import_HTMLBodyElement = require("../node/elements/HTMLBodyElement");
28
- var import_HTMLButtonElement = require("../node/elements/HTMLButtonElement");
29
- var import_HTMLCanvasElement = require("../node/elements/HTMLCanvasElement");
30
- var import_HTMLDivElement = require("../node/elements/HTMLDivElement");
31
- var import_HTMLH1Element = require("../node/elements/HTMLH1Element");
32
- var import_HTMLHeadElement = require("../node/elements/HTMLHeadElement");
33
- var import_HTMLHtmlElement = require("../node/elements/HTMLHtmlElement");
34
- var import_HTMLImgElement = require("../node/elements/HTMLImgElement");
35
- var import_HTMLInputElement = require("../node/elements/HTMLInputElement");
36
- var import_HTMLPElement = require("../node/elements/HTMLPElement");
37
- var import_HTMLSpanElement = require("../node/elements/HTMLSpanElement");
38
- var import_HTMLTitleElement = require("../node/elements/HTMLTitleElement");
39
- var import_HTMLLinkElement = require("../node/elements/HTMLLinkElement");
40
- var import_HTMLScriptElement = require("../node/elements/HTMLScriptElement");
41
- var import_HTMLStyleElement = require("../node/elements/HTMLStyleElement");
42
- var import_HTMLFormElement = require("../node/elements/HTMLFormElement");
43
- var import_HTMLTableElement = require("../node/elements/HTMLTableElement");
44
- var import_HTMLUListElement = require("../node/elements/HTMLUListElement");
45
- var import_HTMLOListElement = require("../node/elements/HTMLOListElement");
46
- var import_HTMLLIElement = require("../node/elements/HTMLLIElement");
47
- var import_HTMLMetaElement = require("../node/elements/HTMLMetaElement");
48
- var import_HTMLTemplateElement = require("../node/elements/HTMLTemplateElement");
49
- var import_HTMLTheadElement = require("../node/elements/HTMLTheadElement");
50
- var import_HTMLTfootElement = require("../node/elements/HTMLTfootElement");
51
- var import_HTMLTrElement = require("../node/elements/HTMLTrElement");
52
- var import_HTMLTdElement = require("../node/elements/HTMLTdElement");
53
- var import_HTMLThElement = require("../node/elements/HTMLThElement");
54
- var import_HTMLCaptionElement = require("../node/elements/HTMLCaptionElement");
55
- var import_HTMLTbodyElement = require("../node/elements/HTMLTbodyElement");
26
+ var import_elements = require("../node/elements");
27
+ var import_CustomElementRegistryImp = require("./CustomElementRegistryImp");
56
28
  class LocationBase {
57
29
  constructor(initialUrl = "about:blank", urlChangeCallback) {
58
30
  this._href = "about:blank";
@@ -81,9 +53,7 @@ class LocationBase {
81
53
  return this._protocol;
82
54
  }
83
55
  set protocol(value) {
84
- if (!value.endsWith(":")) {
85
- value += ":";
86
- }
56
+ if (!value.endsWith(":")) value += ":";
87
57
  this._protocol = value;
88
58
  this.reconstructUrl();
89
59
  }
@@ -122,9 +92,7 @@ class LocationBase {
122
92
  return this._pathname;
123
93
  }
124
94
  set pathname(value) {
125
- if (!value.startsWith("/")) {
126
- value = "/" + value;
127
- }
95
+ if (!value.startsWith("/")) value = "/" + value;
128
96
  this._pathname = value;
129
97
  this.reconstructUrl();
130
98
  }
@@ -132,9 +100,7 @@ class LocationBase {
132
100
  return this._search;
133
101
  }
134
102
  set search(value) {
135
- if (value && !value.startsWith("?")) {
136
- value = "?" + value;
137
- }
103
+ if (value && !value.startsWith("?")) value = "?" + value;
138
104
  this._search = value;
139
105
  this.reconstructUrl();
140
106
  }
@@ -142,9 +108,7 @@ class LocationBase {
142
108
  return this._hash;
143
109
  }
144
110
  set hash(value) {
145
- if (value && !value.startsWith("#")) {
146
- value = "#" + value;
147
- }
111
+ if (value && !value.startsWith("#")) value = "#" + value;
148
112
  this._hash = value;
149
113
  this.reconstructUrl();
150
114
  }
@@ -159,13 +123,9 @@ class LocationBase {
159
123
  }
160
124
  }
161
125
  replace(url) {
162
- const oldHref = this._href;
163
- this.parseUrl(url);
164
- if (this._href !== oldHref && this.urlChangeCallback) {
165
- this.urlChangeCallback(this._href);
166
- }
126
+ this.assign(url);
167
127
  }
168
- reload(forcedReload) {
128
+ reload(_forcedReload) {
169
129
  }
170
130
  toString() {
171
131
  return this._href;
@@ -211,9 +171,7 @@ class LocationBase {
211
171
  let url = this._protocol;
212
172
  if (this._protocol !== "about:" && this._protocol !== "data:") {
213
173
  url += "//";
214
- if (this._host) {
215
- url += this._host;
216
- }
174
+ if (this._host) url += this._host;
217
175
  }
218
176
  url += this._pathname;
219
177
  url += this._search;
@@ -296,288 +254,150 @@ class NavigatorBase {
296
254
  this.cookieEnabled = false;
297
255
  this.onLine = true;
298
256
  }
257
+ canShare(data) {
258
+ throw new Error("Method not implemented.");
259
+ }
260
+ getGamepads() {
261
+ throw new Error("Method not implemented.");
262
+ }
263
+ requestMIDIAccess(options) {
264
+ throw new Error("Method not implemented.");
265
+ }
266
+ requestMediaKeySystemAccess(keySystem, supportedConfigurations) {
267
+ throw new Error("Method not implemented.");
268
+ }
269
+ sendBeacon(url, data) {
270
+ throw new Error("Method not implemented.");
271
+ }
272
+ share(data) {
273
+ throw new Error("Method not implemented.");
274
+ }
275
+ vibrate(pattern) {
276
+ throw new Error("Method not implemented.");
277
+ }
278
+ clearAppBadge() {
279
+ throw new Error("Method not implemented.");
280
+ }
281
+ setAppBadge(contents) {
282
+ throw new Error("Method not implemented.");
283
+ }
284
+ registerProtocolHandler(scheme, url) {
285
+ throw new Error("Method not implemented.");
286
+ }
287
+ javaEnabled() {
288
+ throw new Error("Method not implemented.");
289
+ }
299
290
  }
300
291
  class WindowBase {
301
292
  constructor(config) {
302
- // Event system
303
293
  this._eventListeners = [];
304
- // Timers and intervals tracking
305
294
  this._timers = /* @__PURE__ */ new Set();
306
295
  this._intervals = /* @__PURE__ */ new Set();
307
296
  this._animationFrames = /* @__PURE__ */ new Set();
308
297
  this._closed = false;
309
298
  this.cookieStore = {};
310
- this.customElements = {};
311
299
  this.devicePixelRatio = 1;
312
- this.event = void 0;
313
- this.external = {};
314
- this.frameElement = null;
315
- this.frames = {};
316
- this.innerHeight = 768;
317
- this.innerWidth = 1024;
318
- this.length = 0;
319
- this.locationbar = {};
320
- this.menubar = {};
321
- this.name = "";
322
- this.ondevicemotion = null;
323
- this.ondeviceorientation = null;
324
- this.ondeviceorientationabsolute = null;
325
- this.onorientationchange = null;
326
- this.opener = null;
327
- this.orientation = 0;
328
- this.originAgentCluster = false;
329
- this.outerHeight = 768;
330
- this.outerWidth = 1024;
331
- this.pageXOffset = 0;
332
- this.pageYOffset = 0;
333
- this.parent = {};
334
- this.personalbar = {};
335
- this.screen = {};
336
- this.screenLeft = 0;
337
- this.screenTop = 0;
338
- this.screenX = 0;
339
- this.screenY = 0;
340
- this.scrollX = 0;
341
- this.scrollY = 0;
342
- this.scrollbars = {};
343
300
  this.self = this;
344
- this.speechSynthesis = {};
345
- this.status = "";
346
- this.statusbar = {};
347
- this.toolbar = {};
348
- this.top = null;
349
- this.visualViewport = null;
350
301
  this.window = this;
351
302
  // Global constructors
352
- this.Node = import_NodeBase.NodeBase;
353
- this.Element = import_ElementBase.ElementBase;
354
- this.HTMLElement = import_ElementBase.ElementBase;
355
303
  this.Event = class Event {
304
+ constructor(type) {
305
+ this.type = type;
306
+ }
356
307
  };
357
- this.PopStateEvent = class PopStateEvent extends this.Event {
358
- };
359
- this.IntersectionObserver = class IntersectionObserver {
360
- };
361
- this.NodeFilter = class NodeFilter {
362
- };
363
- this.DocumentFragment = class DocumentFragment {
364
- };
365
- this.HTMLMetaElement = import_HTMLMetaElement.HTMLMetaElement;
366
- this.HTMLCanvasElement = import_HTMLCanvasElement.HTMLCanvasElement;
367
- this.CanvasRenderingContext2D = class CanvasRenderingContext2D {
368
- };
369
- this.CanvasPattern = class CanvasPattern {
370
- };
371
- this.CanvasGradient = class CanvasGradient {
372
- };
373
- this.Path2D = class Path2D {
374
- };
375
- this.ImageData = class ImageData {
308
+ this.CustomEvent = class CustomEvent extends this.Event {
309
+ constructor(type, detail) {
310
+ super(type);
311
+ this.detail = detail;
312
+ }
376
313
  };
377
- // HTML element constructors
378
- this.HTMLAnchorElement = import_HTMLAnchorElement.HTMLAnchorElement;
379
- this.HTMLBodyElement = import_HTMLBodyElement.HTMLBodyElement;
380
- this.HTMLButtonElement = import_HTMLButtonElement.HTMLButtonElement;
381
- this.HTMLDivElement = import_HTMLDivElement.HTMLDivElement;
382
- this.HTMLH1Element = import_HTMLH1Element.HTMLH1Element;
383
- this.HTMLHeadElement = import_HTMLHeadElement.HTMLHeadElement;
384
- this.HTMLHtmlElement = import_HTMLHtmlElement.HTMLHtmlElement;
385
- this.HTMLImgElement = import_HTMLImgElement.HTMLImgElement;
386
- this.HTMLInputElement = import_HTMLInputElement.HTMLInputElement;
387
- this.HTMLPElement = import_HTMLPElement.HTMLPElement;
388
- this.HTMLSpanElement = import_HTMLSpanElement.HTMLSpanElement;
389
- this.HTMLTitleElement = import_HTMLTitleElement.HTMLTitleElement;
390
- this.HTMLLinkElement = import_HTMLLinkElement.HTMLLinkElement;
391
- this.HTMLScriptElement = import_HTMLScriptElement.HTMLScriptElement;
392
- this.HTMLStyleElement = import_HTMLStyleElement.HTMLStyleElement;
393
- this.HTMLFormElement = import_HTMLFormElement.HTMLFormElement;
394
- this.HTMLTableElement = import_HTMLTableElement.HTMLTableElement;
395
- this.HTMLUListElement = import_HTMLUListElement.HTMLUListElement;
396
- this.HTMLOListElement = import_HTMLOListElement.HTMLOListElement;
397
- this.HTMLLIElement = import_HTMLLIElement.HTMLLIElement;
398
- this.HTMLTemplateElement = import_HTMLTemplateElement.HTMLTemplateElement;
399
- this.HTMLTheadElement = import_HTMLTheadElement.HTMLTheadElement;
400
- this.HTMLTfootElement = import_HTMLTfootElement.HTMLTfootElement;
401
- this.HTMLTrElement = import_HTMLTrElement.HTMLTrElement;
402
- this.HTMLTdElement = import_HTMLTdElement.HTMLTdElement;
403
- this.HTMLThElement = import_HTMLThElement.HTMLThElement;
404
- this.HTMLCaptionElement = import_HTMLCaptionElement.HTMLCaptionElement;
405
- this.HTMLTbodyElement = import_HTMLTbodyElement.HTMLTbodyElement;
406
- // EventTarget methods (inherited)
407
- // These are already covered by addEventListener/removeEventListener/dispatchEvent
408
- // GlobalEventHandlers - empty implementations
409
- this.onabort = null;
410
- this.onanimationcancel = null;
411
- this.onanimationend = null;
412
- this.onanimationiteration = null;
413
- this.onanimationstart = null;
414
- this.onauxclick = null;
415
- this.onbeforeinput = null;
416
- this.onblur = null;
417
- this.oncancel = null;
418
- this.oncanplay = null;
419
- this.oncanplaythrough = null;
420
- this.onchange = null;
421
- this.onclick = null;
422
- this.onclose = null;
423
- this.oncontextmenu = null;
424
- this.oncopy = null;
425
- this.oncuechange = null;
426
- this.oncut = null;
427
- this.ondblclick = null;
428
- this.ondrag = null;
429
- this.ondragend = null;
430
- this.ondragenter = null;
431
- this.ondragleave = null;
432
- this.ondragover = null;
433
- this.ondragstart = null;
434
- this.ondrop = null;
435
- this.ondurationchange = null;
436
- this.onemptied = null;
437
- this.onended = null;
438
- this.onerror = null;
439
- this.onfocus = null;
440
- this.onformdata = null;
441
- this.ongotpointercapture = null;
442
- this.oninput = null;
443
- this.oninvalid = null;
444
- this.onkeydown = null;
445
- this.onkeypress = null;
446
- this.onkeyup = null;
447
- this.onload = null;
448
- this.onloadeddata = null;
449
- this.onloadedmetadata = null;
450
- this.onloadstart = null;
451
- this.onlostpointercapture = null;
452
- this.onmousedown = null;
453
- this.onmouseenter = null;
454
- this.onmouseleave = null;
455
- this.onmousemove = null;
456
- this.onmouseout = null;
457
- this.onmouseover = null;
458
- this.onmouseup = null;
459
- this.onpaste = null;
460
- this.onpause = null;
461
- this.onplay = null;
462
- this.onplaying = null;
463
- this.onpointercancel = null;
464
- this.onpointerdown = null;
465
- this.onpointerenter = null;
466
- this.onpointerleave = null;
467
- this.onpointermove = null;
468
- this.onpointerout = null;
469
- this.onpointerover = null;
470
- this.onpointerup = null;
471
- this.onprogress = null;
472
- this.onratechange = null;
473
- this.onreset = null;
474
- this.onresize = null;
475
- this.onscroll = null;
476
- this.onscrollend = null;
477
- this.onsecuritypolicyviolation = null;
478
- this.onseeked = null;
479
- this.onseeking = null;
480
- this.onselect = null;
481
- this.onselectionchange = null;
482
- this.onselectstart = null;
483
- this.onslotchange = null;
484
- this.onstalled = null;
485
- this.onsubmit = null;
486
- this.onsuspend = null;
487
- this.ontimeupdate = null;
488
- this.ontoggle = null;
489
- this.ontouchcancel = null;
490
- this.ontouchend = null;
491
- this.ontouchmove = null;
492
- this.ontouchstart = null;
493
- this.ontransitioncancel = null;
494
- this.ontransitionend = null;
495
- this.ontransitionrun = null;
496
- this.ontransitionstart = null;
497
- this.onvolumechange = null;
498
- this.onwaiting = null;
499
- this.onwebkitanimationend = null;
500
- this.onwebkitanimationiteration = null;
501
- this.onwebkitanimationstart = null;
502
- this.onwebkittransitionend = null;
503
- this.onwheel = null;
504
- // WindowEventHandlers - empty implementations
505
- this.onafterprint = null;
506
- this.onbeforeprint = null;
507
- this.onbeforeunload = null;
508
- this.onhashchange = null;
509
- this.onlanguagechange = null;
510
- this.onmessage = null;
511
- this.onmessageerror = null;
512
- this.onoffline = null;
513
- this.ononline = null;
514
- this.onpagehide = null;
515
- this.onpageshow = null;
516
- this.onpopstate = null;
517
- this.onrejectionhandled = null;
518
- this.onstorage = null;
519
- this.onunhandledrejection = null;
520
- this.onunload = null;
521
- // WindowLocalStorage
522
- this.localStorage = {};
523
- // WindowOrWorkerGlobalScope - empty implementations
524
- this.caches = {};
525
- this.crossOriginIsolated = false;
526
- this.crypto = {};
527
- this.indexedDB = {};
528
- this.isSecureContext = false;
529
- this.origin = "null";
530
- this.performance = {};
531
- // WindowSessionStorage
532
- this.sessionStorage = {};
314
+ // All HTML element constructors
315
+ this.Node = import_NodeBase.NodeBase;
316
+ this.Element = import_ElementBase.ElementBase;
317
+ this.HTMLElement = import_elements.HTMLElement;
318
+ this.HTMLAnchorElement = import_elements.HTMLAnchorElement;
319
+ this.HTMLAreaElement = import_elements.HTMLAreaElement;
320
+ this.HTMLAudioElement = import_elements.HTMLAudioElement;
321
+ this.HTMLBaseElement = import_elements.HTMLBaseElement;
322
+ this.HTMLBodyElement = import_elements.HTMLBodyElement;
323
+ this.HTMLButtonElement = import_elements.HTMLButtonElement;
324
+ this.HTMLCanvasElement = import_elements.HTMLCanvasElement;
325
+ this.HTMLCaptionElement = import_elements.HTMLCaptionElement;
326
+ this.HTMLDataElement = import_elements.HTMLDataElement;
327
+ this.HTMLDataListElement = import_elements.HTMLDataListElement;
328
+ this.HTMLDetailsElement = import_elements.HTMLDetailsElement;
329
+ this.HTMLDialogElement = import_elements.HTMLDialogElement;
330
+ this.HTMLDivElement = import_elements.HTMLDivElement;
331
+ this.HTMLDListElement = import_elements.HTMLDListElement;
332
+ this.HTMLEmbedElement = import_elements.HTMLEmbedElement;
333
+ this.HTMLFieldSetElement = import_elements.HTMLFieldSetElement;
334
+ this.HTMLFormElement = import_elements.HTMLFormElement;
335
+ this.HTMLH1Element = import_elements.HTMLH1Element;
336
+ this.HTMLHeadElement = import_elements.HTMLHeadElement;
337
+ this.HTMLHRElement = import_elements.HTMLHRElement;
338
+ this.HTMLHtmlElement = import_elements.HTMLHtmlElement;
339
+ this.HTMLIFrameElement = import_elements.HTMLIFrameElement;
340
+ this.HTMLImgElement = import_elements.HTMLImgElement;
341
+ this.HTMLInputElement = import_elements.HTMLInputElement;
342
+ this.HTMLLabelElement = import_elements.HTMLLabelElement;
343
+ this.HTMLLegendElement = import_elements.HTMLLegendElement;
344
+ this.HTMLLIElement = import_elements.HTMLLIElement;
345
+ this.HTMLLinkElement = import_elements.HTMLLinkElement;
346
+ this.HTMLMapElement = import_elements.HTMLMapElement;
347
+ this.HTMLMetaElement = import_elements.HTMLMetaElement;
348
+ this.HTMLMeterElement = import_elements.HTMLMeterElement;
349
+ this.HTMLModElement = import_elements.HTMLModElement;
350
+ this.HTMLObjectElement = import_elements.HTMLObjectElement;
351
+ this.HTMLOListElement = import_elements.HTMLOListElement;
352
+ this.HTMLOptGroupElement = import_elements.HTMLOptGroupElement;
353
+ this.HTMLOptionElement = import_elements.HTMLOptionElement;
354
+ this.HTMLOutputElement = import_elements.HTMLOutputElement;
355
+ this.HTMLPElement = import_elements.HTMLPElement;
356
+ this.HTMLParamElement = import_elements.HTMLParamElement;
357
+ this.HTMLPictureElement = import_elements.HTMLPictureElement;
358
+ this.HTMLPreElement = import_elements.HTMLPreElement;
359
+ this.HTMLProgressElement = import_elements.HTMLProgressElement;
360
+ this.HTMLQuoteElement = import_elements.HTMLQuoteElement;
361
+ this.HTMLScriptElement = import_elements.HTMLScriptElement;
362
+ this.HTMLSelectElement = import_elements.HTMLSelectElement;
363
+ this.HTMLSlotElement = import_elements.HTMLSlotElement;
364
+ this.HTMLSourceElement = import_elements.HTMLSourceElement;
365
+ this.HTMLSpanElement = import_elements.HTMLSpanElement;
366
+ this.HTMLStyleElement = import_elements.HTMLStyleElement;
367
+ this.HTMLTableElement = import_elements.HTMLTableElement;
368
+ this.HTMLTbodyElement = import_elements.HTMLTbodyElement;
369
+ this.HTMLTdElement = import_elements.HTMLTdElement;
370
+ this.HTMLTemplateElement = import_elements.HTMLTemplateElement;
371
+ this.HTMLTextAreaElement = import_elements.HTMLTextAreaElement;
372
+ this.HTMLTfootElement = import_elements.HTMLTfootElement;
373
+ this.HTMLTheadElement = import_elements.HTMLTheadElement;
374
+ this.HTMLThElement = import_elements.HTMLThElement;
375
+ this.HTMLTimeElement = import_elements.HTMLTimeElement;
376
+ this.HTMLTitleElement = import_elements.HTMLTitleElement;
377
+ this.HTMLTrackElement = import_elements.HTMLTrackElement;
378
+ this.HTMLTrElement = import_elements.HTMLTrElement;
379
+ this.HTMLUListElement = import_elements.HTMLUListElement;
380
+ this.HTMLVideoElement = import_elements.HTMLVideoElement;
381
+ // Type Aliases
382
+ this.HTMLImageElement = import_elements.HTMLImgElement;
383
+ this.HTMLParagraphElement = import_elements.HTMLPElement;
384
+ this.HTMLHeadingElement = import_elements.HTMLH1Element;
385
+ this.HTMLTableSectionElement = import_elements.HTMLTbodyElement;
386
+ this.HTMLTableCellElement = import_elements.HTMLTdElement;
387
+ this.HTMLTableRowElement = import_elements.HTMLTrElement;
533
388
  const documentBase = new import_DocumentBase.DocumentBase();
534
- if (this.document && this.document.setWindow) {
535
- this.document.setWindow(this);
389
+ if (documentBase && documentBase.setWindow) {
390
+ documentBase.setWindow(this);
536
391
  }
537
392
  this._location = new LocationBase(config?.initialUrl);
538
393
  documentBase.setLocation(this._location);
539
394
  this.document = documentBase;
395
+ const customElementRegistryImp = new import_CustomElementRegistryImp.CustomElementRegistryImp();
396
+ customElementRegistryImp.setWindow(this);
397
+ this.customElements = customElementRegistryImp;
540
398
  this.history = new HistoryBase(this);
541
399
  this.navigator = new NavigatorBase();
542
400
  this.clientInformation = this.navigator;
543
- return new Proxy(this, {
544
- get(target, prop) {
545
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
546
- return target;
547
- }
548
- return target[prop];
549
- },
550
- set(target, prop, value) {
551
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
552
- return true;
553
- }
554
- target[prop] = value;
555
- return true;
556
- },
557
- has(target, prop) {
558
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
559
- return true;
560
- }
561
- return prop in target;
562
- },
563
- ownKeys(target) {
564
- const keys = Object.getOwnPropertyNames(target);
565
- for (let i = 0; i < target.length; i++) {
566
- keys.push(i.toString());
567
- }
568
- return keys;
569
- },
570
- getOwnPropertyDescriptor(target, prop) {
571
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
572
- return {
573
- enumerable: true,
574
- configurable: true,
575
- value: target
576
- };
577
- }
578
- return Object.getOwnPropertyDescriptor(target, prop);
579
- }
580
- });
581
401
  }
582
402
  get closed() {
583
403
  return this._closed;
@@ -586,168 +406,112 @@ class WindowBase {
586
406
  return this._location;
587
407
  }
588
408
  set location(href) {
589
- if (typeof href === "string") {
590
- this._location.href = href;
591
- } else {
592
- this._location.href = href.href;
593
- }
594
- }
595
- // Window methods - all with empty implementations for server-side
596
- alert(message) {
409
+ if (typeof href === "string") this._location.href = href;
410
+ else this._location.href = href.href;
597
411
  }
598
412
  blur() {
413
+ throw new Error("Method not implemented.");
599
414
  }
600
415
  cancelIdleCallback(handle) {
416
+ throw new Error("Method not implemented.");
601
417
  }
602
418
  captureEvents() {
603
- }
604
- close() {
605
- if (this._closed) return;
606
- this._closed = true;
607
- this._timers.forEach((id) => clearTimeout(id));
608
- this._timers.clear();
609
- this._intervals.forEach((id) => clearInterval(id));
610
- this._intervals.clear();
611
- this._animationFrames.forEach((id) => clearTimeout(id));
612
- this._animationFrames.clear();
613
- this._eventListeners.forEach((listener) => {
614
- listener.listener = null;
615
- });
616
- this._eventListeners.length = 0;
617
- this.onload = null;
618
- this.onunload = null;
619
- this.onbeforeunload = null;
620
- this.onpopstate = null;
621
- this.onerror = null;
622
- this.onmessage = null;
623
- this.onhashchange = null;
624
- if (this.document) {
625
- const doc = this.document;
626
- if (doc.body) {
627
- this.clearNodeRecursively(doc.body);
628
- }
629
- if (doc.head) {
630
- this.clearNodeRecursively(doc.head);
631
- }
632
- if (doc.documentElement) {
633
- this.clearNodeRecursively(doc.documentElement);
634
- }
635
- if (doc.setWindow) {
636
- doc.setWindow(null);
637
- }
638
- if (doc._eventListeners) {
639
- doc._eventListeners.forEach((listener) => {
640
- listener.listener = null;
641
- });
642
- doc._eventListeners.length = 0;
643
- }
644
- }
645
- if (this.history) {
646
- const hist = this.history;
647
- if (hist.historyStack) {
648
- hist.historyStack.forEach((entry) => {
649
- entry.state = null;
650
- });
651
- hist.historyStack.length = 0;
652
- }
653
- hist.state = null;
654
- hist.window = null;
655
- }
656
- if (this._location) {
657
- this._location.urlChangeCallback = null;
658
- }
659
- }
660
- /**
661
- * Recursively clear a node and its children to prevent memory leaks
662
- */
663
- clearNodeRecursively(node) {
664
- if (!node) return;
665
- while (node.firstChild) {
666
- const child = node.firstChild;
667
- node.removeChild(child);
668
- this.clearNodeRecursively(child);
669
- }
670
- if (node._eventListeners) {
671
- node._eventListeners.forEach((listener) => {
672
- listener.listener = null;
673
- });
674
- node._eventListeners.length = 0;
675
- }
676
- try {
677
- if (node.parentNode) {
678
- node.parentNode = null;
679
- }
680
- } catch (e) {
681
- }
682
- try {
683
- if (node.ownerDocument) {
684
- node.ownerDocument = null;
685
- }
686
- } catch (e) {
687
- }
688
- if (node._childNodes) {
689
- if (Array.isArray(node._childNodes)) {
690
- node._childNodes = [];
691
- } else if (node._childNodes instanceof Map) {
692
- node._childNodes.clear();
693
- }
694
- }
695
- if (node._attributes) {
696
- if (Array.isArray(node._attributes)) {
697
- node._attributes = [];
698
- } else if (node._attributes instanceof Map) {
699
- node._attributes.clear();
700
- }
701
- }
419
+ throw new Error("Method not implemented.");
702
420
  }
703
421
  confirm(message) {
704
- return false;
422
+ throw new Error("Method not implemented.");
705
423
  }
706
424
  focus() {
425
+ throw new Error("Method not implemented.");
707
426
  }
708
427
  getComputedStyle(elt, pseudoElt) {
709
- return {};
428
+ throw new Error("Method not implemented.");
710
429
  }
711
430
  getSelection() {
712
- return null;
431
+ throw new Error("Method not implemented.");
713
432
  }
714
433
  matchMedia(query) {
715
- return {};
434
+ throw new Error("Method not implemented.");
716
435
  }
717
436
  moveBy(x, y) {
437
+ throw new Error("Method not implemented.");
718
438
  }
719
439
  moveTo(x, y) {
440
+ throw new Error("Method not implemented.");
720
441
  }
721
442
  open(url, target, features) {
722
- return null;
443
+ throw new Error("Method not implemented.");
723
444
  }
724
- postMessage(message, targetOriginOrOptions, transfer) {
445
+ postMessage(message, targetOrigin, transfer) {
446
+ throw new Error("Method not implemented.");
725
447
  }
726
448
  print() {
449
+ throw new Error("Method not implemented.");
727
450
  }
728
451
  prompt(message, _default) {
729
- return null;
452
+ throw new Error("Method not implemented.");
730
453
  }
731
454
  releaseEvents() {
455
+ throw new Error("Method not implemented.");
732
456
  }
733
457
  requestIdleCallback(callback, options) {
734
- return 0;
458
+ throw new Error("Method not implemented.");
735
459
  }
736
460
  resizeBy(x, y) {
461
+ throw new Error("Method not implemented.");
737
462
  }
738
463
  resizeTo(width, height) {
464
+ throw new Error("Method not implemented.");
739
465
  }
740
- scroll(optionsOrX, y) {
466
+ scroll(x, y) {
467
+ throw new Error("Method not implemented.");
741
468
  }
742
- scrollBy(optionsOrX, y) {
469
+ scrollBy(x, y) {
470
+ throw new Error("Method not implemented.");
743
471
  }
744
- scrollTo(optionsOrX, y) {
472
+ scrollTo(x, y) {
473
+ throw new Error("Method not implemented.");
745
474
  }
746
475
  stop() {
476
+ throw new Error("Method not implemented.");
477
+ }
478
+ cancelAnimationFrame(handle) {
479
+ throw new Error("Method not implemented.");
480
+ }
481
+ requestAnimationFrame(callback) {
482
+ throw new Error("Method not implemented.");
483
+ }
484
+ atob(data) {
485
+ throw new Error("Method not implemented.");
486
+ }
487
+ btoa(data) {
488
+ throw new Error("Method not implemented.");
489
+ }
490
+ createImageBitmap(image, sx, sy, sw, sh, options) {
491
+ throw new Error("Method not implemented.");
492
+ }
493
+ fetch(input, init) {
494
+ throw new Error("Method not implemented.");
495
+ }
496
+ queueMicrotask(callback) {
497
+ throw new Error("Method not implemented.");
498
+ }
499
+ reportError(e) {
500
+ throw new Error("Method not implemented.");
501
+ }
502
+ structuredClone(value, options) {
503
+ throw new Error("Method not implemented.");
504
+ }
505
+ alert(_message) {
506
+ }
507
+ close() {
508
+ if (this._closed) return;
509
+ this._closed = true;
510
+ this._timers.forEach((id) => clearTimeout(id));
511
+ this._intervals.forEach((id) => clearInterval(id));
512
+ this._eventListeners.length = 0;
747
513
  }
748
- // Timer methods
749
514
  setTimeout(callback, delay, ...args) {
750
- if (this._closed) return 0;
751
515
  const id = setTimeout(() => {
752
516
  this._timers.delete(id);
753
517
  callback(...args);
@@ -760,7 +524,6 @@ class WindowBase {
760
524
  this._timers.delete(id);
761
525
  }
762
526
  setInterval(callback, delay, ...args) {
763
- if (this._closed) return 0;
764
527
  const id = setInterval(callback, delay, ...args);
765
528
  this._intervals.add(id);
766
529
  return id;
@@ -769,200 +532,34 @@ class WindowBase {
769
532
  clearInterval(id);
770
533
  this._intervals.delete(id);
771
534
  }
772
- // Animation methods
773
- requestAnimationFrame(callback) {
774
- if (this._closed) return 0;
775
- const id = this.setTimeout(callback, 16);
776
- this._animationFrames.add(id);
777
- return id;
778
- }
779
- cancelAnimationFrame(id) {
780
- this.clearTimeout(id);
781
- this._animationFrames.delete(id);
782
- }
783
535
  addEventListener(type, listener, options) {
784
- if (type === "popstate" || type === "load" || type === "unload" || type === "beforeunload") {
785
- this._eventListeners.push({
786
- type,
787
- listener: typeof listener === "function" ? listener : listener.handleEvent,
788
- options
789
- });
790
- }
536
+ this._eventListeners.push({
537
+ type,
538
+ listener: typeof listener === "function" ? listener : listener?.handleEvent,
539
+ options
540
+ });
791
541
  }
792
- removeEventListener(type, listener, options) {
793
- if (type === "popstate" || type === "load" || type === "unload" || type === "beforeunload") {
794
- const targetListener = typeof listener === "function" ? listener : listener.handleEvent;
795
- this._eventListeners = this._eventListeners.filter(
796
- (eventListener) => !(eventListener.type === type && eventListener.listener === targetListener)
797
- );
798
- }
542
+ removeEventListener(type, listener) {
543
+ const targetListener = typeof listener === "function" ? listener : listener?.handleEvent;
544
+ this._eventListeners = this._eventListeners.filter((l) => !(l.type === type && l.listener === targetListener));
799
545
  }
800
546
  dispatchEvent(event) {
801
- const eventListeners = this._eventListeners.filter((listener) => listener.type === event.type);
802
- for (const eventListener of eventListeners) {
547
+ const type = typeof event === "string" ? event : event.type;
548
+ const listeners = [...this._eventListeners.filter((l) => l.type === type)];
549
+ for (const l of listeners) {
803
550
  try {
804
- eventListener.listener.call(this, event);
805
- if (eventListener.options && typeof eventListener.options === "object" && eventListener.options.once) {
806
- this.removeEventListener(event.type, eventListener.listener);
551
+ l.listener.call(this, event);
552
+ if (l.options?.once) {
553
+ this.removeEventListener(type, l.listener);
807
554
  }
808
- } catch (error) {
809
- console.error("Error in event listener:", error);
555
+ } catch (e) {
556
+ console.error(`Error in Window event listener for ${type}:`, e);
810
557
  }
811
558
  }
812
559
  return true;
813
560
  }
814
- /**
815
- * Dispatch a popstate event to registered listeners
816
- */
817
561
  dispatchPopStateEvent(state, url) {
818
- const popStateEvent = {
819
- type: "popstate",
820
- state,
821
- url
822
- };
823
- this.dispatchEvent(popStateEvent);
824
- }
825
- atob(data) {
826
- return "";
827
- }
828
- btoa(data) {
829
- return "";
830
- }
831
- createImageBitmap(...args) {
832
- return Promise.resolve({});
833
- }
834
- fetch(input, init) {
835
- return Promise.resolve({});
836
- }
837
- queueMicrotask(callback) {
838
- }
839
- reportError(e) {
840
- }
841
- structuredClone(value, options) {
842
- return value;
843
- }
844
- /**
845
- * Recursive HTML parsing
846
- */
847
- parseHTMLRecursive(html, parent) {
848
- let position = 0;
849
- while (position < html.length) {
850
- const tagStart = html.indexOf("<", position);
851
- if (tagStart === -1) {
852
- const remainingText = html.substring(position).trim();
853
- if (remainingText) {
854
- const textNode = this.document.createTextNode(remainingText);
855
- parent.appendChild(textNode);
856
- }
857
- break;
858
- }
859
- if (tagStart > position) {
860
- const textContent = html.substring(position, tagStart).trim();
861
- if (textContent) {
862
- const textNode = this.document.createTextNode(textContent);
863
- parent.appendChild(textNode);
864
- }
865
- }
866
- const tagEnd = html.indexOf(">", tagStart);
867
- if (tagEnd === -1) break;
868
- const tagContent = html.substring(tagStart + 1, tagEnd);
869
- if (tagContent.startsWith("/")) {
870
- position = tagEnd + 1;
871
- break;
872
- }
873
- const isSelfClosing = tagContent.endsWith("/") || this.isSelfClosingTag(tagContent.split(/\s+/)[0]);
874
- const spaceIndex = tagContent.indexOf(" ");
875
- const tagName = spaceIndex === -1 ? tagContent.replace("/", "") : tagContent.substring(0, spaceIndex);
876
- const attributes = spaceIndex === -1 ? "" : tagContent.substring(spaceIndex + 1).replace("/", "");
877
- const element = this.document.createElement(tagName.toLowerCase());
878
- if (attributes.trim()) {
879
- this.parseAttributes(attributes, element);
880
- }
881
- if (tagName.toLowerCase() === "html") {
882
- this.document.documentElement = element;
883
- this.document.appendChild(element);
884
- } else if (tagName.toLowerCase() === "head") {
885
- this.document.head = element;
886
- if (this.document.documentElement) {
887
- this.document.documentElement.appendChild(element);
888
- } else {
889
- parent.appendChild(element);
890
- }
891
- } else if (tagName.toLowerCase() === "body") {
892
- this.document.body = element;
893
- if (this.document.documentElement) {
894
- this.document.documentElement.appendChild(element);
895
- } else {
896
- parent.appendChild(element);
897
- }
898
- } else {
899
- parent.appendChild(element);
900
- }
901
- if (isSelfClosing) {
902
- position = tagEnd + 1;
903
- } else {
904
- const closingTag = `</${tagName}>`;
905
- const closingTagIndex = this.findMatchingClosingTag(html, tagEnd + 1, tagName);
906
- if (closingTagIndex !== -1) {
907
- const innerContent = html.substring(tagEnd + 1, closingTagIndex);
908
- if (innerContent.trim()) {
909
- this.parseHTMLRecursive(innerContent, element);
910
- }
911
- position = closingTagIndex + closingTag.length;
912
- } else {
913
- position = tagEnd + 1;
914
- }
915
- }
916
- }
917
- }
918
- findMatchingClosingTag(html, startPos, tagName) {
919
- const openTag = `<${tagName}`;
920
- const closeTag = `</${tagName}>`;
921
- let depth = 1;
922
- let pos = startPos;
923
- while (pos < html.length && depth > 0) {
924
- const nextOpen = html.indexOf(openTag, pos);
925
- const nextClose = html.indexOf(closeTag, pos);
926
- if (nextClose === -1) return -1;
927
- if (nextOpen !== -1 && nextOpen < nextClose) {
928
- depth++;
929
- pos = nextOpen + openTag.length;
930
- } else {
931
- depth--;
932
- if (depth === 0) return nextClose;
933
- pos = nextClose + closeTag.length;
934
- }
935
- }
936
- return -1;
937
- }
938
- parseAttributes(attributeString, element) {
939
- const attrRegex = /([\w:-]+)(?:\s*=\s*(['"])(.*?)\2)?/g;
940
- let match;
941
- while ((match = attrRegex.exec(attributeString)) !== null) {
942
- const name = match[1];
943
- let value = match[3] || "";
944
- element.setAttribute(name, value);
945
- }
946
- }
947
- isSelfClosingTag(tagName) {
948
- const selfClosingTags = ["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"];
949
- return selfClosingTags.includes(tagName.toLowerCase());
950
- }
951
- /**
952
- * Clear current document content
953
- */
954
- clearDocumentContent() {
955
- const doc = this.document;
956
- if (doc.head) {
957
- while (doc.head.firstChild) {
958
- doc.head.removeChild(doc.head.firstChild);
959
- }
960
- }
961
- if (doc.body) {
962
- while (doc.body.firstChild) {
963
- doc.body.removeChild(doc.body.firstChild);
964
- }
965
- }
562
+ this.dispatchEvent({ type: "popstate", state, url });
966
563
  }
967
564
  }
968
565
  //# sourceMappingURL=WindowBase.js.map