happy-dom 17.0.1 → 17.0.2
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.
- package/cjs/module/ECMAScriptModuleCompiler.cjs +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs +17 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.cjs.map +1 -1
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts +8 -0
- package/cjs/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs +17 -0
- package/cjs/nodes/html-area-element/HTMLAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts +8 -0
- package/cjs/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs +17 -0
- package/cjs/nodes/html-button-element/HTMLButtonElement.cjs.map +1 -1
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts +8 -0
- package/cjs/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.cjs +9 -4
- package/cjs/nodes/html-element/HTMLElement.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs +17 -0
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.cjs.map +1 -1
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts +8 -0
- package/cjs/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs +17 -0
- package/cjs/nodes/html-input-element/HTMLInputElement.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts +8 -0
- package/cjs/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs +17 -0
- package/cjs/nodes/html-media-element/HTMLMediaElement.cjs.map +1 -1
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts +8 -0
- package/cjs/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/cjs/nodes/html-object-element/HTMLObjectElement.cjs +17 -0
- package/cjs/nodes/html-object-element/HTMLObjectElement.cjs.map +1 -1
- package/cjs/nodes/html-object-element/HTMLObjectElement.d.ts +8 -0
- package/cjs/nodes/html-object-element/HTMLObjectElement.d.ts.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs +17 -0
- package/cjs/nodes/html-select-element/HTMLSelectElement.cjs.map +1 -1
- package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts +8 -0
- package/cjs/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs +17 -0
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.cjs.map +1 -1
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +8 -0
- package/cjs/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/lib/module/ECMAScriptModuleCompiler.js +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +8 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +17 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts +8 -0
- package/lib/nodes/html-area-element/HTMLAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-area-element/HTMLAreaElement.js +17 -0
- package/lib/nodes/html-area-element/HTMLAreaElement.js.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts +8 -0
- package/lib/nodes/html-button-element/HTMLButtonElement.d.ts.map +1 -1
- package/lib/nodes/html-button-element/HTMLButtonElement.js +17 -0
- package/lib/nodes/html-button-element/HTMLButtonElement.js.map +1 -1
- package/lib/nodes/html-element/HTMLElement.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElement.js +9 -4
- package/lib/nodes/html-element/HTMLElement.js.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts +8 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.d.ts.map +1 -1
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js +17 -0
- package/lib/nodes/html-iframe-element/HTMLIFrameElement.js.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts +8 -0
- package/lib/nodes/html-input-element/HTMLInputElement.d.ts.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElement.js +17 -0
- package/lib/nodes/html-input-element/HTMLInputElement.js.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts +8 -0
- package/lib/nodes/html-media-element/HTMLMediaElement.d.ts.map +1 -1
- package/lib/nodes/html-media-element/HTMLMediaElement.js +17 -0
- package/lib/nodes/html-media-element/HTMLMediaElement.js.map +1 -1
- package/lib/nodes/html-object-element/HTMLObjectElement.d.ts +8 -0
- package/lib/nodes/html-object-element/HTMLObjectElement.d.ts.map +1 -1
- package/lib/nodes/html-object-element/HTMLObjectElement.js +17 -0
- package/lib/nodes/html-object-element/HTMLObjectElement.js.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts +8 -0
- package/lib/nodes/html-select-element/HTMLSelectElement.d.ts.map +1 -1
- package/lib/nodes/html-select-element/HTMLSelectElement.js +17 -0
- package/lib/nodes/html-select-element/HTMLSelectElement.js.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts +8 -0
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.d.ts.map +1 -1
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js +17 -0
- package/lib/nodes/html-text-area-element/HTMLTextAreaElement.js.map +1 -1
- package/package.json +1 -1
- package/src/module/ECMAScriptModuleCompiler.ts +1 -1
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +19 -0
- package/src/nodes/html-area-element/HTMLAreaElement.ts +19 -0
- package/src/nodes/html-button-element/HTMLButtonElement.ts +19 -0
- package/src/nodes/html-element/HTMLElement.ts +9 -4
- package/src/nodes/html-iframe-element/HTMLIFrameElement.ts +19 -0
- package/src/nodes/html-input-element/HTMLInputElement.ts +19 -0
- package/src/nodes/html-media-element/HTMLMediaElement.ts +19 -0
- package/src/nodes/html-object-element/HTMLObjectElement.ts +19 -0
- package/src/nodes/html-select-element/HTMLSelectElement.ts +19 -0
- package/src/nodes/html-text-area-element/HTMLTextAreaElement.ts +19 -0
@@ -375,6 +375,25 @@ export default class HTMLAnchorElement extends HTMLElement implements IHTMLHyper
|
|
375
375
|
this.setAttribute('type', type);
|
376
376
|
}
|
377
377
|
|
378
|
+
/**
|
379
|
+
* @override
|
380
|
+
*/
|
381
|
+
public override get tabIndex(): number {
|
382
|
+
const tabIndex = this.getAttribute('tabindex');
|
383
|
+
if (tabIndex !== null) {
|
384
|
+
const parsed = Number(tabIndex);
|
385
|
+
return isNaN(parsed) ? 0 : parsed;
|
386
|
+
}
|
387
|
+
return 0;
|
388
|
+
}
|
389
|
+
|
390
|
+
/**
|
391
|
+
* @override
|
392
|
+
*/
|
393
|
+
public override set tabIndex(tabIndex: number) {
|
394
|
+
super.tabIndex = tabIndex;
|
395
|
+
}
|
396
|
+
|
378
397
|
/**
|
379
398
|
* @override
|
380
399
|
*/
|
@@ -374,6 +374,25 @@ export default class HTMLAreaElement extends HTMLElement implements IHTMLHyperli
|
|
374
374
|
this.#htmlHyperlinkElementUtility.setHash(hash);
|
375
375
|
}
|
376
376
|
|
377
|
+
/**
|
378
|
+
* @override
|
379
|
+
*/
|
380
|
+
public override get tabIndex(): number {
|
381
|
+
const tabIndex = this.getAttribute('tabindex');
|
382
|
+
if (tabIndex !== null) {
|
383
|
+
const parsed = Number(tabIndex);
|
384
|
+
return isNaN(parsed) ? 0 : parsed;
|
385
|
+
}
|
386
|
+
return 0;
|
387
|
+
}
|
388
|
+
|
389
|
+
/**
|
390
|
+
* @override
|
391
|
+
*/
|
392
|
+
public override set tabIndex(tabIndex: number) {
|
393
|
+
super.tabIndex = tabIndex;
|
394
|
+
}
|
395
|
+
|
377
396
|
/**
|
378
397
|
* @override
|
379
398
|
*/
|
@@ -297,6 +297,25 @@ export default class HTMLButtonElement extends HTMLElement {
|
|
297
297
|
this.setAttribute('popovertargetaction', value);
|
298
298
|
}
|
299
299
|
|
300
|
+
/**
|
301
|
+
* @override
|
302
|
+
*/
|
303
|
+
public override get tabIndex(): number {
|
304
|
+
const tabIndex = this.getAttribute('tabindex');
|
305
|
+
if (tabIndex !== null) {
|
306
|
+
const parsed = Number(tabIndex);
|
307
|
+
return isNaN(parsed) ? 0 : parsed;
|
308
|
+
}
|
309
|
+
return 0;
|
310
|
+
}
|
311
|
+
|
312
|
+
/**
|
313
|
+
* @override
|
314
|
+
*/
|
315
|
+
public override set tabIndex(tabIndex: number) {
|
316
|
+
super.tabIndex = tabIndex;
|
317
|
+
}
|
318
|
+
|
300
319
|
/**
|
301
320
|
* Checks validity.
|
302
321
|
*
|
@@ -188,7 +188,11 @@ export default class HTMLElement extends Element {
|
|
188
188
|
*/
|
189
189
|
public get tabIndex(): number {
|
190
190
|
const tabIndex = this.getAttribute('tabindex');
|
191
|
-
|
191
|
+
if (tabIndex !== null) {
|
192
|
+
const parsed = Number(tabIndex);
|
193
|
+
return isNaN(parsed) ? -1 : parsed;
|
194
|
+
}
|
195
|
+
return -1;
|
192
196
|
}
|
193
197
|
|
194
198
|
/**
|
@@ -197,10 +201,11 @@ export default class HTMLElement extends Element {
|
|
197
201
|
* @param tabIndex Tab index.
|
198
202
|
*/
|
199
203
|
public set tabIndex(tabIndex: number) {
|
200
|
-
|
201
|
-
|
204
|
+
const parsed = Number(tabIndex);
|
205
|
+
if (isNaN(parsed)) {
|
206
|
+
this.setAttribute('tabindex', '0');
|
202
207
|
} else {
|
203
|
-
this.setAttribute('tabindex', String(
|
208
|
+
this.setAttribute('tabindex', String(parsed));
|
204
209
|
}
|
205
210
|
}
|
206
211
|
|
@@ -227,6 +227,25 @@ export default class HTMLIFrameElement extends HTMLElement {
|
|
227
227
|
return this.#contentWindowContainer.window;
|
228
228
|
}
|
229
229
|
|
230
|
+
/**
|
231
|
+
* @override
|
232
|
+
*/
|
233
|
+
public override get tabIndex(): number {
|
234
|
+
const tabIndex = this.getAttribute('tabindex');
|
235
|
+
if (tabIndex !== null) {
|
236
|
+
const parsed = Number(tabIndex);
|
237
|
+
return isNaN(parsed) ? 0 : parsed;
|
238
|
+
}
|
239
|
+
return 0;
|
240
|
+
}
|
241
|
+
|
242
|
+
/**
|
243
|
+
* @override
|
244
|
+
*/
|
245
|
+
public override set tabIndex(tabIndex: number) {
|
246
|
+
super.tabIndex = tabIndex;
|
247
|
+
}
|
248
|
+
|
230
249
|
/**
|
231
250
|
* @override
|
232
251
|
*/
|
@@ -1158,6 +1158,25 @@ export default class HTMLInputElement extends HTMLElement {
|
|
1158
1158
|
this.setAttribute('popovertargetaction', value);
|
1159
1159
|
}
|
1160
1160
|
|
1161
|
+
/**
|
1162
|
+
* @override
|
1163
|
+
*/
|
1164
|
+
public override get tabIndex(): number {
|
1165
|
+
const tabIndex = this.getAttribute('tabindex');
|
1166
|
+
if (tabIndex !== null) {
|
1167
|
+
const parsed = Number(tabIndex);
|
1168
|
+
return isNaN(parsed) ? 0 : parsed;
|
1169
|
+
}
|
1170
|
+
return 0;
|
1171
|
+
}
|
1172
|
+
|
1173
|
+
/**
|
1174
|
+
* @override
|
1175
|
+
*/
|
1176
|
+
public override set tabIndex(tabIndex: number) {
|
1177
|
+
super.tabIndex = tabIndex;
|
1178
|
+
}
|
1179
|
+
|
1161
1180
|
/**
|
1162
1181
|
* Sets validation message.
|
1163
1182
|
*
|
@@ -612,6 +612,25 @@ export default class HTMLMediaElement extends HTMLElement {
|
|
612
612
|
return this[PropertySymbol.paused];
|
613
613
|
}
|
614
614
|
|
615
|
+
/**
|
616
|
+
* @override
|
617
|
+
*/
|
618
|
+
public override get tabIndex(): number {
|
619
|
+
const tabIndex = this.getAttribute('tabindex');
|
620
|
+
if (tabIndex !== null) {
|
621
|
+
const parsed = Number(tabIndex);
|
622
|
+
return isNaN(parsed) ? 0 : parsed;
|
623
|
+
}
|
624
|
+
return 0;
|
625
|
+
}
|
626
|
+
|
627
|
+
/**
|
628
|
+
* @override
|
629
|
+
*/
|
630
|
+
public override set tabIndex(tabIndex: number) {
|
631
|
+
super.tabIndex = tabIndex;
|
632
|
+
}
|
633
|
+
|
615
634
|
/**
|
616
635
|
* Adds a new text track to the media element.
|
617
636
|
*
|
@@ -175,6 +175,25 @@ export default class HTMLObjectElement extends HTMLElement {
|
|
175
175
|
return false;
|
176
176
|
}
|
177
177
|
|
178
|
+
/**
|
179
|
+
* @override
|
180
|
+
*/
|
181
|
+
public override get tabIndex(): number {
|
182
|
+
const tabIndex = this.getAttribute('tabindex');
|
183
|
+
if (tabIndex !== null) {
|
184
|
+
const parsed = Number(tabIndex);
|
185
|
+
return isNaN(parsed) ? 0 : parsed;
|
186
|
+
}
|
187
|
+
return 0;
|
188
|
+
}
|
189
|
+
|
190
|
+
/**
|
191
|
+
* @override
|
192
|
+
*/
|
193
|
+
public override set tabIndex(tabIndex: number) {
|
194
|
+
super.tabIndex = tabIndex;
|
195
|
+
}
|
196
|
+
|
178
197
|
/**
|
179
198
|
* Checks validity.
|
180
199
|
*
|
@@ -515,6 +515,25 @@ export default class HTMLSelectElement extends HTMLElement {
|
|
515
515
|
);
|
516
516
|
}
|
517
517
|
|
518
|
+
/**
|
519
|
+
* @override
|
520
|
+
*/
|
521
|
+
public override get tabIndex(): number {
|
522
|
+
const tabIndex = this.getAttribute('tabindex');
|
523
|
+
if (tabIndex !== null) {
|
524
|
+
const parsed = Number(tabIndex);
|
525
|
+
return isNaN(parsed) ? 0 : parsed;
|
526
|
+
}
|
527
|
+
return 0;
|
528
|
+
}
|
529
|
+
|
530
|
+
/**
|
531
|
+
* @override
|
532
|
+
*/
|
533
|
+
public override set tabIndex(tabIndex: number) {
|
534
|
+
super.tabIndex = tabIndex;
|
535
|
+
}
|
536
|
+
|
518
537
|
/**
|
519
538
|
* Returns item from options collection by index.
|
520
539
|
*
|
@@ -438,6 +438,25 @@ export default class HTMLTextAreaElement extends HTMLElement {
|
|
438
438
|
return HTMLLabelElementUtility.getAssociatedLabelElements(this);
|
439
439
|
}
|
440
440
|
|
441
|
+
/**
|
442
|
+
* @override
|
443
|
+
*/
|
444
|
+
public override get tabIndex(): number {
|
445
|
+
const tabIndex = this.getAttribute('tabindex');
|
446
|
+
if (tabIndex !== null) {
|
447
|
+
const parsed = Number(tabIndex);
|
448
|
+
return isNaN(parsed) ? 0 : parsed;
|
449
|
+
}
|
450
|
+
return 0;
|
451
|
+
}
|
452
|
+
|
453
|
+
/**
|
454
|
+
* @override
|
455
|
+
*/
|
456
|
+
public override set tabIndex(tabIndex: number) {
|
457
|
+
super.tabIndex = tabIndex;
|
458
|
+
}
|
459
|
+
|
441
460
|
/**
|
442
461
|
* Selects the text.
|
443
462
|
*/
|