@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,6 +1,6 @@
1
1
  // Base Element interfaces and types
2
- export { Element, DOMTokenList } from './Element';
3
- export { HTMLCollection, HTMLCollectionOf } from '../collection';
2
+ // export type { Element, DOMTokenList } from './Element';
3
+ export { HTMLCollectionImp, HTMLCollectionOfImp } from '../collection';
4
4
 
5
5
  // Base Element implementations
6
6
  export { ElementBase } from './ElementBase';
@@ -8,179 +8,256 @@ export { HTMLElementBase } from './HTMLElementBase';
8
8
  export { HTMLGenericElement } from './HTMLGenericElement';
9
9
 
10
10
  // Import all element classes
11
+ import { HTMLElement } from './HTMLElement';
11
12
  import { HTMLAnchorElement } from './HTMLAnchorElement';
13
+ import { HTMLAreaElement } from './HTMLAreaElement';
14
+ import { HTMLAudioElement } from './HTMLAudioElement';
15
+ import { HTMLBaseElement } from './HTMLBaseElement';
12
16
  import { HTMLBodyElement } from './HTMLBodyElement';
13
- import { HTMLDivElement } from './HTMLDivElement';
14
- import { HTMLSpanElement } from './HTMLSpanElement';
15
- import { HTMLPElement } from './HTMLPElement';
16
- import { HTMLImgElement } from './HTMLImgElement';
17
17
  import { HTMLButtonElement } from './HTMLButtonElement';
18
18
  import { HTMLCanvasElement } from './HTMLCanvasElement';
19
- import { HTMLInputElement } from './HTMLInputElement';
19
+ import { HTMLCaptionElement } from './HTMLCaptionElement';
20
+ import { HTMLDataElement } from './HTMLDataElement';
21
+ import { HTMLDataListElement } from './HTMLDataListElement';
22
+ import { HTMLDetailsElement } from './HTMLDetailsElement';
23
+ import { HTMLDialogElement } from './HTMLDialogElement';
24
+ import { HTMLDivElement } from './HTMLDivElement';
25
+ import { HTMLDListElement } from './HTMLDListElement';
26
+ import { HTMLEmbedElement } from './HTMLEmbedElement';
27
+ import { HTMLFieldSetElement } from './HTMLFieldSetElement';
28
+ import { HTMLFormElement } from './HTMLFormElement';
20
29
  import { HTMLH1Element } from './HTMLH1Element';
21
30
  import { HTMLHeadElement } from './HTMLHeadElement';
31
+ import { HTMLHRElement } from './HTMLHRElement';
22
32
  import { HTMLHtmlElement } from './HTMLHtmlElement';
23
- import { HTMLTitleElement } from './HTMLTitleElement';
33
+ import { HTMLIFrameElement } from './HTMLIFrameElement';
34
+ import { HTMLImgElement } from './HTMLImgElement';
35
+ import { HTMLInputElement } from './HTMLInputElement';
36
+ import { HTMLLabelElement } from './HTMLLabelElement';
37
+ import { HTMLLegendElement } from './HTMLLegendElement';
38
+ import { HTMLLIElement } from './HTMLLIElement';
24
39
  import { HTMLLinkElement } from './HTMLLinkElement';
40
+ import { HTMLMapElement } from './HTMLMapElement';
41
+ import { HTMLMetaElement } from './HTMLMetaElement';
42
+ import { HTMLMeterElement } from './HTMLMeterElement';
43
+ import { HTMLModElement } from './HTMLModElement';
44
+ import { HTMLObjectElement } from './HTMLObjectElement';
45
+ import { HTMLOListElement } from './HTMLOListElement';
46
+ import { HTMLOptGroupElement } from './HTMLOptGroupElement';
47
+ import { HTMLOptionElement } from './HTMLOptionElement';
48
+ import { HTMLOutputElement } from './HTMLOutputElement';
49
+ import { HTMLPElement } from './HTMLPElement';
50
+ import { HTMLParamElement } from './HTMLParamElement';
51
+ import { HTMLPictureElement } from './HTMLPictureElement';
52
+ import { HTMLPreElement } from './HTMLPreElement';
53
+ import { HTMLProgressElement } from './HTMLProgressElement';
54
+ import { HTMLQuoteElement } from './HTMLQuoteElement';
25
55
  import { HTMLScriptElement } from './HTMLScriptElement';
56
+ import { HTMLSelectElement } from './HTMLSelectElement';
57
+ import { HTMLSlotElement } from './HTMLSlotElement';
58
+ import { HTMLSourceElement } from './HTMLSourceElement';
59
+ import { HTMLSpanElement } from './HTMLSpanElement';
26
60
  import { HTMLStyleElement } from './HTMLStyleElement';
27
- import { HTMLFormElement } from './HTMLFormElement';
28
61
  import { HTMLTableElement } from './HTMLTableElement';
29
- import { HTMLUListElement } from './HTMLUListElement';
30
- import { HTMLOListElement } from './HTMLOListElement';
31
- import { HTMLLIElement } from './HTMLLIElement';
32
- import { SVGElement } from './SVGElement';
33
- import { SVGCircleElement } from './SVGCircleElement';
34
- import { SVGRectElement } from './SVGRectElement';
35
- import { HTMLMetaElement } from './HTMLMetaElement';
62
+ import { HTMLTbodyElement } from './HTMLTbodyElement';
63
+ import { HTMLTdElement } from './HTMLTdElement';
36
64
  import { HTMLTemplateElement } from './HTMLTemplateElement';
37
- import { HTMLTheadElement } from './HTMLTheadElement';
65
+ import { HTMLTextAreaElement } from './HTMLTextAreaElement';
38
66
  import { HTMLTfootElement } from './HTMLTfootElement';
39
- import { HTMLTrElement } from './HTMLTrElement';
40
- import { HTMLTdElement } from './HTMLTdElement';
67
+ import { HTMLTheadElement } from './HTMLTheadElement';
41
68
  import { HTMLThElement } from './HTMLThElement';
42
- import { HTMLCaptionElement } from './HTMLCaptionElement';
43
- import { HTMLTbodyElement } from './HTMLTbodyElement';
44
- import { HTMLEmbedElement } from './HTMLEmbedElement';
45
- import { HTMLAreaElement } from './HTMLAreaElement';
46
- import { HTMLBaseElement } from './HTMLBaseElement';
69
+ import { HTMLTimeElement } from './HTMLTimeElement';
70
+ import { HTMLTitleElement } from './HTMLTitleElement';
71
+ import { HTMLTrackElement } from './HTMLTrackElement';
72
+ import { HTMLTrElement } from './HTMLTrElement';
73
+ import { HTMLUListElement } from './HTMLUListElement';
74
+ import { HTMLVideoElement } from './HTMLVideoElement';
47
75
  import { MathMLElement } from './MathMLElement';
76
+ import { SVGElement } from './SVGElement';
77
+ import { SVGCircleElement } from './SVGCircleElement';
78
+ import { SVGRectElement } from './SVGRectElement';
48
79
 
49
80
  // Export all element classes
50
81
  export {
51
- HTMLAnchorElement,
52
- HTMLBodyElement,
53
- HTMLDivElement,
54
- HTMLHeadElement,
55
- HTMLHtmlElement,
56
- HTMLSpanElement,
57
- HTMLPElement,
58
- HTMLImgElement,
59
- HTMLButtonElement,
60
- HTMLCanvasElement,
61
- HTMLInputElement,
62
- HTMLH1Element,
63
- HTMLTitleElement,
64
- HTMLLinkElement,
65
- HTMLScriptElement,
66
- HTMLStyleElement,
67
- HTMLFormElement,
68
- HTMLTableElement,
69
- HTMLUListElement,
70
- HTMLOListElement,
71
- HTMLLIElement,
72
- SVGElement,
73
- SVGCircleElement,
74
- SVGRectElement,
75
- HTMLMetaElement,
76
- HTMLTemplateElement,
77
- HTMLTheadElement,
78
- HTMLTfootElement,
79
- HTMLTrElement,
80
- HTMLTdElement,
81
- HTMLThElement,
82
- HTMLCaptionElement,
83
- HTMLTbodyElement,
84
- HTMLEmbedElement,
85
- HTMLAreaElement,
86
- HTMLBaseElement,
87
- MathMLElement,
82
+ HTMLElement,
83
+ HTMLAnchorElement,
84
+ HTMLAreaElement,
85
+ HTMLAudioElement,
86
+ HTMLBaseElement,
87
+ HTMLBodyElement,
88
+ HTMLButtonElement,
89
+ HTMLCanvasElement,
90
+ HTMLCaptionElement,
91
+ HTMLDataElement,
92
+ HTMLDataListElement,
93
+ HTMLDetailsElement,
94
+ HTMLDialogElement,
95
+ HTMLDivElement,
96
+ HTMLDListElement,
97
+ HTMLEmbedElement,
98
+ HTMLFieldSetElement,
99
+ HTMLFormElement,
100
+ HTMLH1Element,
101
+ HTMLHeadElement,
102
+ HTMLHRElement,
103
+ HTMLHtmlElement,
104
+ HTMLIFrameElement,
105
+ HTMLImgElement,
106
+ HTMLInputElement,
107
+ HTMLLabelElement,
108
+ HTMLLegendElement,
109
+ HTMLLIElement,
110
+ HTMLLinkElement,
111
+ HTMLMapElement,
112
+ HTMLMetaElement,
113
+ HTMLMeterElement,
114
+ HTMLModElement,
115
+ HTMLObjectElement,
116
+ HTMLOListElement,
117
+ HTMLOptGroupElement,
118
+ HTMLOptionElement,
119
+ HTMLOutputElement,
120
+ HTMLPElement,
121
+ HTMLParamElement,
122
+ HTMLPictureElement,
123
+ HTMLPreElement,
124
+ HTMLProgressElement,
125
+ HTMLQuoteElement,
126
+ HTMLScriptElement,
127
+ HTMLSelectElement,
128
+ HTMLSlotElement,
129
+ HTMLSourceElement,
130
+ HTMLSpanElement,
131
+ HTMLStyleElement,
132
+ HTMLTableElement,
133
+ HTMLTbodyElement,
134
+ HTMLTdElement,
135
+ HTMLTemplateElement,
136
+ HTMLTextAreaElement,
137
+ HTMLTfootElement,
138
+ HTMLTheadElement,
139
+ HTMLThElement,
140
+ HTMLTimeElement,
141
+ HTMLTitleElement,
142
+ HTMLTrackElement,
143
+ HTMLTrElement,
144
+ HTMLUListElement,
145
+ HTMLVideoElement,
146
+ MathMLElement,
147
+ SVGElement,
148
+ SVGCircleElement,
149
+ SVGRectElement
88
150
  };
89
151
 
90
- // HTML Elements mapping with explicit string keys for proper type inference
152
+ // HTML Elements mapping
91
153
  export const htmlElements = {
92
- 'a': HTMLAnchorElement,
93
- 'body': HTMLBodyElement,
94
- 'button': HTMLButtonElement,
95
- 'canvas': HTMLCanvasElement,
96
- 'div': HTMLDivElement,
97
- 'h1': HTMLH1Element,
98
- 'head': HTMLHeadElement,
99
- 'html': HTMLHtmlElement,
100
- 'img': HTMLImgElement,
101
- 'input': HTMLInputElement,
102
- 'p': HTMLPElement,
103
- 'meta': HTMLMetaElement,
104
- 'span': HTMLSpanElement,
105
- 'title': HTMLTitleElement,
106
- 'link': HTMLLinkElement,
107
- 'script': HTMLScriptElement,
108
- 'style': HTMLStyleElement,
109
- 'form': HTMLFormElement,
110
- 'table': HTMLTableElement,
111
- 'ul': HTMLUListElement,
112
- 'ol': HTMLOListElement,
113
- 'li': HTMLLIElement,
114
- 'template': HTMLTemplateElement,
115
- 'thead': HTMLTheadElement,
116
- 'tfoot': HTMLTfootElement,
117
- 'tr': HTMLTrElement,
118
- 'td': HTMLTdElement,
119
- 'th': HTMLThElement,
120
- 'caption': HTMLCaptionElement,
121
- 'tbody': HTMLTbodyElement,
122
- 'embed': HTMLEmbedElement,
123
- 'area': HTMLAreaElement,
124
- 'base': HTMLBaseElement,
154
+ a: HTMLAnchorElement,
155
+ area: HTMLAreaElement,
156
+ audio: HTMLAudioElement,
157
+ base: HTMLBaseElement,
158
+ body: HTMLBodyElement,
159
+ button: HTMLButtonElement,
160
+ canvas: HTMLCanvasElement,
161
+ caption: HTMLCaptionElement,
162
+ data: HTMLDataElement,
163
+ datalist: HTMLDataListElement,
164
+ details: HTMLDetailsElement,
165
+ dialog: HTMLDialogElement,
166
+ div: HTMLDivElement,
167
+ dl: HTMLDListElement,
168
+ embed: HTMLEmbedElement,
169
+ fieldset: HTMLFieldSetElement,
170
+ form: HTMLFormElement,
171
+ h1: HTMLH1Element,
172
+ head: HTMLHeadElement,
173
+ hr: HTMLHRElement,
174
+ html: HTMLHtmlElement,
175
+ iframe: HTMLIFrameElement,
176
+ img: HTMLImgElement,
177
+ input: HTMLInputElement,
178
+ label: HTMLLabelElement,
179
+ legend: HTMLLegendElement,
180
+ li: HTMLLIElement,
181
+ link: HTMLLinkElement,
182
+ map: HTMLMapElement,
183
+ meta: HTMLMetaElement,
184
+ meter: HTMLMeterElement,
185
+ del: HTMLModElement,
186
+ object: HTMLObjectElement,
187
+ ol: HTMLOListElement,
188
+ optgroup: HTMLOptGroupElement,
189
+ option: HTMLOptionElement,
190
+ output: HTMLOutputElement,
191
+ p: HTMLPElement,
192
+ param: HTMLParamElement,
193
+ picture: HTMLPictureElement,
194
+ pre: HTMLPreElement,
195
+ progress: HTMLProgressElement,
196
+ blockquote: HTMLQuoteElement,
197
+ script: HTMLScriptElement,
198
+ select: HTMLSelectElement,
199
+ slot: HTMLSlotElement,
200
+ source: HTMLSourceElement,
201
+ span: HTMLSpanElement,
202
+ style: HTMLStyleElement,
203
+ table: HTMLTableElement,
204
+ tbody: HTMLTbodyElement,
205
+ td: HTMLTdElement,
206
+ template: HTMLTemplateElement,
207
+ textarea: HTMLTextAreaElement,
208
+ tfoot: HTMLTfootElement,
209
+ thead: HTMLTheadElement,
210
+ th: HTMLThElement,
211
+ time: HTMLTimeElement,
212
+ title: HTMLTitleElement,
213
+ track: HTMLTrackElement,
214
+ tr: HTMLTrElement,
215
+ ul: HTMLUListElement,
216
+ video: HTMLVideoElement
125
217
  } as const;
126
218
 
127
- // SVG Elements mapping with explicit string keys
128
219
  export const svgElements = {
129
- 'svg': SVGElement,
130
- 'circle': SVGCircleElement,
131
- 'rect': SVGRectElement,
220
+ svg: SVGElement,
221
+ circle: SVGCircleElement,
222
+ rect: SVGRectElement
132
223
  } as const;
133
224
 
134
- // MathML Elements mapping - all use MathMLElement
135
225
  export const mathmlElements = {
136
- 'annotation': MathMLElement,
137
- 'annotation-xml': MathMLElement,
138
- 'maction': MathMLElement,
139
- 'math': MathMLElement,
140
- 'merror': MathMLElement,
141
- 'mfrac': MathMLElement,
142
- 'mi': MathMLElement,
143
- 'mmultiscripts': MathMLElement,
144
- 'mn': MathMLElement,
145
- 'mo': MathMLElement,
146
- 'mover': MathMLElement,
147
- 'mpadded': MathMLElement,
148
- 'mphantom': MathMLElement,
149
- 'mprescripts': MathMLElement,
150
- 'mroot': MathMLElement,
151
- 'mrow': MathMLElement,
152
- 'ms': MathMLElement,
153
- 'mspace': MathMLElement,
154
- 'msqrt': MathMLElement,
155
- 'mstyle': MathMLElement,
156
- 'msub': MathMLElement,
157
- 'msubsup': MathMLElement,
158
- 'msup': MathMLElement,
159
- 'mtable': MathMLElement,
160
- 'mtd': MathMLElement,
161
- 'mtext': MathMLElement,
162
- 'mtr': MathMLElement,
163
- 'munder': MathMLElement,
164
- 'munderover': MathMLElement,
165
- 'semantics': MathMLElement,
226
+ annotation: MathMLElement,
227
+ 'annotation-xml': MathMLElement,
228
+ maction: MathMLElement,
229
+ math: MathMLElement,
230
+ merror: MathMLElement,
231
+ mfrac: MathMLElement,
232
+ mi: MathMLElement,
233
+ mmultiscripts: MathMLElement,
234
+ mn: MathMLElement,
235
+ mo: MathMLElement,
236
+ mover: MathMLElement,
237
+ mpadded: MathMLElement,
238
+ mphantom: MathMLElement,
239
+ mprescripts: MathMLElement,
240
+ mroot: MathMLElement,
241
+ mrow: MathMLElement,
242
+ ms: MathMLElement,
243
+ mspace: MathMLElement,
244
+ msqrt: MathMLElement,
245
+ mstyle: MathMLElement,
246
+ msub: MathMLElement,
247
+ msubsup: MathMLElement,
248
+ msup: MathMLElement,
249
+ mtable: MathMLElement,
250
+ mtd: MathMLElement,
251
+ mtext: MathMLElement,
252
+ mtr: MathMLElement,
253
+ munder: MathMLElement,
254
+ munderover: MathMLElement,
255
+ semantics: MathMLElement
166
256
  } as const;
167
257
 
168
- // Type-safe tag name mappings - back to the working approach
169
- export type HTMLElementTagNameMap = {
170
- [K in keyof typeof htmlElements]: InstanceType<typeof htmlElements[K]>;
171
- };
172
-
173
- export type SVGElementTagNameMap = {
174
- [K in keyof typeof svgElements]: InstanceType<typeof svgElements[K]>;
175
- };
176
-
177
- export type MathMLElementTagNameMap = {
178
- [K in keyof typeof mathmlElements]: InstanceType<typeof mathmlElements[K]>;
179
- };
180
-
181
- export interface HTMLElementDeprecatedTagNameMap {
182
- // deprecated 태그들
183
- }
184
-
185
- // Type aliases for Document interface compatibility
186
- export type HTMLImageElement = HTMLImgElement;
258
+ export type HTMLImageElement = HTMLImgElement;
259
+ export type HTMLParagraphElement = HTMLPElement;
260
+ export type HTMLHeadingElement = HTMLH1Element;
261
+ export type HTMLTableSectionElement = HTMLTbodyElement;
262
+ export type HTMLTableCellElement = HTMLTdElement;
263
+ export type HTMLTableRowElement = HTMLTrElement;
package/src/node/index.ts CHANGED
@@ -1,28 +1,28 @@
1
1
  // Core Node interfaces
2
- export { 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';
3
- export { ChildNode } from './ChildNode';
4
- export { ParentNode } from './ParentNode';
2
+ export { 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';
5
3
 
6
4
  // Base implementations
7
5
  export { NodeBase } from './NodeBase';
8
6
  export { ChildNodeBase } from './ChildNodeBase';
9
7
  export { ParentNodeBase } from './ParentNodeBase';
10
8
  export { ElementBase } from './elements/ElementBase';
11
- export { Text } from './Text';
12
9
 
13
10
  // Document class (concrete implementation)
14
- export { Document, ElementCreationOptions, DocumentReadyState, DocumentFragment } from './Document';
15
11
 
16
12
  // Character data interfaces
17
- export { CharacterData } from './CharacterData';
13
+ // export { CharacterData } from './CharacterData';
18
14
  export { Comment } from './Comment';
19
15
 
20
16
  // Collections
21
17
  export { NodeList } from './collection/NodeList';
22
- export { NodeListOf } from './collection/NodeListOf';
18
+ export { NodeListOfImp } from './collection/NodeListOfImp';
19
+
20
+ // Traversal
21
+ export { NodeIterator } from './NodeIterator';
22
+ export { TreeWalker } from './TreeWalker';
23
23
 
24
24
  // Element interfaces (from element directory)
25
25
  export * from './elements';
26
26
 
27
27
  // Options and interfaces
28
- export { GetRootNodeOptions } from './GetRootNodeOptions';
28
+ export { GetRootNodeOptions } from './GetRootNodeOptions';
@@ -1,4 +1,3 @@
1
- import { Element } from '../node/elements/Element';
2
1
 
3
2
  /**
4
3
  * CSS Selector Parser and Matcher
@@ -0,0 +1,120 @@
1
+ export interface CustomElementRegistration {
2
+ constructor: any;
3
+ options?: ElementDefinitionOptions;
4
+ }
5
+
6
+ export class CustomElementRegistryImp implements CustomElementRegistration {
7
+ private _definitions = new Map<string, CustomElementRegistration>();
8
+ private _whenDefinedPromises = new Map<string, { promise: Promise<void>; resolve: () => void }>();
9
+ private _window: any;
10
+
11
+ setWindow(window: any): void {
12
+ this._window = window;
13
+ }
14
+
15
+ define(name: string, constructor: any, options?: ElementDefinitionOptions): void {
16
+ if (this._definitions.has(name)) {
17
+ throw new Error(`Registration failed for '${name}': a device with this name has already been registered.`);
18
+ }
19
+
20
+ // Basic validation of custom element name (must contain a hyphen)
21
+ if (!name.includes('-')) {
22
+ throw new Error(`Registration failed for '${name}': the name is not a valid custom element name.`);
23
+ }
24
+
25
+ this._definitions.set(name, { constructor, options });
26
+
27
+ // Resolve any pending whenDefined promises
28
+ if (this._whenDefinedPromises.has(name)) {
29
+ this._whenDefinedPromises.get(name)!.resolve();
30
+ }
31
+
32
+ // Automatically upgrade existing elements in the document
33
+ if (this._window && this._window.document) {
34
+ // console.log(` [CustomElementRegistry] Upgrading document for: ${name}`);
35
+ this.upgrade(this._window.document);
36
+ }
37
+ }
38
+
39
+ get(name: string): any | undefined {
40
+ return this._definitions.get(name)?.constructor;
41
+ }
42
+
43
+ upgrade(root: any): void {
44
+ if (!root) return;
45
+
46
+ const nodesToUpgrade: any[] = [];
47
+ const walk = (node: any) => {
48
+ if (node.nodeType === 1) {
49
+ const tagName = node.tagName.toLowerCase();
50
+ const isAttr = node.getAttribute('is');
51
+ const registration = isAttr ? this._definitions.get(isAttr) : this._definitions.get(tagName);
52
+
53
+ if (registration) {
54
+ const isInstance = node instanceof registration.constructor;
55
+ if (!isInstance) {
56
+ // console.log(` [CustomElementRegistry] Found node to upgrade: <${tagName}${isAttr ? ' is="' + isAttr + '"' : ''}>`);
57
+ nodesToUpgrade.push({ node, registration });
58
+ }
59
+ }
60
+ }
61
+
62
+ let child = node.firstChild;
63
+ while (child) {
64
+ walk(child);
65
+ child = child.nextSibling;
66
+ }
67
+ };
68
+
69
+ walk(root);
70
+
71
+ // Perform upgrades after walking to avoid traversal issues
72
+ for (const { node, registration } of nodesToUpgrade) {
73
+ const newInstance = new registration.constructor();
74
+ // Ensure the tag name is preserved if it's an autonomous custom element
75
+ // or set correctly if it's a customized built-in
76
+ newInstance._tagName = node.tagName;
77
+ newInstance.nodeName = node.tagName;
78
+
79
+ // Copy attributes
80
+ if (node.attributes) {
81
+ for (let i = 0; i < node.attributes.length; i++) {
82
+ const attr = node.attributes.item(i);
83
+ if (attr) {
84
+ newInstance.setAttribute(attr.name, attr.value);
85
+ }
86
+ }
87
+ }
88
+
89
+ // Move children
90
+ while (node.firstChild) {
91
+ newInstance.appendChild(node.firstChild);
92
+ }
93
+
94
+ // Replace in parent
95
+ if (node.parentNode) {
96
+ node.parentNode.replaceChild(newInstance, node);
97
+ }
98
+ }
99
+ }
100
+
101
+ whenDefined(name: string): Promise<void> {
102
+ if (this._definitions.has(name)) {
103
+ return Promise.resolve();
104
+ }
105
+
106
+ if (!this._whenDefinedPromises.has(name)) {
107
+ let resolve!: () => void;
108
+ const promise = new Promise<void>(r => {
109
+ resolve = r;
110
+ });
111
+ this._whenDefinedPromises.set(name, { promise, resolve });
112
+ }
113
+
114
+ return this._whenDefinedPromises.get(name)!.promise;
115
+ }
116
+ }
117
+
118
+ export interface ElementDefinitionOptions {
119
+ extends?: string;
120
+ }