@dooboostore/dom-parser 1.0.2 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (518) hide show
  1. package/dist/cjs/DomParser.js +10 -1
  2. package/dist/cjs/DomParser.js.map +2 -2
  3. package/dist/cjs/factory/ElementFactory.js +27 -6
  4. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  5. package/dist/cjs/index.js +4 -0
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/node/CharacterData.js.map +1 -1
  8. package/dist/cjs/node/ChildNode.js +0 -15
  9. package/dist/cjs/node/ChildNode.js.map +3 -3
  10. package/dist/cjs/node/ChildNodeBase.js +20 -0
  11. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  12. package/dist/cjs/node/Comment.js.map +2 -2
  13. package/dist/cjs/node/Document.js +0 -27
  14. package/dist/cjs/node/Document.js.map +4 -4
  15. package/dist/cjs/node/DocumentBase.js +168 -205
  16. package/dist/cjs/node/DocumentBase.js.map +2 -2
  17. package/dist/cjs/node/DocumentFragment.js +0 -15
  18. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  19. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  20. package/dist/cjs/node/Node.js.map +1 -1
  21. package/dist/cjs/node/NodeBase.js +44 -2
  22. package/dist/cjs/node/NodeBase.js.map +2 -2
  23. package/dist/cjs/node/NodeFilter.js +43 -0
  24. package/dist/cjs/node/NodeFilter.js.map +7 -0
  25. package/dist/cjs/node/NodeIterator.js +1 -28
  26. package/dist/cjs/node/NodeIterator.js.map +2 -2
  27. package/dist/cjs/node/ParentNode.js +0 -15
  28. package/dist/cjs/node/ParentNode.js.map +3 -3
  29. package/dist/cjs/node/ParentNodeBase.js +10 -10
  30. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  31. package/dist/cjs/node/ShadowRootBase.js +79 -0
  32. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  33. package/dist/cjs/node/Text.js +0 -15
  34. package/dist/cjs/node/Text.js.map +3 -3
  35. package/dist/cjs/node/TextBase.js +0 -3
  36. package/dist/cjs/node/TextBase.js.map +2 -2
  37. package/dist/cjs/node/TreeWalker.js +272 -0
  38. package/dist/cjs/node/TreeWalker.js.map +7 -0
  39. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  40. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  41. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  42. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  43. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  44. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  45. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  47. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  48. package/dist/cjs/node/collection/index.js +6 -6
  49. package/dist/cjs/node/collection/index.js.map +2 -2
  50. package/dist/cjs/node/elements/Element.js +0 -15
  51. package/dist/cjs/node/elements/Element.js.map +3 -3
  52. package/dist/cjs/node/elements/ElementBase.js +163 -331
  53. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  54. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  55. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLAudioElement.js} +9 -16
  56. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  57. package/dist/cjs/node/elements/HTMLButtonElement.js +1 -1
  58. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLDListElement.js +29 -0
  60. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  61. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  62. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  64. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  65. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  66. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  67. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  68. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  69. package/dist/cjs/node/elements/HTMLElement.js +10 -0
  70. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLElementBase.js +41 -43
  72. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  73. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  74. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  75. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  76. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  77. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  78. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  79. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  80. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  81. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  82. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  83. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  84. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  85. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  86. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  87. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  88. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  89. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  90. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  91. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  92. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  93. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  94. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  95. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  96. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  97. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  98. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  99. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  100. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  101. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  102. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  103. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  104. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  105. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  106. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  107. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  108. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  109. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  110. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  111. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  112. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  113. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  114. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  115. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  116. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  118. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  119. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  120. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  122. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  123. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  124. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  125. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  126. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  127. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  129. package/dist/cjs/node/elements/index.js +181 -92
  130. package/dist/cjs/node/elements/index.js.map +2 -2
  131. package/dist/cjs/node/index.js +6 -16
  132. package/dist/cjs/node/index.js.map +2 -2
  133. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  134. package/dist/cjs/window/CustomElementRegistryImp.js +105 -0
  135. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  136. package/dist/cjs/window/Window.js +0 -15
  137. package/dist/cjs/window/Window.js.map +3 -3
  138. package/dist/cjs/window/WindowBase.js +210 -613
  139. package/dist/cjs/window/WindowBase.js.map +2 -2
  140. package/dist/cjs/window/index.js +0 -5
  141. package/dist/cjs/window/index.js.map +2 -2
  142. package/dist/esm/DomParser.js +10 -1
  143. package/dist/esm/DomParser.js.map +2 -2
  144. package/dist/esm/factory/ElementFactory.js +27 -6
  145. package/dist/esm/factory/ElementFactory.js.map +2 -2
  146. package/dist/esm/index.js +4 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/node/ChildNodeBase.js +20 -0
  149. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  150. package/dist/esm/node/Comment.js.map +2 -2
  151. package/dist/esm/node/Document.js +0 -8
  152. package/dist/esm/node/Document.js.map +4 -4
  153. package/dist/esm/node/DocumentBase.js +165 -202
  154. package/dist/esm/node/DocumentBase.js.map +2 -2
  155. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  156. package/dist/esm/node/Node.js.map +1 -1
  157. package/dist/esm/node/NodeBase.js +45 -22
  158. package/dist/esm/node/NodeBase.js.map +2 -2
  159. package/dist/esm/node/NodeFilter.js +24 -0
  160. package/dist/esm/node/NodeFilter.js.map +7 -0
  161. package/dist/esm/node/NodeIterator.js +1 -28
  162. package/dist/esm/node/NodeIterator.js.map +2 -2
  163. package/dist/esm/node/ParentNodeBase.js +4 -4
  164. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  165. package/dist/esm/node/ShadowRootBase.js +60 -0
  166. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  167. package/dist/esm/node/TextBase.js +0 -3
  168. package/dist/esm/node/TextBase.js.map +2 -2
  169. package/dist/esm/node/TreeWalker.js +253 -0
  170. package/dist/esm/node/TreeWalker.js.map +7 -0
  171. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  172. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  173. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  174. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  175. package/dist/esm/node/collection/NodeList.js.map +1 -1
  176. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  177. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  178. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  179. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  180. package/dist/esm/node/collection/index.js +6 -6
  181. package/dist/esm/node/collection/index.js.map +2 -2
  182. package/dist/esm/node/elements/ElementBase.js +163 -331
  183. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  184. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  185. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  186. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  187. package/dist/esm/node/elements/HTMLButtonElement.js +1 -1
  188. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  189. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  190. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  191. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  192. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  193. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  194. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  195. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  196. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  197. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  198. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  199. package/dist/esm/node/elements/HTMLElement.js +6 -0
  200. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  201. package/dist/esm/node/elements/HTMLElementBase.js +40 -42
  202. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  203. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  204. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  205. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  206. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  207. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  208. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  209. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  210. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  211. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  212. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  213. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  214. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  215. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  216. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  217. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  218. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  219. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  220. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  221. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  222. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  223. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  224. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  225. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  226. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  227. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  228. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  229. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  230. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  231. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  232. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  233. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  234. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  235. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  236. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  237. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  238. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  239. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  240. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  241. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  242. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  243. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  244. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  245. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  246. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  247. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  248. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  249. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  250. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  251. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  255. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  256. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  257. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  258. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  259. package/dist/esm/node/elements/index.js +182 -93
  260. package/dist/esm/node/elements/index.js.map +2 -2
  261. package/dist/esm/node/index.js +7 -17
  262. package/dist/esm/node/index.js.map +2 -2
  263. package/dist/esm/utils/CSSSelector.js.map +2 -2
  264. package/dist/esm/window/CustomElementRegistryImp.js +86 -0
  265. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  266. package/dist/esm/window/WindowBase.js +259 -597
  267. package/dist/esm/window/WindowBase.js.map +2 -2
  268. package/dist/esm/window/index.js +0 -5
  269. package/dist/esm/window/index.js.map +2 -2
  270. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3449 -3551
  271. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  272. package/dist/types/DomParser.d.ts.map +1 -1
  273. package/dist/types/factory/ElementFactory.d.ts +1 -1
  274. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  275. package/dist/types/index.d.ts +3 -1
  276. package/dist/types/index.d.ts.map +1 -1
  277. package/dist/types/node/CharacterData.d.ts +0 -2
  278. package/dist/types/node/CharacterData.d.ts.map +1 -1
  279. package/dist/types/node/ChildNode.d.ts +0 -38
  280. package/dist/types/node/ChildNode.d.ts.map +1 -1
  281. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  282. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  283. package/dist/types/node/Comment.d.ts +1 -1
  284. package/dist/types/node/Comment.d.ts.map +1 -1
  285. package/dist/types/node/Document.d.ts +0 -856
  286. package/dist/types/node/Document.d.ts.map +1 -1
  287. package/dist/types/node/DocumentBase.d.ts +68 -110
  288. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  289. package/dist/types/node/DocumentFragment.d.ts +0 -38
  290. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  291. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  292. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  293. package/dist/types/node/Node.d.ts +0 -213
  294. package/dist/types/node/Node.d.ts.map +1 -1
  295. package/dist/types/node/NodeBase.d.ts +11 -8
  296. package/dist/types/node/NodeBase.d.ts.map +1 -1
  297. package/dist/types/node/NodeFilter.d.ts +25 -0
  298. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  299. package/dist/types/node/NodeIterator.d.ts +0 -34
  300. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  301. package/dist/types/node/ParentNode.d.ts +0 -84
  302. package/dist/types/node/ParentNode.d.ts.map +1 -1
  303. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  304. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  305. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  306. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  307. package/dist/types/node/Text.d.ts +0 -24
  308. package/dist/types/node/Text.d.ts.map +1 -1
  309. package/dist/types/node/TextBase.d.ts +2 -3
  310. package/dist/types/node/TextBase.d.ts.map +1 -1
  311. package/dist/types/node/TreeWalker.d.ts +48 -0
  312. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  313. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  314. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  315. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  316. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  317. package/dist/types/node/collection/NodeList.d.ts +0 -1
  318. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  319. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  320. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  321. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  322. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  323. package/dist/types/node/collection/index.d.ts +3 -3
  324. package/dist/types/node/collection/index.d.ts.map +1 -1
  325. package/dist/types/node/elements/Element.d.ts +0 -687
  326. package/dist/types/node/elements/Element.d.ts.map +1 -1
  327. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  328. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  329. package/dist/types/node/elements/HTMLAreaElement.d.ts +0 -1
  330. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  331. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  332. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  333. package/dist/types/node/elements/HTMLButtonElement.d.ts +1 -1
  334. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  335. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  336. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  337. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  338. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  339. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  340. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  341. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  342. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  343. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  344. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  345. package/dist/types/node/elements/HTMLElement.d.ts +2 -119
  346. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  347. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  348. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  349. package/dist/types/node/elements/HTMLEmbedElement.d.ts +0 -1
  350. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  351. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  352. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  353. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  354. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  355. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  356. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  357. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  358. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  359. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  360. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  361. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  362. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  363. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  364. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  365. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  366. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  367. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  368. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  369. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  370. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  371. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  372. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  373. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  374. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  375. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  376. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  377. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  378. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  379. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  380. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  381. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  382. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  383. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  384. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  385. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  386. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  387. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  388. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  389. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  390. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  391. package/dist/types/node/elements/HTMLTableElement.d.ts +3 -4
  392. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  393. package/dist/types/node/elements/HTMLTbodyElement.d.ts +2 -3
  394. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  395. package/dist/types/node/elements/HTMLTemplateElement.d.ts +0 -1
  396. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  397. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  398. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  399. package/dist/types/node/elements/HTMLTfootElement.d.ts +2 -3
  400. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  401. package/dist/types/node/elements/HTMLTheadElement.d.ts +2 -3
  402. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  403. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  404. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  405. package/dist/types/node/elements/HTMLTrElement.d.ts +2 -3
  406. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  407. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  408. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  409. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  410. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  411. package/dist/types/node/elements/index.d.ts +106 -52
  412. package/dist/types/node/elements/index.d.ts.map +1 -1
  413. package/dist/types/node/index.d.ts +4 -7
  414. package/dist/types/node/index.d.ts.map +1 -1
  415. package/dist/types/utils/CSSSelector.d.ts +0 -1
  416. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  417. package/dist/types/window/CustomElementRegistryImp.d.ts +18 -0
  418. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  419. package/dist/types/window/Window.d.ts +0 -619
  420. package/dist/types/window/Window.d.ts.map +1 -1
  421. package/dist/types/window/WindowBase.d.ts +253 -286
  422. package/dist/types/window/WindowBase.d.ts.map +1 -1
  423. package/dist/types/window/index.d.ts +0 -1
  424. package/dist/types/window/index.d.ts.map +1 -1
  425. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3460 -3562
  426. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  427. package/package.json +1 -1
  428. package/src/DomParser.ts +28 -20
  429. package/src/factory/ElementFactory.ts +79 -53
  430. package/src/index.ts +11 -10
  431. package/src/node/CharacterData.ts +0 -2
  432. package/src/node/ChildNode.ts +42 -42
  433. package/src/node/ChildNodeBase.ts +60 -39
  434. package/src/node/Comment.ts +60 -60
  435. package/src/node/Document.ts +129 -882
  436. package/src/node/DocumentBase.ts +371 -467
  437. package/src/node/DocumentFragment.ts +38 -44
  438. package/src/node/DocumentFragmentBase.ts +4 -9
  439. package/src/node/Node.ts +231 -224
  440. package/src/node/NodeBase.ts +469 -443
  441. package/src/node/NodeFilter.ts +50 -0
  442. package/src/node/NodeIterator.ts +117 -172
  443. package/src/node/ParentNode.ts +93 -93
  444. package/src/node/ParentNodeBase.ts +7 -10
  445. package/src/node/ShadowRootBase.ts +87 -0
  446. package/src/node/Text.ts +30 -30
  447. package/src/node/TextBase.ts +92 -94
  448. package/src/node/TreeWalker.ts +280 -0
  449. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  450. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  451. package/src/node/collection/NodeList.ts +1 -1
  452. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  453. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  454. package/src/node/collection/index.ts +3 -3
  455. package/src/node/elements/Element.ts +212 -772
  456. package/src/node/elements/ElementBase.ts +840 -1204
  457. package/src/node/elements/HTMLAreaElement.ts +0 -1
  458. package/src/node/elements/HTMLAudioElement.ts +10 -0
  459. package/src/node/elements/HTMLButtonElement.ts +63 -63
  460. package/src/node/elements/HTMLDListElement.ts +2 -0
  461. package/src/node/elements/HTMLDataElement.ts +6 -0
  462. package/src/node/elements/HTMLDataListElement.ts +2 -0
  463. package/src/node/elements/HTMLDetailsElement.ts +2 -0
  464. package/src/node/elements/HTMLDialogElement.ts +2 -0
  465. package/src/node/elements/HTMLElement.ts +2 -137
  466. package/src/node/elements/HTMLElementBase.ts +466 -355
  467. package/src/node/elements/HTMLEmbedElement.ts +0 -1
  468. package/src/node/elements/HTMLFieldSetElement.ts +2 -0
  469. package/src/node/elements/HTMLHRElement.ts +2 -0
  470. package/src/node/elements/HTMLIFrameElement.ts +2 -0
  471. package/src/node/elements/HTMLLabelElement.ts +2 -0
  472. package/src/node/elements/HTMLLegendElement.ts +2 -0
  473. package/src/node/elements/HTMLMapElement.ts +2 -0
  474. package/src/node/elements/HTMLMeterElement.ts +2 -0
  475. package/src/node/elements/HTMLModElement.ts +2 -0
  476. package/src/node/elements/HTMLObjectElement.ts +2 -0
  477. package/src/node/elements/HTMLOptGroupElement.ts +2 -0
  478. package/src/node/elements/HTMLOptionElement.ts +2 -0
  479. package/src/node/elements/HTMLOutputElement.ts +2 -0
  480. package/src/node/elements/HTMLParamElement.ts +2 -0
  481. package/src/node/elements/HTMLPictureElement.ts +2 -0
  482. package/src/node/elements/HTMLPreElement.ts +2 -0
  483. package/src/node/elements/HTMLProgressElement.ts +2 -0
  484. package/src/node/elements/HTMLQuoteElement.ts +2 -0
  485. package/src/node/elements/HTMLSelectElement.ts +2 -0
  486. package/src/node/elements/HTMLSlotElement.ts +2 -0
  487. package/src/node/elements/HTMLSourceElement.ts +2 -0
  488. package/src/node/elements/HTMLTableElement.ts +3 -7
  489. package/src/node/elements/HTMLTbodyElement.ts +2 -3
  490. package/src/node/elements/HTMLTdElement.ts +1 -1
  491. package/src/node/elements/HTMLTemplateElement.ts +3 -6
  492. package/src/node/elements/HTMLTextAreaElement.ts +2 -0
  493. package/src/node/elements/HTMLTfootElement.ts +2 -3
  494. package/src/node/elements/HTMLTheadElement.ts +2 -3
  495. package/src/node/elements/HTMLTimeElement.ts +2 -0
  496. package/src/node/elements/HTMLTrElement.ts +3 -4
  497. package/src/node/elements/HTMLTrackElement.ts +2 -0
  498. package/src/node/elements/HTMLVideoElement.ts +10 -0
  499. package/src/node/elements/index.ts +226 -149
  500. package/src/node/index.ts +8 -8
  501. package/src/utils/CSSSelector.ts +0 -1
  502. package/src/window/CustomElementRegistryImp.ts +120 -0
  503. package/src/window/Window.ts +716 -715
  504. package/src/window/WindowBase.ts +482 -847
  505. package/src/window/index.ts +0 -1
  506. package/tsconfig.json +1 -0
  507. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  508. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  509. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  510. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  511. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  512. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  513. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  514. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  515. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  516. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  517. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  518. package/src/node/collection/HTMLCollectionOf.ts +0 -26
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/NodeIterator.ts"],
4
- "sourcesContent": ["import { Node } from './Node';\nimport { NodeBase } from './NodeBase';\n\n/**\n * NodeFilter interface for filtering nodes in NodeIterator\n */\nexport interface NodeFilter {\n acceptNode(node: Node): number;\n}\n\n/**\n * NodeFilter constants\n */\nexport const NodeFilter = {\n // Constants for acceptNode return values\n FILTER_ACCEPT: 1,\n FILTER_REJECT: 2,\n FILTER_SKIP: 3,\n \n // Constants for whatToShow\n SHOW_ALL: 0xFFFFFFFF,\n SHOW_ELEMENT: 0x1,\n SHOW_ATTRIBUTE: 0x2,\n SHOW_TEXT: 0x4,\n SHOW_CDATA_SECTION: 0x8,\n SHOW_ENTITY_REFERENCE: 0x10,\n SHOW_ENTITY: 0x20,\n SHOW_PROCESSING_INSTRUCTION: 0x40,\n SHOW_COMMENT: 0x80,\n SHOW_DOCUMENT: 0x100,\n SHOW_DOCUMENT_TYPE: 0x200,\n SHOW_DOCUMENT_FRAGMENT: 0x400,\n SHOW_NOTATION: 0x800\n};\n\n/**\n * NodeIterator implementation for traversing DOM nodes\n */\nexport class NodeIterator {\n private _root: Node;\n private _whatToShow: number;\n private _filter: NodeFilter | null;\n private _currentNode: Node;\n private _beforeReferenceNode: boolean = true;\n\n constructor(root: Node, whatToShow: number = NodeFilter.SHOW_ALL, filter: NodeFilter | null = null) {\n this._root = root;\n this._whatToShow = whatToShow;\n this._filter = filter;\n this._currentNode = root;\n }\n\n get root(): Node {\n return this._root;\n }\n\n get whatToShow(): number {\n return this._whatToShow;\n }\n\n get filter(): NodeFilter | null {\n return this._filter;\n }\n\n get referenceNode(): Node {\n return this._currentNode;\n }\n\n get pointerBeforeReferenceNode(): boolean {\n return this._beforeReferenceNode;\n }\n\n /**\n * Move to the next node in document order\n */\n nextNode(): Node | null {\n let node = this._currentNode;\n \n // If we're before the reference node, start from the reference node\n if (this._beforeReferenceNode) {\n this._beforeReferenceNode = false;\n if (this._acceptNode(node)) {\n return node;\n }\n }\n\n // Traverse in document order\n while (node) {\n // First, try to go to first child\n const firstChild = (node as any).firstChild;\n if (firstChild) {\n node = firstChild;\n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n continue;\n }\n\n // If no children, try next sibling\n while (node && !(node as any).nextSibling) {\n node = (node as any).parentNode;\n // Don't go beyond root\n if (!node || node === (this._root as any).parentNode) {\n return null;\n }\n }\n\n if (!node) {\n return null;\n }\n\n node = (node as any).nextSibling;\n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n }\n\n return null;\n }\n\n /**\n * Move to the previous node in document order\n */\n previousNode(): Node | null {\n let node = this._currentNode;\n\n // If we're after the reference node, start from the reference node\n if (!this._beforeReferenceNode) {\n this._beforeReferenceNode = true;\n if (this._acceptNode(node)) {\n return node;\n }\n }\n\n // Traverse in reverse document order\n while (node && node !== this._root) {\n // Try previous sibling\n const prevSibling = (node as any).previousSibling;\n if (prevSibling) {\n node = prevSibling;\n \n // Go to the deepest last child\n while ((node as any).lastChild) {\n node = (node as any).lastChild;\n }\n \n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n continue;\n }\n\n // Go to parent\n node = (node as any).parentNode;\n if (!node || node === (this._root as any).parentNode) {\n return null;\n }\n\n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n }\n\n return null;\n }\n\n /**\n * Detach the iterator (no-op in this implementation)\n */\n detach(): void {\n // Modern browsers don't require this, but we implement for compatibility\n }\n\n /**\n * Check if a node should be accepted based on whatToShow and filter\n */\n private _acceptNode(node: Node | null): boolean {\n if (!node) {\n return false;\n }\n\n // Check whatToShow filter\n const nodeTypeMask = 1 << (node.nodeType - 1);\n if (!(this._whatToShow & nodeTypeMask)) {\n return false;\n }\n\n // Check custom filter\n if (this._filter) {\n const result = this._filter.acceptNode(node);\n return result === NodeFilter.FILTER_ACCEPT;\n }\n\n return true;\n }\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["\n/**\n * NodeIterator implementation for traversing DOM nodes\n */\nexport class NodeIterator {\n private _root: Node;\n private _whatToShow: number;\n private _filter: NodeFilter | null;\n private _currentNode: Node;\n private _beforeReferenceNode: boolean = true;\n\n constructor(root: Node, whatToShow: number = NodeFilter.SHOW_ALL, filter: NodeFilter | null = null) {\n this._root = root;\n this._whatToShow = whatToShow;\n this._filter = filter;\n this._currentNode = root;\n }\n\n get root(): Node {\n return this._root;\n }\n\n get whatToShow(): number {\n return this._whatToShow;\n }\n\n get filter(): NodeFilter | null {\n return this._filter;\n }\n\n get referenceNode(): Node {\n return this._currentNode;\n }\n\n get pointerBeforeReferenceNode(): boolean {\n return this._beforeReferenceNode;\n }\n\n /**\n * Move to the next node in document order\n */\n nextNode(): Node | null {\n let node = this._currentNode;\n\n if (this._beforeReferenceNode) {\n this._beforeReferenceNode = false;\n if (this._acceptNode(node)) {\n return node;\n }\n }\n\n while (node) {\n const firstChild = (node as any).firstChild;\n if (firstChild) {\n node = firstChild;\n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n continue;\n }\n\n while (node && !(node as any).nextSibling) {\n node = (node as any).parentNode;\n if (!node || node === (this._root as any).parentNode) {\n return null;\n }\n }\n\n if (!node) {\n return null;\n }\n\n node = (node as any).nextSibling;\n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n }\n\n return null;\n }\n\n /**\n * Move to the previous node in document order\n */\n previousNode(): Node | null {\n let node = this._currentNode;\n\n if (!this._beforeReferenceNode) {\n this._beforeReferenceNode = true;\n if (this._acceptNode(node)) {\n return node;\n }\n }\n\n while (node && node !== this._root) {\n const prevSibling = (node as any).previousSibling;\n if (prevSibling) {\n node = prevSibling;\n while ((node as any).lastChild) {\n node = (node as any).lastChild;\n }\n\n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n continue;\n }\n\n node = (node as any).parentNode;\n if (!node || node === (this._root as any).parentNode) {\n return null;\n }\n\n if (this._acceptNode(node)) {\n this._currentNode = node;\n return node;\n }\n }\n\n return null;\n }\n\n detach(): void {}\n\n private _acceptNode(node: Node | null): boolean {\n if (!node) {\n return false;\n }\n\n const nodeTypeMask = 1 << (node.nodeType - 1);\n if (!(this._whatToShow & nodeTypeMask)) {\n return false;\n }\n\n if (this._filter) {\n const result = ('acceptNode' in this._filter) ? this._filter.acceptNode(node) : this._filter(node);\n return result === NodeFilter.FILTER_ACCEPT;\n }\n\n return true;\n }\n}\n"],
5
+ "mappings": "AAIO,MAAM,aAAa;AAAA,EAOxB,YAAY,MAAY,aAAqB,WAAW,UAAU,SAA4B,MAAM;AAFpG,SAAQ,uBAAgC;AAGtC,SAAK,QAAQ;AACb,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,IAAI,OAAa;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,aAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAA4B;AAC9B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,gBAAsB;AACxB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,6BAAsC;AACxC,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,WAAwB;AACtB,QAAI,OAAO,KAAK;AAEhB,QAAI,KAAK,sBAAsB;AAC7B,WAAK,uBAAuB;AAC5B,UAAI,KAAK,YAAY,IAAI,GAAG;AAC1B,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,MAAM;AACX,YAAM,aAAc,KAAa;AACjC,UAAI,YAAY;AACd,eAAO;AACP,YAAI,KAAK,YAAY,IAAI,GAAG;AAC1B,eAAK,eAAe;AACpB,iBAAO;AAAA,QACT;AACA;AAAA,MACF;AAEA,aAAO,QAAQ,CAAE,KAAa,aAAa;AACzC,eAAQ,KAAa;AACrB,YAAI,CAAC,QAAQ,SAAU,KAAK,MAAc,YAAY;AACpD,iBAAO;AAAA,QACT;AAAA,MACF;AAEA,UAAI,CAAC,MAAM;AACT,eAAO;AAAA,MACT;AAEA,aAAQ,KAAa;AACrB,UAAI,KAAK,YAAY,IAAI,GAAG;AAC1B,aAAK,eAAe;AACpB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,eAA4B;AAC1B,QAAI,OAAO,KAAK;AAEhB,QAAI,CAAC,KAAK,sBAAsB;AAC9B,WAAK,uBAAuB;AAC5B,UAAI,KAAK,YAAY,IAAI,GAAG;AAC1B,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO,QAAQ,SAAS,KAAK,OAAO;AAClC,YAAM,cAAe,KAAa;AAClC,UAAI,aAAa;AACf,eAAO;AACP,eAAQ,KAAa,WAAW;AAC9B,iBAAQ,KAAa;AAAA,QACvB;AAEA,YAAI,KAAK,YAAY,IAAI,GAAG;AAC1B,eAAK,eAAe;AACpB,iBAAO;AAAA,QACT;AACA;AAAA,MACF;AAEA,aAAQ,KAAa;AACrB,UAAI,CAAC,QAAQ,SAAU,KAAK,MAAc,YAAY;AACpD,eAAO;AAAA,MACT;AAEA,UAAI,KAAK,YAAY,IAAI,GAAG;AAC1B,aAAK,eAAe;AACpB,eAAO;AAAA,MACT;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,SAAe;AAAA,EAAC;AAAA,EAER,YAAY,MAA4B;AAC9C,QAAI,CAAC,MAAM;AACT,aAAO;AAAA,IACT;AAEA,UAAM,eAAe,KAAM,KAAK,WAAW;AAC3C,QAAI,EAAE,KAAK,cAAc,eAAe;AACtC,aAAO;AAAA,IACT;AAEA,QAAI,KAAK,SAAS;AAChB,YAAM,SAAU,gBAAgB,KAAK,UAAW,KAAK,QAAQ,WAAW,IAAI,IAAI,KAAK,QAAQ,IAAI;AACjG,aAAO,WAAW,WAAW;AAAA,IAC/B;AAEA,WAAO;AAAA,EACT;AACF;",
6
6
  "names": []
7
7
  }
@@ -1,6 +1,6 @@
1
1
  import { ChildNodeBase } from "./ChildNodeBase.js";
2
- import { HTMLCollection } from "./collection/HTMLCollection.js";
3
- import { NodeListOf } from "./collection/NodeListOf.js";
2
+ import { HTMLCollectionImp } from "./collection/HTMLCollectionImp.js";
3
+ import { NodeListOfImp } from "./collection/NodeListOfImp.js";
4
4
  import { ELEMENT_NODE } from "./Node.js";
5
5
  import { TextBase } from "./TextBase.js";
6
6
  import { CSSSelector } from "../utils/CSSSelector.js";
@@ -22,7 +22,7 @@ class ParentNodeBase extends ChildNodeBase {
22
22
  elements.push(child);
23
23
  }
24
24
  }
25
- return new HTMLCollection(elements);
25
+ return new HTMLCollectionImp(elements);
26
26
  }
27
27
  get firstElementChild() {
28
28
  for (const child of this._childNodesInternal) {
@@ -92,7 +92,7 @@ class ParentNodeBase extends ChildNodeBase {
92
92
  uniqueResults.push(element);
93
93
  }
94
94
  }
95
- return new NodeListOf(uniqueResults);
95
+ return new NodeListOfImp(uniqueResults);
96
96
  }
97
97
  // Private helper methods for querySelector
98
98
  _querySelectorAllRecursive(selectors, results) {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/ParentNodeBase.ts"],
4
- "sourcesContent": ["import { Node } from './Node';\nimport { ChildNodeBase } from './ChildNodeBase';\nimport { ParentNode } from './ParentNode';\nimport { Element } from './elements/Element';\nimport { HTMLCollection } from './collection/HTMLCollection';\nimport { NodeListOf } from './collection/NodeListOf';\nimport { ELEMENT_NODE, TEXT_NODE } from './Node';\nimport { TextBase } from './TextBase';\nimport { CSSSelector } from '../utils/CSSSelector';\n\n/**\n * Base implementation of the ParentNode interface\n */\nexport abstract class ParentNodeBase extends ChildNodeBase implements ParentNode {\n\n // ParentNode interface implementation\n get childElementCount(): number {\n let count = 0;\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n count++;\n }\n }\n return count;\n }\n\n get children(): HTMLCollection {\n const elements: Element[] = [];\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n elements.push(child as unknown as Element);\n }\n }\n return new HTMLCollection(elements);\n }\n\n get firstElementChild(): Element | null {\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n return child as unknown as Element;\n }\n }\n return null;\n }\n\n get lastElementChild(): Element | null {\n for (let i = this._childNodesInternal.length - 1; i >= 0; i--) {\n const child = this._childNodesInternal[i];\n if (child && child.nodeType === ELEMENT_NODE) {\n return child as unknown as Element;\n }\n }\n return null;\n }\n\n append(...nodes: (Node | string)[]): void {\n for (const node of nodes) {\n if (typeof node === 'string') {\n const textNode = new TextBase(node, this._ownerDocument);\n this.appendChild(textNode);\n } else {\n this.appendChild(node);\n }\n }\n }\n\n prepend(...nodes: (Node | string)[]): void {\n const firstChild = this.firstChild;\n for (const node of nodes) {\n if (typeof node === 'string') {\n const textNode = new TextBase(node, this._ownerDocument);\n this.insertBefore(textNode, firstChild);\n } else {\n this.insertBefore(node, firstChild);\n }\n }\n }\n\n replaceChildren(...nodes: (Node | string)[]): void {\n // Remove all existing children\n while (this._childNodesInternal.length > 0) {\n const child = this._childNodesInternal[0];\n if (child) {\n this.removeChild(child);\n }\n }\n\n // Add new nodes\n this.append(...nodes);\n }\n\n // Query selector implementation\n querySelector<E extends Element>(selectors: string): E | null {\n const elements = this.querySelectorAll(selectors);\n return elements.length > 0 ? elements.item(0) as E: null;\n }\n\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E> {\n const results: E[] = [];\n \n // Split selectors by comma and process each one\n const selectorList = selectors.split(',').map(s => s.trim());\n \n for (const selector of selectorList) {\n if (selector) {\n this._querySelectorAllRecursive(selector, results);\n }\n }\n \n // Remove duplicates while preserving order\n const uniqueResults: E[] = [];\n const seen = new Set();\n for (const element of results) {\n if (!seen.has(element)) {\n seen.add(element);\n uniqueResults.push(element);\n }\n }\n \n return new NodeListOf<E>(uniqueResults);\n }\n\n // Private helper methods for querySelector\n private _querySelectorAllRecursive(selectors: string, results: Element[]): void {\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n const element = child as unknown as Element;\n\n // Check if this element matches the selector\n if (CSSSelector.matches(element, selectors)) {\n results.push(element);\n }\n\n // Recursively search in child elements\n if (child instanceof ParentNodeBase) {\n child._querySelectorAllRecursive(selectors, results);\n }\n }\n }\n }\n\n\n}\n\n// TextNode is now in a separate file"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ChildNodeBase } from './ChildNodeBase';\nimport { HTMLCollectionImp } from './collection/HTMLCollectionImp';\nimport { NodeListOfImp } from './collection/NodeListOfImp';\nimport { ELEMENT_NODE, TEXT_NODE } from './Node';\nimport { TextBase } from './TextBase';\nimport { CSSSelector } from '../utils/CSSSelector';\n\n/**\n * Base implementation of the ParentNode interface\n */\nexport abstract class ParentNodeBase extends ChildNodeBase implements ParentNode {\n\n // ParentNode interface implementation\n get childElementCount(): number {\n let count = 0;\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n count++;\n }\n }\n return count;\n }\n\n get children(): HTMLCollection {\n const elements: Element[] = [];\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n elements.push(child as unknown as Element);\n }\n }\n return new HTMLCollectionImp(elements) as unknown as HTMLCollection;\n }\n\n get firstElementChild(): Element | null {\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n return child as unknown as Element;\n }\n }\n return null;\n }\n\n get lastElementChild(): Element | null {\n for (let i = this._childNodesInternal.length - 1; i >= 0; i--) {\n const child = this._childNodesInternal[i];\n if (child && child.nodeType === ELEMENT_NODE) {\n return child as unknown as Element;\n }\n }\n return null;\n }\n\n append(...nodes: (Node | string)[]): void {\n for (const node of nodes) {\n if (typeof node === 'string') {\n const textNode = new TextBase(node, this._ownerDocument);\n this.appendChild(textNode as unknown as Node);\n } else {\n this.appendChild(node);\n }\n }\n }\n\n prepend(...nodes: (Node | string)[]): void {\n const firstChild = this.firstChild;\n for (const node of nodes) {\n if (typeof node === 'string') {\n const textNode = new TextBase(node, this._ownerDocument);\n this.insertBefore(textNode as unknown as Node, firstChild);\n } else {\n this.insertBefore(node, firstChild);\n }\n }\n }\n\n replaceChildren(...nodes: (Node | string)[]): void {\n // Remove all existing children\n while (this._childNodesInternal.length > 0) {\n const child = this._childNodesInternal[0];\n if (child) {\n this.removeChild(child as unknown as Node);\n }\n }\n\n // Add new nodes\n this.append(...nodes);\n }\n\n // Query selector implementation\n querySelector<E extends Element>(selectors: string): E | null {\n const elements = this.querySelectorAll(selectors);\n return elements.length > 0 ? elements.item(0) as E: null;\n }\n\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E> {\n const results: E[] = [];\n \n // Split selectors by comma and process each one\n const selectorList = selectors.split(',').map(s => s.trim());\n \n for (const selector of selectorList) {\n if (selector) {\n this._querySelectorAllRecursive(selector, results);\n }\n }\n \n // Remove duplicates while preserving order\n const uniqueResults: E[] = [];\n const seen = new Set();\n for (const element of results) {\n if (!seen.has(element)) {\n seen.add(element);\n uniqueResults.push(element);\n }\n }\n \n return new NodeListOfImp<E>(uniqueResults) as unknown as NodeListOf<E>;\n }\n\n // Private helper methods for querySelector\n private _querySelectorAllRecursive(selectors: string, results: Element[]): void {\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) {\n const element = child as unknown as Element;\n\n // Check if this element matches the selector\n if (CSSSelector.matches(element, selectors)) {\n results.push(element);\n }\n\n // Recursively search in child elements\n if (child instanceof ParentNodeBase) {\n child._querySelectorAllRecursive(selectors, results);\n }\n }\n }\n }\n\n\n}\n\n// TextNode is now in a separate file"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,60 @@
1
+ import { DocumentFragmentBase } from "./DocumentFragmentBase.js";
2
+ class ShadowRootBase extends DocumentFragmentBase {
3
+ constructor(host, init, ownerDocument) {
4
+ super(ownerDocument);
5
+ this._host = host;
6
+ this.mode = init.mode;
7
+ this.delegatesFocus = init.delegatesFocus || false;
8
+ this.slotAssignment = init.slotAssignment || "manual";
9
+ this.nodeName = "#shadow-root";
10
+ }
11
+ getHTML(options) {
12
+ throw new Error("Method not implemented.");
13
+ }
14
+ setHTMLUnsafe(html) {
15
+ throw new Error("Method not implemented.");
16
+ }
17
+ elementFromPoint(x, y) {
18
+ throw new Error("Method not implemented.");
19
+ }
20
+ elementsFromPoint(x, y) {
21
+ throw new Error("Method not implemented.");
22
+ }
23
+ getAnimations() {
24
+ throw new Error("Method not implemented.");
25
+ }
26
+ get host() {
27
+ return this._host;
28
+ }
29
+ /**
30
+ * innerHTML for ShadowRoot
31
+ */
32
+ get innerHTML() {
33
+ let html = "";
34
+ for (const child of this._childNodesInternal) {
35
+ if (child.nodeType === 3) {
36
+ html += child._nodeValue || "";
37
+ } else if (child.nodeType === 1) {
38
+ html += this._host.generateChildElementHTML(child);
39
+ } else if (child.nodeType === 8) {
40
+ html += `<!--${child.textContent || ""}-->`;
41
+ }
42
+ }
43
+ return html;
44
+ }
45
+ set innerHTML(value) {
46
+ while (this._childNodesInternal.length > 0) {
47
+ const child = this._childNodesInternal[0];
48
+ if (child) {
49
+ this.removeChild(child);
50
+ }
51
+ }
52
+ if (value.trim()) {
53
+ this._host.parseAndAppendHTML(value, this);
54
+ }
55
+ }
56
+ }
57
+ export {
58
+ ShadowRootBase
59
+ };
60
+ //# sourceMappingURL=ShadowRootBase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/node/ShadowRootBase.ts"],
4
+ "sourcesContent": ["import { DocumentFragmentBase } from './DocumentFragmentBase';\n\n/**\n * The **`ShadowRoot`** interface represents the root node of a shadow DOM subtree.\n */\n// @ts-ignore\nexport class ShadowRootBase extends DocumentFragmentBase implements ShadowRoot {\n public readonly delegatesFocus: boolean;\n public readonly mode: ShadowRootMode;\n public readonly slotAssignment: SlotAssignmentMode;\n private _host: Element;\n\n constructor(host: Element, init: { mode: ShadowRootMode; delegatesFocus?: boolean; slotAssignment?: SlotAssignmentMode }, ownerDocument?: Document) {\n super(ownerDocument);\n this._host = host;\n this.mode = init.mode;\n this.delegatesFocus = init.delegatesFocus || false;\n this.slotAssignment = init.slotAssignment || 'manual';\n\n // Set nodeName to '#shadow-root'\n (this as any).nodeName = '#shadow-root';\n }\n\n clonable: boolean;\n onslotchange: (this: ShadowRoot, ev: Event) => any;\n serializable: boolean;\n getHTML(options?: GetHTMLOptions): string {\n throw new Error(\"Method not implemented.\");\n }\n setHTMLUnsafe(html: string): void {\n throw new Error(\"Method not implemented.\");\n }\n activeElement: Element;\n adoptedStyleSheets: CSSStyleSheet[];\n fullscreenElement: Element;\n pictureInPictureElement: Element;\n pointerLockElement: Element;\n styleSheets: StyleSheetList;\n elementFromPoint(x: number, y: number): Element | null {\n throw new Error(\"Method not implemented.\");\n }\n elementsFromPoint(x: number, y: number): Element[] {\n throw new Error(\"Method not implemented.\");\n }\n getAnimations(): Animation[] {\n throw new Error(\"Method not implemented.\");\n }\n\n get host(): Element {\n return this._host;\n }\n\n /**\n * innerHTML for ShadowRoot\n */\n get innerHTML(): string {\n let html = '';\n for (const child of this._childNodesInternal) {\n if ((child as any).nodeType === 3) {\n // TEXT_NODE\n html += (child as any)._nodeValue || '';\n } else if ((child as any).nodeType === 1) {\n // ELEMENT_NODE\n html += (this._host as any).generateChildElementHTML(child as any);\n } else if ((child as any).nodeType === 8) {\n // COMMENT_NODE\n html += `<!--${(child as any).textContent || ''}-->`;\n }\n }\n return html;\n }\n\n set innerHTML(value: string) {\n // Clear existing children\n while (this._childNodesInternal.length > 0) {\n const child = this._childNodesInternal[0];\n if (child) {\n this.removeChild(child as unknown as Node);\n }\n }\n\n // Parse HTML and create child nodes\n if (value.trim()) {\n (this._host as any).parseAndAppendHTML(value, this);\n }\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,4BAA4B;AAM9B,MAAM,uBAAuB,qBAA2C;AAAA,EAM7E,YAAY,MAAe,MAA+F,eAA0B;AAClJ,UAAM,aAAa;AACnB,SAAK,QAAQ;AACb,SAAK,OAAO,KAAK;AACjB,SAAK,iBAAiB,KAAK,kBAAkB;AAC7C,SAAK,iBAAiB,KAAK,kBAAkB;AAG7C,IAAC,KAAa,WAAW;AAAA,EAC3B;AAAA,EAKE,QAAQ,SAAkC;AACtC,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EACA,cAAc,MAAoB;AAC9B,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EAOA,iBAAiB,GAAW,GAA2B;AACnD,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EACA,kBAAkB,GAAW,GAAsB;AAC/C,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EACA,gBAA6B;AACzB,UAAM,IAAI,MAAM,yBAAyB;AAAA,EAC7C;AAAA,EAEF,IAAI,OAAgB;AAClB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA;AAAA;AAAA,EAKA,IAAI,YAAoB;AACtB,QAAI,OAAO;AACX,eAAW,SAAS,KAAK,qBAAqB;AAC5C,UAAK,MAAc,aAAa,GAAG;AAEjC,gBAAS,MAAc,cAAc;AAAA,MACvC,WAAY,MAAc,aAAa,GAAG;AAExC,gBAAS,KAAK,MAAc,yBAAyB,KAAY;AAAA,MACnE,WAAY,MAAc,aAAa,GAAG;AAExC,gBAAQ,OAAQ,MAAc,eAAe,EAAE;AAAA,MACjD;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA,EAEA,IAAI,UAAU,OAAe;AAE3B,WAAO,KAAK,oBAAoB,SAAS,GAAG;AAC1C,YAAM,QAAQ,KAAK,oBAAoB,CAAC;AACxC,UAAI,OAAO;AACT,aAAK,YAAY,KAAwB;AAAA,MAC3C;AAAA,IACF;AAGA,QAAI,MAAM,KAAK,GAAG;AAChB,MAAC,KAAK,MAAc,mBAAmB,OAAO,IAAI;AAAA,IACpD;AAAA,EACF;AACF;",
6
+ "names": []
7
+ }
@@ -3,9 +3,6 @@ import { TEXT_NODE } from "./Node.js";
3
3
  class TextBase extends ChildNodeBase {
4
4
  constructor(data, ownerDocument) {
5
5
  super(TEXT_NODE, "#text", ownerDocument);
6
- // Override nodeType to match Text interface
7
- this.nodeType = TEXT_NODE;
8
- this.nodeName = "#text";
9
6
  this._data = data;
10
7
  this._nodeValue = data;
11
8
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/TextBase.ts"],
4
- "sourcesContent": ["import { ChildNodeBase } from './ChildNodeBase';\nimport { TEXT_NODE } from './Node';\nimport { Text } from './Text';\n\n/**\n * The **`TextBase`** class represents a text node implementation in the DOM.\n */\nexport class TextBase extends ChildNodeBase implements Text {\n private _data: string;\n \n // Override nodeType to match Text interface\n readonly nodeType: 3 = TEXT_NODE as 3;\n readonly nodeName: '#text' = '#text';\n\n constructor(data: string, ownerDocument?: any) {\n super(TEXT_NODE, '#text', ownerDocument);\n this._data = data;\n this._nodeValue = data;\n }\n\n get data(): string {\n return this._data;\n }\n\n set data(value: string) {\n this._data = value;\n this._nodeValue = value;\n }\n\n get length(): number {\n return this._data.length;\n }\n\n get textContent(): string | null {\n // Decode HTML entities to return original text\n return this._data ? this.decodeHTMLEntities(this._data) : this._data;\n }\n\n set textContent(value: string | null) {\n this._data = value || '';\n this._nodeValue = this._data;\n }\n\n get wholeText(): string {\n // For now, just return the current text\n // In a full implementation, this would collect adjacent text nodes\n return this._data;\n }\n\n // CharacterData methods\n appendData(data: string): void {\n this._data += data;\n this._nodeValue = this._data;\n }\n\n deleteData(offset: number, count: number): void {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n const endOffset = Math.min(offset + count, this._data.length);\n this._data = this._data.slice(0, offset) + this._data.slice(endOffset);\n this._nodeValue = this._data;\n }\n\n insertData(offset: number, data: string): void {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n this._data = this._data.slice(0, offset) + data + this._data.slice(offset);\n this._nodeValue = this._data;\n }\n\n replaceData(offset: number, count: number, data: string): void {\n this.deleteData(offset, count);\n this.insertData(offset, data);\n }\n\n substringData(offset: number, count: number): string {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n const endOffset = Math.min(offset + count, this._data.length);\n return this._data.slice(offset, endOffset);\n }\n\n splitText(offset: number): Text {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n\n const newData = this._data.slice(offset);\n this._data = this._data.slice(0, offset);\n this._nodeValue = this._data;\n\n const newTextNode = new TextBase(newData, this._ownerDocument);\n\n // Insert the new text node after this one\n if (this._parentNodeInternal) {\n const nextSibling = this.nextSibling;\n this._parentNodeInternal.insertBefore(newTextNode, nextSibling);\n }\n\n return newTextNode as Text;\n }\n\n cloneNode(deep?: boolean): Text {\n return new TextBase(this._data, this._ownerDocument) as Text;\n }\n\n toString(): string {\n return this._data;\n }\n}"],
5
- "mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAMnB,MAAM,iBAAiB,cAA8B;AAAA,EAOxD,YAAY,MAAc,eAAqB;AAC3C,UAAM,WAAW,SAAS,aAAa;AAJ3C;AAAA,SAAS,WAAc;AACvB,SAAS,WAAoB;AAIzB,SAAK,QAAQ;AACb,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,IAAI,OAAe;AACf,WAAO,KAAK;AAAA,EAChB;AAAA,EAEA,IAAI,KAAK,OAAe;AACpB,SAAK,QAAQ;AACb,SAAK,aAAa;AAAA,EACtB;AAAA,EAEA,IAAI,SAAiB;AACjB,WAAO,KAAK,MAAM;AAAA,EACtB;AAAA,EAEA,IAAI,cAA6B;AAE7B,WAAO,KAAK,QAAQ,KAAK,mBAAmB,KAAK,KAAK,IAAI,KAAK;AAAA,EACnE;AAAA,EAEA,IAAI,YAAY,OAAsB;AAClC,SAAK,QAAQ,SAAS;AACtB,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,IAAI,YAAoB;AAGpB,WAAO,KAAK;AAAA,EAChB;AAAA;AAAA,EAGA,WAAW,MAAoB;AAC3B,SAAK,SAAS;AACd,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,WAAW,QAAgB,OAAqB;AAC5C,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AACA,UAAM,YAAY,KAAK,IAAI,SAAS,OAAO,KAAK,MAAM,MAAM;AAC5D,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM,IAAI,KAAK,MAAM,MAAM,SAAS;AACrE,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,WAAW,QAAgB,MAAoB;AAC3C,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AACA,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,KAAK,MAAM,MAAM,MAAM;AACzE,SAAK,aAAa,KAAK;AAAA,EAC3B;AAAA,EAEA,YAAY,QAAgB,OAAe,MAAoB;AAC3D,SAAK,WAAW,QAAQ,KAAK;AAC7B,SAAK,WAAW,QAAQ,IAAI;AAAA,EAChC;AAAA,EAEA,cAAc,QAAgB,OAAuB;AACjD,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AACA,UAAM,YAAY,KAAK,IAAI,SAAS,OAAO,KAAK,MAAM,MAAM;AAC5D,WAAO,KAAK,MAAM,MAAM,QAAQ,SAAS;AAAA,EAC7C;AAAA,EAEA,UAAU,QAAsB;AAC5B,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC1C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACzC;AAEA,UAAM,UAAU,KAAK,MAAM,MAAM,MAAM;AACvC,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM;AACvC,SAAK,aAAa,KAAK;AAEvB,UAAM,cAAc,IAAI,SAAS,SAAS,KAAK,cAAc;AAG7D,QAAI,KAAK,qBAAqB;AAC1B,YAAM,cAAc,KAAK;AACzB,WAAK,oBAAoB,aAAa,aAAa,WAAW;AAAA,IAClE;AAEA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU,MAAsB;AAC5B,WAAO,IAAI,SAAS,KAAK,OAAO,KAAK,cAAc;AAAA,EACvD;AAAA,EAEA,WAAmB;AACf,WAAO,KAAK;AAAA,EAChB;AACJ;",
4
+ "sourcesContent": ["import { ChildNodeBase } from './ChildNodeBase';\nimport { TEXT_NODE } from './Node';\n\n/**\n * The **`TextBase`** class represents a text node implementation in the DOM.\n */\nexport class TextBase extends ChildNodeBase implements Text {\n private _data: string;\n\n declare nodeType: 3;\n declare nodeName: '#text';\n\n constructor(data: string, ownerDocument?: any) {\n super(TEXT_NODE, '#text', ownerDocument);\n this._data = data;\n this._nodeValue = data;\n }\n\n get data(): string {\n return this._data;\n }\n\n set data(value: string) {\n this._data = value;\n this._nodeValue = value;\n }\n\n get length(): number {\n return this._data.length;\n }\n\n get textContent(): string | null {\n // Decode HTML entities to return original text\n return this._data ? this.decodeHTMLEntities(this._data) : this._data;\n }\n\n set textContent(value: string | null) {\n this._data = value || '';\n this._nodeValue = this._data;\n }\n\n get wholeText(): string {\n // For now, just return the current text\n // In a full implementation, this would collect adjacent text nodes\n return this._data;\n }\n\n // CharacterData methods\n appendData(data: string): void {\n this._data += data;\n this._nodeValue = this._data;\n }\n\n deleteData(offset: number, count: number): void {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n const endOffset = Math.min(offset + count, this._data.length);\n this._data = this._data.slice(0, offset) + this._data.slice(endOffset);\n this._nodeValue = this._data;\n }\n\n insertData(offset: number, data: string): void {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n this._data = this._data.slice(0, offset) + data + this._data.slice(offset);\n this._nodeValue = this._data;\n }\n\n replaceData(offset: number, count: number, data: string): void {\n this.deleteData(offset, count);\n this.insertData(offset, data);\n }\n\n substringData(offset: number, count: number): string {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n const endOffset = Math.min(offset + count, this._data.length);\n return this._data.slice(offset, endOffset);\n }\n\n splitText(offset: number): Text {\n if (offset < 0 || offset > this._data.length) {\n throw new Error('Index out of bounds');\n }\n\n const newData = this._data.slice(offset);\n this._data = this._data.slice(0, offset);\n this._nodeValue = this._data;\n\n const newTextNode = new TextBase(newData, this._ownerDocument);\n\n // Insert the new text node after this one\n if (this._parentNodeInternal) {\n const nextSibling = this.nextSibling;\n this._parentNodeInternal.insertBefore(newTextNode, nextSibling);\n }\n\n return newTextNode as Text;\n }\n\n cloneNode(deep?: boolean): Text {\n return new TextBase(this._data, this._ownerDocument) as Text;\n }\n\n toString(): string {\n return this._data;\n }\n}\n"],
5
+ "mappings": "AAAA,SAAS,qBAAqB;AAC9B,SAAS,iBAAiB;AAKnB,MAAM,iBAAiB,cAA8B;AAAA,EAM1D,YAAY,MAAc,eAAqB;AAC7C,UAAM,WAAW,SAAS,aAAa;AACvC,SAAK,QAAQ;AACb,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,OAAe;AACjB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,KAAK,OAAe;AACtB,SAAK,QAAQ;AACb,SAAK,aAAa;AAAA,EACpB;AAAA,EAEA,IAAI,SAAiB;AACnB,WAAO,KAAK,MAAM;AAAA,EACpB;AAAA,EAEA,IAAI,cAA6B;AAE/B,WAAO,KAAK,QAAQ,KAAK,mBAAmB,KAAK,KAAK,IAAI,KAAK;AAAA,EACjE;AAAA,EAEA,IAAI,YAAY,OAAsB;AACpC,SAAK,QAAQ,SAAS;AACtB,SAAK,aAAa,KAAK;AAAA,EACzB;AAAA,EAEA,IAAI,YAAoB;AAGtB,WAAO,KAAK;AAAA,EACd;AAAA;AAAA,EAGA,WAAW,MAAoB;AAC7B,SAAK,SAAS;AACd,SAAK,aAAa,KAAK;AAAA,EACzB;AAAA,EAEA,WAAW,QAAgB,OAAqB;AAC9C,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC5C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AACA,UAAM,YAAY,KAAK,IAAI,SAAS,OAAO,KAAK,MAAM,MAAM;AAC5D,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM,IAAI,KAAK,MAAM,MAAM,SAAS;AACrE,SAAK,aAAa,KAAK;AAAA,EACzB;AAAA,EAEA,WAAW,QAAgB,MAAoB;AAC7C,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC5C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AACA,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM,IAAI,OAAO,KAAK,MAAM,MAAM,MAAM;AACzE,SAAK,aAAa,KAAK;AAAA,EACzB;AAAA,EAEA,YAAY,QAAgB,OAAe,MAAoB;AAC7D,SAAK,WAAW,QAAQ,KAAK;AAC7B,SAAK,WAAW,QAAQ,IAAI;AAAA,EAC9B;AAAA,EAEA,cAAc,QAAgB,OAAuB;AACnD,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC5C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AACA,UAAM,YAAY,KAAK,IAAI,SAAS,OAAO,KAAK,MAAM,MAAM;AAC5D,WAAO,KAAK,MAAM,MAAM,QAAQ,SAAS;AAAA,EAC3C;AAAA,EAEA,UAAU,QAAsB;AAC9B,QAAI,SAAS,KAAK,SAAS,KAAK,MAAM,QAAQ;AAC5C,YAAM,IAAI,MAAM,qBAAqB;AAAA,IACvC;AAEA,UAAM,UAAU,KAAK,MAAM,MAAM,MAAM;AACvC,SAAK,QAAQ,KAAK,MAAM,MAAM,GAAG,MAAM;AACvC,SAAK,aAAa,KAAK;AAEvB,UAAM,cAAc,IAAI,SAAS,SAAS,KAAK,cAAc;AAG7D,QAAI,KAAK,qBAAqB;AAC5B,YAAM,cAAc,KAAK;AACzB,WAAK,oBAAoB,aAAa,aAAa,WAAW;AAAA,IAChE;AAEA,WAAO;AAAA,EACT;AAAA,EAEA,UAAU,MAAsB;AAC9B,WAAO,IAAI,SAAS,KAAK,OAAO,KAAK,cAAc;AAAA,EACrD;AAAA,EAEA,WAAmB;AACjB,WAAO,KAAK;AAAA,EACd;AACF;",
6
6
  "names": []
7
7
  }
@@ -0,0 +1,253 @@
1
+ import { NodeFilter } from "./NodeFilter.js";
2
+ class TreeWalker {
3
+ constructor(root, whatToShow = NodeFilter.SHOW_ALL, filter = null) {
4
+ this._root = root;
5
+ this._whatToShow = whatToShow;
6
+ this._filter = filter;
7
+ this._currentNode = root;
8
+ }
9
+ get root() {
10
+ return this._root;
11
+ }
12
+ get whatToShow() {
13
+ return this._whatToShow;
14
+ }
15
+ get filter() {
16
+ return this._filter;
17
+ }
18
+ get currentNode() {
19
+ return this._currentNode;
20
+ }
21
+ set currentNode(node) {
22
+ this._currentNode = node;
23
+ }
24
+ /**
25
+ * Move to the parent node
26
+ */
27
+ parentNode() {
28
+ let node = this._currentNode;
29
+ while (node && node !== this._root) {
30
+ node = node.parentNode;
31
+ if (node && this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {
32
+ this._currentNode = node;
33
+ return node;
34
+ }
35
+ }
36
+ return null;
37
+ }
38
+ /**
39
+ * Move to the first child node
40
+ */
41
+ firstChild() {
42
+ let node = this._currentNode.firstChild;
43
+ while (node) {
44
+ const result = this._acceptNode(node);
45
+ if (result === NodeFilter.FILTER_ACCEPT) {
46
+ this._currentNode = node;
47
+ return node;
48
+ }
49
+ if (result === NodeFilter.FILTER_SKIP) {
50
+ const child = node.firstChild;
51
+ if (child) {
52
+ node = child;
53
+ continue;
54
+ }
55
+ }
56
+ while (node) {
57
+ const next = node.nextSibling;
58
+ if (next) {
59
+ node = next;
60
+ break;
61
+ }
62
+ const parent = node.parentNode;
63
+ if (!parent || parent === this._root || parent === this._currentNode) {
64
+ return null;
65
+ }
66
+ node = parent;
67
+ }
68
+ }
69
+ return null;
70
+ }
71
+ /**
72
+ * Move to the last child node
73
+ */
74
+ lastChild() {
75
+ let node = this._currentNode.lastChild;
76
+ while (node) {
77
+ const result = this._acceptNode(node);
78
+ if (result === NodeFilter.FILTER_ACCEPT) {
79
+ this._currentNode = node;
80
+ return node;
81
+ }
82
+ if (result === NodeFilter.FILTER_SKIP) {
83
+ const child = node.lastChild;
84
+ if (child) {
85
+ node = child;
86
+ continue;
87
+ }
88
+ }
89
+ while (node) {
90
+ const prev = node.previousSibling;
91
+ if (prev) {
92
+ node = prev;
93
+ break;
94
+ }
95
+ const parent = node.parentNode;
96
+ if (!parent || parent === this._root || parent === this._currentNode) {
97
+ return null;
98
+ }
99
+ node = parent;
100
+ }
101
+ }
102
+ return null;
103
+ }
104
+ /**
105
+ * Move to the previous sibling node
106
+ */
107
+ previousSibling() {
108
+ let node = this._currentNode;
109
+ if (node === this._root) return null;
110
+ while (node) {
111
+ let sibling = node.previousSibling;
112
+ while (sibling) {
113
+ const result = this._acceptNode(sibling);
114
+ if (result === NodeFilter.FILTER_ACCEPT) {
115
+ this._currentNode = sibling;
116
+ return sibling;
117
+ }
118
+ if (result === NodeFilter.FILTER_SKIP) {
119
+ const lastChild = sibling.lastChild;
120
+ if (lastChild) {
121
+ sibling = lastChild;
122
+ continue;
123
+ }
124
+ }
125
+ sibling = sibling.previousSibling;
126
+ }
127
+ node = node.parentNode;
128
+ if (!node || node === this._root || this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {
129
+ return null;
130
+ }
131
+ }
132
+ return null;
133
+ }
134
+ /**
135
+ * Move to the next sibling node
136
+ */
137
+ nextSibling() {
138
+ let node = this._currentNode;
139
+ if (node === this._root) return null;
140
+ while (node) {
141
+ let sibling = node.nextSibling;
142
+ while (sibling) {
143
+ const result = this._acceptNode(sibling);
144
+ if (result === NodeFilter.FILTER_ACCEPT) {
145
+ this._currentNode = sibling;
146
+ return sibling;
147
+ }
148
+ if (result === NodeFilter.FILTER_SKIP) {
149
+ const firstChild = sibling.firstChild;
150
+ if (firstChild) {
151
+ sibling = firstChild;
152
+ continue;
153
+ }
154
+ }
155
+ sibling = sibling.nextSibling;
156
+ }
157
+ node = node.parentNode;
158
+ if (!node || node === this._root || this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {
159
+ return null;
160
+ }
161
+ }
162
+ return null;
163
+ }
164
+ /**
165
+ * Move to the previous node in document order
166
+ */
167
+ previousNode() {
168
+ let node = this._currentNode;
169
+ while (node && node !== this._root) {
170
+ const sibling = node.previousSibling;
171
+ if (sibling) {
172
+ node = sibling;
173
+ while (true) {
174
+ const result = this._acceptNode(node);
175
+ if (result !== NodeFilter.FILTER_REJECT && node.lastChild) {
176
+ node = node.lastChild;
177
+ } else {
178
+ if (result === NodeFilter.FILTER_ACCEPT) {
179
+ this._currentNode = node;
180
+ return node;
181
+ }
182
+ break;
183
+ }
184
+ }
185
+ continue;
186
+ }
187
+ node = node.parentNode;
188
+ if (node) {
189
+ if (this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {
190
+ this._currentNode = node;
191
+ return node;
192
+ }
193
+ }
194
+ }
195
+ return null;
196
+ }
197
+ /**
198
+ * Move to the next node in document order
199
+ */
200
+ nextNode() {
201
+ let node = this._currentNode;
202
+ let result = NodeFilter.FILTER_ACCEPT;
203
+ while (true) {
204
+ if (result !== NodeFilter.FILTER_REJECT) {
205
+ const firstChild = node.firstChild;
206
+ if (firstChild) {
207
+ node = firstChild;
208
+ result = this._acceptNode(node);
209
+ if (result === NodeFilter.FILTER_ACCEPT) {
210
+ this._currentNode = node;
211
+ return node;
212
+ }
213
+ continue;
214
+ }
215
+ }
216
+ while (node) {
217
+ if (node === this._root) return null;
218
+ const nextSibling = node.nextSibling;
219
+ if (nextSibling) {
220
+ node = nextSibling;
221
+ break;
222
+ }
223
+ node = node.parentNode;
224
+ }
225
+ if (!node) return null;
226
+ result = this._acceptNode(node);
227
+ if (result === NodeFilter.FILTER_ACCEPT) {
228
+ this._currentNode = node;
229
+ return node;
230
+ }
231
+ }
232
+ }
233
+ /**
234
+ * Check node acceptance
235
+ */
236
+ _acceptNode(node) {
237
+ const nodeTypeMask = 1 << node.nodeType - 1;
238
+ if (!(this._whatToShow & nodeTypeMask)) {
239
+ return NodeFilter.FILTER_SKIP;
240
+ }
241
+ if (this._filter) {
242
+ if (typeof this._filter === "function") {
243
+ return this._filter(node);
244
+ }
245
+ return this._filter.acceptNode(node);
246
+ }
247
+ return NodeFilter.FILTER_ACCEPT;
248
+ }
249
+ }
250
+ export {
251
+ TreeWalker
252
+ };
253
+ //# sourceMappingURL=TreeWalker.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../src/node/TreeWalker.ts"],
4
+ "sourcesContent": ["import {NodeFilter} from \"./NodeFilter\";\n\n/**\n * TreeWalker implementation for traversing DOM nodes\n */\nexport class TreeWalker {\n private _root: Node;\n private _whatToShow: number;\n private _filter: NodeFilter | null;\n private _currentNode: Node;\n\n constructor(root: Node, whatToShow: number = NodeFilter.SHOW_ALL, filter: NodeFilter | null = null) {\n this._root = root;\n this._whatToShow = whatToShow;\n this._filter = filter;\n this._currentNode = root;\n }\n\n get root(): Node {\n return this._root;\n }\n\n get whatToShow(): number {\n return this._whatToShow;\n }\n\n get filter(): NodeFilter | null {\n return this._filter;\n }\n\n get currentNode(): Node {\n return this._currentNode;\n }\n\n set currentNode(node: Node) {\n this._currentNode = node;\n }\n\n /**\n * Move to the parent node\n */\n parentNode(): Node | null {\n let node = this._currentNode;\n while (node && node !== this._root) {\n node = (node as any).parentNode;\n if (node && this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = node;\n return node;\n }\n }\n return null;\n }\n\n /**\n * Move to the first child node\n */\n firstChild(): Node | null {\n let node = (this._currentNode as any).firstChild;\n while (node) {\n const result = this._acceptNode(node);\n if (result === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = node;\n return node;\n }\n if (result === NodeFilter.FILTER_SKIP) {\n const child = (node as any).firstChild;\n if (child) {\n node = child;\n continue;\n }\n }\n while (node) {\n const next = (node as any).nextSibling;\n if (next) {\n node = next;\n break;\n }\n const parent = (node as any).parentNode;\n if (!parent || parent === this._root || parent === this._currentNode) {\n return null;\n }\n node = parent;\n }\n }\n return null;\n }\n\n /**\n * Move to the last child node\n */\n lastChild(): Node | null {\n let node = (this._currentNode as any).lastChild;\n while (node) {\n const result = this._acceptNode(node);\n if (result === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = node;\n return node;\n }\n if (result === NodeFilter.FILTER_SKIP) {\n const child = (node as any).lastChild;\n if (child) {\n node = child;\n continue;\n }\n }\n while (node) {\n const prev = (node as any).previousSibling;\n if (prev) {\n node = prev;\n break;\n }\n const parent = (node as any).parentNode;\n if (!parent || parent === this._root || parent === this._currentNode) {\n return null;\n }\n node = parent;\n }\n }\n return null;\n }\n\n /**\n * Move to the previous sibling node\n */\n previousSibling(): Node | null {\n let node = this._currentNode;\n if (node === this._root) return null;\n\n while (node) {\n let sibling = (node as any).previousSibling;\n while (sibling) {\n const result = this._acceptNode(sibling);\n if (result === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = sibling;\n return sibling;\n }\n if (result === NodeFilter.FILTER_SKIP) {\n const lastChild = (sibling as any).lastChild;\n if (lastChild) {\n sibling = lastChild;\n continue;\n }\n }\n sibling = (sibling as any).previousSibling;\n }\n node = (node as any).parentNode;\n if (!node || node === this._root || this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {\n return null;\n }\n }\n return null;\n }\n\n /**\n * Move to the next sibling node\n */\n nextSibling(): Node | null {\n let node = this._currentNode;\n if (node === this._root) return null;\n\n while (node) {\n let sibling = (node as any).nextSibling;\n while (sibling) {\n const result = this._acceptNode(sibling);\n if (result === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = sibling;\n return sibling;\n }\n if (result === NodeFilter.FILTER_SKIP) {\n const firstChild = (sibling as any).firstChild;\n if (firstChild) {\n sibling = firstChild;\n continue;\n }\n }\n sibling = (sibling as any).nextSibling;\n }\n node = (node as any).parentNode;\n if (!node || node === this._root || this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {\n return null;\n }\n }\n return null;\n }\n\n /**\n * Move to the previous node in document order\n */\n previousNode(): Node | null {\n let node = this._currentNode;\n while (node && node !== this._root) {\n const sibling = (node as any).previousSibling;\n if (sibling) {\n node = sibling;\n while (true) {\n const result = this._acceptNode(node);\n if (result !== NodeFilter.FILTER_REJECT && (node as any).lastChild) {\n node = (node as any).lastChild;\n } else {\n if (result === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = node;\n return node;\n }\n break;\n }\n }\n continue;\n }\n\n node = (node as any).parentNode;\n if (node) {\n if (this._acceptNode(node) === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = node;\n return node;\n }\n }\n }\n return null;\n }\n\n /**\n * Move to the next node in document order\n */\n nextNode(): Node | null {\n let node = this._currentNode;\n let result = NodeFilter.FILTER_ACCEPT;\n\n while (true) {\n if (result !== NodeFilter.FILTER_REJECT) {\n const firstChild = (node as any).firstChild;\n if (firstChild) {\n node = firstChild;\n result = this._acceptNode(node);\n if (result === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = node;\n return node;\n }\n continue;\n }\n }\n\n while (node) {\n if (node === this._root) return null;\n const nextSibling = (node as any).nextSibling;\n if (nextSibling) {\n node = nextSibling;\n break;\n }\n node = (node as any).parentNode;\n }\n\n if (!node) return null;\n\n result = this._acceptNode(node);\n if (result === NodeFilter.FILTER_ACCEPT) {\n this._currentNode = node;\n return node;\n }\n }\n }\n\n /**\n * Check node acceptance\n */\n private _acceptNode(node: Node): number {\n const nodeTypeMask = 1 << (node.nodeType - 1);\n if (!(this._whatToShow & nodeTypeMask)) {\n return NodeFilter.FILTER_SKIP;\n }\n\n if (this._filter) {\n if (typeof this._filter === 'function') {\n return (this._filter as any)(node);\n }\n return this._filter.acceptNode(node);\n }\n\n return NodeFilter.FILTER_ACCEPT;\n }\n}\n"],
5
+ "mappings": "AAAA,SAAQ,kBAAiB;AAKlB,MAAM,WAAW;AAAA,EAMtB,YAAY,MAAY,aAAqB,WAAW,UAAU,SAA4B,MAAM;AAClG,SAAK,QAAQ;AACb,SAAK,cAAc;AACnB,SAAK,UAAU;AACf,SAAK,eAAe;AAAA,EACtB;AAAA,EAEA,IAAI,OAAa;AACf,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,aAAqB;AACvB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,SAA4B;AAC9B,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,cAAoB;AACtB,WAAO,KAAK;AAAA,EACd;AAAA,EAEA,IAAI,YAAY,MAAY;AAC1B,SAAK,eAAe;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA,EAKA,aAA0B;AACxB,QAAI,OAAO,KAAK;AAChB,WAAO,QAAQ,SAAS,KAAK,OAAO;AAClC,aAAQ,KAAa;AACrB,UAAI,QAAQ,KAAK,YAAY,IAAI,MAAM,WAAW,eAAe;AAC/D,aAAK,eAAe;AACpB,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,aAA0B;AACxB,QAAI,OAAQ,KAAK,aAAqB;AACtC,WAAO,MAAM;AACX,YAAM,SAAS,KAAK,YAAY,IAAI;AACpC,UAAI,WAAW,WAAW,eAAe;AACvC,aAAK,eAAe;AACpB,eAAO;AAAA,MACT;AACA,UAAI,WAAW,WAAW,aAAa;AACrC,cAAM,QAAS,KAAa;AAC5B,YAAI,OAAO;AACT,iBAAO;AACP;AAAA,QACF;AAAA,MACF;AACA,aAAO,MAAM;AACX,cAAM,OAAQ,KAAa;AAC3B,YAAI,MAAM;AACR,iBAAO;AACP;AAAA,QACF;AACA,cAAM,SAAU,KAAa;AAC7B,YAAI,CAAC,UAAU,WAAW,KAAK,SAAS,WAAW,KAAK,cAAc;AACpE,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,YAAyB;AACvB,QAAI,OAAQ,KAAK,aAAqB;AACtC,WAAO,MAAM;AACX,YAAM,SAAS,KAAK,YAAY,IAAI;AACpC,UAAI,WAAW,WAAW,eAAe;AACvC,aAAK,eAAe;AACpB,eAAO;AAAA,MACT;AACA,UAAI,WAAW,WAAW,aAAa;AACrC,cAAM,QAAS,KAAa;AAC5B,YAAI,OAAO;AACT,iBAAO;AACP;AAAA,QACF;AAAA,MACF;AACA,aAAO,MAAM;AACX,cAAM,OAAQ,KAAa;AAC3B,YAAI,MAAM;AACR,iBAAO;AACP;AAAA,QACF;AACA,cAAM,SAAU,KAAa;AAC7B,YAAI,CAAC,UAAU,WAAW,KAAK,SAAS,WAAW,KAAK,cAAc;AACpE,iBAAO;AAAA,QACT;AACA,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,kBAA+B;AAC7B,QAAI,OAAO,KAAK;AAChB,QAAI,SAAS,KAAK,MAAO,QAAO;AAEhC,WAAO,MAAM;AACX,UAAI,UAAW,KAAa;AAC5B,aAAO,SAAS;AACd,cAAM,SAAS,KAAK,YAAY,OAAO;AACvC,YAAI,WAAW,WAAW,eAAe;AACvC,eAAK,eAAe;AACpB,iBAAO;AAAA,QACT;AACA,YAAI,WAAW,WAAW,aAAa;AACrC,gBAAM,YAAa,QAAgB;AACnC,cAAI,WAAW;AACb,sBAAU;AACV;AAAA,UACF;AAAA,QACF;AACA,kBAAW,QAAgB;AAAA,MAC7B;AACA,aAAQ,KAAa;AACrB,UAAI,CAAC,QAAQ,SAAS,KAAK,SAAS,KAAK,YAAY,IAAI,MAAM,WAAW,eAAe;AACvF,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,cAA2B;AACzB,QAAI,OAAO,KAAK;AAChB,QAAI,SAAS,KAAK,MAAO,QAAO;AAEhC,WAAO,MAAM;AACX,UAAI,UAAW,KAAa;AAC5B,aAAO,SAAS;AACd,cAAM,SAAS,KAAK,YAAY,OAAO;AACvC,YAAI,WAAW,WAAW,eAAe;AACvC,eAAK,eAAe;AACpB,iBAAO;AAAA,QACT;AACA,YAAI,WAAW,WAAW,aAAa;AACrC,gBAAM,aAAc,QAAgB;AACpC,cAAI,YAAY;AACd,sBAAU;AACV;AAAA,UACF;AAAA,QACF;AACA,kBAAW,QAAgB;AAAA,MAC7B;AACA,aAAQ,KAAa;AACrB,UAAI,CAAC,QAAQ,SAAS,KAAK,SAAS,KAAK,YAAY,IAAI,MAAM,WAAW,eAAe;AACvF,eAAO;AAAA,MACT;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,eAA4B;AAC1B,QAAI,OAAO,KAAK;AAChB,WAAO,QAAQ,SAAS,KAAK,OAAO;AAClC,YAAM,UAAW,KAAa;AAC9B,UAAI,SAAS;AACX,eAAO;AACP,eAAO,MAAM;AACX,gBAAM,SAAS,KAAK,YAAY,IAAI;AACpC,cAAI,WAAW,WAAW,iBAAkB,KAAa,WAAW;AAClE,mBAAQ,KAAa;AAAA,UACvB,OAAO;AACL,gBAAI,WAAW,WAAW,eAAe;AACvC,mBAAK,eAAe;AACpB,qBAAO;AAAA,YACT;AACA;AAAA,UACF;AAAA,QACF;AACA;AAAA,MACF;AAEA,aAAQ,KAAa;AACrB,UAAI,MAAM;AACR,YAAI,KAAK,YAAY,IAAI,MAAM,WAAW,eAAe;AACvD,eAAK,eAAe;AACpB,iBAAO;AAAA,QACT;AAAA,MACF;AAAA,IACF;AACA,WAAO;AAAA,EACT;AAAA;AAAA;AAAA;AAAA,EAKA,WAAwB;AACtB,QAAI,OAAO,KAAK;AAChB,QAAI,SAAS,WAAW;AAExB,WAAO,MAAM;AACX,UAAI,WAAW,WAAW,eAAe;AACvC,cAAM,aAAc,KAAa;AACjC,YAAI,YAAY;AACd,iBAAO;AACP,mBAAS,KAAK,YAAY,IAAI;AAC9B,cAAI,WAAW,WAAW,eAAe;AACvC,iBAAK,eAAe;AACpB,mBAAO;AAAA,UACT;AACA;AAAA,QACF;AAAA,MACF;AAEA,aAAO,MAAM;AACX,YAAI,SAAS,KAAK,MAAO,QAAO;AAChC,cAAM,cAAe,KAAa;AAClC,YAAI,aAAa;AACf,iBAAO;AACP;AAAA,QACF;AACA,eAAQ,KAAa;AAAA,MACvB;AAEA,UAAI,CAAC,KAAM,QAAO;AAElB,eAAS,KAAK,YAAY,IAAI;AAC9B,UAAI,WAAW,WAAW,eAAe;AACvC,aAAK,eAAe;AACpB,eAAO;AAAA,MACT;AAAA,IACF;AAAA,EACF;AAAA;AAAA;AAAA;AAAA,EAKQ,YAAY,MAAoB;AACtC,UAAM,eAAe,KAAM,KAAK,WAAW;AAC3C,QAAI,EAAE,KAAK,cAAc,eAAe;AACtC,aAAO,WAAW;AAAA,IACpB;AAEA,QAAI,KAAK,SAAS;AAChB,UAAI,OAAO,KAAK,YAAY,YAAY;AACtC,eAAQ,KAAK,QAAgB,IAAI;AAAA,MACnC;AACA,aAAO,KAAK,QAAQ,WAAW,IAAI;AAAA,IACrC;AAEA,WAAO,WAAW;AAAA,EACpB;AACF;",
6
+ "names": []
7
+ }
@@ -1,4 +1,4 @@
1
- class HTMLCollection {
1
+ class HTMLCollectionImp {
2
2
  constructor(elements = []) {
3
3
  this._elements = [];
4
4
  this._elements = [...elements];
@@ -61,6 +61,7 @@ class HTMLCollection {
61
61
  /**
62
62
  * Returns an iterator for the collection.
63
63
  */
64
+ // @ts-ignore
64
65
  [Symbol.iterator]() {
65
66
  return this._elements[Symbol.iterator]();
66
67
  }
@@ -81,6 +82,6 @@ class HTMLCollection {
81
82
  }
82
83
  }
83
84
  export {
84
- HTMLCollection
85
+ HTMLCollectionImp
85
86
  };
86
- //# sourceMappingURL=HTMLCollection.js.map
87
+ //# sourceMappingURL=HTMLCollectionImp.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/collection/HTMLCollectionImp.ts"],
4
+ "sourcesContent": ["// import { Element } from '../elements/Element';\n\n/**\n * **`HTMLCollection`** represents a generic collection of HTML elements.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection)\n */\nexport class HTMLCollectionImp implements HTMLCollection {\n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uC120\uC5B8\n [index: number]: Element;\n \n private _elements: Element[] = [];\n\n constructor(elements: Element[] = []) {\n this._elements = [...elements];\n \n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uAD6C\uD604\uC744 \uC704\uD55C \uD504\uB85D\uC2DC \uC124\uC815\n return new Proxy(this, {\n get(target, prop) {\n // \uC22B\uC790 \uC778\uB371\uC2A4\uC778 \uACBD\uC6B0\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return target._elements[index] || null;\n }\n // \uC77C\uBC18 \uD504\uB85C\uD37C\uD2F0/\uBA54\uC11C\uB4DC\uC778 \uACBD\uC6B0\n return (target as any)[prop];\n },\n \n set(target, prop, value) {\n // \uC22B\uC790 \uC778\uB371\uC2A4 \uC124\uC815 \uBC29\uC9C0 (\uC77D\uAE30 \uC804\uC6A9)\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n return false;\n }\n (target as any)[prop] = value;\n return true;\n },\n \n has(target, prop) {\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return index >= 0 && index < target._elements.length;\n }\n return prop in target;\n }\n });\n }\n\n /**\n * Returns the number of elements in the collection.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length)\n */\n get length(): number {\n return this._elements.length;\n }\n\n /**\n * Returns the element at the specified index, or null if the index is out of range.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item)\n */\n item(index: number): Element | null {\n if (index < 0 || index >= this._elements.length) {\n return null;\n }\n return this._elements[index];\n }\n\n /**\n * Returns the element with the specified ID or name, or null if no such element exists.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem)\n */\n namedItem(name: string): Element | null {\n for (const element of this._elements) {\n if (element.id === name || element.getAttribute('name') === name) {\n return element;\n }\n }\n return null;\n }\n\n /**\n * Returns an iterator for the collection.\n */\n // @ts-ignore\n [Symbol.iterator](): IterableIterator<Element> {\n return this._elements[Symbol.iterator]();\n }\n\n // \uB0B4\uBD80\uC801\uC73C\uB85C \uC694\uC18C \uCD94\uAC00/\uC81C\uAC70\uB97C \uC704\uD55C \uBA54\uC11C\uB4DC\uB4E4 (DOM \uC870\uC791 \uC2DC \uC0AC\uC6A9)\n _addElement(element: Element): void {\n this._elements.push(element);\n }\n\n _removeElement(element: Element): boolean {\n const index = this._elements.indexOf(element);\n if (index !== -1) {\n this._elements.splice(index, 1);\n return true;\n }\n return false;\n }\n\n _insertElement(index: number, element: Element): void {\n this._elements.splice(index, 0, element);\n }\n}\n"],
5
+ "mappings": "AAOO,MAAM,kBAA4C;AAAA,EAMrD,YAAY,WAAsB,CAAC,GAAG;AAFtC,SAAQ,YAAuB,CAAC;AAG5B,SAAK,YAAY,CAAC,GAAG,QAAQ;AAG7B,WAAO,IAAI,MAAM,MAAM;AAAA,MACnB,IAAI,QAAQ,MAAM;AAEd,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,gBAAM,QAAQ,SAAS,MAAM,EAAE;AAC/B,iBAAO,OAAO,UAAU,KAAK,KAAK;AAAA,QACtC;AAEA,eAAQ,OAAe,IAAI;AAAA,MAC/B;AAAA,MAEA,IAAI,QAAQ,MAAM,OAAO;AAErB,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,iBAAO;AAAA,QACX;AACA,QAAC,OAAe,IAAI,IAAI;AACxB,eAAO;AAAA,MACX;AAAA,MAEA,IAAI,QAAQ,MAAM;AACd,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,gBAAM,QAAQ,SAAS,MAAM,EAAE;AAC/B,iBAAO,SAAS,KAAK,QAAQ,OAAO,UAAU;AAAA,QAClD;AACA,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,SAAiB;AACjB,WAAO,KAAK,UAAU;AAAA,EAC1B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,OAA+B;AAChC,QAAI,QAAQ,KAAK,SAAS,KAAK,UAAU,QAAQ;AAC7C,aAAO;AAAA,IACX;AACA,WAAO,KAAK,UAAU,KAAK;AAAA,EAC/B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,UAAU,MAA8B;AACpC,eAAW,WAAW,KAAK,WAAW;AAClC,UAAI,QAAQ,OAAO,QAAQ,QAAQ,aAAa,MAAM,MAAM,MAAM;AAC9D,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,CAAC,OAAO,QAAQ,IAA+B;AAC3C,WAAO,KAAK,UAAU,OAAO,QAAQ,EAAE;AAAA,EAC3C;AAAA;AAAA,EAGA,YAAY,SAAwB;AAChC,SAAK,UAAU,KAAK,OAAO;AAAA,EAC/B;AAAA,EAEA,eAAe,SAA2B;AACtC,UAAM,QAAQ,KAAK,UAAU,QAAQ,OAAO;AAC5C,QAAI,UAAU,IAAI;AACd,WAAK,UAAU,OAAO,OAAO,CAAC;AAC9B,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA,EAEA,eAAe,OAAe,SAAwB;AAClD,SAAK,UAAU,OAAO,OAAO,GAAG,OAAO;AAAA,EAC3C;AACJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,7 @@
1
+ import { HTMLCollectionImp } from "./HTMLCollectionImp.js";
2
+ class HTMLCollectionOfImp extends HTMLCollectionImp {
3
+ }
4
+ export {
5
+ HTMLCollectionOfImp
6
+ };
7
+ //# sourceMappingURL=HTMLCollectionOfImp.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/collection/HTMLCollectionOfImp.ts"],
4
+ "sourcesContent": ["// import { Element } from '../elements/Element';\nimport { HTMLCollectionImp } from './HTMLCollectionImp';\n\n/**\n * **`HTMLCollectionOf<T>`** is a generic version of HTMLCollection that provides type safety for specific element types.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection)\n */\nexport class HTMLCollectionOfImp<T extends Element> extends HTMLCollectionImp implements HTMLCollectionOfImp<T>{\n\n\n}"],
5
+ "mappings": "AACA,SAAS,yBAAyB;AAO3B,MAAM,4BAA+C,kBAAmD;AAG/G;",
6
+ "names": []
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/node/collection/NodeList.ts"],
4
- "sourcesContent": ["import { Node } from '../Node';\n\n/**\n * **`NodeList`** objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList)\n */\nexport class NodeList<T extends Node = Node> {\n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uC120\uC5B8\n [index: number]: T;\n \n private _nodes: T[] = [];\n\n constructor(nodes: T[] = []) {\n this._nodes = [...nodes];\n \n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uAD6C\uD604\uC744 \uC704\uD55C \uD504\uB85D\uC2DC \uC124\uC815\n return new Proxy(this, {\n get(target, prop) {\n // \uC22B\uC790 \uC778\uB371\uC2A4\uC778 \uACBD\uC6B0\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return target._nodes[index] || null;\n }\n // \uC77C\uBC18 \uD504\uB85C\uD37C\uD2F0/\uBA54\uC11C\uB4DC\uC778 \uACBD\uC6B0\n return (target as any)[prop];\n },\n \n set(target, prop, value) {\n // \uC22B\uC790 \uC778\uB371\uC2A4 \uC124\uC815 \uBC29\uC9C0 (\uC77D\uAE30 \uC804\uC6A9)\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n return false;\n }\n (target as any)[prop] = value;\n return true;\n },\n \n has(target, prop) {\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return index >= 0 && index < target._nodes.length;\n }\n return prop in target;\n }\n });\n }\n\n /**\n * The **`NodeList.length`** property returns the number of items in a NodeList.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/length)\n */\n get length(): number {\n return this._nodes.length;\n }\n\n /**\n * Returns a node from a `NodeList` by index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/item)\n */\n item(index: number): T | null {\n if (index < 0 || index >= this._nodes.length) {\n return null;\n }\n return this._nodes[index];\n }\n\n /**\n * Executes a provided function once for each `Node` value in the `NodeList`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/forEach)\n */\n forEach(callbackfn: (value: T, key: number, parent: NodeList) => void, thisArg?: any): void {\n this._nodes.forEach((node, index) => {\n callbackfn.call(thisArg, node, index, this);\n });\n }\n\n // \uB0B4\uBD80\uC801\uC73C\uB85C \uB178\uB4DC \uCD94\uAC00/\uC81C\uAC70\uB97C \uC704\uD55C \uBA54\uC11C\uB4DC\uB4E4 (DOM \uC870\uC791 \uC2DC \uC0AC\uC6A9)\n _addNode(node: T): void {\n this._nodes.push(node);\n }\n\n _removeNode(node: T): boolean {\n const index = this._nodes.indexOf(node);\n if (index !== -1) {\n this._nodes.splice(index, 1);\n return true;\n }\n return false;\n }\n\n _insertNode(index: number, node: T): void {\n this._nodes.splice(index, 0, node);\n }\n\n // Iterator \uC9C0\uC6D0 (for...of \uC0AC\uC6A9 \uAC00\uB2A5)\n *[Symbol.iterator](): Iterator<T> {\n for (const node of this._nodes) {\n yield node;\n }\n }\n\n /**\n * Returns an iterator allowing to go through all keys contained in this object.\n * The keys are unsigned integer (index).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/keys)\n */\n *keys(): IterableIterator<number> {\n for (let i = 0; i < this._nodes.length; i++) {\n yield i;\n }\n }\n\n /**\n * Returns an iterator allowing to go through all values contained in this object.\n * The values are Node objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/values)\n */\n *values(): IterableIterator<T> {\n for (const node of this._nodes) {\n yield node;\n }\n }\n\n /**\n * Returns an iterator allowing to go through all key/value pairs contained in this object.\n * The key is an unsigned integer (index) and the value is a Node object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/entries)\n */\n *entries(): IterableIterator<[number, T]> {\n for (let i = 0; i < this._nodes.length; i++) {\n yield [i, this._nodes[i]];\n }\n }\n}"],
4
+ "sourcesContent": ["// import { Node } from '../Node';\n\n/**\n * **`NodeList`** objects are collections of nodes, usually returned by properties such as Node.childNodes and methods such as document.querySelectorAll().\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList)\n */\nexport class NodeList<T extends Node = Node> {\n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uC120\uC5B8\n [index: number]: T;\n \n private _nodes: T[] = [];\n\n constructor(nodes: T[] = []) {\n this._nodes = [...nodes];\n \n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98 \uAD6C\uD604\uC744 \uC704\uD55C \uD504\uB85D\uC2DC \uC124\uC815\n return new Proxy(this, {\n get(target, prop) {\n // \uC22B\uC790 \uC778\uB371\uC2A4\uC778 \uACBD\uC6B0\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return target._nodes[index] || null;\n }\n // \uC77C\uBC18 \uD504\uB85C\uD37C\uD2F0/\uBA54\uC11C\uB4DC\uC778 \uACBD\uC6B0\n return (target as any)[prop];\n },\n \n set(target, prop, value) {\n // \uC22B\uC790 \uC778\uB371\uC2A4 \uC124\uC815 \uBC29\uC9C0 (\uC77D\uAE30 \uC804\uC6A9)\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n return false;\n }\n (target as any)[prop] = value;\n return true;\n },\n \n has(target, prop) {\n if (typeof prop === 'string' && /^\\d+$/.test(prop)) {\n const index = parseInt(prop, 10);\n return index >= 0 && index < target._nodes.length;\n }\n return prop in target;\n }\n });\n }\n\n /**\n * The **`NodeList.length`** property returns the number of items in a NodeList.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/length)\n */\n get length(): number {\n return this._nodes.length;\n }\n\n /**\n * Returns a node from a `NodeList` by index.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/item)\n */\n item(index: number): T | null {\n if (index < 0 || index >= this._nodes.length) {\n return null;\n }\n return this._nodes[index];\n }\n\n /**\n * Executes a provided function once for each `Node` value in the `NodeList`.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/forEach)\n */\n forEach(callbackfn: (value: T, key: number, parent: NodeList) => void, thisArg?: any): void {\n this._nodes.forEach((node, index) => {\n callbackfn.call(thisArg, node, index, this);\n });\n }\n\n // \uB0B4\uBD80\uC801\uC73C\uB85C \uB178\uB4DC \uCD94\uAC00/\uC81C\uAC70\uB97C \uC704\uD55C \uBA54\uC11C\uB4DC\uB4E4 (DOM \uC870\uC791 \uC2DC \uC0AC\uC6A9)\n _addNode(node: T): void {\n this._nodes.push(node);\n }\n\n _removeNode(node: T): boolean {\n const index = this._nodes.indexOf(node);\n if (index !== -1) {\n this._nodes.splice(index, 1);\n return true;\n }\n return false;\n }\n\n _insertNode(index: number, node: T): void {\n this._nodes.splice(index, 0, node);\n }\n\n // Iterator \uC9C0\uC6D0 (for...of \uC0AC\uC6A9 \uAC00\uB2A5)\n *[Symbol.iterator](): Iterator<T> {\n for (const node of this._nodes) {\n yield node;\n }\n }\n\n /**\n * Returns an iterator allowing to go through all keys contained in this object.\n * The keys are unsigned integer (index).\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/keys)\n */\n *keys(): IterableIterator<number> {\n for (let i = 0; i < this._nodes.length; i++) {\n yield i;\n }\n }\n\n /**\n * Returns an iterator allowing to go through all values contained in this object.\n * The values are Node objects.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/values)\n */\n *values(): IterableIterator<T> {\n for (const node of this._nodes) {\n yield node;\n }\n }\n\n /**\n * Returns an iterator allowing to go through all key/value pairs contained in this object.\n * The key is an unsigned integer (index) and the value is a Node object.\n *\n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/entries)\n */\n *entries(): IterableIterator<[number, T]> {\n for (let i = 0; i < this._nodes.length; i++) {\n yield [i, this._nodes[i]];\n }\n }\n}"],
5
5
  "mappings": "AAOO,MAAM,SAAgC;AAAA,EAMzC,YAAY,QAAa,CAAC,GAAG;AAF7B,SAAQ,SAAc,CAAC;AAGnB,SAAK,SAAS,CAAC,GAAG,KAAK;AAGvB,WAAO,IAAI,MAAM,MAAM;AAAA,MACnB,IAAI,QAAQ,MAAM;AAEd,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,gBAAM,QAAQ,SAAS,MAAM,EAAE;AAC/B,iBAAO,OAAO,OAAO,KAAK,KAAK;AAAA,QACnC;AAEA,eAAQ,OAAe,IAAI;AAAA,MAC/B;AAAA,MAEA,IAAI,QAAQ,MAAM,OAAO;AAErB,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,iBAAO;AAAA,QACX;AACA,QAAC,OAAe,IAAI,IAAI;AACxB,eAAO;AAAA,MACX;AAAA,MAEA,IAAI,QAAQ,MAAM;AACd,YAAI,OAAO,SAAS,YAAY,QAAQ,KAAK,IAAI,GAAG;AAChD,gBAAM,QAAQ,SAAS,MAAM,EAAE;AAC/B,iBAAO,SAAS,KAAK,QAAQ,OAAO,OAAO;AAAA,QAC/C;AACA,eAAO,QAAQ;AAAA,MACnB;AAAA,IACJ,CAAC;AAAA,EACL;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,IAAI,SAAiB;AACjB,WAAO,KAAK,OAAO;AAAA,EACvB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,KAAK,OAAyB;AAC1B,QAAI,QAAQ,KAAK,SAAS,KAAK,OAAO,QAAQ;AAC1C,aAAO;AAAA,IACX;AACA,WAAO,KAAK,OAAO,KAAK;AAAA,EAC5B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOA,QAAQ,YAA+D,SAAqB;AACxF,SAAK,OAAO,QAAQ,CAAC,MAAM,UAAU;AACjC,iBAAW,KAAK,SAAS,MAAM,OAAO,IAAI;AAAA,IAC9C,CAAC;AAAA,EACL;AAAA;AAAA,EAGA,SAAS,MAAe;AACpB,SAAK,OAAO,KAAK,IAAI;AAAA,EACzB;AAAA,EAEA,YAAY,MAAkB;AAC1B,UAAM,QAAQ,KAAK,OAAO,QAAQ,IAAI;AACtC,QAAI,UAAU,IAAI;AACd,WAAK,OAAO,OAAO,OAAO,CAAC;AAC3B,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AAAA,EAEA,YAAY,OAAe,MAAe;AACtC,SAAK,OAAO,OAAO,OAAO,GAAG,IAAI;AAAA,EACrC;AAAA;AAAA,EAGA,EAAE,OAAO,QAAQ,IAAiB;AAC9B,eAAW,QAAQ,KAAK,QAAQ;AAC5B,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,CAAC,OAAiC;AAC9B,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ,KAAK;AACzC,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,CAAC,SAA8B;AAC3B,eAAW,QAAQ,KAAK,QAAQ;AAC5B,YAAM;AAAA,IACV;AAAA,EACJ;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,CAAC,UAAyC;AACtC,aAAS,IAAI,GAAG,IAAI,KAAK,OAAO,QAAQ,KAAK;AACzC,YAAM,CAAC,GAAG,KAAK,OAAO,CAAC,CAAC;AAAA,IAC5B;AAAA,EACJ;AACJ;",
6
6
  "names": []
7
7
  }
@@ -1,5 +1,5 @@
1
1
  import { NodeList } from "./NodeList.js";
2
- class NodeListOf extends NodeList {
2
+ class NodeListOfImp extends NodeList {
3
3
  constructor(nodes = []) {
4
4
  super(nodes);
5
5
  }
@@ -14,6 +14,6 @@ class NodeListOf extends NodeList {
14
14
  }
15
15
  }
16
16
  export {
17
- NodeListOf
17
+ NodeListOfImp
18
18
  };
19
- //# sourceMappingURL=NodeListOf.js.map
19
+ //# sourceMappingURL=NodeListOfImp.js.map