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