@dooboostore/dom-parser 1.0.1 → 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 (519) hide show
  1. package/dist/cjs/DomParser.js +43 -13
  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 +169 -202
  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 +164 -322
  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 +153 -3
  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 +233 -515
  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 +43 -13
  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 +166 -199
  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 +164 -322
  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 +153 -3
  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 +282 -499
  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 +3755 -3548
  271. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  272. package/dist/types/DomParser.d.ts +4 -0
  273. package/dist/types/DomParser.d.ts.map +1 -1
  274. package/dist/types/factory/ElementFactory.d.ts +1 -1
  275. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  276. package/dist/types/index.d.ts +3 -1
  277. package/dist/types/index.d.ts.map +1 -1
  278. package/dist/types/node/CharacterData.d.ts +0 -2
  279. package/dist/types/node/CharacterData.d.ts.map +1 -1
  280. package/dist/types/node/ChildNode.d.ts +0 -38
  281. package/dist/types/node/ChildNode.d.ts.map +1 -1
  282. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  283. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  284. package/dist/types/node/Comment.d.ts +1 -1
  285. package/dist/types/node/Comment.d.ts.map +1 -1
  286. package/dist/types/node/Document.d.ts +0 -856
  287. package/dist/types/node/Document.d.ts.map +1 -1
  288. package/dist/types/node/DocumentBase.d.ts +68 -108
  289. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  290. package/dist/types/node/DocumentFragment.d.ts +0 -38
  291. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  292. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  293. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  294. package/dist/types/node/Node.d.ts +0 -213
  295. package/dist/types/node/Node.d.ts.map +1 -1
  296. package/dist/types/node/NodeBase.d.ts +11 -8
  297. package/dist/types/node/NodeBase.d.ts.map +1 -1
  298. package/dist/types/node/NodeFilter.d.ts +25 -0
  299. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  300. package/dist/types/node/NodeIterator.d.ts +0 -34
  301. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  302. package/dist/types/node/ParentNode.d.ts +0 -84
  303. package/dist/types/node/ParentNode.d.ts.map +1 -1
  304. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  305. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  306. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  307. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  308. package/dist/types/node/Text.d.ts +0 -24
  309. package/dist/types/node/Text.d.ts.map +1 -1
  310. package/dist/types/node/TextBase.d.ts +2 -3
  311. package/dist/types/node/TextBase.d.ts.map +1 -1
  312. package/dist/types/node/TreeWalker.d.ts +48 -0
  313. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  314. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  315. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  316. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  317. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  318. package/dist/types/node/collection/NodeList.d.ts +0 -1
  319. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  320. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  321. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  322. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  323. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  324. package/dist/types/node/collection/index.d.ts +3 -3
  325. package/dist/types/node/collection/index.d.ts.map +1 -1
  326. package/dist/types/node/elements/Element.d.ts +0 -686
  327. package/dist/types/node/elements/Element.d.ts.map +1 -1
  328. package/dist/types/node/elements/ElementBase.d.ts +97 -73
  329. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  330. package/dist/types/node/elements/HTMLAreaElement.d.ts +0 -1
  331. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  332. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  333. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  334. package/dist/types/node/elements/HTMLButtonElement.d.ts +1 -1
  335. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  336. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  337. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  338. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  339. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  340. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  341. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  342. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  343. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  344. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  345. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  346. package/dist/types/node/elements/HTMLElement.d.ts +2 -88
  347. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  348. package/dist/types/node/elements/HTMLElementBase.d.ts +133 -3
  349. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  350. package/dist/types/node/elements/HTMLEmbedElement.d.ts +0 -1
  351. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  352. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  353. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  354. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  355. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  356. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  357. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  358. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  359. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  360. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  361. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  362. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  363. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  364. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  365. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  366. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  367. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  368. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  369. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  370. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  371. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  372. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  373. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  374. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  375. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  376. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  377. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  378. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  379. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  380. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  381. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  382. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  383. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  384. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  385. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  386. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  387. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  388. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  389. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  390. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  391. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  392. package/dist/types/node/elements/HTMLTableElement.d.ts +3 -4
  393. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  394. package/dist/types/node/elements/HTMLTbodyElement.d.ts +2 -3
  395. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  396. package/dist/types/node/elements/HTMLTemplateElement.d.ts +0 -1
  397. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  398. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  399. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  400. package/dist/types/node/elements/HTMLTfootElement.d.ts +2 -3
  401. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  402. package/dist/types/node/elements/HTMLTheadElement.d.ts +2 -3
  403. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  404. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  405. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  406. package/dist/types/node/elements/HTMLTrElement.d.ts +2 -3
  407. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  408. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  409. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  410. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  411. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  412. package/dist/types/node/elements/index.d.ts +106 -52
  413. package/dist/types/node/elements/index.d.ts.map +1 -1
  414. package/dist/types/node/index.d.ts +4 -7
  415. package/dist/types/node/index.d.ts.map +1 -1
  416. package/dist/types/utils/CSSSelector.d.ts +0 -1
  417. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  418. package/dist/types/window/CustomElementRegistryImp.d.ts +18 -0
  419. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  420. package/dist/types/window/Window.d.ts +0 -619
  421. package/dist/types/window/Window.d.ts.map +1 -1
  422. package/dist/types/window/WindowBase.d.ts +261 -284
  423. package/dist/types/window/WindowBase.d.ts.map +1 -1
  424. package/dist/types/window/index.d.ts +0 -1
  425. package/dist/types/window/index.d.ts.map +1 -1
  426. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3765 -3558
  427. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  428. package/package.json +1 -1
  429. package/src/DomParser.ts +458 -429
  430. package/src/factory/ElementFactory.ts +79 -53
  431. package/src/index.ts +11 -10
  432. package/src/node/CharacterData.ts +0 -2
  433. package/src/node/ChildNode.ts +42 -42
  434. package/src/node/ChildNodeBase.ts +60 -39
  435. package/src/node/Comment.ts +60 -60
  436. package/src/node/Document.ts +129 -882
  437. package/src/node/DocumentBase.ts +371 -462
  438. package/src/node/DocumentFragment.ts +38 -44
  439. package/src/node/DocumentFragmentBase.ts +4 -9
  440. package/src/node/Node.ts +231 -224
  441. package/src/node/NodeBase.ts +469 -443
  442. package/src/node/NodeFilter.ts +50 -0
  443. package/src/node/NodeIterator.ts +117 -172
  444. package/src/node/ParentNode.ts +93 -93
  445. package/src/node/ParentNodeBase.ts +7 -10
  446. package/src/node/ShadowRootBase.ts +87 -0
  447. package/src/node/Text.ts +30 -30
  448. package/src/node/TextBase.ts +92 -94
  449. package/src/node/TreeWalker.ts +280 -0
  450. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  451. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  452. package/src/node/collection/NodeList.ts +1 -1
  453. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  454. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  455. package/src/node/collection/index.ts +3 -3
  456. package/src/node/elements/Element.ts +212 -771
  457. package/src/node/elements/ElementBase.ts +840 -1195
  458. package/src/node/elements/HTMLAreaElement.ts +0 -1
  459. package/src/node/elements/HTMLAudioElement.ts +10 -0
  460. package/src/node/elements/HTMLButtonElement.ts +63 -63
  461. package/src/node/elements/HTMLDListElement.ts +2 -0
  462. package/src/node/elements/HTMLDataElement.ts +6 -0
  463. package/src/node/elements/HTMLDataListElement.ts +2 -0
  464. package/src/node/elements/HTMLDetailsElement.ts +2 -0
  465. package/src/node/elements/HTMLDialogElement.ts +2 -0
  466. package/src/node/elements/HTMLElement.ts +2 -102
  467. package/src/node/elements/HTMLElementBase.ts +453 -156
  468. package/src/node/elements/HTMLEmbedElement.ts +0 -1
  469. package/src/node/elements/HTMLFieldSetElement.ts +2 -0
  470. package/src/node/elements/HTMLHRElement.ts +2 -0
  471. package/src/node/elements/HTMLIFrameElement.ts +2 -0
  472. package/src/node/elements/HTMLLabelElement.ts +2 -0
  473. package/src/node/elements/HTMLLegendElement.ts +2 -0
  474. package/src/node/elements/HTMLMapElement.ts +2 -0
  475. package/src/node/elements/HTMLMeterElement.ts +2 -0
  476. package/src/node/elements/HTMLModElement.ts +2 -0
  477. package/src/node/elements/HTMLObjectElement.ts +2 -0
  478. package/src/node/elements/HTMLOptGroupElement.ts +2 -0
  479. package/src/node/elements/HTMLOptionElement.ts +2 -0
  480. package/src/node/elements/HTMLOutputElement.ts +2 -0
  481. package/src/node/elements/HTMLParamElement.ts +2 -0
  482. package/src/node/elements/HTMLPictureElement.ts +2 -0
  483. package/src/node/elements/HTMLPreElement.ts +2 -0
  484. package/src/node/elements/HTMLProgressElement.ts +2 -0
  485. package/src/node/elements/HTMLQuoteElement.ts +2 -0
  486. package/src/node/elements/HTMLSelectElement.ts +2 -0
  487. package/src/node/elements/HTMLSlotElement.ts +2 -0
  488. package/src/node/elements/HTMLSourceElement.ts +2 -0
  489. package/src/node/elements/HTMLTableElement.ts +3 -7
  490. package/src/node/elements/HTMLTbodyElement.ts +2 -3
  491. package/src/node/elements/HTMLTdElement.ts +1 -1
  492. package/src/node/elements/HTMLTemplateElement.ts +3 -6
  493. package/src/node/elements/HTMLTextAreaElement.ts +2 -0
  494. package/src/node/elements/HTMLTfootElement.ts +2 -3
  495. package/src/node/elements/HTMLTheadElement.ts +2 -3
  496. package/src/node/elements/HTMLTimeElement.ts +2 -0
  497. package/src/node/elements/HTMLTrElement.ts +3 -4
  498. package/src/node/elements/HTMLTrackElement.ts +2 -0
  499. package/src/node/elements/HTMLVideoElement.ts +10 -0
  500. package/src/node/elements/index.ts +226 -149
  501. package/src/node/index.ts +8 -8
  502. package/src/utils/CSSSelector.ts +0 -1
  503. package/src/window/CustomElementRegistryImp.ts +120 -0
  504. package/src/window/Window.ts +716 -715
  505. package/src/window/WindowBase.ts +842 -998
  506. package/src/window/index.ts +0 -1
  507. package/tsconfig.json +1 -0
  508. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  509. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  510. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  511. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  512. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  513. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  514. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  515. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  516. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  517. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  518. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  519. 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,552 +254,312 @@ 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
- constructor(document, initialUrl) {
302
- // Event system
292
+ constructor(config) {
303
293
  this._eventListeners = [];
304
- this.closed = false;
294
+ this._timers = /* @__PURE__ */ new Set();
295
+ this._intervals = /* @__PURE__ */ new Set();
296
+ this._animationFrames = /* @__PURE__ */ new Set();
297
+ this._closed = false;
305
298
  this.cookieStore = {};
306
- this.customElements = {};
307
299
  this.devicePixelRatio = 1;
308
- this.event = void 0;
309
- this.external = {};
310
- this.frameElement = null;
311
- this.frames = {};
312
- this.innerHeight = 768;
313
- this.innerWidth = 1024;
314
- this.length = 0;
315
- this.locationbar = {};
316
- this.menubar = {};
317
- this.name = "";
318
- this.ondevicemotion = null;
319
- this.ondeviceorientation = null;
320
- this.ondeviceorientationabsolute = null;
321
- this.onorientationchange = null;
322
- this.opener = null;
323
- this.orientation = 0;
324
- this.originAgentCluster = false;
325
- this.outerHeight = 768;
326
- this.outerWidth = 1024;
327
- this.pageXOffset = 0;
328
- this.pageYOffset = 0;
329
- this.parent = {};
330
- this.personalbar = {};
331
- this.screen = {};
332
- this.screenLeft = 0;
333
- this.screenTop = 0;
334
- this.screenX = 0;
335
- this.screenY = 0;
336
- this.scrollX = 0;
337
- this.scrollY = 0;
338
- this.scrollbars = {};
339
300
  this.self = this;
340
- this.speechSynthesis = {};
341
- this.status = "";
342
- this.statusbar = {};
343
- this.toolbar = {};
344
- this.top = null;
345
- this.visualViewport = null;
346
301
  this.window = this;
347
302
  // Global constructors
348
- this.Node = import_NodeBase.NodeBase;
349
- this.Element = import_ElementBase.ElementBase;
350
- this.HTMLElement = import_ElementBase.ElementBase;
351
303
  this.Event = class Event {
304
+ constructor(type) {
305
+ this.type = type;
306
+ }
352
307
  };
353
- this.PopStateEvent = class PopStateEvent extends this.Event {
354
- };
355
- this.IntersectionObserver = class IntersectionObserver {
356
- };
357
- this.NodeFilter = class NodeFilter {
358
- };
359
- this.DocumentFragment = class DocumentFragment {
360
- };
361
- this.HTMLMetaElement = import_HTMLMetaElement.HTMLMetaElement;
362
- this.HTMLCanvasElement = import_HTMLCanvasElement.HTMLCanvasElement;
363
- this.CanvasRenderingContext2D = class CanvasRenderingContext2D {
364
- };
365
- this.CanvasPattern = class CanvasPattern {
366
- };
367
- this.CanvasGradient = class CanvasGradient {
368
- };
369
- this.Path2D = class Path2D {
370
- };
371
- this.ImageData = class ImageData {
308
+ this.CustomEvent = class CustomEvent extends this.Event {
309
+ constructor(type, detail) {
310
+ super(type);
311
+ this.detail = detail;
312
+ }
372
313
  };
373
- // HTML element constructors
374
- this.HTMLAnchorElement = import_HTMLAnchorElement.HTMLAnchorElement;
375
- this.HTMLBodyElement = import_HTMLBodyElement.HTMLBodyElement;
376
- this.HTMLButtonElement = import_HTMLButtonElement.HTMLButtonElement;
377
- this.HTMLDivElement = import_HTMLDivElement.HTMLDivElement;
378
- this.HTMLH1Element = import_HTMLH1Element.HTMLH1Element;
379
- this.HTMLHeadElement = import_HTMLHeadElement.HTMLHeadElement;
380
- this.HTMLHtmlElement = import_HTMLHtmlElement.HTMLHtmlElement;
381
- this.HTMLImgElement = import_HTMLImgElement.HTMLImgElement;
382
- this.HTMLInputElement = import_HTMLInputElement.HTMLInputElement;
383
- this.HTMLPElement = import_HTMLPElement.HTMLPElement;
384
- this.HTMLSpanElement = import_HTMLSpanElement.HTMLSpanElement;
385
- this.HTMLTitleElement = import_HTMLTitleElement.HTMLTitleElement;
386
- this.HTMLLinkElement = import_HTMLLinkElement.HTMLLinkElement;
387
- this.HTMLScriptElement = import_HTMLScriptElement.HTMLScriptElement;
388
- this.HTMLStyleElement = import_HTMLStyleElement.HTMLStyleElement;
389
- this.HTMLFormElement = import_HTMLFormElement.HTMLFormElement;
390
- this.HTMLTableElement = import_HTMLTableElement.HTMLTableElement;
391
- this.HTMLUListElement = import_HTMLUListElement.HTMLUListElement;
392
- this.HTMLOListElement = import_HTMLOListElement.HTMLOListElement;
393
- this.HTMLLIElement = import_HTMLLIElement.HTMLLIElement;
394
- this.HTMLTemplateElement = import_HTMLTemplateElement.HTMLTemplateElement;
395
- this.HTMLTheadElement = import_HTMLTheadElement.HTMLTheadElement;
396
- this.HTMLTfootElement = import_HTMLTfootElement.HTMLTfootElement;
397
- this.HTMLTrElement = import_HTMLTrElement.HTMLTrElement;
398
- this.HTMLTdElement = import_HTMLTdElement.HTMLTdElement;
399
- this.HTMLThElement = import_HTMLThElement.HTMLThElement;
400
- this.HTMLCaptionElement = import_HTMLCaptionElement.HTMLCaptionElement;
401
- this.HTMLTbodyElement = import_HTMLTbodyElement.HTMLTbodyElement;
402
- // EventTarget methods (inherited)
403
- // These are already covered by addEventListener/removeEventListener/dispatchEvent
404
- // GlobalEventHandlers - empty implementations
405
- this.onabort = null;
406
- this.onanimationcancel = null;
407
- this.onanimationend = null;
408
- this.onanimationiteration = null;
409
- this.onanimationstart = null;
410
- this.onauxclick = null;
411
- this.onbeforeinput = null;
412
- this.onblur = null;
413
- this.oncancel = null;
414
- this.oncanplay = null;
415
- this.oncanplaythrough = null;
416
- this.onchange = null;
417
- this.onclick = null;
418
- this.onclose = null;
419
- this.oncontextmenu = null;
420
- this.oncopy = null;
421
- this.oncuechange = null;
422
- this.oncut = null;
423
- this.ondblclick = null;
424
- this.ondrag = null;
425
- this.ondragend = null;
426
- this.ondragenter = null;
427
- this.ondragleave = null;
428
- this.ondragover = null;
429
- this.ondragstart = null;
430
- this.ondrop = null;
431
- this.ondurationchange = null;
432
- this.onemptied = null;
433
- this.onended = null;
434
- this.onerror = null;
435
- this.onfocus = null;
436
- this.onformdata = null;
437
- this.ongotpointercapture = null;
438
- this.oninput = null;
439
- this.oninvalid = null;
440
- this.onkeydown = null;
441
- this.onkeypress = null;
442
- this.onkeyup = null;
443
- this.onload = null;
444
- this.onloadeddata = null;
445
- this.onloadedmetadata = null;
446
- this.onloadstart = null;
447
- this.onlostpointercapture = null;
448
- this.onmousedown = null;
449
- this.onmouseenter = null;
450
- this.onmouseleave = null;
451
- this.onmousemove = null;
452
- this.onmouseout = null;
453
- this.onmouseover = null;
454
- this.onmouseup = null;
455
- this.onpaste = null;
456
- this.onpause = null;
457
- this.onplay = null;
458
- this.onplaying = null;
459
- this.onpointercancel = null;
460
- this.onpointerdown = null;
461
- this.onpointerenter = null;
462
- this.onpointerleave = null;
463
- this.onpointermove = null;
464
- this.onpointerout = null;
465
- this.onpointerover = null;
466
- this.onpointerup = null;
467
- this.onprogress = null;
468
- this.onratechange = null;
469
- this.onreset = null;
470
- this.onresize = null;
471
- this.onscroll = null;
472
- this.onscrollend = null;
473
- this.onsecuritypolicyviolation = null;
474
- this.onseeked = null;
475
- this.onseeking = null;
476
- this.onselect = null;
477
- this.onselectionchange = null;
478
- this.onselectstart = null;
479
- this.onslotchange = null;
480
- this.onstalled = null;
481
- this.onsubmit = null;
482
- this.onsuspend = null;
483
- this.ontimeupdate = null;
484
- this.ontoggle = null;
485
- this.ontouchcancel = null;
486
- this.ontouchend = null;
487
- this.ontouchmove = null;
488
- this.ontouchstart = null;
489
- this.ontransitioncancel = null;
490
- this.ontransitionend = null;
491
- this.ontransitionrun = null;
492
- this.ontransitionstart = null;
493
- this.onvolumechange = null;
494
- this.onwaiting = null;
495
- this.onwebkitanimationend = null;
496
- this.onwebkitanimationiteration = null;
497
- this.onwebkitanimationstart = null;
498
- this.onwebkittransitionend = null;
499
- this.onwheel = null;
500
- // WindowEventHandlers - empty implementations
501
- this.onafterprint = null;
502
- this.onbeforeprint = null;
503
- this.onbeforeunload = null;
504
- this.onhashchange = null;
505
- this.onlanguagechange = null;
506
- this.onmessage = null;
507
- this.onmessageerror = null;
508
- this.onoffline = null;
509
- this.ononline = null;
510
- this.onpagehide = null;
511
- this.onpageshow = null;
512
- this.onpopstate = null;
513
- this.onrejectionhandled = null;
514
- this.onstorage = null;
515
- this.onunhandledrejection = null;
516
- this.onunload = null;
517
- // WindowLocalStorage
518
- this.localStorage = {};
519
- // WindowOrWorkerGlobalScope - empty implementations
520
- this.caches = {};
521
- this.crossOriginIsolated = false;
522
- this.crypto = {};
523
- this.indexedDB = {};
524
- this.isSecureContext = false;
525
- this.origin = "null";
526
- this.performance = {};
527
- // WindowSessionStorage
528
- this.sessionStorage = {};
529
- this.document = document || new import_DocumentBase.DocumentBase();
530
- if (this.document && this.document.setWindow) {
531
- this.document.setWindow(this);
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;
388
+ const documentBase = new import_DocumentBase.DocumentBase();
389
+ if (documentBase && documentBase.setWindow) {
390
+ documentBase.setWindow(this);
532
391
  }
533
- this._location = new LocationBase(initialUrl);
392
+ this._location = new LocationBase(config?.initialUrl);
393
+ documentBase.setLocation(this._location);
394
+ this.document = documentBase;
395
+ const customElementRegistryImp = new import_CustomElementRegistryImp.CustomElementRegistryImp();
396
+ customElementRegistryImp.setWindow(this);
397
+ this.customElements = customElementRegistryImp;
534
398
  this.history = new HistoryBase(this);
535
399
  this.navigator = new NavigatorBase();
536
400
  this.clientInformation = this.navigator;
537
- return new Proxy(this, {
538
- get(target, prop) {
539
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
540
- return target;
541
- }
542
- return target[prop];
543
- },
544
- set(target, prop, value) {
545
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
546
- return true;
547
- }
548
- target[prop] = value;
549
- return true;
550
- },
551
- has(target, prop) {
552
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
553
- return true;
554
- }
555
- return prop in target;
556
- },
557
- ownKeys(target) {
558
- const keys = Object.getOwnPropertyNames(target);
559
- for (let i = 0; i < target.length; i++) {
560
- keys.push(i.toString());
561
- }
562
- return keys;
563
- },
564
- getOwnPropertyDescriptor(target, prop) {
565
- if (typeof prop === "string" && /^\d+$/.test(prop)) {
566
- return {
567
- enumerable: true,
568
- configurable: true,
569
- value: target
570
- };
571
- }
572
- return Object.getOwnPropertyDescriptor(target, prop);
573
- }
574
- });
401
+ }
402
+ get closed() {
403
+ return this._closed;
575
404
  }
576
405
  get location() {
577
406
  return this._location;
578
407
  }
579
408
  set location(href) {
580
- if (typeof href === "string") {
581
- this._location.href = href;
582
- } else {
583
- this._location.href = href.href;
584
- }
585
- }
586
- // Window methods - all with empty implementations for server-side
587
- alert(message) {
409
+ if (typeof href === "string") this._location.href = href;
410
+ else this._location.href = href.href;
588
411
  }
589
412
  blur() {
413
+ throw new Error("Method not implemented.");
590
414
  }
591
415
  cancelIdleCallback(handle) {
416
+ throw new Error("Method not implemented.");
592
417
  }
593
418
  captureEvents() {
594
- }
595
- close() {
419
+ throw new Error("Method not implemented.");
596
420
  }
597
421
  confirm(message) {
598
- return false;
422
+ throw new Error("Method not implemented.");
599
423
  }
600
424
  focus() {
425
+ throw new Error("Method not implemented.");
601
426
  }
602
427
  getComputedStyle(elt, pseudoElt) {
603
- return {};
428
+ throw new Error("Method not implemented.");
604
429
  }
605
430
  getSelection() {
606
- return null;
431
+ throw new Error("Method not implemented.");
607
432
  }
608
433
  matchMedia(query) {
609
- return {};
434
+ throw new Error("Method not implemented.");
610
435
  }
611
436
  moveBy(x, y) {
437
+ throw new Error("Method not implemented.");
612
438
  }
613
439
  moveTo(x, y) {
440
+ throw new Error("Method not implemented.");
614
441
  }
615
442
  open(url, target, features) {
616
- return null;
443
+ throw new Error("Method not implemented.");
617
444
  }
618
- postMessage(message, targetOriginOrOptions, transfer) {
445
+ postMessage(message, targetOrigin, transfer) {
446
+ throw new Error("Method not implemented.");
619
447
  }
620
448
  print() {
449
+ throw new Error("Method not implemented.");
621
450
  }
622
451
  prompt(message, _default) {
623
- return null;
452
+ throw new Error("Method not implemented.");
624
453
  }
625
454
  releaseEvents() {
455
+ throw new Error("Method not implemented.");
626
456
  }
627
457
  requestIdleCallback(callback, options) {
628
- return 0;
458
+ throw new Error("Method not implemented.");
629
459
  }
630
460
  resizeBy(x, y) {
461
+ throw new Error("Method not implemented.");
631
462
  }
632
463
  resizeTo(width, height) {
464
+ throw new Error("Method not implemented.");
633
465
  }
634
- scroll(optionsOrX, y) {
466
+ scroll(x, y) {
467
+ throw new Error("Method not implemented.");
635
468
  }
636
- scrollBy(optionsOrX, y) {
469
+ scrollBy(x, y) {
470
+ throw new Error("Method not implemented.");
637
471
  }
638
- scrollTo(optionsOrX, y) {
472
+ scrollTo(x, y) {
473
+ throw new Error("Method not implemented.");
639
474
  }
640
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;
641
513
  }
642
- // Timer methods
643
514
  setTimeout(callback, delay, ...args) {
644
- return setTimeout(callback, delay, ...args);
515
+ const id = setTimeout(() => {
516
+ this._timers.delete(id);
517
+ callback(...args);
518
+ }, delay);
519
+ this._timers.add(id);
520
+ return id;
645
521
  }
646
522
  clearTimeout(id) {
647
523
  clearTimeout(id);
524
+ this._timers.delete(id);
648
525
  }
649
526
  setInterval(callback, delay, ...args) {
650
- return setInterval(callback, delay, ...args);
527
+ const id = setInterval(callback, delay, ...args);
528
+ this._intervals.add(id);
529
+ return id;
651
530
  }
652
531
  clearInterval(id) {
653
532
  clearInterval(id);
654
- }
655
- // Animation methods
656
- requestAnimationFrame(callback) {
657
- return this.setTimeout(callback, 16);
658
- }
659
- cancelAnimationFrame(id) {
660
- this.clearTimeout(id);
533
+ this._intervals.delete(id);
661
534
  }
662
535
  addEventListener(type, listener, options) {
663
- if (type === "popstate" || type === "load" || type === "unload" || type === "beforeunload") {
664
- this._eventListeners.push({
665
- type,
666
- listener: typeof listener === "function" ? listener : listener.handleEvent,
667
- options
668
- });
669
- }
536
+ this._eventListeners.push({
537
+ type,
538
+ listener: typeof listener === "function" ? listener : listener?.handleEvent,
539
+ options
540
+ });
670
541
  }
671
- removeEventListener(type, listener, options) {
672
- if (type === "popstate" || type === "load" || type === "unload" || type === "beforeunload") {
673
- const targetListener = typeof listener === "function" ? listener : listener.handleEvent;
674
- this._eventListeners = this._eventListeners.filter(
675
- (eventListener) => !(eventListener.type === type && eventListener.listener === targetListener)
676
- );
677
- }
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));
678
545
  }
679
546
  dispatchEvent(event) {
680
- const eventListeners = this._eventListeners.filter((listener) => listener.type === event.type);
681
- 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) {
682
550
  try {
683
- eventListener.listener.call(this, event);
684
- if (eventListener.options && typeof eventListener.options === "object" && eventListener.options.once) {
685
- this.removeEventListener(event.type, eventListener.listener);
551
+ l.listener.call(this, event);
552
+ if (l.options?.once) {
553
+ this.removeEventListener(type, l.listener);
686
554
  }
687
- } catch (error) {
688
- console.error("Error in event listener:", error);
555
+ } catch (e) {
556
+ console.error(`Error in Window event listener for ${type}:`, e);
689
557
  }
690
558
  }
691
559
  return true;
692
560
  }
693
- /**
694
- * Dispatch a popstate event to registered listeners
695
- */
696
561
  dispatchPopStateEvent(state, url) {
697
- const popStateEvent = {
698
- type: "popstate",
699
- state,
700
- url
701
- };
702
- this.dispatchEvent(popStateEvent);
703
- }
704
- atob(data) {
705
- return "";
706
- }
707
- btoa(data) {
708
- return "";
709
- }
710
- createImageBitmap(...args) {
711
- return Promise.resolve({});
712
- }
713
- fetch(input, init) {
714
- return Promise.resolve({});
715
- }
716
- queueMicrotask(callback) {
717
- }
718
- reportError(e) {
719
- }
720
- structuredClone(value, options) {
721
- return value;
722
- }
723
- /**
724
- * Recursive HTML parsing
725
- */
726
- parseHTMLRecursive(html, parent) {
727
- let position = 0;
728
- while (position < html.length) {
729
- const tagStart = html.indexOf("<", position);
730
- if (tagStart === -1) {
731
- const remainingText = html.substring(position).trim();
732
- if (remainingText) {
733
- const textNode = this.document.createTextNode(remainingText);
734
- parent.appendChild(textNode);
735
- }
736
- break;
737
- }
738
- if (tagStart > position) {
739
- const textContent = html.substring(position, tagStart).trim();
740
- if (textContent) {
741
- const textNode = this.document.createTextNode(textContent);
742
- parent.appendChild(textNode);
743
- }
744
- }
745
- const tagEnd = html.indexOf(">", tagStart);
746
- if (tagEnd === -1) break;
747
- const tagContent = html.substring(tagStart + 1, tagEnd);
748
- if (tagContent.startsWith("/")) {
749
- position = tagEnd + 1;
750
- break;
751
- }
752
- const isSelfClosing = tagContent.endsWith("/") || this.isSelfClosingTag(tagContent.split(/\s+/)[0]);
753
- const spaceIndex = tagContent.indexOf(" ");
754
- const tagName = spaceIndex === -1 ? tagContent.replace("/", "") : tagContent.substring(0, spaceIndex);
755
- const attributes = spaceIndex === -1 ? "" : tagContent.substring(spaceIndex + 1).replace("/", "");
756
- const element = this.document.createElement(tagName.toLowerCase());
757
- if (attributes.trim()) {
758
- this.parseAttributes(attributes, element);
759
- }
760
- if (tagName.toLowerCase() === "html") {
761
- this.document.documentElement = element;
762
- this.document.appendChild(element);
763
- } else if (tagName.toLowerCase() === "head") {
764
- this.document.head = element;
765
- if (this.document.documentElement) {
766
- this.document.documentElement.appendChild(element);
767
- } else {
768
- parent.appendChild(element);
769
- }
770
- } else if (tagName.toLowerCase() === "body") {
771
- this.document.body = element;
772
- if (this.document.documentElement) {
773
- this.document.documentElement.appendChild(element);
774
- } else {
775
- parent.appendChild(element);
776
- }
777
- } else {
778
- parent.appendChild(element);
779
- }
780
- if (isSelfClosing) {
781
- position = tagEnd + 1;
782
- } else {
783
- const closingTag = `</${tagName}>`;
784
- const closingTagIndex = this.findMatchingClosingTag(html, tagEnd + 1, tagName);
785
- if (closingTagIndex !== -1) {
786
- const innerContent = html.substring(tagEnd + 1, closingTagIndex);
787
- if (innerContent.trim()) {
788
- this.parseHTMLRecursive(innerContent, element);
789
- }
790
- position = closingTagIndex + closingTag.length;
791
- } else {
792
- position = tagEnd + 1;
793
- }
794
- }
795
- }
796
- }
797
- findMatchingClosingTag(html, startPos, tagName) {
798
- const openTag = `<${tagName}`;
799
- const closeTag = `</${tagName}>`;
800
- let depth = 1;
801
- let pos = startPos;
802
- while (pos < html.length && depth > 0) {
803
- const nextOpen = html.indexOf(openTag, pos);
804
- const nextClose = html.indexOf(closeTag, pos);
805
- if (nextClose === -1) return -1;
806
- if (nextOpen !== -1 && nextOpen < nextClose) {
807
- depth++;
808
- pos = nextOpen + openTag.length;
809
- } else {
810
- depth--;
811
- if (depth === 0) return nextClose;
812
- pos = nextClose + closeTag.length;
813
- }
814
- }
815
- return -1;
816
- }
817
- parseAttributes(attributeString, element) {
818
- const attrRegex = /([\w:-]+)(?:\s*=\s*(['"])(.*?)\2)?/g;
819
- let match;
820
- while ((match = attrRegex.exec(attributeString)) !== null) {
821
- const name = match[1];
822
- let value = match[3] || "";
823
- element.setAttribute(name, value);
824
- }
825
- }
826
- isSelfClosingTag(tagName) {
827
- const selfClosingTags = ["area", "base", "br", "col", "embed", "hr", "img", "input", "link", "meta", "param", "source", "track", "wbr"];
828
- return selfClosingTags.includes(tagName.toLowerCase());
829
- }
830
- /**
831
- * Clear current document content
832
- */
833
- clearDocumentContent() {
834
- const doc = this.document;
835
- if (doc.head) {
836
- while (doc.head.firstChild) {
837
- doc.head.removeChild(doc.head.firstChild);
838
- }
839
- }
840
- if (doc.body) {
841
- while (doc.body.firstChild) {
842
- doc.body.removeChild(doc.body.firstChild);
843
- }
844
- }
562
+ this.dispatchEvent({ type: "popstate", state, url });
845
563
  }
846
564
  }
847
565
  //# sourceMappingURL=WindowBase.js.map