@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
@@ -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) {
@@ -110,13 +119,16 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
110
119
  */
111
120
  generateChildElementHTML(element) {
112
121
  const tagName = element.tagName.toLowerCase();
113
- const attrs = Array.from(element._attributes?.entries() || []).map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${value.replace(/"/g, """)}"`).join("");
122
+ const attrs = Array.from(element._attributes?.entries() || []).map(([name, value]) => value === "" ? ` ${name}` : ` ${name}="${String(value).replace(/"/g, """)}"`).join("");
114
123
  const selfClosingTags = ["img", "input", "br", "hr", "meta", "link", "area", "base", "col", "embed", "source", "track", "wbr"];
115
124
  const isSelfClosing = selfClosingTags.includes(tagName);
116
125
  if (isSelfClosing) {
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,19 +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
- throw new Error("Element.getBoundingClientRect() is not implemented yet");
450
+ return { bottom: 0, height: 0, left: 0, right: 0, top: 0, width: 0, x: 0, y: 0, toJSON: () => ({}) };
546
451
  }
547
452
  getClientRects() {
548
- throw new Error("Element.getClientRects() is not implemented yet");
453
+ return { length: 0, item: () => null, [Symbol.iterator]: function* () {
454
+ } };
549
455
  }
550
456
  getElementsByClassName(classNames) {
551
457
  const result = [];
@@ -555,55 +461,37 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
555
461
  return classes.every((cls) => elementClasses.includes(cls));
556
462
  };
557
463
  const traverse = (node) => {
558
- if (node.nodeType === import_Node.ELEMENT_NODE) {
559
- const element = node;
560
- if (hasAllClasses(element, classNameList)) {
561
- result.push(element);
562
- }
563
- }
564
- for (let i = 0; i < node.childNodes.length; i++) {
565
- traverse(node.childNodes[i]);
566
- }
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]);
567
466
  };
568
- for (let i = 0; i < this.childNodes.length; i++) {
569
- traverse(this.childNodes[i]);
570
- }
571
- 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);
572
469
  }
573
470
  getElementsByTagName(qualifiedName) {
574
471
  const result = [];
575
472
  const tagName = qualifiedName.toLowerCase();
576
473
  const isWildcard = tagName === "*";
577
474
  const traverse = (node) => {
578
- if (node.nodeType === import_Node.ELEMENT_NODE) {
579
- const element = node;
580
- if (isWildcard || element.localName === tagName) {
581
- result.push(element);
582
- }
583
- }
584
- for (let i = 0; i < node.childNodes.length; i++) {
585
- traverse(node.childNodes[i]);
586
- }
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]);
587
477
  };
588
- for (let i = 0; i < this.childNodes.length; i++) {
589
- traverse(this.childNodes[i]);
590
- }
591
- 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);
592
480
  }
593
- getElementsByTagNameNS(namespace, localName) {
481
+ getElementsByTagNameNS(_ns, localName) {
594
482
  return this.getElementsByTagName(localName);
595
483
  }
596
- getHTML(options) {
597
- throw new Error("Element.getHTML() is not implemented yet");
484
+ getHTML(_options) {
485
+ return this.outerHTML;
598
486
  }
599
- hasAttributeNS(namespace, localName) {
487
+ hasAttributeNS(_ns, localName) {
600
488
  return this.hasAttribute(localName);
601
489
  }
602
490
  hasAttributes() {
603
491
  return this._attributes.size > 0;
604
492
  }
605
- hasPointerCapture(pointerId) {
606
- throw new Error("Element.hasPointerCapture() is not implemented yet");
493
+ hasPointerCapture(_id) {
494
+ return false;
607
495
  }
608
496
  insertAdjacentElement(where, element) {
609
497
  const position = where.toLowerCase();
@@ -615,22 +503,16 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
615
503
  }
616
504
  return null;
617
505
  case "afterbegin":
618
- if (this.firstChild) {
619
- this.insertBefore(element, this.firstChild);
620
- } else {
621
- this.appendChild(element);
622
- }
506
+ if (this.firstChild) this.insertBefore(element, this.firstChild);
507
+ else this.appendChild(element);
623
508
  return element;
624
509
  case "beforeend":
625
510
  this.appendChild(element);
626
511
  return element;
627
512
  case "afterend":
628
513
  if (this.parentNode) {
629
- if (this.nextSibling) {
630
- this.parentNode.insertBefore(element, this.nextSibling);
631
- } else {
632
- this.parentNode.appendChild(element);
633
- }
514
+ if (this.nextSibling) this.parentNode.insertBefore(element, this.nextSibling);
515
+ else this.parentNode.appendChild(element);
634
516
  return element;
635
517
  }
636
518
  return null;
@@ -643,32 +525,22 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
643
525
  const tempDiv = this._ownerDocument.createElement("div");
644
526
  tempDiv.innerHTML = html;
645
527
  const fragment = this._ownerDocument.createDocumentFragment();
646
- while (tempDiv.firstChild) {
647
- fragment.appendChild(tempDiv.firstChild);
648
- }
528
+ while (tempDiv.firstChild) fragment.appendChild(tempDiv.firstChild);
649
529
  switch (pos) {
650
530
  case "beforebegin":
651
- if (this.parentNode) {
652
- this.parentNode.insertBefore(fragment, this);
653
- }
531
+ if (this.parentNode) this.parentNode.insertBefore(fragment, this);
654
532
  break;
655
533
  case "afterbegin":
656
- if (this.firstChild) {
657
- this.insertBefore(fragment, this.firstChild);
658
- } else {
659
- this.appendChild(fragment);
660
- }
534
+ if (this.firstChild) this.insertBefore(fragment, this.firstChild);
535
+ else this.appendChild(fragment);
661
536
  break;
662
537
  case "beforeend":
663
538
  this.appendChild(fragment);
664
539
  break;
665
540
  case "afterend":
666
541
  if (this.parentNode) {
667
- if (this.nextSibling) {
668
- this.parentNode.insertBefore(fragment, this.nextSibling);
669
- } else {
670
- this.parentNode.appendChild(fragment);
671
- }
542
+ if (this.nextSibling) this.parentNode.insertBefore(fragment, this.nextSibling);
543
+ else this.parentNode.appendChild(fragment);
672
544
  }
673
545
  break;
674
546
  default:
@@ -680,36 +552,28 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
680
552
  const textNode = this._ownerDocument.createTextNode(data);
681
553
  switch (position) {
682
554
  case "beforebegin":
683
- if (this.parentNode) {
684
- this.parentNode.insertBefore(textNode, this);
685
- }
555
+ if (this.parentNode) this.parentNode.insertBefore(textNode, this);
686
556
  break;
687
557
  case "afterbegin":
688
- if (this.firstChild) {
689
- this.insertBefore(textNode, this.firstChild);
690
- } else {
691
- this.appendChild(textNode);
692
- }
558
+ if (this.firstChild) this.insertBefore(textNode, this.firstChild);
559
+ else this.appendChild(textNode);
693
560
  break;
694
561
  case "beforeend":
695
562
  this.appendChild(textNode);
696
563
  break;
697
564
  case "afterend":
698
565
  if (this.parentNode) {
699
- if (this.nextSibling) {
700
- this.parentNode.insertBefore(textNode, this.nextSibling);
701
- } else {
702
- this.parentNode.appendChild(textNode);
703
- }
566
+ if (this.nextSibling) this.parentNode.insertBefore(textNode, this.nextSibling);
567
+ else this.parentNode.appendChild(textNode);
704
568
  }
705
569
  break;
706
570
  default:
707
571
  throw new DOMException(`Invalid position: ${where}`, "SyntaxError");
708
572
  }
709
573
  }
710
- releasePointerCapture(pointerId) {
574
+ releasePointerCapture(_id) {
711
575
  }
712
- removeAttributeNS(namespace, localName) {
576
+ removeAttributeNS(_ns, localName) {
713
577
  this.removeAttribute(localName);
714
578
  }
715
579
  removeAttributeNode(attr) {
@@ -720,21 +584,21 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
720
584
  }
721
585
  throw new DOMException("The attribute node is not an attribute of this element", "NotFoundError");
722
586
  }
723
- requestFullscreen(options) {
724
- throw new Error("Element.requestFullscreen() is not implemented yet");
587
+ requestFullscreen(_opt) {
588
+ return Promise.resolve();
725
589
  }
726
- requestPointerLock(options) {
727
- throw new Error("Element.requestPointerLock() is not implemented yet");
590
+ requestPointerLock(_opt) {
591
+ return Promise.resolve();
728
592
  }
729
- scroll(optionsOrX, y) {
593
+ scroll(_x, _y) {
730
594
  }
731
- scrollBy(optionsOrX, y) {
595
+ scrollBy(_x, _y) {
732
596
  }
733
- scrollIntoView(arg) {
597
+ scrollIntoView(_arg) {
734
598
  }
735
- scrollTo(optionsOrX, y) {
599
+ scrollTo(_x, _y) {
736
600
  }
737
- setAttributeNS(namespace, qualifiedName, value) {
601
+ setAttributeNS(_ns, qualifiedName, value) {
738
602
  this.setAttribute(qualifiedName, value);
739
603
  }
740
604
  setAttributeNode(attr) {
@@ -746,8 +610,9 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
746
610
  return this.setAttributeNode(attr);
747
611
  }
748
612
  setHTMLUnsafe(html) {
613
+ this.innerHTML = html;
749
614
  }
750
- setPointerCapture(pointerId) {
615
+ setPointerCapture(_id) {
751
616
  }
752
617
  toggleAttribute(qualifiedName, force) {
753
618
  const hasAttr = this.hasAttribute(qualifiedName);
@@ -761,31 +626,31 @@ class ElementBase extends import_ParentNodeBase.ParentNodeBase {
761
626
  return hasAttr;
762
627
  }
763
628
  webkitMatchesSelector(selectors) {
764
- return false;
629
+ return this.matches(selectors);
765
630
  }
766
- // EventTarget methods - Not implemented yet
767
631
  addEventListener(type, listener, options) {
768
632
  }
769
633
  removeEventListener(type, listener, options) {
770
634
  }
771
- dispatchEvent(event) {
635
+ dispatchEvent(_event) {
772
636
  return true;
773
637
  }
774
638
  cloneNode(deep) {
775
- const clone = import_ElementFactory.ElementFactory.createElement(this.tagName, this._ownerDocument);
776
- for (const [name, value] of this._attributes) {
777
- clone.setAttribute(name, value);
778
- }
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);
779
642
  if (deep) {
780
- for (const child of this._childNodesInternal) {
781
- if (child && "cloneNode" in child) {
782
- clone.appendChild(child.cloneNode(true));
783
- }
784
- }
643
+ for (const child of this._childNodesInternal) if (child && "cloneNode" in child) clone.appendChild(child.cloneNode(true));
785
644
  }
786
645
  return clone;
787
646
  }
788
- }
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;
789
654
  class DOMTokenListImpl {
790
655
  constructor(element) {
791
656
  this.element = element;
@@ -801,16 +666,12 @@ class DOMTokenListImpl {
801
666
  }
802
667
  add(...tokens) {
803
668
  const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
804
- for (const token of tokens) {
805
- classes.add(token);
806
- }
669
+ tokens.forEach((t) => classes.add(t));
807
670
  this.element.className = Array.from(classes).join(" ");
808
671
  }
809
672
  remove(...tokens) {
810
673
  const classes = new Set(this.element.className.split(/\s+/).filter((c) => c.length > 0));
811
- for (const token of tokens) {
812
- classes.delete(token);
813
- }
674
+ tokens.forEach((t) => classes.delete(t));
814
675
  this.element.className = Array.from(classes).join(" ");
815
676
  }
816
677
  contains(token) {
@@ -864,16 +725,12 @@ class NamedNodeMapImpl {
864
725
  const value = this.attributes.get(qualifiedName.toLowerCase());
865
726
  return value !== void 0 ? new AttrImpl(qualifiedName, value) : null;
866
727
  }
867
- getNamedItemNS(namespace, localName) {
728
+ getNamedItemNS(_ns, localName) {
868
729
  return this.getNamedItem(localName);
869
730
  }
870
731
  item(index) {
871
732
  const keys = Array.from(this.attributes.keys());
872
- if (index >= 0 && index < keys.length) {
873
- const key = keys[index];
874
- const value = this.attributes.get(key);
875
- return new AttrImpl(key, value);
876
- }
733
+ if (index >= 0 && index < keys.length) return new AttrImpl(keys[index], this.attributes.get(keys[index]));
877
734
  return null;
878
735
  }
879
736
  removeNamedItem(qualifiedName) {
@@ -884,7 +741,7 @@ class NamedNodeMapImpl {
884
741
  }
885
742
  throw new DOMException("The attribute is not found", "NotFoundError");
886
743
  }
887
- removeNamedItemNS(namespace, localName) {
744
+ removeNamedItemNS(_ns, localName) {
888
745
  return this.removeNamedItem(localName);
889
746
  }
890
747
  setNamedItem(attr) {
@@ -895,42 +752,27 @@ class NamedNodeMapImpl {
895
752
  setNamedItemNS(attr) {
896
753
  return this.setNamedItem(attr);
897
754
  }
898
- // Iterator implementation
899
755
  *[Symbol.iterator]() {
900
- const keys = Array.from(this.attributes.keys());
901
- for (const key of keys) {
902
- const value = this.attributes.get(key);
903
- yield new AttrImpl(key, value);
904
- }
756
+ for (const [key, value] of this.attributes) yield new AttrImpl(key, value);
905
757
  }
906
- // Additional iterator methods for compatibility
907
758
  keys() {
908
759
  return this.attributes.keys();
909
760
  }
910
761
  values() {
911
762
  const self = this;
912
763
  return function* () {
913
- for (const [key, value] of self.attributes) {
914
- yield new AttrImpl(key, value);
915
- }
764
+ for (const [key, value] of self.attributes) yield new AttrImpl(key, value);
916
765
  }();
917
766
  }
918
767
  entries() {
919
768
  const self = this;
920
769
  return function* () {
921
- for (const [key, value] of self.attributes) {
922
- yield [key, new AttrImpl(key, value)];
923
- }
770
+ for (const [key, value] of self.attributes) yield [key, new AttrImpl(key, value)];
924
771
  }();
925
772
  }
926
- // forEach method for compatibility
927
773
  forEach(callback, thisArg) {
928
774
  const keys = Array.from(this.attributes.keys());
929
- keys.forEach((key, index) => {
930
- const value = this.attributes.get(key);
931
- const attr = new AttrImpl(key, value);
932
- callback.call(thisArg, attr, index, this);
933
- });
775
+ keys.forEach((key, index) => callback.call(thisArg, new AttrImpl(key, this.attributes.get(key)), index, this));
934
776
  }
935
777
  }
936
778
  //# sourceMappingURL=ElementBase.js.map