@dooboostore/dom-parser 1.0.2 → 1.0.3

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