@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
@@ -1,158 +1,247 @@
1
- import { Element, DOMTokenList } from "./Element.js";
2
- import { HTMLCollection, HTMLCollectionOf } from "../collection/index.js";
1
+ import { HTMLCollectionImp, HTMLCollectionOfImp } from "../collection/index.js";
3
2
  import { ElementBase } from "./ElementBase.js";
4
3
  import { HTMLElementBase } from "./HTMLElementBase.js";
5
4
  import { HTMLGenericElement } from "./HTMLGenericElement.js";
5
+ import { HTMLElement } from "./HTMLElement.js";
6
6
  import { HTMLAnchorElement } from "./HTMLAnchorElement.js";
7
+ import { HTMLAreaElement } from "./HTMLAreaElement.js";
8
+ import { HTMLAudioElement } from "./HTMLAudioElement.js";
9
+ import { HTMLBaseElement } from "./HTMLBaseElement.js";
7
10
  import { HTMLBodyElement } from "./HTMLBodyElement.js";
8
- import { HTMLDivElement } from "./HTMLDivElement.js";
9
- import { HTMLSpanElement } from "./HTMLSpanElement.js";
10
- import { HTMLPElement } from "./HTMLPElement.js";
11
- import { HTMLImgElement } from "./HTMLImgElement.js";
12
11
  import { HTMLButtonElement } from "./HTMLButtonElement.js";
13
12
  import { HTMLCanvasElement } from "./HTMLCanvasElement.js";
14
- import { HTMLInputElement } from "./HTMLInputElement.js";
13
+ import { HTMLCaptionElement } from "./HTMLCaptionElement.js";
14
+ import { HTMLDataElement } from "./HTMLDataElement.js";
15
+ import { HTMLDataListElement } from "./HTMLDataListElement.js";
16
+ import { HTMLDetailsElement } from "./HTMLDetailsElement.js";
17
+ import { HTMLDialogElement } from "./HTMLDialogElement.js";
18
+ import { HTMLDivElement } from "./HTMLDivElement.js";
19
+ import { HTMLDListElement } from "./HTMLDListElement.js";
20
+ import { HTMLEmbedElement } from "./HTMLEmbedElement.js";
21
+ import { HTMLFieldSetElement } from "./HTMLFieldSetElement.js";
22
+ import { HTMLFormElement } from "./HTMLFormElement.js";
15
23
  import { HTMLH1Element } from "./HTMLH1Element.js";
16
24
  import { HTMLHeadElement } from "./HTMLHeadElement.js";
25
+ import { HTMLHRElement } from "./HTMLHRElement.js";
17
26
  import { HTMLHtmlElement } from "./HTMLHtmlElement.js";
18
- import { HTMLTitleElement } from "./HTMLTitleElement.js";
27
+ import { HTMLIFrameElement } from "./HTMLIFrameElement.js";
28
+ import { HTMLImgElement } from "./HTMLImgElement.js";
29
+ import { HTMLInputElement } from "./HTMLInputElement.js";
30
+ import { HTMLLabelElement } from "./HTMLLabelElement.js";
31
+ import { HTMLLegendElement } from "./HTMLLegendElement.js";
32
+ import { HTMLLIElement } from "./HTMLLIElement.js";
19
33
  import { HTMLLinkElement } from "./HTMLLinkElement.js";
34
+ import { HTMLMapElement } from "./HTMLMapElement.js";
35
+ import { HTMLMetaElement } from "./HTMLMetaElement.js";
36
+ import { HTMLMeterElement } from "./HTMLMeterElement.js";
37
+ import { HTMLModElement } from "./HTMLModElement.js";
38
+ import { HTMLObjectElement } from "./HTMLObjectElement.js";
39
+ import { HTMLOListElement } from "./HTMLOListElement.js";
40
+ import { HTMLOptGroupElement } from "./HTMLOptGroupElement.js";
41
+ import { HTMLOptionElement } from "./HTMLOptionElement.js";
42
+ import { HTMLOutputElement } from "./HTMLOutputElement.js";
43
+ import { HTMLPElement } from "./HTMLPElement.js";
44
+ import { HTMLParamElement } from "./HTMLParamElement.js";
45
+ import { HTMLPictureElement } from "./HTMLPictureElement.js";
46
+ import { HTMLPreElement } from "./HTMLPreElement.js";
47
+ import { HTMLProgressElement } from "./HTMLProgressElement.js";
48
+ import { HTMLQuoteElement } from "./HTMLQuoteElement.js";
20
49
  import { HTMLScriptElement } from "./HTMLScriptElement.js";
50
+ import { HTMLSelectElement } from "./HTMLSelectElement.js";
51
+ import { HTMLSlotElement } from "./HTMLSlotElement.js";
52
+ import { HTMLSourceElement } from "./HTMLSourceElement.js";
53
+ import { HTMLSpanElement } from "./HTMLSpanElement.js";
21
54
  import { HTMLStyleElement } from "./HTMLStyleElement.js";
22
- import { HTMLFormElement } from "./HTMLFormElement.js";
23
55
  import { HTMLTableElement } from "./HTMLTableElement.js";
24
- import { HTMLUListElement } from "./HTMLUListElement.js";
25
- import { HTMLOListElement } from "./HTMLOListElement.js";
26
- import { HTMLLIElement } from "./HTMLLIElement.js";
27
- import { SVGElement } from "./SVGElement.js";
28
- import { SVGCircleElement } from "./SVGCircleElement.js";
29
- import { SVGRectElement } from "./SVGRectElement.js";
30
- import { HTMLMetaElement } from "./HTMLMetaElement.js";
56
+ import { HTMLTbodyElement } from "./HTMLTbodyElement.js";
57
+ import { HTMLTdElement } from "./HTMLTdElement.js";
31
58
  import { HTMLTemplateElement } from "./HTMLTemplateElement.js";
32
- import { HTMLTheadElement } from "./HTMLTheadElement.js";
59
+ import { HTMLTextAreaElement } from "./HTMLTextAreaElement.js";
33
60
  import { HTMLTfootElement } from "./HTMLTfootElement.js";
34
- import { HTMLTrElement } from "./HTMLTrElement.js";
35
- import { HTMLTdElement } from "./HTMLTdElement.js";
61
+ import { HTMLTheadElement } from "./HTMLTheadElement.js";
36
62
  import { HTMLThElement } from "./HTMLThElement.js";
37
- import { HTMLCaptionElement } from "./HTMLCaptionElement.js";
38
- import { HTMLTbodyElement } from "./HTMLTbodyElement.js";
39
- import { HTMLEmbedElement } from "./HTMLEmbedElement.js";
40
- import { HTMLAreaElement } from "./HTMLAreaElement.js";
41
- import { HTMLBaseElement } from "./HTMLBaseElement.js";
63
+ import { HTMLTimeElement } from "./HTMLTimeElement.js";
64
+ import { HTMLTitleElement } from "./HTMLTitleElement.js";
65
+ import { HTMLTrackElement } from "./HTMLTrackElement.js";
66
+ import { HTMLTrElement } from "./HTMLTrElement.js";
67
+ import { HTMLUListElement } from "./HTMLUListElement.js";
68
+ import { HTMLVideoElement } from "./HTMLVideoElement.js";
42
69
  import { MathMLElement } from "./MathMLElement.js";
70
+ import { SVGElement } from "./SVGElement.js";
71
+ import { SVGCircleElement } from "./SVGCircleElement.js";
72
+ import { SVGRectElement } from "./SVGRectElement.js";
43
73
  const htmlElements = {
44
- "a": HTMLAnchorElement,
45
- "body": HTMLBodyElement,
46
- "button": HTMLButtonElement,
47
- "canvas": HTMLCanvasElement,
48
- "div": HTMLDivElement,
49
- "h1": HTMLH1Element,
50
- "head": HTMLHeadElement,
51
- "html": HTMLHtmlElement,
52
- "img": HTMLImgElement,
53
- "input": HTMLInputElement,
54
- "p": HTMLPElement,
55
- "meta": HTMLMetaElement,
56
- "span": HTMLSpanElement,
57
- "title": HTMLTitleElement,
58
- "link": HTMLLinkElement,
59
- "script": HTMLScriptElement,
60
- "style": HTMLStyleElement,
61
- "form": HTMLFormElement,
62
- "table": HTMLTableElement,
63
- "ul": HTMLUListElement,
64
- "ol": HTMLOListElement,
65
- "li": HTMLLIElement,
66
- "template": HTMLTemplateElement,
67
- "thead": HTMLTheadElement,
68
- "tfoot": HTMLTfootElement,
69
- "tr": HTMLTrElement,
70
- "td": HTMLTdElement,
71
- "th": HTMLThElement,
72
- "caption": HTMLCaptionElement,
73
- "tbody": HTMLTbodyElement,
74
- "embed": HTMLEmbedElement,
75
- "area": HTMLAreaElement,
76
- "base": HTMLBaseElement
74
+ a: HTMLAnchorElement,
75
+ area: HTMLAreaElement,
76
+ audio: HTMLAudioElement,
77
+ base: HTMLBaseElement,
78
+ body: HTMLBodyElement,
79
+ button: HTMLButtonElement,
80
+ canvas: HTMLCanvasElement,
81
+ caption: HTMLCaptionElement,
82
+ data: HTMLDataElement,
83
+ datalist: HTMLDataListElement,
84
+ details: HTMLDetailsElement,
85
+ dialog: HTMLDialogElement,
86
+ div: HTMLDivElement,
87
+ dl: HTMLDListElement,
88
+ embed: HTMLEmbedElement,
89
+ fieldset: HTMLFieldSetElement,
90
+ form: HTMLFormElement,
91
+ h1: HTMLH1Element,
92
+ head: HTMLHeadElement,
93
+ hr: HTMLHRElement,
94
+ html: HTMLHtmlElement,
95
+ iframe: HTMLIFrameElement,
96
+ img: HTMLImgElement,
97
+ input: HTMLInputElement,
98
+ label: HTMLLabelElement,
99
+ legend: HTMLLegendElement,
100
+ li: HTMLLIElement,
101
+ link: HTMLLinkElement,
102
+ map: HTMLMapElement,
103
+ meta: HTMLMetaElement,
104
+ meter: HTMLMeterElement,
105
+ del: HTMLModElement,
106
+ object: HTMLObjectElement,
107
+ ol: HTMLOListElement,
108
+ optgroup: HTMLOptGroupElement,
109
+ option: HTMLOptionElement,
110
+ output: HTMLOutputElement,
111
+ p: HTMLPElement,
112
+ param: HTMLParamElement,
113
+ picture: HTMLPictureElement,
114
+ pre: HTMLPreElement,
115
+ progress: HTMLProgressElement,
116
+ blockquote: HTMLQuoteElement,
117
+ script: HTMLScriptElement,
118
+ select: HTMLSelectElement,
119
+ slot: HTMLSlotElement,
120
+ source: HTMLSourceElement,
121
+ span: HTMLSpanElement,
122
+ style: HTMLStyleElement,
123
+ table: HTMLTableElement,
124
+ tbody: HTMLTbodyElement,
125
+ td: HTMLTdElement,
126
+ template: HTMLTemplateElement,
127
+ textarea: HTMLTextAreaElement,
128
+ tfoot: HTMLTfootElement,
129
+ thead: HTMLTheadElement,
130
+ th: HTMLThElement,
131
+ time: HTMLTimeElement,
132
+ title: HTMLTitleElement,
133
+ track: HTMLTrackElement,
134
+ tr: HTMLTrElement,
135
+ ul: HTMLUListElement,
136
+ video: HTMLVideoElement
77
137
  };
78
138
  const svgElements = {
79
- "svg": SVGElement,
80
- "circle": SVGCircleElement,
81
- "rect": SVGRectElement
139
+ svg: SVGElement,
140
+ circle: SVGCircleElement,
141
+ rect: SVGRectElement
82
142
  };
83
143
  const mathmlElements = {
84
- "annotation": MathMLElement,
144
+ annotation: MathMLElement,
85
145
  "annotation-xml": MathMLElement,
86
- "maction": MathMLElement,
87
- "math": MathMLElement,
88
- "merror": MathMLElement,
89
- "mfrac": MathMLElement,
90
- "mi": MathMLElement,
91
- "mmultiscripts": MathMLElement,
92
- "mn": MathMLElement,
93
- "mo": MathMLElement,
94
- "mover": MathMLElement,
95
- "mpadded": MathMLElement,
96
- "mphantom": MathMLElement,
97
- "mprescripts": MathMLElement,
98
- "mroot": MathMLElement,
99
- "mrow": MathMLElement,
100
- "ms": MathMLElement,
101
- "mspace": MathMLElement,
102
- "msqrt": MathMLElement,
103
- "mstyle": MathMLElement,
104
- "msub": MathMLElement,
105
- "msubsup": MathMLElement,
106
- "msup": MathMLElement,
107
- "mtable": MathMLElement,
108
- "mtd": MathMLElement,
109
- "mtext": MathMLElement,
110
- "mtr": MathMLElement,
111
- "munder": MathMLElement,
112
- "munderover": MathMLElement,
113
- "semantics": MathMLElement
146
+ maction: MathMLElement,
147
+ math: MathMLElement,
148
+ merror: MathMLElement,
149
+ mfrac: MathMLElement,
150
+ mi: MathMLElement,
151
+ mmultiscripts: MathMLElement,
152
+ mn: MathMLElement,
153
+ mo: MathMLElement,
154
+ mover: MathMLElement,
155
+ mpadded: MathMLElement,
156
+ mphantom: MathMLElement,
157
+ mprescripts: MathMLElement,
158
+ mroot: MathMLElement,
159
+ mrow: MathMLElement,
160
+ ms: MathMLElement,
161
+ mspace: MathMLElement,
162
+ msqrt: MathMLElement,
163
+ mstyle: MathMLElement,
164
+ msub: MathMLElement,
165
+ msubsup: MathMLElement,
166
+ msup: MathMLElement,
167
+ mtable: MathMLElement,
168
+ mtd: MathMLElement,
169
+ mtext: MathMLElement,
170
+ mtr: MathMLElement,
171
+ munder: MathMLElement,
172
+ munderover: MathMLElement,
173
+ semantics: MathMLElement
114
174
  };
115
175
  export {
116
- DOMTokenList,
117
- Element,
118
176
  ElementBase,
119
177
  HTMLAnchorElement,
120
178
  HTMLAreaElement,
179
+ HTMLAudioElement,
121
180
  HTMLBaseElement,
122
181
  HTMLBodyElement,
123
182
  HTMLButtonElement,
124
183
  HTMLCanvasElement,
125
184
  HTMLCaptionElement,
126
- HTMLCollection,
127
- HTMLCollectionOf,
185
+ HTMLCollectionImp,
186
+ HTMLCollectionOfImp,
187
+ HTMLDListElement,
188
+ HTMLDataElement,
189
+ HTMLDataListElement,
190
+ HTMLDetailsElement,
191
+ HTMLDialogElement,
128
192
  HTMLDivElement,
193
+ HTMLElement,
129
194
  HTMLElementBase,
130
195
  HTMLEmbedElement,
196
+ HTMLFieldSetElement,
131
197
  HTMLFormElement,
132
198
  HTMLGenericElement,
133
199
  HTMLH1Element,
200
+ HTMLHRElement,
134
201
  HTMLHeadElement,
135
202
  HTMLHtmlElement,
203
+ HTMLIFrameElement,
136
204
  HTMLImgElement,
137
205
  HTMLInputElement,
138
206
  HTMLLIElement,
207
+ HTMLLabelElement,
208
+ HTMLLegendElement,
139
209
  HTMLLinkElement,
210
+ HTMLMapElement,
140
211
  HTMLMetaElement,
212
+ HTMLMeterElement,
213
+ HTMLModElement,
141
214
  HTMLOListElement,
215
+ HTMLObjectElement,
216
+ HTMLOptGroupElement,
217
+ HTMLOptionElement,
218
+ HTMLOutputElement,
142
219
  HTMLPElement,
220
+ HTMLParamElement,
221
+ HTMLPictureElement,
222
+ HTMLPreElement,
223
+ HTMLProgressElement,
224
+ HTMLQuoteElement,
143
225
  HTMLScriptElement,
226
+ HTMLSelectElement,
227
+ HTMLSlotElement,
228
+ HTMLSourceElement,
144
229
  HTMLSpanElement,
145
230
  HTMLStyleElement,
146
231
  HTMLTableElement,
147
232
  HTMLTbodyElement,
148
233
  HTMLTdElement,
149
234
  HTMLTemplateElement,
235
+ HTMLTextAreaElement,
150
236
  HTMLTfootElement,
151
237
  HTMLThElement,
152
238
  HTMLTheadElement,
239
+ HTMLTimeElement,
153
240
  HTMLTitleElement,
154
241
  HTMLTrElement,
242
+ HTMLTrackElement,
155
243
  HTMLUListElement,
244
+ HTMLVideoElement,
156
245
  MathMLElement,
157
246
  SVGCircleElement,
158
247
  SVGElement,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/elements/index.ts"],
4
- "sourcesContent": ["// Base Element interfaces and types\nexport { Element, DOMTokenList } from './Element';\nexport { HTMLCollection, HTMLCollectionOf } from '../collection';\n\n// Base Element implementations\nexport { ElementBase } from './ElementBase';\nexport { HTMLElementBase } from './HTMLElementBase';\nexport { HTMLGenericElement } from './HTMLGenericElement';\n\n// Import all element classes\nimport { HTMLAnchorElement } from './HTMLAnchorElement';\nimport { HTMLBodyElement } from './HTMLBodyElement';\nimport { HTMLDivElement } from './HTMLDivElement';\nimport { HTMLSpanElement } from './HTMLSpanElement';\nimport { HTMLPElement } from './HTMLPElement';\nimport { HTMLImgElement } from './HTMLImgElement';\nimport { HTMLButtonElement } from './HTMLButtonElement';\nimport { HTMLCanvasElement } from './HTMLCanvasElement';\nimport { HTMLInputElement } from './HTMLInputElement';\nimport { HTMLH1Element } from './HTMLH1Element';\nimport { HTMLHeadElement } from './HTMLHeadElement';\nimport { HTMLHtmlElement } from './HTMLHtmlElement';\nimport { HTMLTitleElement } from './HTMLTitleElement';\nimport { HTMLLinkElement } from './HTMLLinkElement';\nimport { HTMLScriptElement } from './HTMLScriptElement';\nimport { HTMLStyleElement } from './HTMLStyleElement';\nimport { HTMLFormElement } from './HTMLFormElement';\nimport { HTMLTableElement } from './HTMLTableElement';\nimport { HTMLUListElement } from './HTMLUListElement';\nimport { HTMLOListElement } from './HTMLOListElement';\nimport { HTMLLIElement } from './HTMLLIElement';\nimport { SVGElement } from './SVGElement';\nimport { SVGCircleElement } from './SVGCircleElement';\nimport { SVGRectElement } from './SVGRectElement';\nimport { HTMLMetaElement } from './HTMLMetaElement';\nimport { HTMLTemplateElement } from './HTMLTemplateElement';\nimport { HTMLTheadElement } from './HTMLTheadElement';\nimport { HTMLTfootElement } from './HTMLTfootElement';\nimport { HTMLTrElement } from './HTMLTrElement';\nimport { HTMLTdElement } from './HTMLTdElement';\nimport { HTMLThElement } from './HTMLThElement';\nimport { HTMLCaptionElement } from './HTMLCaptionElement';\nimport { HTMLTbodyElement } from './HTMLTbodyElement';\nimport { HTMLEmbedElement } from './HTMLEmbedElement';\nimport { HTMLAreaElement } from './HTMLAreaElement';\nimport { HTMLBaseElement } from './HTMLBaseElement';\nimport { MathMLElement } from './MathMLElement';\n\n// Export all element classes\nexport {\n HTMLAnchorElement,\n HTMLBodyElement,\n HTMLDivElement,\n HTMLHeadElement,\n HTMLHtmlElement,\n HTMLSpanElement,\n HTMLPElement,\n HTMLImgElement,\n HTMLButtonElement,\n HTMLCanvasElement,\n HTMLInputElement,\n HTMLH1Element,\n HTMLTitleElement,\n HTMLLinkElement,\n HTMLScriptElement,\n HTMLStyleElement,\n HTMLFormElement,\n HTMLTableElement,\n HTMLUListElement,\n HTMLOListElement,\n HTMLLIElement,\n SVGElement,\n SVGCircleElement,\n SVGRectElement,\n HTMLMetaElement,\n HTMLTemplateElement,\n HTMLTheadElement,\n HTMLTfootElement,\n HTMLTrElement,\n HTMLTdElement,\n HTMLThElement,\n HTMLCaptionElement,\n HTMLTbodyElement,\n HTMLEmbedElement,\n HTMLAreaElement,\n HTMLBaseElement,\n MathMLElement,\n};\n\n// HTML Elements mapping with explicit string keys for proper type inference\nexport const htmlElements = {\n 'a': HTMLAnchorElement,\n 'body': HTMLBodyElement,\n 'button': HTMLButtonElement,\n 'canvas': HTMLCanvasElement,\n 'div': HTMLDivElement,\n 'h1': HTMLH1Element,\n 'head': HTMLHeadElement,\n 'html': HTMLHtmlElement,\n 'img': HTMLImgElement,\n 'input': HTMLInputElement,\n 'p': HTMLPElement,\n 'meta': HTMLMetaElement,\n 'span': HTMLSpanElement,\n 'title': HTMLTitleElement,\n 'link': HTMLLinkElement,\n 'script': HTMLScriptElement,\n 'style': HTMLStyleElement,\n 'form': HTMLFormElement,\n 'table': HTMLTableElement,\n 'ul': HTMLUListElement,\n 'ol': HTMLOListElement,\n 'li': HTMLLIElement,\n 'template': HTMLTemplateElement,\n 'thead': HTMLTheadElement,\n 'tfoot': HTMLTfootElement,\n 'tr': HTMLTrElement,\n 'td': HTMLTdElement,\n 'th': HTMLThElement,\n 'caption': HTMLCaptionElement,\n 'tbody': HTMLTbodyElement,\n 'embed': HTMLEmbedElement,\n 'area': HTMLAreaElement,\n 'base': HTMLBaseElement,\n} as const;\n\n// SVG Elements mapping with explicit string keys\nexport const svgElements = {\n 'svg': SVGElement,\n 'circle': SVGCircleElement,\n 'rect': SVGRectElement,\n} as const;\n\n// MathML Elements mapping - all use MathMLElement\nexport const mathmlElements = {\n 'annotation': MathMLElement,\n 'annotation-xml': MathMLElement,\n 'maction': MathMLElement,\n 'math': MathMLElement,\n 'merror': MathMLElement,\n 'mfrac': MathMLElement,\n 'mi': MathMLElement,\n 'mmultiscripts': MathMLElement,\n 'mn': MathMLElement,\n 'mo': MathMLElement,\n 'mover': MathMLElement,\n 'mpadded': MathMLElement,\n 'mphantom': MathMLElement,\n 'mprescripts': MathMLElement,\n 'mroot': MathMLElement,\n 'mrow': MathMLElement,\n 'ms': MathMLElement,\n 'mspace': MathMLElement,\n 'msqrt': MathMLElement,\n 'mstyle': MathMLElement,\n 'msub': MathMLElement,\n 'msubsup': MathMLElement,\n 'msup': MathMLElement,\n 'mtable': MathMLElement,\n 'mtd': MathMLElement,\n 'mtext': MathMLElement,\n 'mtr': MathMLElement,\n 'munder': MathMLElement,\n 'munderover': MathMLElement,\n 'semantics': MathMLElement,\n} as const;\n\n// Type-safe tag name mappings - back to the working approach\nexport type HTMLElementTagNameMap = {\n [K in keyof typeof htmlElements]: InstanceType<typeof htmlElements[K]>;\n};\n\nexport type SVGElementTagNameMap = {\n [K in keyof typeof svgElements]: InstanceType<typeof svgElements[K]>;\n};\n\nexport type MathMLElementTagNameMap = {\n [K in keyof typeof mathmlElements]: InstanceType<typeof mathmlElements[K]>;\n};\n\nexport interface HTMLElementDeprecatedTagNameMap {\n // deprecated \uD0DC\uADF8\uB4E4\n}\n\n// Type aliases for Document interface compatibility\nexport type HTMLImageElement = HTMLImgElement;"],
5
- "mappings": "AACA,SAAS,SAAS,oBAAoB;AACtC,SAAS,gBAAgB,wBAAwB;AAGjD,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,0BAA0B;AAGnC,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,oBAAoB;AAC7B,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,qBAAqB;AAC9B,SAAS,0BAA0B;AACnC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AA4CvB,MAAM,eAAe;AAAA,EACxB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,SAAS;AAAA,EACT,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,YAAY;AAAA,EACZ,SAAS;AAAA,EACT,SAAS;AAAA,EACT,MAAM;AAAA,EACN,MAAM;AAAA,EACN,MAAM;AAAA,EACN,WAAW;AAAA,EACX,SAAS;AAAA,EACT,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,QAAQ;AACZ;AAGO,MAAM,cAAc;AAAA,EACvB,OAAO;AAAA,EACP,UAAU;AAAA,EACV,QAAQ;AACZ;AAGO,MAAM,iBAAiB;AAAA,EAC1B,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,SAAS;AAAA,EACT,MAAM;AAAA,EACN,iBAAiB;AAAA,EACjB,MAAM;AAAA,EACN,MAAM;AAAA,EACN,SAAS;AAAA,EACT,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,WAAW;AAAA,EACX,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,OAAO;AAAA,EACP,SAAS;AAAA,EACT,OAAO;AAAA,EACP,UAAU;AAAA,EACV,cAAc;AAAA,EACd,aAAa;AACjB;",
4
+ "sourcesContent": ["// Base Element interfaces and types\n// export type { Element, DOMTokenList } from './Element';\nexport { HTMLCollectionImp, HTMLCollectionOfImp } from '../collection';\n\n// Base Element implementations\nexport { ElementBase } from './ElementBase';\nexport { HTMLElementBase } from './HTMLElementBase';\nexport { HTMLGenericElement } from './HTMLGenericElement';\n\n// Import all element classes\nimport { HTMLElement } from './HTMLElement';\nimport { HTMLAnchorElement } from './HTMLAnchorElement';\nimport { HTMLAreaElement } from './HTMLAreaElement';\nimport { HTMLAudioElement } from './HTMLAudioElement';\nimport { HTMLBaseElement } from './HTMLBaseElement';\nimport { HTMLBodyElement } from './HTMLBodyElement';\nimport { HTMLButtonElement } from './HTMLButtonElement';\nimport { HTMLCanvasElement } from './HTMLCanvasElement';\nimport { HTMLCaptionElement } from './HTMLCaptionElement';\nimport { HTMLDataElement } from './HTMLDataElement';\nimport { HTMLDataListElement } from './HTMLDataListElement';\nimport { HTMLDetailsElement } from './HTMLDetailsElement';\nimport { HTMLDialogElement } from './HTMLDialogElement';\nimport { HTMLDivElement } from './HTMLDivElement';\nimport { HTMLDListElement } from './HTMLDListElement';\nimport { HTMLEmbedElement } from './HTMLEmbedElement';\nimport { HTMLFieldSetElement } from './HTMLFieldSetElement';\nimport { HTMLFormElement } from './HTMLFormElement';\nimport { HTMLH1Element } from './HTMLH1Element';\nimport { HTMLHeadElement } from './HTMLHeadElement';\nimport { HTMLHRElement } from './HTMLHRElement';\nimport { HTMLHtmlElement } from './HTMLHtmlElement';\nimport { HTMLIFrameElement } from './HTMLIFrameElement';\nimport { HTMLImgElement } from './HTMLImgElement';\nimport { HTMLInputElement } from './HTMLInputElement';\nimport { HTMLLabelElement } from './HTMLLabelElement';\nimport { HTMLLegendElement } from './HTMLLegendElement';\nimport { HTMLLIElement } from './HTMLLIElement';\nimport { HTMLLinkElement } from './HTMLLinkElement';\nimport { HTMLMapElement } from './HTMLMapElement';\nimport { HTMLMetaElement } from './HTMLMetaElement';\nimport { HTMLMeterElement } from './HTMLMeterElement';\nimport { HTMLModElement } from './HTMLModElement';\nimport { HTMLObjectElement } from './HTMLObjectElement';\nimport { HTMLOListElement } from './HTMLOListElement';\nimport { HTMLOptGroupElement } from './HTMLOptGroupElement';\nimport { HTMLOptionElement } from './HTMLOptionElement';\nimport { HTMLOutputElement } from './HTMLOutputElement';\nimport { HTMLPElement } from './HTMLPElement';\nimport { HTMLParamElement } from './HTMLParamElement';\nimport { HTMLPictureElement } from './HTMLPictureElement';\nimport { HTMLPreElement } from './HTMLPreElement';\nimport { HTMLProgressElement } from './HTMLProgressElement';\nimport { HTMLQuoteElement } from './HTMLQuoteElement';\nimport { HTMLScriptElement } from './HTMLScriptElement';\nimport { HTMLSelectElement } from './HTMLSelectElement';\nimport { HTMLSlotElement } from './HTMLSlotElement';\nimport { HTMLSourceElement } from './HTMLSourceElement';\nimport { HTMLSpanElement } from './HTMLSpanElement';\nimport { HTMLStyleElement } from './HTMLStyleElement';\nimport { HTMLTableElement } from './HTMLTableElement';\nimport { HTMLTbodyElement } from './HTMLTbodyElement';\nimport { HTMLTdElement } from './HTMLTdElement';\nimport { HTMLTemplateElement } from './HTMLTemplateElement';\nimport { HTMLTextAreaElement } from './HTMLTextAreaElement';\nimport { HTMLTfootElement } from './HTMLTfootElement';\nimport { HTMLTheadElement } from './HTMLTheadElement';\nimport { HTMLThElement } from './HTMLThElement';\nimport { HTMLTimeElement } from './HTMLTimeElement';\nimport { HTMLTitleElement } from './HTMLTitleElement';\nimport { HTMLTrackElement } from './HTMLTrackElement';\nimport { HTMLTrElement } from './HTMLTrElement';\nimport { HTMLUListElement } from './HTMLUListElement';\nimport { HTMLVideoElement } from './HTMLVideoElement';\nimport { MathMLElement } from './MathMLElement';\nimport { SVGElement } from './SVGElement';\nimport { SVGCircleElement } from './SVGCircleElement';\nimport { SVGRectElement } from './SVGRectElement';\n\n// Export all element classes\nexport {\n HTMLElement,\n HTMLAnchorElement,\n HTMLAreaElement,\n HTMLAudioElement,\n HTMLBaseElement,\n HTMLBodyElement,\n HTMLButtonElement,\n HTMLCanvasElement,\n HTMLCaptionElement,\n HTMLDataElement,\n HTMLDataListElement,\n HTMLDetailsElement,\n HTMLDialogElement,\n HTMLDivElement,\n HTMLDListElement,\n HTMLEmbedElement,\n HTMLFieldSetElement,\n HTMLFormElement,\n HTMLH1Element,\n HTMLHeadElement,\n HTMLHRElement,\n HTMLHtmlElement,\n HTMLIFrameElement,\n HTMLImgElement,\n HTMLInputElement,\n HTMLLabelElement,\n HTMLLegendElement,\n HTMLLIElement,\n HTMLLinkElement,\n HTMLMapElement,\n HTMLMetaElement,\n HTMLMeterElement,\n HTMLModElement,\n HTMLObjectElement,\n HTMLOListElement,\n HTMLOptGroupElement,\n HTMLOptionElement,\n HTMLOutputElement,\n HTMLPElement,\n HTMLParamElement,\n HTMLPictureElement,\n HTMLPreElement,\n HTMLProgressElement,\n HTMLQuoteElement,\n HTMLScriptElement,\n HTMLSelectElement,\n HTMLSlotElement,\n HTMLSourceElement,\n HTMLSpanElement,\n HTMLStyleElement,\n HTMLTableElement,\n HTMLTbodyElement,\n HTMLTdElement,\n HTMLTemplateElement,\n HTMLTextAreaElement,\n HTMLTfootElement,\n HTMLTheadElement,\n HTMLThElement,\n HTMLTimeElement,\n HTMLTitleElement,\n HTMLTrackElement,\n HTMLTrElement,\n HTMLUListElement,\n HTMLVideoElement,\n MathMLElement,\n SVGElement,\n SVGCircleElement,\n SVGRectElement\n};\n\n// HTML Elements mapping\nexport const htmlElements = {\n a: HTMLAnchorElement,\n area: HTMLAreaElement,\n audio: HTMLAudioElement,\n base: HTMLBaseElement,\n body: HTMLBodyElement,\n button: HTMLButtonElement,\n canvas: HTMLCanvasElement,\n caption: HTMLCaptionElement,\n data: HTMLDataElement,\n datalist: HTMLDataListElement,\n details: HTMLDetailsElement,\n dialog: HTMLDialogElement,\n div: HTMLDivElement,\n dl: HTMLDListElement,\n embed: HTMLEmbedElement,\n fieldset: HTMLFieldSetElement,\n form: HTMLFormElement,\n h1: HTMLH1Element,\n head: HTMLHeadElement,\n hr: HTMLHRElement,\n html: HTMLHtmlElement,\n iframe: HTMLIFrameElement,\n img: HTMLImgElement,\n input: HTMLInputElement,\n label: HTMLLabelElement,\n legend: HTMLLegendElement,\n li: HTMLLIElement,\n link: HTMLLinkElement,\n map: HTMLMapElement,\n meta: HTMLMetaElement,\n meter: HTMLMeterElement,\n del: HTMLModElement,\n object: HTMLObjectElement,\n ol: HTMLOListElement,\n optgroup: HTMLOptGroupElement,\n option: HTMLOptionElement,\n output: HTMLOutputElement,\n p: HTMLPElement,\n param: HTMLParamElement,\n picture: HTMLPictureElement,\n pre: HTMLPreElement,\n progress: HTMLProgressElement,\n blockquote: HTMLQuoteElement,\n script: HTMLScriptElement,\n select: HTMLSelectElement,\n slot: HTMLSlotElement,\n source: HTMLSourceElement,\n span: HTMLSpanElement,\n style: HTMLStyleElement,\n table: HTMLTableElement,\n tbody: HTMLTbodyElement,\n td: HTMLTdElement,\n template: HTMLTemplateElement,\n textarea: HTMLTextAreaElement,\n tfoot: HTMLTfootElement,\n thead: HTMLTheadElement,\n th: HTMLThElement,\n time: HTMLTimeElement,\n title: HTMLTitleElement,\n track: HTMLTrackElement,\n tr: HTMLTrElement,\n ul: HTMLUListElement,\n video: HTMLVideoElement\n} as const;\n\nexport const svgElements = {\n svg: SVGElement,\n circle: SVGCircleElement,\n rect: SVGRectElement\n} as const;\n\nexport const mathmlElements = {\n annotation: MathMLElement,\n 'annotation-xml': MathMLElement,\n maction: MathMLElement,\n math: MathMLElement,\n merror: MathMLElement,\n mfrac: MathMLElement,\n mi: MathMLElement,\n mmultiscripts: MathMLElement,\n mn: MathMLElement,\n mo: MathMLElement,\n mover: MathMLElement,\n mpadded: MathMLElement,\n mphantom: MathMLElement,\n mprescripts: MathMLElement,\n mroot: MathMLElement,\n mrow: MathMLElement,\n ms: MathMLElement,\n mspace: MathMLElement,\n msqrt: MathMLElement,\n mstyle: MathMLElement,\n msub: MathMLElement,\n msubsup: MathMLElement,\n msup: MathMLElement,\n mtable: MathMLElement,\n mtd: MathMLElement,\n mtext: MathMLElement,\n mtr: MathMLElement,\n munder: MathMLElement,\n munderover: MathMLElement,\n semantics: MathMLElement\n} as const;\n\nexport type HTMLImageElement = HTMLImgElement;\nexport type HTMLParagraphElement = HTMLPElement;\nexport type HTMLHeadingElement = HTMLH1Element;\nexport type HTMLTableSectionElement = HTMLTbodyElement;\nexport type HTMLTableCellElement = HTMLTdElement;\nexport type HTMLTableRowElement = HTMLTrElement;\n"],
5
+ "mappings": "AAEA,SAAS,mBAAmB,2BAA2B;AAGvD,SAAS,mBAAmB;AAC5B,SAAS,uBAAuB;AAChC,SAAS,0BAA0B;AAGnC,SAAS,mBAAmB;AAC5B,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,uBAAuB;AAChC,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,0BAA0B;AACnC,SAAS,uBAAuB;AAChC,SAAS,2BAA2B;AACpC,SAAS,0BAA0B;AACnC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,sBAAsB;AAC/B,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AAC/B,SAAS,yBAAyB;AAClC,SAAS,wBAAwB;AACjC,SAAS,2BAA2B;AACpC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,oBAAoB;AAC7B,SAAS,wBAAwB;AACjC,SAAS,0BAA0B;AACnC,SAAS,sBAAsB;AAC/B,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,yBAAyB;AAClC,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,yBAAyB;AAClC,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,2BAA2B;AACpC,SAAS,2BAA2B;AACpC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,uBAAuB;AAChC,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,wBAAwB;AACjC,SAAS,wBAAwB;AACjC,SAAS,qBAAqB;AAC9B,SAAS,kBAAkB;AAC3B,SAAS,wBAAwB;AACjC,SAAS,sBAAsB;AA2ExB,MAAM,eAAe;AAAA,EAC1B,GAAG;AAAA,EACH,MAAM;AAAA,EACN,OAAO;AAAA,EACP,MAAM;AAAA,EACN,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,MAAM;AAAA,EACN,UAAU;AAAA,EACV,SAAS;AAAA,EACT,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,UAAU;AAAA,EACV,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,KAAK;AAAA,EACL,MAAM;AAAA,EACN,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,GAAG;AAAA,EACH,OAAO;AAAA,EACP,SAAS;AAAA,EACT,KAAK;AAAA,EACL,UAAU;AAAA,EACV,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,UAAU;AAAA,EACV,UAAU;AAAA,EACV,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,MAAM;AAAA,EACN,OAAO;AAAA,EACP,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AACT;AAEO,MAAM,cAAc;AAAA,EACzB,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,MAAM;AACR;AAEO,MAAM,iBAAiB;AAAA,EAC5B,YAAY;AAAA,EACZ,kBAAkB;AAAA,EAClB,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,IAAI;AAAA,EACJ,eAAe;AAAA,EACf,IAAI;AAAA,EACJ,IAAI;AAAA,EACJ,OAAO;AAAA,EACP,SAAS;AAAA,EACT,UAAU;AAAA,EACV,aAAa;AAAA,EACb,OAAO;AAAA,EACP,MAAM;AAAA,EACN,IAAI;AAAA,EACJ,QAAQ;AAAA,EACR,OAAO;AAAA,EACP,QAAQ;AAAA,EACR,MAAM;AAAA,EACN,SAAS;AAAA,EACT,MAAM;AAAA,EACN,QAAQ;AAAA,EACR,KAAK;AAAA,EACL,OAAO;AAAA,EACP,KAAK;AAAA,EACL,QAAQ;AAAA,EACR,YAAY;AAAA,EACZ,WAAW;AACb;",
6
6
  "names": []
7
7
  }
@@ -1,24 +1,19 @@
1
- import { Node, ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE, ENTITY_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, DOCUMENT_FRAGMENT_NODE, NOTATION_NODE, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_PRECEDING, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC } from "./Node.js";
2
- import { ChildNode } from "./ChildNode.js";
3
- import { ParentNode } from "./ParentNode.js";
1
+ import { ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE, ENTITY_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, DOCUMENT_FRAGMENT_NODE, NOTATION_NODE, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_PRECEDING, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC } from "./Node.js";
4
2
  import { NodeBase } from "./NodeBase.js";
5
3
  import { ChildNodeBase } from "./ChildNodeBase.js";
6
4
  import { ParentNodeBase } from "./ParentNodeBase.js";
7
5
  import { ElementBase } from "./elements/ElementBase.js";
8
- import { Text } from "./Text.js";
9
- import { Document, ElementCreationOptions, DocumentReadyState, DocumentFragment } from "./Document.js";
10
- import { CharacterData } from "./CharacterData.js";
11
6
  import { Comment } from "./Comment.js";
12
7
  import { NodeList } from "./collection/NodeList.js";
13
- import { NodeListOf } from "./collection/NodeListOf.js";
8
+ import { NodeListOfImp } from "./collection/NodeListOfImp.js";
9
+ import { NodeIterator } from "./NodeIterator.js";
10
+ import { TreeWalker } from "./TreeWalker.js";
14
11
  export * from "./elements/index.js";
15
12
  import { GetRootNodeOptions } from "./GetRootNodeOptions.js";
16
13
  export {
17
14
  ATTRIBUTE_NODE,
18
15
  CDATA_SECTION_NODE,
19
16
  COMMENT_NODE,
20
- CharacterData,
21
- ChildNode,
22
17
  ChildNodeBase,
23
18
  Comment,
24
19
  DOCUMENT_FRAGMENT_NODE,
@@ -30,24 +25,19 @@ export {
30
25
  DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC,
31
26
  DOCUMENT_POSITION_PRECEDING,
32
27
  DOCUMENT_TYPE_NODE,
33
- Document,
34
- DocumentFragment,
35
- DocumentReadyState,
36
28
  ELEMENT_NODE,
37
29
  ENTITY_NODE,
38
30
  ENTITY_REFERENCE_NODE,
39
31
  ElementBase,
40
- ElementCreationOptions,
41
32
  GetRootNodeOptions,
42
33
  NOTATION_NODE,
43
- Node,
44
34
  NodeBase,
35
+ NodeIterator,
45
36
  NodeList,
46
- NodeListOf,
37
+ NodeListOfImp,
47
38
  PROCESSING_INSTRUCTION_NODE,
48
- ParentNode,
49
39
  ParentNodeBase,
50
40
  TEXT_NODE,
51
- Text
41
+ TreeWalker
52
42
  };
53
43
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/index.ts"],
4
- "sourcesContent": ["// Core Node interfaces\nexport { Node, ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE, ENTITY_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, DOCUMENT_FRAGMENT_NODE, NOTATION_NODE, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_PRECEDING, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC } from './Node';\nexport { ChildNode } from './ChildNode';\nexport { ParentNode } from './ParentNode';\n\n// Base implementations\nexport { NodeBase } from './NodeBase';\nexport { ChildNodeBase } from './ChildNodeBase';\nexport { ParentNodeBase } from './ParentNodeBase';\nexport { ElementBase } from './elements/ElementBase';\nexport { Text } from './Text';\n\n// Document class (concrete implementation)\nexport { Document, ElementCreationOptions, DocumentReadyState, DocumentFragment } from './Document';\n\n// Character data interfaces\nexport { CharacterData } from './CharacterData';\nexport { Comment } from './Comment';\n\n// Collections\nexport { NodeList } from './collection/NodeList';\nexport { NodeListOf } from './collection/NodeListOf';\n\n// Element interfaces (from element directory)\nexport * from './elements';\n\n// Options and interfaces\nexport { GetRootNodeOptions } from './GetRootNodeOptions';"],
5
- "mappings": "AACA,SAAS,MAAM,cAAc,gBAAgB,WAAW,oBAAoB,uBAAuB,aAAa,6BAA6B,cAAc,eAAe,oBAAoB,wBAAwB,eAAe,gCAAgC,6BAA6B,6BAA6B,4BAA4B,gCAAgC,iDAAiD;AAC5a,SAAS,iBAAiB;AAC1B,SAAS,kBAAkB;AAG3B,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAC5B,SAAS,YAAY;AAGrB,SAAS,UAAU,wBAAwB,oBAAoB,wBAAwB;AAGvF,SAAS,qBAAqB;AAC9B,SAAS,eAAe;AAGxB,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;AAG3B,cAAc;AAGd,SAAS,0BAA0B;",
4
+ "sourcesContent": ["// Core Node interfaces\nexport { ELEMENT_NODE, ATTRIBUTE_NODE, TEXT_NODE, CDATA_SECTION_NODE, ENTITY_REFERENCE_NODE, ENTITY_NODE, PROCESSING_INSTRUCTION_NODE, COMMENT_NODE, DOCUMENT_NODE, DOCUMENT_TYPE_NODE, DOCUMENT_FRAGMENT_NODE, NOTATION_NODE, DOCUMENT_POSITION_DISCONNECTED, DOCUMENT_POSITION_PRECEDING, DOCUMENT_POSITION_FOLLOWING, DOCUMENT_POSITION_CONTAINS, DOCUMENT_POSITION_CONTAINED_BY, DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC } from './Node';\n\n// Base implementations\nexport { NodeBase } from './NodeBase';\nexport { ChildNodeBase } from './ChildNodeBase';\nexport { ParentNodeBase } from './ParentNodeBase';\nexport { ElementBase } from './elements/ElementBase';\n\n// Document class (concrete implementation)\n\n// Character data interfaces\n// export { CharacterData } from './CharacterData';\nexport { Comment } from './Comment';\n\n// Collections\nexport { NodeList } from './collection/NodeList';\nexport { NodeListOfImp } from './collection/NodeListOfImp';\n\n// Traversal\nexport { NodeIterator } from './NodeIterator';\nexport { TreeWalker } from './TreeWalker';\n\n// Element interfaces (from element directory)\nexport * from './elements';\n\n// Options and interfaces\nexport { GetRootNodeOptions } from './GetRootNodeOptions';\n"],
5
+ "mappings": "AACA,SAAS,cAAc,gBAAgB,WAAW,oBAAoB,uBAAuB,aAAa,6BAA6B,cAAc,eAAe,oBAAoB,wBAAwB,eAAe,gCAAgC,6BAA6B,6BAA6B,4BAA4B,gCAAgC,iDAAiD;AAGta,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAC9B,SAAS,sBAAsB;AAC/B,SAAS,mBAAmB;AAM5B,SAAS,eAAe;AAGxB,SAAS,gBAAgB;AACzB,SAAS,qBAAqB;AAG9B,SAAS,oBAAoB;AAC7B,SAAS,kBAAkB;AAG3B,cAAc;AAGd,SAAS,0BAA0B;",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/utils/CSSSelector.ts"],
4
- "sourcesContent": ["import { Element } from '../node/elements/Element';\n\n/**\n * CSS Selector Parser and Matcher\n * Supports various CSS selector types including complex selectors\n */\nexport class CSSSelector {\n /**\n * Main method to check if an element matches a CSS selector\n */\n static matches(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Handle compound selectors (e.g., \"meta[charset]\", \"div.class\", \"input#id\")\n const components = this.parseSelector(selector);\n\n // All components must match for the selector to match\n for (const component of components) {\n if (!this.matchesSingleSelector(element, component)) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Parse a selector into individual components\n * e.g., \"div.user-panel[data-id='123']\" -> [\"div\", \".user-panel\", \"[data-id='123']\"]\n */\n private static parseSelector(selector: string): string[] {\n const components: string[] = [];\n let current = '';\n let inBrackets = false;\n let inQuotes = false;\n let quoteChar = '';\n\n for (let i = 0; i < selector.length; i++) {\n const char = selector[i];\n const prevChar = i > 0 ? selector[i - 1] : '';\n\n if (inQuotes) {\n current += char;\n if (char === quoteChar && prevChar !== '\\\\') {\n inQuotes = false;\n quoteChar = '';\n }\n continue;\n }\n\n if (char === '\"' || char === \"'\") {\n inQuotes = true;\n quoteChar = char;\n current += char;\n continue;\n }\n\n if (char === '[') {\n inBrackets = true;\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (char === ']') {\n inBrackets = false;\n current += char;\n components.push(current);\n current = '';\n } else if (!inBrackets && (char === '.' || char === '#')) {\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (!inBrackets && char === ':' && prevChar !== '\\\\') {\n // Only treat colon as pseudo-class separator if it's not escaped\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else {\n current += char;\n }\n }\n\n if (current) {\n components.push(current);\n }\n\n return components;\n }\n\n /**\n * Match a single selector component against an element\n */\n private static matchesSingleSelector(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Tag selector (e.g., \"div\", \"dr-wow\", \"wow\\\\:zz\")\n // Handle escaped colons in tag names\n const unescapedSelector = selector.replace(/\\\\:/g, ':');\n if (unescapedSelector.match(/^[a-zA-Z][a-zA-Z0-9:-]*$/)) {\n return element.tagName.toLowerCase() === unescapedSelector.toLowerCase();\n }\n\n // ID selector (e.g., \"#myId\")\n if (selector.startsWith('#')) {\n const id = selector.substring(1);\n return element.id === id;\n }\n\n // Class selector (e.g., \".myClass\")\n if (selector.startsWith('.')) {\n const className = selector.substring(1);\n return element.className.split(/\\s+/).includes(className);\n }\n\n // Pseudo-class selectors\n if (selector.startsWith(':')) {\n return this.matchesPseudoClass(element, selector);\n }\n\n // Attribute selector (e.g., \"[type='text']\", \"[disabled]\", \"[value*='test']\")\n if (selector.startsWith('[') && selector.endsWith(']')) {\n return this.matchesAttributeSelector(element, selector);\n }\n\n // Universal selector\n if (selector === '*') {\n return true;\n }\n\n // Unsupported selector\n return false;\n }\n\n /**\n * Match attribute selectors with various operators\n */\n private static matchesAttributeSelector(element: Element, selector: string): boolean {\n const attrContent = selector.slice(1, -1); // Remove [ and ]\n\n // Parse attribute selector: attr, attr=value, attr*=value, etc.\n const match = attrContent.match(/^([^=!*^$~|]+)(?:([=!*^$~|]+)(['\"]?)([^'\"]*)(['\"]?))?$/);\n\n if (!match) return false;\n\n let attrName = match[1].trim();\n const operator = match[2] || '';\n const attrValue = match[4] || '';\n\n // Handle escaped colons in attribute names\n attrName = attrName.replace(/\\\\:/g, ':');\n\n if (!operator) {\n // Just check if attribute exists: [disabled]\n return element.hasAttribute(attrName);\n }\n\n const elementValue = element.getAttribute(attrName);\n if (elementValue === null) return false;\n\n switch (operator) {\n case '=':\n // Exact match: [type=\"text\"]\n return elementValue === attrValue;\n\n case '!=':\n // Not equal: [value!=\"test\"]\n return elementValue !== attrValue;\n\n case '*=':\n // Contains: [value*=\"test\"]\n return elementValue.includes(attrValue);\n\n case '^=':\n // Starts with: [value^=\"test\"]\n return elementValue.startsWith(attrValue);\n\n case '$=':\n // Ends with: [value$=\"test\"]\n return elementValue.endsWith(attrValue);\n\n case '~=':\n // Word match: [class~=\"test\"]\n return elementValue.split(/\\s+/).includes(attrValue);\n\n case '|=':\n // Language match: [lang|=\"en\"]\n return elementValue === attrValue || elementValue.startsWith(attrValue + '-');\n\n default:\n return false;\n }\n }\n\n /**\n * Match pseudo-class selectors\n */\n private static matchesPseudoClass(element: Element, selector: string): boolean {\n const pseudoClass = selector.substring(1); // Remove :\n\n // Parse pseudo-class with parameters: nth-child(2), contains('text')\n const match = pseudoClass.match(/^([^(]+)(?:\\(([^)]*)\\))?$/);\n if (!match) return false;\n\n const pseudoName = match[1];\n const pseudoParam = match[2];\n\n switch (pseudoName) {\n case 'checked':\n // :checked - for input elements\n return this.isInputElement(element) &&\n (element.getAttribute('checked') !== null ||\n element.getAttribute('selected') !== null);\n\n case 'disabled':\n // :disabled\n return element.hasAttribute('disabled');\n\n case 'enabled':\n // :enabled\n return !element.hasAttribute('disabled');\n\n case 'focus':\n // :focus - check if element has focus (autofocus attribute or programmatically focused)\n return element.hasAttribute('autofocus') ||\n element.getAttribute('data-focused') === 'true';\n\n case 'first':\n case 'first-child':\n // :first or :first-child\n return this.isFirstChild(element);\n\n case 'last':\n case 'last-child':\n // :last or :last-child\n return this.isLastChild(element);\n\n case 'even':\n // :even (0-based indexing)\n return this.getChildIndex(element) % 2 === 0;\n\n case 'odd':\n // :odd (0-based indexing)\n return this.getChildIndex(element) % 2 === 1;\n\n case 'nth-child':\n // :nth-child(n)\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n - 1; // Convert to 0-based\n }\n return false;\n\n case 'eq':\n // :eq(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n;\n }\n return false;\n\n case 'gt':\n // :gt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) > n;\n }\n return false;\n\n case 'lt':\n // :lt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) < n;\n }\n return false;\n\n case 'contains':\n // :contains('text')\n if (pseudoParam) {\n const text = pseudoParam.replace(/^['\"]|['\"]$/g, ''); // Remove quotes\n return (element.textContent || '').includes(text);\n }\n return false;\n\n case 'visible':\n // :visible - simplified check\n return !element.hasAttribute('hidden') &&\n element.getAttribute('style')?.includes('display:none') !== true;\n\n case 'hidden':\n // :hidden\n return element.hasAttribute('hidden') ||\n element.getAttribute('style')?.includes('display:none') === true;\n\n case 'has':\n // :has(selector) - simplified implementation\n if (pseudoParam && 'querySelector' in element) {\n try {\n return (element as any).querySelector(pseudoParam) !== null;\n } catch {\n return false;\n }\n }\n return false;\n\n case 'not':\n // :not(selector) - simplified implementation\n if (pseudoParam) {\n return !CSSSelector.matches(element, pseudoParam);\n }\n return false;\n\n default:\n // Unsupported pseudo-class\n return false;\n }\n }\n\n /**\n * Helper methods for pseudo-class matching\n */\n private static isInputElement(element: Element): boolean {\n const tagName = element.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'select' || tagName === 'textarea';\n }\n\n private static isFirstChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[0] === element;\n }\n\n private static isLastChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[children.length - 1] === element;\n }\n\n private static getChildIndex(element: Element): number {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return -1;\n\n const children = (parent as any).children;\n for (let i = 0; i < children.length; i++) {\n if (children[i] === element) {\n return i;\n }\n }\n return -1;\n }\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["\n/**\n * CSS Selector Parser and Matcher\n * Supports various CSS selector types including complex selectors\n */\nexport class CSSSelector {\n /**\n * Main method to check if an element matches a CSS selector\n */\n static matches(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Handle compound selectors (e.g., \"meta[charset]\", \"div.class\", \"input#id\")\n const components = this.parseSelector(selector);\n\n // All components must match for the selector to match\n for (const component of components) {\n if (!this.matchesSingleSelector(element, component)) {\n return false;\n }\n }\n\n return true;\n }\n\n /**\n * Parse a selector into individual components\n * e.g., \"div.user-panel[data-id='123']\" -> [\"div\", \".user-panel\", \"[data-id='123']\"]\n */\n private static parseSelector(selector: string): string[] {\n const components: string[] = [];\n let current = '';\n let inBrackets = false;\n let inQuotes = false;\n let quoteChar = '';\n\n for (let i = 0; i < selector.length; i++) {\n const char = selector[i];\n const prevChar = i > 0 ? selector[i - 1] : '';\n\n if (inQuotes) {\n current += char;\n if (char === quoteChar && prevChar !== '\\\\') {\n inQuotes = false;\n quoteChar = '';\n }\n continue;\n }\n\n if (char === '\"' || char === \"'\") {\n inQuotes = true;\n quoteChar = char;\n current += char;\n continue;\n }\n\n if (char === '[') {\n inBrackets = true;\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (char === ']') {\n inBrackets = false;\n current += char;\n components.push(current);\n current = '';\n } else if (!inBrackets && (char === '.' || char === '#')) {\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else if (!inBrackets && char === ':' && prevChar !== '\\\\') {\n // Only treat colon as pseudo-class separator if it's not escaped\n if (current) {\n components.push(current);\n current = '';\n }\n current += char;\n } else {\n current += char;\n }\n }\n\n if (current) {\n components.push(current);\n }\n\n return components;\n }\n\n /**\n * Match a single selector component against an element\n */\n private static matchesSingleSelector(element: Element, selector: string): boolean {\n selector = selector.trim();\n\n // Tag selector (e.g., \"div\", \"dr-wow\", \"wow\\\\:zz\")\n // Handle escaped colons in tag names\n const unescapedSelector = selector.replace(/\\\\:/g, ':');\n if (unescapedSelector.match(/^[a-zA-Z][a-zA-Z0-9:-]*$/)) {\n return element.tagName.toLowerCase() === unescapedSelector.toLowerCase();\n }\n\n // ID selector (e.g., \"#myId\")\n if (selector.startsWith('#')) {\n const id = selector.substring(1);\n return element.id === id;\n }\n\n // Class selector (e.g., \".myClass\")\n if (selector.startsWith('.')) {\n const className = selector.substring(1);\n return element.className.split(/\\s+/).includes(className);\n }\n\n // Pseudo-class selectors\n if (selector.startsWith(':')) {\n return this.matchesPseudoClass(element, selector);\n }\n\n // Attribute selector (e.g., \"[type='text']\", \"[disabled]\", \"[value*='test']\")\n if (selector.startsWith('[') && selector.endsWith(']')) {\n return this.matchesAttributeSelector(element, selector);\n }\n\n // Universal selector\n if (selector === '*') {\n return true;\n }\n\n // Unsupported selector\n return false;\n }\n\n /**\n * Match attribute selectors with various operators\n */\n private static matchesAttributeSelector(element: Element, selector: string): boolean {\n const attrContent = selector.slice(1, -1); // Remove [ and ]\n\n // Parse attribute selector: attr, attr=value, attr*=value, etc.\n const match = attrContent.match(/^([^=!*^$~|]+)(?:([=!*^$~|]+)(['\"]?)([^'\"]*)(['\"]?))?$/);\n\n if (!match) return false;\n\n let attrName = match[1].trim();\n const operator = match[2] || '';\n const attrValue = match[4] || '';\n\n // Handle escaped colons in attribute names\n attrName = attrName.replace(/\\\\:/g, ':');\n\n if (!operator) {\n // Just check if attribute exists: [disabled]\n return element.hasAttribute(attrName);\n }\n\n const elementValue = element.getAttribute(attrName);\n if (elementValue === null) return false;\n\n switch (operator) {\n case '=':\n // Exact match: [type=\"text\"]\n return elementValue === attrValue;\n\n case '!=':\n // Not equal: [value!=\"test\"]\n return elementValue !== attrValue;\n\n case '*=':\n // Contains: [value*=\"test\"]\n return elementValue.includes(attrValue);\n\n case '^=':\n // Starts with: [value^=\"test\"]\n return elementValue.startsWith(attrValue);\n\n case '$=':\n // Ends with: [value$=\"test\"]\n return elementValue.endsWith(attrValue);\n\n case '~=':\n // Word match: [class~=\"test\"]\n return elementValue.split(/\\s+/).includes(attrValue);\n\n case '|=':\n // Language match: [lang|=\"en\"]\n return elementValue === attrValue || elementValue.startsWith(attrValue + '-');\n\n default:\n return false;\n }\n }\n\n /**\n * Match pseudo-class selectors\n */\n private static matchesPseudoClass(element: Element, selector: string): boolean {\n const pseudoClass = selector.substring(1); // Remove :\n\n // Parse pseudo-class with parameters: nth-child(2), contains('text')\n const match = pseudoClass.match(/^([^(]+)(?:\\(([^)]*)\\))?$/);\n if (!match) return false;\n\n const pseudoName = match[1];\n const pseudoParam = match[2];\n\n switch (pseudoName) {\n case 'checked':\n // :checked - for input elements\n return this.isInputElement(element) &&\n (element.getAttribute('checked') !== null ||\n element.getAttribute('selected') !== null);\n\n case 'disabled':\n // :disabled\n return element.hasAttribute('disabled');\n\n case 'enabled':\n // :enabled\n return !element.hasAttribute('disabled');\n\n case 'focus':\n // :focus - check if element has focus (autofocus attribute or programmatically focused)\n return element.hasAttribute('autofocus') ||\n element.getAttribute('data-focused') === 'true';\n\n case 'first':\n case 'first-child':\n // :first or :first-child\n return this.isFirstChild(element);\n\n case 'last':\n case 'last-child':\n // :last or :last-child\n return this.isLastChild(element);\n\n case 'even':\n // :even (0-based indexing)\n return this.getChildIndex(element) % 2 === 0;\n\n case 'odd':\n // :odd (0-based indexing)\n return this.getChildIndex(element) % 2 === 1;\n\n case 'nth-child':\n // :nth-child(n)\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n - 1; // Convert to 0-based\n }\n return false;\n\n case 'eq':\n // :eq(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) === n;\n }\n return false;\n\n case 'gt':\n // :gt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) > n;\n }\n return false;\n\n case 'lt':\n // :lt(n) - jQuery-style\n if (pseudoParam) {\n const n = parseInt(pseudoParam, 10);\n return this.getChildIndex(element) < n;\n }\n return false;\n\n case 'contains':\n // :contains('text')\n if (pseudoParam) {\n const text = pseudoParam.replace(/^['\"]|['\"]$/g, ''); // Remove quotes\n return (element.textContent || '').includes(text);\n }\n return false;\n\n case 'visible':\n // :visible - simplified check\n return !element.hasAttribute('hidden') &&\n element.getAttribute('style')?.includes('display:none') !== true;\n\n case 'hidden':\n // :hidden\n return element.hasAttribute('hidden') ||\n element.getAttribute('style')?.includes('display:none') === true;\n\n case 'has':\n // :has(selector) - simplified implementation\n if (pseudoParam && 'querySelector' in element) {\n try {\n return (element as any).querySelector(pseudoParam) !== null;\n } catch {\n return false;\n }\n }\n return false;\n\n case 'not':\n // :not(selector) - simplified implementation\n if (pseudoParam) {\n return !CSSSelector.matches(element, pseudoParam);\n }\n return false;\n\n default:\n // Unsupported pseudo-class\n return false;\n }\n }\n\n /**\n * Helper methods for pseudo-class matching\n */\n private static isInputElement(element: Element): boolean {\n const tagName = element.tagName.toLowerCase();\n return tagName === 'input' || tagName === 'select' || tagName === 'textarea';\n }\n\n private static isFirstChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[0] === element;\n }\n\n private static isLastChild(element: Element): boolean {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return false;\n\n const children = (parent as any).children;\n return children.length > 0 && children[children.length - 1] === element;\n }\n\n private static getChildIndex(element: Element): number {\n const parent = element.parentNode;\n if (!parent || !('children' in parent)) return -1;\n\n const children = (parent as any).children;\n for (let i = 0; i < children.length; i++) {\n if (children[i] === element) {\n return i;\n }\n }\n return -1;\n }\n}"],
5
+ "mappings": "AAKO,MAAM,YAAY;AAAA;AAAA;AAAA;AAAA,EAIrB,OAAO,QAAQ,SAAkB,UAA2B;AACxD,eAAW,SAAS,KAAK;AAGzB,UAAM,aAAa,KAAK,cAAc,QAAQ;AAG9C,eAAW,aAAa,YAAY;AAChC,UAAI,CAAC,KAAK,sBAAsB,SAAS,SAAS,GAAG;AACjD,eAAO;AAAA,MACX;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,OAAe,cAAc,UAA4B;AACrD,UAAM,aAAuB,CAAC;AAC9B,QAAI,UAAU;AACd,QAAI,aAAa;AACjB,QAAI,WAAW;AACf,QAAI,YAAY;AAEhB,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,YAAM,OAAO,SAAS,CAAC;AACvB,YAAM,WAAW,IAAI,IAAI,SAAS,IAAI,CAAC,IAAI;AAE3C,UAAI,UAAU;AACV,mBAAW;AACX,YAAI,SAAS,aAAa,aAAa,MAAM;AACzC,qBAAW;AACX,sBAAY;AAAA,QAChB;AACA;AAAA,MACJ;AAEA,UAAI,SAAS,OAAO,SAAS,KAAK;AAC9B,mBAAW;AACX,oBAAY;AACZ,mBAAW;AACX;AAAA,MACJ;AAEA,UAAI,SAAS,KAAK;AACd,qBAAa;AACb,YAAI,SAAS;AACT,qBAAW,KAAK,OAAO;AACvB,oBAAU;AAAA,QACd;AACA,mBAAW;AAAA,MACf,WAAW,SAAS,KAAK;AACrB,qBAAa;AACb,mBAAW;AACX,mBAAW,KAAK,OAAO;AACvB,kBAAU;AAAA,MACd,WAAW,CAAC,eAAe,SAAS,OAAO,SAAS,MAAM;AACtD,YAAI,SAAS;AACT,qBAAW,KAAK,OAAO;AACvB,oBAAU;AAAA,QACd;AACA,mBAAW;AAAA,MACf,WAAW,CAAC,cAAc,SAAS,OAAO,aAAa,MAAM;AAEzD,YAAI,SAAS;AACT,qBAAW,KAAK,OAAO;AACvB,oBAAU;AAAA,QACd;AACA,mBAAW;AAAA,MACf,OAAO;AACH,mBAAW;AAAA,MACf;AAAA,IACJ;AAEA,QAAI,SAAS;AACT,iBAAW,KAAK,OAAO;AAAA,IAC3B;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,sBAAsB,SAAkB,UAA2B;AAC9E,eAAW,SAAS,KAAK;AAIzB,UAAM,oBAAoB,SAAS,QAAQ,QAAQ,GAAG;AACtD,QAAI,kBAAkB,MAAM,0BAA0B,GAAG;AACrD,aAAO,QAAQ,QAAQ,YAAY,MAAM,kBAAkB,YAAY;AAAA,IAC3E;AAGA,QAAI,SAAS,WAAW,GAAG,GAAG;AAC1B,YAAM,KAAK,SAAS,UAAU,CAAC;AAC/B,aAAO,QAAQ,OAAO;AAAA,IAC1B;AAGA,QAAI,SAAS,WAAW,GAAG,GAAG;AAC1B,YAAM,YAAY,SAAS,UAAU,CAAC;AACtC,aAAO,QAAQ,UAAU,MAAM,KAAK,EAAE,SAAS,SAAS;AAAA,IAC5D;AAGA,QAAI,SAAS,WAAW,GAAG,GAAG;AAC1B,aAAO,KAAK,mBAAmB,SAAS,QAAQ;AAAA,IACpD;AAGA,QAAI,SAAS,WAAW,GAAG,KAAK,SAAS,SAAS,GAAG,GAAG;AACpD,aAAO,KAAK,yBAAyB,SAAS,QAAQ;AAAA,IAC1D;AAGA,QAAI,aAAa,KAAK;AAClB,aAAO;AAAA,IACX;AAGA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,yBAAyB,SAAkB,UAA2B;AACjF,UAAM,cAAc,SAAS,MAAM,GAAG,EAAE;AAGxC,UAAM,QAAQ,YAAY,MAAM,wDAAwD;AAExF,QAAI,CAAC,MAAO,QAAO;AAEnB,QAAI,WAAW,MAAM,CAAC,EAAE,KAAK;AAC7B,UAAM,WAAW,MAAM,CAAC,KAAK;AAC7B,UAAM,YAAY,MAAM,CAAC,KAAK;AAG9B,eAAW,SAAS,QAAQ,QAAQ,GAAG;AAEvC,QAAI,CAAC,UAAU;AAEX,aAAO,QAAQ,aAAa,QAAQ;AAAA,IACxC;AAEA,UAAM,eAAe,QAAQ,aAAa,QAAQ;AAClD,QAAI,iBAAiB,KAAM,QAAO;AAElC,YAAQ,UAAU;AAAA,MACd,KAAK;AAED,eAAO,iBAAiB;AAAA,MAE5B,KAAK;AAED,eAAO,iBAAiB;AAAA,MAE5B,KAAK;AAED,eAAO,aAAa,SAAS,SAAS;AAAA,MAE1C,KAAK;AAED,eAAO,aAAa,WAAW,SAAS;AAAA,MAE5C,KAAK;AAED,eAAO,aAAa,SAAS,SAAS;AAAA,MAE1C,KAAK;AAED,eAAO,aAAa,MAAM,KAAK,EAAE,SAAS,SAAS;AAAA,MAEvD,KAAK;AAED,eAAO,iBAAiB,aAAa,aAAa,WAAW,YAAY,GAAG;AAAA,MAEhF;AACI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,mBAAmB,SAAkB,UAA2B;AAC3E,UAAM,cAAc,SAAS,UAAU,CAAC;AAGxC,UAAM,QAAQ,YAAY,MAAM,2BAA2B;AAC3D,QAAI,CAAC,MAAO,QAAO;AAEnB,UAAM,aAAa,MAAM,CAAC;AAC1B,UAAM,cAAc,MAAM,CAAC;AAE3B,YAAQ,YAAY;AAAA,MAChB,KAAK;AAED,eAAO,KAAK,eAAe,OAAO,MAC7B,QAAQ,aAAa,SAAS,MAAM,QACjC,QAAQ,aAAa,UAAU,MAAM;AAAA,MAEjD,KAAK;AAED,eAAO,QAAQ,aAAa,UAAU;AAAA,MAE1C,KAAK;AAED,eAAO,CAAC,QAAQ,aAAa,UAAU;AAAA,MAE3C,KAAK;AAED,eAAO,QAAQ,aAAa,WAAW,KACnC,QAAQ,aAAa,cAAc,MAAM;AAAA,MAEjD,KAAK;AAAA,MACL,KAAK;AAED,eAAO,KAAK,aAAa,OAAO;AAAA,MAEpC,KAAK;AAAA,MACL,KAAK;AAED,eAAO,KAAK,YAAY,OAAO;AAAA,MAEnC,KAAK;AAED,eAAO,KAAK,cAAc,OAAO,IAAI,MAAM;AAAA,MAE/C,KAAK;AAED,eAAO,KAAK,cAAc,OAAO,IAAI,MAAM;AAAA,MAE/C,KAAK;AAED,YAAI,aAAa;AACb,gBAAM,IAAI,SAAS,aAAa,EAAE;AAClC,iBAAO,KAAK,cAAc,OAAO,MAAM,IAAI;AAAA,QAC/C;AACA,eAAO;AAAA,MAEX,KAAK;AAED,YAAI,aAAa;AACb,gBAAM,IAAI,SAAS,aAAa,EAAE;AAClC,iBAAO,KAAK,cAAc,OAAO,MAAM;AAAA,QAC3C;AACA,eAAO;AAAA,MAEX,KAAK;AAED,YAAI,aAAa;AACb,gBAAM,IAAI,SAAS,aAAa,EAAE;AAClC,iBAAO,KAAK,cAAc,OAAO,IAAI;AAAA,QACzC;AACA,eAAO;AAAA,MAEX,KAAK;AAED,YAAI,aAAa;AACb,gBAAM,IAAI,SAAS,aAAa,EAAE;AAClC,iBAAO,KAAK,cAAc,OAAO,IAAI;AAAA,QACzC;AACA,eAAO;AAAA,MAEX,KAAK;AAED,YAAI,aAAa;AACb,gBAAM,OAAO,YAAY,QAAQ,gBAAgB,EAAE;AACnD,kBAAQ,QAAQ,eAAe,IAAI,SAAS,IAAI;AAAA,QACpD;AACA,eAAO;AAAA,MAEX,KAAK;AAED,eAAO,CAAC,QAAQ,aAAa,QAAQ,KACjC,QAAQ,aAAa,OAAO,GAAG,SAAS,cAAc,MAAM;AAAA,MAEpE,KAAK;AAED,eAAO,QAAQ,aAAa,QAAQ,KAChC,QAAQ,aAAa,OAAO,GAAG,SAAS,cAAc,MAAM;AAAA,MAEpE,KAAK;AAED,YAAI,eAAe,mBAAmB,SAAS;AAC3C,cAAI;AACA,mBAAQ,QAAgB,cAAc,WAAW,MAAM;AAAA,UAC3D,QAAQ;AACJ,mBAAO;AAAA,UACX;AAAA,QACJ;AACA,eAAO;AAAA,MAEX,KAAK;AAED,YAAI,aAAa;AACb,iBAAO,CAAC,YAAY,QAAQ,SAAS,WAAW;AAAA,QACpD;AACA,eAAO;AAAA,MAEX;AAEI,eAAO;AAAA,IACf;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA,EAKA,OAAe,eAAe,SAA2B;AACrD,UAAM,UAAU,QAAQ,QAAQ,YAAY;AAC5C,WAAO,YAAY,WAAW,YAAY,YAAY,YAAY;AAAA,EACtE;AAAA,EAEA,OAAe,aAAa,SAA2B;AACnD,UAAM,SAAS,QAAQ;AACvB,QAAI,CAAC,UAAU,EAAE,cAAc,QAAS,QAAO;AAE/C,UAAM,WAAY,OAAe;AACjC,WAAO,SAAS,SAAS,KAAK,SAAS,CAAC,MAAM;AAAA,EAClD;AAAA,EAEA,OAAe,YAAY,SAA2B;AAClD,UAAM,SAAS,QAAQ;AACvB,QAAI,CAAC,UAAU,EAAE,cAAc,QAAS,QAAO;AAE/C,UAAM,WAAY,OAAe;AACjC,WAAO,SAAS,SAAS,KAAK,SAAS,SAAS,SAAS,CAAC,MAAM;AAAA,EACpE;AAAA,EAEA,OAAe,cAAc,SAA0B;AACnD,UAAM,SAAS,QAAQ;AACvB,QAAI,CAAC,UAAU,EAAE,cAAc,QAAS,QAAO;AAE/C,UAAM,WAAY,OAAe;AACjC,aAAS,IAAI,GAAG,IAAI,SAAS,QAAQ,KAAK;AACtC,UAAI,SAAS,CAAC,MAAM,SAAS;AACzB,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AACJ;",
6
6
  "names": []
7
7
  }