@dooboostore/dom-parser 1.0.1 → 1.0.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (519) hide show
  1. package/dist/cjs/DomParser.js +43 -13
  2. package/dist/cjs/DomParser.js.map +2 -2
  3. package/dist/cjs/factory/ElementFactory.js +27 -6
  4. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  5. package/dist/cjs/index.js +4 -0
  6. package/dist/cjs/index.js.map +2 -2
  7. package/dist/cjs/node/CharacterData.js.map +1 -1
  8. package/dist/cjs/node/ChildNode.js +0 -15
  9. package/dist/cjs/node/ChildNode.js.map +3 -3
  10. package/dist/cjs/node/ChildNodeBase.js +20 -0
  11. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  12. package/dist/cjs/node/Comment.js.map +2 -2
  13. package/dist/cjs/node/Document.js +0 -27
  14. package/dist/cjs/node/Document.js.map +4 -4
  15. package/dist/cjs/node/DocumentBase.js +169 -202
  16. package/dist/cjs/node/DocumentBase.js.map +2 -2
  17. package/dist/cjs/node/DocumentFragment.js +0 -15
  18. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  19. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  20. package/dist/cjs/node/Node.js.map +1 -1
  21. package/dist/cjs/node/NodeBase.js +44 -2
  22. package/dist/cjs/node/NodeBase.js.map +2 -2
  23. package/dist/cjs/node/NodeFilter.js +43 -0
  24. package/dist/cjs/node/NodeFilter.js.map +7 -0
  25. package/dist/cjs/node/NodeIterator.js +1 -28
  26. package/dist/cjs/node/NodeIterator.js.map +2 -2
  27. package/dist/cjs/node/ParentNode.js +0 -15
  28. package/dist/cjs/node/ParentNode.js.map +3 -3
  29. package/dist/cjs/node/ParentNodeBase.js +10 -10
  30. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  31. package/dist/cjs/node/ShadowRootBase.js +79 -0
  32. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  33. package/dist/cjs/node/Text.js +0 -15
  34. package/dist/cjs/node/Text.js.map +3 -3
  35. package/dist/cjs/node/TextBase.js +0 -3
  36. package/dist/cjs/node/TextBase.js.map +2 -2
  37. package/dist/cjs/node/TreeWalker.js +272 -0
  38. package/dist/cjs/node/TreeWalker.js.map +7 -0
  39. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  40. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  41. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  42. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  43. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  44. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  45. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  47. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  48. package/dist/cjs/node/collection/index.js +6 -6
  49. package/dist/cjs/node/collection/index.js.map +2 -2
  50. package/dist/cjs/node/elements/Element.js +0 -15
  51. package/dist/cjs/node/elements/Element.js.map +3 -3
  52. package/dist/cjs/node/elements/ElementBase.js +164 -322
  53. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  54. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  55. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLAudioElement.js} +9 -16
  56. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  57. package/dist/cjs/node/elements/HTMLButtonElement.js +1 -1
  58. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLDListElement.js +29 -0
  60. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  61. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  62. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  64. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  65. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  66. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  67. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  68. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  69. package/dist/cjs/node/elements/HTMLElement.js +10 -0
  70. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLElementBase.js +153 -3
  72. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  73. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  74. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  75. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  76. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  77. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  78. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  79. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  80. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  81. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  82. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  83. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  84. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  85. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  86. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  87. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  88. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  89. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  90. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  91. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  92. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  93. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  94. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  95. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  96. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  97. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  98. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  99. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  100. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  101. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  102. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  103. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  104. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  105. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  106. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  107. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  108. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  109. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  110. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  111. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  112. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  113. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  114. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  115. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  116. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  118. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  119. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  120. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  122. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  123. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  124. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  125. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  126. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  127. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  129. package/dist/cjs/node/elements/index.js +181 -92
  130. package/dist/cjs/node/elements/index.js.map +2 -2
  131. package/dist/cjs/node/index.js +6 -16
  132. package/dist/cjs/node/index.js.map +2 -2
  133. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  134. package/dist/cjs/window/CustomElementRegistryImp.js +105 -0
  135. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  136. package/dist/cjs/window/Window.js +0 -15
  137. package/dist/cjs/window/Window.js.map +3 -3
  138. package/dist/cjs/window/WindowBase.js +233 -515
  139. package/dist/cjs/window/WindowBase.js.map +2 -2
  140. package/dist/cjs/window/index.js +0 -5
  141. package/dist/cjs/window/index.js.map +2 -2
  142. package/dist/esm/DomParser.js +43 -13
  143. package/dist/esm/DomParser.js.map +2 -2
  144. package/dist/esm/factory/ElementFactory.js +27 -6
  145. package/dist/esm/factory/ElementFactory.js.map +2 -2
  146. package/dist/esm/index.js +4 -0
  147. package/dist/esm/index.js.map +2 -2
  148. package/dist/esm/node/ChildNodeBase.js +20 -0
  149. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  150. package/dist/esm/node/Comment.js.map +2 -2
  151. package/dist/esm/node/Document.js +0 -8
  152. package/dist/esm/node/Document.js.map +4 -4
  153. package/dist/esm/node/DocumentBase.js +166 -199
  154. package/dist/esm/node/DocumentBase.js.map +2 -2
  155. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  156. package/dist/esm/node/Node.js.map +1 -1
  157. package/dist/esm/node/NodeBase.js +45 -22
  158. package/dist/esm/node/NodeBase.js.map +2 -2
  159. package/dist/esm/node/NodeFilter.js +24 -0
  160. package/dist/esm/node/NodeFilter.js.map +7 -0
  161. package/dist/esm/node/NodeIterator.js +1 -28
  162. package/dist/esm/node/NodeIterator.js.map +2 -2
  163. package/dist/esm/node/ParentNodeBase.js +4 -4
  164. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  165. package/dist/esm/node/ShadowRootBase.js +60 -0
  166. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  167. package/dist/esm/node/TextBase.js +0 -3
  168. package/dist/esm/node/TextBase.js.map +2 -2
  169. package/dist/esm/node/TreeWalker.js +253 -0
  170. package/dist/esm/node/TreeWalker.js.map +7 -0
  171. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  172. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  173. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  174. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  175. package/dist/esm/node/collection/NodeList.js.map +1 -1
  176. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  177. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  178. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  179. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  180. package/dist/esm/node/collection/index.js +6 -6
  181. package/dist/esm/node/collection/index.js.map +2 -2
  182. package/dist/esm/node/elements/ElementBase.js +164 -322
  183. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  184. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  185. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  186. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  187. package/dist/esm/node/elements/HTMLButtonElement.js +1 -1
  188. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  189. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  190. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  191. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  192. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  193. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  194. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  195. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  196. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  197. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  198. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  199. package/dist/esm/node/elements/HTMLElement.js +6 -0
  200. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  201. package/dist/esm/node/elements/HTMLElementBase.js +153 -3
  202. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  203. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  204. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  205. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  206. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  207. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  208. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  209. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  210. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  211. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  212. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  213. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  214. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  215. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  216. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  217. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  218. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  219. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  220. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  221. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  222. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  223. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  224. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  225. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  226. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  227. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  228. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  229. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  230. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  231. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  232. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  233. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  234. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  235. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  236. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  237. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  238. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  239. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  240. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  241. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  242. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  243. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  244. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  245. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  246. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  247. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  248. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  249. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  250. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  251. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  255. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  256. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  257. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  258. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  259. package/dist/esm/node/elements/index.js +182 -93
  260. package/dist/esm/node/elements/index.js.map +2 -2
  261. package/dist/esm/node/index.js +7 -17
  262. package/dist/esm/node/index.js.map +2 -2
  263. package/dist/esm/utils/CSSSelector.js.map +2 -2
  264. package/dist/esm/window/CustomElementRegistryImp.js +86 -0
  265. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  266. package/dist/esm/window/WindowBase.js +282 -499
  267. package/dist/esm/window/WindowBase.js.map +2 -2
  268. package/dist/esm/window/index.js +0 -5
  269. package/dist/esm/window/index.js.map +2 -2
  270. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3755 -3548
  271. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  272. package/dist/types/DomParser.d.ts +4 -0
  273. package/dist/types/DomParser.d.ts.map +1 -1
  274. package/dist/types/factory/ElementFactory.d.ts +1 -1
  275. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  276. package/dist/types/index.d.ts +3 -1
  277. package/dist/types/index.d.ts.map +1 -1
  278. package/dist/types/node/CharacterData.d.ts +0 -2
  279. package/dist/types/node/CharacterData.d.ts.map +1 -1
  280. package/dist/types/node/ChildNode.d.ts +0 -38
  281. package/dist/types/node/ChildNode.d.ts.map +1 -1
  282. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  283. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  284. package/dist/types/node/Comment.d.ts +1 -1
  285. package/dist/types/node/Comment.d.ts.map +1 -1
  286. package/dist/types/node/Document.d.ts +0 -856
  287. package/dist/types/node/Document.d.ts.map +1 -1
  288. package/dist/types/node/DocumentBase.d.ts +68 -108
  289. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  290. package/dist/types/node/DocumentFragment.d.ts +0 -38
  291. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  292. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  293. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  294. package/dist/types/node/Node.d.ts +0 -213
  295. package/dist/types/node/Node.d.ts.map +1 -1
  296. package/dist/types/node/NodeBase.d.ts +11 -8
  297. package/dist/types/node/NodeBase.d.ts.map +1 -1
  298. package/dist/types/node/NodeFilter.d.ts +25 -0
  299. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  300. package/dist/types/node/NodeIterator.d.ts +0 -34
  301. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  302. package/dist/types/node/ParentNode.d.ts +0 -84
  303. package/dist/types/node/ParentNode.d.ts.map +1 -1
  304. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  305. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  306. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  307. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  308. package/dist/types/node/Text.d.ts +0 -24
  309. package/dist/types/node/Text.d.ts.map +1 -1
  310. package/dist/types/node/TextBase.d.ts +2 -3
  311. package/dist/types/node/TextBase.d.ts.map +1 -1
  312. package/dist/types/node/TreeWalker.d.ts +48 -0
  313. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  314. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  315. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  316. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  317. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  318. package/dist/types/node/collection/NodeList.d.ts +0 -1
  319. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  320. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  321. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  322. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  323. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  324. package/dist/types/node/collection/index.d.ts +3 -3
  325. package/dist/types/node/collection/index.d.ts.map +1 -1
  326. package/dist/types/node/elements/Element.d.ts +0 -686
  327. package/dist/types/node/elements/Element.d.ts.map +1 -1
  328. package/dist/types/node/elements/ElementBase.d.ts +97 -73
  329. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  330. package/dist/types/node/elements/HTMLAreaElement.d.ts +0 -1
  331. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  332. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  333. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  334. package/dist/types/node/elements/HTMLButtonElement.d.ts +1 -1
  335. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  336. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  337. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  338. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  339. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  340. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  341. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  342. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  343. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  344. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  345. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  346. package/dist/types/node/elements/HTMLElement.d.ts +2 -88
  347. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  348. package/dist/types/node/elements/HTMLElementBase.d.ts +133 -3
  349. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  350. package/dist/types/node/elements/HTMLEmbedElement.d.ts +0 -1
  351. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  352. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  353. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  354. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  355. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  356. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  357. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  358. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  359. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  360. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  361. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  362. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  363. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  364. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  365. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  366. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  367. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  368. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  369. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  370. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  371. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  372. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  373. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  374. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  375. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  376. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  377. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  378. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  379. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  380. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  381. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  382. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  383. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  384. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  385. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  386. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  387. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  388. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  389. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  390. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  391. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  392. package/dist/types/node/elements/HTMLTableElement.d.ts +3 -4
  393. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  394. package/dist/types/node/elements/HTMLTbodyElement.d.ts +2 -3
  395. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  396. package/dist/types/node/elements/HTMLTemplateElement.d.ts +0 -1
  397. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  398. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  399. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  400. package/dist/types/node/elements/HTMLTfootElement.d.ts +2 -3
  401. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  402. package/dist/types/node/elements/HTMLTheadElement.d.ts +2 -3
  403. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  404. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  405. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  406. package/dist/types/node/elements/HTMLTrElement.d.ts +2 -3
  407. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  408. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  409. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  410. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  411. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  412. package/dist/types/node/elements/index.d.ts +106 -52
  413. package/dist/types/node/elements/index.d.ts.map +1 -1
  414. package/dist/types/node/index.d.ts +4 -7
  415. package/dist/types/node/index.d.ts.map +1 -1
  416. package/dist/types/utils/CSSSelector.d.ts +0 -1
  417. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  418. package/dist/types/window/CustomElementRegistryImp.d.ts +18 -0
  419. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  420. package/dist/types/window/Window.d.ts +0 -619
  421. package/dist/types/window/Window.d.ts.map +1 -1
  422. package/dist/types/window/WindowBase.d.ts +261 -284
  423. package/dist/types/window/WindowBase.d.ts.map +1 -1
  424. package/dist/types/window/index.d.ts +0 -1
  425. package/dist/types/window/index.d.ts.map +1 -1
  426. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3765 -3558
  427. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  428. package/package.json +1 -1
  429. package/src/DomParser.ts +458 -429
  430. package/src/factory/ElementFactory.ts +79 -53
  431. package/src/index.ts +11 -10
  432. package/src/node/CharacterData.ts +0 -2
  433. package/src/node/ChildNode.ts +42 -42
  434. package/src/node/ChildNodeBase.ts +60 -39
  435. package/src/node/Comment.ts +60 -60
  436. package/src/node/Document.ts +129 -882
  437. package/src/node/DocumentBase.ts +371 -462
  438. package/src/node/DocumentFragment.ts +38 -44
  439. package/src/node/DocumentFragmentBase.ts +4 -9
  440. package/src/node/Node.ts +231 -224
  441. package/src/node/NodeBase.ts +469 -443
  442. package/src/node/NodeFilter.ts +50 -0
  443. package/src/node/NodeIterator.ts +117 -172
  444. package/src/node/ParentNode.ts +93 -93
  445. package/src/node/ParentNodeBase.ts +7 -10
  446. package/src/node/ShadowRootBase.ts +87 -0
  447. package/src/node/Text.ts +30 -30
  448. package/src/node/TextBase.ts +92 -94
  449. package/src/node/TreeWalker.ts +280 -0
  450. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  451. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  452. package/src/node/collection/NodeList.ts +1 -1
  453. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  454. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  455. package/src/node/collection/index.ts +3 -3
  456. package/src/node/elements/Element.ts +212 -771
  457. package/src/node/elements/ElementBase.ts +840 -1195
  458. package/src/node/elements/HTMLAreaElement.ts +0 -1
  459. package/src/node/elements/HTMLAudioElement.ts +10 -0
  460. package/src/node/elements/HTMLButtonElement.ts +63 -63
  461. package/src/node/elements/HTMLDListElement.ts +2 -0
  462. package/src/node/elements/HTMLDataElement.ts +6 -0
  463. package/src/node/elements/HTMLDataListElement.ts +2 -0
  464. package/src/node/elements/HTMLDetailsElement.ts +2 -0
  465. package/src/node/elements/HTMLDialogElement.ts +2 -0
  466. package/src/node/elements/HTMLElement.ts +2 -102
  467. package/src/node/elements/HTMLElementBase.ts +453 -156
  468. package/src/node/elements/HTMLEmbedElement.ts +0 -1
  469. package/src/node/elements/HTMLFieldSetElement.ts +2 -0
  470. package/src/node/elements/HTMLHRElement.ts +2 -0
  471. package/src/node/elements/HTMLIFrameElement.ts +2 -0
  472. package/src/node/elements/HTMLLabelElement.ts +2 -0
  473. package/src/node/elements/HTMLLegendElement.ts +2 -0
  474. package/src/node/elements/HTMLMapElement.ts +2 -0
  475. package/src/node/elements/HTMLMeterElement.ts +2 -0
  476. package/src/node/elements/HTMLModElement.ts +2 -0
  477. package/src/node/elements/HTMLObjectElement.ts +2 -0
  478. package/src/node/elements/HTMLOptGroupElement.ts +2 -0
  479. package/src/node/elements/HTMLOptionElement.ts +2 -0
  480. package/src/node/elements/HTMLOutputElement.ts +2 -0
  481. package/src/node/elements/HTMLParamElement.ts +2 -0
  482. package/src/node/elements/HTMLPictureElement.ts +2 -0
  483. package/src/node/elements/HTMLPreElement.ts +2 -0
  484. package/src/node/elements/HTMLProgressElement.ts +2 -0
  485. package/src/node/elements/HTMLQuoteElement.ts +2 -0
  486. package/src/node/elements/HTMLSelectElement.ts +2 -0
  487. package/src/node/elements/HTMLSlotElement.ts +2 -0
  488. package/src/node/elements/HTMLSourceElement.ts +2 -0
  489. package/src/node/elements/HTMLTableElement.ts +3 -7
  490. package/src/node/elements/HTMLTbodyElement.ts +2 -3
  491. package/src/node/elements/HTMLTdElement.ts +1 -1
  492. package/src/node/elements/HTMLTemplateElement.ts +3 -6
  493. package/src/node/elements/HTMLTextAreaElement.ts +2 -0
  494. package/src/node/elements/HTMLTfootElement.ts +2 -3
  495. package/src/node/elements/HTMLTheadElement.ts +2 -3
  496. package/src/node/elements/HTMLTimeElement.ts +2 -0
  497. package/src/node/elements/HTMLTrElement.ts +3 -4
  498. package/src/node/elements/HTMLTrackElement.ts +2 -0
  499. package/src/node/elements/HTMLVideoElement.ts +10 -0
  500. package/src/node/elements/index.ts +226 -149
  501. package/src/node/index.ts +8 -8
  502. package/src/utils/CSSSelector.ts +0 -1
  503. package/src/window/CustomElementRegistryImp.ts +120 -0
  504. package/src/window/Window.ts +716 -715
  505. package/src/window/WindowBase.ts +842 -998
  506. package/src/window/index.ts +0 -1
  507. package/tsconfig.json +1 -0
  508. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  509. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  510. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  511. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  512. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  513. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  514. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  515. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  516. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  517. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  518. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  519. package/src/node/collection/HTMLCollectionOf.ts +0 -26
@@ -1,145 +1,160 @@
1
1
  import { ParentNodeBase } from "./ParentNodeBase.js";
2
2
  import { DOCUMENT_NODE } from "./Node.js";
3
- import { Comment } from "./Comment.js";
4
- import { DocumentFragmentBase } from "./DocumentFragmentBase.js";
5
- import { HTMLCollection, HTMLCollectionOf } from "./collection/index.js";
6
- import { NodeListOf } from "./collection/NodeListOf.js";
7
- import { ElementFactory } from "../factory/index.js";
8
- import { NodeIterator, NodeFilter } from "./NodeIterator.js";
3
+ import { HTMLCollectionOfImp } from "./collection/HTMLCollectionOfImp.js";
4
+ import { NodeListOfImp } from "./collection/NodeListOfImp.js";
5
+ import { ElementFactory } from "../factory/ElementFactory.js";
9
6
  class DocumentBase extends ParentNodeBase {
10
7
  constructor() {
11
8
  super(DOCUMENT_NODE, "#document");
12
- // Event system
13
- this._eventListeners = [];
14
- this._readyState = "uninitialized";
9
+ this._readyState = "loading";
15
10
  this._window = null;
16
- // Reference to window for load event
17
- // Properties
18
- this.URL = "about:blank";
19
- this.alinkColor = "";
20
- this.all = null;
21
- this.anchors = new HTMLCollectionOf([]);
22
- this.applets = new HTMLCollection([]);
23
- this.bgColor = "";
24
- this.body = null;
25
- this.characterSet = "UTF-8";
26
- this.charset = "UTF-8";
27
- this.compatMode = "CSS1Compat";
28
- this.contentType = "text/html";
11
+ this._title = "";
29
12
  this.cookie = "";
30
- this.currentScript = null;
31
- this.defaultView = null;
32
13
  this.designMode = "off";
33
- this.dir = "";
34
- this.doctype = null;
35
- this.documentElement = null;
36
- this.documentURI = "about:blank";
14
+ this.dir = "ltr";
37
15
  this.domain = "";
38
- this.embeds = new HTMLCollectionOf([]);
39
- this.fgColor = "";
40
- this.forms = new HTMLCollectionOf([]);
41
- this.fragmentDirective = null;
42
- this.fullscreen = false;
43
- this.fullscreenEnabled = false;
44
- this.head = null;
45
- this.hidden = false;
46
- this.images = new HTMLCollectionOf([]);
47
- this.implementation = null;
48
- this.inputEncoding = "UTF-8";
49
- this.lastModified = (/* @__PURE__ */ new Date()).toString();
50
- this.linkColor = "";
51
- this.links = new HTMLCollectionOf([]);
52
- // Location property - simple implementation for Document
53
- this._location = {
54
- href: "about:blank",
55
- protocol: "about:",
56
- host: "",
57
- hostname: "",
58
- port: "",
59
- pathname: "blank",
60
- search: "",
61
- hash: "",
62
- origin: "null",
63
- assign: (url) => {
64
- this._location.href = url;
65
- },
66
- replace: (url) => {
67
- this._location.href = url;
68
- },
69
- reload: () => {
70
- },
71
- toString: () => this._location.href
72
- };
73
- // Event handlers
74
- this.onfullscreenchange = null;
75
- this.onfullscreenerror = null;
76
- this.onpointerlockchange = null;
77
- this.onpointerlockerror = null;
78
- this.onreadystatechange = null;
79
- this.onvisibilitychange = null;
80
- this.pictureInPictureEnabled = false;
81
- this.plugins = new HTMLCollectionOf([]);
82
16
  this.referrer = "";
83
- this.rootElement = null;
84
- this.scripts = new HTMLCollectionOf([]);
85
- this.scrollingElement = null;
86
- this.timeline = null;
87
- this.visibilityState = "visible";
88
- this.vlinkColor = "";
89
- this._ownerDocument = null;
90
- const documentElement = this.createElement("html");
91
- const head = this.createElement("head");
92
- const body = this.createElement("body");
93
- documentElement.appendChild(head);
94
- documentElement.appendChild(body);
95
- this.appendChild(documentElement);
96
- this.documentElement = documentElement;
97
- this.head = head;
98
- this.body = body;
99
- }
100
- get location() {
101
- return this._location;
102
- }
103
- set location(href) {
104
- this._location.href = href;
105
- try {
106
- const url = new URL(href);
107
- this._location.protocol = url.protocol;
108
- this._location.host = url.host;
109
- this._location.hostname = url.hostname;
110
- this._location.port = url.port;
111
- this._location.pathname = url.pathname;
112
- this._location.search = url.search;
113
- this._location.hash = url.hash;
114
- this._location.origin = url.origin;
115
- } catch (e) {
17
+ this._ownerDocument = this;
18
+ }
19
+ get title() {
20
+ const titleEl = this.querySelector("title");
21
+ return titleEl ? titleEl.textContent || "" : this._title || "";
22
+ }
23
+ set title(value) {
24
+ this._title = value;
25
+ let titleEl = this.querySelector("title");
26
+ if (!titleEl && this.head) {
27
+ titleEl = this.createElement("title");
28
+ this.head.appendChild(titleEl);
29
+ }
30
+ if (titleEl) {
31
+ titleEl.textContent = value;
116
32
  }
117
33
  }
34
+ get URL() {
35
+ return this.location?.href || "";
36
+ }
37
+ get alinkColor() {
38
+ return "";
39
+ }
40
+ set alinkColor(_) {
41
+ }
42
+ get all() {
43
+ return [];
44
+ }
45
+ get anchors() {
46
+ return [];
47
+ }
48
+ get applets() {
49
+ return [];
50
+ }
51
+ get bgColor() {
52
+ return "";
53
+ }
54
+ set bgColor(_) {
55
+ }
56
+ get characterSet() {
57
+ return "UTF-8";
58
+ }
59
+ get charset() {
60
+ return "UTF-8";
61
+ }
62
+ get compatMode() {
63
+ return "CSS1Compat";
64
+ }
65
+ get contentType() {
66
+ return "text/html";
67
+ }
68
+ get currentScript() {
69
+ return null;
70
+ }
71
+ get defaultView() {
72
+ return this._window;
73
+ }
74
+ get doctype() {
75
+ return null;
76
+ }
77
+ get documentURI() {
78
+ return this.URL;
79
+ }
80
+ get embeds() {
81
+ return [];
82
+ }
83
+ get fgColor() {
84
+ return "";
85
+ }
86
+ set fgColor(_) {
87
+ }
88
+ get forms() {
89
+ return [];
90
+ }
91
+ get fragmentDirective() {
92
+ return {};
93
+ }
94
+ get fullscreen() {
95
+ return false;
96
+ }
97
+ get fullscreenEnabled() {
98
+ return false;
99
+ }
100
+ get hidden() {
101
+ return false;
102
+ }
103
+ get images() {
104
+ return [];
105
+ }
106
+ get implementation() {
107
+ return {};
108
+ }
109
+ get inputEncoding() {
110
+ return "UTF-8";
111
+ }
112
+ get lastModified() {
113
+ return (/* @__PURE__ */ new Date()).toISOString();
114
+ }
115
+ get linkColor() {
116
+ return "";
117
+ }
118
+ set linkColor(_) {
119
+ }
120
+ get links() {
121
+ return [];
122
+ }
118
123
  get ownerDocument() {
119
124
  return null;
120
125
  }
126
+ get pictureInPictureEnabled() {
127
+ return false;
128
+ }
129
+ get plugins() {
130
+ return [];
131
+ }
121
132
  get readyState() {
122
133
  return this._readyState;
123
134
  }
124
- get title() {
125
- const titleElement = this.querySelector("title");
126
- return titleElement ? titleElement.textContent || "" : "";
135
+ get rootElement() {
136
+ return null;
127
137
  }
128
- set title(value) {
129
- let titleElement = this.querySelector("title");
130
- if (!titleElement) {
131
- titleElement = this.createElement("title");
132
- const head = this.head || this.querySelector("head");
133
- if (head) {
134
- head.appendChild(titleElement);
135
- }
136
- }
137
- titleElement.textContent = value;
138
+ get scripts() {
139
+ return [];
140
+ }
141
+ get scrollingElement() {
142
+ return this.body;
143
+ }
144
+ get timeline() {
145
+ return {};
146
+ }
147
+ get visibilityState() {
148
+ return "visible";
149
+ }
150
+ get vlinkColor() {
151
+ return "";
152
+ }
153
+ set vlinkColor(_) {
138
154
  }
139
155
  get textContent() {
140
156
  return null;
141
157
  }
142
- // Methods
143
158
  adoptNode(node) {
144
159
  node._ownerDocument = this;
145
160
  return node;
@@ -157,30 +172,33 @@ class DocumentBase extends ParentNodeBase {
157
172
  close() {
158
173
  }
159
174
  createAttribute(localName) {
160
- return { name: localName, value: "" };
175
+ return { name: localName, value: "", nodeType: 2 };
161
176
  }
162
- createAttributeNS(_namespace, qualifiedName) {
163
- return { name: qualifiedName, value: "" };
177
+ createAttributeNS(_ns, qualifiedName) {
178
+ return this.createAttribute(qualifiedName);
164
179
  }
165
180
  createCDATASection(data) {
166
181
  return { data, nodeType: 4 };
167
182
  }
168
183
  createComment(data) {
184
+ const { Comment } = require("./Comment");
169
185
  return new Comment(data, this);
170
186
  }
171
187
  createDocumentFragment() {
188
+ const { DocumentFragmentBase } = require("./DocumentFragmentBase");
172
189
  return new DocumentFragmentBase(this);
173
190
  }
174
- createElement(tagName, _options) {
175
- return ElementFactory.createElement(tagName, this);
191
+ createElement(tagName, options) {
192
+ return ElementFactory.createElement(tagName, this, options);
176
193
  }
177
- createElementNS(_namespaceURI, qualifiedName, _options) {
178
- return ElementFactory.createElement(qualifiedName, this);
194
+ createElementNS(_ns, qualifiedName, options) {
195
+ return this.createElement(qualifiedName, options);
179
196
  }
180
197
  createEvent(_eventInterface) {
181
- return {};
198
+ return { type: _eventInterface };
182
199
  }
183
- createNodeIterator(root, whatToShow = NodeFilter.SHOW_ALL, filter = null) {
200
+ createNodeIterator(root, whatToShow = 4294967295, filter = null) {
201
+ const { NodeIterator } = require("./NodeIterator");
184
202
  return new NodeIterator(root, whatToShow, filter);
185
203
  }
186
204
  createProcessingInstruction(target, data) {
@@ -193,8 +211,9 @@ class DocumentBase extends ParentNodeBase {
193
211
  const { TextBase } = require("./TextBase");
194
212
  return new TextBase(data, this);
195
213
  }
196
- createTreeWalker(_root, _whatToShow, _filter) {
197
- return {};
214
+ createTreeWalker(root, whatToShow = 4294967295, filter = null) {
215
+ const { TreeWalker } = require("./TreeWalker");
216
+ return new TreeWalker(root, whatToShow, filter);
198
217
  }
199
218
  execCommand(_commandId, _showUI, _value) {
200
219
  return false;
@@ -213,17 +232,19 @@ class DocumentBase extends ParentNodeBase {
213
232
  }
214
233
  getElementsByClassName(classNames) {
215
234
  const elements = this.querySelectorAll(`.${classNames.split(" ").join(".")}`);
216
- return new HTMLCollectionOf(Array.from(elements));
235
+ return new HTMLCollectionOfImp(Array.from(elements));
217
236
  }
237
+ // @ts-ignore
218
238
  getElementsByName(elementName) {
219
239
  const elements = this.querySelectorAll(`[name="${elementName}"]`);
220
- return new NodeListOf(Array.from(elements));
240
+ return new NodeListOfImp(Array.from(elements));
221
241
  }
222
242
  getElementsByTagName(qualifiedName) {
223
243
  const elements = this.querySelectorAll(qualifiedName);
224
- return new HTMLCollectionOf(Array.from(elements));
244
+ return new HTMLCollectionOfImp(Array.from(elements));
225
245
  }
226
- getElementsByTagNameNS(_namespace, localName) {
246
+ // @ts-ignore
247
+ getElementsByTagNameNS(_ns, localName) {
227
248
  return this.getElementsByTagName(localName);
228
249
  }
229
250
  getSelection() {
@@ -240,27 +261,15 @@ class DocumentBase extends ParentNodeBase {
240
261
  cloned._ownerDocument = this;
241
262
  return cloned;
242
263
  }
243
- open(_arg1, _arg2, _arg3) {
244
- if (arguments.length <= 2) {
245
- return this;
246
- }
247
- return null;
264
+ open(_unused1, _unused2) {
265
+ return this;
248
266
  }
249
267
  queryCommandEnabled(_commandId) {
250
268
  return false;
251
269
  }
252
- queryCommandIndeterm(_commandId) {
253
- return false;
254
- }
255
- queryCommandState(_commandId) {
256
- return false;
257
- }
258
270
  queryCommandSupported(_commandId) {
259
271
  return false;
260
272
  }
261
- queryCommandValue(_commandId) {
262
- return "";
263
- }
264
273
  releaseEvents() {
265
274
  }
266
275
  requestStorageAccess() {
@@ -276,81 +285,39 @@ class DocumentBase extends ParentNodeBase {
276
285
  this.write(...text, "\n");
277
286
  }
278
287
  addEventListener(type, listener, options) {
279
- if (type === "DOMContentLoaded" || type === "readystatechange") {
280
- this._eventListeners.push({
281
- type,
282
- listener: typeof listener === "function" ? listener : listener.handleEvent,
283
- options
284
- });
285
- }
288
+ this._eventListeners.push({ type, listener, options });
286
289
  }
287
290
  removeEventListener(type, listener, options) {
288
- if (type === "DOMContentLoaded" || type === "readystatechange") {
289
- const targetListener = typeof listener === "function" ? listener : listener.handleEvent;
290
- this._eventListeners = this._eventListeners.filter(
291
- (eventListener) => !(eventListener.type === type && eventListener.listener === targetListener)
292
- );
293
- }
291
+ this._eventListeners = this._eventListeners.filter((l) => !(l.type === type && l.listener === listener));
294
292
  }
295
- dispatchEvent(event) {
296
- const eventListeners = this._eventListeners.filter((listener) => listener.type === event.type);
297
- for (const eventListener of eventListeners) {
298
- try {
299
- eventListener.listener.call(this, event);
300
- if (eventListener.options && typeof eventListener.options === "object" && eventListener.options.once) {
301
- this.removeEventListener(event.type, eventListener.listener);
302
- }
303
- } catch (error) {
304
- console.error("Error in document event listener:", error);
305
- }
306
- }
307
- return true;
308
- }
309
- /**
310
- * Set window reference for load event dispatching
311
- */
312
293
  setWindow(window) {
313
294
  this._window = window;
314
295
  }
315
- /**
316
- * Change document ready state and dispatch events
317
- */
318
296
  setReadyState(state) {
319
297
  if (this._readyState === state) return;
320
298
  this._readyState = state;
321
- this.dispatchEvent({
322
- type: "readystatechange",
323
- target: this,
324
- readyState: state
325
- });
299
+ this.dispatchEvent({ type: "readystatechange", target: this });
326
300
  if (state === "interactive") {
327
- this.dispatchEvent({
328
- type: "DOMContentLoaded",
329
- target: this
330
- });
301
+ this.dispatchEvent({ type: "DOMContentLoaded", target: this });
331
302
  }
332
303
  if (state === "complete" && this._window) {
333
304
  setTimeout(() => {
334
305
  if (this._window && this._window.dispatchEvent) {
335
- this._window.dispatchEvent({
336
- type: "load",
337
- target: this._window
338
- });
306
+ this._window.dispatchEvent({ type: "load", target: this._window });
339
307
  }
340
308
  }, 0);
341
309
  }
342
310
  }
343
- /**
344
- * Simulate document loading process
345
- */
346
311
  simulateLoading() {
347
- this.setReadyState("loading");
348
312
  setTimeout(() => {
349
313
  this.setReadyState("interactive");
350
314
  setTimeout(() => {
351
315
  this.setReadyState("complete");
352
316
  }, 10);
353
- }, 5);
317
+ }, 10);
318
+ }
319
+ setLocation(location) {
320
+ this.location = location;
354
321
  }
355
322
  }
356
323
  export {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/DocumentBase.ts"],
4
- "sourcesContent": ["import {ParentNodeBase} from './ParentNodeBase';\nimport {DOCUMENT_NODE, Node} from './Node';\nimport {Document, ElementCreationOptions, DocumentReadyState, DocumentVisibilityState, ImportNodeOptions, CaretPositionFromPointOptions, StartViewTransitionOptions, ViewTransitionUpdateCallback} from './Document';\nimport {Comment} from './Comment';\nimport {Text} from './Text';\nimport {DocumentFragment} from './DocumentFragment';\nimport {DocumentFragmentBase} from './DocumentFragmentBase';\nimport {Element} from './elements/Element';\nimport {HTMLElement} from './elements/HTMLElement';\nimport {HTMLCollection, HTMLCollectionOf} from './collection';\nimport {HTMLElementTagNameMap, SVGElementTagNameMap, MathMLElementTagNameMap, HTMLElementDeprecatedTagNameMap} from './elements';\nimport {NodeListOf} from './collection/NodeListOf';\nimport {ElementFactory} from '../factory';\nimport {NodeIterator, NodeFilter} from './NodeIterator';\n\n// Document event listener interface\ninterface DocumentEventListener {\n type: string;\n listener: (event: any) => void;\n options?: boolean | AddEventListenerOptions;\n}\n\n/**\n * The **`DocumentBase`** class is the concrete implementation of the Document interface.\n */\nexport class DocumentBase extends ParentNodeBase implements Document {\n // Event system\n private _eventListeners: DocumentEventListener[] = [];\n private _readyState: DocumentReadyState = 'uninitialized' as any;\n private _window: any = null; // Reference to window for load event\n // Properties\n readonly URL: string = 'about:blank';\n alinkColor: string = '';\n readonly all: any = null;\n readonly anchors: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly applets: HTMLCollection = new HTMLCollection([]);\n bgColor: string = '';\n body: HTMLElement = null as any;\n readonly characterSet: string = 'UTF-8';\n readonly charset: string = 'UTF-8';\n readonly compatMode: string = 'CSS1Compat';\n readonly contentType: string = 'text/html';\n cookie: string = '';\n readonly currentScript: any = null;\n readonly defaultView: any = null;\n designMode: string = 'off';\n dir: string = '';\n readonly doctype: any = null;\n readonly documentElement: HTMLElement = null as any;\n readonly documentURI: string = 'about:blank';\n domain: string = '';\n readonly embeds: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n fgColor: string = '';\n readonly forms: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly fragmentDirective: any = null;\n readonly fullscreen: boolean = false;\n readonly fullscreenEnabled: boolean = false;\n readonly head: any = null;\n readonly hidden: boolean = false;\n readonly images: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly implementation: any = null;\n readonly inputEncoding: string = 'UTF-8';\n readonly lastModified: string = new Date().toString();\n linkColor: string = '';\n readonly links: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n \n // Location property - simple implementation for Document\n private _location: any = {\n href: 'about:blank',\n protocol: 'about:',\n host: '',\n hostname: '',\n port: '',\n pathname: 'blank',\n search: '',\n hash: '',\n origin: 'null',\n assign: (url: string) => { this._location.href = url; },\n replace: (url: string) => { this._location.href = url; },\n reload: () => {},\n toString: () => this._location.href\n };\n \n get location(): any {\n return this._location;\n }\n \n set location(href: string) {\n this._location.href = href;\n // Simple URL parsing for document location\n try {\n const url = new URL(href);\n this._location.protocol = url.protocol;\n this._location.host = url.host;\n this._location.hostname = url.hostname;\n this._location.port = url.port;\n this._location.pathname = url.pathname;\n this._location.search = url.search;\n this._location.hash = url.hash;\n this._location.origin = url.origin;\n } catch (e) {\n // Keep defaults for invalid URLs\n }\n }\n \n // Event handlers\n onfullscreenchange: ((this: Document, ev: Event) => any) | null = null;\n onfullscreenerror: ((this: Document, ev: Event) => any) | null = null;\n onpointerlockchange: ((this: Document, ev: Event) => any) | null = null;\n onpointerlockerror: ((this: Document, ev: Event) => any) | null = null;\n onreadystatechange: ((this: Document, ev: Event) => any) | null = null;\n onvisibilitychange: ((this: Document, ev: Event) => any) | null = null;\n \n get ownerDocument(): null {\n return null;\n }\n readonly pictureInPictureEnabled: boolean = false;\n readonly plugins: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n get readyState(): DocumentReadyState {\n return this._readyState;\n }\n readonly referrer: string = '';\n readonly rootElement: any = null;\n readonly scripts: HTMLCollectionOf<any> = new HTMLCollectionOf([]);\n readonly scrollingElement: Element | null = null;\n readonly timeline: any = null;\n get title(): string {\n const titleElement = this.querySelector('title');\n return titleElement ? titleElement.textContent || '' : '';\n }\n \n set title(value: string) {\n let titleElement = this.querySelector('title');\n if (!titleElement) {\n // Create title element if it doesn't exist\n titleElement = this.createElement('title');\n const head = this.head || this.querySelector('head');\n if (head) {\n head.appendChild(titleElement);\n }\n }\n titleElement.textContent = value;\n }\n readonly visibilityState: DocumentVisibilityState = 'visible';\n vlinkColor: string = '';\n\n constructor() {\n super(DOCUMENT_NODE, '#document');\n this._ownerDocument = null;\n\n // Create basic document structure\n const documentElement = this.createElement('html') as HTMLElement;\n const head = this.createElement('head') as HTMLElement;\n const body = this.createElement('body') as HTMLElement;\n\n documentElement.appendChild(head);\n documentElement.appendChild(body);\n this.appendChild(documentElement);\n\n // Set readonly properties\n (this as any).documentElement = documentElement;\n (this as any).head = head;\n this.body = body;\n }\n\n get textContent(): null {\n return null;\n }\n\n // Methods\n adoptNode<T extends Node>(node: T): T {\n (node as any)._ownerDocument = this;\n return node;\n }\n\n captureEvents(): void {}\n\n caretPositionFromPoint(_x: number, _y: number, _options?: CaretPositionFromPointOptions): any {\n return null;\n }\n\n caretRangeFromPoint(_x: number, _y: number): any {\n return null;\n }\n\n clear(): void {}\n\n close(): void {}\n\n createAttribute(localName: string): any {\n return { name: localName, value: '' };\n }\n\n createAttributeNS(_namespace: string | null, qualifiedName: string): any {\n return { name: qualifiedName, value: '' };\n }\n\n createCDATASection(data: string): any {\n return { data, nodeType: 4 };\n }\n\n createComment(data: string): Comment {\n return new Comment(data, this);\n }\n\n createDocumentFragment(): DocumentFragment {\n return new DocumentFragmentBase(this);\n }\n\n createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementTagNameMap[K];\n createElement<K extends keyof HTMLElementDeprecatedTagNameMap>(tagName: K, _options?: ElementCreationOptions): HTMLElementDeprecatedTagNameMap[K];\n createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement;\n createElement(tagName: string, _options?: ElementCreationOptions): HTMLElement {\n return ElementFactory.createElement(tagName, this);\n }\n\n createElementNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", qualifiedName: string): HTMLElement;\n createElementNS<K extends keyof SVGElementTagNameMap>(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: K): SVGElementTagNameMap[K];\n createElementNS(namespaceURI: \"http://www.w3.org/2000/svg\", qualifiedName: string): any;\n createElementNS<K extends keyof MathMLElementTagNameMap>(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: K): MathMLElementTagNameMap[K];\n createElementNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", qualifiedName: string): any;\n createElementNS(namespaceURI: string | null, qualifiedName: string, options?: ElementCreationOptions): Element;\n createElementNS(_namespace: string | null, qualifiedName: string, _options?: string | ElementCreationOptions): Element;\n createElementNS(_namespaceURI: string | null, qualifiedName: string, _options?: ElementCreationOptions | string): Element {\n return ElementFactory.createElement(qualifiedName, this);\n }\n\n createEvent(_eventInterface: string): any {\n return {};\n }\n\n createNodeIterator(root: Node, whatToShow: number = NodeFilter.SHOW_ALL, filter: NodeFilter | null = null): NodeIterator {\n return new NodeIterator(root, whatToShow, filter);\n }\n\n createProcessingInstruction(target: string, data: string): any {\n return { target, data, nodeType: 7 };\n }\n\n createRange(): any {\n return {};\n }\n\n createTextNode(data: string): Text {\n const { TextBase } = require('./TextBase');\n return new TextBase(data, this);\n }\n\n createTreeWalker(_root: Node, _whatToShow?: number, _filter?: any): any {\n return {};\n }\n\n execCommand(_commandId: string, _showUI?: boolean, _value?: string): boolean {\n return false;\n }\n\n exitFullscreen(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPictureInPicture(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPointerLock(): void {}\n\n getElementById(elementId: string): HTMLElement | null {\n const elements = this.querySelectorAll(`#${elementId}`);\n return elements.length > 0 ? elements[0] as HTMLElement : null;\n }\n\n getElementsByClassName(classNames: string): HTMLCollectionOf<Element> {\n const elements = this.querySelectorAll(`.${classNames.split(' ').join('.')}`);\n return new HTMLCollectionOf(Array.from(elements));\n }\n\n getElementsByName(elementName: string): NodeListOf<HTMLElement> {\n const elements = this.querySelectorAll(`[name=\"${elementName}\"]`);\n return new NodeListOf(Array.from(elements) as HTMLElement[]);\n }\n\n getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof SVGElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<SVGElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof MathMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<MathMLElementTagNameMap[K]>;\n getElementsByTagName<K extends keyof HTMLElementDeprecatedTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementDeprecatedTagNameMap[K]>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOf<Element> {\n const elements = this.querySelectorAll<Element>(qualifiedName);\n return new HTMLCollectionOf(Array.from(elements));\n }\n\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1999/xhtml\", localName: string): HTMLCollectionOf<HTMLElement>;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/2000/svg\", localName: string): HTMLCollectionOf<any>;\n getElementsByTagNameNS(namespaceURI: \"http://www.w3.org/1998/Math/MathML\", localName: string): HTMLCollectionOf<any>;\n getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element>;\n getElementsByTagNameNS(_namespace: string | null, localName: string): HTMLCollectionOf<Element> {\n return this.getElementsByTagName(localName);\n }\n\n getSelection(): any {\n return null;\n }\n\n hasFocus(): boolean {\n return false;\n }\n\n hasStorageAccess(): Promise<boolean> {\n return Promise.resolve(false);\n }\n\n importNode<T extends Node>(node: T, _options?: boolean | ImportNodeOptions): T {\n const cloned = (node as any).cloneNode(typeof _options === 'boolean' ? _options : _options?.deep);\n (cloned as any)._ownerDocument = this;\n return cloned;\n }\n\n open(_unused1?: string, _unused2?: string): Document;\n open(_url: string | URL, _name: string, _features: string): any;\n open(_arg1?: string | URL, _arg2?: string, _arg3?: string): Document | any {\n if (arguments.length <= 2) {\n return this;\n }\n return null;\n }\n\n queryCommandEnabled(_commandId: string): boolean {\n return false;\n }\n\n queryCommandIndeterm(_commandId: string): boolean {\n return false;\n }\n\n queryCommandState(_commandId: string): boolean {\n return false;\n }\n\n queryCommandSupported(_commandId: string): boolean {\n return false;\n }\n\n queryCommandValue(_commandId: string): string {\n return '';\n }\n\n releaseEvents(): void {}\n\n requestStorageAccess(): Promise<void> {\n return Promise.resolve();\n }\n\n startViewTransition(_callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): any {\n return {};\n }\n\n write(...text: string[]): void {\n console.log('Document.write:', text.join(''));\n }\n\n writeln(...text: string[]): void {\n this.write(...text, '\\n');\n }\n\n addEventListener(type: string, listener: any, options?: boolean | any): void {\n // Support DOMContentLoaded and readystatechange events\n if (type === 'DOMContentLoaded' || type === 'readystatechange') {\n this._eventListeners.push({\n type,\n listener: typeof listener === 'function' ? listener : listener.handleEvent,\n options\n });\n }\n }\n\n removeEventListener(type: string, listener: any, options?: boolean | any): void {\n if (type === 'DOMContentLoaded' || type === 'readystatechange') {\n const targetListener = typeof listener === 'function' ? listener : listener.handleEvent;\n this._eventListeners = this._eventListeners.filter(\n eventListener => !(eventListener.type === type && eventListener.listener === targetListener)\n );\n }\n }\n\n dispatchEvent(event: any): boolean {\n const eventListeners = this._eventListeners.filter(listener => listener.type === event.type);\n \n for (const eventListener of eventListeners) {\n try {\n eventListener.listener.call(this, event);\n \n // Handle 'once' option\n if (eventListener.options && typeof eventListener.options === 'object' && eventListener.options.once) {\n this.removeEventListener(event.type, eventListener.listener);\n }\n } catch (error) {\n console.error('Error in document event listener:', error);\n }\n }\n \n return true;\n }\n\n /**\n * Set window reference for load event dispatching\n */\n setWindow(window: any): void {\n this._window = window;\n }\n\n /**\n * Change document ready state and dispatch events\n */\n setReadyState(state: DocumentReadyState): void {\n if (this._readyState === state) return;\n \n this._readyState = state;\n \n // Dispatch readystatechange event\n this.dispatchEvent({\n type: 'readystatechange',\n target: this,\n readyState: state\n });\n \n // Dispatch DOMContentLoaded when interactive\n if (state === 'interactive') {\n this.dispatchEvent({\n type: 'DOMContentLoaded',\n target: this\n });\n }\n \n // Dispatch load event on window when complete\n if (state === 'complete' && this._window) {\n // Use setTimeout to ensure it's dispatched after current execution\n setTimeout(() => {\n if (this._window && this._window.dispatchEvent) {\n this._window.dispatchEvent({\n type: 'load',\n target: this._window\n });\n }\n }, 0);\n }\n }\n\n /**\n * Simulate document loading process\n */\n simulateLoading(): void {\n // Start with loading state\n this.setReadyState('loading');\n \n // Simulate DOM parsing completion\n setTimeout(() => {\n this.setReadyState('interactive');\n \n // Simulate resource loading completion\n setTimeout(() => {\n this.setReadyState('complete');\n }, 10);\n }, 5);\n }\n}"],
5
- "mappings": "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",
4
+ "sourcesContent": ["import { ParentNodeBase } from './ParentNodeBase';\nimport { DOCUMENT_NODE } from './Node';\nimport { HTMLCollectionOfImp } from './collection/HTMLCollectionOfImp';\nimport { NodeListOfImp } from './collection/NodeListOfImp';\nimport { ElementFactory } from '../factory/ElementFactory';\n\nexport class DocumentBase extends ParentNodeBase implements Document {\n [key: string]: any;\n private _readyState: DocumentReadyState = 'loading';\n private _window: any = null;\n public head!: any;\n public body!: any;\n public documentElement!: any;\n public location: any;\n get title(): string {\n const titleEl = this.querySelector('title');\n return titleEl ? titleEl.textContent || '' : this._title || '';\n }\n\n set title(value: string) {\n this._title = value;\n let titleEl = this.querySelector('title');\n if (!titleEl && this.head) {\n titleEl = this.createElement('title');\n this.head.appendChild(titleEl);\n }\n if (titleEl) {\n titleEl.textContent = value;\n }\n }\n\n private _title: string = '';\n public cookie: string = '';\n public designMode: string = 'off';\n public dir: string = 'ltr';\n public domain: string = '';\n public referrer: string = '';\n\n constructor() {\n super(DOCUMENT_NODE, '#document');\n this._ownerDocument = this as any;\n }\n\n get URL(): string {\n return this.location?.href || '';\n }\n get alinkColor(): string {\n return '';\n }\n set alinkColor(_: string) {}\n get all(): any {\n return [];\n }\n get anchors(): any {\n return [];\n }\n get applets(): any {\n return [];\n }\n get bgColor(): string {\n return '';\n }\n set bgColor(_: string) {}\n get characterSet(): string {\n return 'UTF-8';\n }\n get charset(): string {\n return 'UTF-8';\n }\n get compatMode(): string {\n return 'CSS1Compat';\n }\n get contentType(): string {\n return 'text/html';\n }\n get currentScript(): any {\n return null;\n }\n get defaultView(): any {\n return this._window;\n }\n get doctype(): any {\n return null;\n }\n get documentURI(): string {\n return this.URL;\n }\n get embeds(): any {\n return [];\n }\n get fgColor(): string {\n return '';\n }\n set fgColor(_: string) {}\n get forms(): any {\n return [];\n }\n get fragmentDirective(): any {\n return {};\n }\n get fullscreen(): boolean {\n return false;\n }\n get fullscreenEnabled(): boolean {\n return false;\n }\n get hidden(): boolean {\n return false;\n }\n get images(): any {\n return [];\n }\n get implementation(): any {\n return {};\n }\n get inputEncoding(): string {\n return 'UTF-8';\n }\n get lastModified(): string {\n return new Date().toISOString();\n }\n get linkColor(): string {\n return '';\n }\n set linkColor(_: string) {}\n get links(): any {\n return [];\n }\n get ownerDocument(): null {\n return null;\n }\n get pictureInPictureEnabled(): boolean {\n return false;\n }\n get plugins(): any {\n return [];\n }\n get readyState(): DocumentReadyState {\n return this._readyState;\n }\n get rootElement(): any {\n return null;\n }\n get scripts(): any {\n return [];\n }\n get scrollingElement(): any {\n return this.body;\n }\n get timeline(): any {\n return {};\n }\n get visibilityState(): any {\n return 'visible';\n }\n get vlinkColor(): string {\n return '';\n }\n set vlinkColor(_: string) {}\n get textContent(): null {\n return null;\n }\n\n adoptNode<T extends Node>(node: T): T {\n (node as any)._ownerDocument = this;\n return node;\n }\n\n captureEvents(): void {}\n\n caretPositionFromPoint(_x: number, _y: number, _options?: CaretPositionFromPointOptions): any {\n return null;\n }\n\n caretRangeFromPoint(_x: number, _y: number): any {\n return null;\n }\n\n clear(): void {}\n\n close(): void {}\n\n createAttribute(localName: string): any {\n return { name: localName, value: '', nodeType: 2 };\n }\n\n createAttributeNS(_ns: string | null, qualifiedName: string): any {\n return this.createAttribute(qualifiedName);\n }\n\n createCDATASection(data: string): any {\n return { data, nodeType: 4 };\n }\n\n createComment(data: string): any {\n const { Comment } = require('./Comment');\n return new Comment(data, this);\n }\n\n createDocumentFragment(): any {\n const { DocumentFragmentBase } = require('./DocumentFragmentBase');\n return new DocumentFragmentBase(this);\n }\n\n createElement<K extends keyof HTMLElementTagNameMap>(tagName: K, options?: ElementCreationOptions): HTMLElementTagNameMap[K];\n createElement(tagName: string, options?: ElementCreationOptions): HTMLElement;\n createElement(tagName: string, options?: ElementCreationOptions): HTMLElement {\n return ElementFactory.createElement(tagName, this, options) as any;\n }\n\n createElementNS(_ns: string | null, qualifiedName: string, options?: ElementCreationOptions): any {\n return this.createElement(qualifiedName as any, options);\n }\n\n createEvent(_eventInterface: string): any {\n return { type: _eventInterface };\n }\n\n createNodeIterator(root: Node, whatToShow: number = 0xffffffff, filter: any = null): any {\n const { NodeIterator } = require('./NodeIterator');\n return new NodeIterator(root, whatToShow, filter);\n }\n\n createProcessingInstruction(target: string, data: string): any {\n return { target, data, nodeType: 7 };\n }\n\n createRange(): any {\n return {};\n }\n\n createTextNode(data: string): any {\n const { TextBase } = require('./TextBase');\n return new TextBase(data, this);\n }\n\n createTreeWalker(root: Node, whatToShow: number = 0xffffffff, filter: any = null): any {\n const { TreeWalker } = require('./TreeWalker');\n return new TreeWalker(root, whatToShow, filter);\n }\n\n execCommand(_commandId: string, _showUI?: boolean, _value?: string): boolean {\n return false;\n }\n\n exitFullscreen(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPictureInPicture(): Promise<void> {\n return Promise.resolve();\n }\n\n exitPointerLock(): void {}\n\n getElementById(elementId: string): HTMLElement | null {\n const elements = this.querySelectorAll(`#${elementId}`);\n return elements.length > 0 ? (elements[0] as HTMLElement) : null;\n }\n\n getElementsByClassName(classNames: string): HTMLCollectionOf<Element> {\n const elements = this.querySelectorAll(`.${classNames.split(' ').join('.')}`);\n return new HTMLCollectionOfImp(Array.from(elements)) as unknown as HTMLCollectionOf<Element>;\n }\n\n // @ts-ignore\n getElementsByName(elementName: string): NodeListOfImp<HTMLElement> {\n const elements = this.querySelectorAll(`[name=\"${elementName}\"]`);\n return new NodeListOfImp<HTMLElement>(Array.from(elements) as unknown as HTMLElement[]) as unknown as NodeListOfImp<HTMLElement>;\n }\n\n // @ts-ignore\n getElementsByTagName<K extends keyof HTMLElementTagNameMap>(qualifiedName: K): HTMLCollectionOf<HTMLElementTagNameMap[K]>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOfImp<Element>;\n getElementsByTagName(qualifiedName: string): HTMLCollectionOfImp<Element> {\n const elements = this.querySelectorAll<Element>(qualifiedName);\n return new HTMLCollectionOfImp(Array.from(elements));\n }\n\n // @ts-ignore\n getElementsByTagNameNS(_ns: string | null, localName: string): HTMLCollectionOf<Element> {\n return this.getElementsByTagName(localName) as unknown as HTMLCollectionOf<Element>;\n }\n\n getSelection(): any {\n return null;\n }\n\n hasFocus(): boolean {\n return false;\n }\n\n hasStorageAccess(): Promise<boolean> {\n return Promise.resolve(false);\n }\n\n importNode<T extends Node>(node: T, _options?: boolean | ImportNodeOptions): T {\n const cloned = (node as any).cloneNode(typeof _options === 'boolean' ? _options : (_options as any)?.deep);\n (cloned as any)._ownerDocument = this;\n return cloned;\n }\n\n open(_unused1?: string, _unused2?: string): any {\n return this;\n }\n\n queryCommandEnabled(_commandId: string): boolean {\n return false;\n }\n\n queryCommandSupported(_commandId: string): boolean {\n return false;\n }\n\n releaseEvents(): void {}\n\n requestStorageAccess(): Promise<void> {\n return Promise.resolve();\n }\n\n startViewTransition(_callbackOptions?: ViewTransitionUpdateCallback | StartViewTransitionOptions): any {\n return {};\n }\n\n write(...text: string[]): void {\n console.log('Document.write:', text.join(''));\n }\n\n writeln(...text: string[]): void {\n this.write(...text, '\\n');\n }\n\n addEventListener(type: string, listener: any, options?: any): void {\n this._eventListeners.push({ type, listener, options });\n }\n\n removeEventListener(type: string, listener: any, options?: any): void {\n this._eventListeners = this._eventListeners.filter(l => !(l.type === type && l.listener === listener));\n }\n\n setWindow(window: any): void {\n this._window = window;\n }\n\n setReadyState(state: DocumentReadyState): void {\n if (this._readyState === state) return;\n this._readyState = state;\n this.dispatchEvent({ type: 'readystatechange', target: this });\n if (state === 'interactive') {\n this.dispatchEvent({ type: 'DOMContentLoaded', target: this });\n }\n if (state === 'complete' && this._window) {\n setTimeout(() => {\n if (this._window && this._window.dispatchEvent) {\n this._window.dispatchEvent({ type: 'load', target: this._window });\n }\n }, 0);\n }\n }\n\n simulateLoading(): void {\n // Start with a small delay to allow test listeners to be added\n setTimeout(() => {\n this.setReadyState('interactive');\n setTimeout(() => {\n this.setReadyState('complete');\n }, 10);\n }, 10);\n }\n\n setLocation(location: any): void {\n this.location = location;\n }\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/node/DocumentFragmentBase.ts"],
4
- "sourcesContent": ["import { ParentNodeBase } from './ParentNodeBase';\nimport { DocumentFragment } from './DocumentFragment';\nimport { Document } from './Document';\nimport {DOCUMENT_FRAGMENT_NODE, ELEMENT_NODE, Node} from './Node';\nimport { NodeBase } from './NodeBase';\nimport { Element } from './elements/Element';\nimport { HTMLElement } from './elements/HTMLElement';\nimport { HTMLElementTagNameMap, SVGElementTagNameMap, MathMLElementTagNameMap } from './elements';\nimport { NodeListOf } from './collection/NodeListOf';\n\n/**\n * The **`DocumentFragmentBase`** class is the concrete implementation of the DocumentFragment interface.\n * \n * DocumentFragment is a minimal document object that has no parent. It is used as a lightweight version of Document\n * that stores a segment of a document structure comprised of nodes just like a standard document.\n */\nexport class DocumentFragmentBase extends ParentNodeBase implements DocumentFragment {\n constructor(ownerDocument?: Document) {\n super(DOCUMENT_FRAGMENT_NODE, '#document-fragment', ownerDocument); // DOCUMENT_FRAGMENT_NODE = 11\n }\n\n /**\n * Returns the number of child elements of this DocumentFragment.\n */\n get childElementCount(): number {\n let count = 0;\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) { // ELEMENT_NODE\n count++;\n }\n }\n return count;\n }\n\n /**\n * Returns the first Element node within the DocumentFragment that matches the specified selectors.\n */\n querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;\n querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;\n querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;\n querySelector<E extends Element = Element>(selectors: string): E | null;\n querySelector(selectors: string): Element | null;\n querySelector(selectors: string): Element | null {\n const elements = this.querySelectorAll(selectors);\n return elements.length > 0 ? elements.item(0) : null;\n }\n\n /**\n * Returns all Element nodes within the DocumentFragment that match the specified selectors.\n */\n querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;\n querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;\n querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;\n querySelectorAll(selectors: string): NodeListOf<Element>;\n querySelectorAll(selectors: string): NodeListOf<Element> {\n // Use the inherited querySelectorAll from ParentNodeBase\n return super.querySelectorAll(selectors);\n }\n\n /**\n * Returns the Element within the DocumentFragment that has the specified ID.\n */\n getElementById(elementId: string): HTMLElement | null {\n const element = this.querySelector(`#${elementId}`);\n return element as HTMLElement | null;\n }\n\n /**\n * Override cloneNode to return DocumentFragment\n */\n cloneNode(deep?: boolean): DocumentFragmentBase {\n const clone = new DocumentFragmentBase(this._ownerDocument as Document);\n \n if (deep) {\n for (const child of this._childNodesInternal) {\n if (child && 'cloneNode' in child) {\n clone.appendChild((child as any).cloneNode(true));\n }\n }\n }\n \n return clone;\n }\n\n /**\n * Override appendChild to handle DocumentFragment behavior\n * When a DocumentFragment is appended to another node, its children are moved, not the fragment itself\n */\n appendChild<T extends Node>(node: T): T {\n // If the node being appended is a DocumentFragment, move its children instead\n if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {\n const fragment = node as any;\n \n // Move all children from fragment to this node\n while (fragment._childNodesInternal && fragment._childNodesInternal.length > 0) {\n const child = fragment._childNodesInternal[0];\n if (child) {\n fragment.removeChild(child);\n super.appendChild(child);\n }\n }\n \n return node;\n }\n \n return super.appendChild(node);\n }\n}"],
5
- "mappings": "AAAA,SAAS,sBAAsB;AAG/B,SAAQ,wBAAwB,oBAAyB;AAalD,MAAM,6BAA6B,eAA2C;AAAA,EACjF,YAAY,eAA0B;AAClC,UAAM,wBAAwB,sBAAsB,aAAa;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,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,EAUA,cAAc,WAAmC;AAC7C,UAAM,WAAW,KAAK,iBAAiB,SAAS;AAChD,WAAO,SAAS,SAAS,IAAI,SAAS,KAAK,CAAC,IAAI;AAAA,EACpD;AAAA,EAUA,iBAAiB,WAAwC;AAErD,WAAO,MAAM,iBAAiB,SAAS;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,WAAuC;AAClD,UAAM,UAAU,KAAK,cAAc,IAAI,SAAS,EAAE;AAClD,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,MAAsC;AAC5C,UAAM,QAAQ,IAAI,qBAAqB,KAAK,cAA0B;AAEtE,QAAI,MAAM;AACN,iBAAW,SAAS,KAAK,qBAAqB;AAC1C,YAAI,SAAS,eAAe,OAAO;AAC/B,gBAAM,YAAa,MAAc,UAAU,IAAI,CAAC;AAAA,QACpD;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAA4B,MAAY;AAEpC,QAAI,KAAK,aAAa,wBAAwB;AAC1C,YAAM,WAAW;AAGjB,aAAO,SAAS,uBAAuB,SAAS,oBAAoB,SAAS,GAAG;AAC5E,cAAM,QAAQ,SAAS,oBAAoB,CAAC;AAC5C,YAAI,OAAO;AACP,mBAAS,YAAY,KAAK;AAC1B,gBAAM,YAAY,KAAK;AAAA,QAC3B;AAAA,MACJ;AAEA,aAAO;AAAA,IACX;AAEA,WAAO,MAAM,YAAY,IAAI;AAAA,EACjC;AACJ;",
4
+ "sourcesContent": ["import { ParentNodeBase } from './ParentNodeBase';\nimport {DOCUMENT_FRAGMENT_NODE, ELEMENT_NODE} from './Node';\nimport { NodeBase } from './NodeBase';\nimport { NodeListOfImp } from './collection/NodeListOfImp';\n\n/**\n * The **`DocumentFragmentBase`** class is the concrete implementation of the DocumentFragment interface.\n * \n * DocumentFragment is a minimal document object that has no parent. It is used as a lightweight version of Document\n * that stores a segment of a document structure comprised of nodes just like a standard document.\n */\nexport class DocumentFragmentBase extends ParentNodeBase implements DocumentFragment {\n constructor(ownerDocument?: Document) {\n super(DOCUMENT_FRAGMENT_NODE, '#document-fragment', ownerDocument); // DOCUMENT_FRAGMENT_NODE = 11\n }\n\n /**\n * Returns the number of child elements of this DocumentFragment.\n */\n get childElementCount(): number {\n let count = 0;\n for (const child of this._childNodesInternal) {\n if (child && child.nodeType === ELEMENT_NODE) { // ELEMENT_NODE\n count++;\n }\n }\n return count;\n }\n\n /**\n * Returns the first Element node within the DocumentFragment that matches the specified selectors.\n */\n querySelector<K extends keyof HTMLElementTagNameMap>(selectors: K): HTMLElementTagNameMap[K] | null;\n querySelector<K extends keyof SVGElementTagNameMap>(selectors: K): SVGElementTagNameMap[K] | null;\n querySelector<K extends keyof MathMLElementTagNameMap>(selectors: K): MathMLElementTagNameMap[K] | null;\n querySelector<E extends Element = Element>(selectors: string): E | null;\n querySelector(selectors: string): Element | null;\n querySelector(selectors: string): Element | null {\n const elements = this.querySelectorAll(selectors);\n return elements.length > 0 ? elements.item(0) : null;\n }\n\n /**\n * Returns all Element nodes within the DocumentFragment that match the specified selectors.\n */\n querySelectorAll<K extends keyof HTMLElementTagNameMap>(selectors: K): NodeListOf<HTMLElementTagNameMap[K]>;\n querySelectorAll<K extends keyof SVGElementTagNameMap>(selectors: K): NodeListOf<SVGElementTagNameMap[K]>;\n querySelectorAll<K extends keyof MathMLElementTagNameMap>(selectors: K): NodeListOf<MathMLElementTagNameMap[K]>;\n querySelectorAll<E extends Element = Element>(selectors: string): NodeListOf<E>;\n querySelectorAll(selectors: string): NodeListOf<Element>;\n querySelectorAll(selectors: string): NodeListOf<Element> {\n // Use the inherited querySelectorAll from ParentNodeBase\n return super.querySelectorAll(selectors);\n }\n\n /**\n * Returns the Element within the DocumentFragment that has the specified ID.\n */\n getElementById(elementId: string): HTMLElement | null {\n const element = this.querySelector(`#${elementId}`);\n return element as HTMLElement | null;\n }\n\n /**\n * Override cloneNode to return DocumentFragment\n */\n cloneNode(deep?: boolean): DocumentFragment {\n const clone = new DocumentFragmentBase(this._ownerDocument as Document) as unknown as DocumentFragment;\n \n if (deep) {\n for (const child of this._childNodesInternal) {\n if (child && 'cloneNode' in child) {\n clone.appendChild((child as any).cloneNode(true));\n }\n }\n }\n \n return clone;\n }\n\n /**\n * Override appendChild to handle DocumentFragment behavior\n * When a DocumentFragment is appended to another node, its children are moved, not the fragment itself\n */\n appendChild<T extends Node>(node: T): T {\n // If the node being appended is a DocumentFragment, move its children instead\n if (node.nodeType === DOCUMENT_FRAGMENT_NODE) {\n const fragment = node as any;\n \n // Move all children from fragment to this node\n while (fragment._childNodesInternal && fragment._childNodesInternal.length > 0) {\n const child = fragment._childNodesInternal[0];\n if (child) {\n fragment.removeChild(child);\n super.appendChild(child);\n }\n }\n \n return node;\n }\n \n return super.appendChild(node);\n }\n}"],
5
+ "mappings": "AAAA,SAAS,sBAAsB;AAC/B,SAAQ,wBAAwB,oBAAmB;AAU5C,MAAM,6BAA6B,eAA2C;AAAA,EACjF,YAAY,eAA0B;AAClC,UAAM,wBAAwB,sBAAsB,aAAa;AAAA,EACrE;AAAA;AAAA;AAAA;AAAA,EAKA,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,EAUA,cAAc,WAAmC;AAC7C,UAAM,WAAW,KAAK,iBAAiB,SAAS;AAChD,WAAO,SAAS,SAAS,IAAI,SAAS,KAAK,CAAC,IAAI;AAAA,EACpD;AAAA,EAUA,iBAAiB,WAAwC;AAErD,WAAO,MAAM,iBAAiB,SAAS;AAAA,EAC3C;AAAA;AAAA;AAAA;AAAA,EAKA,eAAe,WAAuC;AAClD,UAAM,UAAU,KAAK,cAAc,IAAI,SAAS,EAAE;AAClD,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA,EAKA,UAAU,MAAkC;AACxC,UAAM,QAAQ,IAAI,qBAAqB,KAAK,cAA0B;AAEtE,QAAI,MAAM;AACN,iBAAW,SAAS,KAAK,qBAAqB;AAC1C,YAAI,SAAS,eAAe,OAAO;AAC/B,gBAAM,YAAa,MAAc,UAAU,IAAI,CAAC;AAAA,QACpD;AAAA,MACJ;AAAA,IACJ;AAEA,WAAO;AAAA,EACX;AAAA;AAAA;AAAA;AAAA;AAAA,EAMA,YAA4B,MAAY;AAEpC,QAAI,KAAK,aAAa,wBAAwB;AAC1C,YAAM,WAAW;AAGjB,aAAO,SAAS,uBAAuB,SAAS,oBAAoB,SAAS,GAAG;AAC5E,cAAM,QAAQ,SAAS,oBAAoB,CAAC;AAC5C,YAAI,OAAO;AACP,mBAAS,YAAY,KAAK;AAC1B,gBAAM,YAAY,KAAK;AAAA,QAC3B;AAAA,MACJ;AAEA,aAAO;AAAA,IACX;AAEA,WAAO,MAAM,YAAY,IAAI;AAAA,EACjC;AACJ;",
6
6
  "names": []
7
7
  }