@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
@@ -22,10 +22,10 @@ __export(ElementBase_exports, {
22
22
  module.exports = __toCommonJS(ElementBase_exports);
23
23
  var import_ParentNodeBase = require("../ParentNodeBase");
24
24
  var import_collection = require("../collection");
25
- var import_ElementFactory = require("../../factory/ElementFactory");
26
25
  var import_Node = require("../Node");
27
26
  var import_CSSSelector = require("../../utils/CSSSelector");
28
27
  var import_NodeBase = require("../NodeBase");
28
+ var import_ShadowRootBase = require("../ShadowRootBase");
29
29
  class DOMException extends Error {
30
30
  constructor(message, name = "DOMException") {
31
31
  super(message);
@@ -33,16 +33,23 @@ class DOMException extends Error {
33
33
  this.name = name;
34
34
  }
35
35
  }
36
- class ElementBase extends import_ParentNodeBase.ParentNodeBase {
37
- constructor(_tagName, ownerDocument) {
36
+ const _ElementBase = class _ElementBase extends import_ParentNodeBase.ParentNodeBase {
37
+ constructor(_tagName = "DIV", ownerDocument) {
38
38
  super(import_Node.ELEMENT_NODE, _tagName.toUpperCase(), ownerDocument);
39
39
  this._tagName = _tagName;
40
40
  this._id = "";
41
41
  this._className = "";
42
42
  this._attributes = /* @__PURE__ */ new Map();
43
+ this._shadowRoot = null;
43
44
  this.onfullscreenchange = null;
44
45
  this.onfullscreenerror = null;
45
46
  }
47
+ animate(keyframes, options) {
48
+ throw new Error("Method not implemented.");
49
+ }
50
+ getAnimations(options) {
51
+ throw new Error("Method not implemented.");
52
+ }
46
53
  get tagName() {
47
54
  return this._tagName.toUpperCase();
48
55
  }
@@ -88,10 +95,12 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
88
95
  if (value !== null && value !== void 0) {
89
96
  const stringValue = String(value);
90
97
  const escapedValue = this.escapeHTMLEntities(stringValue);
91
- const { TextBase } = require("../TextBase");
92
- const textNode = new TextBase(escapedValue, this._ownerDocument);
93
- this._childNodesInternal.push(textNode);
94
- textNode._parentNodeInternal = this;
98
+ const { TextBase } = _ElementBase.dependencies;
99
+ if (TextBase) {
100
+ const textNode = new TextBase(escapedValue, this._ownerDocument);
101
+ this._childNodesInternal.push(textNode);
102
+ textNode._parentNodeInternal = this;
103
+ }
95
104
  }
96
105
  }
97
106
  set innerHTML(value) {
@@ -117,6 +126,9 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
117
126
  return `<${tagName}${attrs} />`;
118
127
  } else {
119
128
  let childHTML = "";
129
+ if (element.shadowRoot) {
130
+ childHTML += `<template shadowrootmode="${element.shadowRoot.mode}">${element.shadowRoot.innerHTML}</template>`;
131
+ }
120
132
  for (const child of element._childNodesInternal || []) {
121
133
  if (child.nodeType === import_Node.TEXT_NODE) {
122
134
  childHTML += child._nodeValue || "";
@@ -132,8 +144,12 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
132
144
  /**
133
145
  * Improved HTML parser for innerHTML using a stack-based approach
134
146
  */
135
- parseAndAppendHTML(html) {
136
- const ElementFactory2 = require("../../factory/ElementFactory").ElementFactory;
147
+ parseAndAppendHTML(html, targetNode = this) {
148
+ const { ElementFactory, TextBase, Comment } = _ElementBase.dependencies;
149
+ if (!ElementFactory) {
150
+ console.error("SWC DOM Parser: ElementFactory dependency not injected.");
151
+ return;
152
+ }
137
153
  let i = 0;
138
154
  const length = html.length;
139
155
  while (i < length) {
@@ -142,18 +158,14 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
142
158
  let text = html.substring(i).trim();
143
159
  if (text) {
144
160
  text = this.fixBrokenClosingTags(text);
145
- const { TextBase } = require("../TextBase");
146
- const textNode = new TextBase(text, this._ownerDocument);
147
- this.appendChild(textNode);
161
+ if (TextBase) targetNode.appendChild(new TextBase(text, this._ownerDocument));
148
162
  }
149
163
  break;
150
164
  } else if (nextTagStart > i) {
151
165
  let text = html.substring(i, nextTagStart).trim();
152
166
  if (text) {
153
167
  text = this.fixBrokenClosingTags(text);
154
- const { TextBase } = require("../TextBase");
155
- const textNode = new TextBase(text, this._ownerDocument);
156
- this.appendChild(textNode);
168
+ if (TextBase) targetNode.appendChild(new TextBase(text, this._ownerDocument));
157
169
  }
158
170
  }
159
171
  i = nextTagStart;
@@ -164,9 +176,7 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
164
176
  const commentEnd = html.indexOf("-->", i);
165
177
  if (commentEnd !== -1) {
166
178
  const commentContent = html.substring(i + 4, commentEnd);
167
- const { Comment } = require("../Comment");
168
- const commentNode = new Comment(commentContent, this._ownerDocument);
169
- this.appendChild(commentNode);
179
+ if (Comment) targetNode.appendChild(new Comment(commentContent, this._ownerDocument));
170
180
  i = commentEnd + 3;
171
181
  continue;
172
182
  }
@@ -175,17 +185,15 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
175
185
  const parts2 = tagContent.slice(0, -1).trim().split(/\s+/);
176
186
  const tagName2 = parts2[0];
177
187
  const attributeString2 = tagContent.slice(tagName2.length, -1).trim();
178
- const element = ElementFactory2.createElement(tagName2, this._ownerDocument);
188
+ const element = ElementFactory.createElement(tagName2, this._ownerDocument);
179
189
  this.parseAttributes(element, attributeString2);
180
- this.appendChild(element);
190
+ targetNode.appendChild(element);
181
191
  i = tagEnd + 1;
182
192
  continue;
183
193
  }
184
194
  if (tagContent.startsWith("/")) {
185
195
  const closingTagText = `<${tagContent}>`;
186
- const { TextBase } = require("../TextBase");
187
- const textNode = new TextBase(closingTagText, this._ownerDocument);
188
- this.appendChild(textNode);
196
+ if (TextBase) targetNode.appendChild(new TextBase(closingTagText, this._ownerDocument));
189
197
  i = tagEnd + 1;
190
198
  continue;
191
199
  }
@@ -193,44 +201,38 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
193
201
  const tagName = parts[0];
194
202
  const attributeString = tagContent.slice(tagName.length).trim();
195
203
  if (tagName === "style" || tagName === "script") {
196
- const closingTag2 = `</${tagName}>`;
197
- const closingTagIndex2 = html.indexOf(closingTag2, tagEnd + 1);
204
+ const closingTag = `</${tagName}>`;
205
+ const closingTagIndex2 = html.indexOf(closingTag, tagEnd + 1);
198
206
  if (closingTagIndex2 !== -1) {
199
- const element = ElementFactory2.createElement(tagName, this._ownerDocument);
207
+ const element = ElementFactory.createElement(tagName, this._ownerDocument);
200
208
  this.parseAttributes(element, attributeString);
201
209
  const content = html.substring(tagEnd + 1, closingTagIndex2);
202
- if (content) {
203
- const { TextBase } = require("../TextBase");
204
- const textNode = new TextBase(content, this._ownerDocument);
205
- element.appendChild(textNode);
210
+ if (content && TextBase) {
211
+ element.appendChild(new TextBase(content, this._ownerDocument));
206
212
  }
207
- this.appendChild(element);
208
- i = closingTagIndex2 + closingTag2.length;
213
+ targetNode.appendChild(element);
214
+ i = closingTagIndex2 + closingTag.length;
209
215
  continue;
210
216
  }
211
217
  }
212
- const closingTag = `</${tagName}>`;
213
218
  const closingTagIndex = this.findMatchingClosingTag(html, tagName, tagEnd + 1);
214
219
  if (closingTagIndex !== -1) {
215
- const element = ElementFactory2.createElement(tagName, this._ownerDocument);
220
+ const element = ElementFactory.createElement(tagName, this._ownerDocument);
216
221
  this.parseAttributes(element, attributeString);
217
222
  const content = html.substring(tagEnd + 1, closingTagIndex);
218
223
  if (content.trim()) {
219
224
  element.innerHTML = content;
220
225
  }
221
- this.appendChild(element);
222
- i = closingTagIndex + closingTag.length;
226
+ targetNode.appendChild(element);
227
+ i = closingTagIndex + (tagName.length + 3);
223
228
  } else {
224
- const element = ElementFactory2.createElement(tagName, this._ownerDocument);
229
+ const element = ElementFactory.createElement(tagName, this._ownerDocument);
225
230
  this.parseAttributes(element, attributeString);
226
- this.appendChild(element);
231
+ targetNode.appendChild(element);
227
232
  i = tagEnd + 1;
228
233
  }
229
234
  }
230
235
  }
231
- /**
232
- * Find the real end of a tag, considering quoted attributes
233
- */
234
236
  findTagEnd(html, startIndex) {
235
237
  let i = startIndex + 1;
236
238
  let inQuotes = false;
@@ -241,9 +243,7 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
241
243
  if (char === '"' || char === "'") {
242
244
  inQuotes = true;
243
245
  quoteChar = char;
244
- } else if (char === ">") {
245
- return i;
246
- }
246
+ } else if (char === ">") return i;
247
247
  } else {
248
248
  if (char === quoteChar) {
249
249
  inQuotes = false;
@@ -254,16 +254,9 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
254
254
  }
255
255
  return -1;
256
256
  }
257
- /**
258
- * Fix broken closing tags in text content
259
- * Converts patterns like "/div>" to "</div>"
260
- */
261
257
  fixBrokenClosingTags(text) {
262
258
  return text.replace(/\/(\w+)>/g, "</$1>");
263
259
  }
264
- /**
265
- * Find the matching closing tag, accounting for nested tags of the same type
266
- */
267
260
  findMatchingClosingTag(html, tagName, startIndex) {
268
261
  const openTag = `<${tagName}`;
269
262
  const closeTag = `</${tagName}>`;
@@ -272,135 +265,70 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
272
265
  while (i < html.length && depth > 0) {
273
266
  const nextOpen = html.indexOf(openTag, i);
274
267
  const nextClose = html.indexOf(closeTag, i);
275
- if (nextClose === -1) {
276
- return -1;
277
- }
268
+ if (nextClose === -1) return -1;
278
269
  if (nextOpen !== -1 && nextOpen < nextClose) {
279
270
  const afterTag = html.charAt(nextOpen + openTag.length);
280
- if (afterTag === " " || afterTag === ">" || afterTag === "/") {
281
- depth++;
282
- }
271
+ if (afterTag === " " || afterTag === ">" || afterTag === "/") depth++;
283
272
  i = nextOpen + openTag.length;
284
273
  } else {
285
274
  depth--;
286
- if (depth === 0) {
287
- return nextClose;
288
- }
275
+ if (depth === 0) return nextClose;
289
276
  i = nextClose + closeTag.length;
290
277
  }
291
278
  }
292
279
  return -1;
293
280
  }
294
- /**
295
- * Parse attributes from attribute string
296
- */
297
281
  parseAttributes(element, attributeString) {
298
282
  let position = 0;
299
283
  const length = attributeString.length;
300
284
  while (position < length) {
301
- while (position < length && /\s/.test(attributeString[position])) {
302
- position++;
303
- }
285
+ while (position < length && /\s/.test(attributeString[position])) position++;
304
286
  if (position >= length) break;
305
287
  const nameStart = position;
306
- while (position < length && /[\w:-]/.test(attributeString[position])) {
307
- position++;
308
- }
288
+ while (position < length && /[\w:-]/.test(attributeString[position])) position++;
309
289
  if (position === nameStart) {
310
290
  position++;
311
291
  continue;
312
292
  }
313
293
  const name = attributeString.substring(nameStart, position);
314
- while (position < length && /\s/.test(attributeString[position])) {
315
- position++;
316
- }
294
+ while (position < length && /\s/.test(attributeString[position])) position++;
317
295
  let value = "";
318
296
  if (position < length && attributeString[position] === "=") {
319
297
  position++;
320
- while (position < length && /\s/.test(attributeString[position])) {
321
- position++;
322
- }
298
+ while (position < length && /\s/.test(attributeString[position])) position++;
323
299
  if (position < length) {
324
300
  const quote = attributeString[position];
325
301
  if (quote === '"' || quote === "'") {
326
302
  position++;
327
303
  const valueStart = position;
328
- while (position < length && attributeString[position] !== quote) {
329
- position++;
330
- }
304
+ while (position < length && attributeString[position] !== quote) position++;
331
305
  value = attributeString.substring(valueStart, position);
332
- if (position < length && attributeString[position] === quote) {
333
- position++;
334
- }
306
+ if (position < length && attributeString[position] === quote) position++;
335
307
  } else {
336
308
  const valueStart = position;
337
- while (position < length && !/\s/.test(attributeString[position])) {
338
- position++;
339
- }
309
+ while (position < length && !/\s/.test(attributeString[position])) position++;
340
310
  value = attributeString.substring(valueStart, position);
341
311
  }
342
312
  }
343
313
  }
344
- value = this.decodeHTMLEntities(value);
345
- element.setAttribute(name, value);
314
+ element.setAttribute(name, this.decodeHTMLEntities(value));
346
315
  }
347
316
  }
348
- /**
349
- * Escape HTML entities in a string to prevent XSS
350
- */
351
317
  escapeHTMLEntities(str) {
352
- const entityMap = {
353
- "&": "&amp;",
354
- "<": "&lt;",
355
- ">": "&gt;",
356
- '"': "&quot;",
357
- "'": "&#39;"
358
- };
359
- return str.replace(/[&<>"']/g, (char) => {
360
- return entityMap[char] || char;
361
- });
318
+ const entityMap = { "&": "&amp;", "<": "&lt;", ">": "&gt;", '"': "&quot;", "'": "&#39;" };
319
+ return str.replace(/[&<>"']/g, (char) => entityMap[char] || char);
362
320
  }
363
- /**
364
- * Decode HTML entities in a string
365
- */
366
321
  decodeHTMLEntities(str) {
367
- const entityMap = {
368
- "&amp;": "&",
369
- "&lt;": "<",
370
- "&gt;": ">",
371
- "&quot;": '"',
372
- "&#39;": "'",
373
- "&#34;": '"',
374
- "&apos;": "'",
375
- "&copy;": "\xA9",
376
- "&reg;": "\xAE",
377
- "&trade;": "\u2122",
378
- "&nbsp;": " ",
379
- "&hellip;": "\u2026",
380
- "&mdash;": "\u2014",
381
- "&ndash;": "\u2013",
382
- "&lsquo;": "\u2018",
383
- "&rsquo;": "\u2019",
384
- "&ldquo;": '"',
385
- "&rdquo;": '"'
386
- };
322
+ const entityMap = { "&amp;": "&", "&lt;": "<", "&gt;": ">", "&quot;": '"', "&#39;": "'", "&#34;": '"', "&apos;": "'", "&copy;": "\xA9", "&reg;": "\xAE", "&trade;": "\u2122", "&nbsp;": " ", "&hellip;": "\u2026", "&mdash;": "\u2014", "&ndash;": "\u2013", "&lsquo;": "\u2018", "&rsquo;": "\u2019", "&ldquo;": '"', "&rdquo;": '"' };
387
323
  return str.replace(/&[a-zA-Z0-9#]+;/g, (entity) => {
388
- if (entityMap[entity]) {
389
- return entityMap[entity];
390
- }
324
+ if (entityMap[entity]) return entityMap[entity];
391
325
  if (entity.startsWith("&#") && entity.endsWith(";")) {
392
- const numStr = entity.slice(2, -1);
393
- const num = parseInt(numStr, 10);
394
- if (!isNaN(num)) {
395
- return String.fromCharCode(num);
396
- }
326
+ const num = parseInt(entity.slice(2, -1), 10);
327
+ return isNaN(num) ? entity : String.fromCharCode(num);
397
328
  }
398
329
  if (entity.startsWith("&#x") && entity.endsWith(";")) {
399
- const hexStr = entity.slice(3, -1);
400
- const num = parseInt(hexStr, 16);
401
- if (!isNaN(num)) {
402
- return String.fromCharCode(num);
403
- }
330
+ const num = parseInt(entity.slice(3, -1), 16);
331
+ return isNaN(num) ? entity : String.fromCharCode(num);
404
332
  }
405
333
  return entity;
406
334
  });
@@ -409,11 +337,7 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
409
337
  const attrs = Array.from(this._attributes.entries()).map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${value.replace(/"/g, "&quot;")}"`).join("");
410
338
  const selfClosingTags = ["img", "input", "br", "hr", "meta", "link", "area", "base", "col", "embed", "source", "track", "wbr"];
411
339
  const isSelfClosing = selfClosingTags.includes(this.tagName.toLowerCase());
412
- if (isSelfClosing) {
413
- return `<${this.tagName.toLowerCase()}${attrs} />`;
414
- } else {
415
- return `<${this.tagName.toLowerCase()}${attrs}>${this.innerHTML}</${this.tagName.toLowerCase()}>`;
416
- }
340
+ return isSelfClosing ? `<${this.tagName.toLowerCase()}${attrs} />` : `<${this.tagName.toLowerCase()}${attrs}>${this.innerHTML}</${this.tagName.toLowerCase()}>`;
417
341
  }
418
342
  get namespaceURI() {
419
343
  return "http://www.w3.org/1999/xhtml";
@@ -421,28 +345,20 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
421
345
  get prefix() {
422
346
  return null;
423
347
  }
424
- // Attribute methods
425
348
  getAttribute(qualifiedName) {
426
- const value = this._attributes.get(qualifiedName.toLowerCase());
427
- return value !== void 0 ? value : null;
349
+ return this._attributes.get(qualifiedName.toLowerCase()) ?? null;
428
350
  }
429
351
  setAttribute(qualifiedName, value) {
430
352
  const name = qualifiedName.toLowerCase();
431
353
  this._attributes.set(name, value);
432
- if (name === "id") {
433
- this._id = value;
434
- } else if (name === "class") {
435
- this._className = value;
436
- }
354
+ if (name === "id") this._id = value;
355
+ else if (name === "class") this._className = value;
437
356
  }
438
357
  removeAttribute(qualifiedName) {
439
358
  const name = qualifiedName.toLowerCase();
440
359
  this._attributes.delete(name);
441
- if (name === "id") {
442
- this._id = "";
443
- } else if (name === "class") {
444
- this._className = "";
445
- }
360
+ if (name === "id") this._id = "";
361
+ else if (name === "class") this._className = "";
446
362
  }
447
363
  hasAttribute(qualifiedName) {
448
364
  return this._attributes.has(qualifiedName.toLowerCase());
@@ -450,82 +366,74 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
450
366
  closest(selectors) {
451
367
  let element = this;
452
368
  while (element) {
453
- if (element.matches && element.matches(selectors)) {
454
- return element;
455
- }
369
+ if (element.matches && element.matches(selectors)) return element;
456
370
  element = element.parentElement;
457
371
  }
458
372
  return null;
459
373
  }
460
- /**
461
- * Returns true if the element would be selected by the specified CSS selector; otherwise, returns false.
462
- *
463
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Element/matches)
464
- */
465
374
  matches(selectors) {
466
375
  return import_CSSSelector.CSSSelector.matches(this, selectors);
467
376
  }
468
- // ChildNode methods are inherited from ParentNodeBase -> ChildNodeBase
469
- // Additional Element properties and methods - Not implemented yet
470
377
  get attributes() {
471
378
  return new NamedNodeMapImpl(this._attributes);
472
379
  }
473
380
  get clientHeight() {
474
- throw new Error("Element.clientHeight is not implemented yet");
381
+ return 0;
475
382
  }
476
383
  get clientLeft() {
477
- throw new Error("Element.clientLeft is not implemented yet");
384
+ return 0;
478
385
  }
479
386
  get clientTop() {
480
- throw new Error("Element.clientTop is not implemented yet");
387
+ return 0;
481
388
  }
482
389
  get clientWidth() {
483
- throw new Error("Element.clientWidth is not implemented yet");
390
+ return 0;
484
391
  }
485
392
  get currentCSSZoom() {
486
- throw new Error("Element.currentCSSZoom is not implemented yet");
393
+ return 1;
487
394
  }
488
395
  get part() {
489
- throw new Error("Element.part is not implemented yet");
396
+ return { length: 0, value: "", add: () => {
397
+ }, remove: () => {
398
+ }, contains: () => false, toggle: () => false, replace: () => false, item: () => null };
490
399
  }
491
400
  get scrollHeight() {
492
- throw new Error("Element.scrollHeight is not implemented yet");
401
+ return 0;
493
402
  }
494
403
  get scrollLeft() {
495
- throw new Error("Element.scrollLeft is not implemented yet");
404
+ return 0;
496
405
  }
497
- set scrollLeft(value) {
498
- throw new Error("Element.scrollLeft setter is not implemented yet");
406
+ set scrollLeft(_) {
499
407
  }
500
408
  get scrollTop() {
501
- throw new Error("Element.scrollTop is not implemented yet");
409
+ return 0;
502
410
  }
503
- set scrollTop(value) {
504
- throw new Error("Element.scrollTop setter is not implemented yet");
411
+ set scrollTop(_) {
505
412
  }
506
413
  get scrollWidth() {
507
- throw new Error("Element.scrollWidth is not implemented yet");
414
+ return 0;
508
415
  }
509
416
  get shadowRoot() {
510
- throw new Error("Element.shadowRoot is not implemented yet");
417
+ return this._shadowRoot;
511
418
  }
512
419
  get slot() {
513
- throw new Error("Element.slot is not implemented yet");
420
+ return this.getAttribute("slot") || "";
514
421
  }
515
422
  set slot(value) {
516
- throw new Error("Element.slot setter is not implemented yet");
423
+ this.setAttribute("slot", value);
517
424
  }
518
- // Methods - Not implemented yet
519
425
  attachShadow(init) {
520
- throw new Error("Element.attachShadow() is not implemented yet");
426
+ if (this._shadowRoot) throw new DOMException("Shadow root already attached", "NotSupportedError");
427
+ this._shadowRoot = new import_ShadowRootBase.ShadowRootBase(this, init, this._ownerDocument);
428
+ return this._shadowRoot;
521
429
  }
522
- checkVisibility(options) {
523
- throw new Error("Element.checkVisibility() is not implemented yet");
430
+ checkVisibility(_options) {
431
+ return true;
524
432
  }
525
433
  computedStyleMap() {
526
- throw new Error("Element.computedStyleMap() is not implemented yet");
434
+ return /* @__PURE__ */ new Map();
527
435
  }
528
- getAttributeNS(namespace, localName) {
436
+ getAttributeNS(_ns, localName) {
529
437
  return this.getAttribute(localName);
530
438
  }
531
439
  getAttributeNames() {
@@ -533,29 +441,17 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
533
441
  }
534
442
  getAttributeNode(qualifiedName) {
535
443
  const value = this.getAttribute(qualifiedName);
536
- if (value !== null) {
537
- return new AttrImpl(qualifiedName, value);
538
- }
539
- return null;
444
+ return value !== null ? new AttrImpl(qualifiedName, value) : null;
540
445
  }
541
- getAttributeNodeNS(namespace, localName) {
446
+ getAttributeNodeNS(_ns, localName) {
542
447
  return this.getAttributeNode(localName);
543
448
  }
544
449
  getBoundingClientRect() {
545
- return {
546
- bottom: 0,
547
- height: 0,
548
- left: 0,
549
- right: 0,
550
- top: 0,
551
- width: 0,
552
- x: 0,
553
- y: 0,
554
- toJSON: () => ({})
555
- };
450
+ return { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0, toJSON: () => ({}) };
556
451
  }
557
452
  getClientRects() {
558
- throw new Error("Element.getClientRects() is not implemented yet");
453
+ return { length: 0, item: () => null, [Symbol.iterator]: function* () {
454
+ } };
559
455
  }
560
456
  getElementsByClassName(classNames) {
561
457
  const result = [];
@@ -565,55 +461,37 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
565
461
  return classes.every((cls) => elementClasses.includes(cls));
566
462
  };
567
463
  const traverse = (node) => {
568
- if (node.nodeType === import_Node.ELEMENT_NODE) {
569
- const element = node;
570
- if (hasAllClasses(element, classNameList)) {
571
- result.push(element);
572
- }
573
- }
574
- for (let i = 0; i < node.childNodes.length; i++) {
575
- traverse(node.childNodes[i]);
576
- }
464
+ if (node.nodeType === import_Node.ELEMENT_NODE && hasAllClasses(node, classNameList)) result.push(node);
465
+ for (let i = 0; i < node.childNodes.length; i++) traverse(node.childNodes[i]);
577
466
  };
578
- for (let i = 0; i < this.childNodes.length; i++) {
579
- traverse(this.childNodes[i]);
580
- }
581
- return new import_collection.HTMLCollection(result);
467
+ for (let i = 0; i < this.childNodes.length; i++) traverse(this.childNodes[i]);
468
+ return new import_collection.HTMLCollectionOfImp(result);
582
469
  }
583
470
  getElementsByTagName(qualifiedName) {
584
471
  const result = [];
585
472
  const tagName = qualifiedName.toLowerCase();
586
473
  const isWildcard = tagName === "*";
587
474
  const traverse = (node) => {
588
- if (node.nodeType === import_Node.ELEMENT_NODE) {
589
- const element = node;
590
- if (isWildcard || element.localName === tagName) {
591
- result.push(element);
592
- }
593
- }
594
- for (let i = 0; i < node.childNodes.length; i++) {
595
- traverse(node.childNodes[i]);
596
- }
475
+ if (node.nodeType === import_Node.ELEMENT_NODE && (isWildcard || node.localName === tagName)) result.push(node);
476
+ for (let i = 0; i < node.childNodes.length; i++) traverse(node.childNodes[i]);
597
477
  };
598
- for (let i = 0; i < this.childNodes.length; i++) {
599
- traverse(this.childNodes[i]);
600
- }
601
- return new import_collection.HTMLCollection(result);
478
+ for (let i = 0; i < this.childNodes.length; i++) traverse(this.childNodes[i]);
479
+ return new import_collection.HTMLCollectionImp(result);
602
480
  }
603
- getElementsByTagNameNS(namespace, localName) {
481
+ getElementsByTagNameNS(_ns, localName) {
604
482
  return this.getElementsByTagName(localName);
605
483
  }
606
- getHTML(options) {
607
- throw new Error("Element.getHTML() is not implemented yet");
484
+ getHTML(_options) {
485
+ return this.outerHTML;
608
486
  }
609
- hasAttributeNS(namespace, localName) {
487
+ hasAttributeNS(_ns, localName) {
610
488
  return this.hasAttribute(localName);
611
489
  }
612
490
  hasAttributes() {
613
491
  return this._attributes.size > 0;
614
492
  }
615
- hasPointerCapture(pointerId) {
616
- throw new Error("Element.hasPointerCapture() is not implemented yet");
493
+ hasPointerCapture(_id) {
494
+ return false;
617
495
  }
618
496
  insertAdjacentElement(where, element) {
619
497
  const position = where.toLowerCase();
@@ -625,22 +503,16 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
625
503
  }
626
504
  return null;
627
505
  case "afterbegin":
628
- if (this.firstChild) {
629
- this.insertBefore(element, this.firstChild);
630
- } else {
631
- this.appendChild(element);
632
- }
506
+ if (this.firstChild) this.insertBefore(element, this.firstChild);
507
+ else this.appendChild(element);
633
508
  return element;
634
509
  case "beforeend":
635
510
  this.appendChild(element);
636
511
  return element;
637
512
  case "afterend":
638
513
  if (this.parentNode) {
639
- if (this.nextSibling) {
640
- this.parentNode.insertBefore(element, this.nextSibling);
641
- } else {
642
- this.parentNode.appendChild(element);
643
- }
514
+ if (this.nextSibling) this.parentNode.insertBefore(element, this.nextSibling);
515
+ else this.parentNode.appendChild(element);
644
516
  return element;
645
517
  }
646
518
  return null;
@@ -653,32 +525,22 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
653
525
  const tempDiv = this._ownerDocument.createElement("div");
654
526
  tempDiv.innerHTML = html;
655
527
  const fragment = this._ownerDocument.createDocumentFragment();
656
- while (tempDiv.firstChild) {
657
- fragment.appendChild(tempDiv.firstChild);
658
- }
528
+ while (tempDiv.firstChild) fragment.appendChild(tempDiv.firstChild);
659
529
  switch (pos) {
660
530
  case "beforebegin":
661
- if (this.parentNode) {
662
- this.parentNode.insertBefore(fragment, this);
663
- }
531
+ if (this.parentNode) this.parentNode.insertBefore(fragment, this);
664
532
  break;
665
533
  case "afterbegin":
666
- if (this.firstChild) {
667
- this.insertBefore(fragment, this.firstChild);
668
- } else {
669
- this.appendChild(fragment);
670
- }
534
+ if (this.firstChild) this.insertBefore(fragment, this.firstChild);
535
+ else this.appendChild(fragment);
671
536
  break;
672
537
  case "beforeend":
673
538
  this.appendChild(fragment);
674
539
  break;
675
540
  case "afterend":
676
541
  if (this.parentNode) {
677
- if (this.nextSibling) {
678
- this.parentNode.insertBefore(fragment, this.nextSibling);
679
- } else {
680
- this.parentNode.appendChild(fragment);
681
- }
542
+ if (this.nextSibling) this.parentNode.insertBefore(fragment, this.nextSibling);
543
+ else this.parentNode.appendChild(fragment);
682
544
  }
683
545
  break;
684
546
  default:
@@ -690,36 +552,28 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
690
552
  const textNode = this._ownerDocument.createTextNode(data);
691
553
  switch (position) {
692
554
  case "beforebegin":
693
- if (this.parentNode) {
694
- this.parentNode.insertBefore(textNode, this);
695
- }
555
+ if (this.parentNode) this.parentNode.insertBefore(textNode, this);
696
556
  break;
697
557
  case "afterbegin":
698
- if (this.firstChild) {
699
- this.insertBefore(textNode, this.firstChild);
700
- } else {
701
- this.appendChild(textNode);
702
- }
558
+ if (this.firstChild) this.insertBefore(textNode, this.firstChild);
559
+ else this.appendChild(textNode);
703
560
  break;
704
561
  case "beforeend":
705
562
  this.appendChild(textNode);
706
563
  break;
707
564
  case "afterend":
708
565
  if (this.parentNode) {
709
- if (this.nextSibling) {
710
- this.parentNode.insertBefore(textNode, this.nextSibling);
711
- } else {
712
- this.parentNode.appendChild(textNode);
713
- }
566
+ if (this.nextSibling) this.parentNode.insertBefore(textNode, this.nextSibling);
567
+ else this.parentNode.appendChild(textNode);
714
568
  }
715
569
  break;
716
570
  default:
717
571
  throw new DOMException(`Invalid position: ${where}`, "SyntaxError");
718
572
  }
719
573
  }
720
- releasePointerCapture(pointerId) {
574
+ releasePointerCapture(_id) {
721
575
  }
722
- removeAttributeNS(namespace, localName) {
576
+ removeAttributeNS(_ns, localName) {
723
577
  this.removeAttribute(localName);
724
578
  }
725
579
  removeAttributeNode(attr) {
@@ -730,21 +584,21 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
730
584
  }
731
585
  throw new DOMException("The attribute node is not an attribute of this element", "NotFoundError");
732
586
  }
733
- requestFullscreen(options) {
734
- throw new Error("Element.requestFullscreen() is not implemented yet");
587
+ requestFullscreen(_opt) {
588
+ return Promise.resolve();
735
589
  }
736
- requestPointerLock(options) {
737
- throw new Error("Element.requestPointerLock() is not implemented yet");
590
+ requestPointerLock(_opt) {
591
+ return Promise.resolve();
738
592
  }
739
- scroll(optionsOrX, y) {
593
+ scroll(_x, _y) {
740
594
  }
741
- scrollBy(optionsOrX, y) {
595
+ scrollBy(_x, _y) {
742
596
  }
743
- scrollIntoView(arg) {
597
+ scrollIntoView(_arg) {
744
598
  }
745
- scrollTo(optionsOrX, y) {
599
+ scrollTo(_x, _y) {
746
600
  }
747
- setAttributeNS(namespace, qualifiedName, value) {
601
+ setAttributeNS(_ns, qualifiedName, value) {
748
602
  this.setAttribute(qualifiedName, value);
749
603
  }
750
604
  setAttributeNode(attr) {
@@ -756,8 +610,9 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
756
610
  return this.setAttributeNode(attr);
757
611
  }
758
612
  setHTMLUnsafe(html) {
613
+ this.innerHTML = html;
759
614
  }
760
- setPointerCapture(pointerId) {
615
+ setPointerCapture(_id) {
761
616
  }
762
617
  toggleAttribute(qualifiedName, force) {
763
618
  const hasAttr = this.hasAttribute(qualifiedName);
@@ -771,31 +626,31 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
771
626
  return hasAttr;
772
627
  }
773
628
  webkitMatchesSelector(selectors) {
774
- return false;
629
+ return this.matches(selectors);
775
630
  }
776
- // EventTarget methods - Not implemented yet
777
631
  addEventListener(type, listener, options) {
778
632
  }
779
633
  removeEventListener(type, listener, options) {
780
634
  }
781
- dispatchEvent(event) {
635
+ dispatchEvent(_event) {
782
636
  return true;
783
637
  }
784
638
  cloneNode(deep) {
785
- const clone = import_ElementFactory.ElementFactory.createElement(this.tagName, this._ownerDocument);
786
- for (const [name, value] of this._attributes) {
787
- clone.setAttribute(name, value);
788
- }
639
+ const { ElementFactory } = _ElementBase.dependencies;
640
+ const clone = ElementFactory.createElement(this.tagName, this._ownerDocument);
641
+ for (const [name, value] of this._attributes) clone.setAttribute(name, value);
789
642
  if (deep) {
790
- for (const child of this._childNodesInternal) {
791
- if (child && "cloneNode" in child) {
792
- clone.appendChild(child.cloneNode(true));
793
- }
794
- }
643
+ for (const child of this._childNodesInternal) if (child && "cloneNode" in child) clone.appendChild(child.cloneNode(true));
795
644
  }
796
645
  return clone;
797
646
  }
798
- }
647
+ };
648
+ /**
649
+ * Static dependencies to break circular references without using 'require' or 'global'.
650
+ * These are injected by the main DomParser entry point.
651
+ */
652
+ _ElementBase.dependencies = {};
653
+ let ElementBase = _ElementBase;
799
654
  class DOMTokenListImpl {
800
655
  constructor(element) {
801
656
  this.element = element;
@@ -811,16 +666,12 @@ class DOMTokenListImpl {
811
666
  }
812
667
  add(...tokens) {
813
668
  const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
814
- for (const token of tokens) {
815
- classes.add(token);
816
- }
669
+ tokens.forEach((t) => classes.add(t));
817
670
  this.element.className = Array.from(classes).join(" ");
818
671
  }
819
672
  remove(...tokens) {
820
673
  const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
821
- for (const token of tokens) {
822
- classes.delete(token);
823
- }
674
+ tokens.forEach((t) => classes.delete(t));
824
675
  this.element.className = Array.from(classes).join(" ");
825
676
  }
826
677
  contains(token) {
@@ -874,16 +725,12 @@ class NamedNodeMapImpl {
874
725
  const value = this.attributes.get(qualifiedName.toLowerCase());
875
726
  return value !== void 0 ? new AttrImpl(qualifiedName, value) : null;
876
727
  }
877
- getNamedItemNS(namespace, localName) {
728
+ getNamedItemNS(_ns, localName) {
878
729
  return this.getNamedItem(localName);
879
730
  }
880
731
  item(index) {
881
732
  const keys = Array.from(this.attributes.keys());
882
- if (index >= 0 && index < keys.length) {
883
- const key = keys[index];
884
- const value = this.attributes.get(key);
885
- return new AttrImpl(key, value);
886
- }
733
+ if (index >= 0 && index < keys.length) return new AttrImpl(keys[index], this.attributes.get(keys[index]));
887
734
  return null;
888
735
  }
889
736
  removeNamedItem(qualifiedName) {
@@ -894,7 +741,7 @@ class NamedNodeMapImpl {
894
741
  }
895
742
  throw new DOMException("The attribute is not found", "NotFoundError");
896
743
  }
897
- removeNamedItemNS(namespace, localName) {
744
+ removeNamedItemNS(_ns, localName) {
898
745
  return this.removeNamedItem(localName);
899
746
  }
900
747
  setNamedItem(attr) {
@@ -905,42 +752,27 @@ class NamedNodeMapImpl {
905
752
  setNamedItemNS(attr) {
906
753
  return this.setNamedItem(attr);
907
754
  }
908
- // Iterator implementation
909
755
  *[Symbol.iterator]() {
910
- const keys = Array.from(this.attributes.keys());
911
- for (const key of keys) {
912
- const value = this.attributes.get(key);
913
- yield new AttrImpl(key, value);
914
- }
756
+ for (const [key, value] of this.attributes) yield new AttrImpl(key, value);
915
757
  }
916
- // Additional iterator methods for compatibility
917
758
  keys() {
918
759
  return this.attributes.keys();
919
760
  }
920
761
  values() {
921
762
  const self = this;
922
763
  return function* () {
923
- for (const [key, value] of self.attributes) {
924
- yield new AttrImpl(key, value);
925
- }
764
+ for (const [key, value] of self.attributes) yield new AttrImpl(key, value);
926
765
  }();
927
766
  }
928
767
  entries() {
929
768
  const self = this;
930
769
  return function* () {
931
- for (const [key, value] of self.attributes) {
932
- yield [key, new AttrImpl(key, value)];
933
- }
770
+ for (const [key, value] of self.attributes) yield [key, new AttrImpl(key, value)];
934
771
  }();
935
772
  }
936
- // forEach method for compatibility
937
773
  forEach(callback, thisArg) {
938
774
  const keys = Array.from(this.attributes.keys());
939
- keys.forEach((key, index) => {
940
- const value = this.attributes.get(key);
941
- const attr = new AttrImpl(key, value);
942
- callback.call(thisArg, attr, index, this);
943
- });
775
+ keys.forEach((key, index) => callback.call(thisArg, new AttrImpl(key, this.attributes.get(key)), index, this));
944
776
  }
945
777
  }
946
778
  //# sourceMappingURL=ElementBase.js.map