@dooboostore/dom-parser 1.0.2 → 1.0.4

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 (727) hide show
  1. package/README.MD +369 -6
  2. package/dist/cjs/DomParser.js +11 -1
  3. package/dist/cjs/DomParser.js.map +2 -2
  4. package/dist/cjs/bundle-entry.js +36 -0
  5. package/dist/cjs/bundle-entry.js.map +7 -0
  6. package/dist/cjs/factory/ElementFactory.js +31 -7
  7. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  8. package/dist/cjs/index.js +26 -0
  9. package/dist/cjs/index.js.map +2 -2
  10. package/dist/cjs/node/CharacterData.js.map +1 -1
  11. package/dist/cjs/node/ChildNode.js +0 -15
  12. package/dist/cjs/node/ChildNode.js.map +3 -3
  13. package/dist/cjs/node/ChildNodeBase.js +20 -0
  14. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  15. package/dist/cjs/node/Comment.js.map +2 -2
  16. package/dist/cjs/node/Document.js +0 -27
  17. package/dist/cjs/node/Document.js.map +4 -4
  18. package/dist/cjs/node/DocumentBase.js +168 -205
  19. package/dist/cjs/node/DocumentBase.js.map +2 -2
  20. package/dist/cjs/node/DocumentFragment.js +0 -15
  21. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  22. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  23. package/dist/cjs/node/Node.js.map +1 -1
  24. package/dist/cjs/node/NodeBase.js +44 -2
  25. package/dist/cjs/node/NodeBase.js.map +2 -2
  26. package/dist/cjs/node/NodeFilter.js +43 -0
  27. package/dist/cjs/node/NodeFilter.js.map +7 -0
  28. package/dist/cjs/node/NodeIterator.js +1 -28
  29. package/dist/cjs/node/NodeIterator.js.map +2 -2
  30. package/dist/cjs/node/ParentNode.js +0 -15
  31. package/dist/cjs/node/ParentNode.js.map +3 -3
  32. package/dist/cjs/node/ParentNodeBase.js +10 -10
  33. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  34. package/dist/cjs/node/ShadowRootBase.js +79 -0
  35. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  36. package/dist/cjs/node/Text.js +0 -15
  37. package/dist/cjs/node/Text.js.map +3 -3
  38. package/dist/cjs/node/TextBase.js +0 -3
  39. package/dist/cjs/node/TextBase.js.map +2 -2
  40. package/dist/cjs/node/TreeWalker.js +272 -0
  41. package/dist/cjs/node/TreeWalker.js.map +7 -0
  42. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  43. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  44. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  45. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  47. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  48. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  49. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  50. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  51. package/dist/cjs/node/collection/index.js +6 -6
  52. package/dist/cjs/node/collection/index.js.map +2 -2
  53. package/dist/cjs/node/elements/Element.js +0 -15
  54. package/dist/cjs/node/elements/Element.js.map +3 -3
  55. package/dist/cjs/node/elements/ElementBase.js +163 -331
  56. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  57. package/dist/cjs/node/elements/HTMLAnchorElement.js +2 -2
  58. package/dist/cjs/node/elements/HTMLAnchorElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLAreaElement.js +2 -2
  60. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  61. package/dist/cjs/node/elements/{HTMLGenericElement.js → HTMLAudioElement.js} +8 -11
  62. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLBaseElement.js +2 -2
  64. package/dist/cjs/node/elements/HTMLBaseElement.js.map +2 -2
  65. package/dist/cjs/node/elements/HTMLBodyElement.js +2 -2
  66. package/dist/cjs/node/elements/HTMLBodyElement.js.map +2 -2
  67. package/dist/cjs/node/elements/HTMLButtonElement.js +3 -3
  68. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  69. package/dist/cjs/node/elements/HTMLCanvasElement.js +2 -2
  70. package/dist/cjs/node/elements/HTMLCanvasElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLCaptionElement.js +2 -2
  72. package/dist/cjs/node/elements/HTMLCaptionElement.js.map +2 -2
  73. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLDListElement.js} +9 -16
  74. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  75. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  76. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  77. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  78. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  79. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  80. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  81. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  82. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  83. package/dist/cjs/node/elements/HTMLDivElement.js +2 -2
  84. package/dist/cjs/node/elements/HTMLDivElement.js.map +2 -2
  85. package/dist/cjs/node/elements/HTMLElement.js +13 -0
  86. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  87. package/dist/cjs/node/elements/HTMLElementBase.js +44 -44
  88. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  89. package/dist/cjs/node/elements/HTMLEmbedElement.js +2 -2
  90. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  91. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  92. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  93. package/dist/cjs/node/elements/HTMLFormElement.js +2 -2
  94. package/dist/cjs/node/elements/HTMLFormElement.js.map +2 -2
  95. package/dist/cjs/node/elements/HTMLH1Element.js +2 -2
  96. package/dist/cjs/node/elements/HTMLH1Element.js.map +2 -2
  97. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  98. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  99. package/dist/cjs/node/elements/HTMLHeadElement.js +2 -2
  100. package/dist/cjs/node/elements/HTMLHeadElement.js.map +2 -2
  101. package/dist/cjs/node/elements/HTMLHtmlElement.js +2 -2
  102. package/dist/cjs/node/elements/HTMLHtmlElement.js.map +2 -2
  103. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  104. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  105. package/dist/cjs/node/elements/HTMLImgElement.js +2 -2
  106. package/dist/cjs/node/elements/HTMLImgElement.js.map +2 -2
  107. package/dist/cjs/node/elements/HTMLInputElement.js +2 -2
  108. package/dist/cjs/node/elements/HTMLInputElement.js.map +2 -2
  109. package/dist/cjs/node/elements/HTMLLIElement.js +2 -2
  110. package/dist/cjs/node/elements/HTMLLIElement.js.map +2 -2
  111. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  112. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  113. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  114. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  115. package/dist/cjs/node/elements/HTMLLinkElement.js +2 -2
  116. package/dist/cjs/node/elements/HTMLLinkElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  118. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  119. package/dist/cjs/node/elements/HTMLMetaElement.js +2 -2
  120. package/dist/cjs/node/elements/HTMLMetaElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  122. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  123. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  124. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  125. package/dist/cjs/node/elements/HTMLOListElement.js +2 -2
  126. package/dist/cjs/node/elements/HTMLOListElement.js.map +2 -2
  127. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  129. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  130. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  131. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  132. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  133. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  134. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  135. package/dist/cjs/node/elements/HTMLPElement.js +2 -2
  136. package/dist/cjs/node/elements/HTMLPElement.js.map +2 -2
  137. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  138. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  139. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  140. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  141. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  142. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  143. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  144. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  145. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  146. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  147. package/dist/cjs/node/elements/HTMLScriptElement.js +2 -2
  148. package/dist/cjs/node/elements/HTMLScriptElement.js.map +2 -2
  149. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  150. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  151. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  152. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  153. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  154. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  155. package/dist/cjs/node/elements/HTMLSpanElement.js +2 -2
  156. package/dist/cjs/node/elements/HTMLSpanElement.js.map +2 -2
  157. package/dist/cjs/node/elements/HTMLStyleElement.js +2 -2
  158. package/dist/cjs/node/elements/HTMLStyleElement.js.map +2 -2
  159. package/dist/cjs/node/elements/HTMLTableElement.js +2 -2
  160. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  161. package/dist/cjs/node/elements/HTMLTbodyElement.js +2 -2
  162. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  163. package/dist/cjs/node/elements/HTMLTdElement.js +2 -2
  164. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  165. package/dist/cjs/node/elements/HTMLTemplateElement.js +2 -2
  166. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  167. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  168. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  169. package/dist/cjs/node/elements/HTMLTfootElement.js +2 -2
  170. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  171. package/dist/cjs/node/elements/HTMLThElement.js +2 -2
  172. package/dist/cjs/node/elements/HTMLThElement.js.map +2 -2
  173. package/dist/cjs/node/elements/HTMLTheadElement.js +2 -2
  174. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  175. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  176. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  177. package/dist/cjs/node/elements/HTMLTitleElement.js +2 -2
  178. package/dist/cjs/node/elements/HTMLTitleElement.js.map +2 -2
  179. package/dist/cjs/node/elements/HTMLTrElement.js +2 -2
  180. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  181. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  182. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  183. package/dist/cjs/node/elements/HTMLUListElement.js +2 -2
  184. package/dist/cjs/node/elements/HTMLUListElement.js.map +2 -2
  185. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  186. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  187. package/dist/cjs/node/elements/MathMLElement.js +2 -2
  188. package/dist/cjs/node/elements/MathMLElement.js.map +2 -2
  189. package/dist/cjs/node/elements/SVGElement.js +2 -2
  190. package/dist/cjs/node/elements/SVGElement.js.map +2 -2
  191. package/dist/cjs/node/elements/index.js +181 -94
  192. package/dist/cjs/node/elements/index.js.map +2 -2
  193. package/dist/cjs/node/index.js +6 -16
  194. package/dist/cjs/node/index.js.map +2 -2
  195. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  196. package/dist/cjs/window/CustomElementRegistryImp.js +113 -0
  197. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  198. package/dist/cjs/window/Window.js +0 -15
  199. package/dist/cjs/window/Window.js.map +3 -3
  200. package/dist/cjs/window/WindowBase.js +210 -613
  201. package/dist/cjs/window/WindowBase.js.map +2 -2
  202. package/dist/cjs/window/index.js +0 -5
  203. package/dist/cjs/window/index.js.map +2 -2
  204. package/dist/esm/DomParser.js +11 -1
  205. package/dist/esm/DomParser.js.map +2 -2
  206. package/dist/esm/bundle-entry.js +6 -0
  207. package/dist/esm/bundle-entry.js.map +7 -0
  208. package/dist/esm/factory/ElementFactory.js +32 -8
  209. package/dist/esm/factory/ElementFactory.js.map +2 -2
  210. package/dist/esm/index.js +26 -0
  211. package/dist/esm/index.js.map +2 -2
  212. package/dist/esm/node/ChildNodeBase.js +20 -0
  213. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  214. package/dist/esm/node/Comment.js.map +2 -2
  215. package/dist/esm/node/Document.js +0 -8
  216. package/dist/esm/node/Document.js.map +4 -4
  217. package/dist/esm/node/DocumentBase.js +165 -202
  218. package/dist/esm/node/DocumentBase.js.map +2 -2
  219. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  220. package/dist/esm/node/Node.js.map +1 -1
  221. package/dist/esm/node/NodeBase.js +45 -22
  222. package/dist/esm/node/NodeBase.js.map +2 -2
  223. package/dist/esm/node/NodeFilter.js +24 -0
  224. package/dist/esm/node/NodeFilter.js.map +7 -0
  225. package/dist/esm/node/NodeIterator.js +1 -28
  226. package/dist/esm/node/NodeIterator.js.map +2 -2
  227. package/dist/esm/node/ParentNodeBase.js +4 -4
  228. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  229. package/dist/esm/node/ShadowRootBase.js +60 -0
  230. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  231. package/dist/esm/node/TextBase.js +0 -3
  232. package/dist/esm/node/TextBase.js.map +2 -2
  233. package/dist/esm/node/TreeWalker.js +253 -0
  234. package/dist/esm/node/TreeWalker.js.map +7 -0
  235. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  236. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  237. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  238. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  239. package/dist/esm/node/collection/NodeList.js.map +1 -1
  240. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  241. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  242. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  243. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  244. package/dist/esm/node/collection/index.js +6 -6
  245. package/dist/esm/node/collection/index.js.map +2 -2
  246. package/dist/esm/node/elements/ElementBase.js +163 -331
  247. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  248. package/dist/esm/node/elements/HTMLAnchorElement.js +2 -2
  249. package/dist/esm/node/elements/HTMLAnchorElement.js.map +2 -2
  250. package/dist/esm/node/elements/HTMLAreaElement.js +2 -2
  251. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLBaseElement.js +2 -2
  255. package/dist/esm/node/elements/HTMLBaseElement.js.map +2 -2
  256. package/dist/esm/node/elements/HTMLBodyElement.js +2 -2
  257. package/dist/esm/node/elements/HTMLBodyElement.js.map +2 -2
  258. package/dist/esm/node/elements/HTMLButtonElement.js +3 -3
  259. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  260. package/dist/esm/node/elements/HTMLCanvasElement.js +2 -2
  261. package/dist/esm/node/elements/HTMLCanvasElement.js.map +2 -2
  262. package/dist/esm/node/elements/HTMLCaptionElement.js +2 -2
  263. package/dist/esm/node/elements/HTMLCaptionElement.js.map +2 -2
  264. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  265. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  266. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  267. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  268. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  269. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  270. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  271. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  272. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  273. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  274. package/dist/esm/node/elements/HTMLDivElement.js +2 -2
  275. package/dist/esm/node/elements/HTMLDivElement.js.map +2 -2
  276. package/dist/esm/node/elements/HTMLElement.js +9 -0
  277. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  278. package/dist/esm/node/elements/HTMLElementBase.js +43 -43
  279. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  280. package/dist/esm/node/elements/HTMLEmbedElement.js +2 -2
  281. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  282. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  283. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  284. package/dist/esm/node/elements/HTMLFormElement.js +2 -2
  285. package/dist/esm/node/elements/HTMLFormElement.js.map +2 -2
  286. package/dist/esm/node/elements/HTMLH1Element.js +2 -2
  287. package/dist/esm/node/elements/HTMLH1Element.js.map +2 -2
  288. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  289. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  290. package/dist/esm/node/elements/HTMLHeadElement.js +2 -2
  291. package/dist/esm/node/elements/HTMLHeadElement.js.map +2 -2
  292. package/dist/esm/node/elements/HTMLHtmlElement.js +2 -2
  293. package/dist/esm/node/elements/HTMLHtmlElement.js.map +2 -2
  294. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  295. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  296. package/dist/esm/node/elements/HTMLImgElement.js +2 -2
  297. package/dist/esm/node/elements/HTMLImgElement.js.map +2 -2
  298. package/dist/esm/node/elements/HTMLInputElement.js +2 -2
  299. package/dist/esm/node/elements/HTMLInputElement.js.map +2 -2
  300. package/dist/esm/node/elements/HTMLLIElement.js +2 -2
  301. package/dist/esm/node/elements/HTMLLIElement.js.map +2 -2
  302. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  303. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  304. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  305. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  306. package/dist/esm/node/elements/HTMLLinkElement.js +2 -2
  307. package/dist/esm/node/elements/HTMLLinkElement.js.map +2 -2
  308. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  309. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  310. package/dist/esm/node/elements/HTMLMetaElement.js +2 -2
  311. package/dist/esm/node/elements/HTMLMetaElement.js.map +2 -2
  312. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  313. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  314. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  315. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  316. package/dist/esm/node/elements/HTMLOListElement.js +2 -2
  317. package/dist/esm/node/elements/HTMLOListElement.js.map +2 -2
  318. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  319. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  320. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  321. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  322. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  323. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  324. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  325. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  326. package/dist/esm/node/elements/HTMLPElement.js +2 -2
  327. package/dist/esm/node/elements/HTMLPElement.js.map +2 -2
  328. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  329. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  330. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  331. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  332. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  333. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  334. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  335. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  336. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  337. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  338. package/dist/esm/node/elements/HTMLScriptElement.js +2 -2
  339. package/dist/esm/node/elements/HTMLScriptElement.js.map +2 -2
  340. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  341. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  342. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  343. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  344. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  345. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  346. package/dist/esm/node/elements/HTMLSpanElement.js +2 -2
  347. package/dist/esm/node/elements/HTMLSpanElement.js.map +2 -2
  348. package/dist/esm/node/elements/HTMLStyleElement.js +2 -2
  349. package/dist/esm/node/elements/HTMLStyleElement.js.map +2 -2
  350. package/dist/esm/node/elements/HTMLTableElement.js +2 -2
  351. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  352. package/dist/esm/node/elements/HTMLTbodyElement.js +2 -2
  353. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  354. package/dist/esm/node/elements/HTMLTdElement.js +2 -2
  355. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  356. package/dist/esm/node/elements/HTMLTemplateElement.js +2 -2
  357. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  358. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  359. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  360. package/dist/esm/node/elements/HTMLTfootElement.js +2 -2
  361. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  362. package/dist/esm/node/elements/HTMLThElement.js +2 -2
  363. package/dist/esm/node/elements/HTMLThElement.js.map +2 -2
  364. package/dist/esm/node/elements/HTMLTheadElement.js +2 -2
  365. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  366. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  367. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  368. package/dist/esm/node/elements/HTMLTitleElement.js +2 -2
  369. package/dist/esm/node/elements/HTMLTitleElement.js.map +2 -2
  370. package/dist/esm/node/elements/HTMLTrElement.js +2 -2
  371. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  372. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  373. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  374. package/dist/esm/node/elements/HTMLUListElement.js +2 -2
  375. package/dist/esm/node/elements/HTMLUListElement.js.map +2 -2
  376. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  377. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  378. package/dist/esm/node/elements/MathMLElement.js +2 -2
  379. package/dist/esm/node/elements/MathMLElement.js.map +2 -2
  380. package/dist/esm/node/elements/SVGElement.js +2 -2
  381. package/dist/esm/node/elements/SVGElement.js.map +2 -2
  382. package/dist/esm/node/elements/index.js +182 -95
  383. package/dist/esm/node/elements/index.js.map +2 -2
  384. package/dist/esm/node/index.js +7 -17
  385. package/dist/esm/node/index.js.map +2 -2
  386. package/dist/esm/utils/CSSSelector.js.map +2 -2
  387. package/dist/esm/window/CustomElementRegistryImp.js +94 -0
  388. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  389. package/dist/esm/window/WindowBase.js +259 -597
  390. package/dist/esm/window/WindowBase.js.map +2 -2
  391. package/dist/esm/window/index.js +0 -5
  392. package/dist/esm/window/index.js.map +2 -2
  393. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3477 -3558
  394. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  395. package/dist/types/DomParser.d.ts.map +1 -1
  396. package/dist/types/bundle-entry.d.ts +3 -0
  397. package/dist/types/bundle-entry.d.ts.map +1 -0
  398. package/dist/types/factory/ElementFactory.d.ts +1 -1
  399. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  400. package/dist/types/index.d.ts +14 -1
  401. package/dist/types/index.d.ts.map +1 -1
  402. package/dist/types/node/CharacterData.d.ts +0 -2
  403. package/dist/types/node/CharacterData.d.ts.map +1 -1
  404. package/dist/types/node/ChildNode.d.ts +0 -38
  405. package/dist/types/node/ChildNode.d.ts.map +1 -1
  406. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  407. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  408. package/dist/types/node/Comment.d.ts +1 -1
  409. package/dist/types/node/Comment.d.ts.map +1 -1
  410. package/dist/types/node/Document.d.ts +0 -856
  411. package/dist/types/node/Document.d.ts.map +1 -1
  412. package/dist/types/node/DocumentBase.d.ts +68 -110
  413. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  414. package/dist/types/node/DocumentFragment.d.ts +0 -38
  415. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  416. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  417. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  418. package/dist/types/node/Node.d.ts +0 -213
  419. package/dist/types/node/Node.d.ts.map +1 -1
  420. package/dist/types/node/NodeBase.d.ts +11 -8
  421. package/dist/types/node/NodeBase.d.ts.map +1 -1
  422. package/dist/types/node/NodeFilter.d.ts +25 -0
  423. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  424. package/dist/types/node/NodeIterator.d.ts +0 -34
  425. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  426. package/dist/types/node/ParentNode.d.ts +0 -84
  427. package/dist/types/node/ParentNode.d.ts.map +1 -1
  428. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  429. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  430. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  431. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  432. package/dist/types/node/Text.d.ts +0 -24
  433. package/dist/types/node/Text.d.ts.map +1 -1
  434. package/dist/types/node/TextBase.d.ts +2 -3
  435. package/dist/types/node/TextBase.d.ts.map +1 -1
  436. package/dist/types/node/TreeWalker.d.ts +48 -0
  437. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  438. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  439. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  440. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  441. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  442. package/dist/types/node/collection/NodeList.d.ts +0 -1
  443. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  444. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  445. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  446. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  447. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  448. package/dist/types/node/collection/index.d.ts +3 -3
  449. package/dist/types/node/collection/index.d.ts.map +1 -1
  450. package/dist/types/node/elements/Element.d.ts +0 -687
  451. package/dist/types/node/elements/Element.d.ts.map +1 -1
  452. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  453. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  454. package/dist/types/node/elements/HTMLAnchorElement.d.ts +2 -2
  455. package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -1
  456. package/dist/types/node/elements/HTMLAreaElement.d.ts +2 -3
  457. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  458. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  459. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  460. package/dist/types/node/elements/HTMLBaseElement.d.ts +2 -2
  461. package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -1
  462. package/dist/types/node/elements/HTMLBodyElement.d.ts +2 -2
  463. package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -1
  464. package/dist/types/node/elements/HTMLButtonElement.d.ts +3 -3
  465. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  466. package/dist/types/node/elements/HTMLCanvasElement.d.ts +2 -2
  467. package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -1
  468. package/dist/types/node/elements/HTMLCaptionElement.d.ts +2 -2
  469. package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -1
  470. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  471. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  472. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  473. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  474. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  475. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  476. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  477. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  478. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  479. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  480. package/dist/types/node/elements/HTMLDivElement.d.ts +2 -2
  481. package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -1
  482. package/dist/types/node/elements/HTMLElement.d.ts +3 -119
  483. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  484. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  485. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  486. package/dist/types/node/elements/HTMLEmbedElement.d.ts +2 -3
  487. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  488. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  489. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  490. package/dist/types/node/elements/HTMLFormElement.d.ts +2 -2
  491. package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -1
  492. package/dist/types/node/elements/HTMLH1Element.d.ts +2 -2
  493. package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -1
  494. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  495. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  496. package/dist/types/node/elements/HTMLHeadElement.d.ts +2 -2
  497. package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -1
  498. package/dist/types/node/elements/HTMLHtmlElement.d.ts +2 -2
  499. package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -1
  500. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  501. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  502. package/dist/types/node/elements/HTMLImgElement.d.ts +2 -2
  503. package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -1
  504. package/dist/types/node/elements/HTMLInputElement.d.ts +2 -2
  505. package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -1
  506. package/dist/types/node/elements/HTMLLIElement.d.ts +2 -2
  507. package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -1
  508. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  509. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  510. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  511. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  512. package/dist/types/node/elements/HTMLLinkElement.d.ts +2 -2
  513. package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -1
  514. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  515. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  516. package/dist/types/node/elements/HTMLMetaElement.d.ts +2 -2
  517. package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -1
  518. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  519. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  520. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  521. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  522. package/dist/types/node/elements/HTMLOListElement.d.ts +2 -2
  523. package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -1
  524. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  525. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  526. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  527. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  528. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  529. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  530. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  531. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  532. package/dist/types/node/elements/HTMLPElement.d.ts +2 -2
  533. package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -1
  534. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  535. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  536. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  537. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  538. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  539. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  540. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  541. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  542. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  543. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  544. package/dist/types/node/elements/HTMLScriptElement.d.ts +2 -2
  545. package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -1
  546. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  547. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  548. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  549. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  550. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  551. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  552. package/dist/types/node/elements/HTMLSpanElement.d.ts +2 -2
  553. package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -1
  554. package/dist/types/node/elements/HTMLStyleElement.d.ts +2 -2
  555. package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -1
  556. package/dist/types/node/elements/HTMLTableElement.d.ts +5 -6
  557. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  558. package/dist/types/node/elements/HTMLTbodyElement.d.ts +3 -4
  559. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  560. package/dist/types/node/elements/HTMLTdElement.d.ts +2 -2
  561. package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -1
  562. package/dist/types/node/elements/HTMLTemplateElement.d.ts +2 -3
  563. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  564. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  565. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  566. package/dist/types/node/elements/HTMLTfootElement.d.ts +4 -5
  567. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  568. package/dist/types/node/elements/HTMLThElement.d.ts +2 -2
  569. package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -1
  570. package/dist/types/node/elements/HTMLTheadElement.d.ts +4 -5
  571. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  572. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  573. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  574. package/dist/types/node/elements/HTMLTitleElement.d.ts +2 -2
  575. package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -1
  576. package/dist/types/node/elements/HTMLTrElement.d.ts +4 -5
  577. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  578. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  579. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  580. package/dist/types/node/elements/HTMLUListElement.d.ts +2 -2
  581. package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -1
  582. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  583. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  584. package/dist/types/node/elements/MathMLElement.d.ts +2 -2
  585. package/dist/types/node/elements/MathMLElement.d.ts.map +1 -1
  586. package/dist/types/node/elements/SVGElement.d.ts +2 -2
  587. package/dist/types/node/elements/SVGElement.d.ts.map +1 -1
  588. package/dist/types/node/elements/index.d.ts +108 -55
  589. package/dist/types/node/elements/index.d.ts.map +1 -1
  590. package/dist/types/node/index.d.ts +4 -7
  591. package/dist/types/node/index.d.ts.map +1 -1
  592. package/dist/types/utils/CSSSelector.d.ts +0 -1
  593. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  594. package/dist/types/window/CustomElementRegistryImp.d.ts +19 -0
  595. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  596. package/dist/types/window/Window.d.ts +0 -619
  597. package/dist/types/window/Window.d.ts.map +1 -1
  598. package/dist/types/window/WindowBase.d.ts +253 -286
  599. package/dist/types/window/WindowBase.d.ts.map +1 -1
  600. package/dist/types/window/index.d.ts +0 -1
  601. package/dist/types/window/index.d.ts.map +1 -1
  602. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3482 -3563
  603. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  604. package/package.json +6 -1
  605. package/src/DomParser.ts +29 -20
  606. package/src/bundle-entry.ts +2 -0
  607. package/src/factory/ElementFactory.ts +87 -54
  608. package/src/index.ts +22 -10
  609. package/src/node/CharacterData.ts +0 -2
  610. package/src/node/ChildNode.ts +42 -42
  611. package/src/node/ChildNodeBase.ts +60 -39
  612. package/src/node/Comment.ts +60 -60
  613. package/src/node/Document.ts +129 -882
  614. package/src/node/DocumentBase.ts +371 -467
  615. package/src/node/DocumentFragment.ts +38 -44
  616. package/src/node/DocumentFragmentBase.ts +4 -9
  617. package/src/node/Node.ts +231 -224
  618. package/src/node/NodeBase.ts +469 -443
  619. package/src/node/NodeFilter.ts +50 -0
  620. package/src/node/NodeIterator.ts +117 -172
  621. package/src/node/ParentNode.ts +93 -93
  622. package/src/node/ParentNodeBase.ts +7 -10
  623. package/src/node/ShadowRootBase.ts +87 -0
  624. package/src/node/Text.ts +30 -30
  625. package/src/node/TextBase.ts +92 -94
  626. package/src/node/TreeWalker.ts +280 -0
  627. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  628. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  629. package/src/node/collection/NodeList.ts +1 -1
  630. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  631. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  632. package/src/node/collection/index.ts +3 -3
  633. package/src/node/elements/Element.ts +212 -772
  634. package/src/node/elements/ElementBase.ts +840 -1204
  635. package/src/node/elements/HTMLAnchorElement.ts +2 -1
  636. package/src/node/elements/HTMLAreaElement.ts +2 -2
  637. package/src/node/elements/HTMLAudioElement.ts +11 -0
  638. package/src/node/elements/HTMLBaseElement.ts +2 -1
  639. package/src/node/elements/HTMLBodyElement.ts +2 -1
  640. package/src/node/elements/HTMLButtonElement.ts +65 -64
  641. package/src/node/elements/HTMLCanvasElement.ts +2 -1
  642. package/src/node/elements/HTMLCaptionElement.ts +2 -1
  643. package/src/node/elements/HTMLDListElement.ts +8 -0
  644. package/src/node/elements/HTMLDataElement.ts +7 -0
  645. package/src/node/elements/HTMLDataListElement.ts +8 -0
  646. package/src/node/elements/HTMLDetailsElement.ts +8 -0
  647. package/src/node/elements/HTMLDialogElement.ts +8 -0
  648. package/src/node/elements/HTMLDivElement.ts +2 -1
  649. package/src/node/elements/HTMLElement.ts +6 -137
  650. package/src/node/elements/HTMLElementBase.ts +472 -355
  651. package/src/node/elements/HTMLEmbedElement.ts +2 -2
  652. package/src/node/elements/HTMLFieldSetElement.ts +8 -0
  653. package/src/node/elements/HTMLFormElement.ts +2 -1
  654. package/src/node/elements/HTMLH1Element.ts +2 -1
  655. package/src/node/elements/HTMLHRElement.ts +8 -0
  656. package/src/node/elements/HTMLHeadElement.ts +2 -1
  657. package/src/node/elements/HTMLHtmlElement.ts +2 -1
  658. package/src/node/elements/HTMLIFrameElement.ts +8 -0
  659. package/src/node/elements/HTMLImgElement.ts +2 -1
  660. package/src/node/elements/HTMLInputElement.ts +2 -1
  661. package/src/node/elements/HTMLLIElement.ts +2 -1
  662. package/src/node/elements/HTMLLabelElement.ts +3 -0
  663. package/src/node/elements/HTMLLegendElement.ts +3 -0
  664. package/src/node/elements/HTMLLinkElement.ts +2 -1
  665. package/src/node/elements/HTMLMapElement.ts +3 -0
  666. package/src/node/elements/HTMLMetaElement.ts +2 -1
  667. package/src/node/elements/HTMLMeterElement.ts +3 -0
  668. package/src/node/elements/HTMLModElement.ts +3 -0
  669. package/src/node/elements/HTMLOListElement.ts +2 -1
  670. package/src/node/elements/HTMLObjectElement.ts +3 -0
  671. package/src/node/elements/HTMLOptGroupElement.ts +3 -0
  672. package/src/node/elements/HTMLOptionElement.ts +3 -0
  673. package/src/node/elements/HTMLOutputElement.ts +3 -0
  674. package/src/node/elements/HTMLPElement.ts +2 -1
  675. package/src/node/elements/HTMLParamElement.ts +3 -0
  676. package/src/node/elements/HTMLPictureElement.ts +3 -0
  677. package/src/node/elements/HTMLPreElement.ts +3 -0
  678. package/src/node/elements/HTMLProgressElement.ts +3 -0
  679. package/src/node/elements/HTMLQuoteElement.ts +3 -0
  680. package/src/node/elements/HTMLScriptElement.ts +2 -1
  681. package/src/node/elements/HTMLSelectElement.ts +3 -0
  682. package/src/node/elements/HTMLSlotElement.ts +3 -0
  683. package/src/node/elements/HTMLSourceElement.ts +3 -0
  684. package/src/node/elements/HTMLSpanElement.ts +2 -1
  685. package/src/node/elements/HTMLStyleElement.ts +2 -1
  686. package/src/node/elements/HTMLTableElement.ts +5 -8
  687. package/src/node/elements/HTMLTbodyElement.ts +4 -4
  688. package/src/node/elements/HTMLTdElement.ts +3 -2
  689. package/src/node/elements/HTMLTemplateElement.ts +5 -7
  690. package/src/node/elements/HTMLTextAreaElement.ts +3 -0
  691. package/src/node/elements/HTMLTfootElement.ts +4 -4
  692. package/src/node/elements/HTMLThElement.ts +2 -1
  693. package/src/node/elements/HTMLTheadElement.ts +5 -5
  694. package/src/node/elements/HTMLTimeElement.ts +3 -0
  695. package/src/node/elements/HTMLTitleElement.ts +2 -1
  696. package/src/node/elements/HTMLTrElement.ts +7 -5
  697. package/src/node/elements/HTMLTrackElement.ts +3 -0
  698. package/src/node/elements/HTMLUListElement.ts +2 -1
  699. package/src/node/elements/HTMLVideoElement.ts +11 -0
  700. package/src/node/elements/MathMLElement.ts +2 -1
  701. package/src/node/elements/SVGElement.ts +2 -1
  702. package/src/node/elements/index.ts +231 -153
  703. package/src/node/index.ts +8 -8
  704. package/src/utils/CSSSelector.ts +0 -1
  705. package/src/window/CustomElementRegistryImp.ts +138 -0
  706. package/src/window/Window.ts +716 -715
  707. package/src/window/WindowBase.ts +482 -847
  708. package/src/window/index.ts +0 -1
  709. package/tsconfig.json +1 -0
  710. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  711. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  712. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  713. package/dist/cjs/node/elements/HTMLGenericElement.js.map +0 -7
  714. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  715. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  716. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  717. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  718. package/dist/esm/node/elements/HTMLGenericElement.js +0 -13
  719. package/dist/esm/node/elements/HTMLGenericElement.js.map +0 -7
  720. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  721. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  722. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  723. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  724. package/dist/types/node/elements/HTMLGenericElement.d.ts +0 -6
  725. package/dist/types/node/elements/HTMLGenericElement.d.ts.map +0 -1
  726. package/src/node/collection/HTMLCollectionOf.ts +0 -26
  727. package/src/node/elements/HTMLGenericElement.ts +0 -13
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@dooboostore/dom-parser",
3
- "version": "1.0.2",
3
+ "version": "1.0.4",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -50,6 +50,11 @@
50
50
  "import": "./dist/esm/index.js",
51
51
  "require": "./dist/cjs/index.js"
52
52
  },
53
+ "./bundle-entry": {
54
+ "types": "./dist/types/bundle-entry.d.ts",
55
+ "import": "./dist/esm/bundle-entry.js",
56
+ "require": "./dist/cjs/bundle-entry.js"
57
+ },
53
58
  "./cjs": {
54
59
  "types": "./dist/types/index.d.ts",
55
60
  "require": "./dist/cjs/index.js"
package/src/DomParser.ts CHANGED
@@ -1,7 +1,17 @@
1
- import {DocumentBase} from './node/DocumentBase';
2
- import {TextBase} from './node/TextBase';
3
- import {Comment} from './node/Comment';
4
- import {WindowBase} from './window/WindowBase';
1
+ import { DocumentBase } from './node/DocumentBase';
2
+ import { TextBase } from './node/TextBase';
3
+ import { Comment } from './node/Comment';
4
+ import { WindowBase } from './window/WindowBase';
5
+ import { ElementBase } from './node/elements/ElementBase';
6
+ import { ElementFactory } from './factory/ElementFactory';
7
+
8
+ // Inject dependencies into ElementBase to break circular references
9
+ // without using 'require' or 'global' injection magic.
10
+ ElementBase.dependencies = {
11
+ ElementFactory,
12
+ TextBase,
13
+ Comment
14
+ };
5
15
 
6
16
  export interface DomParserOptions {
7
17
  href?: string;
@@ -12,8 +22,9 @@ export class DomParser {
12
22
  private _document: Document | null;
13
23
 
14
24
  constructor(html: string, option?: DomParserOptions) {
25
+ console.log('create DomParser==',html)
15
26
  // Create WindowBase instance with the document
16
- const windowBase = new WindowBase({initialUrl: option?.href});
27
+ const windowBase = new WindowBase({ initialUrl: option?.href });
17
28
  this._window = windowBase as unknown as Window;
18
29
  this._document = windowBase.document as any;
19
30
 
@@ -51,7 +62,7 @@ export class DomParser {
51
62
  this._window.close();
52
63
  this._window = null;
53
64
  }
54
-
65
+
55
66
  this._document = null;
56
67
  }
57
68
 
@@ -62,7 +73,7 @@ export class DomParser {
62
73
  if (!this._document) {
63
74
  throw new Error('DomParser has been destroyed');
64
75
  }
65
-
76
+
66
77
  // Clear current document content
67
78
  this.clearDocument();
68
79
 
@@ -75,7 +86,7 @@ export class DomParser {
75
86
 
76
87
  private clearDocument(): void {
77
88
  if (!this._document) return;
78
-
89
+
79
90
  // Clear document body and head content while preserving structure
80
91
  if (this._document.head) {
81
92
  while (this._document.head.firstChild) {
@@ -94,13 +105,18 @@ export class DomParser {
94
105
  if (!this._document) {
95
106
  throw new Error('DomParser has been destroyed');
96
107
  }
97
- // Simple HTML parsing implementation
108
+
109
+ // Ensure basic HTML structure if input is empty or lacks it
98
110
  if (!html.trim()) {
99
- return;
111
+ html = '<html><head></head><body></body></html>';
112
+ } else if (!/<html/i.test(html)) {
113
+ // If it's just a fragment, we still need html/head/body for a full document
114
+ // but only if it's not explicitly intended to be a fragment?
115
+ // Actually, standard DOMParser.parseFromString always creates them.
116
+ html = `<html><head></head><body>${html}</body></html>`;
100
117
  }
101
118
 
102
119
  // Basic HTML parsing - this is a simplified version
103
- // In a real implementation, you'd use a proper HTML parser
104
120
  this.parseHTMLString(html, this.document);
105
121
  }
106
122
 
@@ -204,11 +220,9 @@ export class DomParser {
204
220
  attributes = attributes.slice(0, -1).trim();
205
221
  }
206
222
 
207
-
208
223
  // Create element
209
224
  const element = this.document.createElement(tagName.toLowerCase());
210
225
 
211
-
212
226
  // Parse attributes
213
227
  if (attributes.trim()) {
214
228
  this.parseAttributes(attributes, element);
@@ -372,7 +386,7 @@ export class DomParser {
372
386
  '&rdquo;': '"'
373
387
  };
374
388
 
375
- return str.replace(/&[a-zA-Z0-9#]+;/g, (entity) => {
389
+ return str.replace(/&[a-zA-Z0-9#]+;/g, entity => {
376
390
  // Handle named entities
377
391
  if (entityMap[entity]) {
378
392
  return entityMap[entity];
@@ -468,7 +482,6 @@ export class DomParser {
468
482
  // Choose the BODY element with content, then attributes, then first one
469
483
  let bodyElement = null;
470
484
 
471
-
472
485
  // First priority: BODY with child nodes (content)
473
486
  for (let i = 0; i < allBodyElements.length; i++) {
474
487
  const body = allBodyElements[i];
@@ -494,10 +507,6 @@ export class DomParser {
494
507
  bodyElement = allBodyElements[0];
495
508
  }
496
509
 
497
-
498
- // For now, just use the elements as they are parsed
499
- // TODO: Implement proper DOM structure reorganization later
500
-
501
510
  // Set document references
502
511
  if (htmlElement) {
503
512
  (this.document as any).documentElement = htmlElement;
@@ -509,4 +518,4 @@ export class DomParser {
509
518
  (this.document as any).body = bodyElement;
510
519
  }
511
520
  }
512
- }
521
+ }
@@ -0,0 +1,2 @@
1
+ export * from './index';
2
+ export * as DomParserModule from './index';
@@ -1,69 +1,102 @@
1
- import { HTMLElementBase, HTMLGenericElement, htmlElements, svgElements, mathmlElements } from '../node/elements';
1
+ import {HTMLElementBase, htmlElements, svgElements, mathmlElements, HTMLElement} from '../node/elements';
2
2
 
3
3
  /**
4
4
  * Factory for creating HTML elements based on tag names
5
5
  */
6
6
  export class ElementFactory {
7
- /**
8
- * Creates an HTML element based on the tag name
9
- */
10
- static createElement(tagName: string, ownerDocument?: any): HTMLElementBase {
11
- const normalizedTagName = tagName.toLowerCase();
12
-
13
- // Check HTML elements
14
- for (const [tag, ElementClass] of Object.entries(htmlElements)) {
15
- if (tag === normalizedTagName) {
16
- return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
17
- }
18
- }
19
-
20
- // Check SVG elements
21
- for (const [tag, ElementClass] of Object.entries(svgElements)) {
22
- if (tag === normalizedTagName) {
23
- return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
24
- }
25
- }
26
-
27
- // Check MathML elements
28
- for (const [tag, ElementClass] of Object.entries(mathmlElements)) {
29
- if (tag === normalizedTagName) {
30
- return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
31
- }
7
+ /**
8
+ * Creates an HTML element based on the tag name
9
+ */
10
+ static createElement(tagName: string, ownerDocument?: any, options?: any): HTMLElementBase {
11
+ const normalizedTagName = tagName.toLowerCase();
12
+ const customElements = (ownerDocument as any)?.defaultView?.customElements;
13
+
14
+ // 1. Check for Customized Built-in Elements (is="")
15
+ const isAttribute = typeof options === 'string' ? options : options?.is;
16
+ if (isAttribute && customElements && typeof customElements.get === 'function') {
17
+ const CustomElementClass = customElements.get(isAttribute);
18
+ if (CustomElementClass) {
19
+ const element = new CustomElementClass() as any;
20
+ element._tagName = tagName.toUpperCase();
21
+ element.nodeName = tagName.toUpperCase();
22
+ element._ownerDocument = ownerDocument;
23
+ if (element.setAttribute) {
24
+ element.setAttribute('is', isAttribute);
32
25
  }
33
-
34
- // For unknown elements, create a generic HTMLElement
35
- return new HTMLGenericElement(tagName.toUpperCase(), ownerDocument);
26
+ return element;
27
+ }
36
28
  }
37
29
 
38
- /**
39
- * Get all supported HTML tag names
40
- */
41
- static getSupportedHTMLTagNames(): string[] {
42
- return Object.keys(htmlElements);
30
+ // 2. Check for Autonomous Custom Elements (or preserve unknown custom tags)
31
+ // console.log('vvv2222222vvvvvvvvv222222vvvvv', tagName, normalizedTagName)
32
+ if (normalizedTagName.includes('-')) {
33
+ // console.log('vvvvvvvvvvvvvvvvv')
34
+ if (customElements && typeof customElements.get === 'function') {
35
+ const CustomElementClass = customElements.get(normalizedTagName);
36
+ if (CustomElementClass) {
37
+ const element = new CustomElementClass() as any;
38
+ element._tagName = tagName.toUpperCase();
39
+ element.nodeName = tagName.toUpperCase();
40
+ element._ownerDocument = ownerDocument;
41
+ return element;
42
+ }
43
+ }
44
+
45
+ // No registered custom element yet – keep the tag name intact.
46
+ return new HTMLElement(tagName.toUpperCase(), ownerDocument);
43
47
  }
44
48
 
45
- /**
46
- * Get all supported SVG tag names
47
- */
48
- static getSupportedSVGTagNames(): string[] {
49
- return Object.keys(svgElements);
49
+ // 3. Check HTML elements
50
+
51
+ for (const [tag, ElementClass] of Object.entries(htmlElements)) {
52
+ if (tag === normalizedTagName) {
53
+ return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
54
+ }
50
55
  }
51
56
 
52
- /**
53
- * Get all supported MathML tag names
54
- */
55
- static getSupportedMathMLTagNames(): string[] {
56
- return Object.keys(mathmlElements);
57
+ // Check SVG elements
58
+ for (const [tag, ElementClass] of Object.entries(svgElements)) {
59
+ if (tag === normalizedTagName) {
60
+ return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
61
+ }
57
62
  }
58
63
 
59
- /**
60
- * Get all supported tag names
61
- */
62
- static getSupportedTagNames(): string[] {
63
- return [
64
- ...ElementFactory.getSupportedHTMLTagNames(),
65
- ...ElementFactory.getSupportedSVGTagNames(),
66
- ...ElementFactory.getSupportedMathMLTagNames()
67
- ];
64
+ // Check MathML elements
65
+ for (const [tag, ElementClass] of Object.entries(mathmlElements)) {
66
+ if (tag === normalizedTagName) {
67
+ return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
68
+ }
68
69
  }
69
- }
70
+
71
+ // For unknown elements, create a generic HTMLElement
72
+ return new HTMLElement(tagName.toUpperCase(), ownerDocument);
73
+ }
74
+
75
+ /**
76
+ * Get all supported HTML tag names
77
+ */
78
+ static getSupportedHTMLTagNames(): string[] {
79
+ return Object.keys(htmlElements);
80
+ }
81
+
82
+ /**
83
+ * Get all supported SVG tag names
84
+ */
85
+ static getSupportedSVGTagNames(): string[] {
86
+ return Object.keys(svgElements);
87
+ }
88
+
89
+ /**
90
+ * Get all supported MathML tag names
91
+ */
92
+ static getSupportedMathMLTagNames(): string[] {
93
+ return Object.keys(mathmlElements);
94
+ }
95
+
96
+ /**
97
+ * Get all supported tag names
98
+ */
99
+ static getSupportedTagNames(): string[] {
100
+ return [...ElementFactory.getSupportedHTMLTagNames(), ...ElementFactory.getSupportedSVGTagNames(), ...ElementFactory.getSupportedMathMLTagNames()];
101
+ }
102
+ }
package/src/index.ts CHANGED
@@ -1,19 +1,31 @@
1
- import { DomParser, DomParserOptions } from "./DomParser";
1
+ import {DomParser, DomParserOptions} from './DomParser';
2
2
 
3
3
  // Main exports - what users actually need
4
- export { DomParser };
5
-
4
+ export {DomParser};
5
+ export {NodeIterator} from './node/NodeIterator';
6
+ export {NodeFilter} from './node/NodeFilter'
7
+ export { HTMLElementBase } from './node/elements/HTMLElementBase';
8
+ export { ElementBase } from './node/elements/ElementBase';
9
+ export { HTMLElement } from './node/elements/HTMLElement';
10
+ export { NodeBase } from './node/NodeBase';
11
+ export { ParentNodeBase } from './node/ParentNodeBase';
12
+ export { ChildNodeBase } from './node/ChildNodeBase';
13
+ export { DocumentBase } from './node/DocumentBase';
14
+ export { DocumentFragmentBase } from './node/DocumentFragmentBase';
15
+ export { ShadowRootBase } from './node/ShadowRootBase';
16
+ export { WindowBase } from './window/WindowBase';
17
+ export { ElementFactory } from './factory/ElementFactory';
6
18
  // Utility function to parse HTML and return window object
7
19
  export const parseHTML = (html: string, option?: DomParserOptions) => {
8
- const parser = new DomParser(html, option);
9
- return parser.window;
10
- }
20
+ const parser = new DomParser(html, option);
21
+ return parser.window;
22
+ };
11
23
 
12
24
  // Default export
13
25
  export default {
14
- DomParser,
15
- parseHTML
16
- }
26
+ DomParser,
27
+ parseHTML
28
+ };
17
29
 
18
30
  // Internal exports (commented out - users don't need these)
19
31
  // export { WindowBase } from './window/WindowBase';
@@ -25,4 +37,4 @@ export default {
25
37
  // export { DocumentBase } from "./node/DocumentBase";
26
38
  // export * from "./node/DocumentFragment";
27
39
  // export { DocumentFragmentBase } from "./node/DocumentFragmentBase";
28
- // export * from "./node/Node";
40
+ // export * from "./node/Node";
@@ -1,5 +1,3 @@
1
- import { Node } from './Node';
2
- import { ChildNode } from './ChildNode';
3
1
 
4
2
  /**
5
3
  * The **`CharacterData`** abstract interface represents a Node object that contains characters.
@@ -1,42 +1,42 @@
1
- import { Node } from './Node';
2
-
3
- /**
4
- * The **`ChildNode`** interface contains methods and properties that are common to all types of Node objects that can have a parent.
5
- *
6
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChildNode)
7
- */
8
- export interface ChildNode extends Node {
9
- /**
10
- * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
11
- *
12
- * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
13
- *
14
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
15
- */
16
- after(...nodes: (Node | string)[]): void;
17
-
18
- /**
19
- * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
20
- *
21
- * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
22
- *
23
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
24
- */
25
- before(...nodes: (Node | string)[]): void;
26
-
27
- /**
28
- * Removes node.
29
- *
30
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
31
- */
32
- remove(): void;
33
-
34
- /**
35
- * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
36
- *
37
- * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
38
- *
39
- * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
40
- */
41
- replaceWith(...nodes: (Node | string)[]): void;
42
- }
1
+ // import {Node} from './Node';
2
+ //
3
+ // /**
4
+ // * The **`ChildNode`** interface contains methods and properties that are common to all types of Node objects that can have a parent.
5
+ // *
6
+ // * [MDN Reference](https://developer.mozilla.org/docs/Web/API/ChildNode)
7
+ // */
8
+ // export interface ChildNode extends Node {
9
+ // /**
10
+ // * Inserts nodes just after node, while replacing strings in nodes with equivalent Text nodes.
11
+ // *
12
+ // * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
13
+ // *
14
+ // * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/after)
15
+ // */
16
+ // after(...nodes: (Node | string)[]): void;
17
+ //
18
+ // /**
19
+ // * Inserts nodes just before node, while replacing strings in nodes with equivalent Text nodes.
20
+ // *
21
+ // * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
22
+ // *
23
+ // * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/before)
24
+ // */
25
+ // before(...nodes: (Node | string)[]): void;
26
+ //
27
+ // /**
28
+ // * Removes node.
29
+ // *
30
+ // * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/remove)
31
+ // */
32
+ // remove(): void;
33
+ //
34
+ // /**
35
+ // * Replaces node with nodes, while replacing strings in nodes with equivalent Text nodes.
36
+ // *
37
+ // * Throws a "HierarchyRequestError" DOMException if the constraints of the node tree are violated.
38
+ // *
39
+ // * [MDN Reference](https://developer.mozilla.org/docs/Web/API/CharacterData/replaceWith)
40
+ // */
41
+ // replaceWith(...nodes: (Node | string)[]): void;
42
+ // }
@@ -1,54 +1,75 @@
1
+ import { ELEMENT_NODE } from './Node';
1
2
  import { NodeBase } from './NodeBase';
2
- import { ChildNode } from './ChildNode';
3
- // import {Text} from "./Text";
4
3
 
5
4
  /**
6
5
  * Base implementation of the ChildNode interface
7
6
  */
7
+ // @ts-ignore
8
8
  export abstract class ChildNodeBase extends NodeBase implements ChildNode {
9
-
10
- // ChildNode interface implementation
11
- after(...nodes: (NodeBase | string)[]): void {
12
- if (!this.parentNode) return;
13
-
14
- const nextSibling = this.nextSibling;
15
- for (const node of nodes) {
16
- if (typeof node === 'string') {
17
- const { TextBase } = require('./TextBase');
18
- const textNode = new TextBase(node, this._ownerDocument);
19
- this.parentNode.insertBefore(textNode, nextSibling);
20
- } else {
21
- this.parentNode.insertBefore(node, nextSibling);
22
- }
23
- }
9
+ get nextElementSibling(): Element | null {
10
+ let next = this.nextSibling;
11
+ while (next) {
12
+ if (next.nodeType === ELEMENT_NODE) return next as unknown as Element;
13
+ next = next.nextSibling;
24
14
  }
15
+ return null;
16
+ }
25
17
 
26
- before(...nodes: (NodeBase | string)[]): void {
27
- if (!this.parentNode) return;
28
-
29
- for (const node of nodes) {
30
- if (typeof node === 'string') {
31
- const { TextBase } = require('./TextBase');
32
- const textNode = new TextBase(node, this._ownerDocument);
33
- this.parentNode.insertBefore(textNode, this);
34
- } else {
35
- this.parentNode.insertBefore(node, this);
36
- }
37
- }
18
+ get previousElementSibling(): Element | null {
19
+ let prev = this.previousSibling;
20
+ while (prev) {
21
+ if (prev.nodeType === ELEMENT_NODE) return prev as unknown as Element;
22
+ prev = prev.previousSibling;
38
23
  }
24
+ return null;
25
+ }
39
26
 
40
- remove(): void {
41
- if (this.parentNode) {
42
- this.parentNode.removeChild(this);
43
- }
27
+ get assignedSlot(): any | null {
28
+ return null;
29
+ }
30
+
31
+ // ChildNode interface implementation
32
+ after(...nodes: (Node | string)[]): void {
33
+ if (!this.parentNode) return;
34
+
35
+ const nextSibling = this.nextSibling;
36
+ for (const node of nodes) {
37
+ if (typeof node === 'string') {
38
+ const { TextBase } = require('./TextBase');
39
+ const textNode = new TextBase(node, this._ownerDocument);
40
+ this.parentNode.insertBefore(textNode, nextSibling);
41
+ } else {
42
+ this.parentNode.insertBefore(node, nextSibling);
43
+ }
44
44
  }
45
+ }
45
46
 
46
- replaceWith(...nodes: (NodeBase | string)[]): void {
47
- if (!this.parentNode) return;
48
-
49
- this.before(...nodes);
50
- this.remove();
47
+ before(...nodes: (Node | string)[]): void {
48
+ if (!this.parentNode) return;
49
+
50
+ for (const node of nodes) {
51
+ if (typeof node === 'string') {
52
+ const { TextBase } = require('./TextBase');
53
+ const textNode = new TextBase(node, this._ownerDocument);
54
+ this.parentNode.insertBefore(textNode, this as unknown as Node);
55
+ } else {
56
+ this.parentNode.insertBefore(node, this as unknown as Node);
57
+ }
51
58
  }
59
+ }
60
+
61
+ remove(): void {
62
+ if (this.parentNode) {
63
+ this.parentNode.removeChild(this as unknown as Node);
64
+ }
65
+ }
66
+
67
+ replaceWith(...nodes: (Node | string)[]): void {
68
+ if (!this.parentNode) return;
69
+
70
+ this.before(...nodes);
71
+ this.remove();
72
+ }
52
73
  }
53
74
 
54
- // TextNode is now in a separate file
75
+ // TextNode is now in a separate file