@dooboostore/dom-parser 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/README.MD +280 -0
  2. package/dist/cjs/DomParser.js +360 -0
  3. package/dist/cjs/DomParser.js.map +7 -0
  4. package/dist/cjs/factory/ElementFactory.js +76 -0
  5. package/dist/cjs/factory/ElementFactory.js.map +7 -0
  6. package/dist/cjs/factory/index.js +24 -0
  7. package/dist/cjs/factory/index.js.map +7 -0
  8. package/dist/cjs/index.js +34 -0
  9. package/dist/cjs/index.js.map +7 -0
  10. package/dist/cjs/node/CharacterData.js +16 -0
  11. package/dist/cjs/node/CharacterData.js.map +7 -0
  12. package/dist/cjs/node/ChildNode.js +16 -0
  13. package/dist/cjs/node/ChildNode.js.map +7 -0
  14. package/dist/cjs/node/ChildNodeBase.js +62 -0
  15. package/dist/cjs/node/ChildNodeBase.js.map +7 -0
  16. package/dist/cjs/node/Comment.js +86 -0
  17. package/dist/cjs/node/Comment.js.map +7 -0
  18. package/dist/cjs/node/Document.js +28 -0
  19. package/dist/cjs/node/Document.js.map +7 -0
  20. package/dist/cjs/node/DocumentBase.js +378 -0
  21. package/dist/cjs/node/DocumentBase.js.map +7 -0
  22. package/dist/cjs/node/DocumentFragment.js +16 -0
  23. package/dist/cjs/node/DocumentFragment.js.map +7 -0
  24. package/dist/cjs/node/DocumentFragmentBase.js +88 -0
  25. package/dist/cjs/node/DocumentFragmentBase.js.map +7 -0
  26. package/dist/cjs/node/GetRootNodeOptions.js +16 -0
  27. package/dist/cjs/node/GetRootNodeOptions.js.map +7 -0
  28. package/dist/cjs/node/Node.js +58 -0
  29. package/dist/cjs/node/Node.js.map +7 -0
  30. package/dist/cjs/node/NodeBase.js +380 -0
  31. package/dist/cjs/node/NodeBase.js.map +7 -0
  32. package/dist/cjs/node/NodeIterator.js +163 -0
  33. package/dist/cjs/node/NodeIterator.js.map +7 -0
  34. package/dist/cjs/node/ParentNode.js +16 -0
  35. package/dist/cjs/node/ParentNode.js.map +7 -0
  36. package/dist/cjs/node/ParentNodeBase.js +134 -0
  37. package/dist/cjs/node/ParentNodeBase.js.map +7 -0
  38. package/dist/cjs/node/Text.js +16 -0
  39. package/dist/cjs/node/Text.js.map +7 -0
  40. package/dist/cjs/node/TextBase.js +106 -0
  41. package/dist/cjs/node/TextBase.js.map +7 -0
  42. package/dist/cjs/node/collection/HTMLCollection.js +105 -0
  43. package/dist/cjs/node/collection/HTMLCollection.js.map +7 -0
  44. package/dist/cjs/node/collection/HTMLCollectionOf.js +36 -0
  45. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +7 -0
  46. package/dist/cjs/node/collection/NodeList.js +135 -0
  47. package/dist/cjs/node/collection/NodeList.js.map +7 -0
  48. package/dist/cjs/node/collection/NodeListOf.js +38 -0
  49. package/dist/cjs/node/collection/NodeListOf.js.map +7 -0
  50. package/dist/cjs/node/collection/index.js +30 -0
  51. package/dist/cjs/node/collection/index.js.map +7 -0
  52. package/dist/cjs/node/elements/Element.js +16 -0
  53. package/dist/cjs/node/elements/Element.js.map +7 -0
  54. package/dist/cjs/node/elements/ElementBase.js +936 -0
  55. package/dist/cjs/node/elements/ElementBase.js.map +7 -0
  56. package/dist/cjs/node/elements/HTMLAnchorElement.js +71 -0
  57. package/dist/cjs/node/elements/HTMLAnchorElement.js.map +7 -0
  58. package/dist/cjs/node/elements/HTMLAreaElement.js +77 -0
  59. package/dist/cjs/node/elements/HTMLAreaElement.js.map +7 -0
  60. package/dist/cjs/node/elements/HTMLBaseElement.js +77 -0
  61. package/dist/cjs/node/elements/HTMLBaseElement.js.map +7 -0
  62. package/dist/cjs/node/elements/HTMLBodyElement.js +29 -0
  63. package/dist/cjs/node/elements/HTMLBodyElement.js.map +7 -0
  64. package/dist/cjs/node/elements/HTMLButtonElement.js +89 -0
  65. package/dist/cjs/node/elements/HTMLButtonElement.js.map +7 -0
  66. package/dist/cjs/node/elements/HTMLCanvasElement.js +79 -0
  67. package/dist/cjs/node/elements/HTMLCanvasElement.js.map +7 -0
  68. package/dist/cjs/node/elements/HTMLCaptionElement.js +41 -0
  69. package/dist/cjs/node/elements/HTMLCaptionElement.js.map +7 -0
  70. package/dist/cjs/node/elements/HTMLDivElement.js +29 -0
  71. package/dist/cjs/node/elements/HTMLDivElement.js.map +7 -0
  72. package/dist/cjs/node/elements/HTMLElement.js +16 -0
  73. package/dist/cjs/node/elements/HTMLElement.js.map +7 -0
  74. package/dist/cjs/node/elements/HTMLElementBase.js +182 -0
  75. package/dist/cjs/node/elements/HTMLElementBase.js.map +7 -0
  76. package/dist/cjs/node/elements/HTMLEmbedElement.js +45 -0
  77. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +7 -0
  78. package/dist/cjs/node/elements/HTMLFormElement.js +127 -0
  79. package/dist/cjs/node/elements/HTMLFormElement.js.map +7 -0
  80. package/dist/cjs/node/elements/HTMLGenericElement.js +32 -0
  81. package/dist/cjs/node/elements/HTMLGenericElement.js.map +7 -0
  82. package/dist/cjs/node/elements/HTMLH1Element.js +29 -0
  83. package/dist/cjs/node/elements/HTMLH1Element.js.map +7 -0
  84. package/dist/cjs/node/elements/HTMLHeadElement.js +29 -0
  85. package/dist/cjs/node/elements/HTMLHeadElement.js.map +7 -0
  86. package/dist/cjs/node/elements/HTMLHtmlElement.js +92 -0
  87. package/dist/cjs/node/elements/HTMLHtmlElement.js.map +7 -0
  88. package/dist/cjs/node/elements/HTMLImgElement.js +99 -0
  89. package/dist/cjs/node/elements/HTMLImgElement.js.map +7 -0
  90. package/dist/cjs/node/elements/HTMLInputElement.js +157 -0
  91. package/dist/cjs/node/elements/HTMLInputElement.js.map +7 -0
  92. package/dist/cjs/node/elements/HTMLLIElement.js +57 -0
  93. package/dist/cjs/node/elements/HTMLLIElement.js.map +7 -0
  94. package/dist/cjs/node/elements/HTMLLinkElement.js +99 -0
  95. package/dist/cjs/node/elements/HTMLLinkElement.js.map +7 -0
  96. package/dist/cjs/node/elements/HTMLMetaElement.js +29 -0
  97. package/dist/cjs/node/elements/HTMLMetaElement.js.map +7 -0
  98. package/dist/cjs/node/elements/HTMLOListElement.js +89 -0
  99. package/dist/cjs/node/elements/HTMLOListElement.js.map +7 -0
  100. package/dist/cjs/node/elements/HTMLPElement.js +29 -0
  101. package/dist/cjs/node/elements/HTMLPElement.js.map +7 -0
  102. package/dist/cjs/node/elements/HTMLScriptElement.js +127 -0
  103. package/dist/cjs/node/elements/HTMLScriptElement.js.map +7 -0
  104. package/dist/cjs/node/elements/HTMLSpanElement.js +29 -0
  105. package/dist/cjs/node/elements/HTMLSpanElement.js.map +7 -0
  106. package/dist/cjs/node/elements/HTMLStyleElement.js +71 -0
  107. package/dist/cjs/node/elements/HTMLStyleElement.js.map +7 -0
  108. package/dist/cjs/node/elements/HTMLTableElement.js +112 -0
  109. package/dist/cjs/node/elements/HTMLTableElement.js.map +7 -0
  110. package/dist/cjs/node/elements/HTMLTbodyElement.js +54 -0
  111. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +7 -0
  112. package/dist/cjs/node/elements/HTMLTdElement.js +72 -0
  113. package/dist/cjs/node/elements/HTMLTdElement.js.map +7 -0
  114. package/dist/cjs/node/elements/HTMLTemplateElement.js +97 -0
  115. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +7 -0
  116. package/dist/cjs/node/elements/HTMLTfootElement.js +56 -0
  117. package/dist/cjs/node/elements/HTMLTfootElement.js.map +7 -0
  118. package/dist/cjs/node/elements/HTMLThElement.js +72 -0
  119. package/dist/cjs/node/elements/HTMLThElement.js.map +7 -0
  120. package/dist/cjs/node/elements/HTMLTheadElement.js +54 -0
  121. package/dist/cjs/node/elements/HTMLTheadElement.js.map +7 -0
  122. package/dist/cjs/node/elements/HTMLTitleElement.js +38 -0
  123. package/dist/cjs/node/elements/HTMLTitleElement.js.map +7 -0
  124. package/dist/cjs/node/elements/HTMLTrElement.js +77 -0
  125. package/dist/cjs/node/elements/HTMLTrElement.js.map +7 -0
  126. package/dist/cjs/node/elements/HTMLUListElement.js +29 -0
  127. package/dist/cjs/node/elements/HTMLUListElement.js.map +7 -0
  128. package/dist/cjs/node/elements/MathMLElement.js +32 -0
  129. package/dist/cjs/node/elements/MathMLElement.js.map +7 -0
  130. package/dist/cjs/node/elements/SVGCircleElement.js +69 -0
  131. package/dist/cjs/node/elements/SVGCircleElement.js.map +7 -0
  132. package/dist/cjs/node/elements/SVGElement.js +32 -0
  133. package/dist/cjs/node/elements/SVGElement.js.map +7 -0
  134. package/dist/cjs/node/elements/SVGRectElement.js +80 -0
  135. package/dist/cjs/node/elements/SVGRectElement.js.map +7 -0
  136. package/dist/cjs/node/elements/index.js +183 -0
  137. package/dist/cjs/node/elements/index.js.map +7 -0
  138. package/dist/cjs/node/index.js +73 -0
  139. package/dist/cjs/node/index.js.map +7 -0
  140. package/dist/cjs/package.json +5 -0
  141. package/dist/cjs/utils/CSSSelector.js +271 -0
  142. package/dist/cjs/utils/CSSSelector.js.map +7 -0
  143. package/dist/cjs/window/Window.js +16 -0
  144. package/dist/cjs/window/Window.js.map +7 -0
  145. package/dist/cjs/window/WindowBase.js +847 -0
  146. package/dist/cjs/window/WindowBase.js.map +7 -0
  147. package/dist/cjs/window/index.js +29 -0
  148. package/dist/cjs/window/index.js.map +7 -0
  149. package/dist/esm/DomParser.js +341 -0
  150. package/dist/esm/DomParser.js.map +7 -0
  151. package/dist/esm/factory/ElementFactory.js +57 -0
  152. package/dist/esm/factory/ElementFactory.js.map +7 -0
  153. package/dist/esm/factory/index.js +5 -0
  154. package/dist/esm/factory/index.js.map +7 -0
  155. package/dist/esm/index.js +15 -0
  156. package/dist/esm/index.js.map +7 -0
  157. package/dist/esm/node/CharacterData.js +1 -0
  158. package/dist/esm/node/CharacterData.js.map +7 -0
  159. package/dist/esm/node/ChildNode.js +1 -0
  160. package/dist/esm/node/ChildNode.js.map +7 -0
  161. package/dist/esm/node/ChildNodeBase.js +43 -0
  162. package/dist/esm/node/ChildNodeBase.js.map +7 -0
  163. package/dist/esm/node/Comment.js +67 -0
  164. package/dist/esm/node/Comment.js.map +7 -0
  165. package/dist/esm/node/Document.js +9 -0
  166. package/dist/esm/node/Document.js.map +7 -0
  167. package/dist/esm/node/DocumentBase.js +359 -0
  168. package/dist/esm/node/DocumentBase.js.map +7 -0
  169. package/dist/esm/node/DocumentFragment.js +1 -0
  170. package/dist/esm/node/DocumentFragment.js.map +7 -0
  171. package/dist/esm/node/DocumentFragmentBase.js +69 -0
  172. package/dist/esm/node/DocumentFragmentBase.js.map +7 -0
  173. package/dist/esm/node/GetRootNodeOptions.js +1 -0
  174. package/dist/esm/node/GetRootNodeOptions.js.map +7 -0
  175. package/dist/esm/node/Node.js +39 -0
  176. package/dist/esm/node/Node.js.map +7 -0
  177. package/dist/esm/node/NodeBase.js +380 -0
  178. package/dist/esm/node/NodeBase.js.map +7 -0
  179. package/dist/esm/node/NodeIterator.js +144 -0
  180. package/dist/esm/node/NodeIterator.js.map +7 -0
  181. package/dist/esm/node/ParentNode.js +1 -0
  182. package/dist/esm/node/ParentNode.js.map +7 -0
  183. package/dist/esm/node/ParentNodeBase.js +115 -0
  184. package/dist/esm/node/ParentNodeBase.js.map +7 -0
  185. package/dist/esm/node/Text.js +1 -0
  186. package/dist/esm/node/Text.js.map +7 -0
  187. package/dist/esm/node/TextBase.js +87 -0
  188. package/dist/esm/node/TextBase.js.map +7 -0
  189. package/dist/esm/node/collection/HTMLCollection.js +86 -0
  190. package/dist/esm/node/collection/HTMLCollection.js.map +7 -0
  191. package/dist/esm/node/collection/HTMLCollectionOf.js +17 -0
  192. package/dist/esm/node/collection/HTMLCollectionOf.js.map +7 -0
  193. package/dist/esm/node/collection/NodeList.js +116 -0
  194. package/dist/esm/node/collection/NodeList.js.map +7 -0
  195. package/dist/esm/node/collection/NodeListOf.js +19 -0
  196. package/dist/esm/node/collection/NodeListOf.js.map +7 -0
  197. package/dist/esm/node/collection/index.js +11 -0
  198. package/dist/esm/node/collection/index.js.map +7 -0
  199. package/dist/esm/node/elements/Element.js +1 -0
  200. package/dist/esm/node/elements/Element.js.map +7 -0
  201. package/dist/esm/node/elements/ElementBase.js +917 -0
  202. package/dist/esm/node/elements/ElementBase.js.map +7 -0
  203. package/dist/esm/node/elements/HTMLAnchorElement.js +52 -0
  204. package/dist/esm/node/elements/HTMLAnchorElement.js.map +7 -0
  205. package/dist/esm/node/elements/HTMLAreaElement.js +58 -0
  206. package/dist/esm/node/elements/HTMLAreaElement.js.map +7 -0
  207. package/dist/esm/node/elements/HTMLBaseElement.js +58 -0
  208. package/dist/esm/node/elements/HTMLBaseElement.js.map +7 -0
  209. package/dist/esm/node/elements/HTMLBodyElement.js +10 -0
  210. package/dist/esm/node/elements/HTMLBodyElement.js.map +7 -0
  211. package/dist/esm/node/elements/HTMLButtonElement.js +70 -0
  212. package/dist/esm/node/elements/HTMLButtonElement.js.map +7 -0
  213. package/dist/esm/node/elements/HTMLCanvasElement.js +60 -0
  214. package/dist/esm/node/elements/HTMLCanvasElement.js.map +7 -0
  215. package/dist/esm/node/elements/HTMLCaptionElement.js +22 -0
  216. package/dist/esm/node/elements/HTMLCaptionElement.js.map +7 -0
  217. package/dist/esm/node/elements/HTMLDivElement.js +10 -0
  218. package/dist/esm/node/elements/HTMLDivElement.js.map +7 -0
  219. package/dist/esm/node/elements/HTMLElement.js +1 -0
  220. package/dist/esm/node/elements/HTMLElement.js.map +7 -0
  221. package/dist/esm/node/elements/HTMLElementBase.js +163 -0
  222. package/dist/esm/node/elements/HTMLElementBase.js.map +7 -0
  223. package/dist/esm/node/elements/HTMLEmbedElement.js +26 -0
  224. package/dist/esm/node/elements/HTMLEmbedElement.js.map +7 -0
  225. package/dist/esm/node/elements/HTMLFormElement.js +108 -0
  226. package/dist/esm/node/elements/HTMLFormElement.js.map +7 -0
  227. package/dist/esm/node/elements/HTMLGenericElement.js +13 -0
  228. package/dist/esm/node/elements/HTMLGenericElement.js.map +7 -0
  229. package/dist/esm/node/elements/HTMLH1Element.js +10 -0
  230. package/dist/esm/node/elements/HTMLH1Element.js.map +7 -0
  231. package/dist/esm/node/elements/HTMLHeadElement.js +10 -0
  232. package/dist/esm/node/elements/HTMLHeadElement.js.map +7 -0
  233. package/dist/esm/node/elements/HTMLHtmlElement.js +73 -0
  234. package/dist/esm/node/elements/HTMLHtmlElement.js.map +7 -0
  235. package/dist/esm/node/elements/HTMLImgElement.js +80 -0
  236. package/dist/esm/node/elements/HTMLImgElement.js.map +7 -0
  237. package/dist/esm/node/elements/HTMLInputElement.js +138 -0
  238. package/dist/esm/node/elements/HTMLInputElement.js.map +7 -0
  239. package/dist/esm/node/elements/HTMLLIElement.js +38 -0
  240. package/dist/esm/node/elements/HTMLLIElement.js.map +7 -0
  241. package/dist/esm/node/elements/HTMLLinkElement.js +80 -0
  242. package/dist/esm/node/elements/HTMLLinkElement.js.map +7 -0
  243. package/dist/esm/node/elements/HTMLMetaElement.js +10 -0
  244. package/dist/esm/node/elements/HTMLMetaElement.js.map +7 -0
  245. package/dist/esm/node/elements/HTMLOListElement.js +70 -0
  246. package/dist/esm/node/elements/HTMLOListElement.js.map +7 -0
  247. package/dist/esm/node/elements/HTMLPElement.js +10 -0
  248. package/dist/esm/node/elements/HTMLPElement.js.map +7 -0
  249. package/dist/esm/node/elements/HTMLScriptElement.js +108 -0
  250. package/dist/esm/node/elements/HTMLScriptElement.js.map +7 -0
  251. package/dist/esm/node/elements/HTMLSpanElement.js +10 -0
  252. package/dist/esm/node/elements/HTMLSpanElement.js.map +7 -0
  253. package/dist/esm/node/elements/HTMLStyleElement.js +52 -0
  254. package/dist/esm/node/elements/HTMLStyleElement.js.map +7 -0
  255. package/dist/esm/node/elements/HTMLTableElement.js +93 -0
  256. package/dist/esm/node/elements/HTMLTableElement.js.map +7 -0
  257. package/dist/esm/node/elements/HTMLTbodyElement.js +35 -0
  258. package/dist/esm/node/elements/HTMLTbodyElement.js.map +7 -0
  259. package/dist/esm/node/elements/HTMLTdElement.js +53 -0
  260. package/dist/esm/node/elements/HTMLTdElement.js.map +7 -0
  261. package/dist/esm/node/elements/HTMLTemplateElement.js +78 -0
  262. package/dist/esm/node/elements/HTMLTemplateElement.js.map +7 -0
  263. package/dist/esm/node/elements/HTMLTfootElement.js +37 -0
  264. package/dist/esm/node/elements/HTMLTfootElement.js.map +7 -0
  265. package/dist/esm/node/elements/HTMLThElement.js +53 -0
  266. package/dist/esm/node/elements/HTMLThElement.js.map +7 -0
  267. package/dist/esm/node/elements/HTMLTheadElement.js +35 -0
  268. package/dist/esm/node/elements/HTMLTheadElement.js.map +7 -0
  269. package/dist/esm/node/elements/HTMLTitleElement.js +19 -0
  270. package/dist/esm/node/elements/HTMLTitleElement.js.map +7 -0
  271. package/dist/esm/node/elements/HTMLTrElement.js +58 -0
  272. package/dist/esm/node/elements/HTMLTrElement.js.map +7 -0
  273. package/dist/esm/node/elements/HTMLUListElement.js +10 -0
  274. package/dist/esm/node/elements/HTMLUListElement.js.map +7 -0
  275. package/dist/esm/node/elements/MathMLElement.js +13 -0
  276. package/dist/esm/node/elements/MathMLElement.js.map +7 -0
  277. package/dist/esm/node/elements/SVGCircleElement.js +50 -0
  278. package/dist/esm/node/elements/SVGCircleElement.js.map +7 -0
  279. package/dist/esm/node/elements/SVGElement.js +13 -0
  280. package/dist/esm/node/elements/SVGElement.js.map +7 -0
  281. package/dist/esm/node/elements/SVGRectElement.js +61 -0
  282. package/dist/esm/node/elements/SVGRectElement.js.map +7 -0
  283. package/dist/esm/node/elements/index.js +164 -0
  284. package/dist/esm/node/elements/index.js.map +7 -0
  285. package/dist/esm/node/index.js +53 -0
  286. package/dist/esm/node/index.js.map +7 -0
  287. package/dist/esm/utils/CSSSelector.js +252 -0
  288. package/dist/esm/utils/CSSSelector.js.map +7 -0
  289. package/dist/esm/window/Window.js +1 -0
  290. package/dist/esm/window/Window.js.map +7 -0
  291. package/dist/esm/window/WindowBase.js +828 -0
  292. package/dist/esm/window/WindowBase.js.map +7 -0
  293. package/dist/esm/window/index.js +10 -0
  294. package/dist/esm/window/index.js.map +7 -0
  295. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +6176 -0
  296. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +7 -0
  297. package/dist/types/DomParser.d.ts +30 -0
  298. package/dist/types/DomParser.d.ts.map +1 -0
  299. package/dist/types/factory/ElementFactory.d.ts +27 -0
  300. package/dist/types/factory/ElementFactory.d.ts.map +1 -0
  301. package/dist/types/factory/index.d.ts +2 -0
  302. package/dist/types/factory/index.d.ts.map +1 -0
  303. package/dist/types/index.d.ts +9 -0
  304. package/dist/types/index.d.ts.map +1 -0
  305. package/dist/types/node/CharacterData.d.ts +52 -0
  306. package/dist/types/node/CharacterData.d.ts.map +1 -0
  307. package/dist/types/node/ChildNode.d.ts +39 -0
  308. package/dist/types/node/ChildNode.d.ts.map +1 -0
  309. package/dist/types/node/ChildNodeBase.d.ts +12 -0
  310. package/dist/types/node/ChildNodeBase.d.ts.map +1 -0
  311. package/dist/types/node/Comment.d.ts +26 -0
  312. package/dist/types/node/Comment.d.ts.map +1 -0
  313. package/dist/types/node/Document.d.ts +857 -0
  314. package/dist/types/node/Document.d.ts.map +1 -0
  315. package/dist/types/node/DocumentBase.d.ts +153 -0
  316. package/dist/types/node/DocumentBase.d.ts.map +1 -0
  317. package/dist/types/node/DocumentFragment.d.ts +39 -0
  318. package/dist/types/node/DocumentFragment.d.ts.map +1 -0
  319. package/dist/types/node/DocumentFragmentBase.d.ts +51 -0
  320. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -0
  321. package/dist/types/node/GetRootNodeOptions.d.ts +14 -0
  322. package/dist/types/node/GetRootNodeOptions.d.ts.map +1 -0
  323. package/dist/types/node/Node.d.ts +232 -0
  324. package/dist/types/node/Node.d.ts.map +1 -0
  325. package/dist/types/node/NodeBase.d.ts +98 -0
  326. package/dist/types/node/NodeBase.d.ts.map +1 -0
  327. package/dist/types/node/NodeIterator.d.ts +61 -0
  328. package/dist/types/node/NodeIterator.d.ts.map +1 -0
  329. package/dist/types/node/ParentNode.d.ts +85 -0
  330. package/dist/types/node/ParentNode.d.ts.map +1 -0
  331. package/dist/types/node/ParentNodeBase.d.ts +22 -0
  332. package/dist/types/node/ParentNodeBase.d.ts.map +1 -0
  333. package/dist/types/node/Text.d.ts +25 -0
  334. package/dist/types/node/Text.d.ts.map +1 -0
  335. package/dist/types/node/TextBase.d.ts +26 -0
  336. package/dist/types/node/TextBase.d.ts.map +1 -0
  337. package/dist/types/node/collection/HTMLCollection.d.ts +37 -0
  338. package/dist/types/node/collection/HTMLCollection.d.ts.map +1 -0
  339. package/dist/types/node/collection/HTMLCollectionOf.d.ts +14 -0
  340. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +1 -0
  341. package/dist/types/node/collection/NodeList.d.ts +55 -0
  342. package/dist/types/node/collection/NodeList.d.ts.map +1 -0
  343. package/dist/types/node/collection/NodeListOf.d.ts +14 -0
  344. package/dist/types/node/collection/NodeListOf.d.ts.map +1 -0
  345. package/dist/types/node/collection/index.d.ts +5 -0
  346. package/dist/types/node/collection/index.d.ts.map +1 -0
  347. package/dist/types/node/elements/Element.d.ts +687 -0
  348. package/dist/types/node/elements/Element.d.ts.map +1 -0
  349. package/dist/types/node/elements/ElementBase.d.ts +143 -0
  350. package/dist/types/node/elements/ElementBase.d.ts.map +1 -0
  351. package/dist/types/node/elements/HTMLAnchorElement.d.ts +18 -0
  352. package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -0
  353. package/dist/types/node/elements/HTMLAreaElement.d.ts +59 -0
  354. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -0
  355. package/dist/types/node/elements/HTMLBaseElement.d.ts +25 -0
  356. package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -0
  357. package/dist/types/node/elements/HTMLBodyElement.d.ts +10 -0
  358. package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -0
  359. package/dist/types/node/elements/HTMLButtonElement.d.ts +21 -0
  360. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -0
  361. package/dist/types/node/elements/HTMLCanvasElement.d.ts +15 -0
  362. package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -0
  363. package/dist/types/node/elements/HTMLCaptionElement.d.ts +18 -0
  364. package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -0
  365. package/dist/types/node/elements/HTMLDivElement.d.ts +10 -0
  366. package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -0
  367. package/dist/types/node/elements/HTMLElement.d.ts +90 -0
  368. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -0
  369. package/dist/types/node/elements/HTMLElementBase.d.ts +42 -0
  370. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -0
  371. package/dist/types/node/elements/HTMLEmbedElement.d.ts +27 -0
  372. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -0
  373. package/dist/types/node/elements/HTMLFormElement.d.ts +30 -0
  374. package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -0
  375. package/dist/types/node/elements/HTMLGenericElement.d.ts +6 -0
  376. package/dist/types/node/elements/HTMLGenericElement.d.ts.map +1 -0
  377. package/dist/types/node/elements/HTMLH1Element.d.ts +10 -0
  378. package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -0
  379. package/dist/types/node/elements/HTMLHeadElement.d.ts +10 -0
  380. package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -0
  381. package/dist/types/node/elements/HTMLHtmlElement.d.ts +17 -0
  382. package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -0
  383. package/dist/types/node/elements/HTMLImgElement.d.ts +24 -0
  384. package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -0
  385. package/dist/types/node/elements/HTMLInputElement.d.ts +33 -0
  386. package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -0
  387. package/dist/types/node/elements/HTMLLIElement.d.ts +15 -0
  388. package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -0
  389. package/dist/types/node/elements/HTMLLinkElement.d.ts +24 -0
  390. package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -0
  391. package/dist/types/node/elements/HTMLMetaElement.d.ts +10 -0
  392. package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -0
  393. package/dist/types/node/elements/HTMLOListElement.d.ts +21 -0
  394. package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -0
  395. package/dist/types/node/elements/HTMLPElement.d.ts +10 -0
  396. package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -0
  397. package/dist/types/node/elements/HTMLScriptElement.d.ts +29 -0
  398. package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -0
  399. package/dist/types/node/elements/HTMLSpanElement.d.ts +10 -0
  400. package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -0
  401. package/dist/types/node/elements/HTMLStyleElement.d.ts +18 -0
  402. package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -0
  403. package/dist/types/node/elements/HTMLTableElement.d.ts +25 -0
  404. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -0
  405. package/dist/types/node/elements/HTMLTbodyElement.d.ts +15 -0
  406. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -0
  407. package/dist/types/node/elements/HTMLTdElement.d.ts +21 -0
  408. package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -0
  409. package/dist/types/node/elements/HTMLTemplateElement.d.ts +32 -0
  410. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -0
  411. package/dist/types/node/elements/HTMLTfootElement.d.ts +16 -0
  412. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -0
  413. package/dist/types/node/elements/HTMLThElement.d.ts +21 -0
  414. package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -0
  415. package/dist/types/node/elements/HTMLTheadElement.d.ts +15 -0
  416. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -0
  417. package/dist/types/node/elements/HTMLTitleElement.d.ts +15 -0
  418. package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -0
  419. package/dist/types/node/elements/HTMLTrElement.d.ts +17 -0
  420. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -0
  421. package/dist/types/node/elements/HTMLUListElement.d.ts +10 -0
  422. package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -0
  423. package/dist/types/node/elements/MathMLElement.d.ts +11 -0
  424. package/dist/types/node/elements/MathMLElement.d.ts.map +1 -0
  425. package/dist/types/node/elements/SVGCircleElement.d.ts +20 -0
  426. package/dist/types/node/elements/SVGCircleElement.d.ts.map +1 -0
  427. package/dist/types/node/elements/SVGElement.d.ts +11 -0
  428. package/dist/types/node/elements/SVGElement.d.ts.map +1 -0
  429. package/dist/types/node/elements/SVGRectElement.d.ts +23 -0
  430. package/dist/types/node/elements/SVGRectElement.d.ts.map +1 -0
  431. package/dist/types/node/elements/index.d.ts +128 -0
  432. package/dist/types/node/elements/index.d.ts.map +1 -0
  433. package/dist/types/node/index.d.ts +16 -0
  434. package/dist/types/node/index.d.ts.map +1 -0
  435. package/dist/types/utils/CSSSelector.d.ts +36 -0
  436. package/dist/types/utils/CSSSelector.d.ts.map +1 -0
  437. package/dist/types/window/Window.d.ts +620 -0
  438. package/dist/types/window/Window.d.ts.map +1 -0
  439. package/dist/types/window/WindowBase.d.ts +342 -0
  440. package/dist/types/window/WindowBase.d.ts.map +1 -0
  441. package/dist/types/window/index.d.ts +3 -0
  442. package/dist/types/window/index.d.ts.map +1 -0
  443. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +6182 -0
  444. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +7 -0
  445. package/package.json +120 -0
  446. package/src/DomParser.ts +491 -0
  447. package/src/factory/ElementFactory.ts +69 -0
  448. package/src/factory/index.ts +1 -0
  449. package/src/index.ts +28 -0
  450. package/src/node/CharacterData.ts +58 -0
  451. package/src/node/ChildNode.ts +42 -0
  452. package/src/node/ChildNodeBase.ts +54 -0
  453. package/src/node/Comment.ts +98 -0
  454. package/src/node/Document.ts +882 -0
  455. package/src/node/DocumentBase.ts +465 -0
  456. package/src/node/DocumentFragment.ts +44 -0
  457. package/src/node/DocumentFragmentBase.ts +109 -0
  458. package/src/node/GetRootNodeOptions.ts +13 -0
  459. package/src/node/Node.ts +245 -0
  460. package/src/node/NodeBase.ts +506 -0
  461. package/src/node/NodeIterator.ts +200 -0
  462. package/src/node/ParentNode.ts +93 -0
  463. package/src/node/ParentNodeBase.ts +145 -0
  464. package/src/node/Text.ts +30 -0
  465. package/src/node/TextBase.ts +113 -0
  466. package/src/node/collection/HTMLCollection.ts +107 -0
  467. package/src/node/collection/HTMLCollectionOf.ts +26 -0
  468. package/src/node/collection/NodeList.ts +140 -0
  469. package/src/node/collection/NodeListOf.ts +28 -0
  470. package/src/node/collection/index.ts +4 -0
  471. package/src/node/elements/Element.ts +771 -0
  472. package/src/node/elements/ElementBase.ts +1239 -0
  473. package/src/node/elements/HTMLAnchorElement.ts +63 -0
  474. package/src/node/elements/HTMLAreaElement.ts +73 -0
  475. package/src/node/elements/HTMLBaseElement.ts +70 -0
  476. package/src/node/elements/HTMLBodyElement.ts +12 -0
  477. package/src/node/elements/HTMLButtonElement.ts +83 -0
  478. package/src/node/elements/HTMLCanvasElement.ts +71 -0
  479. package/src/node/elements/HTMLCaptionElement.ts +26 -0
  480. package/src/node/elements/HTMLDivElement.ts +12 -0
  481. package/src/node/elements/HTMLElement.ts +105 -0
  482. package/src/node/elements/HTMLElementBase.ts +198 -0
  483. package/src/node/elements/HTMLEmbedElement.ts +33 -0
  484. package/src/node/elements/HTMLFormElement.ts +131 -0
  485. package/src/node/elements/HTMLGenericElement.ts +13 -0
  486. package/src/node/elements/HTMLH1Element.ts +12 -0
  487. package/src/node/elements/HTMLHeadElement.ts +12 -0
  488. package/src/node/elements/HTMLHtmlElement.ts +82 -0
  489. package/src/node/elements/HTMLImgElement.ts +96 -0
  490. package/src/node/elements/HTMLInputElement.ts +160 -0
  491. package/src/node/elements/HTMLLIElement.ts +47 -0
  492. package/src/node/elements/HTMLLinkElement.ts +95 -0
  493. package/src/node/elements/HTMLMetaElement.ts +12 -0
  494. package/src/node/elements/HTMLOListElement.ts +83 -0
  495. package/src/node/elements/HTMLPElement.ts +12 -0
  496. package/src/node/elements/HTMLScriptElement.ts +127 -0
  497. package/src/node/elements/HTMLSpanElement.ts +12 -0
  498. package/src/node/elements/HTMLStyleElement.ts +63 -0
  499. package/src/node/elements/HTMLTableElement.ts +117 -0
  500. package/src/node/elements/HTMLTbodyElement.ts +46 -0
  501. package/src/node/elements/HTMLTdElement.ts +67 -0
  502. package/src/node/elements/HTMLTemplateElement.ts +112 -0
  503. package/src/node/elements/HTMLTfootElement.ts +47 -0
  504. package/src/node/elements/HTMLThElement.ts +67 -0
  505. package/src/node/elements/HTMLTheadElement.ts +46 -0
  506. package/src/node/elements/HTMLTitleElement.ts +23 -0
  507. package/src/node/elements/HTMLTrElement.ts +72 -0
  508. package/src/node/elements/HTMLUListElement.ts +12 -0
  509. package/src/node/elements/MathMLElement.ts +16 -0
  510. package/src/node/elements/SVGCircleElement.ts +61 -0
  511. package/src/node/elements/SVGElement.ts +16 -0
  512. package/src/node/elements/SVGRectElement.ts +74 -0
  513. package/src/node/elements/index.ts +186 -0
  514. package/src/node/index.ts +28 -0
  515. package/src/utils/CSSSelector.ts +360 -0
  516. package/src/window/Window.ts +715 -0
  517. package/src/window/WindowBase.ts +1018 -0
  518. package/src/window/index.ts +2 -0
  519. package/tsconfig.json +24 -0
@@ -0,0 +1,115 @@
1
+ import { ChildNodeBase } from "./ChildNodeBase.js";
2
+ import { HTMLCollection } from "./collection/HTMLCollection.js";
3
+ import { NodeListOf } from "./collection/NodeListOf.js";
4
+ import { ELEMENT_NODE } from "./Node.js";
5
+ import { TextBase } from "./TextBase.js";
6
+ import { CSSSelector } from "../utils/CSSSelector.js";
7
+ class ParentNodeBase extends ChildNodeBase {
8
+ // ParentNode interface implementation
9
+ get childElementCount() {
10
+ let count = 0;
11
+ for (const child of this._childNodesInternal) {
12
+ if (child && child.nodeType === ELEMENT_NODE) {
13
+ count++;
14
+ }
15
+ }
16
+ return count;
17
+ }
18
+ get children() {
19
+ const elements = [];
20
+ for (const child of this._childNodesInternal) {
21
+ if (child && child.nodeType === ELEMENT_NODE) {
22
+ elements.push(child);
23
+ }
24
+ }
25
+ return new HTMLCollection(elements);
26
+ }
27
+ get firstElementChild() {
28
+ for (const child of this._childNodesInternal) {
29
+ if (child && child.nodeType === ELEMENT_NODE) {
30
+ return child;
31
+ }
32
+ }
33
+ return null;
34
+ }
35
+ get lastElementChild() {
36
+ for (let i = this._childNodesInternal.length - 1; i >= 0; i--) {
37
+ const child = this._childNodesInternal[i];
38
+ if (child && child.nodeType === ELEMENT_NODE) {
39
+ return child;
40
+ }
41
+ }
42
+ return null;
43
+ }
44
+ append(...nodes) {
45
+ for (const node of nodes) {
46
+ if (typeof node === "string") {
47
+ const textNode = new TextBase(node, this._ownerDocument);
48
+ this.appendChild(textNode);
49
+ } else {
50
+ this.appendChild(node);
51
+ }
52
+ }
53
+ }
54
+ prepend(...nodes) {
55
+ const firstChild = this.firstChild;
56
+ for (const node of nodes) {
57
+ if (typeof node === "string") {
58
+ const textNode = new TextBase(node, this._ownerDocument);
59
+ this.insertBefore(textNode, firstChild);
60
+ } else {
61
+ this.insertBefore(node, firstChild);
62
+ }
63
+ }
64
+ }
65
+ replaceChildren(...nodes) {
66
+ while (this._childNodesInternal.length > 0) {
67
+ const child = this._childNodesInternal[0];
68
+ if (child) {
69
+ this.removeChild(child);
70
+ }
71
+ }
72
+ this.append(...nodes);
73
+ }
74
+ // Query selector implementation
75
+ querySelector(selectors) {
76
+ const elements = this.querySelectorAll(selectors);
77
+ return elements.length > 0 ? elements.item(0) : null;
78
+ }
79
+ querySelectorAll(selectors) {
80
+ const results = [];
81
+ const selectorList = selectors.split(",").map((s) => s.trim());
82
+ for (const selector of selectorList) {
83
+ if (selector) {
84
+ this._querySelectorAllRecursive(selector, results);
85
+ }
86
+ }
87
+ const uniqueResults = [];
88
+ const seen = /* @__PURE__ */ new Set();
89
+ for (const element of results) {
90
+ if (!seen.has(element)) {
91
+ seen.add(element);
92
+ uniqueResults.push(element);
93
+ }
94
+ }
95
+ return new NodeListOf(uniqueResults);
96
+ }
97
+ // Private helper methods for querySelector
98
+ _querySelectorAllRecursive(selectors, results) {
99
+ for (const child of this._childNodesInternal) {
100
+ if (child && child.nodeType === ELEMENT_NODE) {
101
+ const element = child;
102
+ if (CSSSelector.matches(element, selectors)) {
103
+ results.push(element);
104
+ }
105
+ if (child instanceof ParentNodeBase) {
106
+ child._querySelectorAllRecursive(selectors, results);
107
+ }
108
+ }
109
+ }
110
+ }
111
+ }
112
+ export {
113
+ ParentNodeBase
114
+ };
115
+ //# sourceMappingURL=ParentNodeBase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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": "AACA,SAAS,qBAAqB;AAG9B,SAAS,sBAAsB;AAC/B,SAAS,kBAAkB;AAC3B,SAAS,oBAA+B;AACxC,SAAS,gBAAgB;AACzB,SAAS,mBAAmB;AAKrB,MAAe,uBAAuB,cAAoC;AAAA;AAAA,EAG7E,IAAI,oBAA4B;AAC5B,QAAI,QAAQ;AACZ,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,cAAc;AAC1C;AAAA,MACJ;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,WAA2B;AAC3B,UAAM,WAAsB,CAAC;AAC7B,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,cAAc;AAC1C,iBAAS,KAAK,KAA2B;AAAA,MAC7C;AAAA,IACJ;AACA,WAAO,IAAI,eAAe,QAAQ;AAAA,EACtC;AAAA,EAEA,IAAI,oBAAoC;AACpC,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,cAAc;AAC1C,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,IAAI,mBAAmC;AACnC,aAAS,IAAI,KAAK,oBAAoB,SAAS,GAAG,KAAK,GAAG,KAAK;AAC3D,YAAM,QAAQ,KAAK,oBAAoB,CAAC;AACxC,UAAI,SAAS,MAAM,aAAa,cAAc;AAC1C,eAAO;AAAA,MACX;AAAA,IACJ;AACA,WAAO;AAAA,EACX;AAAA,EAEA,UAAU,OAAgC;AACtC,eAAW,QAAQ,OAAO;AACtB,UAAI,OAAO,SAAS,UAAU;AAC1B,cAAM,WAAW,IAAI,SAAS,MAAM,KAAK,cAAc;AACvD,aAAK,YAAY,QAAQ;AAAA,MAC7B,OAAO;AACH,aAAK,YAAY,IAAI;AAAA,MACzB;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,WAAW,OAAgC;AACvC,UAAM,aAAa,KAAK;AACxB,eAAW,QAAQ,OAAO;AACtB,UAAI,OAAO,SAAS,UAAU;AAC1B,cAAM,WAAW,IAAI,SAAS,MAAM,KAAK,cAAc;AACvD,aAAK,aAAa,UAAU,UAAU;AAAA,MAC1C,OAAO;AACH,aAAK,aAAa,MAAM,UAAU;AAAA,MACtC;AAAA,IACJ;AAAA,EACJ;AAAA,EAEA,mBAAmB,OAAgC;AAE/C,WAAO,KAAK,oBAAoB,SAAS,GAAG;AACxC,YAAM,QAAQ,KAAK,oBAAoB,CAAC;AACxC,UAAI,OAAO;AACP,aAAK,YAAY,KAAK;AAAA,MAC1B;AAAA,IACJ;AAGA,SAAK,OAAO,GAAG,KAAK;AAAA,EACxB;AAAA;AAAA,EAGA,cAAiC,WAA6B;AAC1D,UAAM,WAAW,KAAK,iBAAiB,SAAS;AAChD,WAAO,SAAS,SAAS,IAAI,SAAS,KAAK,CAAC,IAAQ;AAAA,EACxD;AAAA,EAEA,iBAA8C,WAAkC;AAC5E,UAAM,UAAe,CAAC;AAGtB,UAAM,eAAe,UAAU,MAAM,GAAG,EAAE,IAAI,OAAK,EAAE,KAAK,CAAC;AAE3D,eAAW,YAAY,cAAc;AACjC,UAAI,UAAU;AACV,aAAK,2BAA2B,UAAU,OAAO;AAAA,MACrD;AAAA,IACJ;AAGA,UAAM,gBAAqB,CAAC;AAC5B,UAAM,OAAO,oBAAI,IAAI;AACrB,eAAW,WAAW,SAAS;AAC3B,UAAI,CAAC,KAAK,IAAI,OAAO,GAAG;AACpB,aAAK,IAAI,OAAO;AAChB,sBAAc,KAAK,OAAO;AAAA,MAC9B;AAAA,IACJ;AAEA,WAAO,IAAI,WAAc,aAAa;AAAA,EAC1C;AAAA;AAAA,EAGQ,2BAA2B,WAAmB,SAA0B;AAC5E,eAAW,SAAS,KAAK,qBAAqB;AAC1C,UAAI,SAAS,MAAM,aAAa,cAAc;AAC1C,cAAM,UAAU;AAGhB,YAAI,YAAY,QAAQ,SAAS,SAAS,GAAG;AACzC,kBAAQ,KAAK,OAAO;AAAA,QACxB;AAGA,YAAI,iBAAiB,gBAAgB;AACjC,gBAAM,2BAA2B,WAAW,OAAO;AAAA,QACvD;AAAA,MACJ;AAAA,IACJ;AAAA,EACJ;AAGJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=Text.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }
@@ -0,0 +1,87 @@
1
+ import { ChildNodeBase } from "./ChildNodeBase.js";
2
+ import { TEXT_NODE } from "./Node.js";
3
+ class TextBase extends ChildNodeBase {
4
+ constructor(data, ownerDocument) {
5
+ super(TEXT_NODE, "#text", ownerDocument);
6
+ // Override nodeType to match Text interface
7
+ this.nodeType = TEXT_NODE;
8
+ this.nodeName = "#text";
9
+ this._data = data;
10
+ this._nodeValue = data;
11
+ }
12
+ get data() {
13
+ return this._data;
14
+ }
15
+ set data(value) {
16
+ this._data = value;
17
+ this._nodeValue = value;
18
+ }
19
+ get length() {
20
+ return this._data.length;
21
+ }
22
+ get textContent() {
23
+ return this._data ? this.decodeHTMLEntities(this._data) : this._data;
24
+ }
25
+ set textContent(value) {
26
+ this._data = value || "";
27
+ this._nodeValue = this._data;
28
+ }
29
+ get wholeText() {
30
+ return this._data;
31
+ }
32
+ // CharacterData methods
33
+ appendData(data) {
34
+ this._data += data;
35
+ this._nodeValue = this._data;
36
+ }
37
+ deleteData(offset, count) {
38
+ if (offset < 0 || offset > this._data.length) {
39
+ throw new Error("Index out of bounds");
40
+ }
41
+ const endOffset = Math.min(offset + count, this._data.length);
42
+ this._data = this._data.slice(0, offset) + this._data.slice(endOffset);
43
+ this._nodeValue = this._data;
44
+ }
45
+ insertData(offset, data) {
46
+ if (offset < 0 || offset > this._data.length) {
47
+ throw new Error("Index out of bounds");
48
+ }
49
+ this._data = this._data.slice(0, offset) + data + this._data.slice(offset);
50
+ this._nodeValue = this._data;
51
+ }
52
+ replaceData(offset, count, data) {
53
+ this.deleteData(offset, count);
54
+ this.insertData(offset, data);
55
+ }
56
+ substringData(offset, count) {
57
+ if (offset < 0 || offset > this._data.length) {
58
+ throw new Error("Index out of bounds");
59
+ }
60
+ const endOffset = Math.min(offset + count, this._data.length);
61
+ return this._data.slice(offset, endOffset);
62
+ }
63
+ splitText(offset) {
64
+ if (offset < 0 || offset > this._data.length) {
65
+ throw new Error("Index out of bounds");
66
+ }
67
+ const newData = this._data.slice(offset);
68
+ this._data = this._data.slice(0, offset);
69
+ this._nodeValue = this._data;
70
+ const newTextNode = new TextBase(newData, this._ownerDocument);
71
+ if (this._parentNodeInternal) {
72
+ const nextSibling = this.nextSibling;
73
+ this._parentNodeInternal.insertBefore(newTextNode, nextSibling);
74
+ }
75
+ return newTextNode;
76
+ }
77
+ cloneNode(deep) {
78
+ return new TextBase(this._data, this._ownerDocument);
79
+ }
80
+ toString() {
81
+ return this._data;
82
+ }
83
+ }
84
+ export {
85
+ TextBase
86
+ };
87
+ //# sourceMappingURL=TextBase.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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;",
6
+ "names": []
7
+ }
@@ -0,0 +1,86 @@
1
+ class HTMLCollection {
2
+ constructor(elements = []) {
3
+ this._elements = [];
4
+ this._elements = [...elements];
5
+ return new Proxy(this, {
6
+ get(target, prop) {
7
+ if (typeof prop === "string" && /^\d+$/.test(prop)) {
8
+ const index = parseInt(prop, 10);
9
+ return target._elements[index] || null;
10
+ }
11
+ return target[prop];
12
+ },
13
+ set(target, prop, value) {
14
+ if (typeof prop === "string" && /^\d+$/.test(prop)) {
15
+ return false;
16
+ }
17
+ target[prop] = value;
18
+ return true;
19
+ },
20
+ has(target, prop) {
21
+ if (typeof prop === "string" && /^\d+$/.test(prop)) {
22
+ const index = parseInt(prop, 10);
23
+ return index >= 0 && index < target._elements.length;
24
+ }
25
+ return prop in target;
26
+ }
27
+ });
28
+ }
29
+ /**
30
+ * Returns the number of elements in the collection.
31
+ *
32
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/length)
33
+ */
34
+ get length() {
35
+ return this._elements.length;
36
+ }
37
+ /**
38
+ * Returns the element at the specified index, or null if the index is out of range.
39
+ *
40
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/item)
41
+ */
42
+ item(index) {
43
+ if (index < 0 || index >= this._elements.length) {
44
+ return null;
45
+ }
46
+ return this._elements[index];
47
+ }
48
+ /**
49
+ * Returns the element with the specified ID or name, or null if no such element exists.
50
+ *
51
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/HTMLCollection/namedItem)
52
+ */
53
+ namedItem(name) {
54
+ for (const element of this._elements) {
55
+ if (element.id === name || element.getAttribute("name") === name) {
56
+ return element;
57
+ }
58
+ }
59
+ return null;
60
+ }
61
+ /**
62
+ * Returns an iterator for the collection.
63
+ */
64
+ [Symbol.iterator]() {
65
+ return this._elements[Symbol.iterator]();
66
+ }
67
+ // 내부적으로 요소 추가/제거를 위한 메서드들 (DOM 조작 시 사용)
68
+ _addElement(element) {
69
+ this._elements.push(element);
70
+ }
71
+ _removeElement(element) {
72
+ const index = this._elements.indexOf(element);
73
+ if (index !== -1) {
74
+ this._elements.splice(index, 1);
75
+ return true;
76
+ }
77
+ return false;
78
+ }
79
+ _insertElement(index, element) {
80
+ this._elements.splice(index, 0, element);
81
+ }
82
+ }
83
+ export {
84
+ HTMLCollection
85
+ };
86
+ //# sourceMappingURL=HTMLCollection.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/collection/HTMLCollection.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 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 [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,eAAe;AAAA,EAMxB,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,EAKA,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,17 @@
1
+ import { HTMLCollection } from "./HTMLCollection.js";
2
+ class HTMLCollectionOf extends HTMLCollection {
3
+ constructor(elements = []) {
4
+ super(elements);
5
+ }
6
+ // 타입 안전성을 위한 오버라이드 - 단순 캐스팅만
7
+ item(index) {
8
+ return super.item(index);
9
+ }
10
+ namedItem(name) {
11
+ return super.namedItem(name);
12
+ }
13
+ }
14
+ export {
15
+ HTMLCollectionOf
16
+ };
17
+ //# sourceMappingURL=HTMLCollectionOf.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/collection/HTMLCollectionOf.ts"],
4
+ "sourcesContent": ["import { Element } from '../elements/Element';\nimport { HTMLCollection } from './HTMLCollection';\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 HTMLCollectionOf<T extends Element> extends HTMLCollection {\n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98\uB97C \uBA85\uC2DC\uC801\uC73C\uB85C \uC120\uC5B8\uD558\uC5EC \uD0C0\uC785 \uCD94\uB860 \uC9C0\uC6D0\n [index: number]: T;\n \n constructor(elements: T[] = []) {\n // \uBD80\uBAA8 HTMLCollection\uC758 \uC0DD\uC131\uC790\uB97C \uD638\uCD9C\uD558\uBA74\uC11C \uD0C0\uC785\uC774 \uC9C0\uC815\uB41C \uC694\uC18C\uB4E4\uC744 \uC804\uB2EC\n super(elements as Element[]);\n }\n\n // \uD0C0\uC785 \uC548\uC804\uC131\uC744 \uC704\uD55C \uC624\uBC84\uB77C\uC774\uB4DC - \uB2E8\uC21C \uCE90\uC2A4\uD305\uB9CC\n item(index: number): T | null {\n return super.item(index) as T | null;\n }\n\n namedItem(name: string): T | null {\n return super.namedItem(name) as T | null;\n }\n}"],
5
+ "mappings": "AACA,SAAS,sBAAsB;AAOxB,MAAM,yBAA4C,eAAe;AAAA,EAIpE,YAAY,WAAgB,CAAC,GAAG;AAE5B,UAAM,QAAqB;AAAA,EAC/B;AAAA;AAAA,EAGA,KAAK,OAAyB;AAC1B,WAAO,MAAM,KAAK,KAAK;AAAA,EAC3B;AAAA,EAEA,UAAU,MAAwB;AAC9B,WAAO,MAAM,UAAU,IAAI;AAAA,EAC/B;AACJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,116 @@
1
+ class NodeList {
2
+ constructor(nodes = []) {
3
+ this._nodes = [];
4
+ this._nodes = [...nodes];
5
+ return new Proxy(this, {
6
+ get(target, prop) {
7
+ if (typeof prop === "string" && /^\d+$/.test(prop)) {
8
+ const index = parseInt(prop, 10);
9
+ return target._nodes[index] || null;
10
+ }
11
+ return target[prop];
12
+ },
13
+ set(target, prop, value) {
14
+ if (typeof prop === "string" && /^\d+$/.test(prop)) {
15
+ return false;
16
+ }
17
+ target[prop] = value;
18
+ return true;
19
+ },
20
+ has(target, prop) {
21
+ if (typeof prop === "string" && /^\d+$/.test(prop)) {
22
+ const index = parseInt(prop, 10);
23
+ return index >= 0 && index < target._nodes.length;
24
+ }
25
+ return prop in target;
26
+ }
27
+ });
28
+ }
29
+ /**
30
+ * The **`NodeList.length`** property returns the number of items in a NodeList.
31
+ *
32
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/length)
33
+ */
34
+ get length() {
35
+ return this._nodes.length;
36
+ }
37
+ /**
38
+ * Returns a node from a `NodeList` by index.
39
+ *
40
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/item)
41
+ */
42
+ item(index) {
43
+ if (index < 0 || index >= this._nodes.length) {
44
+ return null;
45
+ }
46
+ return this._nodes[index];
47
+ }
48
+ /**
49
+ * Executes a provided function once for each `Node` value in the `NodeList`.
50
+ *
51
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/forEach)
52
+ */
53
+ forEach(callbackfn, thisArg) {
54
+ this._nodes.forEach((node, index) => {
55
+ callbackfn.call(thisArg, node, index, this);
56
+ });
57
+ }
58
+ // 내부적으로 노드 추가/제거를 위한 메서드들 (DOM 조작 시 사용)
59
+ _addNode(node) {
60
+ this._nodes.push(node);
61
+ }
62
+ _removeNode(node) {
63
+ const index = this._nodes.indexOf(node);
64
+ if (index !== -1) {
65
+ this._nodes.splice(index, 1);
66
+ return true;
67
+ }
68
+ return false;
69
+ }
70
+ _insertNode(index, node) {
71
+ this._nodes.splice(index, 0, node);
72
+ }
73
+ // Iterator 지원 (for...of 사용 가능)
74
+ *[Symbol.iterator]() {
75
+ for (const node of this._nodes) {
76
+ yield node;
77
+ }
78
+ }
79
+ /**
80
+ * Returns an iterator allowing to go through all keys contained in this object.
81
+ * The keys are unsigned integer (index).
82
+ *
83
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/keys)
84
+ */
85
+ *keys() {
86
+ for (let i = 0; i < this._nodes.length; i++) {
87
+ yield i;
88
+ }
89
+ }
90
+ /**
91
+ * Returns an iterator allowing to go through all values contained in this object.
92
+ * The values are Node objects.
93
+ *
94
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/values)
95
+ */
96
+ *values() {
97
+ for (const node of this._nodes) {
98
+ yield node;
99
+ }
100
+ }
101
+ /**
102
+ * Returns an iterator allowing to go through all key/value pairs contained in this object.
103
+ * The key is an unsigned integer (index) and the value is a Node object.
104
+ *
105
+ * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList/entries)
106
+ */
107
+ *entries() {
108
+ for (let i = 0; i < this._nodes.length; i++) {
109
+ yield [i, this._nodes[i]];
110
+ }
111
+ }
112
+ }
113
+ export {
114
+ NodeList
115
+ };
116
+ //# sourceMappingURL=NodeList.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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}"],
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
+ "names": []
7
+ }
@@ -0,0 +1,19 @@
1
+ import { NodeList } from "./NodeList.js";
2
+ class NodeListOf extends NodeList {
3
+ constructor(nodes = []) {
4
+ super(nodes);
5
+ }
6
+ // 타입 안전성을 위한 오버라이드 - 단순 캐스팅만
7
+ item(index) {
8
+ return super.item(index);
9
+ }
10
+ forEach(callbackfn, thisArg) {
11
+ super.forEach((node, index) => {
12
+ callbackfn.call(thisArg, node, index, this);
13
+ }, thisArg);
14
+ }
15
+ }
16
+ export {
17
+ NodeListOf
18
+ };
19
+ //# sourceMappingURL=NodeListOf.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/collection/NodeListOf.ts"],
4
+ "sourcesContent": ["import { Node } from '../Node';\nimport { NodeList } from './NodeList';\n\n/**\n * **`NodeListOf<TNode>`** is a generic version of NodeList that provides type safety for specific node types.\n * \n * [MDN Reference](https://developer.mozilla.org/docs/Web/API/NodeList)\n */\nexport class NodeListOf<TNode extends Node> extends NodeList<TNode> {\n // \uC778\uB371\uC2A4 \uC2DC\uADF8\uB2C8\uCC98\uB97C \uBA85\uC2DC\uC801\uC73C\uB85C \uC120\uC5B8\uD558\uC5EC \uD0C0\uC785 \uCD94\uB860 \uC9C0\uC6D0\n [index: number]: TNode;\n \n constructor(nodes: TNode[] = []) {\n // \uBD80\uBAA8 NodeList\uC758 \uC0DD\uC131\uC790\uB97C \uD638\uCD9C\uD558\uBA74\uC11C \uD0C0\uC785\uC774 \uC9C0\uC815\uB41C \uB178\uB4DC\uB4E4\uC744 \uC804\uB2EC\n super(nodes as TNode[]);\n }\n\n // \uD0C0\uC785 \uC548\uC804\uC131\uC744 \uC704\uD55C \uC624\uBC84\uB77C\uC774\uB4DC - \uB2E8\uC21C \uCE90\uC2A4\uD305\uB9CC\n item(index: number): TNode | null {\n return super.item(index) as TNode | null;\n }\n\n forEach(callbackfn: (value: TNode, key: number, parent: NodeListOf<TNode>) => void, thisArg?: any): void {\n super.forEach((node, index) => {\n callbackfn.call(thisArg, node as TNode, index, this);\n }, thisArg);\n }\n}"],
5
+ "mappings": "AACA,SAAS,gBAAgB;AAOlB,MAAM,mBAAuC,SAAgB;AAAA,EAIhE,YAAY,QAAiB,CAAC,GAAG;AAE7B,UAAM,KAAgB;AAAA,EAC1B;AAAA;AAAA,EAGA,KAAK,OAA6B;AAC9B,WAAO,MAAM,KAAK,KAAK;AAAA,EAC3B;AAAA,EAEA,QAAQ,YAA4E,SAAqB;AACrG,UAAM,QAAQ,CAAC,MAAM,UAAU;AAC3B,iBAAW,KAAK,SAAS,MAAe,OAAO,IAAI;AAAA,IACvD,GAAG,OAAO;AAAA,EACd;AACJ;",
6
+ "names": []
7
+ }
@@ -0,0 +1,11 @@
1
+ import { HTMLCollection } from "./HTMLCollection.js";
2
+ import { HTMLCollectionOf } from "./HTMLCollectionOf.js";
3
+ import { NodeList } from "./NodeList.js";
4
+ import { NodeListOf } from "./NodeListOf.js";
5
+ export {
6
+ HTMLCollection,
7
+ HTMLCollectionOf,
8
+ NodeList,
9
+ NodeListOf
10
+ };
11
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../src/node/collection/index.ts"],
4
+ "sourcesContent": ["export { HTMLCollection } from './HTMLCollection';\nexport { HTMLCollectionOf } from './HTMLCollectionOf';\nexport { NodeList } from './NodeList';\nexport { NodeListOf } from './NodeListOf';"],
5
+ "mappings": "AAAA,SAAS,sBAAsB;AAC/B,SAAS,wBAAwB;AACjC,SAAS,gBAAgB;AACzB,SAAS,kBAAkB;",
6
+ "names": []
7
+ }
@@ -0,0 +1 @@
1
+ //# sourceMappingURL=Element.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": [],
4
+ "sourcesContent": [],
5
+ "mappings": "",
6
+ "names": []
7
+ }