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.
- package/README.md +2 -2
- package/lib/cookie/CookieJar.js +1 -1
- package/lib/cookie/CookieJar.js.map +1 -1
- package/lib/dom-token-list/DOMTokenList.js +24 -20
- package/lib/dom-token-list/DOMTokenList.js.map +1 -1
- package/lib/event/EventTarget.js +6 -3
- package/lib/event/EventTarget.js.map +1 -1
- package/lib/exception/DOMExceptionNameEnum.d.ts +5 -1
- package/lib/exception/DOMExceptionNameEnum.js +4 -0
- package/lib/exception/DOMExceptionNameEnum.js.map +1 -1
- package/lib/fetch/AbortController.d.ts +19 -0
- package/lib/fetch/AbortController.js +30 -0
- package/lib/fetch/AbortController.js.map +1 -0
- package/lib/fetch/AbortSignal.d.ts +25 -0
- package/lib/fetch/AbortSignal.js +51 -0
- package/lib/fetch/AbortSignal.js.map +1 -0
- package/lib/fetch/Fetch.d.ts +117 -0
- package/lib/fetch/Fetch.js +530 -0
- package/lib/fetch/Fetch.js.map +1 -0
- package/lib/fetch/Headers.d.ts +81 -3
- package/lib/fetch/Headers.js +139 -24
- package/lib/fetch/Headers.js.map +1 -1
- package/lib/fetch/Request.d.ts +56 -32
- package/lib/fetch/Request.js +165 -110
- package/lib/fetch/Request.js.map +1 -1
- package/lib/fetch/{ResourceFetchHandler.d.ts → ResourceFetch.d.ts} +1 -1
- package/lib/fetch/{ResourceFetchHandler.js → ResourceFetch.js} +5 -5
- package/lib/fetch/ResourceFetch.js.map +1 -0
- package/lib/fetch/Response.d.ts +60 -26
- package/lib/fetch/Response.js +196 -104
- package/lib/fetch/Response.js.map +1 -1
- package/lib/fetch/data-uri/DataURIParser.d.ts +20 -0
- package/lib/fetch/data-uri/DataURIParser.js +60 -0
- package/lib/fetch/data-uri/DataURIParser.js.map +1 -0
- package/lib/fetch/multipart/MultipartFormDataParser.d.ts +40 -0
- package/lib/fetch/multipart/MultipartFormDataParser.js +81 -0
- package/lib/fetch/multipart/MultipartFormDataParser.js.map +1 -0
- package/lib/fetch/multipart/MultipartReader.d.ts +49 -0
- package/lib/fetch/multipart/MultipartReader.js +178 -0
- package/lib/fetch/multipart/MultipartReader.js.map +1 -0
- package/lib/fetch/types/IHeaders.d.ts +71 -0
- package/lib/fetch/{IHeaders.js.map → types/IHeaders.js.map} +1 -1
- package/lib/fetch/types/IHeadersInit.js.map +1 -0
- package/lib/fetch/types/IRequest.d.ts +60 -0
- package/lib/fetch/{IRequest.js.map → types/IRequest.js.map} +1 -1
- package/lib/fetch/types/IRequestBody.d.ts +7 -0
- package/lib/fetch/{IBody.js → types/IRequestBody.js} +1 -1
- package/lib/fetch/types/IRequestBody.js.map +1 -0
- package/lib/fetch/types/IRequestCredentials.d.ts +2 -0
- package/lib/fetch/types/IRequestCredentials.js +3 -0
- package/lib/fetch/types/IRequestCredentials.js.map +1 -0
- package/lib/fetch/{RequestInfo.d.ts → types/IRequestInfo.d.ts} +2 -2
- package/lib/fetch/types/IRequestInfo.js +3 -0
- package/lib/fetch/types/IRequestInfo.js.map +1 -0
- package/lib/fetch/types/IRequestInit.d.ts +21 -0
- package/lib/fetch/types/IRequestInit.js.map +1 -0
- package/lib/fetch/types/IRequestRedirect.d.ts +2 -0
- package/lib/fetch/types/IRequestRedirect.js +3 -0
- package/lib/fetch/types/IRequestRedirect.js.map +1 -0
- package/lib/fetch/types/IRequestReferrerPolicy.d.ts +2 -0
- package/lib/fetch/types/IRequestReferrerPolicy.js +3 -0
- package/lib/fetch/types/IRequestReferrerPolicy.js.map +1 -0
- package/lib/fetch/types/IResponse.d.ts +27 -0
- package/lib/fetch/{IResponse.js.map → types/IResponse.js.map} +1 -1
- package/lib/fetch/types/IResponseBody.d.ts +7 -0
- package/lib/fetch/types/IResponseBody.js +3 -0
- package/lib/fetch/types/IResponseBody.js.map +1 -0
- package/lib/fetch/types/IResponseInit.d.ts +9 -0
- package/lib/fetch/types/IResponseInit.js.map +1 -0
- package/lib/fetch/utilities/FetchBodyUtility.d.ts +44 -0
- package/lib/fetch/utilities/FetchBodyUtility.js +156 -0
- package/lib/fetch/utilities/FetchBodyUtility.js.map +1 -0
- package/lib/fetch/utilities/FetchCORSUtility.d.ts +12 -0
- package/lib/fetch/utilities/FetchCORSUtility.js +20 -0
- package/lib/fetch/utilities/FetchCORSUtility.js.map +1 -0
- package/lib/fetch/utilities/FetchRequestHeaderUtility.d.ts +12 -0
- package/lib/fetch/utilities/FetchRequestHeaderUtility.js +45 -0
- package/lib/fetch/utilities/FetchRequestHeaderUtility.js.map +1 -0
- package/lib/fetch/utilities/FetchRequestReferrerUtility.d.ts +55 -0
- package/lib/fetch/utilities/FetchRequestReferrerUtility.js +194 -0
- package/lib/fetch/utilities/FetchRequestReferrerUtility.js.map +1 -0
- package/lib/fetch/utilities/FetchRequestValidationUtility.d.ts +38 -0
- package/lib/fetch/utilities/FetchRequestValidationUtility.js +70 -0
- package/lib/fetch/utilities/FetchRequestValidationUtility.js.map +1 -0
- package/lib/file/Blob.d.ts +2 -2
- package/lib/file/Blob.js +1 -1
- package/lib/file/Blob.js.map +1 -1
- package/lib/file/File.d.ts +2 -1
- package/lib/file/File.js.map +1 -1
- package/lib/form-data/FormData.d.ts +98 -0
- package/lib/form-data/FormData.js +212 -0
- package/lib/form-data/FormData.js.map +1 -0
- package/lib/index.d.ts +14 -1
- package/lib/index.js +20 -2
- package/lib/index.js.map +1 -1
- package/lib/nodes/document/Document.d.ts +5 -17
- package/lib/nodes/document/Document.js +11 -54
- package/lib/nodes/document/Document.js.map +1 -1
- package/lib/nodes/document/IDocument.d.ts +1 -1
- package/lib/nodes/document-fragment/DocumentFragment.d.ts +3 -14
- package/lib/nodes/document-fragment/DocumentFragment.js +7 -51
- package/lib/nodes/document-fragment/DocumentFragment.js.map +1 -1
- package/lib/nodes/document-fragment/IDocumentFragment.d.ts +2 -1
- package/lib/nodes/element/Element.d.ts +8 -8
- package/lib/nodes/element/Element.js +28 -45
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/element/ElementUtility.d.ts +32 -0
- package/lib/nodes/element/ElementUtility.js +105 -0
- package/lib/nodes/element/ElementUtility.js.map +1 -0
- package/lib/nodes/element/HTMLCollection.d.ts +26 -3
- package/lib/nodes/element/HTMLCollection.js +51 -0
- package/lib/nodes/element/HTMLCollection.js.map +1 -1
- package/lib/nodes/element/IHTMLCollection.d.ts +9 -2
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +24 -24
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
- package/lib/nodes/html-base-element/HTMLBaseElement.js +4 -4
- package/lib/nodes/html-base-element/HTMLBaseElement.js.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +79 -3
- package/lib/nodes/html-button-element/HTMLButtonElement.js +158 -10
- package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
- package/lib/nodes/html-button-element/IHTMLButtonElement.d.ts +28 -2
- package/lib/nodes/html-dialog-element/HTMLDialogElement.js +3 -3
- package/lib/nodes/html-dialog-element/HTMLDialogElement.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +12 -12
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-form-element/HTMLFormControlsCollection.d.ts +32 -0
- package/lib/nodes/html-form-element/HTMLFormControlsCollection.js +58 -0
- package/lib/nodes/html-form-element/HTMLFormControlsCollection.js.map +1 -0
- package/lib/nodes/html-form-element/HTMLFormElement.d.ts +37 -17
- package/lib/nodes/html-form-element/HTMLFormElement.js +128 -37
- package/lib/nodes/html-form-element/HTMLFormElement.js.map +1 -1
- package/lib/nodes/html-form-element/IHTMLFormControlsCollection.d.ts +25 -0
- package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js +3 -0
- package/lib/nodes/html-form-element/IHTMLFormControlsCollection.js.map +1 -0
- package/lib/nodes/html-form-element/IHTMLFormElement.d.ts +16 -6
- package/lib/nodes/html-form-element/IRadioNodeList.d.ts +15 -0
- package/lib/nodes/html-form-element/IRadioNodeList.js +3 -0
- package/lib/nodes/html-form-element/IRadioNodeList.js.map +1 -0
- package/lib/nodes/html-form-element/RadioNodeList.d.ts +16 -0
- package/lib/nodes/html-form-element/RadioNodeList.js +28 -0
- package/lib/nodes/html-form-element/RadioNodeList.js.map +1 -0
- package/lib/nodes/html-image-element/HTMLImageElement.js +19 -19
- package/lib/nodes/html-image-element/HTMLImageElement.js.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts +43 -19
- package/lib/nodes/html-input-element/HTMLInputElement.js +206 -111
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- package/lib/nodes/html-input-element/IHTMLInputElement.d.ts +14 -1
- package/lib/nodes/html-label-element/HTMLLabelElement.js +3 -7
- package/lib/nodes/html-label-element/HTMLLabelElement.js.map +1 -1
- package/lib/nodes/html-link-element/HTMLLinkElement.js +21 -21
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.js +21 -21
- package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
- package/lib/nodes/html-meta-element/HTMLMetaElement.js +8 -8
- package/lib/nodes/html-meta-element/HTMLMetaElement.js.map +1 -1
- package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js +6 -6
- package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js.map +1 -1
- package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +3 -4
- package/lib/nodes/html-option-element/HTMLOptionElement.js +26 -29
- package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
- package/lib/nodes/html-script-element/HTMLScriptElement.js +16 -16
- package/lib/nodes/html-script-element/HTMLScriptElement.js.map +1 -1
- package/lib/nodes/html-script-element/ScriptUtility.js +5 -5
- package/lib/nodes/html-script-element/ScriptUtility.js.map +1 -1
- package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.d.ts +5 -6
- package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +42 -41
- package/lib/nodes/html-select-element/HTMLSelectElement.js +134 -138
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.d.ts +4 -5
- package/lib/nodes/html-select-element/IHTMLOptionsCollection.js.map +1 -0
- package/lib/nodes/html-select-element/IHTMLSelectElement.d.ts +22 -2
- package/lib/nodes/html-slot-element/HTMLSlotElement.js +2 -2
- package/lib/nodes/html-slot-element/HTMLSlotElement.js.map +1 -1
- package/lib/nodes/html-style-element/HTMLStyleElement.js +7 -7
- package/lib/nodes/html-style-element/HTMLStyleElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +55 -2
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +150 -40
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/IHTMLTextAreaElement.d.ts +16 -0
- package/lib/nodes/node/Node.d.ts +12 -1
- package/lib/nodes/node/Node.js +50 -4
- package/lib/nodes/node/Node.js.map +1 -1
- package/lib/nodes/node/NodeList.d.ts +2 -3
- package/lib/nodes/node/NodeList.js.map +1 -1
- package/lib/nodes/parent-node/IParentNode.d.ts +4 -4
- package/lib/nodes/parent-node/ParentNodeUtility.d.ts +3 -3
- package/lib/nodes/parent-node/ParentNodeUtility.js +13 -11
- package/lib/nodes/parent-node/ParentNodeUtility.js.map +1 -1
- package/lib/nodes/text/Text.d.ts +13 -0
- package/lib/nodes/text/Text.js +30 -0
- package/lib/nodes/text/Text.js.map +1 -1
- package/lib/query-selector/QuerySelector.js +2 -2
- package/lib/query-selector/QuerySelector.js.map +1 -1
- package/lib/query-selector/SelectorItem.js +2 -0
- package/lib/query-selector/SelectorItem.js.map +1 -1
- package/lib/validity-state/ValidityState.d.ts +87 -0
- package/lib/validity-state/ValidityState.js +171 -0
- package/lib/validity-state/ValidityState.js.map +1 -0
- package/lib/window/GlobalWindow.d.ts +0 -8
- package/lib/window/GlobalWindow.js +0 -2
- package/lib/window/GlobalWindow.js.map +1 -1
- package/lib/window/INodeJSGlobal.d.ts +71 -0
- package/lib/window/INodeJSGlobal.js +2 -0
- package/lib/window/INodeJSGlobal.js.map +1 -0
- package/lib/window/IWindow.d.ts +30 -10
- package/lib/window/Window.d.ts +36 -20
- package/lib/window/Window.js +16 -9
- package/lib/window/Window.js.map +1 -1
- package/lib/xml-http-request/XMLHttpRequest.js +20 -12
- package/lib/xml-http-request/XMLHttpRequest.js.map +1 -1
- package/lib/xml-parser/XMLParser.js +1 -1
- package/lib/xml-parser/XMLParser.js.map +1 -1
- package/package.json +2 -3
- package/src/cookie/CookieJar.ts +1 -1
- package/src/dom-token-list/DOMTokenList.ts +24 -20
- package/src/event/EventTarget.ts +7 -3
- package/src/exception/DOMExceptionNameEnum.ts +5 -1
- package/src/fetch/AbortController.ts +26 -0
- package/src/fetch/AbortSignal.ts +44 -0
- package/src/fetch/Fetch.ts +666 -0
- package/src/fetch/Headers.ts +151 -3
- package/src/fetch/Request.ts +226 -94
- package/src/fetch/{ResourceFetchHandler.ts → ResourceFetch.ts} +3 -3
- package/src/fetch/Response.ts +252 -89
- package/src/fetch/data-uri/DataURIParser.ts +66 -0
- package/src/fetch/multipart/MultipartFormDataParser.ts +113 -0
- package/src/fetch/multipart/MultipartReader.ts +217 -0
- package/src/fetch/types/IHeaders.ts +80 -0
- package/src/fetch/types/IRequest.ts +65 -0
- package/src/fetch/types/IRequestBody.ts +15 -0
- package/src/fetch/types/IRequestCredentials.ts +2 -0
- package/src/fetch/types/IRequestInfo.ts +6 -0
- package/src/fetch/types/IRequestInit.ts +21 -0
- package/src/fetch/types/IRequestRedirect.ts +3 -0
- package/src/fetch/types/IRequestReferrerPolicy.ts +11 -0
- package/src/fetch/types/IResponse.ts +27 -0
- package/src/fetch/types/IResponseBody.ts +15 -0
- package/src/fetch/types/IResponseInit.ts +10 -0
- package/src/fetch/utilities/FetchBodyUtility.ts +175 -0
- package/src/fetch/utilities/FetchCORSUtility.ts +18 -0
- package/src/fetch/utilities/FetchRequestHeaderUtility.ts +47 -0
- package/src/fetch/utilities/FetchRequestReferrerUtility.ts +241 -0
- package/src/fetch/utilities/FetchRequestValidationUtility.ts +82 -0
- package/src/file/Blob.ts +2 -2
- package/src/file/File.ts +5 -1
- package/src/form-data/FormData.ts +237 -0
- package/src/index.ts +27 -1
- package/src/nodes/document/Document.ts +23 -64
- package/src/nodes/document/IDocument.ts +1 -1
- package/src/nodes/document-fragment/DocumentFragment.ts +9 -59
- package/src/nodes/document-fragment/IDocumentFragment.ts +2 -1
- package/src/nodes/element/Element.ts +43 -56
- package/src/nodes/element/ElementUtility.ts +137 -0
- package/src/nodes/element/HTMLCollection.ts +60 -3
- package/src/nodes/element/IHTMLCollection.ts +10 -2
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +24 -24
- package/src/nodes/html-base-element/HTMLBaseElement.ts +4 -4
- package/src/nodes/html-button-element/HTMLButtonElement.ts +184 -10
- package/src/nodes/html-button-element/IHTMLButtonElement.ts +31 -2
- package/src/nodes/html-dialog-element/HTMLDialogElement.ts +3 -3
- package/src/nodes/html-element/HTMLElement.ts +12 -12
- package/src/nodes/html-form-element/HTMLFormControlsCollection.ts +76 -0
- package/src/nodes/html-form-element/HTMLFormElement.ts +147 -41
- package/src/nodes/html-form-element/IHTMLFormControlsCollection.ts +45 -0
- package/src/nodes/html-form-element/IHTMLFormElement.ts +17 -6
- package/src/nodes/html-form-element/IRadioNodeList.ts +16 -0
- package/src/nodes/html-form-element/RadioNodeList.ts +24 -0
- package/src/nodes/html-image-element/HTMLImageElement.ts +19 -19
- package/src/nodes/html-input-element/HTMLInputElement.ts +232 -113
- package/src/nodes/html-input-element/IHTMLInputElement.ts +20 -1
- package/src/nodes/html-label-element/HTMLLabelElement.ts +3 -7
- package/src/nodes/html-link-element/HTMLLinkElement.ts +21 -21
- package/src/nodes/html-media-element/HTMLMediaElement.ts +21 -21
- package/src/nodes/html-meta-element/HTMLMetaElement.ts +8 -8
- package/src/nodes/html-opt-group-element/HTMLOptGroupElement.ts +6 -6
- package/src/nodes/html-option-element/HTMLOptionElement.ts +29 -30
- package/src/nodes/html-script-element/HTMLScriptElement.ts +16 -16
- package/src/nodes/html-script-element/ScriptUtility.ts +5 -5
- package/src/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.ts +5 -9
- package/src/nodes/html-select-element/HTMLSelectElement.ts +159 -170
- package/src/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.ts +4 -8
- package/src/nodes/html-select-element/IHTMLSelectElement.ts +25 -2
- package/src/nodes/html-slot-element/HTMLSlotElement.ts +2 -2
- package/src/nodes/html-style-element/HTMLStyleElement.ts +7 -7
- package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +174 -41
- package/src/nodes/html-text-area-element/IHTMLTextAreaElement.ts +18 -0
- package/src/nodes/node/Node.ts +61 -6
- package/src/nodes/node/NodeList.ts +2 -3
- package/src/nodes/parent-node/IParentNode.ts +7 -4
- package/src/nodes/parent-node/ParentNodeUtility.ts +25 -15
- package/src/nodes/text/Text.ts +38 -0
- package/src/query-selector/QuerySelector.ts +2 -2
- package/src/query-selector/SelectorItem.ts +3 -0
- package/src/validity-state/ValidityState.ts +211 -0
- package/src/window/GlobalWindow.ts +0 -2
- package/src/window/INodeJSGlobal.ts +70 -0
- package/src/window/IWindow.ts +32 -10
- package/src/window/Window.ts +37 -20
- package/src/xml-http-request/XMLHttpRequest.ts +27 -26
- package/src/xml-parser/XMLParser.ts +1 -1
- package/lib/fetch/FetchHandler.d.ts +0 -18
- package/lib/fetch/FetchHandler.js +0 -83
- package/lib/fetch/FetchHandler.js.map +0 -1
- package/lib/fetch/IAbortSignal.d.ts +0 -16
- package/lib/fetch/IAbortSignal.js +0 -4
- package/lib/fetch/IAbortSignal.js.map +0 -1
- package/lib/fetch/IBody.d.ts +0 -17
- package/lib/fetch/IBody.js.map +0 -1
- package/lib/fetch/IHeaders.d.ts +0 -18
- package/lib/fetch/IHeadersInit.js.map +0 -1
- package/lib/fetch/IRequest.d.ts +0 -18
- package/lib/fetch/IRequestInit.d.ts +0 -16
- package/lib/fetch/IRequestInit.js.map +0 -1
- package/lib/fetch/IResponse.d.ts +0 -20
- package/lib/fetch/IResponseInit.d.ts +0 -9
- package/lib/fetch/IResponseInit.js.map +0 -1
- package/lib/fetch/RequestInfo.js +0 -3
- package/lib/fetch/RequestInfo.js.map +0 -1
- package/lib/fetch/ResourceFetchHandler.js.map +0 -1
- package/lib/form-data/IFormData.d.ts +0 -32
- package/lib/form-data/IFormData.js +0 -3
- package/lib/form-data/IFormData.js.map +0 -1
- package/lib/location/RelativeURL.d.ts +0 -15
- package/lib/location/RelativeURL.js +0 -19
- package/lib/location/RelativeURL.js.map +0 -1
- package/lib/nodes/element/HTMLCollectionFactory.d.ts +0 -21
- package/lib/nodes/element/HTMLCollectionFactory.js +0 -31
- package/lib/nodes/element/HTMLCollectionFactory.js.map +0 -1
- package/lib/nodes/html-option-element/IHTMLOptionsCollection.js.map +0 -1
- package/lib/nodes/node/NodeListFactory.d.ts +0 -21
- package/lib/nodes/node/NodeListFactory.js +0 -31
- package/lib/nodes/node/NodeListFactory.js.map +0 -1
- package/lib/nodes/validity-state/ValidityState.d.ts +0 -52
- package/lib/nodes/validity-state/ValidityState.js +0 -81
- package/lib/nodes/validity-state/ValidityState.js.map +0 -1
- package/src/fetch/FetchHandler.ts +0 -90
- package/src/fetch/IAbortSignal.ts +0 -34
- package/src/fetch/IBody.ts +0 -18
- package/src/fetch/IHeaders.ts +0 -18
- package/src/fetch/IRequest.ts +0 -59
- package/src/fetch/IRequestInit.ts +0 -41
- package/src/fetch/IResponse.ts +0 -22
- package/src/fetch/IResponseInit.ts +0 -10
- package/src/fetch/RequestInfo.ts +0 -6
- package/src/form-data/IFormData.ts +0 -33
- package/src/location/RelativeURL.ts +0 -17
- package/src/nodes/element/HTMLCollectionFactory.ts +0 -31
- package/src/nodes/node/NodeListFactory.ts +0 -31
- package/src/nodes/validity-state/ValidityState.ts +0 -84
- /package/lib/fetch/{IHeaders.js → types/IHeaders.js} +0 -0
- /package/lib/fetch/{IHeadersInit.d.ts → types/IHeadersInit.d.ts} +0 -0
- /package/lib/fetch/{IHeadersInit.js → types/IHeadersInit.js} +0 -0
- /package/lib/fetch/{IRequest.js → types/IRequest.js} +0 -0
- /package/lib/fetch/{IRequestInit.js → types/IRequestInit.js} +0 -0
- /package/lib/fetch/{IResponse.js → types/IResponse.js} +0 -0
- /package/lib/fetch/{IResponseInit.js → types/IResponseInit.js} +0 -0
- /package/lib/nodes/{html-option-element → html-select-element}/HTMLOptionsCollection.js +0 -0
- /package/lib/nodes/{html-option-element → html-select-element}/IHTMLOptionsCollection.js +0 -0
- /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 '
|
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.
|
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.
|
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
|
-
|
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
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
188
|
-
const href = this.
|
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
|
-
|
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.
|
266
|
-
const rel = this.
|
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
|
-
|
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.
|
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.
|
95
|
+
this.removeAttribute('autoplay');
|
96
96
|
} else {
|
97
|
-
this.
|
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.
|
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.
|
117
|
+
this.removeAttribute('controls');
|
118
118
|
} else {
|
119
|
-
this.
|
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.
|
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.
|
139
|
+
this.removeAttribute('loop');
|
140
140
|
} else {
|
141
|
-
this.
|
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.
|
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.
|
169
|
+
this.removeAttribute('muted');
|
170
170
|
} else {
|
171
|
-
this.
|
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.
|
192
|
+
this.removeAttribute('muted');
|
193
193
|
} else {
|
194
|
-
this.
|
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.
|
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.
|
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.
|
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.
|
281
|
+
this.setAttribute('crossorigin', crossOrigin);
|
282
282
|
} else {
|
283
|
-
this.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
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.
|
27
|
+
this.removeAttribute('label');
|
28
28
|
} else {
|
29
|
-
this.
|
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.
|
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.
|
49
|
+
this.removeAttribute('disabled');
|
50
50
|
} else {
|
51
|
-
this.
|
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
|
-
|
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
|
70
|
+
const selectNode = <HTMLSelectElement>this._selectNode;
|
75
71
|
|
76
72
|
this._dirtyness = true;
|
77
73
|
this._selectedness = Boolean(selected);
|
78
74
|
|
79
|
-
if (
|
80
|
-
|
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.
|
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.
|
96
|
+
this.removeAttribute('disabled');
|
101
97
|
} else {
|
102
|
-
this.
|
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.
|
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.
|
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
|
131
|
+
const selectNode = <HTMLSelectElement>this._selectNode;
|
136
132
|
|
137
133
|
this._selectedness = true;
|
138
134
|
|
139
|
-
if (
|
140
|
-
|
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
|
150
|
+
const selectNode = <HTMLSelectElement>this._selectNode;
|
155
151
|
|
156
152
|
this._selectedness = false;
|
157
153
|
|
158
|
-
if (
|
159
|
-
|
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
|
-
*
|
168
|
-
*
|
169
|
-
* @returns Select element.
|
163
|
+
* @override
|
170
164
|
*/
|
171
|
-
|
172
|
-
const
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
if (
|
177
|
-
|
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
|
}
|