happy-dom 8.9.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 (360) 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-base-element/HTMLBaseElement.js +4 -4
  117. package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
  118. package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +79 -3
  119. package/lib/nodes/html-button-element/HTMLButtonElement.js +158 -10
  120. package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
  121. package/lib/nodes/html-button-element/IHTMLButtonElement.d.ts +28 -2
  122. package/lib/nodes/html-dialog-element/HTMLDialogElement.js +3 -3
  123. package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
  124. package/lib/nodes/html-element/HTMLElement.js +12 -12
  125. package/lib/nodes/html-element/HTMLElement.js.map +1 -1
  126. package/lib/nodes/html-form-element/HTMLFormControlsCollection.d.ts +32 -0
  127. package/lib/nodes/html-form-element/HTMLFormControlsCollection.js +58 -0
  128. package/lib/nodes/html-form-element/HTMLFormControlsCollection.js.map +1 -0
  129. package/lib/nodes/html-form-element/HTMLFormElement.d.ts +37 -17
  130. package/lib/nodes/html-form-element/HTMLFormElement.js +128 -37
  131. package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
  132. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.d.ts +25 -0
  133. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js +3 -0
  134. package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js.map +1 -0
  135. package/lib/nodes/html-form-element/IHTMLFormElement.d.ts +16 -6
  136. package/lib/nodes/html-form-element/IRadioNodeList.d.ts +15 -0
  137. package/lib/nodes/html-form-element/IRadioNodeList.js +3 -0
  138. package/lib/nodes/html-form-element/IRadioNodeList.js.map +1 -0
  139. package/lib/nodes/html-form-element/RadioNodeList.d.ts +16 -0
  140. package/lib/nodes/html-form-element/RadioNodeList.js +28 -0
  141. package/lib/nodes/html-form-element/RadioNodeList.js.map +1 -0
  142. package/lib/nodes/html-image-element/HTMLImageElement.js +19 -19
  143. package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
  144. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +43 -19
  145. package/lib/nodes/html-input-element/HTMLInputElement.js +206 -111
  146. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  147. package/lib/nodes/html-input-element/IHTMLInputElement.d.ts +14 -1
  148. package/lib/nodes/html-label-element/HTMLLabelElement.js +3 -7
  149. package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
  150. package/lib/nodes/html-link-element/HTMLLinkElement.js +21 -21
  151. package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
  152. package/lib/nodes/html-media-element/HTMLMediaElement.js +21 -21
  153. package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
  154. package/lib/nodes/html-meta-element/HTMLMetaElement.js +8 -8
  155. package/lib/nodes/html-meta-element/HTMLMetaElement.js.map +1 -1
  156. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js +6 -6
  157. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js.map +1 -1
  158. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +3 -4
  159. package/lib/nodes/html-option-element/HTMLOptionElement.js +26 -29
  160. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
  161. package/lib/nodes/html-script-element/HTMLScriptElement.js +16 -16
  162. package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
  163. package/lib/nodes/html-script-element/ScriptUtility.js +5 -5
  164. package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
  165. package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.d.ts +5 -6
  166. package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js.map +1 -1
  167. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +42 -41
  168. package/lib/nodes/html-select-element/HTMLSelectElement.js +134 -138
  169. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
  170. package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.d.ts +4 -5
  171. package/lib/nodes/html-select-element/IHTMLOptionsCollection.js.map +1 -0
  172. package/lib/nodes/html-select-element/IHTMLSelectElement.d.ts +22 -2
  173. package/lib/nodes/html-slot-element/HTMLSlotElement.js +2 -2
  174. package/lib/nodes/html-slot-element/HTMLSlotElement.js.map +1 -1
  175. package/lib/nodes/html-style-element/HTMLStyleElement.js +7 -7
  176. package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
  177. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +55 -2
  178. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +150 -40
  179. package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
  180. package/lib/nodes/html-text-area-element/IHTMLTextAreaElement.d.ts +16 -0
  181. package/lib/nodes/node/Node.d.ts +12 -1
  182. package/lib/nodes/node/Node.js +50 -4
  183. package/lib/nodes/node/Node.js.map +1 -1
  184. package/lib/nodes/node/NodeList.d.ts +2 -3
  185. package/lib/nodes/node/NodeList.js.map +1 -1
  186. package/lib/nodes/parent-node/IParentNode.d.ts +4 -4
  187. package/lib/nodes/parent-node/ParentNodeUtility.d.ts +3 -3
  188. package/lib/nodes/parent-node/ParentNodeUtility.js +13 -11
  189. package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
  190. package/lib/nodes/text/Text.d.ts +13 -0
  191. package/lib/nodes/text/Text.js +30 -0
  192. package/lib/nodes/text/Text.js.map +1 -1
  193. package/lib/query-selector/QuerySelector.js +2 -2
  194. package/lib/query-selector/QuerySelector.js.map +1 -1
  195. package/lib/query-selector/SelectorItem.js +2 -0
  196. package/lib/query-selector/SelectorItem.js.map +1 -1
  197. package/lib/validity-state/ValidityState.d.ts +87 -0
  198. package/lib/validity-state/ValidityState.js +171 -0
  199. package/lib/validity-state/ValidityState.js.map +1 -0
  200. package/lib/window/GlobalWindow.d.ts +0 -8
  201. package/lib/window/GlobalWindow.js +0 -2
  202. package/lib/window/GlobalWindow.js.map +1 -1
  203. package/lib/window/INodeJSGlobal.d.ts +71 -0
  204. package/lib/window/INodeJSGlobal.js +2 -0
  205. package/lib/window/INodeJSGlobal.js.map +1 -0
  206. package/lib/window/IWindow.d.ts +30 -10
  207. package/lib/window/Window.d.ts +36 -20
  208. package/lib/window/Window.js +16 -9
  209. package/lib/window/Window.js.map +1 -1
  210. package/lib/xml-http-request/XMLHttpRequest.js +20 -12
  211. package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
  212. package/lib/xml-parser/XMLParser.js +1 -1
  213. package/lib/xml-parser/XMLParser.js.map +1 -1
  214. package/package.json +2 -3
  215. package/src/cookie/CookieJar.ts +1 -1
  216. package/src/dom-token-list/DOMTokenList.ts +24 -20
  217. package/src/event/EventTarget.ts +7 -3
  218. package/src/exception/DOMExceptionNameEnum.ts +5 -1
  219. package/src/fetch/AbortController.ts +26 -0
  220. package/src/fetch/AbortSignal.ts +44 -0
  221. package/src/fetch/Fetch.ts +666 -0
  222. package/src/fetch/Headers.ts +151 -3
  223. package/src/fetch/Request.ts +226 -94
  224. package/src/fetch/{ResourceFetchHandler.ts → ResourceFetch.ts} +3 -3
  225. package/src/fetch/Response.ts +252 -89
  226. package/src/fetch/data-uri/DataURIParser.ts +66 -0
  227. package/src/fetch/multipart/MultipartFormDataParser.ts +113 -0
  228. package/src/fetch/multipart/MultipartReader.ts +217 -0
  229. package/src/fetch/types/IHeaders.ts +80 -0
  230. package/src/fetch/types/IRequest.ts +65 -0
  231. package/src/fetch/types/IRequestBody.ts +15 -0
  232. package/src/fetch/types/IRequestCredentials.ts +2 -0
  233. package/src/fetch/types/IRequestInfo.ts +6 -0
  234. package/src/fetch/types/IRequestInit.ts +21 -0
  235. package/src/fetch/types/IRequestRedirect.ts +3 -0
  236. package/src/fetch/types/IRequestReferrerPolicy.ts +11 -0
  237. package/src/fetch/types/IResponse.ts +27 -0
  238. package/src/fetch/types/IResponseBody.ts +15 -0
  239. package/src/fetch/types/IResponseInit.ts +10 -0
  240. package/src/fetch/utilities/FetchBodyUtility.ts +175 -0
  241. package/src/fetch/utilities/FetchCORSUtility.ts +18 -0
  242. package/src/fetch/utilities/FetchRequestHeaderUtility.ts +47 -0
  243. package/src/fetch/utilities/FetchRequestReferrerUtility.ts +241 -0
  244. package/src/fetch/utilities/FetchRequestValidationUtility.ts +82 -0
  245. package/src/file/Blob.ts +2 -2
  246. package/src/file/File.ts +5 -1
  247. package/src/form-data/FormData.ts +237 -0
  248. package/src/index.ts +27 -1
  249. package/src/nodes/document/Document.ts +23 -64
  250. package/src/nodes/document/IDocument.ts +1 -1
  251. package/src/nodes/document-fragment/DocumentFragment.ts +9 -59
  252. package/src/nodes/document-fragment/IDocumentFragment.ts +2 -1
  253. package/src/nodes/element/Element.ts +43 -56
  254. package/src/nodes/element/ElementUtility.ts +137 -0
  255. package/src/nodes/element/HTMLCollection.ts +60 -3
  256. package/src/nodes/element/IHTMLCollection.ts +10 -2
  257. package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +24 -24
  258. package/src/nodes/html-base-element/HTMLBaseElement.ts +4 -4
  259. package/src/nodes/html-button-element/HTMLButtonElement.ts +184 -10
  260. package/src/nodes/html-button-element/IHTMLButtonElement.ts +31 -2
  261. package/src/nodes/html-dialog-element/HTMLDialogElement.ts +3 -3
  262. package/src/nodes/html-element/HTMLElement.ts +12 -12
  263. package/src/nodes/html-form-element/HTMLFormControlsCollection.ts +76 -0
  264. package/src/nodes/html-form-element/HTMLFormElement.ts +147 -41
  265. package/src/nodes/html-form-element/IHTMLFormControlsCollection.ts +45 -0
  266. package/src/nodes/html-form-element/IHTMLFormElement.ts +17 -6
  267. package/src/nodes/html-form-element/IRadioNodeList.ts +16 -0
  268. package/src/nodes/html-form-element/RadioNodeList.ts +24 -0
  269. package/src/nodes/html-image-element/HTMLImageElement.ts +19 -19
  270. package/src/nodes/html-input-element/HTMLInputElement.ts +232 -113
  271. package/src/nodes/html-input-element/IHTMLInputElement.ts +20 -1
  272. package/src/nodes/html-label-element/HTMLLabelElement.ts +3 -7
  273. package/src/nodes/html-link-element/HTMLLinkElement.ts +21 -21
  274. package/src/nodes/html-media-element/HTMLMediaElement.ts +21 -21
  275. package/src/nodes/html-meta-element/HTMLMetaElement.ts +8 -8
  276. package/src/nodes/html-opt-group-element/HTMLOptGroupElement.ts +6 -6
  277. package/src/nodes/html-option-element/HTMLOptionElement.ts +29 -30
  278. package/src/nodes/html-script-element/HTMLScriptElement.ts +16 -16
  279. package/src/nodes/html-script-element/ScriptUtility.ts +5 -5
  280. package/src/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.ts +5 -9
  281. package/src/nodes/html-select-element/HTMLSelectElement.ts +159 -170
  282. package/src/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.ts +4 -8
  283. package/src/nodes/html-select-element/IHTMLSelectElement.ts +25 -2
  284. package/src/nodes/html-slot-element/HTMLSlotElement.ts +2 -2
  285. package/src/nodes/html-style-element/HTMLStyleElement.ts +7 -7
  286. package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +174 -41
  287. package/src/nodes/html-text-area-element/IHTMLTextAreaElement.ts +18 -0
  288. package/src/nodes/node/Node.ts +61 -6
  289. package/src/nodes/node/NodeList.ts +2 -3
  290. package/src/nodes/parent-node/IParentNode.ts +7 -4
  291. package/src/nodes/parent-node/ParentNodeUtility.ts +25 -15
  292. package/src/nodes/text/Text.ts +38 -0
  293. package/src/query-selector/QuerySelector.ts +2 -2
  294. package/src/query-selector/SelectorItem.ts +3 -0
  295. package/src/validity-state/ValidityState.ts +211 -0
  296. package/src/window/GlobalWindow.ts +0 -2
  297. package/src/window/INodeJSGlobal.ts +70 -0
  298. package/src/window/IWindow.ts +32 -10
  299. package/src/window/Window.ts +37 -20
  300. package/src/xml-http-request/XMLHttpRequest.ts +27 -26
  301. package/src/xml-parser/XMLParser.ts +1 -1
  302. package/lib/fetch/FetchHandler.d.ts +0 -18
  303. package/lib/fetch/FetchHandler.js +0 -83
  304. package/lib/fetch/FetchHandler.js.map +0 -1
  305. package/lib/fetch/IAbortSignal.d.ts +0 -16
  306. package/lib/fetch/IAbortSignal.js +0 -4
  307. package/lib/fetch/IAbortSignal.js.map +0 -1
  308. package/lib/fetch/IBody.d.ts +0 -17
  309. package/lib/fetch/IBody.js.map +0 -1
  310. package/lib/fetch/IHeaders.d.ts +0 -18
  311. package/lib/fetch/IHeadersInit.js.map +0 -1
  312. package/lib/fetch/IRequest.d.ts +0 -18
  313. package/lib/fetch/IRequestInit.d.ts +0 -16
  314. package/lib/fetch/IRequestInit.js.map +0 -1
  315. package/lib/fetch/IResponse.d.ts +0 -20
  316. package/lib/fetch/IResponseInit.d.ts +0 -9
  317. package/lib/fetch/IResponseInit.js.map +0 -1
  318. package/lib/fetch/RequestInfo.js +0 -3
  319. package/lib/fetch/RequestInfo.js.map +0 -1
  320. package/lib/fetch/ResourceFetchHandler.js.map +0 -1
  321. package/lib/form-data/IFormData.d.ts +0 -32
  322. package/lib/form-data/IFormData.js +0 -3
  323. package/lib/form-data/IFormData.js.map +0 -1
  324. package/lib/location/RelativeURL.d.ts +0 -15
  325. package/lib/location/RelativeURL.js +0 -19
  326. package/lib/location/RelativeURL.js.map +0 -1
  327. package/lib/nodes/element/HTMLCollectionFactory.d.ts +0 -21
  328. package/lib/nodes/element/HTMLCollectionFactory.js +0 -31
  329. package/lib/nodes/element/HTMLCollectionFactory.js.map +0 -1
  330. package/lib/nodes/html-option-element/IHTMLOptionsCollection.js.map +0 -1
  331. package/lib/nodes/node/NodeListFactory.d.ts +0 -21
  332. package/lib/nodes/node/NodeListFactory.js +0 -31
  333. package/lib/nodes/node/NodeListFactory.js.map +0 -1
  334. package/lib/nodes/validity-state/ValidityState.d.ts +0 -52
  335. package/lib/nodes/validity-state/ValidityState.js +0 -81
  336. package/lib/nodes/validity-state/ValidityState.js.map +0 -1
  337. package/src/fetch/FetchHandler.ts +0 -90
  338. package/src/fetch/IAbortSignal.ts +0 -34
  339. package/src/fetch/IBody.ts +0 -18
  340. package/src/fetch/IHeaders.ts +0 -18
  341. package/src/fetch/IRequest.ts +0 -59
  342. package/src/fetch/IRequestInit.ts +0 -41
  343. package/src/fetch/IResponse.ts +0 -22
  344. package/src/fetch/IResponseInit.ts +0 -10
  345. package/src/fetch/RequestInfo.ts +0 -6
  346. package/src/form-data/IFormData.ts +0 -33
  347. package/src/location/RelativeURL.ts +0 -17
  348. package/src/nodes/element/HTMLCollectionFactory.ts +0 -31
  349. package/src/nodes/node/NodeListFactory.ts +0 -31
  350. package/src/nodes/validity-state/ValidityState.ts +0 -84
  351. /package/lib/fetch/{IHeaders.js → types/IHeaders.js} +0 -0
  352. /package/lib/fetch/{IHeadersInit.d.ts → types/IHeadersInit.d.ts} +0 -0
  353. /package/lib/fetch/{IHeadersInit.js → types/IHeadersInit.js} +0 -0
  354. /package/lib/fetch/{IRequest.js → types/IRequest.js} +0 -0
  355. /package/lib/fetch/{IRequestInit.js → types/IRequestInit.js} +0 -0
  356. /package/lib/fetch/{IResponse.js → types/IResponse.js} +0 -0
  357. /package/lib/fetch/{IResponseInit.js → types/IResponseInit.js} +0 -0
  358. /package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js +0 -0
  359. /package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.js +0 -0
  360. /package/src/fetch/{IHeadersInit.ts → types/IHeadersInit.ts} +0 -0
@@ -4,9 +4,11 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
6
  const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
7
- const ValidityState_1 = __importDefault(require("../validity-state/ValidityState"));
8
- const HTMLOptionsCollection_1 = __importDefault(require("../html-option-element/HTMLOptionsCollection"));
7
+ const ValidityState_1 = __importDefault(require("../../validity-state/ValidityState"));
8
+ const HTMLOptionsCollection_1 = __importDefault(require("./HTMLOptionsCollection"));
9
+ const Event_1 = __importDefault(require("../../event/Event"));
9
10
  const NodeTypeEnum_1 = __importDefault(require("../node/NodeTypeEnum"));
11
+ const NodeList_1 = __importDefault(require("../node/NodeList"));
10
12
  /**
11
13
  * HTML Select Element.
12
14
  *
@@ -16,7 +18,13 @@ const NodeTypeEnum_1 = __importDefault(require("../node/NodeTypeEnum"));
16
18
  class HTMLSelectElement extends HTMLElement_1.default {
17
19
  constructor() {
18
20
  super(...arguments);
21
+ // Public properties.
22
+ this.length = 0;
19
23
  this.options = new HTMLOptionsCollection_1.default(this);
24
+ this.validationMessage = '';
25
+ this.validity = new ValidityState_1.default(this);
26
+ // Private properties
27
+ this._selectNode = this;
20
28
  // Events
21
29
  this.onchange = null;
22
30
  this.oninput = null;
@@ -27,7 +35,7 @@ class HTMLSelectElement extends HTMLElement_1.default {
27
35
  * @returns Name.
28
36
  */
29
37
  get name() {
30
- return this.getAttributeNS(null, 'name') || '';
38
+ return this.getAttribute('name') || '';
31
39
  }
32
40
  /**
33
41
  * Sets name.
@@ -35,7 +43,7 @@ class HTMLSelectElement extends HTMLElement_1.default {
35
43
  * @param name Name.
36
44
  */
37
45
  set name(name) {
38
- this.setAttributeNS(null, 'name', name);
46
+ this.setAttribute('name', name);
39
47
  }
40
48
  /**
41
49
  * Returns disabled.
@@ -43,7 +51,7 @@ class HTMLSelectElement extends HTMLElement_1.default {
43
51
  * @returns Disabled.
44
52
  */
45
53
  get disabled() {
46
- return this.getAttributeNS(null, 'disabled') !== null;
54
+ return this.getAttribute('disabled') !== null;
47
55
  }
48
56
  /**
49
57
  * Sets disabled.
@@ -52,10 +60,10 @@ class HTMLSelectElement extends HTMLElement_1.default {
52
60
  */
53
61
  set disabled(disabled) {
54
62
  if (!disabled) {
55
- this.removeAttributeNS(null, 'disabled');
63
+ this.removeAttribute('disabled');
56
64
  }
57
65
  else {
58
- this.setAttributeNS(null, 'disabled', '');
66
+ this.setAttribute('disabled', '');
59
67
  }
60
68
  }
61
69
  /**
@@ -64,7 +72,7 @@ class HTMLSelectElement extends HTMLElement_1.default {
64
72
  * @returns Multiple.
65
73
  */
66
74
  get multiple() {
67
- return this.getAttributeNS(null, 'multiple') !== null;
75
+ return this.getAttribute('multiple') !== null;
68
76
  }
69
77
  /**
70
78
  * Sets multiple.
@@ -73,10 +81,10 @@ class HTMLSelectElement extends HTMLElement_1.default {
73
81
  */
74
82
  set multiple(multiple) {
75
83
  if (!multiple) {
76
- this.removeAttributeNS(null, 'multiple');
84
+ this.removeAttribute('multiple');
77
85
  }
78
86
  else {
79
- this.setAttributeNS(null, 'multiple', '');
87
+ this.setAttribute('multiple', '');
80
88
  }
81
89
  }
82
90
  /**
@@ -85,7 +93,7 @@ class HTMLSelectElement extends HTMLElement_1.default {
85
93
  * @returns Autofocus.
86
94
  */
87
95
  get autofocus() {
88
- return this.getAttributeNS(null, 'autofocus') !== null;
96
+ return this.getAttribute('autofocus') !== null;
89
97
  }
90
98
  /**
91
99
  * Sets autofocus.
@@ -94,35 +102,19 @@ class HTMLSelectElement extends HTMLElement_1.default {
94
102
  */
95
103
  set autofocus(autofocus) {
96
104
  if (!autofocus) {
97
- this.removeAttributeNS(null, 'autofocus');
105
+ this.removeAttribute('autofocus');
98
106
  }
99
107
  else {
100
- this.setAttributeNS(null, 'autofocus', '');
108
+ this.setAttribute('autofocus', '');
101
109
  }
102
110
  }
103
- /**
104
- * Returns length.
105
- *
106
- * @returns length.
107
- */
108
- get length() {
109
- return this.options.length;
110
- }
111
- /**
112
- * Sets length.
113
- *
114
- * @param length Length.
115
- */
116
- set length(length) {
117
- this.options.length = length;
118
- }
119
111
  /**
120
112
  * Returns required.
121
113
  *
122
114
  * @returns Required.
123
115
  */
124
116
  get required() {
125
- return this.getAttributeNS(null, 'required') !== null;
117
+ return this.getAttribute('required') !== null;
126
118
  }
127
119
  /**
128
120
  * Sets required.
@@ -131,10 +123,10 @@ class HTMLSelectElement extends HTMLElement_1.default {
131
123
  */
132
124
  set required(required) {
133
125
  if (!required) {
134
- this.removeAttributeNS(null, 'required');
126
+ this.removeAttribute('required');
135
127
  }
136
128
  else {
137
- this.setAttributeNS(null, 'required', '');
129
+ this.setAttribute('required', '');
138
130
  }
139
131
  }
140
132
  /**
@@ -207,24 +199,34 @@ class HTMLSelectElement extends HTMLElement_1.default {
207
199
  }
208
200
  }
209
201
  /**
210
- * Returns the parent form element.
202
+ * Returns the associated label elements.
211
203
  *
212
- * @returns Form.
204
+ * @returns Label elements.
213
205
  */
214
- get form() {
215
- let parent = this.parentNode;
216
- while (parent && parent.tagName !== 'FORM') {
217
- parent = parent.parentNode;
206
+ get labels() {
207
+ const id = this.id;
208
+ if (id) {
209
+ const rootNode = this.getRootNode();
210
+ const labels = rootNode.querySelectorAll(`label[for="${id}"]`);
211
+ let parent = this.parentNode;
212
+ while (parent) {
213
+ if (parent['tagName'] === 'LABEL') {
214
+ labels.push(parent);
215
+ break;
216
+ }
217
+ parent = parent.parentNode;
218
+ }
219
+ return labels;
218
220
  }
219
- return parent;
221
+ return new NodeList_1.default();
220
222
  }
221
223
  /**
222
- * Returns validity state.
224
+ * Returns the parent form element.
223
225
  *
224
- * @returns Validity state.
226
+ * @returns Form.
225
227
  */
226
- get validity() {
227
- return new ValidityState_1.default(this);
228
+ get form() {
229
+ return this._formNode;
228
230
  }
229
231
  /**
230
232
  * Returns "true" if it will validate.
@@ -249,7 +251,7 @@ class HTMLSelectElement extends HTMLElement_1.default {
249
251
  /**
250
252
  * Adds new option to options collection.
251
253
  *
252
- * @param element HTMLOptionElement or HTMLOptGroupElement to add.
254
+ * @param element HTMLOptionElement to add.
253
255
  * @param before HTMLOptionElement or index number.
254
256
  */
255
257
  add(element, before) {
@@ -269,93 +271,70 @@ class HTMLSelectElement extends HTMLElement_1.default {
269
271
  }
270
272
  }
271
273
  /**
272
- * @override
274
+ * Sets validation message.
275
+ *
276
+ * @param message Message.
273
277
  */
274
- appendChild(node) {
275
- if (node.nodeType === NodeTypeEnum_1.default.elementNode) {
276
- const element = node;
277
- const previousLength = this.options.length;
278
- if (element.tagName === 'OPTION' || element.tagName === 'OPTGROUP') {
279
- this.options.push(element);
280
- }
281
- this._updateIndexProperties(previousLength, this.options.length);
282
- this._resetOptionSelectednes();
283
- }
284
- return super.appendChild(node);
278
+ setCustomValidity(message) {
279
+ this.validationMessage = String(message);
285
280
  }
286
281
  /**
287
- * @override
282
+ * Checks validity.
283
+ *
284
+ * @returns "true" if the field is valid.
288
285
  */
289
- insertBefore(newNode, referenceNode) {
290
- const returnValue = super.insertBefore(newNode, referenceNode);
291
- if (newNode.nodeType === NodeTypeEnum_1.default.elementNode &&
292
- referenceNode?.nodeType === NodeTypeEnum_1.default.elementNode) {
293
- const newElement = newNode;
294
- const previousLength = this.options.length;
295
- if (newElement.tagName === 'OPTION' || newElement.tagName === 'OPTGROUP') {
296
- const referenceElement = referenceNode;
297
- if (referenceElement &&
298
- (referenceElement.tagName === 'OPTION' || referenceElement.tagName === 'OPTGROUP')) {
299
- const referenceIndex = this.options.indexOf(referenceElement);
300
- if (referenceIndex !== -1) {
301
- this.options.splice(referenceIndex, 0, newElement);
302
- }
303
- }
304
- else {
305
- this.options.push(newElement);
306
- }
307
- }
308
- this._updateIndexProperties(previousLength, this.options.length);
286
+ checkValidity() {
287
+ const valid = this.disabled || this.validity.valid;
288
+ if (!valid) {
289
+ this.dispatchEvent(new Event_1.default('invalid', { bubbles: true, cancelable: true }));
309
290
  }
310
- if (newNode.nodeType === NodeTypeEnum_1.default.elementNode) {
311
- this._resetOptionSelectednes();
312
- }
313
- return returnValue;
291
+ return valid;
314
292
  }
315
293
  /**
316
- * @override
294
+ * Reports validity.
295
+ *
296
+ * @returns "true" if the field is valid.
317
297
  */
318
- removeChild(node) {
319
- if (node.nodeType === NodeTypeEnum_1.default.elementNode) {
320
- const element = node;
321
- const previousLength = this.options.length;
322
- if (element.tagName === 'OPTION' || element.tagName === 'OPTION') {
323
- const index = this.options.indexOf(node);
324
- if (index !== -1) {
325
- this.options.splice(index, 1);
326
- }
327
- }
328
- this._updateIndexProperties(previousLength, this.options.length);
329
- this._resetOptionSelectednes();
330
- }
331
- return super.removeChild(node);
298
+ reportValidity() {
299
+ return this.checkValidity();
332
300
  }
333
301
  /**
334
- * Resets the option selectedness.
302
+ * Updates option item.
335
303
  *
336
304
  * Based on:
337
305
  * https://github.com/jsdom/jsdom/blob/master/lib/jsdom/living/nodes/HTMLSelectElement-impl.js
338
306
  *
339
- * @param [newOption] Optional new option element to be selected.
340
307
  * @see https://html.spec.whatwg.org/multipage/form-elements.html#selectedness-setting-algorithm
308
+ * @param [selectedOption] Selected option.
341
309
  */
342
- _resetOptionSelectednes(newOption) {
343
- if (this.hasAttributeNS(null, 'multiple')) {
344
- return;
310
+ _updateOptionItems(selectedOption) {
311
+ const optionElements = (this.getElementsByTagName('option'));
312
+ if (optionElements.length < this.options.length) {
313
+ this.options.splice(this.options.length - 1, this.options.length - optionElements.length);
314
+ for (let i = optionElements.length - 1, max = this.length; i < max; i++) {
315
+ delete this[i];
316
+ }
345
317
  }
318
+ const isMultiple = this.hasAttributeNS(null, 'multiple');
346
319
  const selected = [];
347
- for (let i = 0, max = this.options.length; i < max; i++) {
348
- if (newOption) {
349
- this.options[i]._selectedness = this.options[i] === newOption;
350
- }
351
- if (this.options[i]._selectedness) {
352
- selected.push(this.options[i]);
320
+ for (let i = 0; i < optionElements.length; i++) {
321
+ this.options[i] = optionElements[i];
322
+ this[i] = optionElements[i];
323
+ if (!isMultiple) {
324
+ if (selectedOption) {
325
+ optionElements[i]._selectedness =
326
+ optionElements[i] === selectedOption;
327
+ }
328
+ if (optionElements[i]._selectedness) {
329
+ selected.push(optionElements[i]);
330
+ }
353
331
  }
354
332
  }
333
+ this.length = optionElements.length;
355
334
  const size = this._getDisplaySize();
356
335
  if (size === 1 && !selected.length) {
357
- for (let i = 0, max = this.options.length; i < max; i++) {
358
- const option = this.options[i];
336
+ for (let i = 0, max = optionElements.length; i < max; i++) {
337
+ const option = optionElements[i];
359
338
  let disabled = option.hasAttributeNS(null, 'disabled');
360
339
  const parentNode = option.parentNode;
361
340
  if (parentNode &&
@@ -371,8 +350,51 @@ class HTMLSelectElement extends HTMLElement_1.default {
371
350
  }
372
351
  }
373
352
  else if (selected.length >= 2) {
374
- for (let i = 0, max = this.options.length; i < max; i++) {
375
- this.options[i]._selectedness = i === selected.length - 1;
353
+ for (let i = 0, max = optionElements.length; i < max; i++) {
354
+ optionElements[i]._selectedness = i === selected.length - 1;
355
+ }
356
+ }
357
+ }
358
+ /**
359
+ * @override
360
+ */
361
+ setAttributeNode(attribute) {
362
+ const replacedAttribute = super.setAttributeNode(attribute);
363
+ const oldValue = replacedAttribute ? replacedAttribute.value : null;
364
+ if ((attribute.name === 'id' || attribute.name === 'name') && this._formNode) {
365
+ if (oldValue) {
366
+ this._formNode._removeFormControlItem(this, oldValue);
367
+ }
368
+ if (attribute.value) {
369
+ this._formNode._appendFormControlItem(this, attribute.value);
370
+ }
371
+ }
372
+ return replacedAttribute;
373
+ }
374
+ /**
375
+ * @override
376
+ */
377
+ removeAttributeNode(attribute) {
378
+ super.removeAttributeNode(attribute);
379
+ if ((attribute.name === 'id' || attribute.name === 'name') && this._formNode) {
380
+ this._formNode._removeFormControlItem(this, attribute.value);
381
+ }
382
+ return attribute;
383
+ }
384
+ /**
385
+ * @override
386
+ */
387
+ _connectToNode(parentNode = null) {
388
+ const oldFormNode = this._formNode;
389
+ super._connectToNode(parentNode);
390
+ if (oldFormNode !== this._formNode) {
391
+ if (oldFormNode) {
392
+ oldFormNode._removeFormControlItem(this, this.name);
393
+ oldFormNode._removeFormControlItem(this, this.id);
394
+ }
395
+ if (this._formNode) {
396
+ this._formNode._appendFormControlItem(this, this.name);
397
+ this._formNode._appendFormControlItem(this, this.id);
376
398
  }
377
399
  }
378
400
  }
@@ -383,39 +405,13 @@ class HTMLSelectElement extends HTMLElement_1.default {
383
405
  */
384
406
  _getDisplaySize() {
385
407
  if (this.hasAttributeNS(null, 'size')) {
386
- const size = parseInt(this.getAttributeNS(null, 'size'));
408
+ const size = parseInt(this.getAttribute('size'));
387
409
  if (!isNaN(size) && size >= 0) {
388
410
  return size;
389
411
  }
390
412
  }
391
413
  return this.hasAttributeNS(null, 'multiple') ? 4 : 1;
392
414
  }
393
- /**
394
- * Updates index properties.
395
- *
396
- * @param previousLength Length before the update.
397
- * @param newLength Length after the update.
398
- */
399
- _updateIndexProperties(previousLength, newLength) {
400
- if (previousLength > newLength) {
401
- for (let i = newLength; i < previousLength; i++) {
402
- if (this.hasOwnProperty(String(i))) {
403
- delete this[String(i)];
404
- }
405
- }
406
- }
407
- else if (previousLength < newLength) {
408
- for (let i = previousLength; i < newLength; i++) {
409
- Object.defineProperty(this, String(i), {
410
- get: () => {
411
- return this.options[i];
412
- },
413
- enumerable: true,
414
- configurable: true
415
- });
416
- }
417
- }
418
- }
419
415
  }
420
416
  exports.default = HTMLSelectElement;
421
417
  //# sourceMappingURL=HTMLSelectElement.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLSelectElement.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/HTMLSelectElement.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"HTMLSelectElement.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/HTMLSelectElement.ts"],"names":[],"mappings":"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"}
@@ -1,13 +1,12 @@
1
1
  import IHTMLCollection from '../element/IHTMLCollection';
2
- import IHTMLOptGroupElement from '../html-opt-group-element/IHTMLOptGroupElement';
3
- import IHTMLOptionElement from './IHTMLOptionElement';
2
+ import IHTMLOptionElement from '../html-option-element/IHTMLOptionElement';
4
3
  /**
5
4
  * HTML Options Collection.
6
5
  *
7
6
  * Reference:
8
7
  * https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptionsCollection.
9
8
  */
10
- export default interface IHTMLOptionsCollection extends IHTMLCollection<IHTMLOptionElement | IHTMLOptGroupElement> {
9
+ export default interface IHTMLOptionsCollection extends IHTMLCollection<IHTMLOptionElement, IHTMLOptionElement> {
11
10
  selectedIndex: number;
12
11
  length: number;
13
12
  /**
@@ -16,13 +15,13 @@ export default interface IHTMLOptionsCollection extends IHTMLCollection<IHTMLOpt
16
15
  * @param element HTMLOptionElement or HTMLOptGroupElement to add.
17
16
  * @param before HTMLOptionElement or index number.
18
17
  */
19
- add(element: IHTMLOptionElement | IHTMLOptGroupElement, before?: number | IHTMLOptionElement | IHTMLOptGroupElement): void;
18
+ add(element: IHTMLOptionElement, before?: number | IHTMLOptionElement): void;
20
19
  /**
21
20
  * Returns option element by index.
22
21
  *
23
22
  * @param index Index.
24
23
  */
25
- item(index: number): IHTMLOptionElement | IHTMLOptGroupElement;
24
+ item(index: number): IHTMLOptionElement;
26
25
  /**
27
26
  * Removes option element from the collection.
28
27
  *
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHTMLOptionsCollection.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/IHTMLOptionsCollection.ts"],"names":[],"mappings":""}
@@ -2,8 +2,8 @@ import IHTMLElement from '../html-element/IHTMLElement';
2
2
  import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
3
3
  import IHTMLLabelElement from '../html-label-element/IHTMLLabelElement';
4
4
  import INodeList from '../node/INodeList';
5
- import IHTMLOptionsCollection from '../html-option-element/IHTMLOptionsCollection';
6
- import ValidityState from '../validity-state/ValidityState';
5
+ import IHTMLOptionsCollection from './IHTMLOptionsCollection';
6
+ import ValidityState from '../../validity-state/ValidityState';
7
7
  import Event from '../../event/Event';
8
8
  import IHTMLOptionElement from '../html-option-element/IHTMLOptionElement';
9
9
  import IHTMLOptGroupElement from '../html-opt-group-element/IHTMLOptGroupElement';
@@ -20,6 +20,7 @@ export default interface IHTMLSelectElement extends IHTMLElement {
20
20
  readonly type: string;
21
21
  readonly validity: ValidityState;
22
22
  readonly willValidate: boolean;
23
+ readonly validationMessage: string;
23
24
  autofocus: boolean;
24
25
  disabled: boolean;
25
26
  length: number;
@@ -27,6 +28,7 @@ export default interface IHTMLSelectElement extends IHTMLElement {
27
28
  value: string;
28
29
  name: string;
29
30
  multiple: boolean;
31
+ required: boolean;
30
32
  onchange: (event: Event) => void | null;
31
33
  oninput: (event: Event) => void | null;
32
34
  /**
@@ -48,4 +50,22 @@ export default interface IHTMLSelectElement extends IHTMLElement {
48
50
  * @param index Index.
49
51
  */
50
52
  remove(index?: number): void;
53
+ /**
54
+ * Sets validation message.
55
+ *
56
+ * @param message Message.
57
+ */
58
+ setCustomValidity(message: string): void;
59
+ /**
60
+ * Checks validity.
61
+ *
62
+ * @returns "true" if the field is valid.
63
+ */
64
+ checkValidity(): boolean;
65
+ /**
66
+ * Reports validity.
67
+ *
68
+ * @returns "true" if the field is valid.
69
+ */
70
+ reportValidity(): boolean;
51
71
  }
@@ -22,7 +22,7 @@ class HTMLSlotElement extends HTMLElement_1.default {
22
22
  * @returns Name.
23
23
  */
24
24
  get name() {
25
- return this.getAttributeNS(null, 'name') || '';
25
+ return this.getAttribute('name') || '';
26
26
  }
27
27
  /**
28
28
  * Sets name.
@@ -30,7 +30,7 @@ class HTMLSlotElement extends HTMLElement_1.default {
30
30
  * @param name Name.
31
31
  */
32
32
  set name(name) {
33
- this.setAttributeNS(null, 'name', name);
33
+ this.setAttribute('name', name);
34
34
  }
35
35
  /**
36
36
  * Sets the slot's manually assigned nodes to an ordered set of slottables.
@@ -1 +1 @@
1
- {"version":3,"file":"HTMLSlotElement.js","sourceRoot":"","sources":["../../../src/nodes/html-slot-element/HTMLSlotElement.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AAQtD;;;;;GAKG;AACH,MAAqB,eAAgB,SAAQ,qBAAW;IAAxD;;QACC,SAAS;QACF,iBAAY,GAAkC,IAAI,CAAC;IAiG3D,CAAC;IA/FA;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,CAAC;IAChD,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI,CAAC,IAAY;QAC3B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAG,MAA+B;QAC/C,mHAAmH;IACpH,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,OAA+B;QACnD,MAAM,IAAI,GAAiB,IAAI,CAAC,WAAW,EAAG,EAAE,IAAI,CAAC;QAErD,gIAAgI;QAEhI,IAAI,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,IAAI,IAAI,EAAE;gBACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aACtC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC/B;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;;;OAMG;IACI,gBAAgB,CAAC,QAAgC;QACvD,MAAM,IAAI,GAAiB,IAAI,CAAC,WAAW,EAAG,EAAE,IAAI,CAAC;QAErD,6HAA6H;QAE7H,IAAI,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,IAAI,IAAI,EAAE;gBACT,MAAM,gBAAgB,GAAG,EAAE,CAAC;gBAE5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;wBACxB,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC7B;iBACD;gBAED,OAAO,gBAAgB,CAAC;aACxB;YAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SAC7B;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,IAAI,GAAG,KAAK;QAC5B,OAAwB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;CACD;AAnGD,kCAmGC"}
1
+ {"version":3,"file":"HTMLSlotElement.js","sourceRoot":"","sources":["../../../src/nodes/html-slot-element/HTMLSlotElement.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AAQtD;;;;;GAKG;AACH,MAAqB,eAAgB,SAAQ,qBAAW;IAAxD;;QACC,SAAS;QACF,iBAAY,GAAkC,IAAI,CAAC;IAiG3D,CAAC;IA/FA;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI,CAAC,IAAY;QAC3B,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,GAAG,MAA+B;QAC/C,mHAAmH;IACpH,CAAC;IAED;;;;;;OAMG;IACI,aAAa,CAAC,OAA+B;QACnD,MAAM,IAAI,GAAiB,IAAI,CAAC,WAAW,EAAG,EAAE,IAAI,CAAC;QAErD,gIAAgI;QAEhI,IAAI,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,IAAI,IAAI,EAAE;gBACT,OAAO,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;aACtC;YAED,OAAO,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;SAC/B;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;;;OAMG;IACI,gBAAgB,CAAC,QAAgC;QACvD,MAAM,IAAI,GAAiB,IAAI,CAAC,WAAW,EAAG,EAAE,IAAI,CAAC;QAErD,6HAA6H;QAE7H,IAAI,IAAI,EAAE;YACT,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;YAEvB,IAAI,IAAI,EAAE;gBACT,MAAM,gBAAgB,GAAG,EAAE,CAAC;gBAE5B,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,QAAQ,EAAE;oBAClC,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI,EAAE;wBACxB,gBAAgB,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;qBAC7B;iBACD;gBAED,OAAO,gBAAgB,CAAC;aACxB;YAED,OAAO,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;SAC7B;QAED,OAAO,EAAE,CAAC;IACX,CAAC;IAED;;;;;;OAMG;IACI,SAAS,CAAC,IAAI,GAAG,KAAK;QAC5B,OAAwB,KAAK,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IAC/C,CAAC;CACD;AAnGD,kCAmGC"}
@@ -37,7 +37,7 @@ class HTMLStyleElement extends HTMLElement_1.default {
37
37
  * @returns Media.
38
38
  */
39
39
  get media() {
40
- return this.getAttributeNS(null, 'media') || '';
40
+ return this.getAttribute('media') || '';
41
41
  }
42
42
  /**
43
43
  * Sets media.
@@ -45,7 +45,7 @@ class HTMLStyleElement extends HTMLElement_1.default {
45
45
  * @param media Media.
46
46
  */
47
47
  set media(media) {
48
- this.setAttributeNS(null, 'media', media);
48
+ this.setAttribute('media', media);
49
49
  }
50
50
  /**
51
51
  * Returns type.
@@ -53,7 +53,7 @@ class HTMLStyleElement extends HTMLElement_1.default {
53
53
  * @returns Type.
54
54
  */
55
55
  get type() {
56
- return this.getAttributeNS(null, 'type') || '';
56
+ return this.getAttribute('type') || '';
57
57
  }
58
58
  /**
59
59
  * Sets type.
@@ -61,7 +61,7 @@ class HTMLStyleElement extends HTMLElement_1.default {
61
61
  * @param type Type.
62
62
  */
63
63
  set type(type) {
64
- this.setAttributeNS(null, 'type', type);
64
+ this.setAttribute('type', type);
65
65
  }
66
66
  /**
67
67
  * Returns disabled.
@@ -69,7 +69,7 @@ class HTMLStyleElement extends HTMLElement_1.default {
69
69
  * @returns Disabled.
70
70
  */
71
71
  get disabled() {
72
- return this.getAttributeNS(null, 'disabled') !== null;
72
+ return this.getAttribute('disabled') !== null;
73
73
  }
74
74
  /**
75
75
  * Sets disabled.
@@ -78,10 +78,10 @@ class HTMLStyleElement extends HTMLElement_1.default {
78
78
  */
79
79
  set disabled(disabled) {
80
80
  if (!disabled) {
81
- this.removeAttributeNS(null, 'disabled');
81
+ this.removeAttribute('disabled');
82
82
  }
83
83
  else {
84
- this.setAttributeNS(null, 'disabled', '');
84
+ this.setAttribute('disabled', '');
85
85
  }
86
86
  }
87
87
  }