happy-dom 15.11.0 → 15.11.1
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/nodes/html-element/HTMLElementUtility.cjs +12 -12
- package/cjs/nodes/html-element/HTMLElementUtility.cjs.map +1 -1
- package/cjs/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElementUtility.d.ts.map +1 -1
- package/lib/nodes/html-element/HTMLElementUtility.js +12 -12
- package/lib/nodes/html-element/HTMLElementUtility.js.map +1 -1
- package/package.json +3 -3
- package/src/nodes/html-element/HTMLElementUtility.ts +12 -16
@@ -38,21 +38,21 @@ class HTMLElementUtility {
|
|
38
38
|
* @param element Element.
|
39
39
|
*/
|
40
40
|
static blur(element) {
|
41
|
-
const
|
42
|
-
|
43
|
-
|
41
|
+
const target = element[PropertySymbol.proxy] || element;
|
42
|
+
const document = target[PropertySymbol.ownerDocument];
|
43
|
+
if (document[PropertySymbol.activeElement] !== target || !target[PropertySymbol.isConnected]) {
|
44
44
|
return;
|
45
45
|
}
|
46
46
|
const relatedTarget = document[PropertySymbol.nextActiveElement] ?? null;
|
47
47
|
document[PropertySymbol.activeElement] = null;
|
48
48
|
document[PropertySymbol.clearCache]();
|
49
|
-
|
49
|
+
target.dispatchEvent(new FocusEvent_js_1.default('blur', {
|
50
50
|
relatedTarget,
|
51
51
|
bubbles: false,
|
52
52
|
composed: true,
|
53
53
|
cancelable: true
|
54
54
|
}));
|
55
|
-
|
55
|
+
target.dispatchEvent(new FocusEvent_js_1.default('focusout', {
|
56
56
|
relatedTarget,
|
57
57
|
bubbles: true,
|
58
58
|
composed: true,
|
@@ -65,27 +65,27 @@ class HTMLElementUtility {
|
|
65
65
|
* @param element Element.
|
66
66
|
*/
|
67
67
|
static focus(element) {
|
68
|
-
const
|
69
|
-
|
70
|
-
|
68
|
+
const target = element[PropertySymbol.proxy] || element;
|
69
|
+
const document = target[PropertySymbol.ownerDocument];
|
70
|
+
if (document[PropertySymbol.activeElement] === target || !target[PropertySymbol.isConnected]) {
|
71
71
|
return;
|
72
72
|
}
|
73
73
|
// Set the next active element so `blur` can use it for `relatedTarget`.
|
74
|
-
document[PropertySymbol.nextActiveElement] =
|
74
|
+
document[PropertySymbol.nextActiveElement] = target;
|
75
75
|
const relatedTarget = document[PropertySymbol.activeElement];
|
76
76
|
if (document[PropertySymbol.activeElement] !== null) {
|
77
77
|
document[PropertySymbol.activeElement].blur();
|
78
78
|
}
|
79
79
|
// Clean up after blur, so it does not affect next blur call.
|
80
80
|
document[PropertySymbol.nextActiveElement] = null;
|
81
|
-
document[PropertySymbol.activeElement] =
|
81
|
+
document[PropertySymbol.activeElement] = target;
|
82
82
|
document[PropertySymbol.clearCache]();
|
83
|
-
|
83
|
+
target.dispatchEvent(new FocusEvent_js_1.default('focus', {
|
84
84
|
relatedTarget,
|
85
85
|
bubbles: false,
|
86
86
|
composed: true
|
87
87
|
}));
|
88
|
-
|
88
|
+
target.dispatchEvent(new FocusEvent_js_1.default('focusin', {
|
89
89
|
relatedTarget,
|
90
90
|
bubbles: true,
|
91
91
|
composed: true
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLElementUtility.cjs","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAA0D;AAC1D,wEAA0D;AAI1D;;GAEG;AACH,MAAqB,kBAAkB;IACtC;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,OAAiC;QACnD,MAAM,
|
1
|
+
{"version":3,"file":"HTMLElementUtility.cjs","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,qFAA0D;AAC1D,wEAA0D;AAI1D;;GAEG;AACH,MAAqB,kBAAkB;IACtC;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,OAAiC;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9F,OAAO;QACR,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;QAEzE,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAE9C,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAEtC,MAAM,CAAC,aAAa,CACnB,IAAI,uBAAU,CAAC,MAAM,EAAE;YACtB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC;QACF,MAAM,CAAC,aAAa,CACnB,IAAI,uBAAU,CAAC,UAAU,EAAE;YAC1B,aAAa;YACb,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,OAAiC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9F,OAAO;QACR,CAAC;QAED,wEAAwE;QACxE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;QAEpD,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAE7D,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;QAED,6DAA6D;QAC7D,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QAElD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAEhD,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAEtC,MAAM,CAAC,aAAa,CACnB,IAAI,uBAAU,CAAC,OAAO,EAAE;YACvB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;QACF,MAAM,CAAC,aAAa,CACnB,IAAI,uBAAU,CAAC,SAAS,EAAE;YACzB,aAAa;YACb,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;IACH,CAAC;CACD;AAlFD,qCAkFC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLElementUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;OAIG;WACW,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;
|
1
|
+
{"version":3,"file":"HTMLElementUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;OAIG;WACW,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;IAgC3D;;;;OAIG;WACW,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;CAuC5D"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLElementUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;OAIG;WACW,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;
|
1
|
+
{"version":3,"file":"HTMLElementUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,gCAAgC,CAAC;AACzD,OAAO,UAAU,MAAM,8BAA8B,CAAC;AAEtD;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;OAIG;WACW,IAAI,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;IAgC3D;;;;OAIG;WACW,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;CAuC5D"}
|
@@ -10,21 +10,21 @@ export default class HTMLElementUtility {
|
|
10
10
|
* @param element Element.
|
11
11
|
*/
|
12
12
|
static blur(element) {
|
13
|
-
const
|
14
|
-
|
15
|
-
|
13
|
+
const target = element[PropertySymbol.proxy] || element;
|
14
|
+
const document = target[PropertySymbol.ownerDocument];
|
15
|
+
if (document[PropertySymbol.activeElement] !== target || !target[PropertySymbol.isConnected]) {
|
16
16
|
return;
|
17
17
|
}
|
18
18
|
const relatedTarget = document[PropertySymbol.nextActiveElement] ?? null;
|
19
19
|
document[PropertySymbol.activeElement] = null;
|
20
20
|
document[PropertySymbol.clearCache]();
|
21
|
-
|
21
|
+
target.dispatchEvent(new FocusEvent('blur', {
|
22
22
|
relatedTarget,
|
23
23
|
bubbles: false,
|
24
24
|
composed: true,
|
25
25
|
cancelable: true
|
26
26
|
}));
|
27
|
-
|
27
|
+
target.dispatchEvent(new FocusEvent('focusout', {
|
28
28
|
relatedTarget,
|
29
29
|
bubbles: true,
|
30
30
|
composed: true,
|
@@ -37,27 +37,27 @@ export default class HTMLElementUtility {
|
|
37
37
|
* @param element Element.
|
38
38
|
*/
|
39
39
|
static focus(element) {
|
40
|
-
const
|
41
|
-
|
42
|
-
|
40
|
+
const target = element[PropertySymbol.proxy] || element;
|
41
|
+
const document = target[PropertySymbol.ownerDocument];
|
42
|
+
if (document[PropertySymbol.activeElement] === target || !target[PropertySymbol.isConnected]) {
|
43
43
|
return;
|
44
44
|
}
|
45
45
|
// Set the next active element so `blur` can use it for `relatedTarget`.
|
46
|
-
document[PropertySymbol.nextActiveElement] =
|
46
|
+
document[PropertySymbol.nextActiveElement] = target;
|
47
47
|
const relatedTarget = document[PropertySymbol.activeElement];
|
48
48
|
if (document[PropertySymbol.activeElement] !== null) {
|
49
49
|
document[PropertySymbol.activeElement].blur();
|
50
50
|
}
|
51
51
|
// Clean up after blur, so it does not affect next blur call.
|
52
52
|
document[PropertySymbol.nextActiveElement] = null;
|
53
|
-
document[PropertySymbol.activeElement] =
|
53
|
+
document[PropertySymbol.activeElement] = target;
|
54
54
|
document[PropertySymbol.clearCache]();
|
55
|
-
|
55
|
+
target.dispatchEvent(new FocusEvent('focus', {
|
56
56
|
relatedTarget,
|
57
57
|
bubbles: false,
|
58
58
|
composed: true
|
59
59
|
}));
|
60
|
-
|
60
|
+
target.dispatchEvent(new FocusEvent('focusin', {
|
61
61
|
relatedTarget,
|
62
62
|
bubbles: true,
|
63
63
|
composed: true
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLElementUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,OAAiC;QACnD,MAAM,
|
1
|
+
{"version":3,"file":"HTMLElementUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-element/HTMLElementUtility.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,kCAAkC,CAAC;AAC1D,OAAO,KAAK,cAAc,MAAM,yBAAyB,CAAC;AAI1D;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,kBAAkB;IACtC;;;;OAIG;IACI,MAAM,CAAC,IAAI,CAAC,OAAiC;QACnD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9F,OAAO;QACR,CAAC;QAED,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,IAAI,IAAI,CAAC;QAEzE,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,IAAI,CAAC;QAE9C,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAEtC,MAAM,CAAC,aAAa,CACnB,IAAI,UAAU,CAAC,MAAM,EAAE;YACtB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC;QACF,MAAM,CAAC,aAAa,CACnB,IAAI,UAAU,CAAC,UAAU,EAAE;YAC1B,aAAa;YACb,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC;IACH,CAAC;IAED;;;;OAIG;IACI,MAAM,CAAC,KAAK,CAAC,OAAiC;QACpD,MAAM,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,OAAO,CAAC;QACxD,MAAM,QAAQ,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEtD,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,MAAM,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,WAAW,CAAC,EAAE,CAAC;YAC9F,OAAO;QACR,CAAC;QAED,wEAAwE;QACxE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,MAAM,CAAC;QAEpD,MAAM,aAAa,GAAG,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAE7D,IAAI,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;YACrD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC,IAAI,EAAE,CAAC;QAC/C,CAAC;QAED,6DAA6D;QAC7D,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,IAAI,CAAC;QAElD,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,GAAG,MAAM,CAAC;QAEhD,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAEtC,MAAM,CAAC,aAAa,CACnB,IAAI,UAAU,CAAC,OAAO,EAAE;YACvB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;QACF,MAAM,CAAC,aAAa,CACnB,IAAI,UAAU,CAAC,SAAS,EAAE;YACzB,aAAa;YACb,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;IACH,CAAC;CACD"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "happy-dom",
|
3
|
-
"version": "15.11.
|
3
|
+
"version": "15.11.1",
|
4
4
|
"license": "MIT",
|
5
5
|
"homepage": "https://github.com/capricorn86/happy-dom",
|
6
6
|
"repository": "https://github.com/capricorn86/happy-dom",
|
@@ -83,11 +83,11 @@
|
|
83
83
|
},
|
84
84
|
"devDependencies": {
|
85
85
|
"@types/node": "^16.11.7",
|
86
|
-
"@vitest/ui": "^
|
86
|
+
"@vitest/ui": "^2.1.4",
|
87
87
|
"@webref/css": "6.6.2",
|
88
88
|
"prettier": "^2.6.0",
|
89
89
|
"typescript": "^5.0.4",
|
90
|
-
"vitest": "^2.
|
90
|
+
"vitest": "^2.1.4"
|
91
91
|
},
|
92
92
|
"engines": {
|
93
93
|
"node": ">=18.0.0"
|
@@ -13,12 +13,10 @@ export default class HTMLElementUtility {
|
|
13
13
|
* @param element Element.
|
14
14
|
*/
|
15
15
|
public static blur(element: HTMLElement | SVGElement): void {
|
16
|
-
const
|
16
|
+
const target = element[PropertySymbol.proxy] || element;
|
17
|
+
const document = target[PropertySymbol.ownerDocument];
|
17
18
|
|
18
|
-
if (
|
19
|
-
document[PropertySymbol.activeElement] !== element ||
|
20
|
-
!element[PropertySymbol.isConnected]
|
21
|
-
) {
|
19
|
+
if (document[PropertySymbol.activeElement] !== target || !target[PropertySymbol.isConnected]) {
|
22
20
|
return;
|
23
21
|
}
|
24
22
|
|
@@ -28,7 +26,7 @@ export default class HTMLElementUtility {
|
|
28
26
|
|
29
27
|
document[PropertySymbol.clearCache]();
|
30
28
|
|
31
|
-
|
29
|
+
target.dispatchEvent(
|
32
30
|
new FocusEvent('blur', {
|
33
31
|
relatedTarget,
|
34
32
|
bubbles: false,
|
@@ -36,7 +34,7 @@ export default class HTMLElementUtility {
|
|
36
34
|
cancelable: true
|
37
35
|
})
|
38
36
|
);
|
39
|
-
|
37
|
+
target.dispatchEvent(
|
40
38
|
new FocusEvent('focusout', {
|
41
39
|
relatedTarget,
|
42
40
|
bubbles: true,
|
@@ -52,17 +50,15 @@ export default class HTMLElementUtility {
|
|
52
50
|
* @param element Element.
|
53
51
|
*/
|
54
52
|
public static focus(element: HTMLElement | SVGElement): void {
|
55
|
-
const
|
53
|
+
const target = element[PropertySymbol.proxy] || element;
|
54
|
+
const document = target[PropertySymbol.ownerDocument];
|
56
55
|
|
57
|
-
if (
|
58
|
-
document[PropertySymbol.activeElement] === element ||
|
59
|
-
!element[PropertySymbol.isConnected]
|
60
|
-
) {
|
56
|
+
if (document[PropertySymbol.activeElement] === target || !target[PropertySymbol.isConnected]) {
|
61
57
|
return;
|
62
58
|
}
|
63
59
|
|
64
60
|
// Set the next active element so `blur` can use it for `relatedTarget`.
|
65
|
-
document[PropertySymbol.nextActiveElement] =
|
61
|
+
document[PropertySymbol.nextActiveElement] = target;
|
66
62
|
|
67
63
|
const relatedTarget = document[PropertySymbol.activeElement];
|
68
64
|
|
@@ -73,18 +69,18 @@ export default class HTMLElementUtility {
|
|
73
69
|
// Clean up after blur, so it does not affect next blur call.
|
74
70
|
document[PropertySymbol.nextActiveElement] = null;
|
75
71
|
|
76
|
-
document[PropertySymbol.activeElement] =
|
72
|
+
document[PropertySymbol.activeElement] = target;
|
77
73
|
|
78
74
|
document[PropertySymbol.clearCache]();
|
79
75
|
|
80
|
-
|
76
|
+
target.dispatchEvent(
|
81
77
|
new FocusEvent('focus', {
|
82
78
|
relatedTarget,
|
83
79
|
bubbles: false,
|
84
80
|
composed: true
|
85
81
|
})
|
86
82
|
);
|
87
|
-
|
83
|
+
target.dispatchEvent(
|
88
84
|
new FocusEvent('focusin', {
|
89
85
|
relatedTarget,
|
90
86
|
bubbles: true,
|