@dooboostore/dom-parser 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/cjs/DomParser.js +43 -13
  2. package/dist/cjs/DomParser.js.map +2 -2
  3. package/dist/cjs/factory/ElementFactory.js +27 -6
  4. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  5. package/dist/cjs/index.js +4 -0
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/node/CharacterData.js.map +1 -1
  8. package/dist/cjs/node/ChildNode.js +0 -15
  9. package/dist/cjs/node/ChildNode.js.map +3 -3
  10. package/dist/cjs/node/ChildNodeBase.js +20 -0
  11. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  12. package/dist/cjs/node/Comment.js.map +2 -2
  13. package/dist/cjs/node/Document.js +0 -27
  14. package/dist/cjs/node/Document.js.map +4 -4
  15. package/dist/cjs/node/DocumentBase.js +169 -202
  16. package/dist/cjs/node/DocumentBase.js.map +2 -2
  17. package/dist/cjs/node/DocumentFragment.js +0 -15
  18. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  19. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  20. package/dist/cjs/node/Node.js.map +1 -1
  21. package/dist/cjs/node/NodeBase.js +44 -2
  22. package/dist/cjs/node/NodeBase.js.map +2 -2
  23. package/dist/cjs/node/NodeFilter.js +43 -0
  24. package/dist/cjs/node/NodeFilter.js.map +7 -0
  25. package/dist/cjs/node/NodeIterator.js +1 -28
  26. package/dist/cjs/node/NodeIterator.js.map +2 -2
  27. package/dist/cjs/node/ParentNode.js +0 -15
  28. package/dist/cjs/node/ParentNode.js.map +3 -3
  29. package/dist/cjs/node/ParentNodeBase.js +10 -10
  30. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  31. package/dist/cjs/node/ShadowRootBase.js +79 -0
  32. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  33. package/dist/cjs/node/Text.js +0 -15
  34. package/dist/cjs/node/Text.js.map +3 -3
  35. package/dist/cjs/node/TextBase.js +0 -3
  36. package/dist/cjs/node/TextBase.js.map +2 -2
  37. package/dist/cjs/node/TreeWalker.js +272 -0
  38. package/dist/cjs/node/TreeWalker.js.map +7 -0
  39. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  40. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  41. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  42. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  43. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  44. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  45. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  47. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  48. package/dist/cjs/node/collection/index.js +6 -6
  49. package/dist/cjs/node/collection/index.js.map +2 -2
  50. package/dist/cjs/node/elements/Element.js +0 -15
  51. package/dist/cjs/node/elements/Element.js.map +3 -3
  52. package/dist/cjs/node/elements/ElementBase.js +164 -322
  53. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  54. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  55. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLAudioElement.js} +9 -16
  56. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  57. package/dist/cjs/node/elements/HTMLButtonElement.js +1 -1
  58. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLDListElement.js +29 -0
  60. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  61. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  62. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  64. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  65. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  66. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  67. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  68. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  69. package/dist/cjs/node/elements/HTMLElement.js +10 -0
  70. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLElementBase.js +153 -3
  72. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  73. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  74. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  75. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  76. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  77. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  78. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  79. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  80. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  81. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  82. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  83. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  84. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  85. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  86. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  87. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  88. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  89. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  90. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  91. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  92. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  93. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  94. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  95. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  96. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  97. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  98. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  99. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  100. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  101. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  102. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  103. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  104. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  105. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  106. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  107. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  108. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  109. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  110. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  111. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  112. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  113. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  114. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  115. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  116. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  118. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  119. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  120. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  122. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  123. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  124. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  125. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  126. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  127. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  129. package/dist/cjs/node/elements/index.js +181 -92
  130. package/dist/cjs/node/elements/index.js.map +2 -2
  131. package/dist/cjs/node/index.js +6 -16
  132. package/dist/cjs/node/index.js.map +2 -2
  133. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  134. package/dist/cjs/window/CustomElementRegistryImp.js +105 -0
  135. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  136. package/dist/cjs/window/Window.js +0 -15
  137. package/dist/cjs/window/Window.js.map +3 -3
  138. package/dist/cjs/window/WindowBase.js +233 -515
  139. package/dist/cjs/window/WindowBase.js.map +2 -2
  140. package/dist/cjs/window/index.js +0 -5
  141. package/dist/cjs/window/index.js.map +2 -2
  142. package/dist/esm/DomParser.js +43 -13
  143. package/dist/esm/DomParser.js.map +2 -2
  144. package/dist/esm/factory/ElementFactory.js +27 -6
  145. package/dist/esm/factory/ElementFactory.js.map +2 -2
  146. package/dist/esm/index.js +4 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/node/ChildNodeBase.js +20 -0
  149. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  150. package/dist/esm/node/Comment.js.map +2 -2
  151. package/dist/esm/node/Document.js +0 -8
  152. package/dist/esm/node/Document.js.map +4 -4
  153. package/dist/esm/node/DocumentBase.js +166 -199
  154. package/dist/esm/node/DocumentBase.js.map +2 -2
  155. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  156. package/dist/esm/node/Node.js.map +1 -1
  157. package/dist/esm/node/NodeBase.js +45 -22
  158. package/dist/esm/node/NodeBase.js.map +2 -2
  159. package/dist/esm/node/NodeFilter.js +24 -0
  160. package/dist/esm/node/NodeFilter.js.map +7 -0
  161. package/dist/esm/node/NodeIterator.js +1 -28
  162. package/dist/esm/node/NodeIterator.js.map +2 -2
  163. package/dist/esm/node/ParentNodeBase.js +4 -4
  164. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  165. package/dist/esm/node/ShadowRootBase.js +60 -0
  166. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  167. package/dist/esm/node/TextBase.js +0 -3
  168. package/dist/esm/node/TextBase.js.map +2 -2
  169. package/dist/esm/node/TreeWalker.js +253 -0
  170. package/dist/esm/node/TreeWalker.js.map +7 -0
  171. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  172. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  173. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  174. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  175. package/dist/esm/node/collection/NodeList.js.map +1 -1
  176. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  177. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  178. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  179. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  180. package/dist/esm/node/collection/index.js +6 -6
  181. package/dist/esm/node/collection/index.js.map +2 -2
  182. package/dist/esm/node/elements/ElementBase.js +164 -322
  183. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  184. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  185. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  186. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  187. package/dist/esm/node/elements/HTMLButtonElement.js +1 -1
  188. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  189. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  190. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  191. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  192. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  193. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  194. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  195. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  196. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  197. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  198. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  199. package/dist/esm/node/elements/HTMLElement.js +6 -0
  200. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  201. package/dist/esm/node/elements/HTMLElementBase.js +153 -3
  202. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  203. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  204. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  205. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  206. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  207. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  208. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  209. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  210. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  211. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  212. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  213. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  214. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  215. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  216. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  217. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  218. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  219. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  220. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  221. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  222. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  223. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  224. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  225. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  226. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  227. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  228. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  229. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  230. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  231. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  232. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  233. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  234. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  235. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  236. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  237. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  238. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  239. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  240. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  241. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  242. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  243. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  244. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  245. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  246. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  247. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  248. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  249. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  250. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  251. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  255. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  256. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  257. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  258. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  259. package/dist/esm/node/elements/index.js +182 -93
  260. package/dist/esm/node/elements/index.js.map +2 -2
  261. package/dist/esm/node/index.js +7 -17
  262. package/dist/esm/node/index.js.map +2 -2
  263. package/dist/esm/utils/CSSSelector.js.map +2 -2
  264. package/dist/esm/window/CustomElementRegistryImp.js +86 -0
  265. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  266. package/dist/esm/window/WindowBase.js +282 -499
  267. package/dist/esm/window/WindowBase.js.map +2 -2
  268. package/dist/esm/window/index.js +0 -5
  269. package/dist/esm/window/index.js.map +2 -2
  270. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3755 -3548
  271. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  272. package/dist/types/DomParser.d.ts +4 -0
  273. package/dist/types/DomParser.d.ts.map +1 -1
  274. package/dist/types/factory/ElementFactory.d.ts +1 -1
  275. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  276. package/dist/types/index.d.ts +3 -1
  277. package/dist/types/index.d.ts.map +1 -1
  278. package/dist/types/node/CharacterData.d.ts +0 -2
  279. package/dist/types/node/CharacterData.d.ts.map +1 -1
  280. package/dist/types/node/ChildNode.d.ts +0 -38
  281. package/dist/types/node/ChildNode.d.ts.map +1 -1
  282. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  283. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  284. package/dist/types/node/Comment.d.ts +1 -1
  285. package/dist/types/node/Comment.d.ts.map +1 -1
  286. package/dist/types/node/Document.d.ts +0 -856
  287. package/dist/types/node/Document.d.ts.map +1 -1
  288. package/dist/types/node/DocumentBase.d.ts +68 -108
  289. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  290. package/dist/types/node/DocumentFragment.d.ts +0 -38
  291. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  292. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  293. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  294. package/dist/types/node/Node.d.ts +0 -213
  295. package/dist/types/node/Node.d.ts.map +1 -1
  296. package/dist/types/node/NodeBase.d.ts +11 -8
  297. package/dist/types/node/NodeBase.d.ts.map +1 -1
  298. package/dist/types/node/NodeFilter.d.ts +25 -0
  299. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  300. package/dist/types/node/NodeIterator.d.ts +0 -34
  301. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  302. package/dist/types/node/ParentNode.d.ts +0 -84
  303. package/dist/types/node/ParentNode.d.ts.map +1 -1
  304. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  305. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  306. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  307. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  308. package/dist/types/node/Text.d.ts +0 -24
  309. package/dist/types/node/Text.d.ts.map +1 -1
  310. package/dist/types/node/TextBase.d.ts +2 -3
  311. package/dist/types/node/TextBase.d.ts.map +1 -1
  312. package/dist/types/node/TreeWalker.d.ts +48 -0
  313. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  314. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  315. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  316. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  317. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  318. package/dist/types/node/collection/NodeList.d.ts +0 -1
  319. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  320. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  321. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  322. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  323. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  324. package/dist/types/node/collection/index.d.ts +3 -3
  325. package/dist/types/node/collection/index.d.ts.map +1 -1
  326. package/dist/types/node/elements/Element.d.ts +0 -686
  327. package/dist/types/node/elements/Element.d.ts.map +1 -1
  328. package/dist/types/node/elements/ElementBase.d.ts +97 -73
  329. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  330. package/dist/types/node/elements/HTMLAreaElement.d.ts +0 -1
  331. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  332. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  333. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  334. package/dist/types/node/elements/HTMLButtonElement.d.ts +1 -1
  335. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  336. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  337. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  338. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  339. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  340. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  341. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  342. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  343. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  344. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  345. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  346. package/dist/types/node/elements/HTMLElement.d.ts +2 -88
  347. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  348. package/dist/types/node/elements/HTMLElementBase.d.ts +133 -3
  349. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  350. package/dist/types/node/elements/HTMLEmbedElement.d.ts +0 -1
  351. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  352. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  353. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  354. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  355. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  356. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  357. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  358. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  359. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  360. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  361. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  362. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  363. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  364. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  365. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  366. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  367. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  368. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  369. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  370. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  371. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  372. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  373. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  374. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  375. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  376. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  377. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  378. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  379. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  380. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  381. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  382. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  383. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  384. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  385. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  386. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  387. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  388. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  389. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  390. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  391. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  392. package/dist/types/node/elements/HTMLTableElement.d.ts +3 -4
  393. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  394. package/dist/types/node/elements/HTMLTbodyElement.d.ts +2 -3
  395. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  396. package/dist/types/node/elements/HTMLTemplateElement.d.ts +0 -1
  397. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  398. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  399. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  400. package/dist/types/node/elements/HTMLTfootElement.d.ts +2 -3
  401. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  402. package/dist/types/node/elements/HTMLTheadElement.d.ts +2 -3
  403. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  404. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  405. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  406. package/dist/types/node/elements/HTMLTrElement.d.ts +2 -3
  407. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  408. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  409. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  410. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  411. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  412. package/dist/types/node/elements/index.d.ts +106 -52
  413. package/dist/types/node/elements/index.d.ts.map +1 -1
  414. package/dist/types/node/index.d.ts +4 -7
  415. package/dist/types/node/index.d.ts.map +1 -1
  416. package/dist/types/utils/CSSSelector.d.ts +0 -1
  417. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  418. package/dist/types/window/CustomElementRegistryImp.d.ts +18 -0
  419. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  420. package/dist/types/window/Window.d.ts +0 -619
  421. package/dist/types/window/Window.d.ts.map +1 -1
  422. package/dist/types/window/WindowBase.d.ts +261 -284
  423. package/dist/types/window/WindowBase.d.ts.map +1 -1
  424. package/dist/types/window/index.d.ts +0 -1
  425. package/dist/types/window/index.d.ts.map +1 -1
  426. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3765 -3558
  427. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  428. package/package.json +1 -1
  429. package/src/DomParser.ts +458 -429
  430. package/src/factory/ElementFactory.ts +79 -53
  431. package/src/index.ts +11 -10
  432. package/src/node/CharacterData.ts +0 -2
  433. package/src/node/ChildNode.ts +42 -42
  434. package/src/node/ChildNodeBase.ts +60 -39
  435. package/src/node/Comment.ts +60 -60
  436. package/src/node/Document.ts +129 -882
  437. package/src/node/DocumentBase.ts +371 -462
  438. package/src/node/DocumentFragment.ts +38 -44
  439. package/src/node/DocumentFragmentBase.ts +4 -9
  440. package/src/node/Node.ts +231 -224
  441. package/src/node/NodeBase.ts +469 -443
  442. package/src/node/NodeFilter.ts +50 -0
  443. package/src/node/NodeIterator.ts +117 -172
  444. package/src/node/ParentNode.ts +93 -93
  445. package/src/node/ParentNodeBase.ts +7 -10
  446. package/src/node/ShadowRootBase.ts +87 -0
  447. package/src/node/Text.ts +30 -30
  448. package/src/node/TextBase.ts +92 -94
  449. package/src/node/TreeWalker.ts +280 -0
  450. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  451. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  452. package/src/node/collection/NodeList.ts +1 -1
  453. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  454. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  455. package/src/node/collection/index.ts +3 -3
  456. package/src/node/elements/Element.ts +212 -771
  457. package/src/node/elements/ElementBase.ts +840 -1195
  458. package/src/node/elements/HTMLAreaElement.ts +0 -1
  459. package/src/node/elements/HTMLAudioElement.ts +10 -0
  460. package/src/node/elements/HTMLButtonElement.ts +63 -63
  461. package/src/node/elements/HTMLDListElement.ts +2 -0
  462. package/src/node/elements/HTMLDataElement.ts +6 -0
  463. package/src/node/elements/HTMLDataListElement.ts +2 -0
  464. package/src/node/elements/HTMLDetailsElement.ts +2 -0
  465. package/src/node/elements/HTMLDialogElement.ts +2 -0
  466. package/src/node/elements/HTMLElement.ts +2 -102
  467. package/src/node/elements/HTMLElementBase.ts +453 -156
  468. package/src/node/elements/HTMLEmbedElement.ts +0 -1
  469. package/src/node/elements/HTMLFieldSetElement.ts +2 -0
  470. package/src/node/elements/HTMLHRElement.ts +2 -0
  471. package/src/node/elements/HTMLIFrameElement.ts +2 -0
  472. package/src/node/elements/HTMLLabelElement.ts +2 -0
  473. package/src/node/elements/HTMLLegendElement.ts +2 -0
  474. package/src/node/elements/HTMLMapElement.ts +2 -0
  475. package/src/node/elements/HTMLMeterElement.ts +2 -0
  476. package/src/node/elements/HTMLModElement.ts +2 -0
  477. package/src/node/elements/HTMLObjectElement.ts +2 -0
  478. package/src/node/elements/HTMLOptGroupElement.ts +2 -0
  479. package/src/node/elements/HTMLOptionElement.ts +2 -0
  480. package/src/node/elements/HTMLOutputElement.ts +2 -0
  481. package/src/node/elements/HTMLParamElement.ts +2 -0
  482. package/src/node/elements/HTMLPictureElement.ts +2 -0
  483. package/src/node/elements/HTMLPreElement.ts +2 -0
  484. package/src/node/elements/HTMLProgressElement.ts +2 -0
  485. package/src/node/elements/HTMLQuoteElement.ts +2 -0
  486. package/src/node/elements/HTMLSelectElement.ts +2 -0
  487. package/src/node/elements/HTMLSlotElement.ts +2 -0
  488. package/src/node/elements/HTMLSourceElement.ts +2 -0
  489. package/src/node/elements/HTMLTableElement.ts +3 -7
  490. package/src/node/elements/HTMLTbodyElement.ts +2 -3
  491. package/src/node/elements/HTMLTdElement.ts +1 -1
  492. package/src/node/elements/HTMLTemplateElement.ts +3 -6
  493. package/src/node/elements/HTMLTextAreaElement.ts +2 -0
  494. package/src/node/elements/HTMLTfootElement.ts +2 -3
  495. package/src/node/elements/HTMLTheadElement.ts +2 -3
  496. package/src/node/elements/HTMLTimeElement.ts +2 -0
  497. package/src/node/elements/HTMLTrElement.ts +3 -4
  498. package/src/node/elements/HTMLTrackElement.ts +2 -0
  499. package/src/node/elements/HTMLVideoElement.ts +10 -0
  500. package/src/node/elements/index.ts +226 -149
  501. package/src/node/index.ts +8 -8
  502. package/src/utils/CSSSelector.ts +0 -1
  503. package/src/window/CustomElementRegistryImp.ts +120 -0
  504. package/src/window/Window.ts +716 -715
  505. package/src/window/WindowBase.ts +842 -998
  506. package/src/window/index.ts +0 -1
  507. package/tsconfig.json +1 -0
  508. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  509. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  510. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  511. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  512. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  513. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  514. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  515. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  516. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  517. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  518. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  519. package/src/node/collection/HTMLCollectionOf.ts +0 -26
@@ -4,66 +4,92 @@ import { HTMLElementBase, HTMLGenericElement, htmlElements, svgElements, mathmlE
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
31
+ if (normalizedTagName.includes('-') && customElements && typeof customElements.get === 'function') {
32
+ const CustomElementClass = customElements.get(normalizedTagName);
33
+ if (CustomElementClass) {
34
+ const element = new CustomElementClass() as any;
35
+ element._tagName = tagName.toUpperCase();
36
+ element.nodeName = tagName.toUpperCase();
37
+ element._ownerDocument = ownerDocument;
38
+ return element;
39
+ }
43
40
  }
44
41
 
45
- /**
46
- * Get all supported SVG tag names
47
- */
48
- static getSupportedSVGTagNames(): string[] {
49
- return Object.keys(svgElements);
42
+ // 3. Check HTML elements
43
+
44
+ for (const [tag, ElementClass] of Object.entries(htmlElements)) {
45
+ if (tag === normalizedTagName) {
46
+ return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
47
+ }
50
48
  }
51
49
 
52
- /**
53
- * Get all supported MathML tag names
54
- */
55
- static getSupportedMathMLTagNames(): string[] {
56
- return Object.keys(mathmlElements);
50
+ // Check SVG elements
51
+ for (const [tag, ElementClass] of Object.entries(svgElements)) {
52
+ if (tag === normalizedTagName) {
53
+ return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
54
+ }
57
55
  }
58
56
 
59
- /**
60
- * Get all supported tag names
61
- */
62
- static getSupportedTagNames(): string[] {
63
- return [
64
- ...ElementFactory.getSupportedHTMLTagNames(),
65
- ...ElementFactory.getSupportedSVGTagNames(),
66
- ...ElementFactory.getSupportedMathMLTagNames()
67
- ];
57
+ // Check MathML elements
58
+ for (const [tag, ElementClass] of Object.entries(mathmlElements)) {
59
+ if (tag === normalizedTagName) {
60
+ return new ElementClass(tagName.toUpperCase(), ownerDocument) as HTMLElementBase;
61
+ }
68
62
  }
69
- }
63
+
64
+ // For unknown elements, create a generic HTMLElement
65
+ return new HTMLGenericElement(tagName.toUpperCase(), ownerDocument);
66
+ }
67
+
68
+ /**
69
+ * Get all supported HTML tag names
70
+ */
71
+ static getSupportedHTMLTagNames(): string[] {
72
+ return Object.keys(htmlElements);
73
+ }
74
+
75
+ /**
76
+ * Get all supported SVG tag names
77
+ */
78
+ static getSupportedSVGTagNames(): string[] {
79
+ return Object.keys(svgElements);
80
+ }
81
+
82
+ /**
83
+ * Get all supported MathML tag names
84
+ */
85
+ static getSupportedMathMLTagNames(): string[] {
86
+ return Object.keys(mathmlElements);
87
+ }
88
+
89
+ /**
90
+ * Get all supported tag names
91
+ */
92
+ static getSupportedTagNames(): string[] {
93
+ return [...ElementFactory.getSupportedHTMLTagNames(), ...ElementFactory.getSupportedSVGTagNames(), ...ElementFactory.getSupportedMathMLTagNames()];
94
+ }
95
+ }
package/src/index.ts CHANGED
@@ -1,19 +1,20 @@
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'
6
7
  // Utility function to parse HTML and return window object
7
8
  export const parseHTML = (html: string, option?: DomParserOptions) => {
8
- const parser = new DomParser(html, option);
9
- return parser.window;
10
- }
9
+ const parser = new DomParser(html, option);
10
+ return parser.window;
11
+ };
11
12
 
12
13
  // Default export
13
14
  export default {
14
- DomParser,
15
- parseHTML
16
- }
15
+ DomParser,
16
+ parseHTML
17
+ };
17
18
 
18
19
  // Internal exports (commented out - users don't need these)
19
20
  // export { WindowBase } from './window/WindowBase';
@@ -25,4 +26,4 @@ export default {
25
26
  // export { DocumentBase } from "./node/DocumentBase";
26
27
  // export * from "./node/DocumentFragment";
27
28
  // export { DocumentFragmentBase } from "./node/DocumentFragmentBase";
28
- // export * from "./node/Node";
29
+ // 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
@@ -3,7 +3,7 @@ import { COMMENT_NODE } from './Node';
3
3
 
4
4
  /**
5
5
  * The **`Comment`** interface represents textual notations within markup; although it is generally not visually shown, such comments are available to be read in the source view.
6
- *
6
+ *
7
7
  * [MDN Reference](https://developer.mozilla.org/docs/Web/API/Comment)
8
8
  */
9
9
  // export interface Comment {
@@ -21,78 +21,78 @@ import { COMMENT_NODE } from './Node';
21
21
  /**
22
22
  * The **`CommentNode`** class represents a comment node in the DOM.
23
23
  */
24
- export class Comment extends ChildNodeBase {
25
- private _data: string;
24
+ export class Comment extends ChildNodeBase {
25
+ private _data: string;
26
26
 
27
- constructor(data: string, ownerDocument?: any) {
28
- super(COMMENT_NODE, '#comment', ownerDocument);
29
- this._data = data;
30
- this._nodeValue = data;
31
- }
27
+ constructor(data: string, ownerDocument?: any) {
28
+ super(COMMENT_NODE, '#comment', ownerDocument);
29
+ this._data = data;
30
+ this._nodeValue = data;
31
+ }
32
32
 
33
- get data(): string {
34
- return this._data;
35
- }
33
+ get data(): string {
34
+ return this._data;
35
+ }
36
36
 
37
- set data(value: string) {
38
- this._data = value;
39
- this._nodeValue = value;
40
- }
37
+ set data(value: string) {
38
+ this._data = value;
39
+ this._nodeValue = value;
40
+ }
41
41
 
42
- get length(): number {
43
- return this._data.length;
44
- }
42
+ get length(): number {
43
+ return this._data.length;
44
+ }
45
45
 
46
- get textContent(): string | null {
47
- return this._data;
48
- }
46
+ get textContent(): string | null {
47
+ return this._data;
48
+ }
49
49
 
50
- set textContent(value: string | null) {
51
- this._data = value || '';
52
- this._nodeValue = this._data;
53
- }
50
+ set textContent(value: string | null) {
51
+ this._data = value || '';
52
+ this._nodeValue = this._data;
53
+ }
54
54
 
55
- // CharacterData methods
56
- appendData(data: string): void {
57
- this._data += data;
58
- this._nodeValue = this._data;
59
- }
55
+ // CharacterData methods
56
+ appendData(data: string): void {
57
+ this._data += data;
58
+ this._nodeValue = this._data;
59
+ }
60
60
 
61
- deleteData(offset: number, count: number): void {
62
- if (offset < 0 || offset > this._data.length) {
63
- throw new Error('Index out of bounds');
64
- }
65
- const endOffset = Math.min(offset + count, this._data.length);
66
- this._data = this._data.slice(0, offset) + this._data.slice(endOffset);
67
- this._nodeValue = this._data;
61
+ deleteData(offset: number, count: number): void {
62
+ if (offset < 0 || offset > this._data.length) {
63
+ throw new Error('Index out of bounds');
68
64
  }
65
+ const endOffset = Math.min(offset + count, this._data.length);
66
+ this._data = this._data.slice(0, offset) + this._data.slice(endOffset);
67
+ this._nodeValue = this._data;
68
+ }
69
69
 
70
- insertData(offset: number, data: string): void {
71
- if (offset < 0 || offset > this._data.length) {
72
- throw new Error('Index out of bounds');
73
- }
74
- this._data = this._data.slice(0, offset) + data + this._data.slice(offset);
75
- this._nodeValue = this._data;
70
+ insertData(offset: number, data: string): void {
71
+ if (offset < 0 || offset > this._data.length) {
72
+ throw new Error('Index out of bounds');
76
73
  }
74
+ this._data = this._data.slice(0, offset) + data + this._data.slice(offset);
75
+ this._nodeValue = this._data;
76
+ }
77
77
 
78
- replaceData(offset: number, count: number, data: string): void {
79
- this.deleteData(offset, count);
80
- this.insertData(offset, data);
81
- }
78
+ replaceData(offset: number, count: number, data: string): void {
79
+ this.deleteData(offset, count);
80
+ this.insertData(offset, data);
81
+ }
82
82
 
83
- substringData(offset: number, count: number): string {
84
- if (offset < 0 || offset > this._data.length) {
85
- throw new Error('Index out of bounds');
86
- }
87
- const endOffset = Math.min(offset + count, this._data.length);
88
- return this._data.slice(offset, endOffset);
83
+ substringData(offset: number, count: number): string {
84
+ if (offset < 0 || offset > this._data.length) {
85
+ throw new Error('Index out of bounds');
89
86
  }
87
+ const endOffset = Math.min(offset + count, this._data.length);
88
+ return this._data.slice(offset, endOffset);
89
+ }
90
90
 
91
- cloneNode(deep?: boolean): Comment {
92
- return new Comment(this._data, this._ownerDocument);
93
- }
91
+ cloneNode(deep?: boolean): Node {
92
+ return new Comment(this._data, this._ownerDocument) as unknown as Node;
93
+ }
94
94
 
95
- toString(): string {
96
- return `<!--${this._data}-->`;
97
- }
98
- }
95
+ toString(): string {
96
+ return `<!--${this._data}-->`;
97
+ }
98
+ }