happy-dom 4.0.2 → 5.1.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 (81) hide show
  1. package/lib/config/ElementTag.d.ts +6 -3
  2. package/lib/config/ElementTag.js +6 -3
  3. package/lib/config/ElementTag.js.map +1 -1
  4. package/lib/config/NonImplemenetedElementClasses.js +0 -3
  5. package/lib/config/NonImplemenetedElementClasses.js.map +1 -1
  6. package/lib/index.d.ts +2 -1
  7. package/lib/index.js +3 -1
  8. package/lib/index.js.map +1 -1
  9. package/lib/nodes/document/Document.js +4 -0
  10. package/lib/nodes/document/Document.js.map +1 -1
  11. package/lib/nodes/element/DOMRect.d.ts +9 -0
  12. package/lib/nodes/element/DOMRect.js +13 -1
  13. package/lib/nodes/element/DOMRect.js.map +1 -1
  14. package/lib/nodes/element/Element.d.ts +1 -0
  15. package/lib/nodes/element/Element.js.map +1 -1
  16. package/lib/nodes/html-input-element/HTMLInputElement.d.ts +1 -1
  17. package/lib/nodes/html-input-element/HTMLInputElement.js +1 -1
  18. package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
  19. package/lib/nodes/html-input-element/IHTMLInputElement.d.ts +1 -1
  20. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.d.ts +34 -0
  21. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js +58 -0
  22. package/lib/nodes/html-opt-group-element/HTMLOptGroupElement.js.map +1 -0
  23. package/lib/nodes/html-opt-group-element/IHTMLOptGroupElement.d.ts +11 -0
  24. package/lib/nodes/html-opt-group-element/IHTMLOptGroupElement.js +3 -0
  25. package/lib/nodes/html-opt-group-element/IHTMLOptGroupElement.js.map +1 -0
  26. package/lib/nodes/html-option-element/HTMLOptionElement.d.ts +72 -0
  27. package/lib/nodes/html-option-element/HTMLOptionElement.js +111 -0
  28. package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -0
  29. package/lib/nodes/html-option-element/HTMLOptionElementValueSanitizer.d.ts +11 -0
  30. package/lib/nodes/html-option-element/HTMLOptionElementValueSanitizer.js +18 -0
  31. package/lib/nodes/html-option-element/HTMLOptionElementValueSanitizer.js.map +1 -0
  32. package/lib/nodes/html-option-element/HTMLOptionsCollection.d.ts +43 -0
  33. package/lib/nodes/html-option-element/HTMLOptionsCollection.js +80 -0
  34. package/lib/nodes/html-option-element/HTMLOptionsCollection.js.map +1 -0
  35. package/lib/nodes/html-option-element/IHTMLOptionElement.d.ts +16 -0
  36. package/lib/nodes/html-option-element/IHTMLOptionElement.js +3 -0
  37. package/lib/nodes/html-option-element/IHTMLOptionElement.js.map +1 -0
  38. package/lib/nodes/html-option-element/IHTMLOptionsCollection.d.ts +26 -0
  39. package/lib/nodes/html-option-element/IHTMLOptionsCollection.js +3 -0
  40. package/lib/nodes/html-option-element/IHTMLOptionsCollection.js.map +1 -0
  41. package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +128 -0
  42. package/lib/nodes/html-select-element/HTMLSelectElement.js +215 -0
  43. package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -0
  44. package/lib/nodes/html-select-element/HTMLSelectElementValueSanitizer.d.ts +11 -0
  45. package/lib/nodes/html-select-element/HTMLSelectElementValueSanitizer.js +18 -0
  46. package/lib/nodes/html-select-element/HTMLSelectElementValueSanitizer.js.map +1 -0
  47. package/lib/nodes/html-select-element/IHTMLSelectElement.d.ts +26 -0
  48. package/lib/nodes/html-select-element/IHTMLSelectElement.js +3 -0
  49. package/lib/nodes/html-select-element/IHTMLSelectElement.js.map +1 -0
  50. package/lib/nodes/{html-input-element → validity-state}/ValidityState.d.ts +3 -2
  51. package/lib/nodes/{html-input-element → validity-state}/ValidityState.js +12 -2
  52. package/lib/nodes/validity-state/ValidityState.js.map +1 -0
  53. package/lib/window/IWindow.d.ts +2 -0
  54. package/lib/window/Window.d.ts +2 -0
  55. package/lib/window/Window.js.map +1 -1
  56. package/lib/xml-serializer/XMLSerializer.js +3 -0
  57. package/lib/xml-serializer/XMLSerializer.js.map +1 -1
  58. package/package.json +2 -2
  59. package/src/config/ElementTag.ts +6 -3
  60. package/src/config/NonImplemenetedElementClasses.ts +0 -3
  61. package/src/index.ts +2 -0
  62. package/src/nodes/document/Document.ts +3 -0
  63. package/src/nodes/element/DOMRect.ts +15 -0
  64. package/src/nodes/element/Element.ts +1 -0
  65. package/src/nodes/html-input-element/HTMLInputElement.ts +1 -1
  66. package/src/nodes/html-input-element/IHTMLInputElement.ts +1 -1
  67. package/src/nodes/html-opt-group-element/HTMLOptGroupElement.ts +54 -0
  68. package/src/nodes/html-opt-group-element/IHTMLOptGroupElement.ts +12 -0
  69. package/src/nodes/html-option-element/HTMLOptionElement.ts +117 -0
  70. package/src/nodes/html-option-element/HTMLOptionElementValueSanitizer.ts +15 -0
  71. package/src/nodes/html-option-element/HTMLOptionsCollection.ts +94 -0
  72. package/src/nodes/html-option-element/IHTMLOptionElement.ts +17 -0
  73. package/src/nodes/html-option-element/IHTMLOptionsCollection.ts +33 -0
  74. package/src/nodes/html-select-element/HTMLSelectElement.ts +239 -0
  75. package/src/nodes/html-select-element/HTMLSelectElementValueSanitizer.ts +15 -0
  76. package/src/nodes/html-select-element/IHTMLSelectElement.ts +27 -0
  77. package/src/nodes/{html-input-element → validity-state}/ValidityState.ts +13 -5
  78. package/src/window/IWindow.ts +2 -0
  79. package/src/window/Window.ts +2 -0
  80. package/src/xml-serializer/XMLSerializer.ts +5 -0
  81. package/lib/nodes/html-input-element/ValidityState.js.map +0 -1
@@ -0,0 +1,215 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const DOMException_1 = __importDefault(require("../../exception/DOMException"));
7
+ const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
8
+ const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
9
+ const ValidityState_1 = __importDefault(require("../validity-state/ValidityState"));
10
+ const HTMLOptionsCollection_1 = __importDefault(require("../html-option-element/HTMLOptionsCollection"));
11
+ const HTMLSelectElementValueSanitizer_1 = __importDefault(require("./HTMLSelectElementValueSanitizer"));
12
+ /**
13
+ * HTML Select Element.
14
+ *
15
+ * Reference:
16
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.
17
+ */
18
+ class HTMLSelectElement extends HTMLElement_1.default {
19
+ constructor() {
20
+ super(...arguments);
21
+ this._value = null;
22
+ this._selectedIndex = -1;
23
+ this._options = null;
24
+ }
25
+ /**
26
+ * Returns name.
27
+ *
28
+ * @returns Name.
29
+ */
30
+ get name() {
31
+ return this.getAttributeNS(null, 'name') || '';
32
+ }
33
+ /**
34
+ * Sets name.
35
+ *
36
+ * @param name Name.
37
+ */
38
+ set name(name) {
39
+ this.setAttributeNS(null, 'name', name);
40
+ }
41
+ /**
42
+ * Returns disabled.
43
+ *
44
+ * @returns Disabled.
45
+ */
46
+ get disabled() {
47
+ return this.getAttributeNS(null, 'disabled') !== null;
48
+ }
49
+ /**
50
+ * Sets disabled.
51
+ *
52
+ * @param disabled Disabled.
53
+ */
54
+ set disabled(disabled) {
55
+ if (!disabled) {
56
+ this.removeAttributeNS(null, 'disabled');
57
+ }
58
+ else {
59
+ this.setAttributeNS(null, 'disabled', '');
60
+ }
61
+ }
62
+ /**
63
+ * Returns multiple.
64
+ *
65
+ * @returns Multiple.
66
+ */
67
+ get multiple() {
68
+ return this.getAttributeNS(null, 'multiple') !== null;
69
+ }
70
+ /**
71
+ * Sets multiple.
72
+ *
73
+ * @param multiple Multiple.
74
+ */
75
+ set multiple(multiple) {
76
+ if (!multiple) {
77
+ this.removeAttributeNS(null, 'multiple');
78
+ }
79
+ else {
80
+ this.setAttributeNS(null, 'multiple', '');
81
+ }
82
+ }
83
+ /**
84
+ * Returns autofocus.
85
+ *
86
+ * @returns Autofocus.
87
+ */
88
+ get autofocus() {
89
+ return this.getAttributeNS(null, 'autofocus') !== null;
90
+ }
91
+ /**
92
+ * Sets autofocus.
93
+ *
94
+ * @param autofocus Autofocus.
95
+ */
96
+ set autofocus(autofocus) {
97
+ if (!autofocus) {
98
+ this.removeAttributeNS(null, 'autofocus');
99
+ }
100
+ else {
101
+ this.setAttributeNS(null, 'autofocus', '');
102
+ }
103
+ }
104
+ /**
105
+ * Returns required.
106
+ *
107
+ * @returns Required.
108
+ */
109
+ get required() {
110
+ return this.getAttributeNS(null, 'required') !== null;
111
+ }
112
+ /**
113
+ * Sets required.
114
+ *
115
+ * @param required Required.
116
+ */
117
+ set required(required) {
118
+ if (!required) {
119
+ this.removeAttributeNS(null, 'required');
120
+ }
121
+ else {
122
+ this.setAttributeNS(null, 'required', '');
123
+ }
124
+ }
125
+ /**
126
+ * Returns value.
127
+ *
128
+ * @returns Value.
129
+ */
130
+ get value() {
131
+ return this._value;
132
+ }
133
+ /**
134
+ * Sets value.
135
+ *
136
+ * @param value Value.
137
+ */
138
+ set value(value) {
139
+ this._value = HTMLSelectElementValueSanitizer_1.default.sanitize(value);
140
+ const idx = this.options.findIndex((o) => o.nodeValue === value);
141
+ if (idx > -1) {
142
+ this._selectedIndex = idx;
143
+ }
144
+ }
145
+ /**
146
+ * Returns value.
147
+ *
148
+ * @returns Value.
149
+ */
150
+ get selectedIndex() {
151
+ return this._options ? this._options.selectedIndex : -1;
152
+ }
153
+ /**
154
+ * Sets value.
155
+ *
156
+ * @param value Value.
157
+ */
158
+ set selectedIndex(value) {
159
+ if (this.options.length - 1 > value || value < 0) {
160
+ throw new DOMException_1.default('Select elements selected index must be valid', DOMExceptionNameEnum_1.default.indexSizeError);
161
+ }
162
+ this._options.selectedIndex = value;
163
+ }
164
+ /**
165
+ * Returns the parent form element.
166
+ *
167
+ * @returns Form.
168
+ */
169
+ get form() {
170
+ let parent = this.parentNode;
171
+ while (parent && parent.tagName !== 'FORM') {
172
+ parent = parent.parentNode;
173
+ }
174
+ return parent;
175
+ }
176
+ /**
177
+ * Returns validity state.
178
+ *
179
+ * @returns Validity state.
180
+ */
181
+ get validity() {
182
+ return new ValidityState_1.default(this);
183
+ }
184
+ /**
185
+ * Returns "true" if it will validate.
186
+ *
187
+ * @returns "true" if it will validate.
188
+ */
189
+ get willValidate() {
190
+ return (this.type !== 'hidden' &&
191
+ this.type !== 'reset' &&
192
+ this.type !== 'button' &&
193
+ !this.disabled &&
194
+ !this['readOnly']);
195
+ }
196
+ /**
197
+ * Returns options.
198
+ *
199
+ * @returns Options.
200
+ */
201
+ get options() {
202
+ if (this._options === null) {
203
+ this._options = new HTMLOptionsCollection_1.default();
204
+ const childs = this.childNodes;
205
+ for (const child of childs) {
206
+ if (child.tagName === 'OPTION') {
207
+ this._options.add(child);
208
+ }
209
+ }
210
+ }
211
+ return this._options;
212
+ }
213
+ }
214
+ exports.default = HTMLSelectElement;
215
+ //# sourceMappingURL=HTMLSelectElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLSelectElement.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/HTMLSelectElement.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ /**
2
+ * HTML select element value sanitizer.
3
+ */
4
+ export default class HTMLSelectElementValueSanitizer {
5
+ /**
6
+ * Sanitizes a value.
7
+ *
8
+ * @param value Value.
9
+ */
10
+ static sanitize(value: string): string;
11
+ }
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ const NEW_LINES_REGEXP = /[\n\r]/gm;
4
+ /**
5
+ * HTML select element value sanitizer.
6
+ */
7
+ class HTMLSelectElementValueSanitizer {
8
+ /**
9
+ * Sanitizes a value.
10
+ *
11
+ * @param value Value.
12
+ */
13
+ static sanitize(value) {
14
+ return value.replace(NEW_LINES_REGEXP, '');
15
+ }
16
+ }
17
+ exports.default = HTMLSelectElementValueSanitizer;
18
+ //# sourceMappingURL=HTMLSelectElementValueSanitizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLSelectElementValueSanitizer.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/HTMLSelectElementValueSanitizer.ts"],"names":[],"mappings":";;AAAA,MAAM,gBAAgB,GAAG,UAAU,CAAC;AAEpC;;GAEG;AACH,MAAqB,+BAA+B;IACnD;;;;OAIG;IACI,MAAM,CAAC,QAAQ,CAAC,KAAa;QACnC,OAAO,KAAK,CAAC,OAAO,CAAC,gBAAgB,EAAE,EAAE,CAAC,CAAC;IAC5C,CAAC;CACD;AATD,kDASC"}
@@ -0,0 +1,26 @@
1
+ import IHTMLElement from '../html-element/IHTMLElement';
2
+ import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
3
+ import IHTMLLabelElement from '../html-label-element/IHTMLLabelElement';
4
+ import INodeList from '../node/INodeList';
5
+ import IHTMLOptionsCollection from '../html-option-element/IHTMLOptionsCollection';
6
+ import ValidityState from '../validity-state/ValidityState';
7
+ /**
8
+ * HTML Select Element.
9
+ *
10
+ * Reference:
11
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLSelectElement.
12
+ */
13
+ export default interface IHTMLSelectElement extends IHTMLElement {
14
+ readonly form: IHTMLFormElement;
15
+ readonly labels: INodeList<IHTMLLabelElement>;
16
+ type: string;
17
+ autofocus: boolean;
18
+ disabled: boolean;
19
+ options: IHTMLOptionsCollection;
20
+ selectedIndex: number;
21
+ validity: ValidityState;
22
+ value: string;
23
+ willValidate: boolean;
24
+ name: string;
25
+ multiple: boolean;
26
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IHTMLSelectElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHTMLSelectElement.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/IHTMLSelectElement.ts"],"names":[],"mappings":""}
@@ -1,4 +1,5 @@
1
- import HTMLInputElement from './HTMLInputElement';
1
+ import HTMLInputElement from '../html-input-element/HTMLInputElement';
2
+ import HTMLSelectElement from '../html-select-element/HTMLSelectElement';
2
3
  /**
3
4
  * Input validity state.
4
5
  *
@@ -17,7 +18,7 @@ export default class ValidityState {
17
18
  *
18
19
  * @param element Input element.
19
20
  */
20
- constructor(element: HTMLInputElement);
21
+ constructor(element: HTMLInputElement | HTMLSelectElement);
21
22
  /**
22
23
  * Returns validity.
23
24
  *
@@ -1,5 +1,9 @@
1
1
  "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
2
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
+ const HTMLInputElement_1 = __importDefault(require("../html-input-element/HTMLInputElement"));
3
7
  /**
4
8
  * Input validity state.
5
9
  *
@@ -27,7 +31,10 @@ class ValidityState {
27
31
  * @returns "true" if valid.
28
32
  */
29
33
  get tooLong() {
30
- return this.element.maxLength && this.element.value.length > this.element.maxLength;
34
+ if (this.element instanceof HTMLInputElement_1.default) {
35
+ return this.element.maxLength && this.element.value.length > this.element.maxLength;
36
+ }
37
+ return false;
31
38
  }
32
39
  /**
33
40
  * Returns validity.
@@ -35,7 +42,10 @@ class ValidityState {
35
42
  * @returns "true" if valid.
36
43
  */
37
44
  get tooShort() {
38
- return this.element.minLength && this.element.value.length < this.element.minLength;
45
+ if (this.element instanceof HTMLInputElement_1.default) {
46
+ return this.element.minLength && this.element.value.length < this.element.minLength;
47
+ }
48
+ return false;
39
49
  }
40
50
  /**
41
51
  * Returns validity.
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ValidityState.js","sourceRoot":"","sources":["../../../src/nodes/validity-state/ValidityState.ts"],"names":[],"mappings":";;;;;AAAA,8FAAsE;AAGtE;;;;GAIG;AACH,MAAqB,aAAa;IASjC;;;;OAIG;IACH,YAAY,OAA6C;QAblD,aAAQ,GAAG,KAAK,CAAC;QACjB,gBAAW,GAAG,KAAK,CAAC;QACpB,oBAAe,GAAG,KAAK,CAAC;QACxB,kBAAa,GAAG,KAAK,CAAC;QACtB,mBAAc,GAAG,KAAK,CAAC;QACvB,iBAAY,GAAG,KAAK,CAAC;QACpB,YAAO,GAAyC,IAAI,CAAC;QAQ5D,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACxB,CAAC;IAED;;;;OAIG;IACH,IAAW,OAAO;QACjB,IAAI,IAAI,CAAC,OAAO,YAAY,0BAAgB,EAAE;YAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SACpF;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QAClB,IAAI,IAAI,CAAC,OAAO,YAAY,0BAAgB,EAAE;YAC7C,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,IAAI,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;SACpF;QAED,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAW,YAAY;QACtB,OAAO,KAAK,CAAC;IACd,CAAC;IAED;;;;OAIG;IACH,IAAW,YAAY;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC;IACrD,CAAC;IAED;;;;OAIG;IACH,IAAW,KAAK;QACf,KAAK,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE;YACpC,IAAI,IAAI,CAAC,GAAG,CAAC,EAAE;gBACd,OAAO,KAAK,CAAC;aACb;SACD;QAED,OAAO,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,YAAY,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC;IACpF,CAAC;CACD;AA3ED,gCA2EC"}
@@ -81,6 +81,7 @@ import IHeaders from '../fetch/IHeaders';
81
81
  import IRequestInit from '../fetch/IRequestInit';
82
82
  import IResponse from '../fetch/IResponse';
83
83
  import MediaQueryList from '../match-media/MediaQueryList';
84
+ import DOMRect from '../nodes/element/DOMRect';
84
85
  import Window from './Window';
85
86
  import { URLSearchParams } from 'url';
86
87
  import { Performance } from 'perf_hooks';
@@ -176,6 +177,7 @@ export default interface IWindow extends IEventTarget, NodeJS.Global {
176
177
  readonly Response: {
177
178
  new (body?: unknown | null, init?: IResponseInit): IResponse;
178
179
  };
180
+ readonly DOMRect: typeof DOMRect;
179
181
  onload: (event: Event) => void;
180
182
  onerror: (event: ErrorEvent) => void;
181
183
  readonly document: Document;
@@ -81,6 +81,7 @@ import MimeTypeArray from '../navigator/MimeTypeArray';
81
81
  import Plugin from '../navigator/Plugin';
82
82
  import PluginArray from '../navigator/PluginArray';
83
83
  import { URLSearchParams } from 'url';
84
+ import DOMRect from '../nodes/element/DOMRect';
84
85
  import * as PerfHooks from 'perf_hooks';
85
86
  /**
86
87
  * Browser window.
@@ -196,6 +197,7 @@ export default class Window extends EventTarget implements IWindow {
196
197
  readonly Response: {
197
198
  new (body?: NodeJS.ReadableStream | null, init?: IResponseInit): IResponse;
198
199
  };
200
+ readonly DOMRect: typeof DOMRect;
199
201
  onload: (event: Event) => void;
200
202
  onerror: (event: ErrorEvent) => void;
201
203
  readonly document: Document;
@@ -1 +1 @@
1
- {"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Window.js","sourceRoot":"","sources":["../../src/window/Window.ts"],"names":[],"mappings":"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"}
@@ -66,6 +66,9 @@ class XMLSerializer {
66
66
  */
67
67
  _getAttributes(element) {
68
68
  let attributeString = '';
69
+ if (!element._attributes.is && element._isValue) {
70
+ attributeString += ' is="' + (0, he_1.escape)(element._isValue) + '"';
71
+ }
69
72
  for (const attribute of Object.values(element._attributes)) {
70
73
  if (attribute.value !== null) {
71
74
  attributeString += ' ' + attribute.name + '="' + (0, he_1.escape)(attribute.value) + '"';
@@ -1 +1 @@
1
- {"version":3,"file":"XMLSerializer.js","sourceRoot":"","sources":["../../src/xml-serializer/XMLSerializer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"XMLSerializer.js","sourceRoot":"","sources":["../../src/xml-serializer/XMLSerializer.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "4.0.2",
3
+ "version": "5.1.0",
4
4
  "license": "MIT",
5
5
  "homepage": "https://github.com/capricorn86/happy-dom",
6
6
  "repository": "https://github.com/capricorn86/happy-dom",
@@ -75,5 +75,5 @@
75
75
  "ts-jest": "^27.1.3",
76
76
  "typescript": "^4.6.2"
77
77
  },
78
- "gitHead": "0872cb7996c3a182d144cc0daaafa87b8d2cc2c5"
78
+ "gitHead": "1b74bde49f9a39571296c8387548d4fcbedf2780"
79
79
  }
@@ -13,6 +13,9 @@ import HTMLLabelElement from '../nodes/html-label-element/HTMLLabelElement';
13
13
  import HTMLSlotElement from '../nodes/html-slot-element/HTMLSlotElement';
14
14
  import HTMLMetaElement from '../nodes/html-meta-element/HTMLMetaElement';
15
15
  import HTMLBaseElement from '../nodes/html-base-element/HTMLBaseElement';
16
+ import HTMLSelectElement from '../nodes/html-select-element/HTMLSelectElement';
17
+ import HTMLOptionElement from '../nodes/html-option-element/HTMLOptionElement';
18
+ import HTMLOptGroupElement from '../nodes/html-opt-group-element/HTMLOptGroupElement';
16
19
 
17
20
  export default {
18
21
  A: HTMLElement,
@@ -102,8 +105,8 @@ export default {
102
105
  NOSCRIPT: HTMLElement,
103
106
  OBJECT: HTMLElement,
104
107
  OL: HTMLElement,
105
- OPTGROUP: HTMLElement,
106
- OPTION: HTMLElement,
108
+ OPTGROUP: HTMLOptGroupElement,
109
+ OPTION: HTMLOptionElement,
107
110
  OUTPUT: HTMLElement,
108
111
  P: HTMLElement,
109
112
  PARAM: HTMLElement,
@@ -119,7 +122,7 @@ export default {
119
122
  S: HTMLElement,
120
123
  SAMP: HTMLElement,
121
124
  SECTION: HTMLElement,
122
- SELECT: HTMLElement,
125
+ SELECT: HTMLSelectElement,
123
126
  SMALL: HTMLElement,
124
127
  SOURCE: HTMLElement,
125
128
  SPAN: HTMLElement,
@@ -32,13 +32,10 @@ export default [
32
32
  'HTMLMediaElement',
33
33
  'HTMLMeterElement',
34
34
  'HTMLModElement',
35
- 'HTMLOptGroupElement',
36
- 'HTMLOptionElement',
37
35
  'HTMLOutputElement',
38
36
  'HTMLPictureElement',
39
37
  'HTMLProgressElement',
40
38
  'HTMLQuoteElement',
41
- 'HTMLSelectElement',
42
39
  'HTMLSourceElement',
43
40
  'HTMLSpanElement',
44
41
  'HTMLTableCaptionElement',
package/src/index.ts CHANGED
@@ -101,6 +101,7 @@ import XMLParser from './xml-parser/XMLParser';
101
101
  import XMLSerializer from './xml-serializer/XMLSerializer';
102
102
  import CSSStyleSheet from './css/CSSStyleSheet';
103
103
  import Storage from './storage/Storage';
104
+ import DOMRect from './nodes/element/DOMRect';
104
105
  import { URLSearchParams } from 'url';
105
106
  import Selection from './selection/Selection';
106
107
 
@@ -208,6 +209,7 @@ export {
208
209
  XMLSerializer,
209
210
  CSSStyleSheet,
210
211
  Storage,
212
+ DOMRect,
211
213
  URLSearchParams,
212
214
  Selection
213
215
  };
@@ -662,6 +662,9 @@ export default class Document extends Node implements IDocument {
662
662
  element.tagName = tagName;
663
663
  element.ownerDocument = this;
664
664
  element.namespaceURI = namespaceURI;
665
+ if (element instanceof Element && options && options.is) {
666
+ element._isValue = String(options.is);
667
+ }
665
668
 
666
669
  return element;
667
670
  }
@@ -12,4 +12,19 @@ export default class DOMRect {
12
12
  public right = 0;
13
13
  public bottom = 0;
14
14
  public left = 0;
15
+
16
+ /**
17
+ * Constructor.
18
+ *
19
+ * @param [x] X position.
20
+ * @param [y] Y position.
21
+ * @param [width] Width.
22
+ * @param [height] Height.
23
+ */
24
+ constructor(x?, y?, width?, height?) {
25
+ this.x = x || 0;
26
+ this.y = y || 0;
27
+ this.width = width || 0;
28
+ this.height = height || 0;
29
+ }
15
30
  }
@@ -48,6 +48,7 @@ export default class Element extends Node implements IElement {
48
48
  public _attributes: { [k: string]: Attr } = {};
49
49
 
50
50
  private _classList: DOMTokenList = null;
51
+ public _isValue?: string;
51
52
 
52
53
  /**
53
54
  * Returns class list.
@@ -1,6 +1,6 @@
1
1
  import File from '../../file/File';
2
2
  import HTMLElement from '../html-element/HTMLElement';
3
- import ValidityState from './ValidityState';
3
+ import ValidityState from '../validity-state/ValidityState';
4
4
  import DOMException from '../../exception/DOMException';
5
5
  import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum';
6
6
  import Event from '../../event/Event';
@@ -2,7 +2,7 @@ import File from '../../file/File';
2
2
  import IHTMLElement from '../html-element/IHTMLElement';
3
3
  import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
4
4
  import HTMLInputElementSelectionModeEnum from './HTMLInputElementSelectionModeEnum';
5
- import ValidityState from './ValidityState';
5
+ import ValidityState from '../validity-state/ValidityState';
6
6
 
7
7
  /**
8
8
  * HTML Input Element.
@@ -0,0 +1,54 @@
1
+ import HTMLElement from '../html-element/HTMLElement';
2
+ import IHTMLOptGroupElement from './IHTMLOptGroupElement';
3
+
4
+ /**
5
+ * HTML Opt Group Element.
6
+ *
7
+ * Reference:
8
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement.
9
+ */
10
+ export default class HTMLOptGroupElement extends HTMLElement implements IHTMLOptGroupElement {
11
+ /**
12
+ * Returns label.
13
+ *
14
+ * @returns Label.
15
+ */
16
+ public get label(): string {
17
+ return this.getAttributeNS(null, 'label') || '';
18
+ }
19
+
20
+ /**
21
+ * Sets label.
22
+ *
23
+ * @param label Label.
24
+ */
25
+ public set label(label: string) {
26
+ if (!label) {
27
+ this.removeAttributeNS(null, 'label');
28
+ } else {
29
+ this.setAttributeNS(null, 'label', label);
30
+ }
31
+ }
32
+
33
+ /**
34
+ * Returns disabled.
35
+ *
36
+ * @returns Disabled.
37
+ */
38
+ public get disabled(): boolean {
39
+ return this.getAttributeNS(null, 'disabled') !== null;
40
+ }
41
+
42
+ /**
43
+ * Sets disabled.
44
+ *
45
+ * @param disabled Disabled.
46
+ */
47
+ public set disabled(disabled: boolean) {
48
+ if (!disabled) {
49
+ this.removeAttributeNS(null, 'disabled');
50
+ } else {
51
+ this.setAttributeNS(null, 'disabled', '');
52
+ }
53
+ }
54
+ }
@@ -0,0 +1,12 @@
1
+ import IHTMLElement from '../html-element/IHTMLElement';
2
+
3
+ /**
4
+ * HTML Opt Group Element.
5
+ *
6
+ * Reference:
7
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLOptGroupElement.
8
+ */
9
+ export default interface IHTMLOptGroupElement extends IHTMLElement {
10
+ disabled: boolean;
11
+ label: string;
12
+ }