@dooboostore/dom-parser 1.0.2 → 1.0.4

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 (727) hide show
  1. package/README.MD +369 -6
  2. package/dist/cjs/DomParser.js +11 -1
  3. package/dist/cjs/DomParser.js.map +2 -2
  4. package/dist/cjs/bundle-entry.js +36 -0
  5. package/dist/cjs/bundle-entry.js.map +7 -0
  6. package/dist/cjs/factory/ElementFactory.js +31 -7
  7. package/dist/cjs/factory/ElementFactory.js.map +2 -2
  8. package/dist/cjs/index.js +26 -0
  9. package/dist/cjs/index.js.map +2 -2
  10. package/dist/cjs/node/CharacterData.js.map +1 -1
  11. package/dist/cjs/node/ChildNode.js +0 -15
  12. package/dist/cjs/node/ChildNode.js.map +3 -3
  13. package/dist/cjs/node/ChildNodeBase.js +20 -0
  14. package/dist/cjs/node/ChildNodeBase.js.map +2 -2
  15. package/dist/cjs/node/Comment.js.map +2 -2
  16. package/dist/cjs/node/Document.js +0 -27
  17. package/dist/cjs/node/Document.js.map +4 -4
  18. package/dist/cjs/node/DocumentBase.js +168 -205
  19. package/dist/cjs/node/DocumentBase.js.map +2 -2
  20. package/dist/cjs/node/DocumentFragment.js +0 -15
  21. package/dist/cjs/node/DocumentFragment.js.map +3 -3
  22. package/dist/cjs/node/DocumentFragmentBase.js.map +2 -2
  23. package/dist/cjs/node/Node.js.map +1 -1
  24. package/dist/cjs/node/NodeBase.js +44 -2
  25. package/dist/cjs/node/NodeBase.js.map +2 -2
  26. package/dist/cjs/node/NodeFilter.js +43 -0
  27. package/dist/cjs/node/NodeFilter.js.map +7 -0
  28. package/dist/cjs/node/NodeIterator.js +1 -28
  29. package/dist/cjs/node/NodeIterator.js.map +2 -2
  30. package/dist/cjs/node/ParentNode.js +0 -15
  31. package/dist/cjs/node/ParentNode.js.map +3 -3
  32. package/dist/cjs/node/ParentNodeBase.js +10 -10
  33. package/dist/cjs/node/ParentNodeBase.js.map +3 -3
  34. package/dist/cjs/node/ShadowRootBase.js +79 -0
  35. package/dist/cjs/node/ShadowRootBase.js.map +7 -0
  36. package/dist/cjs/node/Text.js +0 -15
  37. package/dist/cjs/node/Text.js.map +3 -3
  38. package/dist/cjs/node/TextBase.js +0 -3
  39. package/dist/cjs/node/TextBase.js.map +2 -2
  40. package/dist/cjs/node/TreeWalker.js +272 -0
  41. package/dist/cjs/node/TreeWalker.js.map +7 -0
  42. package/dist/cjs/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +7 -6
  43. package/dist/cjs/node/collection/HTMLCollectionImp.js.map +7 -0
  44. package/dist/cjs/node/collection/HTMLCollectionOfImp.js +26 -0
  45. package/dist/cjs/node/collection/HTMLCollectionOfImp.js.map +7 -0
  46. package/dist/cjs/node/collection/NodeList.js.map +1 -1
  47. package/dist/cjs/node/collection/{NodeListOf.js → NodeListOfImp.js} +6 -6
  48. package/dist/cjs/node/collection/NodeListOfImp.js.map +7 -0
  49. package/dist/cjs/node/collection/StylePropertyMapImpl.js +65 -0
  50. package/dist/cjs/node/collection/StylePropertyMapImpl.js.map +7 -0
  51. package/dist/cjs/node/collection/index.js +6 -6
  52. package/dist/cjs/node/collection/index.js.map +2 -2
  53. package/dist/cjs/node/elements/Element.js +0 -15
  54. package/dist/cjs/node/elements/Element.js.map +3 -3
  55. package/dist/cjs/node/elements/ElementBase.js +163 -331
  56. package/dist/cjs/node/elements/ElementBase.js.map +3 -3
  57. package/dist/cjs/node/elements/HTMLAnchorElement.js +2 -2
  58. package/dist/cjs/node/elements/HTMLAnchorElement.js.map +2 -2
  59. package/dist/cjs/node/elements/HTMLAreaElement.js +2 -2
  60. package/dist/cjs/node/elements/HTMLAreaElement.js.map +2 -2
  61. package/dist/cjs/node/elements/{HTMLGenericElement.js → HTMLAudioElement.js} +8 -11
  62. package/dist/cjs/node/elements/HTMLAudioElement.js.map +7 -0
  63. package/dist/cjs/node/elements/HTMLBaseElement.js +2 -2
  64. package/dist/cjs/node/elements/HTMLBaseElement.js.map +2 -2
  65. package/dist/cjs/node/elements/HTMLBodyElement.js +2 -2
  66. package/dist/cjs/node/elements/HTMLBodyElement.js.map +2 -2
  67. package/dist/cjs/node/elements/HTMLButtonElement.js +3 -3
  68. package/dist/cjs/node/elements/HTMLButtonElement.js.map +2 -2
  69. package/dist/cjs/node/elements/HTMLCanvasElement.js +2 -2
  70. package/dist/cjs/node/elements/HTMLCanvasElement.js.map +2 -2
  71. package/dist/cjs/node/elements/HTMLCaptionElement.js +2 -2
  72. package/dist/cjs/node/elements/HTMLCaptionElement.js.map +2 -2
  73. package/dist/cjs/node/{collection/HTMLCollectionOf.js → elements/HTMLDListElement.js} +9 -16
  74. package/dist/cjs/node/elements/HTMLDListElement.js.map +7 -0
  75. package/dist/cjs/node/elements/HTMLDataElement.js +29 -0
  76. package/dist/cjs/node/elements/HTMLDataElement.js.map +7 -0
  77. package/dist/cjs/node/elements/HTMLDataListElement.js +29 -0
  78. package/dist/cjs/node/elements/HTMLDataListElement.js.map +7 -0
  79. package/dist/cjs/node/elements/HTMLDetailsElement.js +29 -0
  80. package/dist/cjs/node/elements/HTMLDetailsElement.js.map +7 -0
  81. package/dist/cjs/node/elements/HTMLDialogElement.js +29 -0
  82. package/dist/cjs/node/elements/HTMLDialogElement.js.map +7 -0
  83. package/dist/cjs/node/elements/HTMLDivElement.js +2 -2
  84. package/dist/cjs/node/elements/HTMLDivElement.js.map +2 -2
  85. package/dist/cjs/node/elements/HTMLElement.js +13 -0
  86. package/dist/cjs/node/elements/HTMLElement.js.map +2 -2
  87. package/dist/cjs/node/elements/HTMLElementBase.js +44 -44
  88. package/dist/cjs/node/elements/HTMLElementBase.js.map +2 -2
  89. package/dist/cjs/node/elements/HTMLEmbedElement.js +2 -2
  90. package/dist/cjs/node/elements/HTMLEmbedElement.js.map +2 -2
  91. package/dist/cjs/node/elements/HTMLFieldSetElement.js +29 -0
  92. package/dist/cjs/node/elements/HTMLFieldSetElement.js.map +7 -0
  93. package/dist/cjs/node/elements/HTMLFormElement.js +2 -2
  94. package/dist/cjs/node/elements/HTMLFormElement.js.map +2 -2
  95. package/dist/cjs/node/elements/HTMLH1Element.js +2 -2
  96. package/dist/cjs/node/elements/HTMLH1Element.js.map +2 -2
  97. package/dist/cjs/node/elements/HTMLHRElement.js +29 -0
  98. package/dist/cjs/node/elements/HTMLHRElement.js.map +7 -0
  99. package/dist/cjs/node/elements/HTMLHeadElement.js +2 -2
  100. package/dist/cjs/node/elements/HTMLHeadElement.js.map +2 -2
  101. package/dist/cjs/node/elements/HTMLHtmlElement.js +2 -2
  102. package/dist/cjs/node/elements/HTMLHtmlElement.js.map +2 -2
  103. package/dist/cjs/node/elements/HTMLIFrameElement.js +29 -0
  104. package/dist/cjs/node/elements/HTMLIFrameElement.js.map +7 -0
  105. package/dist/cjs/node/elements/HTMLImgElement.js +2 -2
  106. package/dist/cjs/node/elements/HTMLImgElement.js.map +2 -2
  107. package/dist/cjs/node/elements/HTMLInputElement.js +2 -2
  108. package/dist/cjs/node/elements/HTMLInputElement.js.map +2 -2
  109. package/dist/cjs/node/elements/HTMLLIElement.js +2 -2
  110. package/dist/cjs/node/elements/HTMLLIElement.js.map +2 -2
  111. package/dist/cjs/node/elements/HTMLLabelElement.js +29 -0
  112. package/dist/cjs/node/elements/HTMLLabelElement.js.map +7 -0
  113. package/dist/cjs/node/elements/HTMLLegendElement.js +29 -0
  114. package/dist/cjs/node/elements/HTMLLegendElement.js.map +7 -0
  115. package/dist/cjs/node/elements/HTMLLinkElement.js +2 -2
  116. package/dist/cjs/node/elements/HTMLLinkElement.js.map +2 -2
  117. package/dist/cjs/node/elements/HTMLMapElement.js +29 -0
  118. package/dist/cjs/node/elements/HTMLMapElement.js.map +7 -0
  119. package/dist/cjs/node/elements/HTMLMetaElement.js +2 -2
  120. package/dist/cjs/node/elements/HTMLMetaElement.js.map +2 -2
  121. package/dist/cjs/node/elements/HTMLMeterElement.js +29 -0
  122. package/dist/cjs/node/elements/HTMLMeterElement.js.map +7 -0
  123. package/dist/cjs/node/elements/HTMLModElement.js +29 -0
  124. package/dist/cjs/node/elements/HTMLModElement.js.map +7 -0
  125. package/dist/cjs/node/elements/HTMLOListElement.js +2 -2
  126. package/dist/cjs/node/elements/HTMLOListElement.js.map +2 -2
  127. package/dist/cjs/node/elements/HTMLObjectElement.js +29 -0
  128. package/dist/cjs/node/elements/HTMLObjectElement.js.map +7 -0
  129. package/dist/cjs/node/elements/HTMLOptGroupElement.js +29 -0
  130. package/dist/cjs/node/elements/HTMLOptGroupElement.js.map +7 -0
  131. package/dist/cjs/node/elements/HTMLOptionElement.js +29 -0
  132. package/dist/cjs/node/elements/HTMLOptionElement.js.map +7 -0
  133. package/dist/cjs/node/elements/HTMLOutputElement.js +29 -0
  134. package/dist/cjs/node/elements/HTMLOutputElement.js.map +7 -0
  135. package/dist/cjs/node/elements/HTMLPElement.js +2 -2
  136. package/dist/cjs/node/elements/HTMLPElement.js.map +2 -2
  137. package/dist/cjs/node/elements/HTMLParamElement.js +29 -0
  138. package/dist/cjs/node/elements/HTMLParamElement.js.map +7 -0
  139. package/dist/cjs/node/elements/HTMLPictureElement.js +29 -0
  140. package/dist/cjs/node/elements/HTMLPictureElement.js.map +7 -0
  141. package/dist/cjs/node/elements/HTMLPreElement.js +29 -0
  142. package/dist/cjs/node/elements/HTMLPreElement.js.map +7 -0
  143. package/dist/cjs/node/elements/HTMLProgressElement.js +29 -0
  144. package/dist/cjs/node/elements/HTMLProgressElement.js.map +7 -0
  145. package/dist/cjs/node/elements/HTMLQuoteElement.js +29 -0
  146. package/dist/cjs/node/elements/HTMLQuoteElement.js.map +7 -0
  147. package/dist/cjs/node/elements/HTMLScriptElement.js +2 -2
  148. package/dist/cjs/node/elements/HTMLScriptElement.js.map +2 -2
  149. package/dist/cjs/node/elements/HTMLSelectElement.js +29 -0
  150. package/dist/cjs/node/elements/HTMLSelectElement.js.map +7 -0
  151. package/dist/cjs/node/elements/HTMLSlotElement.js +29 -0
  152. package/dist/cjs/node/elements/HTMLSlotElement.js.map +7 -0
  153. package/dist/cjs/node/elements/HTMLSourceElement.js +29 -0
  154. package/dist/cjs/node/elements/HTMLSourceElement.js.map +7 -0
  155. package/dist/cjs/node/elements/HTMLSpanElement.js +2 -2
  156. package/dist/cjs/node/elements/HTMLSpanElement.js.map +2 -2
  157. package/dist/cjs/node/elements/HTMLStyleElement.js +2 -2
  158. package/dist/cjs/node/elements/HTMLStyleElement.js.map +2 -2
  159. package/dist/cjs/node/elements/HTMLTableElement.js +2 -2
  160. package/dist/cjs/node/elements/HTMLTableElement.js.map +2 -2
  161. package/dist/cjs/node/elements/HTMLTbodyElement.js +2 -2
  162. package/dist/cjs/node/elements/HTMLTbodyElement.js.map +2 -2
  163. package/dist/cjs/node/elements/HTMLTdElement.js +2 -2
  164. package/dist/cjs/node/elements/HTMLTdElement.js.map +2 -2
  165. package/dist/cjs/node/elements/HTMLTemplateElement.js +2 -2
  166. package/dist/cjs/node/elements/HTMLTemplateElement.js.map +2 -2
  167. package/dist/cjs/node/elements/HTMLTextAreaElement.js +29 -0
  168. package/dist/cjs/node/elements/HTMLTextAreaElement.js.map +7 -0
  169. package/dist/cjs/node/elements/HTMLTfootElement.js +2 -2
  170. package/dist/cjs/node/elements/HTMLTfootElement.js.map +2 -2
  171. package/dist/cjs/node/elements/HTMLThElement.js +2 -2
  172. package/dist/cjs/node/elements/HTMLThElement.js.map +2 -2
  173. package/dist/cjs/node/elements/HTMLTheadElement.js +2 -2
  174. package/dist/cjs/node/elements/HTMLTheadElement.js.map +2 -2
  175. package/dist/cjs/node/elements/HTMLTimeElement.js +29 -0
  176. package/dist/cjs/node/elements/HTMLTimeElement.js.map +7 -0
  177. package/dist/cjs/node/elements/HTMLTitleElement.js +2 -2
  178. package/dist/cjs/node/elements/HTMLTitleElement.js.map +2 -2
  179. package/dist/cjs/node/elements/HTMLTrElement.js +2 -2
  180. package/dist/cjs/node/elements/HTMLTrElement.js.map +2 -2
  181. package/dist/cjs/node/elements/HTMLTrackElement.js +29 -0
  182. package/dist/cjs/node/elements/HTMLTrackElement.js.map +7 -0
  183. package/dist/cjs/node/elements/HTMLUListElement.js +2 -2
  184. package/dist/cjs/node/elements/HTMLUListElement.js.map +2 -2
  185. package/dist/cjs/node/elements/HTMLVideoElement.js +29 -0
  186. package/dist/cjs/node/elements/HTMLVideoElement.js.map +7 -0
  187. package/dist/cjs/node/elements/MathMLElement.js +2 -2
  188. package/dist/cjs/node/elements/MathMLElement.js.map +2 -2
  189. package/dist/cjs/node/elements/SVGElement.js +2 -2
  190. package/dist/cjs/node/elements/SVGElement.js.map +2 -2
  191. package/dist/cjs/node/elements/index.js +181 -94
  192. package/dist/cjs/node/elements/index.js.map +2 -2
  193. package/dist/cjs/node/index.js +6 -16
  194. package/dist/cjs/node/index.js.map +2 -2
  195. package/dist/cjs/utils/CSSSelector.js.map +2 -2
  196. package/dist/cjs/window/CustomElementRegistryImp.js +113 -0
  197. package/dist/cjs/window/CustomElementRegistryImp.js.map +7 -0
  198. package/dist/cjs/window/Window.js +0 -15
  199. package/dist/cjs/window/Window.js.map +3 -3
  200. package/dist/cjs/window/WindowBase.js +210 -613
  201. package/dist/cjs/window/WindowBase.js.map +2 -2
  202. package/dist/cjs/window/index.js +0 -5
  203. package/dist/cjs/window/index.js.map +2 -2
  204. package/dist/esm/DomParser.js +11 -1
  205. package/dist/esm/DomParser.js.map +2 -2
  206. package/dist/esm/bundle-entry.js +6 -0
  207. package/dist/esm/bundle-entry.js.map +7 -0
  208. package/dist/esm/factory/ElementFactory.js +32 -8
  209. package/dist/esm/factory/ElementFactory.js.map +2 -2
  210. package/dist/esm/index.js +26 -0
  211. package/dist/esm/index.js.map +2 -2
  212. package/dist/esm/node/ChildNodeBase.js +20 -0
  213. package/dist/esm/node/ChildNodeBase.js.map +2 -2
  214. package/dist/esm/node/Comment.js.map +2 -2
  215. package/dist/esm/node/Document.js +0 -8
  216. package/dist/esm/node/Document.js.map +4 -4
  217. package/dist/esm/node/DocumentBase.js +165 -202
  218. package/dist/esm/node/DocumentBase.js.map +2 -2
  219. package/dist/esm/node/DocumentFragmentBase.js.map +2 -2
  220. package/dist/esm/node/Node.js.map +1 -1
  221. package/dist/esm/node/NodeBase.js +45 -22
  222. package/dist/esm/node/NodeBase.js.map +2 -2
  223. package/dist/esm/node/NodeFilter.js +24 -0
  224. package/dist/esm/node/NodeFilter.js.map +7 -0
  225. package/dist/esm/node/NodeIterator.js +1 -28
  226. package/dist/esm/node/NodeIterator.js.map +2 -2
  227. package/dist/esm/node/ParentNodeBase.js +4 -4
  228. package/dist/esm/node/ParentNodeBase.js.map +2 -2
  229. package/dist/esm/node/ShadowRootBase.js +60 -0
  230. package/dist/esm/node/ShadowRootBase.js.map +7 -0
  231. package/dist/esm/node/TextBase.js +0 -3
  232. package/dist/esm/node/TextBase.js.map +2 -2
  233. package/dist/esm/node/TreeWalker.js +253 -0
  234. package/dist/esm/node/TreeWalker.js.map +7 -0
  235. package/dist/esm/node/collection/{HTMLCollection.js → HTMLCollectionImp.js} +4 -3
  236. package/dist/esm/node/collection/HTMLCollectionImp.js.map +7 -0
  237. package/dist/esm/node/collection/HTMLCollectionOfImp.js +7 -0
  238. package/dist/esm/node/collection/HTMLCollectionOfImp.js.map +7 -0
  239. package/dist/esm/node/collection/NodeList.js.map +1 -1
  240. package/dist/esm/node/collection/{NodeListOf.js → NodeListOfImp.js} +3 -3
  241. package/dist/esm/node/collection/NodeListOfImp.js.map +7 -0
  242. package/dist/esm/node/collection/StylePropertyMapImpl.js +46 -0
  243. package/dist/esm/node/collection/StylePropertyMapImpl.js.map +7 -0
  244. package/dist/esm/node/collection/index.js +6 -6
  245. package/dist/esm/node/collection/index.js.map +2 -2
  246. package/dist/esm/node/elements/ElementBase.js +163 -331
  247. package/dist/esm/node/elements/ElementBase.js.map +3 -3
  248. package/dist/esm/node/elements/HTMLAnchorElement.js +2 -2
  249. package/dist/esm/node/elements/HTMLAnchorElement.js.map +2 -2
  250. package/dist/esm/node/elements/HTMLAreaElement.js +2 -2
  251. package/dist/esm/node/elements/HTMLAreaElement.js.map +2 -2
  252. package/dist/esm/node/elements/HTMLAudioElement.js +10 -0
  253. package/dist/esm/node/elements/HTMLAudioElement.js.map +7 -0
  254. package/dist/esm/node/elements/HTMLBaseElement.js +2 -2
  255. package/dist/esm/node/elements/HTMLBaseElement.js.map +2 -2
  256. package/dist/esm/node/elements/HTMLBodyElement.js +2 -2
  257. package/dist/esm/node/elements/HTMLBodyElement.js.map +2 -2
  258. package/dist/esm/node/elements/HTMLButtonElement.js +3 -3
  259. package/dist/esm/node/elements/HTMLButtonElement.js.map +2 -2
  260. package/dist/esm/node/elements/HTMLCanvasElement.js +2 -2
  261. package/dist/esm/node/elements/HTMLCanvasElement.js.map +2 -2
  262. package/dist/esm/node/elements/HTMLCaptionElement.js +2 -2
  263. package/dist/esm/node/elements/HTMLCaptionElement.js.map +2 -2
  264. package/dist/esm/node/elements/HTMLDListElement.js +10 -0
  265. package/dist/esm/node/elements/HTMLDListElement.js.map +7 -0
  266. package/dist/esm/node/elements/HTMLDataElement.js +10 -0
  267. package/dist/esm/node/elements/HTMLDataElement.js.map +7 -0
  268. package/dist/esm/node/elements/HTMLDataListElement.js +10 -0
  269. package/dist/esm/node/elements/HTMLDataListElement.js.map +7 -0
  270. package/dist/esm/node/elements/HTMLDetailsElement.js +10 -0
  271. package/dist/esm/node/elements/HTMLDetailsElement.js.map +7 -0
  272. package/dist/esm/node/elements/HTMLDialogElement.js +10 -0
  273. package/dist/esm/node/elements/HTMLDialogElement.js.map +7 -0
  274. package/dist/esm/node/elements/HTMLDivElement.js +2 -2
  275. package/dist/esm/node/elements/HTMLDivElement.js.map +2 -2
  276. package/dist/esm/node/elements/HTMLElement.js +9 -0
  277. package/dist/esm/node/elements/HTMLElement.js.map +3 -3
  278. package/dist/esm/node/elements/HTMLElementBase.js +43 -43
  279. package/dist/esm/node/elements/HTMLElementBase.js.map +2 -2
  280. package/dist/esm/node/elements/HTMLEmbedElement.js +2 -2
  281. package/dist/esm/node/elements/HTMLEmbedElement.js.map +2 -2
  282. package/dist/esm/node/elements/HTMLFieldSetElement.js +10 -0
  283. package/dist/esm/node/elements/HTMLFieldSetElement.js.map +7 -0
  284. package/dist/esm/node/elements/HTMLFormElement.js +2 -2
  285. package/dist/esm/node/elements/HTMLFormElement.js.map +2 -2
  286. package/dist/esm/node/elements/HTMLH1Element.js +2 -2
  287. package/dist/esm/node/elements/HTMLH1Element.js.map +2 -2
  288. package/dist/esm/node/elements/HTMLHRElement.js +10 -0
  289. package/dist/esm/node/elements/HTMLHRElement.js.map +7 -0
  290. package/dist/esm/node/elements/HTMLHeadElement.js +2 -2
  291. package/dist/esm/node/elements/HTMLHeadElement.js.map +2 -2
  292. package/dist/esm/node/elements/HTMLHtmlElement.js +2 -2
  293. package/dist/esm/node/elements/HTMLHtmlElement.js.map +2 -2
  294. package/dist/esm/node/elements/HTMLIFrameElement.js +10 -0
  295. package/dist/esm/node/elements/HTMLIFrameElement.js.map +7 -0
  296. package/dist/esm/node/elements/HTMLImgElement.js +2 -2
  297. package/dist/esm/node/elements/HTMLImgElement.js.map +2 -2
  298. package/dist/esm/node/elements/HTMLInputElement.js +2 -2
  299. package/dist/esm/node/elements/HTMLInputElement.js.map +2 -2
  300. package/dist/esm/node/elements/HTMLLIElement.js +2 -2
  301. package/dist/esm/node/elements/HTMLLIElement.js.map +2 -2
  302. package/dist/esm/node/elements/HTMLLabelElement.js +10 -0
  303. package/dist/esm/node/elements/HTMLLabelElement.js.map +7 -0
  304. package/dist/esm/node/elements/HTMLLegendElement.js +10 -0
  305. package/dist/esm/node/elements/HTMLLegendElement.js.map +7 -0
  306. package/dist/esm/node/elements/HTMLLinkElement.js +2 -2
  307. package/dist/esm/node/elements/HTMLLinkElement.js.map +2 -2
  308. package/dist/esm/node/elements/HTMLMapElement.js +10 -0
  309. package/dist/esm/node/elements/HTMLMapElement.js.map +7 -0
  310. package/dist/esm/node/elements/HTMLMetaElement.js +2 -2
  311. package/dist/esm/node/elements/HTMLMetaElement.js.map +2 -2
  312. package/dist/esm/node/elements/HTMLMeterElement.js +10 -0
  313. package/dist/esm/node/elements/HTMLMeterElement.js.map +7 -0
  314. package/dist/esm/node/elements/HTMLModElement.js +10 -0
  315. package/dist/esm/node/elements/HTMLModElement.js.map +7 -0
  316. package/dist/esm/node/elements/HTMLOListElement.js +2 -2
  317. package/dist/esm/node/elements/HTMLOListElement.js.map +2 -2
  318. package/dist/esm/node/elements/HTMLObjectElement.js +10 -0
  319. package/dist/esm/node/elements/HTMLObjectElement.js.map +7 -0
  320. package/dist/esm/node/elements/HTMLOptGroupElement.js +10 -0
  321. package/dist/esm/node/elements/HTMLOptGroupElement.js.map +7 -0
  322. package/dist/esm/node/elements/HTMLOptionElement.js +10 -0
  323. package/dist/esm/node/elements/HTMLOptionElement.js.map +7 -0
  324. package/dist/esm/node/elements/HTMLOutputElement.js +10 -0
  325. package/dist/esm/node/elements/HTMLOutputElement.js.map +7 -0
  326. package/dist/esm/node/elements/HTMLPElement.js +2 -2
  327. package/dist/esm/node/elements/HTMLPElement.js.map +2 -2
  328. package/dist/esm/node/elements/HTMLParamElement.js +10 -0
  329. package/dist/esm/node/elements/HTMLParamElement.js.map +7 -0
  330. package/dist/esm/node/elements/HTMLPictureElement.js +10 -0
  331. package/dist/esm/node/elements/HTMLPictureElement.js.map +7 -0
  332. package/dist/esm/node/elements/HTMLPreElement.js +10 -0
  333. package/dist/esm/node/elements/HTMLPreElement.js.map +7 -0
  334. package/dist/esm/node/elements/HTMLProgressElement.js +10 -0
  335. package/dist/esm/node/elements/HTMLProgressElement.js.map +7 -0
  336. package/dist/esm/node/elements/HTMLQuoteElement.js +10 -0
  337. package/dist/esm/node/elements/HTMLQuoteElement.js.map +7 -0
  338. package/dist/esm/node/elements/HTMLScriptElement.js +2 -2
  339. package/dist/esm/node/elements/HTMLScriptElement.js.map +2 -2
  340. package/dist/esm/node/elements/HTMLSelectElement.js +10 -0
  341. package/dist/esm/node/elements/HTMLSelectElement.js.map +7 -0
  342. package/dist/esm/node/elements/HTMLSlotElement.js +10 -0
  343. package/dist/esm/node/elements/HTMLSlotElement.js.map +7 -0
  344. package/dist/esm/node/elements/HTMLSourceElement.js +10 -0
  345. package/dist/esm/node/elements/HTMLSourceElement.js.map +7 -0
  346. package/dist/esm/node/elements/HTMLSpanElement.js +2 -2
  347. package/dist/esm/node/elements/HTMLSpanElement.js.map +2 -2
  348. package/dist/esm/node/elements/HTMLStyleElement.js +2 -2
  349. package/dist/esm/node/elements/HTMLStyleElement.js.map +2 -2
  350. package/dist/esm/node/elements/HTMLTableElement.js +2 -2
  351. package/dist/esm/node/elements/HTMLTableElement.js.map +2 -2
  352. package/dist/esm/node/elements/HTMLTbodyElement.js +2 -2
  353. package/dist/esm/node/elements/HTMLTbodyElement.js.map +2 -2
  354. package/dist/esm/node/elements/HTMLTdElement.js +2 -2
  355. package/dist/esm/node/elements/HTMLTdElement.js.map +2 -2
  356. package/dist/esm/node/elements/HTMLTemplateElement.js +2 -2
  357. package/dist/esm/node/elements/HTMLTemplateElement.js.map +2 -2
  358. package/dist/esm/node/elements/HTMLTextAreaElement.js +10 -0
  359. package/dist/esm/node/elements/HTMLTextAreaElement.js.map +7 -0
  360. package/dist/esm/node/elements/HTMLTfootElement.js +2 -2
  361. package/dist/esm/node/elements/HTMLTfootElement.js.map +2 -2
  362. package/dist/esm/node/elements/HTMLThElement.js +2 -2
  363. package/dist/esm/node/elements/HTMLThElement.js.map +2 -2
  364. package/dist/esm/node/elements/HTMLTheadElement.js +2 -2
  365. package/dist/esm/node/elements/HTMLTheadElement.js.map +2 -2
  366. package/dist/esm/node/elements/HTMLTimeElement.js +10 -0
  367. package/dist/esm/node/elements/HTMLTimeElement.js.map +7 -0
  368. package/dist/esm/node/elements/HTMLTitleElement.js +2 -2
  369. package/dist/esm/node/elements/HTMLTitleElement.js.map +2 -2
  370. package/dist/esm/node/elements/HTMLTrElement.js +2 -2
  371. package/dist/esm/node/elements/HTMLTrElement.js.map +2 -2
  372. package/dist/esm/node/elements/HTMLTrackElement.js +10 -0
  373. package/dist/esm/node/elements/HTMLTrackElement.js.map +7 -0
  374. package/dist/esm/node/elements/HTMLUListElement.js +2 -2
  375. package/dist/esm/node/elements/HTMLUListElement.js.map +2 -2
  376. package/dist/esm/node/elements/HTMLVideoElement.js +10 -0
  377. package/dist/esm/node/elements/HTMLVideoElement.js.map +7 -0
  378. package/dist/esm/node/elements/MathMLElement.js +2 -2
  379. package/dist/esm/node/elements/MathMLElement.js.map +2 -2
  380. package/dist/esm/node/elements/SVGElement.js +2 -2
  381. package/dist/esm/node/elements/SVGElement.js.map +2 -2
  382. package/dist/esm/node/elements/index.js +182 -95
  383. package/dist/esm/node/elements/index.js.map +2 -2
  384. package/dist/esm/node/index.js +7 -17
  385. package/dist/esm/node/index.js.map +2 -2
  386. package/dist/esm/utils/CSSSelector.js.map +2 -2
  387. package/dist/esm/window/CustomElementRegistryImp.js +94 -0
  388. package/dist/esm/window/CustomElementRegistryImp.js.map +7 -0
  389. package/dist/esm/window/WindowBase.js +259 -597
  390. package/dist/esm/window/WindowBase.js.map +2 -2
  391. package/dist/esm/window/index.js +0 -5
  392. package/dist/esm/window/index.js.map +2 -2
  393. package/dist/esm-bundle/dooboostore-dom-parser.esm.js +3477 -3558
  394. package/dist/esm-bundle/dooboostore-dom-parser.esm.js.map +4 -4
  395. package/dist/types/DomParser.d.ts.map +1 -1
  396. package/dist/types/bundle-entry.d.ts +3 -0
  397. package/dist/types/bundle-entry.d.ts.map +1 -0
  398. package/dist/types/factory/ElementFactory.d.ts +1 -1
  399. package/dist/types/factory/ElementFactory.d.ts.map +1 -1
  400. package/dist/types/index.d.ts +14 -1
  401. package/dist/types/index.d.ts.map +1 -1
  402. package/dist/types/node/CharacterData.d.ts +0 -2
  403. package/dist/types/node/CharacterData.d.ts.map +1 -1
  404. package/dist/types/node/ChildNode.d.ts +0 -38
  405. package/dist/types/node/ChildNode.d.ts.map +1 -1
  406. package/dist/types/node/ChildNodeBase.d.ts +6 -4
  407. package/dist/types/node/ChildNodeBase.d.ts.map +1 -1
  408. package/dist/types/node/Comment.d.ts +1 -1
  409. package/dist/types/node/Comment.d.ts.map +1 -1
  410. package/dist/types/node/Document.d.ts +0 -856
  411. package/dist/types/node/Document.d.ts.map +1 -1
  412. package/dist/types/node/DocumentBase.d.ts +68 -110
  413. package/dist/types/node/DocumentBase.d.ts.map +1 -1
  414. package/dist/types/node/DocumentFragment.d.ts +0 -38
  415. package/dist/types/node/DocumentFragment.d.ts.map +1 -1
  416. package/dist/types/node/DocumentFragmentBase.d.ts +1 -8
  417. package/dist/types/node/DocumentFragmentBase.d.ts.map +1 -1
  418. package/dist/types/node/Node.d.ts +0 -213
  419. package/dist/types/node/Node.d.ts.map +1 -1
  420. package/dist/types/node/NodeBase.d.ts +11 -8
  421. package/dist/types/node/NodeBase.d.ts.map +1 -1
  422. package/dist/types/node/NodeFilter.d.ts +25 -0
  423. package/dist/types/node/NodeFilter.d.ts.map +1 -0
  424. package/dist/types/node/NodeIterator.d.ts +0 -34
  425. package/dist/types/node/NodeIterator.d.ts.map +1 -1
  426. package/dist/types/node/ParentNode.d.ts +0 -84
  427. package/dist/types/node/ParentNode.d.ts.map +1 -1
  428. package/dist/types/node/ParentNodeBase.d.ts +0 -5
  429. package/dist/types/node/ParentNodeBase.d.ts.map +1 -1
  430. package/dist/types/node/ShadowRootBase.d.ts +36 -0
  431. package/dist/types/node/ShadowRootBase.d.ts.map +1 -0
  432. package/dist/types/node/Text.d.ts +0 -24
  433. package/dist/types/node/Text.d.ts.map +1 -1
  434. package/dist/types/node/TextBase.d.ts +2 -3
  435. package/dist/types/node/TextBase.d.ts.map +1 -1
  436. package/dist/types/node/TreeWalker.d.ts +48 -0
  437. package/dist/types/node/TreeWalker.d.ts.map +1 -0
  438. package/dist/types/node/collection/{HTMLCollection.d.ts → HTMLCollectionImp.d.ts} +2 -3
  439. package/dist/types/node/collection/HTMLCollectionImp.d.ts.map +1 -0
  440. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts +9 -0
  441. package/dist/types/node/collection/HTMLCollectionOfImp.d.ts.map +1 -0
  442. package/dist/types/node/collection/NodeList.d.ts +0 -1
  443. package/dist/types/node/collection/NodeList.d.ts.map +1 -1
  444. package/dist/types/node/collection/{NodeListOf.d.ts → NodeListOfImp.d.ts} +3 -4
  445. package/dist/types/node/collection/NodeListOfImp.d.ts.map +1 -0
  446. package/dist/types/node/collection/StylePropertyMapImpl.d.ts +20 -0
  447. package/dist/types/node/collection/StylePropertyMapImpl.d.ts.map +1 -0
  448. package/dist/types/node/collection/index.d.ts +3 -3
  449. package/dist/types/node/collection/index.d.ts.map +1 -1
  450. package/dist/types/node/elements/Element.d.ts +0 -687
  451. package/dist/types/node/elements/Element.d.ts.map +1 -1
  452. package/dist/types/node/elements/ElementBase.d.ts +98 -74
  453. package/dist/types/node/elements/ElementBase.d.ts.map +1 -1
  454. package/dist/types/node/elements/HTMLAnchorElement.d.ts +2 -2
  455. package/dist/types/node/elements/HTMLAnchorElement.d.ts.map +1 -1
  456. package/dist/types/node/elements/HTMLAreaElement.d.ts +2 -3
  457. package/dist/types/node/elements/HTMLAreaElement.d.ts.map +1 -1
  458. package/dist/types/node/elements/HTMLAudioElement.d.ts +8 -0
  459. package/dist/types/node/elements/HTMLAudioElement.d.ts.map +1 -0
  460. package/dist/types/node/elements/HTMLBaseElement.d.ts +2 -2
  461. package/dist/types/node/elements/HTMLBaseElement.d.ts.map +1 -1
  462. package/dist/types/node/elements/HTMLBodyElement.d.ts +2 -2
  463. package/dist/types/node/elements/HTMLBodyElement.d.ts.map +1 -1
  464. package/dist/types/node/elements/HTMLButtonElement.d.ts +3 -3
  465. package/dist/types/node/elements/HTMLButtonElement.d.ts.map +1 -1
  466. package/dist/types/node/elements/HTMLCanvasElement.d.ts +2 -2
  467. package/dist/types/node/elements/HTMLCanvasElement.d.ts.map +1 -1
  468. package/dist/types/node/elements/HTMLCaptionElement.d.ts +2 -2
  469. package/dist/types/node/elements/HTMLCaptionElement.d.ts.map +1 -1
  470. package/dist/types/node/elements/HTMLDListElement.d.ts +5 -0
  471. package/dist/types/node/elements/HTMLDListElement.d.ts.map +1 -0
  472. package/dist/types/node/elements/HTMLDataElement.d.ts +5 -0
  473. package/dist/types/node/elements/HTMLDataElement.d.ts.map +1 -0
  474. package/dist/types/node/elements/HTMLDataListElement.d.ts +5 -0
  475. package/dist/types/node/elements/HTMLDataListElement.d.ts.map +1 -0
  476. package/dist/types/node/elements/HTMLDetailsElement.d.ts +5 -0
  477. package/dist/types/node/elements/HTMLDetailsElement.d.ts.map +1 -0
  478. package/dist/types/node/elements/HTMLDialogElement.d.ts +5 -0
  479. package/dist/types/node/elements/HTMLDialogElement.d.ts.map +1 -0
  480. package/dist/types/node/elements/HTMLDivElement.d.ts +2 -2
  481. package/dist/types/node/elements/HTMLDivElement.d.ts.map +1 -1
  482. package/dist/types/node/elements/HTMLElement.d.ts +3 -119
  483. package/dist/types/node/elements/HTMLElement.d.ts.map +1 -1
  484. package/dist/types/node/elements/HTMLElementBase.d.ts +126 -5
  485. package/dist/types/node/elements/HTMLElementBase.d.ts.map +1 -1
  486. package/dist/types/node/elements/HTMLEmbedElement.d.ts +2 -3
  487. package/dist/types/node/elements/HTMLEmbedElement.d.ts.map +1 -1
  488. package/dist/types/node/elements/HTMLFieldSetElement.d.ts +5 -0
  489. package/dist/types/node/elements/HTMLFieldSetElement.d.ts.map +1 -0
  490. package/dist/types/node/elements/HTMLFormElement.d.ts +2 -2
  491. package/dist/types/node/elements/HTMLFormElement.d.ts.map +1 -1
  492. package/dist/types/node/elements/HTMLH1Element.d.ts +2 -2
  493. package/dist/types/node/elements/HTMLH1Element.d.ts.map +1 -1
  494. package/dist/types/node/elements/HTMLHRElement.d.ts +5 -0
  495. package/dist/types/node/elements/HTMLHRElement.d.ts.map +1 -0
  496. package/dist/types/node/elements/HTMLHeadElement.d.ts +2 -2
  497. package/dist/types/node/elements/HTMLHeadElement.d.ts.map +1 -1
  498. package/dist/types/node/elements/HTMLHtmlElement.d.ts +2 -2
  499. package/dist/types/node/elements/HTMLHtmlElement.d.ts.map +1 -1
  500. package/dist/types/node/elements/HTMLIFrameElement.d.ts +5 -0
  501. package/dist/types/node/elements/HTMLIFrameElement.d.ts.map +1 -0
  502. package/dist/types/node/elements/HTMLImgElement.d.ts +2 -2
  503. package/dist/types/node/elements/HTMLImgElement.d.ts.map +1 -1
  504. package/dist/types/node/elements/HTMLInputElement.d.ts +2 -2
  505. package/dist/types/node/elements/HTMLInputElement.d.ts.map +1 -1
  506. package/dist/types/node/elements/HTMLLIElement.d.ts +2 -2
  507. package/dist/types/node/elements/HTMLLIElement.d.ts.map +1 -1
  508. package/dist/types/node/elements/HTMLLabelElement.d.ts +5 -0
  509. package/dist/types/node/elements/HTMLLabelElement.d.ts.map +1 -0
  510. package/dist/types/node/elements/HTMLLegendElement.d.ts +5 -0
  511. package/dist/types/node/elements/HTMLLegendElement.d.ts.map +1 -0
  512. package/dist/types/node/elements/HTMLLinkElement.d.ts +2 -2
  513. package/dist/types/node/elements/HTMLLinkElement.d.ts.map +1 -1
  514. package/dist/types/node/elements/HTMLMapElement.d.ts +5 -0
  515. package/dist/types/node/elements/HTMLMapElement.d.ts.map +1 -0
  516. package/dist/types/node/elements/HTMLMetaElement.d.ts +2 -2
  517. package/dist/types/node/elements/HTMLMetaElement.d.ts.map +1 -1
  518. package/dist/types/node/elements/HTMLMeterElement.d.ts +5 -0
  519. package/dist/types/node/elements/HTMLMeterElement.d.ts.map +1 -0
  520. package/dist/types/node/elements/HTMLModElement.d.ts +5 -0
  521. package/dist/types/node/elements/HTMLModElement.d.ts.map +1 -0
  522. package/dist/types/node/elements/HTMLOListElement.d.ts +2 -2
  523. package/dist/types/node/elements/HTMLOListElement.d.ts.map +1 -1
  524. package/dist/types/node/elements/HTMLObjectElement.d.ts +5 -0
  525. package/dist/types/node/elements/HTMLObjectElement.d.ts.map +1 -0
  526. package/dist/types/node/elements/HTMLOptGroupElement.d.ts +5 -0
  527. package/dist/types/node/elements/HTMLOptGroupElement.d.ts.map +1 -0
  528. package/dist/types/node/elements/HTMLOptionElement.d.ts +5 -0
  529. package/dist/types/node/elements/HTMLOptionElement.d.ts.map +1 -0
  530. package/dist/types/node/elements/HTMLOutputElement.d.ts +5 -0
  531. package/dist/types/node/elements/HTMLOutputElement.d.ts.map +1 -0
  532. package/dist/types/node/elements/HTMLPElement.d.ts +2 -2
  533. package/dist/types/node/elements/HTMLPElement.d.ts.map +1 -1
  534. package/dist/types/node/elements/HTMLParamElement.d.ts +5 -0
  535. package/dist/types/node/elements/HTMLParamElement.d.ts.map +1 -0
  536. package/dist/types/node/elements/HTMLPictureElement.d.ts +5 -0
  537. package/dist/types/node/elements/HTMLPictureElement.d.ts.map +1 -0
  538. package/dist/types/node/elements/HTMLPreElement.d.ts +5 -0
  539. package/dist/types/node/elements/HTMLPreElement.d.ts.map +1 -0
  540. package/dist/types/node/elements/HTMLProgressElement.d.ts +5 -0
  541. package/dist/types/node/elements/HTMLProgressElement.d.ts.map +1 -0
  542. package/dist/types/node/elements/HTMLQuoteElement.d.ts +5 -0
  543. package/dist/types/node/elements/HTMLQuoteElement.d.ts.map +1 -0
  544. package/dist/types/node/elements/HTMLScriptElement.d.ts +2 -2
  545. package/dist/types/node/elements/HTMLScriptElement.d.ts.map +1 -1
  546. package/dist/types/node/elements/HTMLSelectElement.d.ts +5 -0
  547. package/dist/types/node/elements/HTMLSelectElement.d.ts.map +1 -0
  548. package/dist/types/node/elements/HTMLSlotElement.d.ts +5 -0
  549. package/dist/types/node/elements/HTMLSlotElement.d.ts.map +1 -0
  550. package/dist/types/node/elements/HTMLSourceElement.d.ts +5 -0
  551. package/dist/types/node/elements/HTMLSourceElement.d.ts.map +1 -0
  552. package/dist/types/node/elements/HTMLSpanElement.d.ts +2 -2
  553. package/dist/types/node/elements/HTMLSpanElement.d.ts.map +1 -1
  554. package/dist/types/node/elements/HTMLStyleElement.d.ts +2 -2
  555. package/dist/types/node/elements/HTMLStyleElement.d.ts.map +1 -1
  556. package/dist/types/node/elements/HTMLTableElement.d.ts +5 -6
  557. package/dist/types/node/elements/HTMLTableElement.d.ts.map +1 -1
  558. package/dist/types/node/elements/HTMLTbodyElement.d.ts +3 -4
  559. package/dist/types/node/elements/HTMLTbodyElement.d.ts.map +1 -1
  560. package/dist/types/node/elements/HTMLTdElement.d.ts +2 -2
  561. package/dist/types/node/elements/HTMLTdElement.d.ts.map +1 -1
  562. package/dist/types/node/elements/HTMLTemplateElement.d.ts +2 -3
  563. package/dist/types/node/elements/HTMLTemplateElement.d.ts.map +1 -1
  564. package/dist/types/node/elements/HTMLTextAreaElement.d.ts +5 -0
  565. package/dist/types/node/elements/HTMLTextAreaElement.d.ts.map +1 -0
  566. package/dist/types/node/elements/HTMLTfootElement.d.ts +4 -5
  567. package/dist/types/node/elements/HTMLTfootElement.d.ts.map +1 -1
  568. package/dist/types/node/elements/HTMLThElement.d.ts +2 -2
  569. package/dist/types/node/elements/HTMLThElement.d.ts.map +1 -1
  570. package/dist/types/node/elements/HTMLTheadElement.d.ts +4 -5
  571. package/dist/types/node/elements/HTMLTheadElement.d.ts.map +1 -1
  572. package/dist/types/node/elements/HTMLTimeElement.d.ts +5 -0
  573. package/dist/types/node/elements/HTMLTimeElement.d.ts.map +1 -0
  574. package/dist/types/node/elements/HTMLTitleElement.d.ts +2 -2
  575. package/dist/types/node/elements/HTMLTitleElement.d.ts.map +1 -1
  576. package/dist/types/node/elements/HTMLTrElement.d.ts +4 -5
  577. package/dist/types/node/elements/HTMLTrElement.d.ts.map +1 -1
  578. package/dist/types/node/elements/HTMLTrackElement.d.ts +5 -0
  579. package/dist/types/node/elements/HTMLTrackElement.d.ts.map +1 -0
  580. package/dist/types/node/elements/HTMLUListElement.d.ts +2 -2
  581. package/dist/types/node/elements/HTMLUListElement.d.ts.map +1 -1
  582. package/dist/types/node/elements/HTMLVideoElement.d.ts +8 -0
  583. package/dist/types/node/elements/HTMLVideoElement.d.ts.map +1 -0
  584. package/dist/types/node/elements/MathMLElement.d.ts +2 -2
  585. package/dist/types/node/elements/MathMLElement.d.ts.map +1 -1
  586. package/dist/types/node/elements/SVGElement.d.ts +2 -2
  587. package/dist/types/node/elements/SVGElement.d.ts.map +1 -1
  588. package/dist/types/node/elements/index.d.ts +108 -55
  589. package/dist/types/node/elements/index.d.ts.map +1 -1
  590. package/dist/types/node/index.d.ts +4 -7
  591. package/dist/types/node/index.d.ts.map +1 -1
  592. package/dist/types/utils/CSSSelector.d.ts +0 -1
  593. package/dist/types/utils/CSSSelector.d.ts.map +1 -1
  594. package/dist/types/window/CustomElementRegistryImp.d.ts +19 -0
  595. package/dist/types/window/CustomElementRegistryImp.d.ts.map +1 -0
  596. package/dist/types/window/Window.d.ts +0 -619
  597. package/dist/types/window/Window.d.ts.map +1 -1
  598. package/dist/types/window/WindowBase.d.ts +253 -286
  599. package/dist/types/window/WindowBase.d.ts.map +1 -1
  600. package/dist/types/window/index.d.ts +0 -1
  601. package/dist/types/window/index.d.ts.map +1 -1
  602. package/dist/umd-bundle/dooboostore-dom-parser.umd.js +3482 -3563
  603. package/dist/umd-bundle/dooboostore-dom-parser.umd.js.map +4 -4
  604. package/package.json +6 -1
  605. package/src/DomParser.ts +29 -20
  606. package/src/bundle-entry.ts +2 -0
  607. package/src/factory/ElementFactory.ts +87 -54
  608. package/src/index.ts +22 -10
  609. package/src/node/CharacterData.ts +0 -2
  610. package/src/node/ChildNode.ts +42 -42
  611. package/src/node/ChildNodeBase.ts +60 -39
  612. package/src/node/Comment.ts +60 -60
  613. package/src/node/Document.ts +129 -882
  614. package/src/node/DocumentBase.ts +371 -467
  615. package/src/node/DocumentFragment.ts +38 -44
  616. package/src/node/DocumentFragmentBase.ts +4 -9
  617. package/src/node/Node.ts +231 -224
  618. package/src/node/NodeBase.ts +469 -443
  619. package/src/node/NodeFilter.ts +50 -0
  620. package/src/node/NodeIterator.ts +117 -172
  621. package/src/node/ParentNode.ts +93 -93
  622. package/src/node/ParentNodeBase.ts +7 -10
  623. package/src/node/ShadowRootBase.ts +87 -0
  624. package/src/node/Text.ts +30 -30
  625. package/src/node/TextBase.ts +92 -94
  626. package/src/node/TreeWalker.ts +280 -0
  627. package/src/node/collection/{HTMLCollection.ts → HTMLCollectionImp.ts} +3 -2
  628. package/src/node/collection/HTMLCollectionOfImp.ts +12 -0
  629. package/src/node/collection/NodeList.ts +1 -1
  630. package/src/node/collection/{NodeListOf.ts → NodeListOfImp.ts} +3 -3
  631. package/src/node/collection/StylePropertyMapImpl.ts +60 -0
  632. package/src/node/collection/index.ts +3 -3
  633. package/src/node/elements/Element.ts +212 -772
  634. package/src/node/elements/ElementBase.ts +840 -1204
  635. package/src/node/elements/HTMLAnchorElement.ts +2 -1
  636. package/src/node/elements/HTMLAreaElement.ts +2 -2
  637. package/src/node/elements/HTMLAudioElement.ts +11 -0
  638. package/src/node/elements/HTMLBaseElement.ts +2 -1
  639. package/src/node/elements/HTMLBodyElement.ts +2 -1
  640. package/src/node/elements/HTMLButtonElement.ts +65 -64
  641. package/src/node/elements/HTMLCanvasElement.ts +2 -1
  642. package/src/node/elements/HTMLCaptionElement.ts +2 -1
  643. package/src/node/elements/HTMLDListElement.ts +8 -0
  644. package/src/node/elements/HTMLDataElement.ts +7 -0
  645. package/src/node/elements/HTMLDataListElement.ts +8 -0
  646. package/src/node/elements/HTMLDetailsElement.ts +8 -0
  647. package/src/node/elements/HTMLDialogElement.ts +8 -0
  648. package/src/node/elements/HTMLDivElement.ts +2 -1
  649. package/src/node/elements/HTMLElement.ts +6 -137
  650. package/src/node/elements/HTMLElementBase.ts +472 -355
  651. package/src/node/elements/HTMLEmbedElement.ts +2 -2
  652. package/src/node/elements/HTMLFieldSetElement.ts +8 -0
  653. package/src/node/elements/HTMLFormElement.ts +2 -1
  654. package/src/node/elements/HTMLH1Element.ts +2 -1
  655. package/src/node/elements/HTMLHRElement.ts +8 -0
  656. package/src/node/elements/HTMLHeadElement.ts +2 -1
  657. package/src/node/elements/HTMLHtmlElement.ts +2 -1
  658. package/src/node/elements/HTMLIFrameElement.ts +8 -0
  659. package/src/node/elements/HTMLImgElement.ts +2 -1
  660. package/src/node/elements/HTMLInputElement.ts +2 -1
  661. package/src/node/elements/HTMLLIElement.ts +2 -1
  662. package/src/node/elements/HTMLLabelElement.ts +3 -0
  663. package/src/node/elements/HTMLLegendElement.ts +3 -0
  664. package/src/node/elements/HTMLLinkElement.ts +2 -1
  665. package/src/node/elements/HTMLMapElement.ts +3 -0
  666. package/src/node/elements/HTMLMetaElement.ts +2 -1
  667. package/src/node/elements/HTMLMeterElement.ts +3 -0
  668. package/src/node/elements/HTMLModElement.ts +3 -0
  669. package/src/node/elements/HTMLOListElement.ts +2 -1
  670. package/src/node/elements/HTMLObjectElement.ts +3 -0
  671. package/src/node/elements/HTMLOptGroupElement.ts +3 -0
  672. package/src/node/elements/HTMLOptionElement.ts +3 -0
  673. package/src/node/elements/HTMLOutputElement.ts +3 -0
  674. package/src/node/elements/HTMLPElement.ts +2 -1
  675. package/src/node/elements/HTMLParamElement.ts +3 -0
  676. package/src/node/elements/HTMLPictureElement.ts +3 -0
  677. package/src/node/elements/HTMLPreElement.ts +3 -0
  678. package/src/node/elements/HTMLProgressElement.ts +3 -0
  679. package/src/node/elements/HTMLQuoteElement.ts +3 -0
  680. package/src/node/elements/HTMLScriptElement.ts +2 -1
  681. package/src/node/elements/HTMLSelectElement.ts +3 -0
  682. package/src/node/elements/HTMLSlotElement.ts +3 -0
  683. package/src/node/elements/HTMLSourceElement.ts +3 -0
  684. package/src/node/elements/HTMLSpanElement.ts +2 -1
  685. package/src/node/elements/HTMLStyleElement.ts +2 -1
  686. package/src/node/elements/HTMLTableElement.ts +5 -8
  687. package/src/node/elements/HTMLTbodyElement.ts +4 -4
  688. package/src/node/elements/HTMLTdElement.ts +3 -2
  689. package/src/node/elements/HTMLTemplateElement.ts +5 -7
  690. package/src/node/elements/HTMLTextAreaElement.ts +3 -0
  691. package/src/node/elements/HTMLTfootElement.ts +4 -4
  692. package/src/node/elements/HTMLThElement.ts +2 -1
  693. package/src/node/elements/HTMLTheadElement.ts +5 -5
  694. package/src/node/elements/HTMLTimeElement.ts +3 -0
  695. package/src/node/elements/HTMLTitleElement.ts +2 -1
  696. package/src/node/elements/HTMLTrElement.ts +7 -5
  697. package/src/node/elements/HTMLTrackElement.ts +3 -0
  698. package/src/node/elements/HTMLUListElement.ts +2 -1
  699. package/src/node/elements/HTMLVideoElement.ts +11 -0
  700. package/src/node/elements/MathMLElement.ts +2 -1
  701. package/src/node/elements/SVGElement.ts +2 -1
  702. package/src/node/elements/index.ts +231 -153
  703. package/src/node/index.ts +8 -8
  704. package/src/utils/CSSSelector.ts +0 -1
  705. package/src/window/CustomElementRegistryImp.ts +138 -0
  706. package/src/window/Window.ts +716 -715
  707. package/src/window/WindowBase.ts +482 -847
  708. package/src/window/index.ts +0 -1
  709. package/tsconfig.json +1 -0
  710. package/dist/cjs/node/collection/HTMLCollection.js.map +0 -7
  711. package/dist/cjs/node/collection/HTMLCollectionOf.js.map +0 -7
  712. package/dist/cjs/node/collection/NodeListOf.js.map +0 -7
  713. package/dist/cjs/node/elements/HTMLGenericElement.js.map +0 -7
  714. package/dist/esm/node/collection/HTMLCollection.js.map +0 -7
  715. package/dist/esm/node/collection/HTMLCollectionOf.js +0 -17
  716. package/dist/esm/node/collection/HTMLCollectionOf.js.map +0 -7
  717. package/dist/esm/node/collection/NodeListOf.js.map +0 -7
  718. package/dist/esm/node/elements/HTMLGenericElement.js +0 -13
  719. package/dist/esm/node/elements/HTMLGenericElement.js.map +0 -7
  720. package/dist/types/node/collection/HTMLCollection.d.ts.map +0 -1
  721. package/dist/types/node/collection/HTMLCollectionOf.d.ts +0 -14
  722. package/dist/types/node/collection/HTMLCollectionOf.d.ts.map +0 -1
  723. package/dist/types/node/collection/NodeListOf.d.ts.map +0 -1
  724. package/dist/types/node/elements/HTMLGenericElement.d.ts +0 -6
  725. package/dist/types/node/elements/HTMLGenericElement.d.ts.map +0 -1
  726. package/src/node/collection/HTMLCollectionOf.ts +0 -26
  727. package/src/node/elements/HTMLGenericElement.ts +0 -13
@@ -1,384 +1,501 @@
1
- import { ElementBase } from './ElementBase';
2
- import { HTMLElement, FocusOptions, CSSStyleDeclaration, DOMStringMap, ElementCSSInlineStyle, StylePropertyMap } from './HTMLElement';
3
- import { Text } from '../Text';
4
- import { ElementFactory } from '../../factory';
1
+ import {ElementBase} from './ElementBase';
2
+ import {StylePropertyMapImpl} from "../collection/StylePropertyMapImpl";
3
+
4
+ // import { HTMLElement, FocusOptions, CSSStyleDeclaration, DOMStringMap, ElementCSSInlineStyle, StylePropertyMap } from './HTMLElement';
5
5
 
6
6
  /**
7
7
  * Base implementation for all HTML elements
8
8
  */
9
+ // @ts-ignore
9
10
  export abstract class HTMLElementBase extends ElementBase implements HTMLElement, ElementCSSInlineStyle {
10
- private _title: string = '';
11
- private _lang: string = '';
12
- private _dir: string = '';
13
- private _hidden: boolean = false;
14
- private _tabIndex: number = -1;
15
- private _accessKey: string = '';
16
- private _contentEditable: string = 'inherit';
17
- private _innerText: string = '';
18
- private _outerText: string = '';
19
-
20
- constructor(tagName: string, ownerDocument?: any) {
21
- super(tagName, ownerDocument);
22
- }
23
-
24
- // HTMLElement interface implementation
25
- get title(): string {
26
- return this._title;
27
- }
28
-
29
- set title(value: string) {
11
+ [key: string]: any;
12
+ private _title: string = '';
13
+ private _lang: string = '';
14
+ private _dir: string = '';
15
+ private _hidden: boolean = false;
16
+ private _tabIndex: number = -1;
17
+ private _accessKey: string = '';
18
+ private _contentEditable: string = 'inherit';
19
+ private _innerText: string = '';
20
+ private _outerText: string = '';
21
+
22
+ constructor(tagName: string = 'DIV', ownerDocument?: any) {
23
+ const ctor = new.target as any;
24
+ const resolvedTagName = tagName || ctor?.__domParserExtendsTagName || ctor?.__domParserTagName || 'DIV';
25
+ super(resolvedTagName, ownerDocument);
26
+ }
27
+ // constructor(tagName?: string , ownerDocument?: any) {
28
+ // super(tagName, ownerDocument);
29
+ // console.log('vvvvvvvvv', tagName)
30
+ // }
31
+
32
+ accessKeyLabel: string;
33
+ autocapitalize: string;
34
+ autocorrect: boolean;
35
+ draggable: boolean;
36
+ inert: boolean;
37
+ offsetHeight: number;
38
+ offsetLeft: number;
39
+ offsetParent: Element;
40
+ offsetTop: number;
41
+ offsetWidth: number;
42
+ popover: string;
43
+ spellcheck: boolean;
44
+ translate: boolean;
45
+ writingSuggestions: string;
46
+ attachInternals(): ElementInternals {
47
+ throw new Error("Method not implemented.");
48
+ }
49
+ hidePopover(): void {
50
+ throw new Error("Method not implemented.");
51
+ }
52
+ showPopover(): void {
53
+ throw new Error("Method not implemented.");
54
+ }
55
+ togglePopover(options?: boolean): boolean {
56
+ throw new Error("Method not implemented.");
57
+ }
58
+ enterKeyHint: string;
59
+ inputMode: string;
60
+ onabort: (this: GlobalEventHandlers, ev: UIEvent) => any;
61
+ onanimationcancel: (this: GlobalEventHandlers, ev: AnimationEvent) => any;
62
+ onanimationend: (this: GlobalEventHandlers, ev: AnimationEvent) => any;
63
+ onanimationiteration: (this: GlobalEventHandlers, ev: AnimationEvent) => any;
64
+ onanimationstart: (this: GlobalEventHandlers, ev: AnimationEvent) => any;
65
+ onauxclick: (this: GlobalEventHandlers, ev: PointerEvent) => any;
66
+ onbeforeinput: (this: GlobalEventHandlers, ev: InputEvent) => any;
67
+ onbeforematch: (this: GlobalEventHandlers, ev: Event) => any;
68
+ onbeforetoggle: (this: GlobalEventHandlers, ev: ToggleEvent) => any;
69
+ onblur: (this: GlobalEventHandlers, ev: FocusEvent) => any;
70
+ oncancel: (this: GlobalEventHandlers, ev: Event) => any;
71
+ oncanplay: (this: GlobalEventHandlers, ev: Event) => any;
72
+ oncanplaythrough: (this: GlobalEventHandlers, ev: Event) => any;
73
+ onchange: (this: GlobalEventHandlers, ev: Event) => any;
74
+ onclick: (this: GlobalEventHandlers, ev: PointerEvent) => any;
75
+ onclose: (this: GlobalEventHandlers, ev: Event) => any;
76
+ oncontextlost: (this: GlobalEventHandlers, ev: Event) => any;
77
+ oncontextmenu: (this: GlobalEventHandlers, ev: PointerEvent) => any;
78
+ oncontextrestored: (this: GlobalEventHandlers, ev: Event) => any;
79
+ oncopy: (this: GlobalEventHandlers, ev: ClipboardEvent) => any;
80
+ oncuechange: (this: GlobalEventHandlers, ev: Event) => any;
81
+ oncut: (this: GlobalEventHandlers, ev: ClipboardEvent) => any;
82
+ ondblclick: (this: GlobalEventHandlers, ev: MouseEvent) => any;
83
+ ondrag: (this: GlobalEventHandlers, ev: DragEvent) => any;
84
+ ondragend: (this: GlobalEventHandlers, ev: DragEvent) => any;
85
+ ondragenter: (this: GlobalEventHandlers, ev: DragEvent) => any;
86
+ ondragleave: (this: GlobalEventHandlers, ev: DragEvent) => any;
87
+ ondragover: (this: GlobalEventHandlers, ev: DragEvent) => any;
88
+ ondragstart: (this: GlobalEventHandlers, ev: DragEvent) => any;
89
+ ondrop: (this: GlobalEventHandlers, ev: DragEvent) => any;
90
+ ondurationchange: (this: GlobalEventHandlers, ev: Event) => any;
91
+ onemptied: (this: GlobalEventHandlers, ev: Event) => any;
92
+ onended: (this: GlobalEventHandlers, ev: Event) => any;
93
+ onerror: OnErrorEventHandlerNonNull;
94
+ onfocus: (this: GlobalEventHandlers, ev: FocusEvent) => any;
95
+ onformdata: (this: GlobalEventHandlers, ev: FormDataEvent) => any;
96
+ ongotpointercapture: (this: GlobalEventHandlers, ev: PointerEvent) => any;
97
+ oninput: (this: GlobalEventHandlers, ev: Event) => any;
98
+ oninvalid: (this: GlobalEventHandlers, ev: Event) => any;
99
+ onkeydown: (this: GlobalEventHandlers, ev: KeyboardEvent) => any;
100
+ onkeypress: (this: GlobalEventHandlers, ev: KeyboardEvent) => any;
101
+ onkeyup: (this: GlobalEventHandlers, ev: KeyboardEvent) => any;
102
+ onload: (this: GlobalEventHandlers, ev: Event) => any;
103
+ onloadeddata: (this: GlobalEventHandlers, ev: Event) => any;
104
+ onloadedmetadata: (this: GlobalEventHandlers, ev: Event) => any;
105
+ onloadstart: (this: GlobalEventHandlers, ev: Event) => any;
106
+ onlostpointercapture: (this: GlobalEventHandlers, ev: PointerEvent) => any;
107
+ onmousedown: (this: GlobalEventHandlers, ev: MouseEvent) => any;
108
+ onmouseenter: (this: GlobalEventHandlers, ev: MouseEvent) => any;
109
+ onmouseleave: (this: GlobalEventHandlers, ev: MouseEvent) => any;
110
+ onmousemove: (this: GlobalEventHandlers, ev: MouseEvent) => any;
111
+ onmouseout: (this: GlobalEventHandlers, ev: MouseEvent) => any;
112
+ onmouseover: (this: GlobalEventHandlers, ev: MouseEvent) => any;
113
+ onmouseup: (this: GlobalEventHandlers, ev: MouseEvent) => any;
114
+ onpaste: (this: GlobalEventHandlers, ev: ClipboardEvent) => any;
115
+ onpause: (this: GlobalEventHandlers, ev: Event) => any;
116
+ onplay: (this: GlobalEventHandlers, ev: Event) => any;
117
+ onplaying: (this: GlobalEventHandlers, ev: Event) => any;
118
+ onpointercancel: (this: GlobalEventHandlers, ev: PointerEvent) => any;
119
+ onpointerdown: (this: GlobalEventHandlers, ev: PointerEvent) => any;
120
+ onpointerenter: (this: GlobalEventHandlers, ev: PointerEvent) => any;
121
+ onpointerleave: (this: GlobalEventHandlers, ev: PointerEvent) => any;
122
+ onpointermove: (this: GlobalEventHandlers, ev: PointerEvent) => any;
123
+ onpointerout: (this: GlobalEventHandlers, ev: PointerEvent) => any;
124
+ onpointerover: (this: GlobalEventHandlers, ev: PointerEvent) => any;
125
+ onpointerrawupdate: (this: GlobalEventHandlers, ev: Event) => any;
126
+ onpointerup: (this: GlobalEventHandlers, ev: PointerEvent) => any;
127
+ onprogress: (this: GlobalEventHandlers, ev: ProgressEvent) => any;
128
+ onratechange: (this: GlobalEventHandlers, ev: Event) => any;
129
+ onreset: (this: GlobalEventHandlers, ev: Event) => any;
130
+ onresize: (this: GlobalEventHandlers, ev: UIEvent) => any;
131
+ onscroll: (this: GlobalEventHandlers, ev: Event) => any;
132
+ onscrollend: (this: GlobalEventHandlers, ev: Event) => any;
133
+ onsecuritypolicyviolation: (this: GlobalEventHandlers, ev: SecurityPolicyViolationEvent) => any;
134
+ onseeked: (this: GlobalEventHandlers, ev: Event) => any;
135
+ onseeking: (this: GlobalEventHandlers, ev: Event) => any;
136
+ onselect: (this: GlobalEventHandlers, ev: Event) => any;
137
+ onselectionchange: (this: GlobalEventHandlers, ev: Event) => any;
138
+ onselectstart: (this: GlobalEventHandlers, ev: Event) => any;
139
+ onslotchange: (this: GlobalEventHandlers, ev: Event) => any;
140
+ onstalled: (this: GlobalEventHandlers, ev: Event) => any;
141
+ onsubmit: (this: GlobalEventHandlers, ev: SubmitEvent) => any;
142
+ onsuspend: (this: GlobalEventHandlers, ev: Event) => any;
143
+ ontimeupdate: (this: GlobalEventHandlers, ev: Event) => any;
144
+ ontoggle: (this: GlobalEventHandlers, ev: ToggleEvent) => any;
145
+ ontouchcancel?: (this: GlobalEventHandlers, ev: TouchEvent) => any;
146
+ ontouchend?: (this: GlobalEventHandlers, ev: TouchEvent) => any;
147
+ ontouchmove?: (this: GlobalEventHandlers, ev: TouchEvent) => any;
148
+ ontouchstart?: (this: GlobalEventHandlers, ev: TouchEvent) => any;
149
+ ontransitioncancel: (this: GlobalEventHandlers, ev: TransitionEvent) => any;
150
+ ontransitionend: (this: GlobalEventHandlers, ev: TransitionEvent) => any;
151
+ ontransitionrun: (this: GlobalEventHandlers, ev: TransitionEvent) => any;
152
+ ontransitionstart: (this: GlobalEventHandlers, ev: TransitionEvent) => any;
153
+ onvolumechange: (this: GlobalEventHandlers, ev: Event) => any;
154
+ onwaiting: (this: GlobalEventHandlers, ev: Event) => any;
155
+ onwebkitanimationend: (this: GlobalEventHandlers, ev: Event) => any;
156
+ onwebkitanimationiteration: (this: GlobalEventHandlers, ev: Event) => any;
157
+ onwebkitanimationstart: (this: GlobalEventHandlers, ev: Event) => any;
158
+ onwebkittransitionend: (this: GlobalEventHandlers, ev: Event) => any;
159
+ onwheel: (this: GlobalEventHandlers, ev: WheelEvent) => any;
160
+ autofocus: boolean;
161
+
162
+ // HTMLElement interface implementation
163
+ get title(): string {
164
+ return this._title;
165
+ }
166
+
167
+ set title(value: string) {
168
+ this._title = value;
169
+ this.setAttribute('title', value);
170
+ }
171
+
172
+ get lang(): string {
173
+ return this._lang;
174
+ }
175
+
176
+ set lang(value: string) {
177
+ this._lang = value;
178
+ this.setAttribute('lang', value);
179
+ }
180
+
181
+ get dir(): string {
182
+ return this._dir;
183
+ }
184
+
185
+ set dir(value: string) {
186
+ this._dir = value;
187
+ this.setAttribute('dir', value);
188
+ }
189
+
190
+ get hidden(): boolean {
191
+ return this._hidden;
192
+ }
193
+
194
+ set hidden(value: boolean) {
195
+ this._hidden = value;
196
+ if (value) {
197
+ this.setAttribute('hidden', '');
198
+ } else {
199
+ this.removeAttribute('hidden');
200
+ }
201
+ }
202
+
203
+ get tabIndex(): number {
204
+ return this._tabIndex;
205
+ }
206
+
207
+ set tabIndex(value: number) {
208
+ this._tabIndex = value;
209
+ this.setAttribute('tabindex', value.toString());
210
+ }
211
+
212
+ get accessKey(): string {
213
+ return this._accessKey;
214
+ }
215
+
216
+ set accessKey(value: string) {
217
+ this._accessKey = value;
218
+ this.setAttribute('accesskey', value);
219
+ }
220
+
221
+ get contentEditable(): string {
222
+ return this._contentEditable;
223
+ }
224
+
225
+ set contentEditable(value: string) {
226
+ this._contentEditable = value;
227
+ this.setAttribute('contenteditable', value);
228
+ }
229
+
230
+ get isContentEditable(): boolean {
231
+ return this._contentEditable === 'true';
232
+ }
233
+
234
+ get innerText(): string {
235
+ return this._innerText || this.textContent || '';
236
+ }
237
+
238
+ set innerText(value: string) {
239
+ this._innerText = value;
240
+ this.textContent = value;
241
+ }
242
+
243
+ get outerText(): string {
244
+ return this._outerText || this.innerText;
245
+ }
246
+
247
+ set outerText(value: string) {
248
+ this._outerText = value;
249
+ if (this.parentNode) {
250
+ const { TextBase } = require('../TextBase');
251
+ const textNode = new TextBase(value, this._ownerDocument);
252
+ this.parentNode.replaceChild(textNode, this);
253
+ }
254
+ }
255
+
256
+ // innerHTML functionality is inherited from ElementBase
257
+
258
+ // HTMLElement methods
259
+ click(): void {
260
+ // Simulate click event - in a real implementation, this would dispatch events
261
+ console.log(`Clicked on ${this.tagName} element`);
262
+ }
263
+
264
+ focus(options?: FocusOptions): void {}
265
+
266
+ blur(): void {
267
+ // Remove focus state
268
+ this.removeAttribute('data-focused');
269
+ console.log(`Blurred ${this.tagName} element`);
270
+ }
271
+
272
+ // Override setAttribute to sync with properties
273
+ setAttribute(qualifiedName: string, value: string): void {
274
+ super.setAttribute(qualifiedName, value);
275
+
276
+ // Sync with properties
277
+ const name = qualifiedName.toLowerCase();
278
+ switch (name) {
279
+ case 'title':
30
280
  this._title = value;
31
- this.setAttribute('title', value);
32
- }
33
-
34
- get lang(): string {
35
- return this._lang;
36
- }
37
-
38
- set lang(value: string) {
281
+ break;
282
+ case 'lang':
39
283
  this._lang = value;
40
- this.setAttribute('lang', value);
41
- }
42
-
43
- get dir(): string {
44
- return this._dir;
45
- }
46
-
47
- set dir(value: string) {
284
+ break;
285
+ case 'dir':
48
286
  this._dir = value;
49
- this.setAttribute('dir', value);
50
- }
51
-
52
- get hidden(): boolean {
53
- return this._hidden;
54
- }
55
-
56
- set hidden(value: boolean) {
57
- this._hidden = value;
58
- if (value) {
59
- this.setAttribute('hidden', '');
60
- } else {
61
- this.removeAttribute('hidden');
62
- }
63
- }
64
-
65
- get tabIndex(): number {
66
- return this._tabIndex;
67
- }
68
-
69
- set tabIndex(value: number) {
70
- this._tabIndex = value;
71
- this.setAttribute('tabindex', value.toString());
72
- }
73
-
74
- get accessKey(): string {
75
- return this._accessKey;
76
- }
77
-
78
- set accessKey(value: string) {
287
+ break;
288
+ case 'hidden':
289
+ this._hidden = true;
290
+ break;
291
+ case 'tabindex':
292
+ this._tabIndex = parseInt(value, 10) || -1;
293
+ break;
294
+ case 'accesskey':
79
295
  this._accessKey = value;
80
- this.setAttribute('accesskey', value);
81
- }
82
-
83
- get contentEditable(): string {
84
- return this._contentEditable;
85
- }
86
-
87
- set contentEditable(value: string) {
296
+ break;
297
+ case 'contenteditable':
88
298
  this._contentEditable = value;
89
- this.setAttribute('contenteditable', value);
90
- }
91
-
92
- get isContentEditable(): boolean {
93
- return this._contentEditable === 'true';
94
- }
95
-
96
- get innerText(): string {
97
- return this._innerText || this.textContent || '';
98
- }
99
-
100
- set innerText(value: string) {
101
- this._innerText = value;
102
- this.textContent = value;
103
- }
104
-
105
- get outerText(): string {
106
- return this._outerText || this.innerText;
107
- }
108
-
109
- set outerText(value: string) {
110
- this._outerText = value;
111
- if (this.parentNode) {
112
- const { TextBase } = require('../TextBase');
113
- const textNode = new TextBase(value, this._ownerDocument);
114
- this.parentNode.replaceChild(textNode, this);
299
+ break;
300
+ }
301
+ }
302
+
303
+ // Override removeAttribute to sync with properties
304
+ removeAttribute(qualifiedName: string): void {
305
+ super.removeAttribute(qualifiedName);
306
+
307
+ const name = qualifiedName.toLowerCase();
308
+ switch (name) {
309
+ case 'title':
310
+ this._title = '';
311
+ break;
312
+ case 'lang':
313
+ this._lang = '';
314
+ break;
315
+ case 'dir':
316
+ this._dir = '';
317
+ break;
318
+ case 'hidden':
319
+ this._hidden = false;
320
+ break;
321
+ case 'tabindex':
322
+ this._tabIndex = -1;
323
+ break;
324
+ case 'accesskey':
325
+ this._accessKey = '';
326
+ break;
327
+ case 'contenteditable':
328
+ this._contentEditable = 'inherit';
329
+ break;
330
+ }
331
+ }
332
+
333
+ // New implementations for style, dataset, nonce
334
+ private _style: CSSStyleDeclaration | null = null;
335
+ private _dataset: DOMStringMap | null = null;
336
+
337
+ get style(): any {
338
+ if (!this._style) {
339
+ this._style = new Proxy(new CSSStyleDeclarationImpl(this), {
340
+ get: (target, prop: string | symbol) => {
341
+ if (typeof prop === 'string' && !(prop in target)) {
342
+ // Convert camelCase to kebab-case for CSS properties
343
+ const cssProp = prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
344
+ return target.getPropertyValue(cssProp);
345
+ }
346
+ return (target as any)[prop];
347
+ },
348
+ set: (target, prop: string | symbol, value: any) => {
349
+ if (typeof prop === 'string' && !(prop in target)) {
350
+ // Convert camelCase to kebab-case for CSS properties
351
+ const cssProp = prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
352
+ target.setProperty(cssProp, String(value));
353
+ return true;
354
+ }
355
+ (target as any)[prop] = value;
356
+ return true;
115
357
  }
358
+ }) as unknown as CSSStyleDeclaration;
116
359
  }
360
+ return this._style;
361
+ }
117
362
 
118
- // innerHTML functionality is inherited from ElementBase
119
-
120
- // HTMLElement methods
121
- click(): void {
122
- // Simulate click event - in a real implementation, this would dispatch events
123
- console.log(`Clicked on ${this.tagName} element`);
124
- }
125
-
126
- focus(options?: FocusOptions): void {
127
- }
128
-
129
- blur(): void {
130
- // Remove focus state
131
- this.removeAttribute('data-focused');
132
- console.log(`Blurred ${this.tagName} element`);
363
+ set style(value: string | CSSStyleDeclaration) {
364
+ if (typeof value === 'string') {
365
+ (this.style as any).cssText = value;
133
366
  }
367
+ }
134
368
 
135
- // Override setAttribute to sync with properties
136
- setAttribute(qualifiedName: string, value: string): void {
137
- super.setAttribute(qualifiedName, value);
138
-
139
- // Sync with properties
140
- const name = qualifiedName.toLowerCase();
141
- switch (name) {
142
- case 'title':
143
- this._title = value;
144
- break;
145
- case 'lang':
146
- this._lang = value;
147
- break;
148
- case 'dir':
149
- this._dir = value;
150
- break;
151
- case 'hidden':
152
- this._hidden = true;
153
- break;
154
- case 'tabindex':
155
- this._tabIndex = parseInt(value, 10) || -1;
156
- break;
157
- case 'accesskey':
158
- this._accessKey = value;
159
- break;
160
- case 'contenteditable':
161
- this._contentEditable = value;
162
- break;
163
- }
164
- }
369
+ private _attributeStyleMap: StylePropertyMap | null = null;
165
370
 
166
- // Override removeAttribute to sync with properties
167
- removeAttribute(qualifiedName: string): void {
168
- super.removeAttribute(qualifiedName);
169
-
170
- const name = qualifiedName.toLowerCase();
171
- switch (name) {
172
- case 'title':
173
- this._title = '';
174
- break;
175
- case 'lang':
176
- this._lang = '';
177
- break;
178
- case 'dir':
179
- this._dir = '';
180
- break;
181
- case 'hidden':
182
- this._hidden = false;
183
- break;
184
- case 'tabindex':
185
- this._tabIndex = -1;
186
- break;
187
- case 'accesskey':
188
- this._accessKey = '';
189
- break;
190
- case 'contenteditable':
191
- this._contentEditable = 'inherit';
192
- break;
193
- }
371
+ get attributeStyleMap(): any {
372
+ if (!this._attributeStyleMap) {
373
+ this._attributeStyleMap = new StylePropertyMapImpl(this) as unknown as StylePropertyMap;
194
374
  }
375
+ return this._attributeStyleMap;
376
+ }
195
377
 
196
- // New implementations for style, dataset, nonce
197
- private _style: CSSStyleDeclaration | null = null;
198
- private _dataset: DOMStringMap | null = null;
199
-
200
- get style(): CSSStyleDeclaration {
201
- if (!this._style) {
202
- this._style = new Proxy(new CSSStyleDeclarationImpl(this), {
203
- get: (target, prop: string | symbol) => {
204
- if (typeof prop === 'string' && !(prop in target)) {
205
- // Convert camelCase to kebab-case for CSS properties
206
- const cssProp = prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
207
- return target.getPropertyValue(cssProp);
208
- }
209
- return (target as any)[prop];
210
- },
211
- set: (target, prop: string | symbol, value: any) => {
212
- if (typeof prop === 'string' && !(prop in target)) {
213
- // Convert camelCase to kebab-case for CSS properties
214
- const cssProp = prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
215
- target.setProperty(cssProp, String(value));
216
- return true;
217
- }
218
- (target as any)[prop] = value;
219
- return true;
220
- }
221
- }) as unknown as CSSStyleDeclaration;
222
- }
223
- return this._style;
224
- }
225
-
226
- set style(value: string | CSSStyleDeclaration) {
227
- if (typeof value === 'string') {
228
- this.style.cssText = value;
229
- }
230
- }
231
-
232
- private _attributeStyleMap: StylePropertyMap | null = null;
233
-
234
- get attributeStyleMap(): StylePropertyMap {
235
- if (!this._attributeStyleMap) {
236
- this._attributeStyleMap = new StylePropertyMapImpl(this);
237
- }
238
- return this._attributeStyleMap;
239
- }
240
-
241
- get dataset(): DOMStringMap {
242
- if (!this._dataset) {
243
- this._dataset = new Proxy({}, {
244
- get: (target, prop: string | symbol) => {
245
- if (typeof prop === 'string') {
246
- // Convert camelCase to kebab-case: fooBar -> data-foo-bar
247
- const attrName = 'data-' + prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
248
- return this.getAttribute(attrName);
249
- }
250
- return undefined;
251
- },
252
- set: (target, prop: string | symbol, value: any) => {
253
- if (typeof prop === 'string') {
254
- // Convert camelCase to kebab-case: fooBar -> data-foo-bar
255
- const attrName = 'data-' + prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
256
- this.setAttribute(attrName, String(value));
257
- return true;
258
- }
259
- return false;
260
- },
261
- deleteProperty: (target, prop: string | symbol) => {
262
- if (typeof prop === 'string') {
263
- const attrName = 'data-' + prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
264
- this.removeAttribute(attrName);
265
- return true;
266
- }
267
- return false;
268
- }
269
- });
378
+ get dataset(): any {
379
+ if (!this._dataset) {
380
+ this._dataset = new Proxy(
381
+ {},
382
+ {
383
+ get: (target, prop: string | symbol) => {
384
+ if (typeof prop === 'string') {
385
+ // Convert camelCase to kebab-case: fooBar -> data-foo-bar
386
+ const attrName = 'data-' + prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
387
+ return this.getAttribute(attrName);
388
+ }
389
+ return undefined;
390
+ },
391
+ set: (target, prop: string | symbol, value: any) => {
392
+ if (typeof prop === 'string') {
393
+ // Convert camelCase to kebab-case: fooBar -> data-foo-bar
394
+ const attrName = 'data-' + prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
395
+ this.setAttribute(attrName, String(value));
396
+ return true;
397
+ }
398
+ return false;
399
+ },
400
+ deleteProperty: (target, prop: string | symbol) => {
401
+ if (typeof prop === 'string') {
402
+ const attrName = 'data-' + prop.replace(/[A-Z]/g, m => `-${m.toLowerCase()}`);
403
+ this.removeAttribute(attrName);
404
+ return true;
405
+ }
406
+ return false;
407
+ }
270
408
  }
271
- return this._dataset;
409
+ );
272
410
  }
411
+ return this._dataset;
412
+ }
273
413
 
274
- get nonce(): string {
275
- return this.getAttribute('nonce') || '';
276
- }
414
+ get nonce(): string {
415
+ return this.getAttribute('nonce') || '';
416
+ }
277
417
 
278
- set nonce(value: string) {
279
- this.setAttribute('nonce', value);
280
- }
418
+ set nonce(value: string) {
419
+ this.setAttribute('nonce', value);
420
+ }
281
421
  }
282
422
 
283
423
  // CSSStyleDeclaration implementation
284
424
  class CSSStyleDeclarationImpl {
285
- [key: string]: any;
286
-
287
- constructor(private element: HTMLElementBase) { }
288
-
289
- parentRule: any = null;
290
-
291
- getPropertyPriority(property: string): string {
292
- return '';
293
- }
294
-
295
- get cssText(): string {
296
- return this.element.getAttribute('style') || '';
297
- }
298
-
299
- set cssText(value: string) {
300
- this.element.setAttribute('style', value);
301
- }
302
-
303
- get length(): number {
304
- return this.parseStyle(this.cssText).size;
305
- }
306
-
307
- getPropertyValue(property: string): string {
308
- const style = this.parseStyle(this.cssText);
309
- return style.get(property) || '';
310
- }
311
-
312
- setProperty(property: string, value: string | null, priority: string = ''): void {
313
- const style = this.parseStyle(this.cssText);
314
- if (value === null || value === '') {
315
- style.delete(property);
316
- } else {
317
- style.set(property, value); // TODO: handle priority
425
+ [key: string]: any;
426
+
427
+ constructor(private element: HTMLElementBase) {}
428
+
429
+ parentRule: any = null;
430
+
431
+ getPropertyPriority(property: string): string {
432
+ return '';
433
+ }
434
+
435
+ get cssText(): string {
436
+ return this.element.getAttribute('style') || '';
437
+ }
438
+
439
+ set cssText(value: string) {
440
+ this.element.setAttribute('style', value);
441
+ }
442
+
443
+ get length(): number {
444
+ return this.parseStyle(this.cssText).size;
445
+ }
446
+
447
+ getPropertyValue(property: string): string {
448
+ const style = this.parseStyle(this.cssText);
449
+ return style.get(property) || '';
450
+ }
451
+
452
+ setProperty(property: string, value: string | null, priority: string = ''): void {
453
+ const style = this.parseStyle(this.cssText);
454
+ if (value === null || value === '') {
455
+ style.delete(property);
456
+ } else {
457
+ style.set(property, value); // TODO: handle priority
458
+ }
459
+ this.cssText = this.serializeStyle(style);
460
+ }
461
+
462
+ removeProperty(property: string): string {
463
+ const style = this.parseStyle(this.cssText);
464
+ const value = style.get(property) || '';
465
+ style.delete(property);
466
+ this.cssText = this.serializeStyle(style);
467
+ return value;
468
+ }
469
+
470
+ item(index: number): string {
471
+ const style = this.parseStyle(this.cssText);
472
+ return Array.from(style.keys())[index] || '';
473
+ }
474
+
475
+ private parseStyle(cssText: string): Map<string, string> {
476
+ const style = new Map<string, string>();
477
+ if (!cssText) return style;
478
+
479
+ cssText.split(';').forEach(declaration => {
480
+ const part = declaration.trim();
481
+ if (!part) return;
482
+
483
+ const colonIndex = part.indexOf(':');
484
+ if (colonIndex !== -1) {
485
+ const property = part.substring(0, colonIndex).trim();
486
+ const value = part.substring(colonIndex + 1).trim();
487
+ if (property && value) {
488
+ style.set(property, value);
318
489
  }
319
- this.cssText = this.serializeStyle(style);
320
- }
321
-
322
- removeProperty(property: string): string {
323
- const style = this.parseStyle(this.cssText);
324
- const value = style.get(property) || '';
325
- style.delete(property);
326
- this.cssText = this.serializeStyle(style);
327
- return value;
328
- }
329
-
330
- item(index: number): string {
331
- const style = this.parseStyle(this.cssText);
332
- return Array.from(style.keys())[index] || '';
333
- }
334
-
335
- private parseStyle(cssText: string): Map<string, string> {
336
- const style = new Map<string, string>();
337
- if (!cssText) return style;
338
-
339
- cssText.split(';').forEach(declaration => {
340
- const part = declaration.trim();
341
- if (!part) return;
342
-
343
- const colonIndex = part.indexOf(':');
344
- if (colonIndex !== -1) {
345
- const property = part.substring(0, colonIndex).trim();
346
- const value = part.substring(colonIndex + 1).trim();
347
- if (property && value) {
348
- style.set(property, value);
349
- }
350
- }
351
- });
352
- return style;
353
- }
354
-
355
- private serializeStyle(style: Map<string, string>): string {
356
- return Array.from(style.entries())
357
- .map(([property, value]) => `${property}: ${value}`)
358
- .join('; ');
359
- }
490
+ }
491
+ });
492
+ return style;
493
+ }
494
+
495
+ private serializeStyle(style: Map<string, string>): string {
496
+ return Array.from(style.entries())
497
+ .map(([property, value]) => `${property}: ${value}`)
498
+ .join('; ');
499
+ }
360
500
  }
361
501
 
362
- // StylePropertyMap implementation
363
- class StylePropertyMapImpl implements StylePropertyMap {
364
- [key: string]: any;
365
-
366
- constructor(private element: HTMLElementBase) { }
367
-
368
- set(property: string, ...values: (string | any)[]): void {
369
- const value = values[0];
370
- this.element.style.setProperty(property, String(value));
371
- }
372
-
373
- append(property: string, ...values: (string | any)[]): void {
374
- this.set(property, ...values);
375
- }
376
-
377
- delete(property: string): void {
378
- this.element.style.removeProperty(property);
379
- }
380
-
381
- clear(): void {
382
- this.element.style.cssText = '';
383
- }
384
- }