happy-dom 8.8.0 → 9.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

Files changed (364) hide show
  1. package/README.md +2 -2
  2. package/lib/cookie/CookieJar.js +1 -1
  3. package/lib/cookie/CookieJar.js.map +1 -1
  4. package/lib/dom-token-list/DOMTokenList.js +24 -20
  5. package/lib/dom-token-list/DOMTokenList.js.map +1 -1
  6. package/lib/event/EventTarget.js +6 -3
  7. package/lib/event/EventTarget.js.map +1 -1
  8. package/lib/exception/DOMExceptionNameEnum.d.ts +5 -1
  9. package/lib/exception/DOMExceptionNameEnum.js +4 -0
  10. package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
  11. package/lib/fetch/AbortController.d.ts +19 -0
  12. package/lib/fetch/AbortController.js +30 -0
  13. package/lib/fetch/AbortController.js.map +1 -0
  14. package/lib/fetch/AbortSignal.d.ts +25 -0
  15. package/lib/fetch/AbortSignal.js +51 -0
  16. package/lib/fetch/AbortSignal.js.map +1 -0
  17. package/lib/fetch/Fetch.d.ts +117 -0
  18. package/lib/fetch/Fetch.js +530 -0
  19. package/lib/fetch/Fetch.js.map +1 -0
  20. package/lib/fetch/Headers.d.ts +81 -3
  21. package/lib/fetch/Headers.js +139 -24
  22. package/lib/fetch/Headers.js.map +1 -1
  23. package/lib/fetch/Request.d.ts +56 -32
  24. package/lib/fetch/Request.js +165 -110
  25. package/lib/fetch/Request.js.map +1 -1
  26. package/lib/fetch/{ResourceFetchHandler.d.ts → ResourceFetch.d.ts} +1 -1
  27. package/lib/fetch/{ResourceFetchHandler.js → ResourceFetch.js} +5 -5
  28. package/lib/fetch/ResourceFetch.js.map +1 -0
  29. package/lib/fetch/Response.d.ts +60 -26
  30. package/lib/fetch/Response.js +196 -104
  31. package/lib/fetch/Response.js.map +1 -1
  32. package/lib/fetch/data-uri/DataURIParser.d.ts +20 -0
  33. package/lib/fetch/data-uri/DataURIParser.js +60 -0
  34. package/lib/fetch/data-uri/DataURIParser.js.map +1 -0
  35. package/lib/fetch/multipart/MultipartFormDataParser.d.ts +40 -0
  36. package/lib/fetch/multipart/MultipartFormDataParser.js +81 -0
  37. package/lib/fetch/multipart/MultipartFormDataParser.js.map +1 -0
  38. package/lib/fetch/multipart/MultipartReader.d.ts +49 -0
  39. package/lib/fetch/multipart/MultipartReader.js +178 -0
  40. package/lib/fetch/multipart/MultipartReader.js.map +1 -0
  41. package/lib/fetch/types/IHeaders.d.ts +71 -0
  42. package/lib/fetch/{IHeaders.js.map → types/IHeaders.js.map} +1 -1
  43. package/lib/fetch/types/IHeadersInit.js.map +1 -0
  44. package/lib/fetch/types/IRequest.d.ts +60 -0
  45. package/lib/fetch/{IRequest.js.map → types/IRequest.js.map} +1 -1
  46. package/lib/fetch/types/IRequestBody.d.ts +7 -0
  47. package/lib/fetch/{IBody.js → types/IRequestBody.js} +1 -1
  48. package/lib/fetch/types/IRequestBody.js.map +1 -0
  49. package/lib/fetch/types/IRequestCredentials.d.ts +2 -0
  50. package/lib/fetch/types/IRequestCredentials.js +3 -0
  51. package/lib/fetch/types/IRequestCredentials.js.map +1 -0
  52. package/lib/fetch/{RequestInfo.d.ts → types/IRequestInfo.d.ts} +2 -2
  53. package/lib/fetch/types/IRequestInfo.js +3 -0
  54. package/lib/fetch/types/IRequestInfo.js.map +1 -0
  55. package/lib/fetch/types/IRequestInit.d.ts +21 -0
  56. package/lib/fetch/types/IRequestInit.js.map +1 -0
  57. package/lib/fetch/types/IRequestRedirect.d.ts +2 -0
  58. package/lib/fetch/types/IRequestRedirect.js +3 -0
  59. package/lib/fetch/types/IRequestRedirect.js.map +1 -0
  60. package/lib/fetch/types/IRequestReferrerPolicy.d.ts +2 -0
  61. package/lib/fetch/types/IRequestReferrerPolicy.js +3 -0
  62. package/lib/fetch/types/IRequestReferrerPolicy.js.map +1 -0
  63. package/lib/fetch/types/IResponse.d.ts +27 -0
  64. package/lib/fetch/{IResponse.js.map → types/IResponse.js.map} +1 -1
  65. package/lib/fetch/types/IResponseBody.d.ts +7 -0
  66. package/lib/fetch/types/IResponseBody.js +3 -0
  67. package/lib/fetch/types/IResponseBody.js.map +1 -0
  68. package/lib/fetch/types/IResponseInit.d.ts +9 -0
  69. package/lib/fetch/types/IResponseInit.js.map +1 -0
  70. package/lib/fetch/utilities/FetchBodyUtility.d.ts +44 -0
  71. package/lib/fetch/utilities/FetchBodyUtility.js +156 -0
  72. package/lib/fetch/utilities/FetchBodyUtility.js.map +1 -0
  73. package/lib/fetch/utilities/FetchCORSUtility.d.ts +12 -0
  74. package/lib/fetch/utilities/FetchCORSUtility.js +20 -0
  75. package/lib/fetch/utilities/FetchCORSUtility.js.map +1 -0
  76. package/lib/fetch/utilities/FetchRequestHeaderUtility.d.ts +12 -0
  77. package/lib/fetch/utilities/FetchRequestHeaderUtility.js +45 -0
  78. package/lib/fetch/utilities/FetchRequestHeaderUtility.js.map +1 -0
  79. package/lib/fetch/utilities/FetchRequestReferrerUtility.d.ts +55 -0
  80. package/lib/fetch/utilities/FetchRequestReferrerUtility.js +194 -0
  81. package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -0
  82. package/lib/fetch/utilities/FetchRequestValidationUtility.d.ts +38 -0
  83. package/lib/fetch/utilities/FetchRequestValidationUtility.js +70 -0
  84. package/lib/fetch/utilities/FetchRequestValidationUtility.js.map +1 -0
  85. package/lib/file/Blob.d.ts +2 -2
  86. package/lib/file/Blob.js +1 -1
  87. package/lib/file/Blob.js.map +1 -1
  88. package/lib/file/File.d.ts +2 -1
  89. package/lib/file/File.js.map +1 -1
  90. package/lib/form-data/FormData.d.ts +98 -0
  91. package/lib/form-data/FormData.js +212 -0
  92. package/lib/form-data/FormData.js.map +1 -0
  93. package/lib/index.d.ts +14 -1
  94. package/lib/index.js +20 -2
  95. package/lib/index.js.map +1 -1
  96. package/lib/nodes/document/Document.d.ts +5 -17
  97. package/lib/nodes/document/Document.js +11 -54
  98. package/lib/nodes/document/Document.js.map +1 -1
  99. package/lib/nodes/document/IDocument.d.ts +1 -1
  100. package/lib/nodes/document-fragment/DocumentFragment.d.ts +3 -14
  101. package/lib/nodes/document-fragment/DocumentFragment.js +7 -51
  102. package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
  103. package/lib/nodes/document-fragment/IDocumentFragment.d.ts +2 -1
  104. package/lib/nodes/element/Element.d.ts +8 -8
  105. package/lib/nodes/element/Element.js +28 -45
  106. package/lib/nodes/element/Element.js.map +1 -1
  107. package/lib/nodes/element/ElementUtility.d.ts +32 -0
  108. package/lib/nodes/element/ElementUtility.js +105 -0
  109. package/lib/nodes/element/ElementUtility.js.map +1 -0
  110. package/lib/nodes/element/HTMLCollection.d.ts +26 -3
  111. package/lib/nodes/element/HTMLCollection.js +51 -0
  112. package/lib/nodes/element/HTMLCollection.js.map +1 -1
  113. package/lib/nodes/element/IHTMLCollection.d.ts +9 -2
  114. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +24 -24
  115. package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
  116. package/lib/nodes/html-audio-element/Audio.d.ts +15 -0
  117. package/lib/nodes/html-audio-element/Audio.js +27 -0
  118. package/lib/nodes/html-audio-element/Audio.js.map +1 -0
  119. package/lib/nodes/html-base-element/HTMLBaseElement.js +4 -4
  120. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
  121. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +79 -3
  122. package/lib/nodes/html-button-element/HTMLButtonElement.js +158 -10
  123. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  124. package/lib/nodes/html-button-element/IHTMLButtonElement.d.ts +28 -2
  125. package/lib/nodes/html-dialog-element/HTMLDialogElement.js +3 -3
  126. package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
  127. package/lib/nodes/html-element/HTMLElement.js +12 -12
  128. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  129. package/lib/nodes/html-form-element/HTMLFormControlsCollection.d.ts +32 -0
  130. package/lib/nodes/html-form-element/HTMLFormControlsCollection.js +58 -0
  131. package/lib/nodes/html-form-element/HTMLFormControlsCollection.js.map +1 -0
  132. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +37 -17
  133. package/lib/nodes/html-form-element/HTMLFormElement.js +128 -37
  134. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  135. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.d.ts +25 -0
  136. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js +3 -0
  137. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js.map +1 -0
  138. package/lib/nodes/html-form-element/IHTMLFormElement.d.ts +16 -6
  139. package/lib/nodes/html-form-element/IRadioNodeList.d.ts +15 -0
  140. package/lib/nodes/html-form-element/IRadioNodeList.js +3 -0
  141. package/lib/nodes/html-form-element/IRadioNodeList.js.map +1 -0
  142. package/lib/nodes/html-form-element/RadioNodeList.d.ts +16 -0
  143. package/lib/nodes/html-form-element/RadioNodeList.js +28 -0
  144. package/lib/nodes/html-form-element/RadioNodeList.js.map +1 -0
  145. package/lib/nodes/html-image-element/HTMLImageElement.js +19 -19
  146. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  147. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +43 -19
  148. package/lib/nodes/html-input-element/HTMLInputElement.js +206 -111
  149. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  150. package/lib/nodes/html-input-element/IHTMLInputElement.d.ts +14 -1
  151. package/lib/nodes/html-label-element/HTMLLabelElement.js +3 -7
  152. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  153. package/lib/nodes/html-link-element/HTMLLinkElement.js +21 -21
  154. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  155. package/lib/nodes/html-media-element/HTMLMediaElement.js +21 -21
  156. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  157. package/lib/nodes/html-meta-element/HTMLMetaElement.js +8 -8
  158. package/lib/nodes/html-meta-element/HTMLMetaElement.js.map +1 -1
  159. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js +6 -6
  160. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js.map +1 -1
  161. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +3 -4
  162. package/lib/nodes/html-option-element/HTMLOptionElement.js +26 -29
  163. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  164. package/lib/nodes/html-script-element/HTMLScriptElement.js +16 -16
  165. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  166. package/lib/nodes/html-script-element/ScriptUtility.js +5 -5
  167. package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
  168. package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.d.ts +5 -6
  169. package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js.map +1 -1
  170. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +42 -41
  171. package/lib/nodes/html-select-element/HTMLSelectElement.js +134 -138
  172. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  173. package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.d.ts +4 -5
  174. package/lib/nodes/html-select-element/IHTMLOptionsCollection.js.map +1 -0
  175. package/lib/nodes/html-select-element/IHTMLSelectElement.d.ts +22 -2
  176. package/lib/nodes/html-slot-element/HTMLSlotElement.js +2 -2
  177. package/lib/nodes/html-slot-element/HTMLSlotElement.js.map +1 -1
  178. package/lib/nodes/html-style-element/HTMLStyleElement.js +7 -7
  179. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  180. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +55 -2
  181. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +150 -40
  182. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  183. package/lib/nodes/html-text-area-element/IHTMLTextAreaElement.d.ts +16 -0
  184. package/lib/nodes/node/Node.d.ts +12 -1
  185. package/lib/nodes/node/Node.js +50 -4
  186. package/lib/nodes/node/Node.js.map +1 -1
  187. package/lib/nodes/node/NodeList.d.ts +2 -3
  188. package/lib/nodes/node/NodeList.js.map +1 -1
  189. package/lib/nodes/parent-node/IParentNode.d.ts +4 -4
  190. package/lib/nodes/parent-node/ParentNodeUtility.d.ts +3 -3
  191. package/lib/nodes/parent-node/ParentNodeUtility.js +13 -11
  192. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  193. package/lib/nodes/text/Text.d.ts +13 -0
  194. package/lib/nodes/text/Text.js +30 -0
  195. package/lib/nodes/text/Text.js.map +1 -1
  196. package/lib/query-selector/QuerySelector.js +2 -2
  197. package/lib/query-selector/QuerySelector.js.map +1 -1
  198. package/lib/query-selector/SelectorItem.js +2 -0
  199. package/lib/query-selector/SelectorItem.js.map +1 -1
  200. package/lib/validity-state/ValidityState.d.ts +87 -0
  201. package/lib/validity-state/ValidityState.js +171 -0
  202. package/lib/validity-state/ValidityState.js.map +1 -0
  203. package/lib/window/GlobalWindow.d.ts +0 -8
  204. package/lib/window/GlobalWindow.js +0 -2
  205. package/lib/window/GlobalWindow.js.map +1 -1
  206. package/lib/window/INodeJSGlobal.d.ts +71 -0
  207. package/lib/window/INodeJSGlobal.js +2 -0
  208. package/lib/window/INodeJSGlobal.js.map +1 -0
  209. package/lib/window/IWindow.d.ts +30 -10
  210. package/lib/window/Window.d.ts +37 -20
  211. package/lib/window/Window.js +22 -10
  212. package/lib/window/Window.js.map +1 -1
  213. package/lib/xml-http-request/XMLHttpRequest.js +20 -12
  214. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  215. package/lib/xml-parser/XMLParser.js +1 -1
  216. package/lib/xml-parser/XMLParser.js.map +1 -1
  217. package/package.json +2 -3
  218. package/src/cookie/CookieJar.ts +1 -1
  219. package/src/dom-token-list/DOMTokenList.ts +24 -20
  220. package/src/event/EventTarget.ts +7 -3
  221. package/src/exception/DOMExceptionNameEnum.ts +5 -1
  222. package/src/fetch/AbortController.ts +26 -0
  223. package/src/fetch/AbortSignal.ts +44 -0
  224. package/src/fetch/Fetch.ts +666 -0
  225. package/src/fetch/Headers.ts +151 -3
  226. package/src/fetch/Request.ts +226 -94
  227. package/src/fetch/{ResourceFetchHandler.ts → ResourceFetch.ts} +3 -3
  228. package/src/fetch/Response.ts +252 -89
  229. package/src/fetch/data-uri/DataURIParser.ts +66 -0
  230. package/src/fetch/multipart/MultipartFormDataParser.ts +113 -0
  231. package/src/fetch/multipart/MultipartReader.ts +217 -0
  232. package/src/fetch/types/IHeaders.ts +80 -0
  233. package/src/fetch/types/IRequest.ts +65 -0
  234. package/src/fetch/types/IRequestBody.ts +15 -0
  235. package/src/fetch/types/IRequestCredentials.ts +2 -0
  236. package/src/fetch/types/IRequestInfo.ts +6 -0
  237. package/src/fetch/types/IRequestInit.ts +21 -0
  238. package/src/fetch/types/IRequestRedirect.ts +3 -0
  239. package/src/fetch/types/IRequestReferrerPolicy.ts +11 -0
  240. package/src/fetch/types/IResponse.ts +27 -0
  241. package/src/fetch/types/IResponseBody.ts +15 -0
  242. package/src/fetch/types/IResponseInit.ts +10 -0
  243. package/src/fetch/utilities/FetchBodyUtility.ts +175 -0
  244. package/src/fetch/utilities/FetchCORSUtility.ts +18 -0
  245. package/src/fetch/utilities/FetchRequestHeaderUtility.ts +47 -0
  246. package/src/fetch/utilities/FetchRequestReferrerUtility.ts +241 -0
  247. package/src/fetch/utilities/FetchRequestValidationUtility.ts +82 -0
  248. package/src/file/Blob.ts +2 -2
  249. package/src/file/File.ts +5 -1
  250. package/src/form-data/FormData.ts +237 -0
  251. package/src/index.ts +27 -1
  252. package/src/nodes/document/Document.ts +23 -64
  253. package/src/nodes/document/IDocument.ts +1 -1
  254. package/src/nodes/document-fragment/DocumentFragment.ts +9 -59
  255. package/src/nodes/document-fragment/IDocumentFragment.ts +2 -1
  256. package/src/nodes/element/Element.ts +43 -56
  257. package/src/nodes/element/ElementUtility.ts +137 -0
  258. package/src/nodes/element/HTMLCollection.ts +60 -3
  259. package/src/nodes/element/IHTMLCollection.ts +10 -2
  260. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +24 -24
  261. package/src/nodes/html-audio-element/Audio.ts +22 -0
  262. package/src/nodes/html-base-element/HTMLBaseElement.ts +4 -4
  263. package/src/nodes/html-button-element/HTMLButtonElement.ts +184 -10
  264. package/src/nodes/html-button-element/IHTMLButtonElement.ts +31 -2
  265. package/src/nodes/html-dialog-element/HTMLDialogElement.ts +3 -3
  266. package/src/nodes/html-element/HTMLElement.ts +12 -12
  267. package/src/nodes/html-form-element/HTMLFormControlsCollection.ts +76 -0
  268. package/src/nodes/html-form-element/HTMLFormElement.ts +147 -41
  269. package/src/nodes/html-form-element/IHTMLFormControlsCollection.ts +45 -0
  270. package/src/nodes/html-form-element/IHTMLFormElement.ts +17 -6
  271. package/src/nodes/html-form-element/IRadioNodeList.ts +16 -0
  272. package/src/nodes/html-form-element/RadioNodeList.ts +24 -0
  273. package/src/nodes/html-image-element/HTMLImageElement.ts +19 -19
  274. package/src/nodes/html-input-element/HTMLInputElement.ts +232 -113
  275. package/src/nodes/html-input-element/IHTMLInputElement.ts +20 -1
  276. package/src/nodes/html-label-element/HTMLLabelElement.ts +3 -7
  277. package/src/nodes/html-link-element/HTMLLinkElement.ts +21 -21
  278. package/src/nodes/html-media-element/HTMLMediaElement.ts +21 -21
  279. package/src/nodes/html-meta-element/HTMLMetaElement.ts +8 -8
  280. package/src/nodes/html-opt-group-element/HTMLOptGroupElement.ts +6 -6
  281. package/src/nodes/html-option-element/HTMLOptionElement.ts +29 -30
  282. package/src/nodes/html-script-element/HTMLScriptElement.ts +16 -16
  283. package/src/nodes/html-script-element/ScriptUtility.ts +5 -5
  284. package/src/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.ts +5 -9
  285. package/src/nodes/html-select-element/HTMLSelectElement.ts +159 -170
  286. package/src/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.ts +4 -8
  287. package/src/nodes/html-select-element/IHTMLSelectElement.ts +25 -2
  288. package/src/nodes/html-slot-element/HTMLSlotElement.ts +2 -2
  289. package/src/nodes/html-style-element/HTMLStyleElement.ts +7 -7
  290. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +174 -41
  291. package/src/nodes/html-text-area-element/IHTMLTextAreaElement.ts +18 -0
  292. package/src/nodes/node/Node.ts +61 -6
  293. package/src/nodes/node/NodeList.ts +2 -3
  294. package/src/nodes/parent-node/IParentNode.ts +7 -4
  295. package/src/nodes/parent-node/ParentNodeUtility.ts +25 -15
  296. package/src/nodes/text/Text.ts +38 -0
  297. package/src/query-selector/QuerySelector.ts +2 -2
  298. package/src/query-selector/SelectorItem.ts +3 -0
  299. package/src/validity-state/ValidityState.ts +211 -0
  300. package/src/window/GlobalWindow.ts +0 -2
  301. package/src/window/INodeJSGlobal.ts +70 -0
  302. package/src/window/IWindow.ts +32 -10
  303. package/src/window/Window.ts +43 -21
  304. package/src/xml-http-request/XMLHttpRequest.ts +27 -26
  305. package/src/xml-parser/XMLParser.ts +1 -1
  306. package/lib/fetch/FetchHandler.d.ts +0 -18
  307. package/lib/fetch/FetchHandler.js +0 -83
  308. package/lib/fetch/FetchHandler.js.map +0 -1
  309. package/lib/fetch/IAbortSignal.d.ts +0 -16
  310. package/lib/fetch/IAbortSignal.js +0 -4
  311. package/lib/fetch/IAbortSignal.js.map +0 -1
  312. package/lib/fetch/IBody.d.ts +0 -17
  313. package/lib/fetch/IBody.js.map +0 -1
  314. package/lib/fetch/IHeaders.d.ts +0 -18
  315. package/lib/fetch/IHeadersInit.js.map +0 -1
  316. package/lib/fetch/IRequest.d.ts +0 -18
  317. package/lib/fetch/IRequestInit.d.ts +0 -16
  318. package/lib/fetch/IRequestInit.js.map +0 -1
  319. package/lib/fetch/IResponse.d.ts +0 -20
  320. package/lib/fetch/IResponseInit.d.ts +0 -9
  321. package/lib/fetch/IResponseInit.js.map +0 -1
  322. package/lib/fetch/RequestInfo.js +0 -3
  323. package/lib/fetch/RequestInfo.js.map +0 -1
  324. package/lib/fetch/ResourceFetchHandler.js.map +0 -1
  325. package/lib/form-data/IFormData.d.ts +0 -32
  326. package/lib/form-data/IFormData.js +0 -3
  327. package/lib/form-data/IFormData.js.map +0 -1
  328. package/lib/location/RelativeURL.d.ts +0 -15
  329. package/lib/location/RelativeURL.js +0 -19
  330. package/lib/location/RelativeURL.js.map +0 -1
  331. package/lib/nodes/element/HTMLCollectionFactory.d.ts +0 -21
  332. package/lib/nodes/element/HTMLCollectionFactory.js +0 -31
  333. package/lib/nodes/element/HTMLCollectionFactory.js.map +0 -1
  334. package/lib/nodes/html-option-element/IHTMLOptionsCollection.js.map +0 -1
  335. package/lib/nodes/node/NodeListFactory.d.ts +0 -21
  336. package/lib/nodes/node/NodeListFactory.js +0 -31
  337. package/lib/nodes/node/NodeListFactory.js.map +0 -1
  338. package/lib/nodes/validity-state/ValidityState.d.ts +0 -52
  339. package/lib/nodes/validity-state/ValidityState.js +0 -81
  340. package/lib/nodes/validity-state/ValidityState.js.map +0 -1
  341. package/src/fetch/FetchHandler.ts +0 -90
  342. package/src/fetch/IAbortSignal.ts +0 -34
  343. package/src/fetch/IBody.ts +0 -18
  344. package/src/fetch/IHeaders.ts +0 -18
  345. package/src/fetch/IRequest.ts +0 -59
  346. package/src/fetch/IRequestInit.ts +0 -41
  347. package/src/fetch/IResponse.ts +0 -22
  348. package/src/fetch/IResponseInit.ts +0 -10
  349. package/src/fetch/RequestInfo.ts +0 -6
  350. package/src/form-data/IFormData.ts +0 -33
  351. package/src/location/RelativeURL.ts +0 -17
  352. package/src/nodes/element/HTMLCollectionFactory.ts +0 -31
  353. package/src/nodes/node/NodeListFactory.ts +0 -31
  354. package/src/nodes/validity-state/ValidityState.ts +0 -84
  355. /package/lib/fetch/{IHeaders.js → types/IHeaders.js} +0 -0
  356. /package/lib/fetch/{IHeadersInit.d.ts → types/IHeadersInit.d.ts} +0 -0
  357. /package/lib/fetch/{IHeadersInit.js → types/IHeadersInit.js} +0 -0
  358. /package/lib/fetch/{IRequest.js → types/IRequest.js} +0 -0
  359. /package/lib/fetch/{IRequestInit.js → types/IRequestInit.js} +0 -0
  360. /package/lib/fetch/{IResponse.js → types/IResponse.js} +0 -0
  361. /package/lib/fetch/{IResponseInit.js → types/IResponseInit.js} +0 -0
  362. /package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js +0 -0
  363. /package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.js +0 -0
  364. /package/src/fetch/{IHeadersInit.ts → types/IHeadersInit.ts} +0 -0
@@ -1,10 +1,12 @@
1
1
  import IHTMLElement from '../html-element/IHTMLElement';
2
2
  import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
3
3
  import HTMLInputElementSelectionModeEnum from './HTMLInputElementSelectionModeEnum';
4
- import ValidityState from '../validity-state/ValidityState';
4
+ import ValidityState from '../../validity-state/ValidityState';
5
5
  import Event from '../../event/Event';
6
6
  import File from '../../file/File';
7
7
  import IFileList from './IFileList';
8
+ import INodeList from '../node/INodeList';
9
+ import IHTMLLabelElement from '../html-label-element/IHTMLLabelElement';
8
10
 
9
11
  /**
10
12
  * HTML Input Element.
@@ -14,6 +16,7 @@ import IFileList from './IFileList';
14
16
  */
15
17
  export default interface IHTMLInputElement extends IHTMLElement {
16
18
  readonly form: IHTMLFormElement;
19
+ readonly labels: INodeList<IHTMLLabelElement>;
17
20
  formAction: string;
18
21
  formMethod: string;
19
22
  formNoValidate: boolean;
@@ -81,6 +84,22 @@ export default interface IHTMLInputElement extends IHTMLElement {
81
84
  */
82
85
  setSelectionRange(start: number, end: number, direction: string): void;
83
86
 
87
+ /**
88
+ * Set range text.
89
+ *
90
+ * @param replacement Replacement.
91
+ * @param [start] Start.
92
+ * @param [end] End.
93
+ * @param [direction] Direction.
94
+ * @param selectionMode
95
+ */
96
+ setRangeText(
97
+ replacement: string,
98
+ start?: number,
99
+ end?: number,
100
+ selectionMode?: HTMLInputElementSelectionModeEnum
101
+ ): void;
102
+
84
103
  /**
85
104
  * Set range text.
86
105
  *
@@ -16,7 +16,7 @@ export default class HTMLLabelElement extends HTMLElement implements IHTMLLabelE
16
16
  * @returns ID of the labeled control.
17
17
  */
18
18
  public get htmlFor(): string {
19
- const htmlFor = this.getAttributeNS(null, 'for');
19
+ const htmlFor = this.getAttribute('for');
20
20
  if (htmlFor !== null) {
21
21
  return htmlFor;
22
22
  }
@@ -29,7 +29,7 @@ export default class HTMLLabelElement extends HTMLElement implements IHTMLLabelE
29
29
  * @param htmlFor ID of the labeled control.
30
30
  */
31
31
  public set htmlFor(htmlFor: string) {
32
- this.setAttributeNS(null, 'for', htmlFor);
32
+ this.setAttribute('for', htmlFor);
33
33
  }
34
34
 
35
35
  /**
@@ -56,11 +56,7 @@ export default class HTMLLabelElement extends HTMLElement implements IHTMLLabelE
56
56
  * @returns Form.
57
57
  */
58
58
  public get form(): IHTMLFormElement {
59
- let parent = <IHTMLElement>this.parentNode;
60
- while (parent && parent.tagName !== 'FORM') {
61
- parent = <IHTMLElement>parent.parentNode;
62
- }
63
- return <IHTMLFormElement>parent;
59
+ return <IHTMLFormElement>this._formNode;
64
60
  }
65
61
 
66
62
  /**
@@ -1,6 +1,6 @@
1
1
  import IAttr from '../attr/IAttr';
2
2
  import CSSStyleSheet from '../../css/CSSStyleSheet';
3
- import ResourceFetchHandler from '../../fetch/ResourceFetchHandler';
3
+ import ResourceFetch from '../../fetch/ResourceFetch';
4
4
  import HTMLElement from '../html-element/HTMLElement';
5
5
  import Document from '../document/Document';
6
6
  import IHTMLLinkElement from './IHTMLLinkElement';
@@ -41,7 +41,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
41
41
  * @returns As.
42
42
  */
43
43
  public get as(): string {
44
- return this.getAttributeNS(null, 'as') || '';
44
+ return this.getAttribute('as') || '';
45
45
  }
46
46
 
47
47
  /**
@@ -50,7 +50,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
50
50
  * @param crossOrigin CrossOrigin.
51
51
  */
52
52
  public set as(as: string) {
53
- this.setAttributeNS(null, 'as', as);
53
+ this.setAttribute('as', as);
54
54
  }
55
55
 
56
56
  /**
@@ -68,7 +68,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
68
68
  * @param crossOrigin CrossOrigin.
69
69
  */
70
70
  public set crossOrigin(crossOrigin: string) {
71
- this.setAttributeNS(null, 'crossorigin', crossOrigin);
71
+ this.setAttribute('crossorigin', crossOrigin);
72
72
  }
73
73
 
74
74
  /**
@@ -77,7 +77,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
77
77
  * @returns Href.
78
78
  */
79
79
  public get href(): string {
80
- return this.getAttributeNS(null, 'href') || '';
80
+ return this.getAttribute('href') || '';
81
81
  }
82
82
 
83
83
  /**
@@ -86,7 +86,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
86
86
  * @param href Href.
87
87
  */
88
88
  public set href(href: string) {
89
- this.setAttributeNS(null, 'href', href);
89
+ this.setAttribute('href', href);
90
90
  }
91
91
 
92
92
  /**
@@ -95,7 +95,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
95
95
  * @returns Hreflang.
96
96
  */
97
97
  public get hreflang(): string {
98
- return this.getAttributeNS(null, 'hreflang') || '';
98
+ return this.getAttribute('hreflang') || '';
99
99
  }
100
100
 
101
101
  /**
@@ -104,7 +104,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
104
104
  * @param hreflang Hreflang.
105
105
  */
106
106
  public set hreflang(hreflang: string) {
107
- this.setAttributeNS(null, 'hreflang', hreflang);
107
+ this.setAttribute('hreflang', hreflang);
108
108
  }
109
109
 
110
110
  /**
@@ -113,7 +113,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
113
113
  * @returns Media.
114
114
  */
115
115
  public get media(): string {
116
- return this.getAttributeNS(null, 'media') || '';
116
+ return this.getAttribute('media') || '';
117
117
  }
118
118
 
119
119
  /**
@@ -122,7 +122,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
122
122
  * @param media Media.
123
123
  */
124
124
  public set media(media: string) {
125
- this.setAttributeNS(null, 'media', media);
125
+ this.setAttribute('media', media);
126
126
  }
127
127
 
128
128
  /**
@@ -140,7 +140,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
140
140
  * @param referrerPolicy ReferrerPolicy.
141
141
  */
142
142
  public set referrerPolicy(referrerPolicy: string) {
143
- this.setAttributeNS(null, 'referrerPolicy', referrerPolicy);
143
+ this.setAttribute('referrerPolicy', referrerPolicy);
144
144
  }
145
145
 
146
146
  /**
@@ -149,7 +149,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
149
149
  * @returns Rel.
150
150
  */
151
151
  public get rel(): string {
152
- return this.getAttributeNS(null, 'rel') || '';
152
+ return this.getAttribute('rel') || '';
153
153
  }
154
154
 
155
155
  /**
@@ -158,7 +158,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
158
158
  * @param rel Rel.
159
159
  */
160
160
  public set rel(rel: string) {
161
- this.setAttributeNS(null, 'rel', rel);
161
+ this.setAttribute('rel', rel);
162
162
  }
163
163
 
164
164
  /**
@@ -167,7 +167,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
167
167
  * @returns Type.
168
168
  */
169
169
  public get type(): string {
170
- return this.getAttributeNS(null, 'type') || '';
170
+ return this.getAttribute('type') || '';
171
171
  }
172
172
 
173
173
  /**
@@ -176,7 +176,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
176
176
  * @param type Type.
177
177
  */
178
178
  public set type(type: string) {
179
- this.setAttributeNS(null, 'type', type);
179
+ this.setAttribute('type', type);
180
180
  }
181
181
 
182
182
  /**
@@ -184,8 +184,8 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
184
184
  */
185
185
  public override setAttributeNode(attribute: IAttr): IAttr {
186
186
  const replacedAttribute = super.setAttributeNode(attribute);
187
- const rel = this.getAttributeNS(null, 'rel');
188
- const href = this.getAttributeNS(null, 'href');
187
+ const rel = this.getAttribute('rel');
188
+ const href = this.getAttribute('href');
189
189
 
190
190
  if (attribute.name === 'rel' && this._relList) {
191
191
  this._relList._updateIndices();
@@ -200,7 +200,7 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
200
200
  !this.ownerDocument.defaultView.happyDOM.settings.disableCSSFileLoading
201
201
  ) {
202
202
  (<Document>this.ownerDocument)._readyStateManager.startTask();
203
- ResourceFetchHandler.fetch(this.ownerDocument, href)
203
+ ResourceFetch.fetch(this.ownerDocument, href)
204
204
  .then((code) => {
205
205
  const styleSheet = new CSSStyleSheet();
206
206
  styleSheet.replaceSync(code);
@@ -262,12 +262,12 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
262
262
  this._evaluateCSS &&
263
263
  !this.ownerDocument.defaultView.happyDOM.settings.disableCSSFileLoading
264
264
  ) {
265
- const href = this.getAttributeNS(null, 'href');
266
- const rel = this.getAttributeNS(null, 'rel');
265
+ const href = this.getAttribute('href');
266
+ const rel = this.getAttribute('rel');
267
267
 
268
268
  if (href !== null && rel && rel.toLowerCase() === 'stylesheet') {
269
269
  (<Document>this.ownerDocument)._readyStateManager.startTask();
270
- ResourceFetchHandler.fetch(this.ownerDocument, href)
270
+ ResourceFetch.fetch(this.ownerDocument, href)
271
271
  .then((code) => {
272
272
  const styleSheet = new CSSStyleSheet();
273
273
  styleSheet.replaceSync(code);
@@ -82,7 +82,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
82
82
  * @returns Autoplay.
83
83
  */
84
84
  public get autoplay(): boolean {
85
- return this.getAttributeNS(null, 'autoplay') !== null;
85
+ return this.getAttribute('autoplay') !== null;
86
86
  }
87
87
 
88
88
  /**
@@ -92,9 +92,9 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
92
92
  */
93
93
  public set autoplay(autoplay: boolean) {
94
94
  if (!autoplay) {
95
- this.removeAttributeNS(null, 'autoplay');
95
+ this.removeAttribute('autoplay');
96
96
  } else {
97
- this.setAttributeNS(null, 'autoplay', '');
97
+ this.setAttribute('autoplay', '');
98
98
  }
99
99
  }
100
100
 
@@ -104,7 +104,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
104
104
  * @returns Controls.
105
105
  */
106
106
  public get controls(): boolean {
107
- return this.getAttributeNS(null, 'controls') !== null;
107
+ return this.getAttribute('controls') !== null;
108
108
  }
109
109
 
110
110
  /**
@@ -114,9 +114,9 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
114
114
  */
115
115
  public set controls(controls: boolean) {
116
116
  if (!controls) {
117
- this.removeAttributeNS(null, 'controls');
117
+ this.removeAttribute('controls');
118
118
  } else {
119
- this.setAttributeNS(null, 'controls', '');
119
+ this.setAttribute('controls', '');
120
120
  }
121
121
  }
122
122
 
@@ -126,7 +126,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
126
126
  * @returns Loop.
127
127
  */
128
128
  public get loop(): boolean {
129
- return this.getAttributeNS(null, 'loop') !== null;
129
+ return this.getAttribute('loop') !== null;
130
130
  }
131
131
 
132
132
  /**
@@ -136,9 +136,9 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
136
136
  */
137
137
  public set loop(loop: boolean) {
138
138
  if (!loop) {
139
- this.removeAttributeNS(null, 'loop');
139
+ this.removeAttribute('loop');
140
140
  } else {
141
- this.setAttributeNS(null, 'loop', '');
141
+ this.setAttribute('loop', '');
142
142
  }
143
143
  }
144
144
  /**
@@ -152,7 +152,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
152
152
  }
153
153
 
154
154
  if (!this.#defaultMuted) {
155
- return this.getAttributeNS(null, 'muted') !== null;
155
+ return this.getAttribute('muted') !== null;
156
156
  }
157
157
 
158
158
  return false;
@@ -166,9 +166,9 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
166
166
  public set muted(muted: boolean) {
167
167
  this.#muted = !!muted;
168
168
  if (!muted && !this.#defaultMuted) {
169
- this.removeAttributeNS(null, 'muted');
169
+ this.removeAttribute('muted');
170
170
  } else {
171
- this.setAttributeNS(null, 'muted', '');
171
+ this.setAttribute('muted', '');
172
172
  }
173
173
  }
174
174
 
@@ -189,9 +189,9 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
189
189
  public set defaultMuted(defaultMuted: boolean) {
190
190
  this.#defaultMuted = !!defaultMuted;
191
191
  if (!this.#defaultMuted && !this.#muted) {
192
- this.removeAttributeNS(null, 'muted');
192
+ this.removeAttribute('muted');
193
193
  } else {
194
- this.setAttributeNS(null, 'muted', '');
194
+ this.setAttribute('muted', '');
195
195
  }
196
196
  }
197
197
 
@@ -201,7 +201,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
201
201
  * @returns Src.
202
202
  */
203
203
  public get src(): string {
204
- return this.getAttributeNS(null, 'src') || '';
204
+ return this.getAttribute('src') || '';
205
205
  }
206
206
 
207
207
  /**
@@ -210,7 +210,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
210
210
  * @param src Src.
211
211
  */
212
212
  public set src(src: string) {
213
- this.setAttributeNS(null, 'src', src);
213
+ this.setAttribute('src', src);
214
214
  if (Boolean(src)) {
215
215
  this.dispatchEvent(new Event('canplay', { bubbles: false, cancelable: false }));
216
216
  this.dispatchEvent(new Event('durationchange', { bubbles: false, cancelable: false }));
@@ -264,7 +264,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
264
264
  * @returns CrossOrigin.
265
265
  */
266
266
  public get crossOrigin(): string {
267
- return this.getAttributeNS(null, 'crossorigin');
267
+ return this.getAttribute('crossorigin');
268
268
  }
269
269
 
270
270
  /**
@@ -278,9 +278,9 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
278
278
  }
279
279
 
280
280
  if (['', 'use-credentials', 'anonymous'].includes(crossOrigin)) {
281
- this.setAttributeNS(null, 'crossorigin', crossOrigin);
281
+ this.setAttribute('crossorigin', crossOrigin);
282
282
  } else {
283
- this.setAttributeNS(null, 'crossorigin', 'anonymous');
283
+ this.setAttribute('crossorigin', 'anonymous');
284
284
  }
285
285
  }
286
286
 
@@ -380,7 +380,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
380
380
  * @returns preload.
381
381
  */
382
382
  public get preload(): string {
383
- return this.getAttributeNS(null, 'preload') || 'auto';
383
+ return this.getAttribute('preload') || 'auto';
384
384
  }
385
385
 
386
386
  /**
@@ -389,7 +389,7 @@ export default class HTMLMediaElement extends HTMLElement implements IHTMLMediaE
389
389
  * @param preload preload.
390
390
  */
391
391
  public set preload(preload: string) {
392
- this.setAttributeNS(null, 'preload', preload);
392
+ this.setAttribute('preload', preload);
393
393
  }
394
394
 
395
395
  /**
@@ -14,7 +14,7 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
14
14
  * @returns Content.
15
15
  */
16
16
  public get content(): string {
17
- return this.getAttributeNS(null, 'content') || '';
17
+ return this.getAttribute('content') || '';
18
18
  }
19
19
 
20
20
  /**
@@ -23,7 +23,7 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
23
23
  * @param content Content.
24
24
  */
25
25
  public set content(content: string) {
26
- this.setAttributeNS(null, 'content', content);
26
+ this.setAttribute('content', content);
27
27
  }
28
28
 
29
29
  /**
@@ -32,7 +32,7 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
32
32
  * @returns HttpEquiv.
33
33
  */
34
34
  public get httpEquiv(): string {
35
- return this.getAttributeNS(null, 'http-equiv') || '';
35
+ return this.getAttribute('http-equiv') || '';
36
36
  }
37
37
 
38
38
  /**
@@ -41,7 +41,7 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
41
41
  * @param httpEquiv HttpEquiv.
42
42
  */
43
43
  public set httpEquiv(httpEquiv: string) {
44
- this.setAttributeNS(null, 'http-equiv', httpEquiv);
44
+ this.setAttribute('http-equiv', httpEquiv);
45
45
  }
46
46
 
47
47
  /**
@@ -50,7 +50,7 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
50
50
  * @returns Name.
51
51
  */
52
52
  public get name(): string {
53
- return this.getAttributeNS(null, 'name') || '';
53
+ return this.getAttribute('name') || '';
54
54
  }
55
55
 
56
56
  /**
@@ -59,7 +59,7 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
59
59
  * @param name Name.
60
60
  */
61
61
  public set name(name: string) {
62
- this.setAttributeNS(null, 'name', name);
62
+ this.setAttribute('name', name);
63
63
  }
64
64
  /**
65
65
  * Returns scheme.
@@ -67,7 +67,7 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
67
67
  * @returns Name.
68
68
  */
69
69
  public get scheme(): string {
70
- return this.getAttributeNS(null, 'scheme') || '';
70
+ return this.getAttribute('scheme') || '';
71
71
  }
72
72
 
73
73
  /**
@@ -76,6 +76,6 @@ export default class HTMLMetaElement extends HTMLElement implements IHTMLMetaEle
76
76
  * @param scheme Scheme.
77
77
  */
78
78
  public set scheme(scheme: string) {
79
- this.setAttributeNS(null, 'scheme', scheme);
79
+ this.setAttribute('scheme', scheme);
80
80
  }
81
81
  }
@@ -14,7 +14,7 @@ export default class HTMLOptGroupElement extends HTMLElement implements IHTMLOpt
14
14
  * @returns Label.
15
15
  */
16
16
  public get label(): string {
17
- return this.getAttributeNS(null, 'label') || '';
17
+ return this.getAttribute('label') || '';
18
18
  }
19
19
 
20
20
  /**
@@ -24,9 +24,9 @@ export default class HTMLOptGroupElement extends HTMLElement implements IHTMLOpt
24
24
  */
25
25
  public set label(label: string) {
26
26
  if (!label) {
27
- this.removeAttributeNS(null, 'label');
27
+ this.removeAttribute('label');
28
28
  } else {
29
- this.setAttributeNS(null, 'label', label);
29
+ this.setAttribute('label', label);
30
30
  }
31
31
  }
32
32
 
@@ -36,7 +36,7 @@ export default class HTMLOptGroupElement extends HTMLElement implements IHTMLOpt
36
36
  * @returns Disabled.
37
37
  */
38
38
  public get disabled(): boolean {
39
- return this.getAttributeNS(null, 'disabled') !== null;
39
+ return this.getAttribute('disabled') !== null;
40
40
  }
41
41
 
42
42
  /**
@@ -46,9 +46,9 @@ export default class HTMLOptGroupElement extends HTMLElement implements IHTMLOpt
46
46
  */
47
47
  public set disabled(disabled: boolean) {
48
48
  if (!disabled) {
49
- this.removeAttributeNS(null, 'disabled');
49
+ this.removeAttribute('disabled');
50
50
  } else {
51
- this.setAttributeNS(null, 'disabled', '');
51
+ this.setAttribute('disabled', '');
52
52
  }
53
53
  }
54
54
  }
@@ -1,8 +1,8 @@
1
1
  import IAttr from '../attr/IAttr';
2
2
  import HTMLElement from '../html-element/HTMLElement';
3
- import IHTMLElement from '../html-element/IHTMLElement';
4
3
  import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
5
4
  import HTMLSelectElement from '../html-select-element/HTMLSelectElement';
5
+ import INode from '../node/INode';
6
6
  import IHTMLOptionElement from './IHTMLOptionElement';
7
7
 
8
8
  /**
@@ -49,11 +49,7 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
49
49
  * @returns Form.
50
50
  */
51
51
  public get form(): IHTMLFormElement {
52
- let parent = <IHTMLElement>this.parentNode;
53
- while (parent && parent.tagName !== 'FORM') {
54
- parent = <IHTMLElement>parent.parentNode;
55
- }
56
- return <IHTMLFormElement>parent;
52
+ return <IHTMLFormElement>this._formNode;
57
53
  }
58
54
 
59
55
  /**
@@ -71,13 +67,13 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
71
67
  * @param selected Selected.
72
68
  */
73
69
  public set selected(selected: boolean) {
74
- const selectElement = this._getSelectElement();
70
+ const selectNode = <HTMLSelectElement>this._selectNode;
75
71
 
76
72
  this._dirtyness = true;
77
73
  this._selectedness = Boolean(selected);
78
74
 
79
- if (selectElement) {
80
- selectElement._resetOptionSelectednes(this._selectedness ? this : null);
75
+ if (selectNode) {
76
+ selectNode._updateOptionItems(this._selectedness ? this : null);
81
77
  }
82
78
  }
83
79
 
@@ -87,7 +83,7 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
87
83
  * @returns Disabled.
88
84
  */
89
85
  public get disabled(): boolean {
90
- return this.getAttributeNS(null, 'disabled') !== null;
86
+ return this.getAttribute('disabled') !== null;
91
87
  }
92
88
 
93
89
  /**
@@ -97,9 +93,9 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
97
93
  */
98
94
  public set disabled(disabled: boolean) {
99
95
  if (!disabled) {
100
- this.removeAttributeNS(null, 'disabled');
96
+ this.removeAttribute('disabled');
101
97
  } else {
102
- this.setAttributeNS(null, 'disabled', '');
98
+ this.setAttribute('disabled', '');
103
99
  }
104
100
  }
105
101
 
@@ -109,7 +105,7 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
109
105
  * @returns Value.
110
106
  */
111
107
  public get value(): string {
112
- return this.getAttributeNS(null, 'value') || this.textContent;
108
+ return this.getAttribute('value') || this.textContent;
113
109
  }
114
110
 
115
111
  /**
@@ -118,7 +114,7 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
118
114
  * @param value Value.
119
115
  */
120
116
  public set value(value: string) {
121
- this.setAttributeNS(null, 'value', value);
117
+ this.setAttribute('value', value);
122
118
  }
123
119
 
124
120
  /**
@@ -132,12 +128,12 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
132
128
  attribute.name === 'selected' &&
133
129
  replacedAttribute?.value !== attribute.value
134
130
  ) {
135
- const selectElement = this._getSelectElement();
131
+ const selectNode = <HTMLSelectElement>this._selectNode;
136
132
 
137
133
  this._selectedness = true;
138
134
 
139
- if (selectElement) {
140
- selectElement._resetOptionSelectednes(this);
135
+ if (selectNode) {
136
+ selectNode._updateOptionItems(this);
141
137
  }
142
138
  }
143
139
 
@@ -151,12 +147,12 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
151
147
  super.removeAttributeNode(attribute);
152
148
 
153
149
  if (!this._dirtyness && attribute.name === 'selected') {
154
- const selectElement = this._getSelectElement();
150
+ const selectNode = <HTMLSelectElement>this._selectNode;
155
151
 
156
152
  this._selectedness = false;
157
153
 
158
- if (selectElement) {
159
- selectElement._resetOptionSelectednes();
154
+ if (selectNode) {
155
+ selectNode._updateOptionItems();
160
156
  }
161
157
  }
162
158
 
@@ -164,17 +160,20 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
164
160
  }
165
161
 
166
162
  /**
167
- * Returns select element.
168
- *
169
- * @returns Select element.
163
+ * @override
170
164
  */
171
- private _getSelectElement(): HTMLSelectElement {
172
- const parentNode = <HTMLSelectElement>this.parentNode;
173
- if (parentNode?.tagName === 'SELECT') {
174
- return <HTMLSelectElement>parentNode;
175
- }
176
- if ((<HTMLSelectElement>parentNode?.parentNode)?.tagName === 'SELECT') {
177
- return <HTMLSelectElement>parentNode.parentNode;
165
+ public override _connectToNode(parentNode: INode = null): void {
166
+ const oldSelectNode = <HTMLSelectElement>this._selectNode;
167
+
168
+ super._connectToNode(parentNode);
169
+
170
+ if (oldSelectNode !== this._selectNode) {
171
+ if (oldSelectNode) {
172
+ oldSelectNode._updateOptionItems();
173
+ }
174
+ if (this._selectNode) {
175
+ (<HTMLSelectElement>this._selectNode)._updateOptionItems();
176
+ }
178
177
  }
179
178
  }
180
179
  }