@sebgroup/green-core 3.21.3 → 3.22.0-rc.20260908115502152

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.
@@ -5,7 +5,7 @@ import {
5
5
  __privateMethod,
6
6
  __privateSet
7
7
  } from "../../chunks/chunk.CAV4X6PU.js";
8
- var _handleTriggerSlotChange, handleTriggerSlotChange_fn, _autoPositionCleanupFn, _isMobileViewport, _backdropEl, _handleCancel, _dispatchUiStateEvent, _handleCloseButton, _registerTriggerEvents, registerTriggerEvents_fn, _unregisterTriggerEvents, unregisterTriggerEvents_fn, _setupTriggerAttributes, setupTriggerAttributes_fn, _registerAutoPositioning, registerAutoPositioning_fn, _handleTriggerKeyDown, _handleTriggerClick, _focusFirstSlottedChild, _handleClickOutside, _handlePageScroll;
8
+ var _handleTriggerSlotChange, handleTriggerSlotChange_fn, _autoPositionCleanupFn, _isMobileViewport, _backdropEl, _clickOutsideTarget, _registerClickOutside, registerClickOutside_fn, _unregisterClickOutside, unregisterClickOutside_fn, _handleCancel, _dispatchUiStateEvent, _handleCloseButton, _registerTriggerEvents, registerTriggerEvents_fn, _unregisterTriggerEvents, unregisterTriggerEvents_fn, _setupTriggerAttributes, setupTriggerAttributes_fn, _registerAutoPositioning, registerAutoPositioning_fn, _handleTriggerKeyDown, _handleTriggerClick, _focusFirstSlottedChild, _handleClickOutside, _handlePageScroll;
9
9
  import { localized, msg } from "@lit/localize";
10
10
  import { property, query, state } from "lit/decorators.js";
11
11
  import { classMap } from "lit/directives/class-map.js";
@@ -43,6 +43,8 @@ let GdsPopover = class extends GdsElement {
43
43
  constructor() {
44
44
  super(...arguments);
45
45
  __privateAdd(this, _handleTriggerSlotChange);
46
+ __privateAdd(this, _registerClickOutside);
47
+ __privateAdd(this, _unregisterClickOutside);
46
48
  __privateAdd(this, _registerTriggerEvents);
47
49
  __privateAdd(this, _unregisterTriggerEvents);
48
50
  __privateAdd(this, _setupTriggerAttributes);
@@ -67,6 +69,9 @@ let GdsPopover = class extends GdsElement {
67
69
  __privateAdd(this, _autoPositionCleanupFn, void 0);
68
70
  __privateAdd(this, _isMobileViewport, false);
69
71
  __privateAdd(this, _backdropEl, void 0);
72
+ // The node the click outside listener is currently attached to. Kept so that removal always
73
+ // targets the same node it was added to, even if the resolved target would differ by then.
74
+ __privateAdd(this, _clickOutsideTarget, void 0);
70
75
  __privateAdd(this, _handleCancel, () => {
71
76
  if (__privateGet(this, _dispatchUiStateEvent).call(this, "cancel"))
72
77
  this.open = false;
@@ -181,6 +186,7 @@ let GdsPopover = class extends GdsElement {
181
186
  disconnectedCallback() {
182
187
  super.disconnectedCallback();
183
188
  __privateMethod(this, _unregisterTriggerEvents, unregisterTriggerEvents_fn).call(this);
189
+ __privateMethod(this, _unregisterClickOutside, unregisterClickOutside_fn).call(this);
184
190
  window.removeEventListener("scroll", __privateGet(this, _handlePageScroll));
185
191
  }
186
192
  render() {
@@ -215,7 +221,6 @@ let GdsPopover = class extends GdsElement {
215
221
  </div>`;
216
222
  }
217
223
  _handleOpenChange() {
218
- const clickOutsideTarget = (this.nonmodal ? __privateGet(this, _backdropEl) : this._elDialog) || document;
219
224
  this.updateComplete.then(() => {
220
225
  this._trigger?.setAttribute("aria-expanded", String(this.open));
221
226
  if (this.open) {
@@ -228,22 +233,13 @@ let GdsPopover = class extends GdsElement {
228
233
  if (__privateGet(this, _backdropEl))
229
234
  __privateGet(this, _backdropEl).show = true;
230
235
  });
231
- setTimeout(
232
- () => clickOutsideTarget.addEventListener(
233
- "click",
234
- __privateGet(this, _handleClickOutside)
235
- ),
236
- 0
237
- );
236
+ setTimeout(() => __privateMethod(this, _registerClickOutside, registerClickOutside_fn).call(this), 0);
238
237
  window.addEventListener("scroll", __privateGet(this, _handlePageScroll), {
239
238
  passive: true
240
239
  });
241
240
  } else {
242
241
  this._elDialog?.close();
243
- clickOutsideTarget.removeEventListener(
244
- "click",
245
- __privateGet(this, _handleClickOutside)
246
- );
242
+ __privateMethod(this, _unregisterClickOutside, unregisterClickOutside_fn).call(this);
247
243
  window.removeEventListener("scroll", __privateGet(this, _handlePageScroll));
248
244
  if (__privateGet(this, _backdropEl))
249
245
  __privateGet(this, _backdropEl).show = false;
@@ -285,6 +281,23 @@ handleTriggerSlotChange_fn = function() {
285
281
  _autoPositionCleanupFn = new WeakMap();
286
282
  _isMobileViewport = new WeakMap();
287
283
  _backdropEl = new WeakMap();
284
+ _clickOutsideTarget = new WeakMap();
285
+ _registerClickOutside = new WeakSet();
286
+ registerClickOutside_fn = function() {
287
+ if (!this.open || !this.isConnected)
288
+ return;
289
+ __privateMethod(this, _unregisterClickOutside, unregisterClickOutside_fn).call(this);
290
+ __privateSet(this, _clickOutsideTarget, (this.nonmodal ? __privateGet(this, _backdropEl) : this._elDialog) || document);
291
+ __privateGet(this, _clickOutsideTarget).addEventListener("click", __privateGet(this, _handleClickOutside));
292
+ };
293
+ _unregisterClickOutside = new WeakSet();
294
+ unregisterClickOutside_fn = function() {
295
+ __privateGet(this, _clickOutsideTarget)?.removeEventListener(
296
+ "click",
297
+ __privateGet(this, _handleClickOutside)
298
+ );
299
+ __privateSet(this, _clickOutsideTarget, void 0);
300
+ };
288
301
  _handleCancel = new WeakMap();
289
302
  _dispatchUiStateEvent = new WeakMap();
290
303
  _handleCloseButton = new WeakMap();