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.
@@ -38,21 +38,21 @@ class HTMLElementUtility {
38
38
  * @param element Element.
39
39
  */
40
40
  static blur(element) {
41
- const document = element[PropertySymbol.ownerDocument];
42
- if (document[PropertySymbol.activeElement] !== element ||
43
- !element[PropertySymbol.isConnected]) {
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
- element.dispatchEvent(new FocusEvent_js_1.default('blur', {
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
- element.dispatchEvent(new FocusEvent_js_1.default('focusout', {
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 document = element[PropertySymbol.ownerDocument];
69
- if (document[PropertySymbol.activeElement] === element ||
70
- !element[PropertySymbol.isConnected]) {
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] = element;
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] = element;
81
+ document[PropertySymbol.activeElement] = target;
82
82
  document[PropertySymbol.clearCache]();
83
- element.dispatchEvent(new FocusEvent_js_1.default('focus', {
83
+ target.dispatchEvent(new FocusEvent_js_1.default('focus', {
84
84
  relatedTarget,
85
85
  bubbles: false,
86
86
  composed: true
87
87
  }));
88
- element.dispatchEvent(new FocusEvent_js_1.default('focusin', {
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,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEvD,IACC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,OAAO;YAClD,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,EACnC,CAAC;YACF,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,OAAO,CAAC,aAAa,CACpB,IAAI,uBAAU,CAAC,MAAM,EAAE;YACtB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CACpB,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,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEvD,IACC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,OAAO;YAClD,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,EACnC,CAAC;YACF,OAAO;QACR,CAAC;QAED,wEAAwE;QACxE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;QAErD,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,OAAO,CAAC;QAEjD,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAEtC,OAAO,CAAC,aAAa,CACpB,IAAI,uBAAU,CAAC,OAAO,EAAE;YACvB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CACpB,IAAI,uBAAU,CAAC,SAAS,EAAE;YACzB,aAAa;YACb,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;IACH,CAAC;CACD;AAtFD,qCAsFC"}
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;IAkC3D;;;;OAIG;WACW,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;CAyC5D"}
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;IAkC3D;;;;OAIG;WACW,KAAK,CAAC,OAAO,EAAE,WAAW,GAAG,UAAU,GAAG,IAAI;CAyC5D"}
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 document = element[PropertySymbol.ownerDocument];
14
- if (document[PropertySymbol.activeElement] !== element ||
15
- !element[PropertySymbol.isConnected]) {
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
- element.dispatchEvent(new FocusEvent('blur', {
21
+ target.dispatchEvent(new FocusEvent('blur', {
22
22
  relatedTarget,
23
23
  bubbles: false,
24
24
  composed: true,
25
25
  cancelable: true
26
26
  }));
27
- element.dispatchEvent(new FocusEvent('focusout', {
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 document = element[PropertySymbol.ownerDocument];
41
- if (document[PropertySymbol.activeElement] === element ||
42
- !element[PropertySymbol.isConnected]) {
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] = element;
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] = element;
53
+ document[PropertySymbol.activeElement] = target;
54
54
  document[PropertySymbol.clearCache]();
55
- element.dispatchEvent(new FocusEvent('focus', {
55
+ target.dispatchEvent(new FocusEvent('focus', {
56
56
  relatedTarget,
57
57
  bubbles: false,
58
58
  composed: true
59
59
  }));
60
- element.dispatchEvent(new FocusEvent('focusin', {
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,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEvD,IACC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,OAAO;YAClD,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,EACnC,CAAC;YACF,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,OAAO,CAAC,aAAa,CACpB,IAAI,UAAU,CAAC,MAAM,EAAE;YACtB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,IAAI;SAChB,CAAC,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CACpB,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,QAAQ,GAAG,OAAO,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;QAEvD,IACC,QAAQ,CAAC,cAAc,CAAC,aAAa,CAAC,KAAK,OAAO;YAClD,CAAC,OAAO,CAAC,cAAc,CAAC,WAAW,CAAC,EACnC,CAAC;YACF,OAAO;QACR,CAAC;QAED,wEAAwE;QACxE,QAAQ,CAAC,cAAc,CAAC,iBAAiB,CAAC,GAAG,OAAO,CAAC;QAErD,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,OAAO,CAAC;QAEjD,QAAQ,CAAC,cAAc,CAAC,UAAU,CAAC,EAAE,CAAC;QAEtC,OAAO,CAAC,aAAa,CACpB,IAAI,UAAU,CAAC,OAAO,EAAE;YACvB,aAAa;YACb,OAAO,EAAE,KAAK;YACd,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;QACF,OAAO,CAAC,aAAa,CACpB,IAAI,UAAU,CAAC,SAAS,EAAE;YACzB,aAAa;YACb,OAAO,EAAE,IAAI;YACb,QAAQ,EAAE,IAAI;SACd,CAAC,CACF,CAAC;IACH,CAAC;CACD"}
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.0",
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": "^0.33.0",
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.0.5"
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 document = element[PropertySymbol.ownerDocument];
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
- element.dispatchEvent(
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
- element.dispatchEvent(
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 document = element[PropertySymbol.ownerDocument];
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] = element;
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] = element;
72
+ document[PropertySymbol.activeElement] = target;
77
73
 
78
74
  document[PropertySymbol.clearCache]();
79
75
 
80
- element.dispatchEvent(
76
+ target.dispatchEvent(
81
77
  new FocusEvent('focus', {
82
78
  relatedTarget,
83
79
  bubbles: false,
84
80
  composed: true
85
81
  })
86
82
  );
87
- element.dispatchEvent(
83
+ target.dispatchEvent(
88
84
  new FocusEvent('focusin', {
89
85
  relatedTarget,
90
86
  bubbles: true,