happy-dom 7.6.2 → 7.6.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js +7 -12
- package/lib/css/declaration/AbstractCSSStyleDeclaration.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts +7 -0
- package/lib/nodes/html-element/HTMLElement.js +9 -0
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-element/IHTMLElement.d.ts +2 -1
- package/lib/nodes/html-option-element/HTMLOptionElement.js +32 -6
- package/lib/nodes/html-option-element/HTMLOptionElement.js.map +1 -1
- package/lib/nodes/html-option-element/HTMLOptionsCollection.d.ts +1 -0
- package/lib/nodes/html-option-element/HTMLOptionsCollection.js +8 -12
- package/lib/nodes/html-option-element/HTMLOptionsCollection.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.js +12 -5
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/package.json +2 -2
- package/src/css/declaration/AbstractCSSStyleDeclaration.ts +9 -13
- package/src/nodes/html-element/HTMLElement.ts +10 -0
- package/src/nodes/html-element/IHTMLElement.ts +3 -1
- package/src/nodes/html-option-element/HTMLOptionElement.ts +35 -5
- package/src/nodes/html-option-element/HTMLOptionsCollection.ts +7 -13
- package/src/nodes/html-select-element/HTMLSelectElement.ts +17 -9
@@ -66,20 +66,15 @@ class AbstractCSSStyleDeclaration {
|
|
66
66
|
}
|
67
67
|
if (this._ownerElement) {
|
68
68
|
const style = new CSSStyleDeclarationPropertyManager_1.default({ cssText });
|
69
|
-
if (!style
|
70
|
-
|
69
|
+
if (!this._ownerElement['_attributes']['style']) {
|
70
|
+
Attr_1.default._ownerDocument = this._ownerElement.ownerDocument;
|
71
|
+
this._ownerElement['_attributes']['style'] = new Attr_1.default();
|
72
|
+
this._ownerElement['_attributes']['style'].name = 'style';
|
71
73
|
}
|
72
|
-
|
73
|
-
|
74
|
-
Attr_1.default._ownerDocument = this._ownerElement.ownerDocument;
|
75
|
-
this._ownerElement['_attributes']['style'] = new Attr_1.default();
|
76
|
-
this._ownerElement['_attributes']['style'].name = 'style';
|
77
|
-
}
|
78
|
-
if (this._ownerElement.isConnected) {
|
79
|
-
this._ownerElement.ownerDocument['_cacheID']++;
|
80
|
-
}
|
81
|
-
this._ownerElement['_attributes']['style'].value = style.toString();
|
74
|
+
if (this._ownerElement.isConnected) {
|
75
|
+
this._ownerElement.ownerDocument['_cacheID']++;
|
82
76
|
}
|
77
|
+
this._ownerElement['_attributes']['style'].value = style.toString();
|
83
78
|
}
|
84
79
|
else {
|
85
80
|
this._style = new CSSStyleDeclarationPropertyManager_1.default({ cssText });
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"AbstractCSSStyleDeclaration.js","sourceRoot":"","sources":["../../../src/css/declaration/AbstractCSSStyleDeclaration.ts"],"names":[],"mappings":";;;;;AACA,iEAAyC;AAEzC,gGAAwE;AACxE,gFAAwD;AACxD,kHAA0F;AAC1F,wHAAgG;AAEhG;;GAEG;AACH,MAA8B,2BAA2B;IAOxD;;;;;OAKG;IACH,YAAY,eAAyB,IAAI,EAAE,QAAQ,GAAG,KAAK;QAZ3C,eAAU,GAAY,IAAI,CAAC;QACjC,WAAM,GAAuC,IAAI,CAAC;QAGlD,kBAAa,GAAoC,IAAI,CAAC;QAS/D,IAAI,CAAC,MAAM,GAAG,CAAC,YAAY,CAAC,CAAC,CAAC,IAAI,4CAAkC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9E,IAAI,CAAC,aAAa,GAAG,YAAY,CAAC;QAClC,IAAI,CAAC,SAAS,GAAG,YAAY,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC;QACjD,IAAI,CAAC,aAAa,GAAG,YAAY;YAChC,CAAC,CAAC,IAAI,yCAA+B,CAAC,YAAY,EAAE,IAAI,CAAC,SAAS,CAAC;YACnE,CAAC,CAAC,IAAI,CAAC;IACT,CAAC;IAED;;;;OAIG;IACH,IAAW,MAAM;QAChB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC;YACnD,OAAO,KAAK,CAAC,IAAI,EAAE,CAAC;SACpB;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;IAC3B,CAAC;IAED;;;;OAIG;IACH,IAAW,OAAO;QACjB,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,IAAI,IAAI,CAAC,SAAS,EAAE;gBACnB,OAAO,EAAE,CAAC;aACV;YAED,OAAO,IAAI,CAAC,aAAa,CAAC,eAAe,EAAE,CAAC,QAAQ,EAAE,CAAC;SACvD;QAED,OAAO,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;IAC/B,CAAC;IAED;;;;OAIG;IACH,IAAW,OAAO,CAAC,OAAe;QACjC,IAAI,IAAI,CAAC,SAAS,EAAE;YACnB,MAAM,IAAI,sBAAY,CACrB,8HAA8H,EAC9H,8BAAoB,CAAC,YAAY,CACjC,CAAC;SACF;QAED,IAAI,IAAI,CAAC,aAAa,EAAE;YACvB,MAAM,KAAK,GAAG,IAAI,4CAAkC,CAAC,EAAE,OAAO,EAAE,CAAC,CAAC;YAClE,IAAI,CAAC,
|
1
|
+
{"version":3,"file":"AbstractCSSStyleDeclaration.js","sourceRoot":"","sources":["../../../src/css/declaration/AbstractCSSStyleDeclaration.ts"],"names":[],"mappings":"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"}
|
@@ -93,6 +93,13 @@ export default class HTMLElement extends Element implements IHTMLElement {
|
|
93
93
|
* @returns Style.
|
94
94
|
*/
|
95
95
|
get style(): CSSStyleDeclaration;
|
96
|
+
/**
|
97
|
+
* Sets style.
|
98
|
+
*
|
99
|
+
* @param cssText Style as text.
|
100
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style#setting_styles
|
101
|
+
*/
|
102
|
+
set style(cssText: string | CSSStyleDeclaration);
|
96
103
|
/**
|
97
104
|
* Returns data set.
|
98
105
|
*
|
@@ -181,6 +181,15 @@ class HTMLElement extends Element_1.default {
|
|
181
181
|
}
|
182
182
|
return this._style;
|
183
183
|
}
|
184
|
+
/**
|
185
|
+
* Sets style.
|
186
|
+
*
|
187
|
+
* @param cssText Style as text.
|
188
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style#setting_styles
|
189
|
+
*/
|
190
|
+
set style(cssText) {
|
191
|
+
this.style.cssText = typeof cssText === 'string' ? cssText : '';
|
192
|
+
}
|
184
193
|
/**
|
185
194
|
* Returns data set.
|
186
195
|
*
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLElement.js","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElement.ts"],"names":[],"mappings":";;;;;AAAA,iEAAyC;AAEzC,oGAA4E;AAE5E,+EAAuD;AACvD,mFAA2D;AAC3D,sEAA8C;AAC9C,wEAAgD;AAChD,gFAAwD;AAGxD;;;;;GAKG;AACH,MAAqB,WAAY,SAAQ,iBAAO;IAAhD;;QACiB,cAAS,GAAG,EAAE,CAAC;QACf,mBAAc,GAAG,EAAE,CAAC;QACpB,oBAAe,GAAG,SAAS,CAAC;QAC5B,sBAAiB,GAAG,KAAK,CAAC;QAC1B,iBAAY,GAAG,CAAC,CAAC;QACjB,gBAAW,GAAG,CAAC,CAAC;QAChB,eAAU,GAAG,CAAC,CAAC;QACf,cAAS,GAAG,CAAC,CAAC;QACd,iBAAY,GAAG,CAAC,CAAC;QACjB,gBAAW,GAAG,CAAC,CAAC;QAExB,WAAM,GAAwB,IAAI,CAAC;QACnC,aAAQ,GAA8B,IAAI,CAAC;QAEnD,SAAS;QACF,WAAM,GAAkC,IAAI,CAAC;QAC7C,UAAK,GAAkC,IAAI,CAAC;QAC5C,YAAO,GAAkC,IAAI,CAAC;QAC9C,cAAS,GAAkC,IAAI,CAAC;QAChD,sBAAiB,GAAkC,IAAI,CAAC;QACxD,mBAAc,GAAkC,IAAI,CAAC;QACrD,yBAAoB,GAAkC,IAAI,CAAC;QAC3D,qBAAgB,GAAkC,IAAI,CAAC;QACvD,kBAAa,GAAkC,IAAI,CAAC;QACpD,YAAO,GAAkC,IAAI,CAAC;QAC9C,aAAQ,GAAkC,IAAI,CAAC;QAC/C,wBAAmB,GAAkC,IAAI,CAAC;QAC1D,yBAAoB,GAAkC,IAAI,CAAC;QAC3D,oBAAe,GAAkC,IAAI,CAAC;QACtD,kBAAa,GAAkC,IAAI,CAAC;QACpD,mBAAc,GAAkC,IAAI,CAAC;QACrD,mBAAc,GAAkC,IAAI,CAAC;QACrD,kBAAa,GAAkC,IAAI,CAAC;QACpD,iBAAY,GAAkC,IAAI,CAAC;QACnD,kBAAa,GAAkC,IAAI,CAAC;QACpD,gBAAW,GAAkC,IAAI,CAAC;QAClD,uBAAkB,GAAkC,IAAI,CAAC;QACzD,oBAAe,GAAkC,IAAI,CAAC;QACtD,oBAAe,GAAkC,IAAI,CAAC;QACtD,sBAAiB,GAAkC,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"HTMLElement.js","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElement.ts"],"names":[],"mappings":"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"}
|
@@ -8,7 +8,6 @@ import IElement from '../element/IElement';
|
|
8
8
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.
|
9
9
|
*/
|
10
10
|
export default interface IHTMLElement extends IElement {
|
11
|
-
style: CSSStyleDeclaration;
|
12
11
|
dataset: {
|
13
12
|
[key: string]: string;
|
14
13
|
};
|
@@ -46,6 +45,8 @@ export default interface IHTMLElement extends IElement {
|
|
46
45
|
ontransitionend: (event: Event) => void | null;
|
47
46
|
ontransitionrun: (event: Event) => void | null;
|
48
47
|
ontransitionstart: (event: Event) => void | null;
|
48
|
+
get style(): CSSStyleDeclaration;
|
49
|
+
set style(cssText: CSSStyleDeclaration | string);
|
49
50
|
/**
|
50
51
|
* Triggers a click event.
|
51
52
|
*/
|
@@ -53,7 +53,18 @@ class HTMLOptionElement extends HTMLElement_1.default {
|
|
53
53
|
* @returns Selected.
|
54
54
|
*/
|
55
55
|
get selected() {
|
56
|
-
|
56
|
+
const parentNode = this.parentNode;
|
57
|
+
if (parentNode?.tagName === 'SELECT') {
|
58
|
+
let index = -1;
|
59
|
+
for (let i = 0; i < parentNode.options.length; i++) {
|
60
|
+
if (parentNode.options[i] === this) {
|
61
|
+
index = i;
|
62
|
+
break;
|
63
|
+
}
|
64
|
+
}
|
65
|
+
return index !== -1 && parentNode.options.selectedIndex === index;
|
66
|
+
}
|
67
|
+
return false;
|
57
68
|
}
|
58
69
|
/**
|
59
70
|
* Sets selected.
|
@@ -61,11 +72,26 @@ class HTMLOptionElement extends HTMLElement_1.default {
|
|
61
72
|
* @param selected Selected.
|
62
73
|
*/
|
63
74
|
set selected(selected) {
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
75
|
+
const parentNode = this.parentNode;
|
76
|
+
if (parentNode?.tagName === 'SELECT') {
|
77
|
+
if (selected) {
|
78
|
+
let index = -1;
|
79
|
+
for (let i = 0; i < parentNode.options.length; i++) {
|
80
|
+
if (parentNode.options[i] === this) {
|
81
|
+
index = i;
|
82
|
+
break;
|
83
|
+
}
|
84
|
+
}
|
85
|
+
if (index !== -1) {
|
86
|
+
parentNode.options.selectedIndex = index;
|
87
|
+
}
|
88
|
+
}
|
89
|
+
else if (parentNode.options.length) {
|
90
|
+
parentNode.options.selectedIndex = 0;
|
91
|
+
}
|
92
|
+
else {
|
93
|
+
parentNode.options.selectedIndex = -1;
|
94
|
+
}
|
69
95
|
}
|
70
96
|
}
|
71
97
|
/**
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLOptionElement.js","sourceRoot":"","sources":["../../../src/nodes/html-option-element/HTMLOptionElement.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;
|
1
|
+
{"version":3,"file":"HTMLOptionElement.js","sourceRoot":"","sources":["../../../src/nodes/html-option-element/HTMLOptionElement.ts"],"names":[],"mappings":"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"}
|
@@ -11,6 +11,7 @@ import IHTMLOptionsCollection from './IHTMLOptionsCollection';
|
|
11
11
|
*/
|
12
12
|
export default class HTMLOptionsCollection extends HTMLCollection implements IHTMLOptionsCollection {
|
13
13
|
private _selectElement;
|
14
|
+
private _selectedIndex;
|
14
15
|
/**
|
15
16
|
*
|
16
17
|
* @param selectElement
|
@@ -5,7 +5,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
6
|
const DOMException_1 = __importDefault(require("../../exception/DOMException"));
|
7
7
|
const HTMLCollection_1 = __importDefault(require("../element/HTMLCollection"));
|
8
|
-
const HTMLOptionElement_1 = __importDefault(require("./HTMLOptionElement"));
|
9
8
|
/**
|
10
9
|
* HTML Options Collection.
|
11
10
|
*
|
@@ -19,6 +18,7 @@ class HTMLOptionsCollection extends HTMLCollection_1.default {
|
|
19
18
|
*/
|
20
19
|
constructor(selectElement) {
|
21
20
|
super();
|
21
|
+
this._selectedIndex = -1;
|
22
22
|
this._selectElement = selectElement;
|
23
23
|
}
|
24
24
|
/**
|
@@ -27,13 +27,7 @@ class HTMLOptionsCollection extends HTMLCollection_1.default {
|
|
27
27
|
* @returns SelectedIndex.
|
28
28
|
*/
|
29
29
|
get selectedIndex() {
|
30
|
-
|
31
|
-
const item = this[i];
|
32
|
-
if (item instanceof HTMLOptionElement_1.default && item.selected) {
|
33
|
-
return i;
|
34
|
-
}
|
35
|
-
}
|
36
|
-
return -1;
|
30
|
+
return this._selectedIndex;
|
37
31
|
}
|
38
32
|
/**
|
39
33
|
* Sets selectedIndex.
|
@@ -41,10 +35,12 @@ class HTMLOptionsCollection extends HTMLCollection_1.default {
|
|
41
35
|
* @param selectedIndex SelectedIndex.
|
42
36
|
*/
|
43
37
|
set selectedIndex(selectedIndex) {
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
38
|
+
if (typeof selectedIndex === 'number' && !isNaN(selectedIndex)) {
|
39
|
+
if (selectedIndex >= 0 && selectedIndex < this.length) {
|
40
|
+
this._selectedIndex = selectedIndex;
|
41
|
+
}
|
42
|
+
else {
|
43
|
+
this._selectedIndex = -1;
|
48
44
|
}
|
49
45
|
}
|
50
46
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLOptionsCollection.js","sourceRoot":"","sources":["../../../src/nodes/html-option-element/HTMLOptionsCollection.ts"],"names":[],"mappings":";;;;;AAAA,gFAAwD;AACxD,+EAAuD;
|
1
|
+
{"version":3,"file":"HTMLOptionsCollection.js","sourceRoot":"","sources":["../../../src/nodes/html-option-element/HTMLOptionsCollection.ts"],"names":[],"mappings":";;;;;AAAA,gFAAwD;AACxD,+EAAuD;AAMvD;;;;;GAKG;AACH,MAAqB,qBACpB,SAAQ,wBAAc;IAMtB;;;OAGG;IACH,YAAY,aAAiC;QAC5C,KAAK,EAAE,CAAC;QAPD,mBAAc,GAAG,CAAC,CAAC,CAAC;QAS3B,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;IACrC,CAAC;IAED;;;;OAIG;IACH,IAAW,aAAa;QACvB,OAAO,IAAI,CAAC,cAAc,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,IAAW,aAAa,CAAC,aAAqB;QAC7C,IAAI,OAAO,aAAa,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,aAAa,CAAC,EAAE;YAC/D,IAAI,aAAa,IAAI,CAAC,IAAI,aAAa,GAAG,IAAI,CAAC,MAAM,EAAE;gBACtD,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;aACpC;iBAAM;gBACN,IAAI,CAAC,cAAc,GAAG,CAAC,CAAC,CAAC;aACzB;SACD;IACF,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,KAAK,CAAC,CAAC;IACpB,CAAC;IAED;;;;OAIG;IACI,GAAG,CACT,OAAkD,EAClD,MAA2D;QAE3D,IAAI,CAAC,MAAM,IAAI,MAAM,KAAK,CAAC,EAAE;YAC5B,IAAI,CAAC,cAAc,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;YACzC,OAAO;SACP;QAED,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE;YAClC,IAAI,MAAM,GAAG,CAAC,EAAE;gBACf,OAAO;aACP;YAED,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAS,MAAM,CAAC,CAAC,CAAC;YAChE,OAAO;SACP;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAEnC,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;YACjB,MAAM,IAAI,sBAAY,CACrB,8HAA8H,CAC9H,CAAC;SACF;QAED,IAAI,CAAC,cAAc,CAAC,YAAY,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAa;QAC1B,IAAI,IAAI,CAAC,KAAK,CAAC,EAAE;YAChB,IAAI,CAAC,cAAc,CAAC,WAAW,CAAqB,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;SACjE;IACF,CAAC;CACD;AA9FD,wCA8FC"}
|
@@ -3,8 +3,6 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
3
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
4
|
};
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
-
const DOMException_1 = __importDefault(require("../../exception/DOMException"));
|
7
|
-
const DOMExceptionNameEnum_1 = __importDefault(require("../../exception/DOMExceptionNameEnum"));
|
8
6
|
const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
|
9
7
|
const ValidityState_1 = __importDefault(require("../validity-state/ValidityState"));
|
10
8
|
const HTMLOptionElement_1 = __importDefault(require("../html-option-element/HTMLOptionElement"));
|
@@ -182,9 +180,6 @@ class HTMLSelectElement extends HTMLElement_1.default {
|
|
182
180
|
* @param value Value.
|
183
181
|
*/
|
184
182
|
set selectedIndex(value) {
|
185
|
-
if (value > this.options.length - 1 || value < -1) {
|
186
|
-
throw new DOMException_1.default('Select elements selected index must be valid', DOMExceptionNameEnum_1.default.indexSizeError);
|
187
|
-
}
|
188
183
|
this.options.selectedIndex = value;
|
189
184
|
}
|
190
185
|
/**
|
@@ -258,6 +253,9 @@ class HTMLSelectElement extends HTMLElement_1.default {
|
|
258
253
|
const previousLength = this.options.length;
|
259
254
|
if (element.tagName === 'OPTION' || element.tagName === 'OPTGROUP') {
|
260
255
|
this.options.push(element);
|
256
|
+
if (this.options.length === 1) {
|
257
|
+
this.options.selectedIndex = 0;
|
258
|
+
}
|
261
259
|
}
|
262
260
|
this._updateIndexProperties(previousLength, this.options.length);
|
263
261
|
}
|
@@ -284,6 +282,9 @@ class HTMLSelectElement extends HTMLElement_1.default {
|
|
284
282
|
else {
|
285
283
|
this.options.push(newElement);
|
286
284
|
}
|
285
|
+
if (this.options.length === 1) {
|
286
|
+
this.options.selectedIndex = 0;
|
287
|
+
}
|
287
288
|
}
|
288
289
|
this._updateIndexProperties(previousLength, this.options.length);
|
289
290
|
}
|
@@ -301,6 +302,12 @@ class HTMLSelectElement extends HTMLElement_1.default {
|
|
301
302
|
if (index !== -1) {
|
302
303
|
this.options.splice(index, 1);
|
303
304
|
}
|
305
|
+
if (this.options.selectedIndex >= this.options.length) {
|
306
|
+
this.options.selectedIndex = this.options.length - 1;
|
307
|
+
}
|
308
|
+
if (!this.options.length) {
|
309
|
+
this.options.selectedIndex = -1;
|
310
|
+
}
|
304
311
|
}
|
305
312
|
this._updateIndexProperties(previousLength, this.options.length);
|
306
313
|
}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLSelectElement.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/HTMLSelectElement.ts"],"names":[],"mappings":";;;;;AAAA,
|
1
|
+
{"version":3,"file":"HTMLSelectElement.js","sourceRoot":"","sources":["../../../src/nodes/html-select-element/HTMLSelectElement.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AAGtD,oFAA4D;AAE5D,iGAAyE;AACzE,yGAAiF;AAQjF,wEAAgD;AAEhD;;;;;GAKG;AACH,MAAqB,iBAAkB,SAAQ,qBAAW;IAA1D;;QAEiB,YAAO,GAA2B,IAAI,+BAAqB,CAAC,IAAI,CAAC,CAAC;QAElF,SAAS;QACF,aAAQ,GAAkC,IAAI,CAAC;QAC/C,YAAO,GAAkC,IAAI,CAAC;IAqXtD,CAAC;IAnXA;;;;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;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ,CAAC,QAAiB;QACpC,IAAI,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SACzC;aAAM;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;SAC1C;IACF,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ,CAAC,QAAiB;QACpC,IAAI,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SACzC;aAAM;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;SAC1C;IACF,CAAC;IAED;;;;OAIG;IACH,IAAW,SAAS;QACnB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,CAAC,KAAK,IAAI,CAAC;IACxD,CAAC;IAED;;;;OAIG;IACH,IAAW,SAAS,CAAC,SAAkB;QACtC,IAAI,CAAC,SAAS,EAAE;YACf,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC;SAC1C;aAAM;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;SAC3C;IACF,CAAC;IAED;;;;OAIG;IACH,IAAW,MAAM;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;IAC5B,CAAC;IAED;;;;OAIG;IACH,IAAW,MAAM,CAAC,MAAc;QAC/B,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,MAAM,CAAC;IAC9B,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ,CAAC,QAAiB;QACpC,IAAI,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SACzC;aAAM;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;SAC1C;IACF,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,YAAY,CAAC;IACjF,CAAC;IAED;;;;OAIG;IACH,IAAW,KAAK;QACf,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,KAAK,CAAC,CAAC,EAAE;YACtC,OAAO,EAAE,CAAC;SACV;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;QAExD,OAAO,MAAM,YAAY,2BAAiB,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;IAChE,CAAC;IAED;;;;OAIG;IACH,IAAW,KAAK,CAAC,KAAa;QAC7B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAClD,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,YAAY,2BAAiB,IAAI,CAAC,CAAC,KAAK,KAAK,KAAK,CAC1D,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,IAAW,aAAa;QACvB,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACH,IAAW,aAAa,CAAC,KAAa;QACrC,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,KAAK,CAAC;IACpC,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACd,IAAI,MAAM,GAAiB,IAAI,CAAC,UAAU,CAAC;QAC3C,OAAO,MAAM,IAAI,MAAM,CAAC,OAAO,KAAK,MAAM,EAAE;YAC3C,MAAM,GAAiB,MAAM,CAAC,UAAU,CAAC;SACzC;QACD,OAAyB,MAAM,CAAC;IACjC,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,uBAAa,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;OAIG;IACH,IAAW,YAAY;QACtB,OAAO,CACN,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,IAAI,CAAC,IAAI,KAAK,OAAO;YACrB,IAAI,CAAC,IAAI,KAAK,QAAQ;YACtB,CAAC,IAAI,CAAC,QAAQ;YACd,CAAC,IAAI,CAAC,UAAU,CAAC,CACjB,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,IAAI,CAAC,KAAa;QACxB,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IAED;;;;;OAKG;IACI,GAAG,CACT,OAAkD,EAClD,MAA2D;QAE3D,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,OAAO,EAAE,MAAM,CAAC,CAAC;IACnC,CAAC;IAED;;;;OAIG;IACa,MAAM,CAAC,KAAc;QACpC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;YAC9B,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;SAC3B;aAAM;YACN,KAAK,CAAC,MAAM,EAAE,CAAC;SACf;IACF,CAAC;IAED;;OAEG;IACa,WAAW,CAAC,IAAW;QACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAY,CAAC,WAAW,EAAE;YAC/C,MAAM,OAAO,GAAiB,IAAI,CAAC;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAE3C,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,UAAU,EAAE;gBACnE,IAAI,CAAC,OAAO,CAAC,IAAI,CAA4C,OAAO,CAAC,CAAC;gBAEtE,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;iBAC/B;aACD;YAED,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACjE;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;OAEG;IACa,YAAY,CAAC,OAAc,EAAE,aAA2B;QACvE,MAAM,WAAW,GAAG,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;QAE/D,IACC,OAAO,CAAC,QAAQ,KAAK,sBAAY,CAAC,WAAW;YAC7C,aAAa,EAAE,QAAQ,KAAK,sBAAY,CAAC,WAAW,EACnD;YACD,MAAM,UAAU,GAAiB,OAAO,CAAC;YACzC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAE3C,IAAI,UAAU,CAAC,OAAO,KAAK,QAAQ,IAAI,UAAU,CAAC,OAAO,KAAK,UAAU,EAAE;gBACzE,MAAM,gBAAgB,GAAiB,aAAa,CAAC;gBAErD,IACC,gBAAgB;oBAChB,CAAC,gBAAgB,CAAC,OAAO,KAAK,QAAQ,IAAI,gBAAgB,CAAC,OAAO,KAAK,UAAU,CAAC,EACjF;oBACD,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CACC,gBAAgB,CAC3D,CAAC;oBACF,IAAI,cAAc,KAAK,CAAC,CAAC,EAAE;wBAC1B,IAAI,CAAC,OAAO,CAAC,MAAM,CAClB,cAAc,EACd,CAAC,EAC0C,UAAU,CACrD,CAAC;qBACF;iBACD;qBAAM;oBACN,IAAI,CAAC,OAAO,CAAC,IAAI,CAA4C,UAAU,CAAC,CAAC;iBACzE;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBAC9B,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC;iBAC/B;aACD;YAED,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACjE;QAED,OAAO,WAAW,CAAC;IACpB,CAAC;IAED;;OAEG;IACa,WAAW,CAAC,IAAW;QACtC,IAAI,IAAI,CAAC,QAAQ,KAAK,sBAAY,CAAC,WAAW,EAAE;YAC/C,MAAM,OAAO,GAAiB,IAAI,CAAC;YACnC,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;YAE3C,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,IAAI,OAAO,CAAC,OAAO,KAAK,QAAQ,EAAE;gBACjE,MAAM,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAA4C,IAAI,CAAC,CAAC;gBAEpF,IAAI,KAAK,KAAK,CAAC,CAAC,EAAE;oBACjB,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;iBAC9B;gBAED,IAAI,IAAI,CAAC,OAAO,CAAC,aAAa,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBACtD,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;iBACrD;gBAED,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE;oBACzB,IAAI,CAAC,OAAO,CAAC,aAAa,GAAG,CAAC,CAAC,CAAC;iBAChC;aACD;YAED,IAAI,CAAC,sBAAsB,CAAC,cAAc,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;SACjE;QAED,OAAO,KAAK,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED;;;;;OAKG;IACO,sBAAsB,CAAC,cAAsB,EAAE,SAAiB;QACzE,IAAI,cAAc,GAAG,SAAS,EAAE;YAC/B,KAAK,IAAI,CAAC,GAAG,SAAS,EAAE,CAAC,GAAG,cAAc,EAAE,CAAC,EAAE,EAAE;gBAChD,IAAI,IAAI,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE;oBACnC,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC;iBACvB;aACD;SACD;aAAM,IAAI,cAAc,GAAG,SAAS,EAAE;YACtC,KAAK,IAAI,CAAC,GAAG,cAAc,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE;gBAChD,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE;oBACtC,GAAG,EAAE,GAAG,EAAE;wBACT,OAAO,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;oBACxB,CAAC;oBACD,UAAU,EAAE,IAAI;oBAChB,YAAY,EAAE,IAAI;iBAClB,CAAC,CAAC;aACH;SACD;IACF,CAAC;CACD;AA3XD,oCA2XC"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "happy-dom",
|
3
|
-
"version": "7.6.
|
3
|
+
"version": "7.6.4",
|
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": "
|
78
|
+
"gitHead": "61c41d2f47066eff3f3cc52e38cd496fe1570b3f"
|
79
79
|
}
|
@@ -77,21 +77,17 @@ export default abstract class AbstractCSSStyleDeclaration {
|
|
77
77
|
|
78
78
|
if (this._ownerElement) {
|
79
79
|
const style = new CSSStyleDeclarationPropertyManager({ cssText });
|
80
|
-
if (!style
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
this._ownerElement['_attributes']['style'] = new Attr();
|
86
|
-
this._ownerElement['_attributes']['style'].name = 'style';
|
87
|
-
}
|
88
|
-
|
89
|
-
if (this._ownerElement.isConnected) {
|
90
|
-
this._ownerElement.ownerDocument['_cacheID']++;
|
91
|
-
}
|
80
|
+
if (!this._ownerElement['_attributes']['style']) {
|
81
|
+
Attr._ownerDocument = this._ownerElement.ownerDocument;
|
82
|
+
this._ownerElement['_attributes']['style'] = new Attr();
|
83
|
+
this._ownerElement['_attributes']['style'].name = 'style';
|
84
|
+
}
|
92
85
|
|
93
|
-
|
86
|
+
if (this._ownerElement.isConnected) {
|
87
|
+
this._ownerElement.ownerDocument['_cacheID']++;
|
94
88
|
}
|
89
|
+
|
90
|
+
this._ownerElement['_attributes']['style'].value = style.toString();
|
95
91
|
} else {
|
96
92
|
this._style = new CSSStyleDeclarationPropertyManager({ cssText });
|
97
93
|
}
|
@@ -200,6 +200,16 @@ export default class HTMLElement extends Element implements IHTMLElement {
|
|
200
200
|
return this._style;
|
201
201
|
}
|
202
202
|
|
203
|
+
/**
|
204
|
+
* Sets style.
|
205
|
+
*
|
206
|
+
* @param cssText Style as text.
|
207
|
+
* @see https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement/style#setting_styles
|
208
|
+
*/
|
209
|
+
public set style(cssText: string | CSSStyleDeclaration) {
|
210
|
+
this.style.cssText = typeof cssText === 'string' ? <string>cssText : '';
|
211
|
+
}
|
212
|
+
|
203
213
|
/**
|
204
214
|
* Returns data set.
|
205
215
|
*
|
@@ -9,7 +9,6 @@ import IElement from '../element/IElement';
|
|
9
9
|
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLElement.
|
10
10
|
*/
|
11
11
|
export default interface IHTMLElement extends IElement {
|
12
|
-
style: CSSStyleDeclaration;
|
13
12
|
dataset: { [key: string]: string };
|
14
13
|
tabIndex: number;
|
15
14
|
offsetHeight: number;
|
@@ -48,6 +47,9 @@ export default interface IHTMLElement extends IElement {
|
|
48
47
|
ontransitionrun: (event: Event) => void | null;
|
49
48
|
ontransitionstart: (event: Event) => void | null;
|
50
49
|
|
50
|
+
get style(): CSSStyleDeclaration;
|
51
|
+
set style(cssText: CSSStyleDeclaration | string);
|
52
|
+
|
51
53
|
/**
|
52
54
|
* Triggers a click event.
|
53
55
|
*/
|
@@ -1,6 +1,7 @@
|
|
1
1
|
import HTMLElement from '../html-element/HTMLElement';
|
2
2
|
import IHTMLElement from '../html-element/IHTMLElement';
|
3
3
|
import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
|
4
|
+
import IHTMLSelectElement from '../html-select-element/IHTMLSelectElement';
|
4
5
|
import IHTMLOptionElement from './IHTMLOptionElement';
|
5
6
|
|
6
7
|
/**
|
@@ -58,7 +59,20 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
|
|
58
59
|
* @returns Selected.
|
59
60
|
*/
|
60
61
|
public get selected(): boolean {
|
61
|
-
|
62
|
+
const parentNode = <IHTMLSelectElement>this.parentNode;
|
63
|
+
|
64
|
+
if (parentNode?.tagName === 'SELECT') {
|
65
|
+
let index = -1;
|
66
|
+
for (let i = 0; i < parentNode.options.length; i++) {
|
67
|
+
if (parentNode.options[i] === this) {
|
68
|
+
index = i;
|
69
|
+
break;
|
70
|
+
}
|
71
|
+
}
|
72
|
+
return index !== -1 && parentNode.options.selectedIndex === index;
|
73
|
+
}
|
74
|
+
|
75
|
+
return false;
|
62
76
|
}
|
63
77
|
|
64
78
|
/**
|
@@ -67,10 +81,26 @@ export default class HTMLOptionElement extends HTMLElement implements IHTMLOptio
|
|
67
81
|
* @param selected Selected.
|
68
82
|
*/
|
69
83
|
public set selected(selected: boolean) {
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
84
|
+
const parentNode = <IHTMLSelectElement>this.parentNode;
|
85
|
+
if (parentNode?.tagName === 'SELECT') {
|
86
|
+
if (selected) {
|
87
|
+
let index = -1;
|
88
|
+
|
89
|
+
for (let i = 0; i < parentNode.options.length; i++) {
|
90
|
+
if (parentNode.options[i] === this) {
|
91
|
+
index = i;
|
92
|
+
break;
|
93
|
+
}
|
94
|
+
}
|
95
|
+
|
96
|
+
if (index !== -1) {
|
97
|
+
parentNode.options.selectedIndex = index;
|
98
|
+
}
|
99
|
+
} else if (parentNode.options.length) {
|
100
|
+
parentNode.options.selectedIndex = 0;
|
101
|
+
} else {
|
102
|
+
parentNode.options.selectedIndex = -1;
|
103
|
+
}
|
74
104
|
}
|
75
105
|
}
|
76
106
|
|
@@ -2,7 +2,6 @@ import DOMException from '../../exception/DOMException';
|
|
2
2
|
import HTMLCollection from '../element/HTMLCollection';
|
3
3
|
import IHTMLOptGroupElement from '../html-opt-group-element/IHTMLOptGroupElement';
|
4
4
|
import IHTMLSelectElement from '../html-select-element/IHTMLSelectElement';
|
5
|
-
import HTMLOptionElement from './HTMLOptionElement';
|
6
5
|
import IHTMLOptionElement from './IHTMLOptionElement';
|
7
6
|
import IHTMLOptionsCollection from './IHTMLOptionsCollection';
|
8
7
|
|
@@ -17,6 +16,7 @@ export default class HTMLOptionsCollection
|
|
17
16
|
implements IHTMLOptionsCollection
|
18
17
|
{
|
19
18
|
private _selectElement: IHTMLSelectElement;
|
19
|
+
private _selectedIndex = -1;
|
20
20
|
|
21
21
|
/**
|
22
22
|
*
|
@@ -34,14 +34,7 @@ export default class HTMLOptionsCollection
|
|
34
34
|
* @returns SelectedIndex.
|
35
35
|
*/
|
36
36
|
public get selectedIndex(): number {
|
37
|
-
|
38
|
-
const item = this[i];
|
39
|
-
if (item instanceof HTMLOptionElement && item.selected) {
|
40
|
-
return i;
|
41
|
-
}
|
42
|
-
}
|
43
|
-
|
44
|
-
return -1;
|
37
|
+
return this._selectedIndex;
|
45
38
|
}
|
46
39
|
|
47
40
|
/**
|
@@ -50,10 +43,11 @@ export default class HTMLOptionsCollection
|
|
50
43
|
* @param selectedIndex SelectedIndex.
|
51
44
|
*/
|
52
45
|
public set selectedIndex(selectedIndex: number) {
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
46
|
+
if (typeof selectedIndex === 'number' && !isNaN(selectedIndex)) {
|
47
|
+
if (selectedIndex >= 0 && selectedIndex < this.length) {
|
48
|
+
this._selectedIndex = selectedIndex;
|
49
|
+
} else {
|
50
|
+
this._selectedIndex = -1;
|
57
51
|
}
|
58
52
|
}
|
59
53
|
}
|
@@ -1,5 +1,3 @@
|
|
1
|
-
import DOMException from '../../exception/DOMException';
|
2
|
-
import DOMExceptionNameEnum from '../../exception/DOMExceptionNameEnum';
|
3
1
|
import HTMLElement from '../html-element/HTMLElement';
|
4
2
|
import IHTMLElement from '../html-element/IHTMLElement';
|
5
3
|
import IHTMLFormElement from '../html-form-element/IHTMLFormElement';
|
@@ -204,13 +202,6 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
|
|
204
202
|
* @param value Value.
|
205
203
|
*/
|
206
204
|
public set selectedIndex(value: number) {
|
207
|
-
if (value > this.options.length - 1 || value < -1) {
|
208
|
-
throw new DOMException(
|
209
|
-
'Select elements selected index must be valid',
|
210
|
-
DOMExceptionNameEnum.indexSizeError
|
211
|
-
);
|
212
|
-
}
|
213
|
-
|
214
205
|
this.options.selectedIndex = value;
|
215
206
|
}
|
216
207
|
|
@@ -296,6 +287,10 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
|
|
296
287
|
|
297
288
|
if (element.tagName === 'OPTION' || element.tagName === 'OPTGROUP') {
|
298
289
|
this.options.push(<IHTMLOptionElement | IHTMLOptGroupElement>element);
|
290
|
+
|
291
|
+
if (this.options.length === 1) {
|
292
|
+
this.options.selectedIndex = 0;
|
293
|
+
}
|
299
294
|
}
|
300
295
|
|
301
296
|
this._updateIndexProperties(previousLength, this.options.length);
|
@@ -337,6 +332,10 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
|
|
337
332
|
} else {
|
338
333
|
this.options.push(<IHTMLOptionElement | IHTMLOptGroupElement>newElement);
|
339
334
|
}
|
335
|
+
|
336
|
+
if (this.options.length === 1) {
|
337
|
+
this.options.selectedIndex = 0;
|
338
|
+
}
|
340
339
|
}
|
341
340
|
|
342
341
|
this._updateIndexProperties(previousLength, this.options.length);
|
@@ -355,9 +354,18 @@ export default class HTMLSelectElement extends HTMLElement implements IHTMLSelec
|
|
355
354
|
|
356
355
|
if (element.tagName === 'OPTION' || element.tagName === 'OPTION') {
|
357
356
|
const index = this.options.indexOf(<IHTMLOptionElement | IHTMLOptGroupElement>node);
|
357
|
+
|
358
358
|
if (index !== -1) {
|
359
359
|
this.options.splice(index, 1);
|
360
360
|
}
|
361
|
+
|
362
|
+
if (this.options.selectedIndex >= this.options.length) {
|
363
|
+
this.options.selectedIndex = this.options.length - 1;
|
364
|
+
}
|
365
|
+
|
366
|
+
if (!this.options.length) {
|
367
|
+
this.options.selectedIndex = -1;
|
368
|
+
}
|
361
369
|
}
|
362
370
|
|
363
371
|
this._updateIndexProperties(previousLength, this.options.length);
|