@dooboostore/dom-parser 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/dist/cjs/DomParser.js +10 -1
  2. package/dist/cjs/DomParser.js.map +2 -2
  3. package/dist/cjs/factory/ElementFactory.js +27 -6
  4. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  5. package/dist/cjs/index.js +4 -0
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/node/CharacterData.js.map +1 -1
  8. package/dist/cjs/node/ChildNode.js +0 -15
  9. package/dist/cjs/node/ChildNode.js.map +3 -3
  10. package/dist/cjs/node/ChildNodeBase.js +20 -0
  11. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  12. package/dist/cjs/node/Comment.js.map +2 -2
  13. package/dist/cjs/node/Document.js +0 -27
  14. package/dist/cjs/node/Document.js.map +4 -4
  15. package/dist/cjs/node/DocumentBase.js +168 -205
  16. package/dist/cjs/node/DocumentBase.js.map +2 -2
  17. package/dist/cjs/node/DocumentFragment.js +0 -15
  18. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  19. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  20. package/dist/cjs/node/Node.js.map +1 -1
  21. package/dist/cjs/node/NodeBase.js +44 -2
  22. package/dist/cjs/node/NodeBase.js.map +2 -2
  23. package/dist/cjs/node/NodeFilter.js +43 -0
  24. package/dist/cjs/node/NodeFilter.js.map +7 -0
  25. package/dist/cjs/node/NodeIterator.js +1 -28
  26. package/dist/cjs/node/NodeIterator.js.map +2 -2
  27. package/dist/cjs/node/ParentNode.js +0 -15
  28. package/dist/cjs/node/ParentNode.js.map +3 -3
  29. package/dist/cjs/node/ParentNodeBase.js +10 -10
  30. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  31. package/dist/cjs/node/ShadowRootBase.js +79 -0
  32. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  33. package/dist/cjs/node/Text.js +0 -15
  34. package/dist/cjs/node/Text.js.map +3 -3
  35. package/dist/cjs/node/TextBase.js +0 -3
  36. package/dist/cjs/node/TextBase.js.map +2 -2
  37. package/dist/cjs/node/TreeWalker.js +272 -0
  38. package/dist/cjs/node/TreeWalker.js.map +7 -0
  39. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  40. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  41. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  42. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  43. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  44. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  45. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  47. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  48. package/dist/cjs/node/collection/index.js +6 -6
  49. package/dist/cjs/node/collection/index.js.map +2 -2
  50. package/dist/cjs/node/elements/Element.js +0 -15
  51. package/dist/cjs/node/elements/Element.js.map +3 -3
  52. package/dist/cjs/node/elements/ElementBase.js +163 -331
  53. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  54. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  55. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLAudioElement.js} +9 -16
  56. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  57. package/dist/cjs/node/elements/HTMLButtonElement.js +1 -1
  58. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLDListElement.js +29 -0
  60. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  61. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  62. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  64. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  65. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  66. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  67. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  68. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  69. package/dist/cjs/node/elements/HTMLElement.js +10 -0
  70. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLElementBase.js +41 -43
  72. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  73. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  74. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  75. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  76. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  77. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  78. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  79. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  80. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  81. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  82. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  83. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  84. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  85. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  86. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  87. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  88. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  89. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  90. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  91. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  92. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  93. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  94. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  95. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  96. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  97. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  98. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  99. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  100. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  101. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  102. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  103. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  104. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  105. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  106. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  107. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  108. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  109. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  110. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  111. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  112. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  113. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  114. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  115. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  116. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  118. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  119. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  120. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  122. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  123. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  124. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  125. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  126. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  127. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  129. package/dist/cjs/node/elements/index.js +181 -92
  130. package/dist/cjs/node/elements/index.js.map +2 -2
  131. package/dist/cjs/node/index.js +6 -16
  132. package/dist/cjs/node/index.js.map +2 -2
  133. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  134. package/dist/cjs/window/CustomElementRegistryImp.js +105 -0
  135. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  136. package/dist/cjs/window/Window.js +0 -15
  137. package/dist/cjs/window/Window.js.map +3 -3
  138. package/dist/cjs/window/WindowBase.js +210 -613
  139. package/dist/cjs/window/WindowBase.js.map +2 -2
  140. package/dist/cjs/window/index.js +0 -5
  141. package/dist/cjs/window/index.js.map +2 -2
  142. package/dist/esm/DomParser.js +10 -1
  143. package/dist/esm/DomParser.js.map +2 -2
  144. package/dist/esm/factory/ElementFactory.js +27 -6
  145. package/dist/esm/factory/ElementFactory.js.map +2 -2
  146. package/dist/esm/index.js +4 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/node/ChildNodeBase.js +20 -0
  149. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  150. package/dist/esm/node/Comment.js.map +2 -2
  151. package/dist/esm/node/Document.js +0 -8
  152. package/dist/esm/node/Document.js.map +4 -4
  153. package/dist/esm/node/DocumentBase.js +165 -202
  154. package/dist/esm/node/DocumentBase.js.map +2 -2
  155. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  156. package/dist/esm/node/Node.js.map +1 -1
  157. package/dist/esm/node/NodeBase.js +45 -22
  158. package/dist/esm/node/NodeBase.js.map +2 -2
  159. package/dist/esm/node/NodeFilter.js +24 -0
  160. package/dist/esm/node/NodeFilter.js.map +7 -0
  161. package/dist/esm/node/NodeIterator.js +1 -28
  162. package/dist/esm/node/NodeIterator.js.map +2 -2
  163. package/dist/esm/node/ParentNodeBase.js +4 -4
  164. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  165. package/dist/esm/node/ShadowRootBase.js +60 -0
  166. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  167. package/dist/esm/node/TextBase.js +0 -3
  168. package/dist/esm/node/TextBase.js.map +2 -2
  169. package/dist/esm/node/TreeWalker.js +253 -0
  170. package/dist/esm/node/TreeWalker.js.map +7 -0
  171. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  172. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  173. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  174. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  175. package/dist/esm/node/collection/NodeList.js.map +1 -1
  176. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  177. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  178. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  179. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  180. package/dist/esm/node/collection/index.js +6 -6
  181. package/dist/esm/node/collection/index.js.map +2 -2
  182. package/dist/esm/node/elements/ElementBase.js +163 -331
  183. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  184. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  185. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  186. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  187. package/dist/esm/node/elements/HTMLButtonElement.js +1 -1
  188. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  189. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  190. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  191. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  192. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  193. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  194. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  195. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  196. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  197. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  198. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  199. package/dist/esm/node/elements/HTMLElement.js +6 -0
  200. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  201. package/dist/esm/node/elements/HTMLElementBase.js +40 -42
  202. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  203. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  204. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  205. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  206. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  207. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  208. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  209. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  210. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  211. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  212. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  213. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  214. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  215. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  216. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  217. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  218. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  219. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  220. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  221. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  222. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  223. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  224. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  225. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  226. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  227. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  228. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  229. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  230. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  231. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  232. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  233. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  234. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  235. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  236. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  237. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  238. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  239. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  240. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  241. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  242. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  243. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  244. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  245. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  246. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  247. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  248. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  249. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  250. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  251. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  255. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  256. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  257. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  258. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  259. package/dist/esm/node/elements/index.js +182 -93
  260. package/dist/esm/node/elements/index.js.map +2 -2
  261. package/dist/esm/node/index.js +7 -17
  262. package/dist/esm/node/index.js.map +2 -2
  263. package/dist/esm/utils/CSSSelector.js.map +2 -2
  264. package/dist/esm/window/CustomElementRegistryImp.js +86 -0
  265. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  266. package/dist/esm/window/WindowBase.js +259 -597
  267. package/dist/esm/window/WindowBase.js.map +2 -2
  268. package/dist/esm/window/index.js +0 -5
  269. package/dist/esm/window/index.js.map +2 -2
  270. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3449 -3551
  271. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  272. package/dist/types/DomParser.d.ts.map +1 -1
  273. package/dist/types/factory/ElementFactory.d.ts +1 -1
  274. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  275. package/dist/types/index.d.ts +3 -1
  276. package/dist/types/index.d.ts.map +1 -1
  277. package/dist/types/node/CharacterData.d.ts +0 -2
  278. package/dist/types/node/CharacterData.d.ts.map +1 -1
  279. package/dist/types/node/ChildNode.d.ts +0 -38
  280. package/dist/types/node/ChildNode.d.ts.map +1 -1
  281. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  282. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  283. package/dist/types/node/Comment.d.ts +1 -1
  284. package/dist/types/node/Comment.d.ts.map +1 -1
  285. package/dist/types/node/Document.d.ts +0 -856
  286. package/dist/types/node/Document.d.ts.map +1 -1
  287. package/dist/types/node/DocumentBase.d.ts +68 -110
  288. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  289. package/dist/types/node/DocumentFragment.d.ts +0 -38
  290. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  291. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  292. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  293. package/dist/types/node/Node.d.ts +0 -213
  294. package/dist/types/node/Node.d.ts.map +1 -1
  295. package/dist/types/node/NodeBase.d.ts +11 -8
  296. package/dist/types/node/NodeBase.d.ts.map +1 -1
  297. package/dist/types/node/NodeFilter.d.ts +25 -0
  298. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  299. package/dist/types/node/NodeIterator.d.ts +0 -34
  300. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  301. package/dist/types/node/ParentNode.d.ts +0 -84
  302. package/dist/types/node/ParentNode.d.ts.map +1 -1
  303. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  304. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  305. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  306. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  307. package/dist/types/node/Text.d.ts +0 -24
  308. package/dist/types/node/Text.d.ts.map +1 -1
  309. package/dist/types/node/TextBase.d.ts +2 -3
  310. package/dist/types/node/TextBase.d.ts.map +1 -1
  311. package/dist/types/node/TreeWalker.d.ts +48 -0
  312. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  313. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  314. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  315. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  316. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  317. package/dist/types/node/collection/NodeList.d.ts +0 -1
  318. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  319. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  320. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  321. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  322. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  323. package/dist/types/node/collection/index.d.ts +3 -3
  324. package/dist/types/node/collection/index.d.ts.map +1 -1
  325. package/dist/types/node/elements/Element.d.ts +0 -687
  326. package/dist/types/node/elements/Element.d.ts.map +1 -1
  327. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  328. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  329. package/dist/types/node/elements/HTMLAreaElement.d.ts +0 -1
  330. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  331. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  332. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  333. package/dist/types/node/elements/HTMLButtonElement.d.ts +1 -1
  334. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  335. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  336. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  337. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  338. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  339. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  340. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  341. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  342. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  343. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  344. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  345. package/dist/types/node/elements/HTMLElement.d.ts +2 -119
  346. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  347. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  348. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  349. package/dist/types/node/elements/HTMLEmbedElement.d.ts +0 -1
  350. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  351. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  352. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  353. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  354. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  355. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  356. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  357. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  358. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  359. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  360. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  361. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  362. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  363. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  364. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  365. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  366. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  367. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  368. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  369. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  370. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  371. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  372. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  373. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  374. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  375. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  376. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  377. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  378. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  379. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  380. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  381. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  382. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  383. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  384. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  385. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  386. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  387. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  388. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  389. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  390. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  391. package/dist/types/node/elements/HTMLTableElement.d.ts +3 -4
  392. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  393. package/dist/types/node/elements/HTMLTbodyElement.d.ts +2 -3
  394. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  395. package/dist/types/node/elements/HTMLTemplateElement.d.ts +0 -1
  396. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  397. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  398. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  399. package/dist/types/node/elements/HTMLTfootElement.d.ts +2 -3
  400. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  401. package/dist/types/node/elements/HTMLTheadElement.d.ts +2 -3
  402. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  403. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  404. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  405. package/dist/types/node/elements/HTMLTrElement.d.ts +2 -3
  406. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  407. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  408. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  409. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  410. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  411. package/dist/types/node/elements/index.d.ts +106 -52
  412. package/dist/types/node/elements/index.d.ts.map +1 -1
  413. package/dist/types/node/index.d.ts +4 -7
  414. package/dist/types/node/index.d.ts.map +1 -1
  415. package/dist/types/utils/CSSSelector.d.ts +0 -1
  416. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  417. package/dist/types/window/CustomElementRegistryImp.d.ts +18 -0
  418. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  419. package/dist/types/window/Window.d.ts +0 -619
  420. package/dist/types/window/Window.d.ts.map +1 -1
  421. package/dist/types/window/WindowBase.d.ts +253 -286
  422. package/dist/types/window/WindowBase.d.ts.map +1 -1
  423. package/dist/types/window/index.d.ts +0 -1
  424. package/dist/types/window/index.d.ts.map +1 -1
  425. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3460 -3562
  426. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  427. package/package.json +1 -1
  428. package/src/DomParser.ts +28 -20
  429. package/src/factory/ElementFactory.ts +79 -53
  430. package/src/index.ts +11 -10
  431. package/src/node/CharacterData.ts +0 -2
  432. package/src/node/ChildNode.ts +42 -42
  433. package/src/node/ChildNodeBase.ts +60 -39
  434. package/src/node/Comment.ts +60 -60
  435. package/src/node/Document.ts +129 -882
  436. package/src/node/DocumentBase.ts +371 -467
  437. package/src/node/DocumentFragment.ts +38 -44
  438. package/src/node/DocumentFragmentBase.ts +4 -9
  439. package/src/node/Node.ts +231 -224
  440. package/src/node/NodeBase.ts +469 -443
  441. package/src/node/NodeFilter.ts +50 -0
  442. package/src/node/NodeIterator.ts +117 -172
  443. package/src/node/ParentNode.ts +93 -93
  444. package/src/node/ParentNodeBase.ts +7 -10
  445. package/src/node/ShadowRootBase.ts +87 -0
  446. package/src/node/Text.ts +30 -30
  447. package/src/node/TextBase.ts +92 -94
  448. package/src/node/TreeWalker.ts +280 -0
  449. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  450. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  451. package/src/node/collection/NodeList.ts +1 -1
  452. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  453. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  454. package/src/node/collection/index.ts +3 -3
  455. package/src/node/elements/Element.ts +212 -772
  456. package/src/node/elements/ElementBase.ts +840 -1204
  457. package/src/node/elements/HTMLAreaElement.ts +0 -1
  458. package/src/node/elements/HTMLAudioElement.ts +10 -0
  459. package/src/node/elements/HTMLButtonElement.ts +63 -63
  460. package/src/node/elements/HTMLDListElement.ts +2 -0
  461. package/src/node/elements/HTMLDataElement.ts +6 -0
  462. package/src/node/elements/HTMLDataListElement.ts +2 -0
  463. package/src/node/elements/HTMLDetailsElement.ts +2 -0
  464. package/src/node/elements/HTMLDialogElement.ts +2 -0
  465. package/src/node/elements/HTMLElement.ts +2 -137
  466. package/src/node/elements/HTMLElementBase.ts +466 -355
  467. package/src/node/elements/HTMLEmbedElement.ts +0 -1
  468. package/src/node/elements/HTMLFieldSetElement.ts +2 -0
  469. package/src/node/elements/HTMLHRElement.ts +2 -0
  470. package/src/node/elements/HTMLIFrameElement.ts +2 -0
  471. package/src/node/elements/HTMLLabelElement.ts +2 -0
  472. package/src/node/elements/HTMLLegendElement.ts +2 -0
  473. package/src/node/elements/HTMLMapElement.ts +2 -0
  474. package/src/node/elements/HTMLMeterElement.ts +2 -0
  475. package/src/node/elements/HTMLModElement.ts +2 -0
  476. package/src/node/elements/HTMLObjectElement.ts +2 -0
  477. package/src/node/elements/HTMLOptGroupElement.ts +2 -0
  478. package/src/node/elements/HTMLOptionElement.ts +2 -0
  479. package/src/node/elements/HTMLOutputElement.ts +2 -0
  480. package/src/node/elements/HTMLParamElement.ts +2 -0
  481. package/src/node/elements/HTMLPictureElement.ts +2 -0
  482. package/src/node/elements/HTMLPreElement.ts +2 -0
  483. package/src/node/elements/HTMLProgressElement.ts +2 -0
  484. package/src/node/elements/HTMLQuoteElement.ts +2 -0
  485. package/src/node/elements/HTMLSelectElement.ts +2 -0
  486. package/src/node/elements/HTMLSlotElement.ts +2 -0
  487. package/src/node/elements/HTMLSourceElement.ts +2 -0
  488. package/src/node/elements/HTMLTableElement.ts +3 -7
  489. package/src/node/elements/HTMLTbodyElement.ts +2 -3
  490. package/src/node/elements/HTMLTdElement.ts +1 -1
  491. package/src/node/elements/HTMLTemplateElement.ts +3 -6
  492. package/src/node/elements/HTMLTextAreaElement.ts +2 -0
  493. package/src/node/elements/HTMLTfootElement.ts +2 -3
  494. package/src/node/elements/HTMLTheadElement.ts +2 -3
  495. package/src/node/elements/HTMLTimeElement.ts +2 -0
  496. package/src/node/elements/HTMLTrElement.ts +3 -4
  497. package/src/node/elements/HTMLTrackElement.ts +2 -0
  498. package/src/node/elements/HTMLVideoElement.ts +10 -0
  499. package/src/node/elements/index.ts +226 -149
  500. package/src/node/index.ts +8 -8
  501. package/src/utils/CSSSelector.ts +0 -1
  502. package/src/window/CustomElementRegistryImp.ts +120 -0
  503. package/src/window/Window.ts +716 -715
  504. package/src/window/WindowBase.ts +482 -847
  505. package/src/window/index.ts +0 -1
  506. package/tsconfig.json +1 -0
  507. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  508. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  509. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  510. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  511. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  512. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  513. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  514. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  515. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  516. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  517. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  518. package/src/node/collection/HTMLCollectionOf.ts +0 -26
@@ -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
  }
@@ -0,0 +1,86 @@
1
+ class CustomElementRegistryImp {
2
+ constructor() {
3
+ this._definitions = /* @__PURE__ */ new Map();
4
+ this._whenDefinedPromises = /* @__PURE__ */ new Map();
5
+ }
6
+ setWindow(window) {
7
+ this._window = window;
8
+ }
9
+ define(name, constructor, options) {
10
+ if (this._definitions.has(name)) {
11
+ throw new Error(`Registration failed for '${name}': a device with this name has already been registered.`);
12
+ }
13
+ if (!name.includes("-")) {
14
+ throw new Error(`Registration failed for '${name}': the name is not a valid custom element name.`);
15
+ }
16
+ this._definitions.set(name, { constructor, options });
17
+ if (this._whenDefinedPromises.has(name)) {
18
+ this._whenDefinedPromises.get(name).resolve();
19
+ }
20
+ if (this._window && this._window.document) {
21
+ this.upgrade(this._window.document);
22
+ }
23
+ }
24
+ get(name) {
25
+ return this._definitions.get(name)?.constructor;
26
+ }
27
+ upgrade(root) {
28
+ if (!root) return;
29
+ const nodesToUpgrade = [];
30
+ const walk = (node) => {
31
+ if (node.nodeType === 1) {
32
+ const tagName = node.tagName.toLowerCase();
33
+ const isAttr = node.getAttribute("is");
34
+ const registration = isAttr ? this._definitions.get(isAttr) : this._definitions.get(tagName);
35
+ if (registration) {
36
+ const isInstance = node instanceof registration.constructor;
37
+ if (!isInstance) {
38
+ nodesToUpgrade.push({ node, registration });
39
+ }
40
+ }
41
+ }
42
+ let child = node.firstChild;
43
+ while (child) {
44
+ walk(child);
45
+ child = child.nextSibling;
46
+ }
47
+ };
48
+ walk(root);
49
+ for (const { node, registration } of nodesToUpgrade) {
50
+ const newInstance = new registration.constructor();
51
+ newInstance._tagName = node.tagName;
52
+ newInstance.nodeName = node.tagName;
53
+ if (node.attributes) {
54
+ for (let i = 0; i < node.attributes.length; i++) {
55
+ const attr = node.attributes.item(i);
56
+ if (attr) {
57
+ newInstance.setAttribute(attr.name, attr.value);
58
+ }
59
+ }
60
+ }
61
+ while (node.firstChild) {
62
+ newInstance.appendChild(node.firstChild);
63
+ }
64
+ if (node.parentNode) {
65
+ node.parentNode.replaceChild(newInstance, node);
66
+ }
67
+ }
68
+ }
69
+ whenDefined(name) {
70
+ if (this._definitions.has(name)) {
71
+ return Promise.resolve();
72
+ }
73
+ if (!this._whenDefinedPromises.has(name)) {
74
+ let resolve;
75
+ const promise = new Promise((r) => {
76
+ resolve = r;
77
+ });
78
+ this._whenDefinedPromises.set(name, { promise, resolve });
79
+ }
80
+ return this._whenDefinedPromises.get(name).promise;
81
+ }
82
+ }
83
+ export {
84
+ CustomElementRegistryImp
85
+ };
86
+ //# sourceMappingURL=CustomElementRegistryImp.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/window/CustomElementRegistryImp.ts"],
4
+ "sourcesContent": ["export interface CustomElementRegistration {\n constructor: any;\n options?: ElementDefinitionOptions;\n}\n\nexport class CustomElementRegistryImp implements CustomElementRegistration {\n private _definitions = new Map<string, CustomElementRegistration>();\n private _whenDefinedPromises = new Map<string, { promise: Promise<void>; resolve: () => void }>();\n private _window: any;\n\n setWindow(window: any): void {\n this._window = window;\n }\n\n define(name: string, constructor: any, options?: ElementDefinitionOptions): void {\n if (this._definitions.has(name)) {\n throw new Error(`Registration failed for '${name}': a device with this name has already been registered.`);\n }\n\n // Basic validation of custom element name (must contain a hyphen)\n if (!name.includes('-')) {\n throw new Error(`Registration failed for '${name}': the name is not a valid custom element name.`);\n }\n\n this._definitions.set(name, { constructor, options });\n\n // Resolve any pending whenDefined promises\n if (this._whenDefinedPromises.has(name)) {\n this._whenDefinedPromises.get(name)!.resolve();\n }\n\n // Automatically upgrade existing elements in the document\n if (this._window && this._window.document) {\n // console.log(` [CustomElementRegistry] Upgrading document for: ${name}`);\n this.upgrade(this._window.document);\n }\n }\n\n get(name: string): any | undefined {\n return this._definitions.get(name)?.constructor;\n }\n\n upgrade(root: any): void {\n if (!root) return;\n\n const nodesToUpgrade: any[] = [];\n const walk = (node: any) => {\n if (node.nodeType === 1) {\n const tagName = node.tagName.toLowerCase();\n const isAttr = node.getAttribute('is');\n const registration = isAttr ? this._definitions.get(isAttr) : this._definitions.get(tagName);\n\n if (registration) {\n const isInstance = node instanceof registration.constructor;\n if (!isInstance) {\n // console.log(` [CustomElementRegistry] Found node to upgrade: <${tagName}${isAttr ? ' is=\"' + isAttr + '\"' : ''}>`);\n nodesToUpgrade.push({ node, registration });\n }\n }\n }\n\n let child = node.firstChild;\n while (child) {\n walk(child);\n child = child.nextSibling;\n }\n };\n\n walk(root);\n\n // Perform upgrades after walking to avoid traversal issues\n for (const { node, registration } of nodesToUpgrade) {\n const newInstance = new registration.constructor();\n // Ensure the tag name is preserved if it's an autonomous custom element\n // or set correctly if it's a customized built-in\n newInstance._tagName = node.tagName;\n newInstance.nodeName = node.tagName;\n\n // Copy attributes\n if (node.attributes) {\n for (let i = 0; i < node.attributes.length; i++) {\n const attr = node.attributes.item(i);\n if (attr) {\n newInstance.setAttribute(attr.name, attr.value);\n }\n }\n }\n\n // Move children\n while (node.firstChild) {\n newInstance.appendChild(node.firstChild);\n }\n\n // Replace in parent\n if (node.parentNode) {\n node.parentNode.replaceChild(newInstance, node);\n }\n }\n }\n\n whenDefined(name: string): Promise<void> {\n if (this._definitions.has(name)) {\n return Promise.resolve();\n }\n\n if (!this._whenDefinedPromises.has(name)) {\n let resolve!: () => void;\n const promise = new Promise<void>(r => {\n resolve = r;\n });\n this._whenDefinedPromises.set(name, { promise, resolve });\n }\n\n return this._whenDefinedPromises.get(name)!.promise;\n }\n}\n\nexport interface ElementDefinitionOptions {\n extends?: string;\n}\n"],
5
+ "mappings": "AAKO,MAAM,yBAA8D;AAAA,EAApE;AACL,SAAQ,eAAe,oBAAI,IAAuC;AAClE,SAAQ,uBAAuB,oBAAI,IAA6D;AAAA;AAAA,EAGhG,UAAU,QAAmB;AAC3B,SAAK,UAAU;AAAA,EACjB;AAAA,EAEA,OAAO,MAAc,aAAkB,SAA0C;AAC/E,QAAI,KAAK,aAAa,IAAI,IAAI,GAAG;AAC/B,YAAM,IAAI,MAAM,4BAA4B,IAAI,yDAAyD;AAAA,IAC3G;AAGA,QAAI,CAAC,KAAK,SAAS,GAAG,GAAG;AACvB,YAAM,IAAI,MAAM,4BAA4B,IAAI,iDAAiD;AAAA,IACnG;AAEA,SAAK,aAAa,IAAI,MAAM,EAAE,aAAa,QAAQ,CAAC;AAGpD,QAAI,KAAK,qBAAqB,IAAI,IAAI,GAAG;AACvC,WAAK,qBAAqB,IAAI,IAAI,EAAG,QAAQ;AAAA,IAC/C;AAGA,QAAI,KAAK,WAAW,KAAK,QAAQ,UAAU;AAEzC,WAAK,QAAQ,KAAK,QAAQ,QAAQ;AAAA,IACpC;AAAA,EACF;AAAA,EAEA,IAAI,MAA+B;AACjC,WAAO,KAAK,aAAa,IAAI,IAAI,GAAG;AAAA,EACtC;AAAA,EAEA,QAAQ,MAAiB;AACvB,QAAI,CAAC,KAAM;AAEX,UAAM,iBAAwB,CAAC;AAC/B,UAAM,OAAO,CAAC,SAAc;AAC1B,UAAI,KAAK,aAAa,GAAG;AACvB,cAAM,UAAU,KAAK,QAAQ,YAAY;AACzC,cAAM,SAAS,KAAK,aAAa,IAAI;AACrC,cAAM,eAAe,SAAS,KAAK,aAAa,IAAI,MAAM,IAAI,KAAK,aAAa,IAAI,OAAO;AAE3F,YAAI,cAAc;AAChB,gBAAM,aAAa,gBAAgB,aAAa;AAChD,cAAI,CAAC,YAAY;AAEf,2BAAe,KAAK,EAAE,MAAM,aAAa,CAAC;AAAA,UAC5C;AAAA,QACF;AAAA,MACF;AAEA,UAAI,QAAQ,KAAK;AACjB,aAAO,OAAO;AACZ,aAAK,KAAK;AACV,gBAAQ,MAAM;AAAA,MAChB;AAAA,IACF;AAEA,SAAK,IAAI;AAGT,eAAW,EAAE,MAAM,aAAa,KAAK,gBAAgB;AACnD,YAAM,cAAc,IAAI,aAAa,YAAY;AAGjD,kBAAY,WAAW,KAAK;AAC5B,kBAAY,WAAW,KAAK;AAG5B,UAAI,KAAK,YAAY;AACnB,iBAAS,IAAI,GAAG,IAAI,KAAK,WAAW,QAAQ,KAAK;AAC/C,gBAAM,OAAO,KAAK,WAAW,KAAK,CAAC;AACnC,cAAI,MAAM;AACR,wBAAY,aAAa,KAAK,MAAM,KAAK,KAAK;AAAA,UAChD;AAAA,QACF;AAAA,MACF;AAGA,aAAO,KAAK,YAAY;AACtB,oBAAY,YAAY,KAAK,UAAU;AAAA,MACzC;AAGA,UAAI,KAAK,YAAY;AACnB,aAAK,WAAW,aAAa,aAAa,IAAI;AAAA,MAChD;AAAA,IACF;AAAA,EACF;AAAA,EAEA,YAAY,MAA6B;AACvC,QAAI,KAAK,aAAa,IAAI,IAAI,GAAG;AAC/B,aAAO,QAAQ,QAAQ;AAAA,IACzB;AAEA,QAAI,CAAC,KAAK,qBAAqB,IAAI,IAAI,GAAG;AACxC,UAAI;AACJ,YAAM,UAAU,IAAI,QAAc,OAAK;AACrC,kBAAU;AAAA,MACZ,CAAC;AACD,WAAK,qBAAqB,IAAI,MAAM,EAAE,SAAS,QAAQ,CAAC;AAAA,IAC1D;AAEA,WAAO,KAAK,qBAAqB,IAAI,IAAI,EAAG;AAAA,EAC9C;AACF;",
6
+ "names": []
7
+ }