@radix-ng/primitives 0.44.0 → 0.51.0

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.
Files changed (149) hide show
  1. package/collection/README.md +1 -0
  2. package/fesm2022/radix-ng-primitives-accordion.mjs +41 -40
  3. package/fesm2022/radix-ng-primitives-accordion.mjs.map +1 -1
  4. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +22 -22
  5. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -1
  6. package/fesm2022/radix-ng-primitives-arrow.mjs +6 -6
  7. package/fesm2022/radix-ng-primitives-arrow.mjs.map +1 -1
  8. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs +6 -6
  9. package/fesm2022/radix-ng-primitives-aspect-ratio.mjs.map +1 -1
  10. package/fesm2022/radix-ng-primitives-avatar.mjs +22 -22
  11. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  12. package/fesm2022/radix-ng-primitives-calendar.mjs +104 -103
  13. package/fesm2022/radix-ng-primitives-calendar.mjs.map +1 -1
  14. package/fesm2022/radix-ng-primitives-checkbox.mjs +51 -41
  15. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  16. package/fesm2022/radix-ng-primitives-collapsible.mjs +28 -28
  17. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -1
  18. package/fesm2022/radix-ng-primitives-collection.mjs +89 -0
  19. package/fesm2022/radix-ng-primitives-collection.mjs.map +1 -0
  20. package/fesm2022/radix-ng-primitives-config.mjs +5 -5
  21. package/fesm2022/radix-ng-primitives-config.mjs.map +1 -1
  22. package/fesm2022/radix-ng-primitives-context-menu.mjs +36 -36
  23. package/fesm2022/radix-ng-primitives-context-menu.mjs.map +1 -1
  24. package/fesm2022/radix-ng-primitives-core.mjs +33 -24
  25. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  26. package/fesm2022/radix-ng-primitives-cropper.mjs +54 -53
  27. package/fesm2022/radix-ng-primitives-cropper.mjs.map +1 -1
  28. package/fesm2022/radix-ng-primitives-date-field.mjs +48 -47
  29. package/fesm2022/radix-ng-primitives-date-field.mjs.map +1 -1
  30. package/fesm2022/radix-ng-primitives-dialog.mjs +34 -34
  31. package/fesm2022/radix-ng-primitives-dialog.mjs.map +1 -1
  32. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs +31 -33
  33. package/fesm2022/radix-ng-primitives-dismissable-layer.mjs.map +1 -1
  34. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs +41 -43
  35. package/fesm2022/radix-ng-primitives-dropdown-menu.mjs.map +1 -1
  36. package/fesm2022/radix-ng-primitives-editable.mjs +20 -20
  37. package/fesm2022/radix-ng-primitives-editable.mjs.map +1 -1
  38. package/fesm2022/radix-ng-primitives-focus-guards.mjs +3 -3
  39. package/fesm2022/radix-ng-primitives-focus-guards.mjs.map +1 -1
  40. package/fesm2022/radix-ng-primitives-focus-scope.mjs +7 -7
  41. package/fesm2022/radix-ng-primitives-focus-scope.mjs.map +1 -1
  42. package/fesm2022/radix-ng-primitives-hover-card.mjs +69 -77
  43. package/fesm2022/radix-ng-primitives-hover-card.mjs.map +1 -1
  44. package/fesm2022/radix-ng-primitives-label.mjs +7 -7
  45. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  46. package/fesm2022/radix-ng-primitives-menu.mjs +65 -70
  47. package/fesm2022/radix-ng-primitives-menu.mjs.map +1 -1
  48. package/fesm2022/radix-ng-primitives-menubar.mjs +31 -31
  49. package/fesm2022/radix-ng-primitives-menubar.mjs.map +1 -1
  50. package/fesm2022/radix-ng-primitives-navigation-menu.mjs +113 -105
  51. package/fesm2022/radix-ng-primitives-navigation-menu.mjs.map +1 -1
  52. package/fesm2022/radix-ng-primitives-number-field.mjs +48 -47
  53. package/fesm2022/radix-ng-primitives-number-field.mjs.map +1 -1
  54. package/fesm2022/radix-ng-primitives-pagination.mjs +51 -51
  55. package/fesm2022/radix-ng-primitives-pagination.mjs.map +1 -1
  56. package/fesm2022/radix-ng-primitives-popover.mjs +67 -71
  57. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -1
  58. package/fesm2022/radix-ng-primitives-popper.mjs +61 -56
  59. package/fesm2022/radix-ng-primitives-popper.mjs.map +1 -1
  60. package/fesm2022/radix-ng-primitives-portal.mjs +7 -7
  61. package/fesm2022/radix-ng-primitives-portal.mjs.map +1 -1
  62. package/fesm2022/radix-ng-primitives-presence.mjs +4 -4
  63. package/fesm2022/radix-ng-primitives-presence.mjs.map +1 -1
  64. package/fesm2022/radix-ng-primitives-progress.mjs +16 -16
  65. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  66. package/fesm2022/radix-ng-primitives-radio.mjs +38 -37
  67. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  68. package/fesm2022/radix-ng-primitives-roving-focus.mjs +38 -34
  69. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  70. package/fesm2022/radix-ng-primitives-select.mjs +41 -43
  71. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  72. package/fesm2022/radix-ng-primitives-select2.mjs +897 -0
  73. package/fesm2022/radix-ng-primitives-select2.mjs.map +1 -0
  74. package/fesm2022/radix-ng-primitives-separator.mjs +11 -17
  75. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  76. package/fesm2022/radix-ng-primitives-slider.mjs +88 -84
  77. package/fesm2022/radix-ng-primitives-slider.mjs.map +1 -1
  78. package/fesm2022/radix-ng-primitives-stepper.mjs +55 -53
  79. package/fesm2022/radix-ng-primitives-stepper.mjs.map +1 -1
  80. package/fesm2022/radix-ng-primitives-switch.mjs +22 -30
  81. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  82. package/fesm2022/radix-ng-primitives-tabs.mjs +38 -38
  83. package/fesm2022/radix-ng-primitives-tabs.mjs.map +1 -1
  84. package/fesm2022/radix-ng-primitives-time-field.mjs +63 -78
  85. package/fesm2022/radix-ng-primitives-time-field.mjs.map +1 -1
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs +24 -24
  87. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -1
  88. package/fesm2022/radix-ng-primitives-toggle.mjs +11 -11
  89. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  90. package/fesm2022/radix-ng-primitives-toolbar.mjs +31 -29
  91. package/fesm2022/radix-ng-primitives-toolbar.mjs.map +1 -1
  92. package/fesm2022/radix-ng-primitives-tooltip.mjs +69 -77
  93. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -1
  94. package/fesm2022/radix-ng-primitives-tooltip2.mjs +57 -62
  95. package/fesm2022/radix-ng-primitives-tooltip2.mjs.map +1 -1
  96. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +31 -31
  97. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  98. package/fesm2022/radix-ng-primitives.mjs.map +1 -1
  99. package/package.json +60 -51
  100. package/select2/README.md +3 -0
  101. package/{accordion/index.d.ts → types/radix-ng-primitives-accordion.d.ts} +61 -60
  102. package/{calendar/index.d.ts → types/radix-ng-primitives-calendar.d.ts} +1 -1
  103. package/{checkbox/index.d.ts → types/radix-ng-primitives-checkbox.d.ts} +33 -29
  104. package/{collapsible/index.d.ts → types/radix-ng-primitives-collapsible.d.ts} +20 -19
  105. package/types/radix-ng-primitives-collection.d.ts +40 -0
  106. package/{core/index.d.ts → types/radix-ng-primitives-core.d.ts} +6 -2
  107. package/{cropper/index.d.ts → types/radix-ng-primitives-cropper.d.ts} +4 -3
  108. package/{date-field/index.d.ts → types/radix-ng-primitives-date-field.d.ts} +4 -4
  109. package/{dialog/index.d.ts → types/radix-ng-primitives-dialog.d.ts} +2 -1
  110. package/{hover-card/index.d.ts → types/radix-ng-primitives-hover-card.d.ts} +3 -4
  111. package/{menu/index.d.ts → types/radix-ng-primitives-menu.d.ts} +1 -1
  112. package/{navigation-menu/index.d.ts → types/radix-ng-primitives-navigation-menu.d.ts} +47 -46
  113. package/{number-field/index.d.ts → types/radix-ng-primitives-number-field.d.ts} +13 -12
  114. package/{popover/index.d.ts → types/radix-ng-primitives-popover.d.ts} +3 -4
  115. package/{popper/index.d.ts → types/radix-ng-primitives-popper.d.ts} +1 -0
  116. package/{progress/index.d.ts → types/radix-ng-primitives-progress.d.ts} +2 -1
  117. package/{radio/index.d.ts → types/radix-ng-primitives-radio.d.ts} +1 -1
  118. package/{roving-focus/index.d.ts → types/radix-ng-primitives-roving-focus.d.ts} +8 -6
  119. package/types/radix-ng-primitives-select2.d.ts +511 -0
  120. package/{slider/index.d.ts → types/radix-ng-primitives-slider.d.ts} +4 -4
  121. package/{stepper/index.d.ts → types/radix-ng-primitives-stepper.d.ts} +17 -16
  122. package/{switch/index.d.ts → types/radix-ng-primitives-switch.d.ts} +3 -2
  123. package/{tabs/index.d.ts → types/radix-ng-primitives-tabs.d.ts} +7 -6
  124. package/{time-field/index.d.ts → types/radix-ng-primitives-time-field.d.ts} +4 -4
  125. package/{toggle-group/index.d.ts → types/radix-ng-primitives-toggle-group.d.ts} +12 -11
  126. package/{tooltip/index.d.ts → types/radix-ng-primitives-tooltip.d.ts} +3 -4
  127. package/{tooltip2/index.d.ts → types/radix-ng-primitives-tooltip2.d.ts} +4 -4
  128. /package/{alert-dialog/index.d.ts → types/radix-ng-primitives-alert-dialog.d.ts} +0 -0
  129. /package/{arrow/index.d.ts → types/radix-ng-primitives-arrow.d.ts} +0 -0
  130. /package/{aspect-ratio/index.d.ts → types/radix-ng-primitives-aspect-ratio.d.ts} +0 -0
  131. /package/{avatar/index.d.ts → types/radix-ng-primitives-avatar.d.ts} +0 -0
  132. /package/{config/index.d.ts → types/radix-ng-primitives-config.d.ts} +0 -0
  133. /package/{context-menu/index.d.ts → types/radix-ng-primitives-context-menu.d.ts} +0 -0
  134. /package/{dismissable-layer/index.d.ts → types/radix-ng-primitives-dismissable-layer.d.ts} +0 -0
  135. /package/{dropdown-menu/index.d.ts → types/radix-ng-primitives-dropdown-menu.d.ts} +0 -0
  136. /package/{editable/index.d.ts → types/radix-ng-primitives-editable.d.ts} +0 -0
  137. /package/{focus-guards/index.d.ts → types/radix-ng-primitives-focus-guards.d.ts} +0 -0
  138. /package/{focus-scope/index.d.ts → types/radix-ng-primitives-focus-scope.d.ts} +0 -0
  139. /package/{label/index.d.ts → types/radix-ng-primitives-label.d.ts} +0 -0
  140. /package/{menubar/index.d.ts → types/radix-ng-primitives-menubar.d.ts} +0 -0
  141. /package/{pagination/index.d.ts → types/radix-ng-primitives-pagination.d.ts} +0 -0
  142. /package/{portal/index.d.ts → types/radix-ng-primitives-portal.d.ts} +0 -0
  143. /package/{presence/index.d.ts → types/radix-ng-primitives-presence.d.ts} +0 -0
  144. /package/{select/index.d.ts → types/radix-ng-primitives-select.d.ts} +0 -0
  145. /package/{separator/index.d.ts → types/radix-ng-primitives-separator.d.ts} +0 -0
  146. /package/{toggle/index.d.ts → types/radix-ng-primitives-toggle.d.ts} +0 -0
  147. /package/{toolbar/index.d.ts → types/radix-ng-primitives-toolbar.d.ts} +0 -0
  148. /package/{visually-hidden/index.d.ts → types/radix-ng-primitives-visually-hidden.d.ts} +0 -0
  149. /package/{index.d.ts → types/radix-ng-primitives.d.ts} +0 -0
@@ -3,7 +3,7 @@ import { InjectionToken, signal, computed, input, booleanAttribute, linkedSignal
3
3
 
4
4
  const RdxDismissableLayersContextToken = new InjectionToken('RdxDismissableLayersContextToken', {
5
5
  factory() {
6
- const layersRoot = signal([], ...(ngDevMode ? [{ debugName: "layersRoot" }] : []));
6
+ const layersRoot = signal([], ...(ngDevMode ? [{ debugName: "layersRoot" }] : /* istanbul ignore next */ []));
7
7
  return {
8
8
  layersRoot,
9
9
  layersWithOutsidePointerEventsDisabled: computed(() => layersRoot().filter((i) => i.disableOutsidePointerEvents())),
@@ -50,13 +50,13 @@ class RdxFocusOutside {
50
50
  return this.#enabled();
51
51
  }
52
52
  constructor() {
53
- this.enabledInput = input(true, ...(ngDevMode ? [{ debugName: "enabledInput", transform: booleanAttribute, alias: 'enabled' }] : [{ transform: booleanAttribute, alias: 'enabled' }]));
54
- this.#enabled = linkedSignal(() => this.enabledInput(), ...(ngDevMode ? [{ debugName: "#enabled" }] : []));
53
+ this.enabledInput = input(true, { ...(ngDevMode ? { debugName: "enabledInput" } : /* istanbul ignore next */ {}), transform: booleanAttribute, alias: 'enabled' });
54
+ this.#enabled = linkedSignal(() => this.enabledInput(), ...(ngDevMode ? [{ debugName: "#enabled" }] : /* istanbul ignore next */ []));
55
55
  this.focusOutside = output();
56
56
  /*
57
57
  * Flag to indicate if the focus is currently within the DOM subtree
58
58
  */
59
- this.isFocusInsideDOMTree = signal(false, ...(ngDevMode ? [{ debugName: "isFocusInsideDOMTree" }] : []));
59
+ this.isFocusInsideDOMTree = signal(false, ...(ngDevMode ? [{ debugName: "isFocusInsideDOMTree" }] : /* istanbul ignore next */ []));
60
60
  /*
61
61
  * Handles capturing the focus event to mark focus as inside the DOM subtree
62
62
  */
@@ -111,16 +111,16 @@ class RdxFocusOutside {
111
111
  });
112
112
  });
113
113
  }
114
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxFocusOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
115
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: RdxFocusOutside, isStandalone: true, selector: "[rdxFocusOutside]", inputs: { enabledInput: { classPropertyName: "enabledInput", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusOutside: "focusOutside" }, exportAs: ["rdxFocusOutside"], ngImport: i0 }); }
114
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxFocusOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
115
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxFocusOutside, isStandalone: true, selector: "[rdxFocusOutside]", inputs: { enabledInput: { classPropertyName: "enabledInput", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusOutside: "focusOutside" }, exportAs: ["rdxFocusOutside"], ngImport: i0 }); }
116
116
  }
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxFocusOutside, decorators: [{
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxFocusOutside, decorators: [{
118
118
  type: Directive,
119
119
  args: [{
120
120
  selector: '[rdxFocusOutside]',
121
121
  exportAs: 'rdxFocusOutside'
122
122
  }]
123
- }], ctorParameters: () => [] });
123
+ }], ctorParameters: () => [], propDecorators: { enabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "enabled", required: false }] }], focusOutside: [{ type: i0.Output, args: ["focusOutside"] }] } });
124
124
  /**
125
125
  * Listens for `pointerdown` outside a DOM subtree. We use `pointerdown` rather than `pointerup`
126
126
  * to mimic layer dismissing behavior present in OS.
@@ -138,10 +138,10 @@ class RdxPointerDownOutside {
138
138
  }
139
139
  constructor() {
140
140
  this.elementRef = inject(ElementRef);
141
- this.enabledInput = input(true, ...(ngDevMode ? [{ debugName: "enabledInput", transform: booleanAttribute, alias: 'enabled' }] : [{ transform: booleanAttribute, alias: 'enabled' }]));
142
- this.#enabled = linkedSignal(() => this.enabledInput(), ...(ngDevMode ? [{ debugName: "#enabled" }] : []));
141
+ this.enabledInput = input(true, { ...(ngDevMode ? { debugName: "enabledInput" } : /* istanbul ignore next */ {}), transform: booleanAttribute, alias: 'enabled' });
142
+ this.#enabled = linkedSignal(() => this.enabledInput(), ...(ngDevMode ? [{ debugName: "#enabled" }] : /* istanbul ignore next */ []));
143
143
  this.pointerDownOutside = output();
144
- this.isPointerInsideDOMTree = signal(false, ...(ngDevMode ? [{ debugName: "isPointerInsideDOMTree" }] : []));
144
+ this.isPointerInsideDOMTree = signal(false, ...(ngDevMode ? [{ debugName: "isPointerInsideDOMTree" }] : /* istanbul ignore next */ []));
145
145
  this.handleAndDispatchPointerDownOutsideEvent = (e) => () => this.pointerDownOutside.emit(e);
146
146
  effect((onCleanup) => {
147
147
  if (!this.#enabled()) {
@@ -213,16 +213,16 @@ class RdxPointerDownOutside {
213
213
  });
214
214
  });
215
215
  }
216
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPointerDownOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
217
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: RdxPointerDownOutside, isStandalone: true, selector: "[rdxPointerDownOutside]", inputs: { enabledInput: { classPropertyName: "enabledInput", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pointerDownOutside: "pointerDownOutside" }, exportAs: ["rdxPointerDownOutside"], ngImport: i0 }); }
216
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPointerDownOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
217
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxPointerDownOutside, isStandalone: true, selector: "[rdxPointerDownOutside]", inputs: { enabledInput: { classPropertyName: "enabledInput", publicName: "enabled", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pointerDownOutside: "pointerDownOutside" }, exportAs: ["rdxPointerDownOutside"], ngImport: i0 }); }
218
218
  }
219
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxPointerDownOutside, decorators: [{
219
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxPointerDownOutside, decorators: [{
220
220
  type: Directive,
221
221
  args: [{
222
222
  selector: '[rdxPointerDownOutside]',
223
223
  exportAs: 'rdxPointerDownOutside'
224
224
  }]
225
- }], ctorParameters: () => [] });
225
+ }], ctorParameters: () => [], propDecorators: { enabledInput: [{ type: i0.Input, args: [{ isSignal: true, alias: "enabled", required: false }] }], pointerDownOutside: [{ type: i0.Output, args: ["pointerDownOutside"] }] } });
226
226
  class RdxEscapeKeyDown {
227
227
  constructor() {
228
228
  this.elementRef = inject(ElementRef);
@@ -243,16 +243,16 @@ class RdxEscapeKeyDown {
243
243
  }));
244
244
  });
245
245
  }
246
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxEscapeKeyDown, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
247
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: RdxEscapeKeyDown, isStandalone: true, selector: "[rdxEscapeKeyDown]", outputs: { escapeKeyDown: "escapeKeyDown" }, exportAs: ["rdxEscapeKeyDown"], ngImport: i0 }); }
246
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxEscapeKeyDown, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
247
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxEscapeKeyDown, isStandalone: true, selector: "[rdxEscapeKeyDown]", outputs: { escapeKeyDown: "escapeKeyDown" }, exportAs: ["rdxEscapeKeyDown"], ngImport: i0 }); }
248
248
  }
249
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxEscapeKeyDown, decorators: [{
249
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxEscapeKeyDown, decorators: [{
250
250
  type: Directive,
251
251
  args: [{
252
252
  selector: '[rdxEscapeKeyDown]',
253
253
  exportAs: 'rdxEscapeKeyDown'
254
254
  }]
255
- }] });
255
+ }], propDecorators: { escapeKeyDown: [{ type: i0.Output, args: ["escapeKeyDown"] }] } });
256
256
 
257
257
  let originalBodyPointerEvents;
258
258
  class RdxDismissableLayer {
@@ -295,11 +295,9 @@ class RdxDismissableLayer {
295
295
  * the `DismissableLayer`. Users will need to click twice on outside elements to
296
296
  * interact with them: once to close the `DismissableLayer`, and again to trigger the element.
297
297
  */
298
- this.disableOutsidePointerEvents = input(this.config.disableOutsidePointerEvents(), ...(ngDevMode ? [{ debugName: "disableOutsidePointerEvents", transform: booleanAttribute }] : [{
299
- transform: booleanAttribute
300
- }]));
301
- this.layers = computed(() => this.context.layersRoot, ...(ngDevMode ? [{ debugName: "layers" }] : []));
302
- this.isBodyPointerEventsDisabled = computed(() => this.context.layersWithOutsidePointerEventsDisabled().length > 0, ...(ngDevMode ? [{ debugName: "isBodyPointerEventsDisabled" }] : []));
298
+ this.disableOutsidePointerEvents = input(this.config.disableOutsidePointerEvents(), { ...(ngDevMode ? { debugName: "disableOutsidePointerEvents" } : /* istanbul ignore next */ {}), transform: booleanAttribute });
299
+ this.layers = computed(() => this.context.layersRoot, ...(ngDevMode ? [{ debugName: "layers" }] : /* istanbul ignore next */ []));
300
+ this.isBodyPointerEventsDisabled = computed(() => this.context.layersWithOutsidePointerEventsDisabled().length > 0, ...(ngDevMode ? [{ debugName: "isBodyPointerEventsDisabled" }] : /* istanbul ignore next */ []));
303
301
  this.isPointerEventsEnabled = computed(() => {
304
302
  const localLayers = this.layers();
305
303
  const [highestLayerWithOutsidePointerEventsDisabled] = [
@@ -307,8 +305,8 @@ class RdxDismissableLayer {
307
305
  ].slice(-1);
308
306
  const highestLayerWithOutsidePointerEventsDisabledIndex = localLayers().indexOf(highestLayerWithOutsidePointerEventsDisabled);
309
307
  return this.index() >= highestLayerWithOutsidePointerEventsDisabledIndex;
310
- }, ...(ngDevMode ? [{ debugName: "isPointerEventsEnabled" }] : []));
311
- this.index = computed(() => this.context.layersRoot().indexOf(this), ...(ngDevMode ? [{ debugName: "index" }] : []));
308
+ }, ...(ngDevMode ? [{ debugName: "isPointerEventsEnabled" }] : /* istanbul ignore next */ []));
309
+ this.index = computed(() => this.context.layersRoot().indexOf(this), ...(ngDevMode ? [{ debugName: "index" }] : /* istanbul ignore next */ []));
312
310
  this.afterNextRender = afterNextRender(() => {
313
311
  const ownerDocument = this.elementRef.nativeElement.ownerDocument ?? globalThis.document;
314
312
  let lastDisabledCount = 0;
@@ -374,10 +372,10 @@ class RdxDismissableLayer {
374
372
  this.context.layersRoot.update((v) => v.filter((i) => i !== this));
375
373
  });
376
374
  }
377
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxDismissableLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
378
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.3", type: RdxDismissableLayer, isStandalone: true, selector: "[rdxDismissableLayer]", inputs: { disableOutsidePointerEvents: { classPropertyName: "disableOutsidePointerEvents", publicName: "disableOutsidePointerEvents", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { escapeKeyDown: "escapeKeyDown", pointerDownOutside: "pointerDownOutside", focusOutside: "focusOutside", interactOutside: "interactOutside", dismiss: "dismiss" }, host: { attributes: { "data-dismissable-layer": "" }, properties: { "style": "{\n pointerEvents: isBodyPointerEventsDisabled() ? (isPointerEventsEnabled() ? 'auto' : 'none') : undefined\n }" } }, exportAs: ["rdxDismissableLayer"], hostDirectives: [{ directive: RdxPointerDownOutside }, { directive: RdxFocusOutside }, { directive: RdxEscapeKeyDown }], ngImport: i0 }); }
375
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxDismissableLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
376
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "21.2.9", type: RdxDismissableLayer, isStandalone: true, selector: "[rdxDismissableLayer]", inputs: { disableOutsidePointerEvents: { classPropertyName: "disableOutsidePointerEvents", publicName: "disableOutsidePointerEvents", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { escapeKeyDown: "escapeKeyDown", pointerDownOutside: "pointerDownOutside", focusOutside: "focusOutside", interactOutside: "interactOutside", dismiss: "dismiss" }, host: { attributes: { "data-dismissable-layer": "" }, properties: { "style": "{\n pointerEvents: isBodyPointerEventsDisabled() ? (isPointerEventsEnabled() ? 'auto' : 'none') : undefined\n }" } }, exportAs: ["rdxDismissableLayer"], hostDirectives: [{ directive: RdxPointerDownOutside }, { directive: RdxFocusOutside }, { directive: RdxEscapeKeyDown }], ngImport: i0 }); }
379
377
  }
380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxDismissableLayer, decorators: [{
378
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxDismissableLayer, decorators: [{
381
379
  type: Directive,
382
380
  args: [{
383
381
  selector: '[rdxDismissableLayer]',
@@ -390,7 +388,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
390
388
  }`
391
389
  }
392
390
  }]
393
- }], ctorParameters: () => [] });
391
+ }], ctorParameters: () => [], propDecorators: { escapeKeyDown: [{ type: i0.Output, args: ["escapeKeyDown"] }], pointerDownOutside: [{ type: i0.Output, args: ["pointerDownOutside"] }], focusOutside: [{ type: i0.Output, args: ["focusOutside"] }], interactOutside: [{ type: i0.Output, args: ["interactOutside"] }], dismiss: [{ type: i0.Output, args: ["dismiss"] }], disableOutsidePointerEvents: [{ type: i0.Input, args: [{ isSignal: true, alias: "disableOutsidePointerEvents", required: false }] }] } });
394
392
 
395
393
  class RdxDismissableLayerBranch {
396
394
  constructor() {
@@ -400,10 +398,10 @@ class RdxDismissableLayerBranch {
400
398
  this.dismissableLayersContext.branches.update((elements) => [...elements, this.elementRef.nativeElement]);
401
399
  this.destroyRef.onDestroy(() => this.dismissableLayersContext.branches.update((elements) => elements.filter((el) => el !== this.elementRef.nativeElement)));
402
400
  }
403
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxDismissableLayerBranch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
404
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: RdxDismissableLayerBranch, isStandalone: true, selector: "[rdxDismissableLayerBranch]", ngImport: i0 }); }
401
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxDismissableLayerBranch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
402
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.9", type: RdxDismissableLayerBranch, isStandalone: true, selector: "[rdxDismissableLayerBranch]", ngImport: i0 }); }
405
403
  }
406
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: RdxDismissableLayerBranch, decorators: [{
404
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.9", ngImport: i0, type: RdxDismissableLayerBranch, decorators: [{
407
405
  type: Directive,
408
406
  args: [{
409
407
  selector: '[rdxDismissableLayerBranch]'
@@ -1 +1 @@
1
- {"version":3,"file":"radix-ng-primitives-dismissable-layer.mjs","sources":["../tmp-esm2022/dismissable-layer/src/dismissable-layer.config.js","../tmp-esm2022/dismissable-layer/src/utils.js","../tmp-esm2022/dismissable-layer/src/dismissable-layer.js","../tmp-esm2022/dismissable-layer/src/dismissable-layer-branch.js","../tmp-esm2022/dismissable-layer/radix-ng-primitives-dismissable-layer.js"],"sourcesContent":["import { computed, InjectionToken, signal } from '@angular/core';\nexport const RdxDismissableLayersContextToken = new InjectionToken('RdxDismissableLayersContextToken', {\n factory() {\n const layersRoot = signal([], ...(ngDevMode ? [{ debugName: \"layersRoot\" }] : []));\n return {\n layersRoot,\n layersWithOutsidePointerEventsDisabled: computed(() => layersRoot().filter((i) => i.disableOutsidePointerEvents())),\n branches: signal([])\n };\n }\n});\nexport const RdxDismissableLayerConfigToken = new InjectionToken('RdxDismissableLayerConfig', {\n factory: () => {\n return {\n disableOutsidePointerEvents: signal(false)\n };\n }\n});\nexport function provideRdxDismissableLayerConfig(factory) {\n return { provide: RdxDismissableLayerConfigToken, useFactory: factory };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzbWlzc2FibGUtbGF5ZXIuY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9kaXNtaXNzYWJsZS1sYXllci9zcmMvZGlzbWlzc2FibGUtbGF5ZXIuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFvQixNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHbkYsTUFBTSxDQUFDLE1BQU0sZ0NBQWdDLEdBQUcsSUFBSSxjQUFjLENBQUMsa0NBQWtDLEVBQUU7SUFDbkcsT0FBTztRQUNILE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBd0IsRUFBRSxzREFBQyxDQUFDO1FBRXJELE9BQU87WUFDSCxVQUFVO1lBQ1Ysc0NBQXNDLEVBQUUsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUNsRCxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQywyQkFBMkIsRUFBRSxDQUFDLENBQzlEO1lBQ0QsUUFBUSxFQUFFLE1BQU0sQ0FBZ0IsRUFBRSxDQUFDO1NBQ3RDLENBQUM7SUFDTixDQUFDO0NBQ0osQ0FBQyxDQUFDO0FBV0gsTUFBTSxDQUFDLE1BQU0sOEJBQThCLEdBQUcsSUFBSSxjQUFjLENBQzVELDJCQUEyQixFQUMzQjtJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUU7UUFDVixPQUFPO1lBQ0gsMkJBQTJCLEVBQUUsTUFBTSxDQUFDLEtBQUssQ0FBQztTQUM3QyxDQUFDO0lBQ04sQ0FBQztDQUNKLENBQ0osQ0FBQztBQUVGLE1BQU0sVUFBVSxnQ0FBZ0MsQ0FBQyxPQUF3QztJQUNyRixPQUFPLEVBQUUsT0FBTyxFQUFFLDhCQUE4QixFQUFFLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztBQUM1RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIEluamVjdGlvblRva2VuLCBQcm92aWRlciwgU2lnbmFsLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeERpc21pc3NhYmxlTGF5ZXIgfSBmcm9tICcuL2Rpc21pc3NhYmxlLWxheWVyJztcblxuZXhwb3J0IGNvbnN0IFJkeERpc21pc3NhYmxlTGF5ZXJzQ29udGV4dFRva2VuID0gbmV3IEluamVjdGlvblRva2VuKCdSZHhEaXNtaXNzYWJsZUxheWVyc0NvbnRleHRUb2tlbicsIHtcbiAgICBmYWN0b3J5KCkge1xuICAgICAgICBjb25zdCBsYXllcnNSb290ID0gc2lnbmFsPFJkeERpc21pc3NhYmxlTGF5ZXJbXT4oW10pO1xuXG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBsYXllcnNSb290LFxuICAgICAgICAgICAgbGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQ6IGNvbXB1dGVkKCgpID0+XG4gICAgICAgICAgICAgICAgbGF5ZXJzUm9vdCgpLmZpbHRlcigoaSkgPT4gaS5kaXNhYmxlT3V0c2lkZVBvaW50ZXJFdmVudHMoKSlcbiAgICAgICAgICAgICksXG4gICAgICAgICAgICBicmFuY2hlczogc2lnbmFsPEhUTUxFbGVtZW50W10+KFtdKVxuICAgICAgICB9O1xuICAgIH1cbn0pO1xuXG5leHBvcnQgdHlwZSBSZHhEaXNtaXNzYWJsZUxheWVyQ29uZmlnID0ge1xuICAgIC8qKlxuICAgICAqIFdoZW4gYHRydWVgLCBob3Zlci9mb2N1cy9jbGljayBpbnRlcmFjdGlvbnMgd2lsbCBiZSBkaXNhYmxlZCBvbiBlbGVtZW50cyBvdXRzaWRlXG4gICAgICogdGhlIGBEaXNtaXNzYWJsZUxheWVyYC4gVXNlcnMgd2lsbCBuZWVkIHRvIGNsaWNrIHR3aWNlIG9uIG91dHNpZGUgZWxlbWVudHMgdG9cbiAgICAgKiBpbnRlcmFjdCB3aXRoIHRoZW06IG9uY2UgdG8gY2xvc2UgdGhlIGBEaXNtaXNzYWJsZUxheWVyYCwgYW5kIGFnYWluIHRvIHRyaWdnZXIgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzOiBTaWduYWw8Ym9vbGVhbj47XG59O1xuXG5leHBvcnQgY29uc3QgUmR4RGlzbWlzc2FibGVMYXllckNvbmZpZ1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeERpc21pc3NhYmxlTGF5ZXJDb25maWc+KFxuICAgICdSZHhEaXNtaXNzYWJsZUxheWVyQ29uZmlnJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgZGlzYWJsZU91dHNpZGVQb2ludGVyRXZlbnRzOiBzaWduYWwoZmFsc2UpXG4gICAgICAgICAgICB9O1xuICAgICAgICB9XG4gICAgfVxuKTtcblxuZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVSZHhEaXNtaXNzYWJsZUxheWVyQ29uZmlnKGZhY3Rvcnk6ICgpID0+IFJkeERpc21pc3NhYmxlTGF5ZXJDb25maWcpOiBQcm92aWRlciB7XG4gICAgcmV0dXJuIHsgcHJvdmlkZTogUmR4RGlzbWlzc2FibGVMYXllckNvbmZpZ1Rva2VuLCB1c2VGYWN0b3J5OiBmYWN0b3J5IH07XG59XG4iXX0=","import { afterNextRender, booleanAttribute, DestroyRef, Directive, effect, ElementRef, inject, input, linkedSignal, output, signal } from '@angular/core';\nimport * as i0 from \"@angular/core\";\nfunction isLayerExist(layerElement, targetElement) {\n const targetLayer = targetElement.closest('[data-dismissable-layer]');\n const mainLayer = layerElement.dataset['dismissableLayer'] === ''\n ? layerElement\n : layerElement.querySelector('[data-dismissable-layer]');\n const nodeList = Array.from(layerElement.ownerDocument.querySelectorAll('[data-dismissable-layer]'));\n if (targetLayer && (mainLayer === targetLayer || nodeList.indexOf(mainLayer) < nodeList.indexOf(targetLayer))) {\n return true;\n }\n else {\n return false;\n }\n}\n/**\n * Listens for when focus happens outside a DOM subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\nexport class RdxFocusOutside {\n #enabled;\n set enabled(value) {\n if (this.#enabled() !== value) {\n this.#enabled.set(value);\n }\n }\n get enabled() {\n return this.#enabled();\n }\n constructor() {\n this.enabledInput = input(true, ...(ngDevMode ? [{ debugName: \"enabledInput\", transform: booleanAttribute, alias: 'enabled' }] : [{ transform: booleanAttribute, alias: 'enabled' }]));\n this.#enabled = linkedSignal(() => this.enabledInput(), ...(ngDevMode ? [{ debugName: \"#enabled\" }] : []));\n this.focusOutside = output();\n /*\n * Flag to indicate if the focus is currently within the DOM subtree\n */\n this.isFocusInsideDOMTree = signal(false, ...(ngDevMode ? [{ debugName: \"isFocusInsideDOMTree\" }] : []));\n /*\n * Handles capturing the focus event to mark focus as inside the DOM subtree\n */\n this.focusCaptureHandler = () => {\n if (!this.enabled)\n return;\n this.isFocusInsideDOMTree.set(true);\n };\n /*\n * Handles capturing the blur event to mark focus as outside the DOM subtree\n */\n this.blurCaptureHandler = () => {\n if (!this.enabled)\n return;\n this.isFocusInsideDOMTree.set(false);\n };\n const elementRef = inject(ElementRef);\n effect((onCleanup) => {\n if (!this.#enabled()) {\n return;\n }\n const ownerDocument = elementRef.nativeElement.ownerDocument ?? globalThis.document;\n const focusHandler = async (event) => {\n if (!elementRef?.nativeElement) {\n return;\n }\n await Promise.resolve();\n await Promise.resolve();\n const target = event.target;\n if (!elementRef.nativeElement || !target || isLayerExist(elementRef.nativeElement, target)) {\n return;\n }\n if (target && !this.isFocusInsideDOMTree()) {\n this.focusOutside.emit(event);\n }\n };\n elementRef.nativeElement.addEventListener('focus', this.focusCaptureHandler, {\n capture: true\n });\n elementRef.nativeElement.addEventListener('blur', this.blurCaptureHandler, {\n capture: true\n });\n ownerDocument.addEventListener('focusin', focusHandler);\n onCleanup(() => {\n elementRef.nativeElement.removeEventListener('focus', this.focusCaptureHandler, {\n capture: true\n });\n elementRef.nativeElement.removeEventListener('blur', this.blurCaptureHandler, {\n capture: true\n });\n ownerDocument.removeEventListener('focusin', focusHandler);\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxFocusOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxFocusOutside, isStandalone: true, selector: \"[rdxFocusOutside]\", inputs: { enabledInput: { classPropertyName: \"enabledInput\", publicName: \"enabled\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { focusOutside: \"focusOutside\" }, exportAs: [\"rdxFocusOutside\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxFocusOutside, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxFocusOutside]',\n exportAs: 'rdxFocusOutside'\n }]\n }], ctorParameters: () => [] });\n/**\n * Listens for `pointerdown` outside a DOM subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behavior present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\nexport class RdxPointerDownOutside {\n #enabled;\n set enabled(value) {\n if (this.#enabled() !== value) {\n this.#enabled.set(value);\n }\n }\n get enabled() {\n return this.#enabled();\n }\n constructor() {\n this.elementRef = inject(ElementRef);\n this.enabledInput = input(true, ...(ngDevMode ? [{ debugName: \"enabledInput\", transform: booleanAttribute, alias: 'enabled' }] : [{ transform: booleanAttribute, alias: 'enabled' }]));\n this.#enabled = linkedSignal(() => this.enabledInput(), ...(ngDevMode ? [{ debugName: \"#enabled\" }] : []));\n this.pointerDownOutside = output();\n this.isPointerInsideDOMTree = signal(false, ...(ngDevMode ? [{ debugName: \"isPointerInsideDOMTree\" }] : []));\n this.handleAndDispatchPointerDownOutsideEvent = (e) => () => this.pointerDownOutside.emit(e);\n effect((onCleanup) => {\n if (!this.#enabled()) {\n return;\n }\n const ownerDocument = this.elementRef.nativeElement.ownerDocument ?? globalThis.document;\n const handlePointerDown = async (event) => {\n if (event.target && !this.isPointerInsideDOMTree()) {\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */\n if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', this.handleClick);\n this.handleClick = this.handleAndDispatchPointerDownOutsideEvent(event);\n ownerDocument.addEventListener('click', this.handleClick, {\n once: true\n });\n }\n else {\n this.pointerDownOutside.emit(event);\n }\n }\n else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', this.handleClick);\n }\n this.isPointerInsideDOMTree.set(false);\n };\n /**\n * if this directive executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not Angular specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n const onPointerDownCapture = () => {\n if (!this.enabled) {\n return;\n }\n this.isPointerInsideDOMTree.set(true);\n };\n this.elementRef.nativeElement.addEventListener('pointerdown', onPointerDownCapture, { capture: true });\n onCleanup(() => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', this.handleClick);\n this.elementRef.nativeElement.removeEventListener('pointerdown', onPointerDownCapture, {\n capture: true\n });\n });\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPointerDownOutside, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxPointerDownOutside, isStandalone: true, selector: \"[rdxPointerDownOutside]\", inputs: { enabledInput: { classPropertyName: \"enabledInput\", publicName: \"enabled\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { pointerDownOutside: \"pointerDownOutside\" }, exportAs: [\"rdxPointerDownOutside\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxPointerDownOutside, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxPointerDownOutside]',\n exportAs: 'rdxPointerDownOutside'\n }]\n }], ctorParameters: () => [] });\nexport class RdxEscapeKeyDown {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.destroyRef = inject(DestroyRef);\n this.escapeKeyDown = output();\n this.afterNextRender = afterNextRender(() => {\n const ownerDocument = this.elementRef.nativeElement.ownerDocument ?? globalThis.document;\n const handleKeyDown = (event) => {\n if (event.key === 'Escape') {\n this.escapeKeyDown.emit(event);\n }\n };\n ownerDocument.addEventListener('keydown', handleKeyDown, {\n capture: true\n });\n this.destroyRef.onDestroy(() => ownerDocument.removeEventListener('keydown', handleKeyDown, {\n capture: true\n }));\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxEscapeKeyDown, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxEscapeKeyDown, isStandalone: true, selector: \"[rdxEscapeKeyDown]\", outputs: { escapeKeyDown: \"escapeKeyDown\" }, exportAs: [\"rdxEscapeKeyDown\"], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxEscapeKeyDown, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxEscapeKeyDown]',\n exportAs: 'rdxEscapeKeyDown'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2Rpc21pc3NhYmxlLWxheWVyL3NyYy91dGlscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixVQUFVLEVBQ1YsU0FBUyxFQUNULE1BQU0sRUFDTixVQUFVLEVBQ1YsTUFBTSxFQUNOLEtBQUssRUFDTCxZQUFZLEVBQ1osTUFBTSxFQUNOLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkIsU0FBUyxZQUFZLENBQUMsWUFBeUIsRUFBRSxhQUEwQjtJQUN2RSxNQUFNLFdBQVcsR0FBRyxhQUFhLENBQUMsT0FBTyxDQUFDLDBCQUEwQixDQUFDLENBQUM7SUFFdEUsTUFBTSxTQUFTLEdBQ1gsWUFBWSxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUU7UUFDM0MsQ0FBQyxDQUFDLFlBQVk7UUFDZCxDQUFDLENBQUUsWUFBWSxDQUFDLGFBQWEsQ0FBQywwQkFBMEIsQ0FBaUIsQ0FBQztJQUVsRixNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxDQUFDO0lBRXJHLElBQUksV0FBVyxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsSUFBSSxRQUFRLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzVHLE9BQU8sSUFBSSxDQUFDO0lBQ2hCLENBQUM7U0FBTSxDQUFDO1FBQ0osT0FBTyxLQUFLLENBQUM7SUFDakIsQ0FBQztBQUNMLENBQUM7QUFFRDs7O0dBR0c7QUFLSCxNQUFNLE9BQU8sZUFBZTtJQUdmLFFBQVEsQ0FBMkM7SUFFNUQsSUFBSSxPQUFPLENBQUMs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Z0I7OzJGQUFoQixnQkFBZ0I7a0JBSjVCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG9CQUFvQjtvQkFDOUIsUUFBUSxFQUFFLGtCQUFrQjtpQkFDL0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBCb29sZWFuSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuaW1wb3J0IHtcbiAgICBhZnRlck5leHRSZW5kZXIsXG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBEZXN0cm95UmVmLFxuICAgIERpcmVjdGl2ZSxcbiAgICBlZmZlY3QsXG4gICAgRWxlbWVudFJlZixcbiAgICBpbmplY3QsXG4gICAgaW5wdXQsXG4gICAgbGlua2VkU2lnbmFsLFxuICAgIG91dHB1dCxcbiAgICBzaWduYWxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmZ1bmN0aW9uIGlzTGF5ZXJFeGlzdChsYXllckVsZW1lbnQ6IEhUTUxFbGVtZW50LCB0YXJnZXRFbGVtZW50OiBIVE1MRWxlbWVudCkge1xuICAgIGNvbnN0IHRhcmdldExheWVyID0gdGFyZ2V0RWxlbWVudC5jbG9zZXN0KCdbZGF0YS1kaXNtaXNzYWJsZS1sYXllcl0nKTtcblxuICAgIGNvbnN0IG1haW5MYXllciA9XG4gICAgICAgIGxheWVyRWxlbWVudC5kYXRhc2V0WydkaXNtaXNzYWJsZUxheWVyJ10gPT09ICcnXG4gICAgICAgICAgICA/IGxheWVyRWxlbWVudFxuICAgICAgICAgICAgOiAobGF5ZXJFbGVtZW50LnF1ZXJ5U2VsZWN0b3IoJ1tkYXRhLWRpc21pc3NhYmxlLWxheWVyXScpIGFzIEhUTUxFbGVtZW50KTtcblxuICAgIGNvbnN0IG5vZGVMaXN0ID0gQXJyYXkuZnJvbShsYXllckVsZW1lbnQub3duZXJEb2N1bWVudC5xdWVyeVNlbGVjdG9yQWxsKCdbZGF0YS1kaXNtaXNzYWJsZS1sYXllcl0nKSk7XG5cbiAgICBpZiAodGFyZ2V0TGF5ZXIgJiYgKG1haW5MYXllciA9PT0gdGFyZ2V0TGF5ZXIgfHwgbm9kZUxpc3QuaW5kZXhPZihtYWluTGF5ZXIpIDwgbm9kZUxpc3QuaW5kZXhPZih0YXJnZXRMYXllcikpKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbi8qKlxuICogTGlzdGVucyBmb3Igd2hlbiBmb2N1cyBoYXBwZW5zIG91dHNpZGUgYSBET00gc3VidHJlZS5cbiAqIFJldHVybnMgcHJvcHMgdG8gcGFzcyB0byB0aGUgcm9vdCAobm9kZSkgb2YgdGhlIHN1YnRyZWUgd2Ugd2FudCB0byBjaGVjay5cbiAqL1xuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4Rm9jdXNPdXRzaWRlXScsXG4gICAgZXhwb3J0QXM6ICdyZHhGb2N1c091dHNpZGUnXG59KVxuZXhwb3J0IGNsYXNzIFJkeEZvY3VzT3V0c2lkZSB7XG4gICAgcmVhZG9ubHkgZW5hYmxlZElucHV0ID0gaW5wdXQ8Ym9vbGVhbiwgQm9vbGVhbklucHV0Pih0cnVlLCB7IHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSwgYWxpYXM6ICdlbmFibGVkJyB9KTtcblxuICAgIHJlYWRvbmx5ICNlbmFibGVkID0gbGlua2VkU2lnbmFsKCgpID0+IHRoaXMuZW5hYmxlZElucHV0KCkpO1xuXG4gICAgc2V0IGVuYWJsZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICAgICAgaWYgKHRoaXMuI2VuYWJsZWQoKSAhPT0gdmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMuI2VuYWJsZWQuc2V0KHZhbHVlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBlbmFibGVkKCkge1xuICAgICAgICByZXR1cm4gdGhpcy4jZW5hYmxlZCgpO1xuICAgIH1cblxuICAgIHJlYWRvbmx5IGZvY3VzT3V0c2lkZSA9IG91dHB1dDxGb2N1c0V2ZW50PigpO1xuXG4gICAgLypcbiAgICAgKiBGbGFnIHRvIGluZGljYXRlIGlmIHRoZSBmb2N1cyBpcyBjdXJyZW50bHkgd2l0aGluIHRoZSBET00gc3VidHJlZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNGb2N1c0luc2lkZURPTVRyZWUgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLypcbiAgICAgKiBIYW5kbGVzIGNhcHR1cmluZyB0aGUgZm9jdXMgZXZlbnQgdG8gbWFyayBmb2N1cyBhcyBpbnNpZGUgdGhlIERPTSBzdWJ0cmVlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBmb2N1c0NhcHR1cmVIYW5kbGVyID0gKCkgPT4ge1xuICAgICAgICBpZiAoIXRoaXMuZW5hYmxlZCkgcmV0dXJuO1xuICAgICAgICB0aGlzLmlzRm9jdXNJbnNpZGVET01UcmVlLnNldCh0cnVlKTtcbiAgICB9O1xuXG4gICAgLypcbiAgICAgKiBIYW5kbGVzIGNhcHR1cmluZyB0aGUgYmx1ciBldmVudCB0byBtYXJrIGZvY3VzIGFzIG91dHNpZGUgdGhlIERPTSBzdWJ0cmVlXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBibHVyQ2FwdHVyZUhhbmRsZXIgPSAoKSA9PiB7XG4gICAgICAgIGlmICghdGhpcy5lbmFibGVkKSByZXR1cm47XG4gICAgICAgIHRoaXMuaXNGb2N1c0luc2lkZURPTVRyZWUuc2V0KGZhbHNlKTtcbiAgICB9O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIGNvbnN0IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuXG4gICAgICAgIGVmZmVjdCgob25DbGVhbnVwKSA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuI2VuYWJsZWQoKSkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3Qgb3duZXJEb2N1bWVudCA9IGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vd25lckRvY3VtZW50ID8/IGdsb2JhbFRoaXMuZG9jdW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGZvY3VzSGFuZGxlciA9IGFzeW5jIChldmVudDogRm9jdXNFdmVudCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghZWxlbWVudFJlZj8ubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgICAgICAgICAgICAgYXdhaXQgUHJvbWlzZS5yZXNvbHZlKCk7XG5cbiAgICAgICAgICAgICAgICBjb25zdCB0YXJnZXQgPSBldmVudC50YXJnZXQgYXMgSFRNTEVsZW1lbnQgfCB1bmRlZmluZWQ7XG4gICAgICAgICAgICAgICAgaWYgKCFlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQgfHwgIXRhcmdldCB8fCBpc0xheWVyRXhpc3QoZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LCB0YXJnZXQpKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgICBpZiAodGFyZ2V0ICYmICF0aGlzLmlzRm9jdXNJbnNpZGVET01UcmVlKCkpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb2N1c091dHNpZGUuZW1pdChldmVudCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfTtcblxuICAgICAgICAgICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5mb2N1c0NhcHR1cmVIYW5kbGVyLCB7XG4gICAgICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBlbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignYmx1cicsIHRoaXMuYmx1ckNhcHR1cmVIYW5kbGVyLCB7XG4gICAgICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignZm9jdXNpbicsIGZvY3VzSGFuZGxlcik7XG5cbiAgICAgICAgICAgIG9uQ2xlYW51cCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2ZvY3VzJywgdGhpcy5mb2N1c0NhcHR1cmVIYW5kbGVyLCB7XG4gICAgICAgICAgICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdibHVyJywgdGhpcy5ibHVyQ2FwdHVyZUhhbmRsZXIsIHtcbiAgICAgICAgICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdmb2N1c2luJywgZm9jdXNIYW5kbGVyKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG59XG5cbi8qKlxuICogTGlzdGVucyBmb3IgYHBvaW50ZXJkb3duYCBvdXRzaWRlIGEgRE9NIHN1YnRyZWUuIFdlIHVzZSBgcG9pbnRlcmRvd25gIHJhdGhlciB0aGFuIGBwb2ludGVydXBgXG4gKiB0byBtaW1pYyBsYXllciBkaXNtaXNzaW5nIGJlaGF2aW9yIHByZXNlbnQgaW4gT1MuXG4gKiBSZXR1cm5zIHByb3BzIHRvIHBhc3MgdG8gdGhlIG5vZGUgd2Ugd2FudCB0byBjaGVjayBmb3Igb3V0c2lkZSBldmVudHMuXG4gKi9cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFBvaW50ZXJEb3duT3V0c2lkZV0nLFxuICAgIGV4cG9ydEFzOiAncmR4UG9pbnRlckRvd25PdXRzaWRlJ1xufSlcbmV4cG9ydCBjbGFzcyBSZHhQb2ludGVyRG93bk91dHNpZGUge1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxFbGVtZW50Pj4oRWxlbWVudFJlZik7XG5cbiAgICByZWFkb25seSBlbmFibGVkSW5wdXQgPSBpbnB1dDxib29sZWFuLCBCb29sZWFuSW5wdXQ+KHRydWUsIHsgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlLCBhbGlhczogJ2VuYWJsZWQnIH0pO1xuXG4gICAgcmVhZG9ubHkgI2VuYWJsZWQgPSBsaW5rZWRTaWduYWwoKCkgPT4gdGhpcy5lbmFibGVkSW5wdXQoKSk7XG5cbiAgICBzZXQgZW5hYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgICAgICBpZiAodGhpcy4jZW5hYmxlZCgpICE9PSB2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy4jZW5hYmxlZC5zZXQodmFsdWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZ2V0IGVuYWJsZWQoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLiNlbmFibGVkKCk7XG4gICAgfVxuXG4gICAgcmVhZG9ubHkgcG9pbnRlckRvd25PdXRzaWRlID0gb3V0cHV0PFBvaW50ZXJFdmVudD4oKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaXNQb2ludGVySW5zaWRlRE9NVHJlZSA9IHNpZ25hbChmYWxzZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGhhbmRsZUFuZERpc3BhdGNoUG9pbnRlckRvd25PdXRzaWRlRXZlbnQgPSAoZTogUG9pbnRlckV2ZW50KSA9PiAoKSA9PlxuICAgICAgICB0aGlzLnBvaW50ZXJEb3duT3V0c2lkZS5lbWl0KGUpO1xuXG4gICAgcHJpdmF0ZSBoYW5kbGVDbGljazogKCkgPT4gdm9pZCB8IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoKG9uQ2xlYW51cCkgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLiNlbmFibGVkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vd25lckRvY3VtZW50ID8/IGdsb2JhbFRoaXMuZG9jdW1lbnQ7XG5cbiAgICAgICAgICAgIGNvbnN0IGhhbmRsZVBvaW50ZXJEb3duID0gYXN5bmMgKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQudGFyZ2V0ICYmICF0aGlzLmlzUG9pbnRlckluc2lkZURPTVRyZWUoKSkge1xuICAgICAgICAgICAgICAgICAgICAvKipcbiAgICAgICAgICAgICAgICAgICAgICogT24gdG91Y2ggZGV2aWNlcywgd2UgbmVlZCB0byB3YWl0IGZvciBhIGNsaWNrIGV2ZW50IGJlY2F1c2UgYnJvd3NlcnMgaW1wbGVtZW50XG4gICAgICAgICAgICAgICAgICAgICAqIGEgfjM1MG1zIGRlbGF5IGJldHdlZW4gdGhlIHRpbWUgdGhlIHVzZXIgc3RvcHMgdG91Y2hpbmcgdGhlIGRpc3BsYXkgYW5kIHdoZW4gdGhlXG4gICAgICAgICAgICAgICAgICAgICAqIGJyb3dzZXIgZXhlY3V0cmVzIGV2ZW50cy4gV2UgbmVlZCB0byBlbnN1cmUgd2UgZG9uJ3QgcmVhY3RpdmF0ZSBwb2ludGVyLWV2ZW50cyB3aXRoaW5cbiAgICAgICAgICAgICAgICAgICAgICogdGhpcyB0aW1lZnJhbWUgb3RoZXJ3aXNlIHRoZSBicm93c2VyIG1heSBleGVjdXRlIGV2ZW50cyB0aGF0IHNob3VsZCBoYXZlIGJlZW4gcHJldmVudGVkLlxuICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgKiBBZGRpdGlvbmFsbHksIHRoaXMgYWxzbyBsZXRzIHVzIGRlYWwgYXV0b21hdGljYWxseSB3aXRoIGNhbmNlbGxhdGlvbnMgd2hlbiBhIGNsaWNrIGV2ZW50XG4gICAgICAgICAgICAgICAgICAgICAqIGlzbid0IHJhaXNlZCBiZWNhdXNlIHRoZSBwYWdlIHdhcyBjb25zaWRlcmVkIHNjcm9sbGVkL2RyYWctc2Nyb2xsZWQsIGxvbmctcHJlc3NlZCwgZXRjLlxuICAgICAgICAgICAgICAgICAgICAgKlxuICAgICAgICAgICAgICAgICAgICAgKiBUaGlzIGlzIHdoeSB3ZSBhbHNvIGNvbnRpbnVvdXNseSByZW1vdmUgdGhlIHByZXZpb3VzIGxpc3RlbmVyLCBiZWNhdXNlIHdlIGNhbm5vdCBiZVxuICAgICAgICAgICAgICAgICAgICAgKiBjZXJ0YWluIHRoYXQgaXQgd2FzIHJhaXNlZCwgYW5kIHRoZXJlZm9yZSBjbGVhbmVkLXVwLlxuICAgICAgICAgICAgICAgICAgICAgKi9cbiAgICAgICAgICAgICAgICAgICAgaWYgKGV2ZW50LnBvaW50ZXJUeXBlID09PSAndG91Y2gnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvd25lckRvY3VtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ2NsaWNrJywgdGhpcy5oYW5kbGVDbGljayk7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmhhbmRsZUNsaWNrID0gdGhpcy5oYW5kbGVBbmREaXNwYXRjaFBvaW50ZXJEb3duT3V0c2lkZUV2ZW50KGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUNsaWNrLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb25jZTogdHJ1ZVxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvaW50ZXJEb3duT3V0c2lkZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIFdlIG5lZWQgdG8gcmVtb3ZlIHRoZSBldmVudCBsaXN0ZW5lciBpbiBjYXNlIHRoZSBvdXRzaWRlIGNsaWNrIGhhcyBiZWVuIGNhbmNlbGVkLlxuICAgICAgICAgICAgICAgICAgICAvLyBTZWU6IGh0dHBzOi8vZ2l0aHViLmNvbS9yYWRpeC11aS9wcmltaXRpdmVzL2lzc3Vlcy8yMTcxXG4gICAgICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcignY2xpY2snLCB0aGlzLmhhbmRsZUNsaWNrKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pc1BvaW50ZXJJbnNpZGVET01UcmVlLnNldChmYWxzZSk7XG4gICAgICAgICAgICB9O1xuICAgICAgICAgICAgLyoqXG4gICAgICAgICAgICAgKiBpZiB0aGlzIGRpcmVjdGl2ZSBleGVjdXRlcyBpbiBhIGNvbXBvbmVudCB0aGF0IG1vdW50cyB2aWEgYSBgcG9pbnRlcmRvd25gIGV2ZW50LCB0aGUgZXZlbnRcbiAgICAgICAgICAgICAqIHdvdWxkIGJ1YmJsZSB1cCB0byB0aGUgZG9jdW1lbnQgYW5kIHRyaWdnZXIgYSBgcG9pbnRlckRvd25PdXRzaWRlYCBldmVudC4gV2UgYXZvaWRcbiAgICAgICAgICAgICAqIHRoaXMgYnkgZGVsYXlpbmcgdGhlIGV2ZW50IGxpc3RlbmVyIHJlZ2lzdHJhdGlvbiBvbiB0aGUgZG9jdW1lbnQuXG4gICAgICAgICAgICAgKiBUaGlzIGlzIG5vdCBBbmd1bGFyIHNwZWNpZmljLCBidXQgcmF0aGVyIGhvdyB0aGUgRE9NIHdvcmtzLCBpZTpcbiAgICAgICAgICAgICAqIGBgYFxuICAgICAgICAgICAgICogYnV0dG9uLmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgKCkgPT4ge1xuICAgICAgICAgICAgICogICBjb25zb2xlLmxvZygnSSB3aWxsIGxvZycpO1xuICAgICAgICAgICAgICogICBkb2N1bWVudC5hZGRFdmVudExpc3RlbmVyKCdwb2ludGVyZG93bicsICgpID0+IHtcbiAgICAgICAgICAgICAqICAgICBjb25zb2xlLmxvZygnSSB3aWxsIGFsc28gbG9nJyk7XG4gICAgICAgICAgICAgKiAgIH0pXG4gICAgICAgICAgICAgKiB9KTtcbiAgICAgICAgICAgICAqL1xuICAgICAgICAgICAgY29uc3QgdGltZXJJZCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBvd25lckRvY3VtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgaGFuZGxlUG9pbnRlckRvd24pO1xuICAgICAgICAgICAgfSwgMCk7XG5cbiAgICAgICAgICAgIGNvbnN0IG9uUG9pbnRlckRvd25DYXB0dXJlID0gKCkgPT4ge1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5lbmFibGVkKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5pc1BvaW50ZXJJbnNpZGVET01UcmVlLnNldCh0cnVlKTtcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LmFkZEV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgb25Qb2ludGVyRG93bkNhcHR1cmUsIHsgY2FwdHVyZTogdHJ1ZSB9KTtcblxuICAgICAgICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgICAgICAgICB3aW5kb3cuY2xlYXJUaW1lb3V0KHRpbWVySWQpO1xuICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQucmVtb3ZlRXZlbnRMaXN0ZW5lcigncG9pbnRlcmRvd24nLCBoYW5kbGVQb2ludGVyRG93bik7XG4gICAgICAgICAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdjbGljaycsIHRoaXMuaGFuZGxlQ2xpY2spO1xuICAgICAgICAgICAgICAgIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50LnJlbW92ZUV2ZW50TGlzdGVuZXIoJ3BvaW50ZXJkb3duJywgb25Qb2ludGVyRG93bkNhcHR1cmUsIHtcbiAgICAgICAgICAgICAgICAgICAgY2FwdHVyZTogdHJ1ZVxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4RXNjYXBlS2V5RG93bl0nLFxuICAgIGV4cG9ydEFzOiAncmR4RXNjYXBlS2V5RG93bidcbn0pXG5leHBvcnQgY2xhc3MgUmR4RXNjYXBlS2V5RG93biB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50UmVmID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3lSZWYgPSBpbmplY3QoRGVzdHJveVJlZik7XG5cbiAgICByZWFkb25seSBlc2NhcGVLZXlEb3duID0gb3V0cHV0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFmdGVyTmV4dFJlbmRlciA9IGFmdGVyTmV4dFJlbmRlcigoKSA9PiB7XG4gICAgICAgIGNvbnN0IG93bmVyRG9jdW1lbnQgPSB0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vd25lckRvY3VtZW50ID8/IGdsb2JhbFRoaXMuZG9jdW1lbnQ7XG4gICAgICAgIGNvbnN0IGhhbmRsZUtleURvd24gPSAoZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGlmIChldmVudC5rZXkgPT09ICdFc2NhcGUnKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5lc2NhcGVLZXlEb3duLmVtaXQoZXZlbnQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9O1xuXG4gICAgICAgIG93bmVyRG9jdW1lbnQuYWRkRXZlbnRMaXN0ZW5lcigna2V5ZG93bicsIGhhbmRsZUtleURvd24sIHtcbiAgICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PlxuICAgICAgICAgICAgb3duZXJEb2N1bWVudC5yZW1vdmVFdmVudExpc3RlbmVyKCdrZXlkb3duJywgaGFuZGxlS2V5RG93biwge1xuICAgICAgICAgICAgICAgIGNhcHR1cmU6IHRydWVcbiAgICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfSk7XG59XG4iXX0=","import { afterNextRender, booleanAttribute, computed, DestroyRef, Directive, effect, ElementRef, inject, Injector, input, output, untracked } from '@angular/core';\nimport { RdxDismissableLayerConfigToken, RdxDismissableLayersContextToken } from './dismissable-layer.config';\nimport { RdxEscapeKeyDown, RdxFocusOutside, RdxPointerDownOutside } from './utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./utils\";\nlet originalBodyPointerEvents;\nexport class RdxDismissableLayer {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.injector = inject(Injector);\n this.destroyRef = inject(DestroyRef);\n this.context = inject(RdxDismissableLayersContextToken);\n this.config = inject(RdxDismissableLayerConfigToken);\n this.rdxPointerDownOutside = inject(RdxPointerDownOutside);\n this.rdxFocusOutside = inject(RdxFocusOutside);\n this.rdxEscapeKeyDown = inject(RdxEscapeKeyDown);\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n this.escapeKeyDown = output();\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n this.pointerDownOutside = output();\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n this.focusOutside = output();\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n this.interactOutside = output();\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n this.dismiss = output();\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n this.disableOutsidePointerEvents = input(this.config.disableOutsidePointerEvents(), ...(ngDevMode ? [{ debugName: \"disableOutsidePointerEvents\", transform: booleanAttribute }] : [{\n transform: booleanAttribute\n }]));\n this.layers = computed(() => this.context.layersRoot, ...(ngDevMode ? [{ debugName: \"layers\" }] : []));\n this.isBodyPointerEventsDisabled = computed(() => this.context.layersWithOutsidePointerEventsDisabled().length > 0, ...(ngDevMode ? [{ debugName: \"isBodyPointerEventsDisabled\" }] : []));\n this.isPointerEventsEnabled = computed(() => {\n const localLayers = this.layers();\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...this.context.layersWithOutsidePointerEventsDisabled()\n ].slice(-1);\n const highestLayerWithOutsidePointerEventsDisabledIndex = localLayers().indexOf(highestLayerWithOutsidePointerEventsDisabled);\n return this.index() >= highestLayerWithOutsidePointerEventsDisabledIndex;\n }, ...(ngDevMode ? [{ debugName: \"isPointerEventsEnabled\" }] : []));\n this.index = computed(() => this.context.layersRoot().indexOf(this), ...(ngDevMode ? [{ debugName: \"index\" }] : []));\n this.afterNextRender = afterNextRender(() => {\n const ownerDocument = this.elementRef.nativeElement.ownerDocument ?? globalThis.document;\n let lastDisabledCount = 0;\n untracked(() => {\n this.context.layersRoot.update((v) => (v.includes(this) ? v : [...v, this]));\n });\n this.destroyRef.onDestroy(() => {\n untracked(() => {\n this.context.layersRoot.update((v) => v.filter((x) => x !== this));\n });\n });\n effect((onCleanup) => {\n const disabledCount = this.context.layersWithOutsidePointerEventsDisabled().length;\n if (lastDisabledCount === 0 && disabledCount > 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n onCleanup(() => {\n const next = untracked(() => this.context.layersWithOutsidePointerEventsDisabled().length);\n if (lastDisabledCount > 0 && next === 0) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n lastDisabledCount = next;\n });\n lastDisabledCount = disabledCount;\n }, { injector: this.injector });\n });\n this.context.layersRoot.update((v) => [...v, this]);\n this.rdxPointerDownOutside.pointerDownOutside.subscribe((event) => {\n const isPointerDownOnBranch = this.context\n .branches()\n .some((branch) => branch.contains(event.target));\n if (!this.isPointerEventsEnabled() || isPointerDownOnBranch) {\n return;\n }\n this.pointerDownOutside.emit(event);\n this.interactOutside.emit(event);\n if (!event.defaultPrevented) {\n this.dismiss.emit();\n }\n });\n this.rdxFocusOutside.focusOutside.subscribe((event) => {\n const isFocusInBranch = this.context\n .branches()\n .some((branch) => branch.contains(event.target));\n if (isFocusInBranch) {\n return;\n }\n this.focusOutside.emit(event);\n this.interactOutside.emit(event);\n if (!event.defaultPrevented) {\n this.dismiss.emit();\n }\n });\n this.rdxEscapeKeyDown.escapeKeyDown.subscribe((event) => {\n this.escapeKeyDown.emit(event);\n if (!event.defaultPrevented) {\n event.preventDefault();\n this.dismiss.emit();\n }\n });\n this.destroyRef.onDestroy(() => {\n this.context.layersRoot.update((v) => v.filter((i) => i !== this));\n });\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxDismissableLayer, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"17.1.0\", version: \"20.3.3\", type: RdxDismissableLayer, isStandalone: true, selector: \"[rdxDismissableLayer]\", inputs: { disableOutsidePointerEvents: { classPropertyName: \"disableOutsidePointerEvents\", publicName: \"disableOutsidePointerEvents\", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { escapeKeyDown: \"escapeKeyDown\", pointerDownOutside: \"pointerDownOutside\", focusOutside: \"focusOutside\", interactOutside: \"interactOutside\", dismiss: \"dismiss\" }, host: { attributes: { \"data-dismissable-layer\": \"\" }, properties: { \"style\": \"{\\n pointerEvents: isBodyPointerEventsDisabled() ? (isPointerEventsEnabled() ? 'auto' : 'none') : undefined\\n }\" } }, exportAs: [\"rdxDismissableLayer\"], hostDirectives: [{ directive: i1.RdxPointerDownOutside }, { directive: i1.RdxFocusOutside }, { directive: i1.RdxEscapeKeyDown }], ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxDismissableLayer, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxDismissableLayer]',\n exportAs: 'rdxDismissableLayer',\n hostDirectives: [RdxPointerDownOutside, RdxFocusOutside, RdxEscapeKeyDown],\n host: {\n 'data-dismissable-layer': '',\n '[style]': `{\n pointerEvents: isBodyPointerEventsDisabled() ? (isPointerEventsEnabled() ? 'auto' : 'none') : undefined\n }`\n }\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzbWlzc2FibGUtbGF5ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2Rpc21pc3NhYmxlLWxheWVyL3NyYy9kaXNtaXNzYWJsZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsZUFBZSxFQUNmLGdCQUFnQixFQUNoQixRQUFRLEVBQ1IsVUFBVSxFQUNWLFNBQVMsRUFDVCxNQUFNLEVBQ04sVUFBVSxFQUNWLE1BQU0sRUFDTixRQUFRLEVBQ1IsS0FBSyxFQUNMLE1BQU0sRUFDTixTQUFTLEVBQ1osTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLDhCQUE4QixFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUcsT0FBTyxFQUFFLGdCQUFnQixFQUFFLGVBQWUsRUFBRSxxQkFBcUIsRUFBRSxNQUFNLFNBQVMsQ0FBQzs7O0FBRW5GLElBQUkseUJBQWlDLENBQUM7QUFhdEMsTUFBTSxPQUFPLG1CQUFtQjtJQThHNUI7UUE3R2lCLGVBQVUsR0FBRyxNQUFNLENBQTBCLFVBQVUsQ0FBQyxDQUFDO1FBQ3pELGFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDNUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoQyxZQUFPLEdBQUcsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDbkQsV0FBTSxHQUFHLE1BQU0sQ0FBQyw4QkFBOEIsQ0FBQyxDQUFDO1FBRWhELDBCQUFxQixHQUFHLE1BQU0sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDO1FBQ3RELG9CQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFDLHFCQUFnQixHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBRTdEOzs7V0FHRztRQUNNLGtCQUFhLEdBQUcsTUFBTSxFQUFpQixDQUFDO1FBRWpEOzs7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QUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUN4QixDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsVUFBVSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN2RSxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBL0pRLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQVgvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx1QkFBdUI7b0JBQ2pDLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLGNBQWMsRUFBRSxDQUFDLHFCQUFxQixFQUFFLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQztvQkFDMUUsSUFBSSxFQUFFO3dCQUNGLHdCQUF3QixFQUFFLEVBQUU7d0JBQzVCLFNBQVMsRUFBRTs7VUFFVDtxQkFDTDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgYWZ0ZXJOZXh0UmVuZGVyLFxuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgY29tcHV0ZWQsXG4gICAgRGVzdHJveVJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgZWZmZWN0LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIGlucHV0LFxuICAgIG91dHB1dCxcbiAgICB1bnRyYWNrZWRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSZHhEaXNtaXNzYWJsZUxheWVyQ29uZmlnVG9rZW4sIFJkeERpc21pc3NhYmxlTGF5ZXJzQ29udGV4dFRva2VuIH0gZnJvbSAnLi9kaXNtaXNzYWJsZS1sYXllci5jb25maWcnO1xuaW1wb3J0IHsgUmR4RXNjYXBlS2V5RG93biwgUmR4Rm9jdXNPdXRzaWRlLCBSZHhQb2ludGVyRG93bk91dHNpZGUgfSBmcm9tICcuL3V0aWxzJztcblxubGV0IG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHM6IHN0cmluZztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4RGlzbWlzc2FibGVMYXllcl0nLFxuICAgIGV4cG9ydEFzOiAncmR4RGlzbWlzc2FibGVMYXllcicsXG4gICAgaG9zdERpcmVjdGl2ZXM6IFtSZHhQb2ludGVyRG93bk91dHNpZGUsIFJkeEZvY3VzT3V0c2lkZSwgUmR4RXNjYXBlS2V5RG93bl0sXG4gICAgaG9zdDoge1xuICAgICAgICAnZGF0YS1kaXNtaXNzYWJsZS1sYXllcic6ICcnLFxuICAgICAgICAnW3N0eWxlXSc6IGB7XG4gICAgICAgICAgICBwb2ludGVyRXZlbnRzOiBpc0JvZHlQb2ludGVyRXZlbnRzRGlzYWJsZWQoKSA/IChpc1BvaW50ZXJFdmVudHNFbmFibGVkKCkgPyAnYXV0bycgOiAnbm9uZScpIDogdW5kZWZpbmVkXG4gICAgICAgIH1gXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhEaXNtaXNzYWJsZUxheWVyIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5qZWN0b3IgPSBpbmplY3QoSW5qZWN0b3IpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgY29udGV4dCA9IGluamVjdChSZHhEaXNtaXNzYWJsZUxheWVyc0NvbnRleHRUb2tlbik7XG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3QoUmR4RGlzbWlzc2FibGVMYXllckNvbmZpZ1Rva2VuKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgcmR4UG9pbnRlckRvd25PdXRzaWRlID0gaW5qZWN0KFJkeFBvaW50ZXJEb3duT3V0c2lkZSk7XG4gICAgcHJpdmF0ZSByZWFkb25seSByZHhGb2N1c091dHNpZGUgPSBpbmplY3QoUmR4Rm9jdXNPdXRzaWRlKTtcbiAgICBwcml2YXRlIHJlYWRvbmx5IHJkeEVzY2FwZUtleURvd24gPSBpbmplY3QoUmR4RXNjYXBlS2V5RG93bik7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBlc2NhcGUga2V5IGlzIGRvd24uXG4gICAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBlc2NhcGVLZXlEb3duID0gb3V0cHV0PEtleWJvYXJkRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIGEgYHBvaW50ZXJkb3duYCBldmVudCBoYXBwZW5zIG91dHNpZGUgb2YgdGhlIGBEaXNtaXNzYWJsZUxheWVyYC5cbiAgICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHBvaW50ZXJEb3duT3V0c2lkZSA9IG91dHB1dDxQb2ludGVyRXZlbnQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBFdmVudCBoYW5kbGVyIGNhbGxlZCB3aGVuIHRoZSBmb2N1cyBtb3ZlcyBvdXRzaWRlIG9mIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuXG4gICAgICogQ2FuIGJlIHByZXZlbnRlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSBmb2N1c091dHNpZGUgPSBvdXRwdXQ8Rm9jdXNFdmVudD4oKTtcblxuICAgIC8qKlxuICAgICAqIEV2ZW50IGhhbmRsZXIgY2FsbGVkIHdoZW4gYW4gaW50ZXJhY3Rpb24gaGFwcGVucyBvdXRzaWRlIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuXG4gICAgICogU3BlY2lmaWNhbGx5LCB3aGVuIGEgYHBvaW50ZXJkb3duYCBldmVudCBoYXBwZW5zIG91dHNpZGUgb3IgZm9jdXMgbW92ZXMgb3V0c2lkZSBvZiBpdC5cbiAgICAgKiBDYW4gYmUgcHJldmVudGVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGludGVyYWN0T3V0c2lkZSA9IG91dHB1dDxQb2ludGVyRXZlbnQgfCBGb2N1c0V2ZW50PigpO1xuXG4gICAgLyoqXG4gICAgICogSGFuZGxlciBjYWxsZWQgd2hlbiB0aGUgYERpc21pc3NhYmxlTGF5ZXJgIHNob3VsZCBiZSBkaXNtaXNzZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBkaXNtaXNzID0gb3V0cHV0PHZvaWQ+KCk7XG5cbiAgICAvKipcbiAgICAgKiBXaGVuIGB0cnVlYCwgaG92ZXIvZm9jdXMvY2xpY2sgaW50ZXJhY3Rpb25zIHdpbGwgYmUgZGlzYWJsZWQgb24gZWxlbWVudHMgb3V0c2lkZVxuICAgICAqIHRoZSBgRGlzbWlzc2FibGVMYXllcmAuIFVzZXJzIHdpbGwgbmVlZCB0byBjbGljayB0d2ljZSBvbiBvdXRzaWRlIGVsZW1lbnRzIHRvXG4gICAgICogaW50ZXJhY3Qgd2l0aCB0aGVtOiBvbmNlIHRvIGNsb3NlIHRoZSBgRGlzbWlzc2FibGVMYXllcmAsIGFuZCBhZ2FpbiB0byB0cmlnZ2VyIHRoZSBlbGVtZW50LlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cyA9IGlucHV0KHRoaXMuY29uZmlnLmRpc2FibGVPdXRzaWRlUG9pbnRlckV2ZW50cygpLCB7XG4gICAgICAgIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZVxuICAgIH0pO1xuXG4gICAgcmVhZG9ubHkgbGF5ZXJzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5jb250ZXh0LmxheWVyc1Jvb3QpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGlzQm9keVBvaW50ZXJFdmVudHNEaXNhYmxlZCA9IGNvbXB1dGVkKFxuICAgICAgICAoKSA9PiB0aGlzLmNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQoKS5sZW5ndGggPiAwXG4gICAgKTtcblxuICAgIHByb3RlY3RlZCByZWFkb25seSBpc1BvaW50ZXJFdmVudHNFbmFibGVkID0gY29tcHV0ZWQoKCkgPT4ge1xuICAgICAgICBjb25zdCBsb2NhbExheWVycyA9IHRoaXMubGF5ZXJzKCk7XG5cbiAgICAgICAgY29uc3QgW2hpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkXSA9IFtcbiAgICAgICAgICAgIC4uLnRoaXMuY29udGV4dC5sYXllcnNXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZCgpXG4gICAgICAgIF0uc2xpY2UoLTEpO1xuXG4gICAgICAgIGNvbnN0IGhpZ2hlc3RMYXllcldpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkSW5kZXggPSBsb2NhbExheWVycygpLmluZGV4T2YoXG4gICAgICAgICAgICBoaWdoZXN0TGF5ZXJXaXRoT3V0c2lkZVBvaW50ZXJFdmVudHNEaXNhYmxlZFxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmluZGV4KCkgPj0gaGlnaGVzdExheWVyV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWRJbmRleDtcbiAgICB9KTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgaW5kZXggPSBjb21wdXRlZCgoKSA9PiB0aGlzLmNvbnRleHQubGF5ZXJzUm9vdCgpLmluZGV4T2YodGhpcykpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBhZnRlck5leHRSZW5kZXIgPSBhZnRlck5leHRSZW5kZXIoKCkgPT4ge1xuICAgICAgICBjb25zdCBvd25lckRvY3VtZW50ID0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQub3duZXJEb2N1bWVudCA/PyBnbG9iYWxUaGlzLmRvY3VtZW50O1xuXG4gICAgICAgIGxldCBsYXN0RGlzYWJsZWRDb3VudCA9IDA7XG5cbiAgICAgICAgdW50cmFja2VkKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY29udGV4dC5sYXllcnNSb290LnVwZGF0ZSgodikgPT4gKHYuaW5jbHVkZXModGhpcykgPyB2IDogWy4uLnYsIHRoaXNdKSk7XG4gICAgICAgIH0pO1xuICAgICAgICB0aGlzLmRlc3Ryb3lSZWYub25EZXN0cm95KCgpID0+IHtcbiAgICAgICAgICAgIHVudHJhY2tlZCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb250ZXh0LmxheWVyc1Jvb3QudXBkYXRlKCh2KSA9PiB2LmZpbHRlcigoeCkgPT4geCAhPT0gdGhpcykpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0pO1xuXG4gICAgICAgIGVmZmVjdChcbiAgICAgICAgICAgIChvbkNsZWFudXApID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkaXNhYmxlZENvdW50ID0gdGhpcy5jb250ZXh0LmxheWVyc1dpdGhPdXRzaWRlUG9pbnRlckV2ZW50c0Rpc2FibGVkKCkubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgaWYgKGxhc3REaXNhYmxlZENvdW50ID09PSAwICYmIGRpc2FibGVkQ291bnQgPiAwKSB7XG4gICAgICAgICAgICAgICAgICAgIG9yaWdpbmFsQm9keVBvaW50ZXJFdmVudHMgPSBvd25lckRvY3VtZW50LmJvZHkuc3R5bGUucG9pbnRlckV2ZW50cztcbiAgICAgICAgICAgICAgICAgICAgb3duZXJEb2N1bWVudC5ib2R5LnN0eWxlLnBvaW50ZXJFdmVudHMgPSAnbm9uZSc7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgb25DbGVhbnVwKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV4dCA9IHVudHJhY2tlZCgoKSA9PiB0aGlzLmNvbnRleHQubGF5ZXJzV2l0aE91dHNpZGVQb2ludGVyRXZlbnRzRGlzYWJsZWQoKS5sZW5ndGgpO1xuICAgICAgICAgICAgICAgICAgICBpZiAobGFzdERpc2FibGVkQ291bnQgPiAwICYmIG5leHQgPT09IDApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG93bmVyRG9jdW1lbnQuYm9keS5zdHlsZS5wb2ludGVyRXZlbnRzID0gb3JpZ2luYWxCb2R5UG9pbnRlckV2ZW50cztcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBsYXN0RGlzYWJsZWRDb3VudCA9IG5leHQ7XG4gICAgICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgICAgICBsYXN0RGlzYWJsZWRDb3VudCA9IGRpc2FibGVkQ291bnQ7XG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgeyBpbmplY3RvcjogdGhpcy5pbmplY3RvciB9XG4gICAgICAgICk7XG4gICAgfSk7XG5cbiAgICBjb25zdHJ1Y3RvcigpIHtcbiAgICAgICAgdGhpcy5jb250ZXh0LmxheWVyc1Jvb3QudXBkYXRlKCh2KSA9PiBbLi4udiwgdGhpc10pO1xuXG4gICAgICAgIHRoaXMucmR4UG9pbnRlckRvd25PdXRzaWRlLnBvaW50ZXJEb3duT3V0c2lkZS5zdWJzY3JpYmUoKGV2ZW50OiBQb2ludGVyRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzUG9pbnRlckRvd25PbkJyYW5jaCA9IHRoaXMuY29udGV4dFxuICAgICAgICAgICAgICAgIC5icmFuY2hlcygpXG4gICAgICAgICAgICAgICAgLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpO1xuXG4gICAgICAgICAgICBpZiAoIXRoaXMuaXNQb2ludGVyRXZlbnRzRW5hYmxlZCgpIHx8IGlzUG9pbnRlckRvd25PbkJyYW5jaCkge1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5wb2ludGVyRG93bk91dHNpZGUuZW1pdChldmVudCk7XG4gICAgICAgICAgICB0aGlzLmludGVyYWN0T3V0c2lkZS5lbWl0KGV2ZW50KTtcblxuICAgICAgICAgICAgaWYgKCFldmVudC5kZWZhdWx0UHJldmVudGVkKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNtaXNzLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5yZHhGb2N1c091dHNpZGUuZm9jdXNPdXRzaWRlLnN1YnNjcmliZSgoZXZlbnQ6IEZvY3VzRXZlbnQpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGlzRm9jdXNJbkJyYW5jaCA9IHRoaXMuY29udGV4dFxuICAgICAgICAgICAgICAgIC5icmFuY2hlcygpXG4gICAgICAgICAgICAgICAgLnNvbWUoKGJyYW5jaCkgPT4gYnJhbmNoLmNvbnRhaW5zKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkpO1xuXG4gICAgICAgICAgICBpZiAoaXNGb2N1c0luQnJhbmNoKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICB0aGlzLmZvY3VzT3V0c2lkZS5lbWl0KGV2ZW50KTtcbiAgICAgICAgICAgIHRoaXMuaW50ZXJhY3RPdXRzaWRlLmVtaXQoZXZlbnQpO1xuXG4gICAgICAgICAgICBpZiAoIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmRpc21pc3MuZW1pdCgpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcblxuICAgICAgICB0aGlzLnJkeEVzY2FwZUtleURvd24uZXNjYXBlS2V5RG93bi5zdWJzY3JpYmUoKGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmVzY2FwZUtleURvd24uZW1pdChldmVudCk7XG5cbiAgICAgICAgICAgIGlmICghZXZlbnQuZGVmYXVsdFByZXZlbnRlZCkge1xuICAgICAgICAgICAgICAgIGV2ZW50LnByZXZlbnREZWZhdWx0KCk7XG4gICAgICAgICAgICAgICAgdGhpcy5kaXNtaXNzLmVtaXQoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmNvbnRleHQubGF5ZXJzUm9vdC51cGRhdGUoKHYpID0+IHYuZmlsdGVyKChpKSA9PiBpICE9PSB0aGlzKSk7XG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { RdxDismissableLayersContextToken } from './dismissable-layer.config';\nimport * as i0 from \"@angular/core\";\nexport class RdxDismissableLayerBranch {\n constructor() {\n this.elementRef = inject(ElementRef);\n this.destroyRef = inject(DestroyRef);\n this.dismissableLayersContext = inject(RdxDismissableLayersContextToken);\n this.dismissableLayersContext.branches.update((elements) => [...elements, this.elementRef.nativeElement]);\n this.destroyRef.onDestroy(() => this.dismissableLayersContext.branches.update((elements) => elements.filter((el) => el !== this.elementRef.nativeElement)));\n }\n static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxDismissableLayerBranch, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }\n static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"20.3.3\", type: RdxDismissableLayerBranch, isStandalone: true, selector: \"[rdxDismissableLayerBranch]\", ngImport: i0 }); }\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.3.3\", ngImport: i0, type: RdxDismissableLayerBranch, decorators: [{\n type: Directive,\n args: [{\n selector: '[rdxDismissableLayerBranch]'\n }]\n }], ctorParameters: () => [] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlzbWlzc2FibGUtbGF5ZXItYnJhbmNoLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9kaXNtaXNzYWJsZS1sYXllci9zcmMvZGlzbWlzc2FibGUtbGF5ZXItYnJhbmNoLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUUsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNEJBQTRCLENBQUM7O0FBSzlFLE1BQU0sT0FBTyx5QkFBeUI7SUFNbEM7UUFMaUIsZUFBVSxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7UUFDekQsZUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUVoQyw2QkFBd0IsR0FBRyxNQUFNLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztRQUdqRixJQUFJLENBQUMsd0JBQXdCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUMsQ0FBQyxHQUFHLFFBQVEsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFFMUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQzNCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FDdkQsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDLENBQ2hFLENBQ0osQ0FBQztJQUNOLENBQUM7OEdBZFEseUJBQXlCO2tHQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBSHJDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLDZCQUE2QjtpQkFDMUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEZXN0cm95UmVmLCBEaXJlY3RpdmUsIEVsZW1lbnRSZWYsIGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4RGlzbWlzc2FibGVMYXllcnNDb250ZXh0VG9rZW4gfSBmcm9tICcuL2Rpc21pc3NhYmxlLWxheWVyLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeERpc21pc3NhYmxlTGF5ZXJCcmFuY2hdJ1xufSlcbmV4cG9ydCBjbGFzcyBSZHhEaXNtaXNzYWJsZUxheWVyQnJhbmNoIHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGVsZW1lbnRSZWYgPSBpbmplY3Q8RWxlbWVudFJlZjxIVE1MRWxlbWVudD4+KEVsZW1lbnRSZWYpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveVJlZiA9IGluamVjdChEZXN0cm95UmVmKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZGlzbWlzc2FibGVMYXllcnNDb250ZXh0ID0gaW5qZWN0KFJkeERpc21pc3NhYmxlTGF5ZXJzQ29udGV4dFRva2VuKTtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICB0aGlzLmRpc21pc3NhYmxlTGF5ZXJzQ29udGV4dC5icmFuY2hlcy51cGRhdGUoKGVsZW1lbnRzKSA9PiBbLi4uZWxlbWVudHMsIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50XSk7XG5cbiAgICAgICAgdGhpcy5kZXN0cm95UmVmLm9uRGVzdHJveSgoKSA9PlxuICAgICAgICAgICAgdGhpcy5kaXNtaXNzYWJsZUxheWVyc0NvbnRleHQuYnJhbmNoZXMudXBkYXRlKChlbGVtZW50cykgPT5cbiAgICAgICAgICAgICAgICBlbGVtZW50cy5maWx0ZXIoKGVsKSA9PiBlbCAhPT0gdGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQpXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1kaXNtaXNzYWJsZS1sYXllci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvZGlzbWlzc2FibGUtbGF5ZXIvcmFkaXgtbmctcHJpbWl0aXZlcy1kaXNtaXNzYWJsZS1sYXllci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ=="],"names":["i1.RdxPointerDownOutside","i1.RdxFocusOutside","i1.RdxEscapeKeyDown"],"mappings":"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"}
1
+ {"version":3,"file":"radix-ng-primitives-dismissable-layer.mjs","sources":["../../../packages/primitives/dismissable-layer/src/dismissable-layer.config.ts","../../../packages/primitives/dismissable-layer/src/utils.ts","../../../packages/primitives/dismissable-layer/src/dismissable-layer.ts","../../../packages/primitives/dismissable-layer/src/dismissable-layer-branch.ts","../../../packages/primitives/dismissable-layer/radix-ng-primitives-dismissable-layer.ts"],"sourcesContent":["import { computed, InjectionToken, Provider, Signal, signal } from '@angular/core';\nimport { RdxDismissableLayer } from './dismissable-layer';\n\nexport const RdxDismissableLayersContextToken = new InjectionToken('RdxDismissableLayersContextToken', {\n factory() {\n const layersRoot = signal<RdxDismissableLayer[]>([]);\n\n return {\n layersRoot,\n layersWithOutsidePointerEventsDisabled: computed(() =>\n layersRoot().filter((i) => i.disableOutsidePointerEvents())\n ),\n branches: signal<HTMLElement[]>([])\n };\n }\n});\n\nexport type RdxDismissableLayerConfig = {\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n disableOutsidePointerEvents: Signal<boolean>;\n};\n\nexport const RdxDismissableLayerConfigToken = new InjectionToken<RdxDismissableLayerConfig>(\n 'RdxDismissableLayerConfig',\n {\n factory: () => {\n return {\n disableOutsidePointerEvents: signal(false)\n };\n }\n }\n);\n\nexport function provideRdxDismissableLayerConfig(factory: () => RdxDismissableLayerConfig): Provider {\n return { provide: RdxDismissableLayerConfigToken, useFactory: factory };\n}\n","import { BooleanInput } from '@angular/cdk/coercion';\nimport {\n afterNextRender,\n booleanAttribute,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n input,\n linkedSignal,\n output,\n signal\n} from '@angular/core';\n\nfunction isLayerExist(layerElement: HTMLElement, targetElement: HTMLElement) {\n const targetLayer = targetElement.closest('[data-dismissable-layer]');\n\n const mainLayer =\n layerElement.dataset['dismissableLayer'] === ''\n ? layerElement\n : (layerElement.querySelector('[data-dismissable-layer]') as HTMLElement);\n\n const nodeList = Array.from(layerElement.ownerDocument.querySelectorAll('[data-dismissable-layer]'));\n\n if (targetLayer && (mainLayer === targetLayer || nodeList.indexOf(mainLayer) < nodeList.indexOf(targetLayer))) {\n return true;\n } else {\n return false;\n }\n}\n\n/**\n * Listens for when focus happens outside a DOM subtree.\n * Returns props to pass to the root (node) of the subtree we want to check.\n */\n@Directive({\n selector: '[rdxFocusOutside]',\n exportAs: 'rdxFocusOutside'\n})\nexport class RdxFocusOutside {\n readonly enabledInput = input<boolean, BooleanInput>(true, { transform: booleanAttribute, alias: 'enabled' });\n\n readonly #enabled = linkedSignal(() => this.enabledInput());\n\n set enabled(value: boolean) {\n if (this.#enabled() !== value) {\n this.#enabled.set(value);\n }\n }\n\n get enabled() {\n return this.#enabled();\n }\n\n readonly focusOutside = output<FocusEvent>();\n\n /*\n * Flag to indicate if the focus is currently within the DOM subtree\n */\n private readonly isFocusInsideDOMTree = signal(false);\n\n /*\n * Handles capturing the focus event to mark focus as inside the DOM subtree\n */\n private readonly focusCaptureHandler = () => {\n if (!this.enabled) return;\n this.isFocusInsideDOMTree.set(true);\n };\n\n /*\n * Handles capturing the blur event to mark focus as outside the DOM subtree\n */\n private readonly blurCaptureHandler = () => {\n if (!this.enabled) return;\n this.isFocusInsideDOMTree.set(false);\n };\n\n constructor() {\n const elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n effect((onCleanup) => {\n if (!this.#enabled()) {\n return;\n }\n\n const ownerDocument = elementRef.nativeElement.ownerDocument ?? globalThis.document;\n\n const focusHandler = async (event: FocusEvent) => {\n if (!elementRef?.nativeElement) {\n return;\n }\n\n await Promise.resolve();\n await Promise.resolve();\n\n const target = event.target as HTMLElement | undefined;\n if (!elementRef.nativeElement || !target || isLayerExist(elementRef.nativeElement, target)) {\n return;\n }\n\n if (target && !this.isFocusInsideDOMTree()) {\n this.focusOutside.emit(event);\n }\n };\n\n elementRef.nativeElement.addEventListener('focus', this.focusCaptureHandler, {\n capture: true\n });\n elementRef.nativeElement.addEventListener('blur', this.blurCaptureHandler, {\n capture: true\n });\n\n ownerDocument.addEventListener('focusin', focusHandler);\n\n onCleanup(() => {\n elementRef.nativeElement.removeEventListener('focus', this.focusCaptureHandler, {\n capture: true\n });\n\n elementRef.nativeElement.removeEventListener('blur', this.blurCaptureHandler, {\n capture: true\n });\n\n ownerDocument.removeEventListener('focusin', focusHandler);\n });\n });\n }\n}\n\n/**\n * Listens for `pointerdown` outside a DOM subtree. We use `pointerdown` rather than `pointerup`\n * to mimic layer dismissing behavior present in OS.\n * Returns props to pass to the node we want to check for outside events.\n */\n@Directive({\n selector: '[rdxPointerDownOutside]',\n exportAs: 'rdxPointerDownOutside'\n})\nexport class RdxPointerDownOutside {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n\n readonly enabledInput = input<boolean, BooleanInput>(true, { transform: booleanAttribute, alias: 'enabled' });\n\n readonly #enabled = linkedSignal(() => this.enabledInput());\n\n set enabled(value: boolean) {\n if (this.#enabled() !== value) {\n this.#enabled.set(value);\n }\n }\n\n get enabled() {\n return this.#enabled();\n }\n\n readonly pointerDownOutside = output<PointerEvent>();\n\n private readonly isPointerInsideDOMTree = signal(false);\n\n private readonly handleAndDispatchPointerDownOutsideEvent = (e: PointerEvent) => () =>\n this.pointerDownOutside.emit(e);\n\n private handleClick: () => void | undefined;\n\n constructor() {\n effect((onCleanup) => {\n if (!this.#enabled()) {\n return;\n }\n\n const ownerDocument = this.elementRef.nativeElement.ownerDocument ?? globalThis.document;\n\n const handlePointerDown = async (event: PointerEvent) => {\n if (event.target && !this.isPointerInsideDOMTree()) {\n /**\n * On touch devices, we need to wait for a click event because browsers implement\n * a ~350ms delay between the time the user stops touching the display and when the\n * browser executres events. We need to ensure we don't reactivate pointer-events within\n * this timeframe otherwise the browser may execute events that should have been prevented.\n *\n * Additionally, this also lets us deal automatically with cancellations when a click event\n * isn't raised because the page was considered scrolled/drag-scrolled, long-pressed, etc.\n *\n * This is why we also continuously remove the previous listener, because we cannot be\n * certain that it was raised, and therefore cleaned-up.\n */\n if (event.pointerType === 'touch') {\n ownerDocument.removeEventListener('click', this.handleClick);\n this.handleClick = this.handleAndDispatchPointerDownOutsideEvent(event);\n ownerDocument.addEventListener('click', this.handleClick, {\n once: true\n });\n } else {\n this.pointerDownOutside.emit(event);\n }\n } else {\n // We need to remove the event listener in case the outside click has been canceled.\n // See: https://github.com/radix-ui/primitives/issues/2171\n ownerDocument.removeEventListener('click', this.handleClick);\n }\n this.isPointerInsideDOMTree.set(false);\n };\n /**\n * if this directive executes in a component that mounts via a `pointerdown` event, the event\n * would bubble up to the document and trigger a `pointerDownOutside` event. We avoid\n * this by delaying the event listener registration on the document.\n * This is not Angular specific, but rather how the DOM works, ie:\n * ```\n * button.addEventListener('pointerdown', () => {\n * console.log('I will log');\n * document.addEventListener('pointerdown', () => {\n * console.log('I will also log');\n * })\n * });\n */\n const timerId = window.setTimeout(() => {\n ownerDocument.addEventListener('pointerdown', handlePointerDown);\n }, 0);\n\n const onPointerDownCapture = () => {\n if (!this.enabled) {\n return;\n }\n this.isPointerInsideDOMTree.set(true);\n };\n\n this.elementRef.nativeElement.addEventListener('pointerdown', onPointerDownCapture, { capture: true });\n\n onCleanup(() => {\n window.clearTimeout(timerId);\n ownerDocument.removeEventListener('pointerdown', handlePointerDown);\n ownerDocument.removeEventListener('click', this.handleClick);\n this.elementRef.nativeElement.removeEventListener('pointerdown', onPointerDownCapture, {\n capture: true\n });\n });\n });\n }\n}\n\n@Directive({\n selector: '[rdxEscapeKeyDown]',\n exportAs: 'rdxEscapeKeyDown'\n})\nexport class RdxEscapeKeyDown {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n\n readonly escapeKeyDown = output<KeyboardEvent>();\n\n private readonly afterNextRender = afterNextRender(() => {\n const ownerDocument = this.elementRef.nativeElement.ownerDocument ?? globalThis.document;\n const handleKeyDown = (event: KeyboardEvent) => {\n if (event.key === 'Escape') {\n this.escapeKeyDown.emit(event);\n }\n };\n\n ownerDocument.addEventListener('keydown', handleKeyDown, {\n capture: true\n });\n\n this.destroyRef.onDestroy(() =>\n ownerDocument.removeEventListener('keydown', handleKeyDown, {\n capture: true\n })\n );\n });\n}\n","import {\n afterNextRender,\n booleanAttribute,\n computed,\n DestroyRef,\n Directive,\n effect,\n ElementRef,\n inject,\n Injector,\n input,\n output,\n untracked\n} from '@angular/core';\nimport { RdxDismissableLayerConfigToken, RdxDismissableLayersContextToken } from './dismissable-layer.config';\nimport { RdxEscapeKeyDown, RdxFocusOutside, RdxPointerDownOutside } from './utils';\n\nlet originalBodyPointerEvents: string;\n\n@Directive({\n selector: '[rdxDismissableLayer]',\n exportAs: 'rdxDismissableLayer',\n hostDirectives: [RdxPointerDownOutside, RdxFocusOutside, RdxEscapeKeyDown],\n host: {\n 'data-dismissable-layer': '',\n '[style]': `{\n pointerEvents: isBodyPointerEventsDisabled() ? (isPointerEventsEnabled() ? 'auto' : 'none') : undefined\n }`\n }\n})\nexport class RdxDismissableLayer {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly injector = inject(Injector);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly context = inject(RdxDismissableLayersContextToken);\n private readonly config = inject(RdxDismissableLayerConfigToken);\n\n private readonly rdxPointerDownOutside = inject(RdxPointerDownOutside);\n private readonly rdxFocusOutside = inject(RdxFocusOutside);\n private readonly rdxEscapeKeyDown = inject(RdxEscapeKeyDown);\n\n /**\n * Event handler called when the escape key is down.\n * Can be prevented.\n */\n readonly escapeKeyDown = output<KeyboardEvent>();\n\n /**\n * Event handler called when a `pointerdown` event happens outside of the `DismissableLayer`.\n * Can be prevented.\n */\n readonly pointerDownOutside = output<PointerEvent>();\n\n /**\n * Event handler called when the focus moves outside of the `DismissableLayer`.\n * Can be prevented.\n */\n readonly focusOutside = output<FocusEvent>();\n\n /**\n * Event handler called when an interaction happens outside the `DismissableLayer`.\n * Specifically, when a `pointerdown` event happens outside or focus moves outside of it.\n * Can be prevented.\n */\n readonly interactOutside = output<PointerEvent | FocusEvent>();\n\n /**\n * Handler called when the `DismissableLayer` should be dismissed\n */\n readonly dismiss = output<void>();\n\n /**\n * When `true`, hover/focus/click interactions will be disabled on elements outside\n * the `DismissableLayer`. Users will need to click twice on outside elements to\n * interact with them: once to close the `DismissableLayer`, and again to trigger the element.\n */\n readonly disableOutsidePointerEvents = input(this.config.disableOutsidePointerEvents(), {\n transform: booleanAttribute\n });\n\n readonly layers = computed(() => this.context.layersRoot);\n\n protected readonly isBodyPointerEventsDisabled = computed(\n () => this.context.layersWithOutsidePointerEventsDisabled().length > 0\n );\n\n protected readonly isPointerEventsEnabled = computed(() => {\n const localLayers = this.layers();\n\n const [highestLayerWithOutsidePointerEventsDisabled] = [\n ...this.context.layersWithOutsidePointerEventsDisabled()\n ].slice(-1);\n\n const highestLayerWithOutsidePointerEventsDisabledIndex = localLayers().indexOf(\n highestLayerWithOutsidePointerEventsDisabled\n );\n\n return this.index() >= highestLayerWithOutsidePointerEventsDisabledIndex;\n });\n\n private readonly index = computed(() => this.context.layersRoot().indexOf(this));\n\n private readonly afterNextRender = afterNextRender(() => {\n const ownerDocument = this.elementRef.nativeElement.ownerDocument ?? globalThis.document;\n\n let lastDisabledCount = 0;\n\n untracked(() => {\n this.context.layersRoot.update((v) => (v.includes(this) ? v : [...v, this]));\n });\n this.destroyRef.onDestroy(() => {\n untracked(() => {\n this.context.layersRoot.update((v) => v.filter((x) => x !== this));\n });\n });\n\n effect(\n (onCleanup) => {\n const disabledCount = this.context.layersWithOutsidePointerEventsDisabled().length;\n\n if (lastDisabledCount === 0 && disabledCount > 0) {\n originalBodyPointerEvents = ownerDocument.body.style.pointerEvents;\n ownerDocument.body.style.pointerEvents = 'none';\n }\n\n onCleanup(() => {\n const next = untracked(() => this.context.layersWithOutsidePointerEventsDisabled().length);\n if (lastDisabledCount > 0 && next === 0) {\n ownerDocument.body.style.pointerEvents = originalBodyPointerEvents;\n }\n lastDisabledCount = next;\n });\n\n lastDisabledCount = disabledCount;\n },\n { injector: this.injector }\n );\n });\n\n constructor() {\n this.context.layersRoot.update((v) => [...v, this]);\n\n this.rdxPointerDownOutside.pointerDownOutside.subscribe((event: PointerEvent) => {\n const isPointerDownOnBranch = this.context\n .branches()\n .some((branch) => branch.contains(event.target as HTMLElement));\n\n if (!this.isPointerEventsEnabled() || isPointerDownOnBranch) {\n return;\n }\n\n this.pointerDownOutside.emit(event);\n this.interactOutside.emit(event);\n\n if (!event.defaultPrevented) {\n this.dismiss.emit();\n }\n });\n\n this.rdxFocusOutside.focusOutside.subscribe((event: FocusEvent) => {\n const isFocusInBranch = this.context\n .branches()\n .some((branch) => branch.contains(event.target as HTMLElement));\n\n if (isFocusInBranch) {\n return;\n }\n\n this.focusOutside.emit(event);\n this.interactOutside.emit(event);\n\n if (!event.defaultPrevented) {\n this.dismiss.emit();\n }\n });\n\n this.rdxEscapeKeyDown.escapeKeyDown.subscribe((event: KeyboardEvent) => {\n this.escapeKeyDown.emit(event);\n\n if (!event.defaultPrevented) {\n event.preventDefault();\n this.dismiss.emit();\n }\n });\n\n this.destroyRef.onDestroy(() => {\n this.context.layersRoot.update((v) => v.filter((i) => i !== this));\n });\n }\n}\n","import { DestroyRef, Directive, ElementRef, inject } from '@angular/core';\nimport { RdxDismissableLayersContextToken } from './dismissable-layer.config';\n\n@Directive({\n selector: '[rdxDismissableLayerBranch]'\n})\nexport class RdxDismissableLayerBranch {\n private readonly elementRef = inject<ElementRef<HTMLElement>>(ElementRef);\n private readonly destroyRef = inject(DestroyRef);\n\n private readonly dismissableLayersContext = inject(RdxDismissableLayersContextToken);\n\n constructor() {\n this.dismissableLayersContext.branches.update((elements) => [...elements, this.elementRef.nativeElement]);\n\n this.destroyRef.onDestroy(() =>\n this.dismissableLayersContext.branches.update((elements) =>\n elements.filter((el) => el !== this.elementRef.nativeElement)\n )\n );\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.RdxPointerDownOutside","i1.RdxFocusOutside","i1.RdxEscapeKeyDown"],"mappings":"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"}