@radix-ng/primitives 0.4.0 → 0.6.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 (181) hide show
  1. package/alert-dialog/README.md +1 -0
  2. package/alert-dialog/index.d.ts +6 -0
  3. package/alert-dialog/src/alert-dialog-cancel.directive.d.ts +7 -0
  4. package/alert-dialog/src/alert-dialog-content.directive.d.ts +8 -0
  5. package/alert-dialog/src/alert-dialog-root.directive.d.ts +9 -0
  6. package/alert-dialog/src/alert-dialog-title.directive.d.ts +5 -0
  7. package/alert-dialog/src/alert-dialog-trigger.directive.d.ts +7 -0
  8. package/alert-dialog/src/alert-dialog.service.d.ts +14 -0
  9. package/avatar/index.d.ts +3 -1
  10. package/avatar/src/avatar-fallback.directive.d.ts +10 -17
  11. package/avatar/src/avatar-image.directive.d.ts +10 -11
  12. package/avatar/src/avatar-root.directive.d.ts +21 -0
  13. package/avatar/src/avatar.config.d.ts +3 -2
  14. package/checkbox/src/checkbox.directive.d.ts +2 -1
  15. package/collapsible/README.md +1 -0
  16. package/collapsible/index.d.ts +3 -0
  17. package/collapsible/src/collapsible-content.directive.d.ts +11 -0
  18. package/collapsible/src/collapsible-root.directive.d.ts +52 -0
  19. package/collapsible/src/collapsible-trigger.directive.d.ts +26 -0
  20. package/esm2022/alert-dialog/index.mjs +7 -0
  21. package/esm2022/alert-dialog/radix-ng-primitives-alert-dialog.mjs +5 -0
  22. package/esm2022/alert-dialog/src/alert-dialog-cancel.directive.mjs +24 -0
  23. package/esm2022/alert-dialog/src/alert-dialog-content.directive.mjs +26 -0
  24. package/esm2022/alert-dialog/src/alert-dialog-root.directive.mjs +24 -0
  25. package/esm2022/alert-dialog/src/alert-dialog-title.directive.mjs +14 -0
  26. package/esm2022/alert-dialog/src/alert-dialog-trigger.directive.mjs +24 -0
  27. package/esm2022/alert-dialog/src/alert-dialog.service.mjs +45 -0
  28. package/esm2022/avatar/index.mjs +2 -2
  29. package/esm2022/avatar/src/avatar-fallback.directive.mjs +23 -30
  30. package/esm2022/avatar/src/avatar-image.directive.mjs +29 -31
  31. package/esm2022/avatar/src/avatar-root.directive.mjs +38 -0
  32. package/esm2022/avatar/src/avatar.config.mjs +2 -2
  33. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +4 -4
  34. package/esm2022/checkbox/src/checkbox.directive.mjs +4 -4
  35. package/esm2022/collapsible/index.mjs +4 -0
  36. package/esm2022/collapsible/radix-ng-primitives-collapsible.mjs +5 -0
  37. package/esm2022/collapsible/src/collapsible-content.directive.mjs +26 -0
  38. package/esm2022/collapsible/src/collapsible-root.directive.mjs +114 -0
  39. package/esm2022/collapsible/src/collapsible-trigger.directive.mjs +49 -0
  40. package/esm2022/label/index.mjs +2 -2
  41. package/esm2022/label/src/label-root.directive.mjs +48 -0
  42. package/esm2022/progress/index.mjs +2 -2
  43. package/esm2022/progress/src/progress-indicator.directive.mjs +11 -10
  44. package/esm2022/progress/src/progress-root.directive.mjs +71 -0
  45. package/esm2022/radio/index.mjs +2 -4
  46. package/esm2022/radio/src/radio-indicator.directive.mjs +8 -13
  47. package/esm2022/radio/src/radio-item.directive.mjs +27 -42
  48. package/esm2022/radio/src/radio-root.directive.mjs +106 -0
  49. package/esm2022/roving-focus/index.mjs +1 -3
  50. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +12 -18
  51. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +21 -26
  52. package/esm2022/separator/src/separator.directive.mjs +12 -17
  53. package/esm2022/switch/index.mjs +2 -3
  54. package/esm2022/switch/src/switch-root.directive.mjs +74 -0
  55. package/esm2022/switch/src/switch-thumb.directive.mjs +10 -12
  56. package/esm2022/toggle/index.mjs +2 -2
  57. package/esm2022/toggle/src/toggle-root.directive.mjs +51 -0
  58. package/esm2022/toggle-group/index.mjs +6 -0
  59. package/esm2022/toggle-group/radix-ng-primitives-toggle-group.mjs +5 -0
  60. package/esm2022/toggle-group/src/toggle-group-button.directive.mjs +79 -0
  61. package/esm2022/toggle-group/src/toggle-group-button.token.mjs +6 -0
  62. package/esm2022/toggle-group/src/toggle-group-multi.directive.mjs +159 -0
  63. package/esm2022/toggle-group/src/toggle-group.directive.mjs +157 -0
  64. package/esm2022/toggle-group/src/toggle-group.token.mjs +6 -0
  65. package/fesm2022/radix-ng-primitives-alert-dialog.mjs +150 -0
  66. package/fesm2022/radix-ng-primitives-alert-dialog.mjs.map +1 -0
  67. package/fesm2022/radix-ng-primitives-avatar.mjs +79 -90
  68. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  69. package/fesm2022/radix-ng-primitives-checkbox.mjs +6 -6
  70. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  71. package/fesm2022/radix-ng-primitives-collapsible.mjs +190 -0
  72. package/fesm2022/radix-ng-primitives-collapsible.mjs.map +1 -0
  73. package/fesm2022/radix-ng-primitives-label.mjs +20 -18
  74. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  75. package/fesm2022/radix-ng-primitives-progress.mjs +55 -49
  76. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  77. package/fesm2022/radix-ng-primitives-radio.mjs +70 -100
  78. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  79. package/fesm2022/radix-ng-primitives-roving-focus.mjs +22 -44
  80. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  81. package/fesm2022/radix-ng-primitives-separator.mjs +12 -17
  82. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  83. package/fesm2022/radix-ng-primitives-switch.mjs +49 -106
  84. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  85. package/fesm2022/radix-ng-primitives-toggle-group.mjs +397 -0
  86. package/fesm2022/radix-ng-primitives-toggle-group.mjs.map +1 -0
  87. package/fesm2022/radix-ng-primitives-toggle.mjs +15 -29
  88. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  89. package/label/index.d.ts +1 -1
  90. package/label/src/label-root.directive.d.ts +13 -0
  91. package/package.json +18 -19
  92. package/progress/index.d.ts +2 -1
  93. package/progress/src/progress-indicator.directive.d.ts +2 -2
  94. package/progress/src/progress-root.directive.d.ts +29 -0
  95. package/radio/index.d.ts +1 -3
  96. package/radio/src/radio-indicator.directive.d.ts +3 -9
  97. package/radio/src/radio-item.directive.d.ts +9 -28
  98. package/radio/src/{radio-group.directive.d.ts → radio-root.directive.d.ts} +24 -16
  99. package/roving-focus/index.d.ts +0 -2
  100. package/roving-focus/src/roving-focus-group.directive.d.ts +5 -7
  101. package/roving-focus/src/roving-focus-item.directive.d.ts +6 -8
  102. package/separator/src/separator.directive.d.ts +14 -8
  103. package/switch/index.d.ts +2 -2
  104. package/switch/src/switch-root.directive.d.ts +35 -0
  105. package/switch/src/switch-thumb.directive.d.ts +2 -5
  106. package/toggle/index.d.ts +2 -1
  107. package/toggle/src/toggle-root.directive.d.ts +32 -0
  108. package/toggle-group/README.md +3 -0
  109. package/toggle-group/index.d.ts +5 -0
  110. package/toggle-group/src/toggle-group-button.directive.d.ts +39 -0
  111. package/toggle-group/src/toggle-group-button.token.d.ts +4 -0
  112. package/toggle-group/src/toggle-group-multi.directive.d.ts +90 -0
  113. package/toggle-group/src/toggle-group.directive.d.ts +90 -0
  114. package/toggle-group/src/toggle-group.token.d.ts +5 -0
  115. package/avatar/src/avatar.directive.d.ts +0 -22
  116. package/avatar/src/avatar.token.d.ts +0 -4
  117. package/esm2022/avatar/src/avatar.directive.mjs +0 -38
  118. package/esm2022/avatar/src/avatar.token.mjs +0 -6
  119. package/esm2022/label/src/label.directive.mjs +0 -46
  120. package/esm2022/overlay/index.mjs +0 -5
  121. package/esm2022/overlay/radix-ng-primitives-overlay.mjs +0 -5
  122. package/esm2022/overlay/src/overlay-arrow.directive.mjs +0 -59
  123. package/esm2022/overlay/src/overlay-arrow.token.mjs +0 -3
  124. package/esm2022/overlay/src/overlay-trigger.directive.mjs +0 -279
  125. package/esm2022/overlay/src/overlay-trigger.token.mjs +0 -9
  126. package/esm2022/overlay/src/overlay.directive.mjs +0 -51
  127. package/esm2022/overlay/src/overlay.token.mjs +0 -3
  128. package/esm2022/progress/src/progress.directive.mjs +0 -62
  129. package/esm2022/progress/src/progress.token.mjs +0 -6
  130. package/esm2022/radio/src/radio-group.directive.mjs +0 -108
  131. package/esm2022/radio/src/radio-group.token.mjs +0 -6
  132. package/esm2022/radio/src/radio-item.token.mjs +0 -6
  133. package/esm2022/roving-focus/src/roving-focus-group.token.mjs +0 -9
  134. package/esm2022/roving-focus/src/roving-focus-item.token.mjs +0 -6
  135. package/esm2022/switch/src/switch.directive.mjs +0 -125
  136. package/esm2022/switch/src/switch.token.mjs +0 -6
  137. package/esm2022/toggle/src/toggle.directive.mjs +0 -65
  138. package/esm2022/tooltip/index.mjs +0 -5
  139. package/esm2022/tooltip/radix-ng-primitives-tooltip.mjs +0 -5
  140. package/esm2022/tooltip/src/tooltip-arrow.directive.mjs +0 -17
  141. package/esm2022/tooltip/src/tooltip-trigger.directive.mjs +0 -148
  142. package/esm2022/tooltip/src/tooltip-trigger.token.mjs +0 -6
  143. package/esm2022/tooltip/src/tooltip.config.mjs +0 -31
  144. package/esm2022/tooltip/src/tooltip.directive.mjs +0 -46
  145. package/esm2022/visually-hidden/index.mjs +0 -2
  146. package/esm2022/visually-hidden/radix-ng-primitives-visually-hidden.mjs +0 -5
  147. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +0 -42
  148. package/fesm2022/radix-ng-primitives-overlay.mjs +0 -399
  149. package/fesm2022/radix-ng-primitives-overlay.mjs.map +0 -1
  150. package/fesm2022/radix-ng-primitives-tooltip.mjs +0 -242
  151. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +0 -1
  152. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +0 -49
  153. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +0 -1
  154. package/label/src/label.directive.d.ts +0 -14
  155. package/overlay/README.md +0 -1
  156. package/overlay/index.d.ts +0 -4
  157. package/overlay/src/overlay-arrow.directive.d.ts +0 -29
  158. package/overlay/src/overlay-arrow.token.d.ts +0 -3
  159. package/overlay/src/overlay-trigger.directive.d.ts +0 -163
  160. package/overlay/src/overlay-trigger.token.d.ts +0 -7
  161. package/overlay/src/overlay.directive.d.ts +0 -29
  162. package/overlay/src/overlay.token.d.ts +0 -3
  163. package/progress/src/progress.directive.d.ts +0 -26
  164. package/progress/src/progress.token.d.ts +0 -4
  165. package/radio/src/radio-group.token.d.ts +0 -4
  166. package/radio/src/radio-item.token.d.ts +0 -4
  167. package/roving-focus/src/roving-focus-group.token.d.ts +0 -7
  168. package/roving-focus/src/roving-focus-item.token.d.ts +0 -4
  169. package/switch/src/switch.directive.d.ts +0 -73
  170. package/switch/src/switch.token.d.ts +0 -4
  171. package/toggle/src/toggle.directive.d.ts +0 -30
  172. package/tooltip/README.md +0 -1
  173. package/tooltip/index.d.ts +0 -4
  174. package/tooltip/src/tooltip-arrow.directive.d.ts +0 -6
  175. package/tooltip/src/tooltip-trigger.directive.d.ts +0 -79
  176. package/tooltip/src/tooltip-trigger.token.d.ts +0 -4
  177. package/tooltip/src/tooltip.config.d.ts +0 -46
  178. package/tooltip/src/tooltip.directive.d.ts +0 -17
  179. package/visually-hidden/README.md +0 -3
  180. package/visually-hidden/index.d.ts +0 -1
  181. package/visually-hidden/src/visually-hidden.directive.d.ts +0 -11
@@ -0,0 +1,90 @@
1
+ import { AfterContentInit, EventEmitter, OnChanges, OnInit, QueryList, SimpleChanges } from '@angular/core';
2
+ import { ControlValueAccessor } from '@angular/forms';
3
+ import type { RdxToggleGroupButtonDirective } from './toggle-group-button.directive';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@radix-ng/primitives/roving-focus";
6
+ export declare class RdxToggleGroupDirective implements OnInit, OnChanges, AfterContentInit, ControlValueAccessor {
7
+ /**
8
+ * Access the roving focus group
9
+ */
10
+ private readonly rovingFocusGroup;
11
+ /**
12
+ * The selected toggle button.
13
+ */
14
+ value: string | null;
15
+ /**
16
+ * The orientation of the toggle group.
17
+ * @default 'horizontal'
18
+ */
19
+ orientation: 'horizontal' | 'vertical';
20
+ /**
21
+ * Whether the toggle group is disabled.
22
+ * @default false
23
+ */
24
+ disabled: boolean;
25
+ /**
26
+ * Whether the toggle group roving focus should wrap.
27
+ * @default true
28
+ */
29
+ wrap: boolean;
30
+ /**
31
+ * Event emitted when the selected toggle button changes.
32
+ */
33
+ readonly valueChange: EventEmitter<string | null>;
34
+ /**
35
+ * Access the buttons in the toggle group.
36
+ */
37
+ protected buttons?: QueryList<RdxToggleGroupButtonDirective>;
38
+ /**
39
+ * The value change callback.
40
+ */
41
+ private onChange?;
42
+ /**
43
+ * onTouch function registered via registerOnTouch (ControlValueAccessor).
44
+ */
45
+ protected onTouched?: () => void;
46
+ ngOnInit(): void;
47
+ ngOnChanges(changes: SimpleChanges): void;
48
+ ngAfterContentInit(): void;
49
+ /**
50
+ * Determine if a value is selected.
51
+ * @param value The value to check.
52
+ * @returns Whether the value is selected.
53
+ * @internal
54
+ */
55
+ isSelected(value: string): boolean;
56
+ /**
57
+ * Toggle a value.
58
+ * @param value The value to toggle.
59
+ * @internal
60
+ */
61
+ toggle(value: string): void;
62
+ /**
63
+ * Select a value from Angular forms.
64
+ * @param value The value to select.
65
+ * @internal
66
+ */
67
+ writeValue(value: string): void;
68
+ /**
69
+ * Register a callback to be called when the value changes.
70
+ * @param fn The callback to register.
71
+ * @internal
72
+ */
73
+ registerOnChange(fn: (value: string | null) => void): void;
74
+ /**
75
+ * Register a callback to be called when the toggle group is touched.
76
+ * @param fn The callback to register.
77
+ * @internal
78
+ */
79
+ registerOnTouched(fn: () => void): void;
80
+ /**
81
+ * Set the disabled state of the toggle group.
82
+ * @param isDisabled Whether the toggle group is disabled.
83
+ * @internal
84
+ */
85
+ setDisabledState(isDisabled: boolean): void;
86
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxToggleGroupDirective, never>;
87
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxToggleGroupDirective, "[rdxToggleGroup]", never, { "value": { "alias": "rdxToggleGroupValue"; "required": false; }; "orientation": { "alias": "rdxToggleGroupOrientation"; "required": false; }; "disabled": { "alias": "rdxToggleGroupDisabled"; "required": false; }; "wrap": { "alias": "rdxToggleGroupWrap"; "required": false; }; "valueChange": { "alias": "rdxToggleGroupValueChange"; "required": false; }; }, {}, ["buttons"], never, true, [{ directive: typeof i1.RdxRovingFocusGroupDirective; inputs: { "rdxRovingFocusGroupWrap": "wrap"; "rdxRovingFocusGroupOrientation": "orientation"; }; outputs: {}; }]>;
88
+ static ngAcceptInputType_disabled: unknown;
89
+ static ngAcceptInputType_wrap: unknown;
90
+ }
@@ -0,0 +1,5 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ import type { RdxToggleGroupMultiDirective } from './toggle-group-multi.directive';
3
+ import type { RdxToggleGroupDirective } from './toggle-group.directive';
4
+ export declare const RdxToggleGroupToken: InjectionToken<RdxToggleGroupDirective | RdxToggleGroupMultiDirective>;
5
+ export declare function injectToggleGroup(): RdxToggleGroupDirective | RdxToggleGroupMultiDirective;
@@ -1,22 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class RdxAvatarDirective {
3
- /**
4
- * Store the current state of the avatar.
5
- * @internal
6
- */
7
- state: RdxAvatarState;
8
- /**
9
- * Set the avatar state.
10
- * @param state The state to set.
11
- * @internal
12
- */
13
- setState(state: RdxAvatarState): void;
14
- static ɵfac: i0.ɵɵFactoryDeclaration<RdxAvatarDirective, never>;
15
- static ɵdir: i0.ɵɵDirectiveDeclaration<RdxAvatarDirective, "[rdxAvatar]", never, {}, {}, never, never, true, never>;
16
- }
17
- export declare enum RdxAvatarState {
18
- Idle = 0,
19
- Loading = 1,
20
- Loaded = 2,
21
- Error = 3
22
- }
@@ -1,4 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- import type { RdxAvatarDirective } from './avatar.directive';
3
- export declare const RdxAvatarToken: InjectionToken<RdxAvatarDirective>;
4
- export declare function injectAvatar(): RdxAvatarDirective;
@@ -1,38 +0,0 @@
1
- import { Directive } from '@angular/core';
2
- import { RdxAvatarToken } from './avatar.token';
3
- import * as i0 from "@angular/core";
4
- export class RdxAvatarDirective {
5
- constructor() {
6
- /**
7
- * Store the current state of the avatar.
8
- * @internal
9
- */
10
- this.state = RdxAvatarState.Idle;
11
- }
12
- /**
13
- * Set the avatar state.
14
- * @param state The state to set.
15
- * @internal
16
- */
17
- setState(state) {
18
- this.state = state;
19
- }
20
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
21
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxAvatarDirective, isStandalone: true, selector: "[rdxAvatar]", providers: [{ provide: RdxAvatarToken, useExisting: RdxAvatarDirective }], ngImport: i0 }); }
22
- }
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarDirective, decorators: [{
24
- type: Directive,
25
- args: [{
26
- selector: '[rdxAvatar]',
27
- standalone: true,
28
- providers: [{ provide: RdxAvatarToken, useExisting: RdxAvatarDirective }]
29
- }]
30
- }] });
31
- export var RdxAvatarState;
32
- (function (RdxAvatarState) {
33
- RdxAvatarState[RdxAvatarState["Idle"] = 0] = "Idle";
34
- RdxAvatarState[RdxAvatarState["Loading"] = 1] = "Loading";
35
- RdxAvatarState[RdxAvatarState["Loaded"] = 2] = "Loaded";
36
- RdxAvatarState[RdxAvatarState["Error"] = 3] = "Error";
37
- })(RdxAvatarState || (RdxAvatarState = {}));
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvYXZhdGFyL3NyYy9hdmF0YXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQU9oRCxNQUFNLE9BQU8sa0JBQWtCO0lBTC9CO1FBTUk7OztXQUdHO1FBQ0gsVUFBSyxHQUFtQixjQUFjLENBQUMsSUFBSSxDQUFDO0tBVS9DO0lBUkc7Ozs7T0FJRztJQUNILFFBQVEsQ0FBQyxLQUFxQjtRQUMxQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDOzhHQWRRLGtCQUFrQjtrR0FBbEIsa0JBQWtCLDBEQUZoQixDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQzs7MkZBRWhFLGtCQUFrQjtrQkFMOUIsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsYUFBYTtvQkFDdkIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLFNBQVMsRUFBRSxDQUFDLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLG9CQUFvQixFQUFFLENBQUM7aUJBQzVFOztBQWtCRCxNQUFNLENBQU4sSUFBWSxjQUtYO0FBTEQsV0FBWSxjQUFjO0lBQ3RCLG1EQUFJLENBQUE7SUFDSix5REFBTyxDQUFBO0lBQ1AsdURBQU0sQ0FBQTtJQUNOLHFEQUFLLENBQUE7QUFDVCxDQUFDLEVBTFcsY0FBYyxLQUFkLGNBQWMsUUFLekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUmR4QXZhdGFyVG9rZW4gfSBmcm9tICcuL2F2YXRhci50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeEF2YXRhcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBSZHhBdmF0YXJUb2tlbiwgdXNlRXhpc3Rpbmc6IFJkeEF2YXRhckRpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBSZHhBdmF0YXJEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIFN0b3JlIHRoZSBjdXJyZW50IHN0YXRlIG9mIHRoZSBhdmF0YXIuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgc3RhdGU6IFJkeEF2YXRhclN0YXRlID0gUmR4QXZhdGFyU3RhdGUuSWRsZTtcblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgYXZhdGFyIHN0YXRlLlxuICAgICAqIEBwYXJhbSBzdGF0ZSBUaGUgc3RhdGUgdG8gc2V0LlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIHNldFN0YXRlKHN0YXRlOiBSZHhBdmF0YXJTdGF0ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLnN0YXRlID0gc3RhdGU7XG4gICAgfVxufVxuXG5leHBvcnQgZW51bSBSZHhBdmF0YXJTdGF0ZSB7XG4gICAgSWRsZSxcbiAgICBMb2FkaW5nLFxuICAgIExvYWRlZCxcbiAgICBFcnJvclxufVxuIl19
@@ -1,6 +0,0 @@
1
- import { inject, InjectionToken } from '@angular/core';
2
- export const RdxAvatarToken = new InjectionToken('RdxAvatarToken');
3
- export function injectAvatar() {
4
- return inject(RdxAvatarToken);
5
- }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hdmF0YXIvc3JjL2F2YXRhci50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQXFCLGdCQUFnQixDQUFDLENBQUM7QUFFdkYsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBSZHhBdmF0YXJEaXJlY3RpdmUgfSBmcm9tICcuL2F2YXRhci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4QXZhdGFyVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4QXZhdGFyRGlyZWN0aXZlPignUmR4QXZhdGFyVG9rZW4nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdEF2YXRhcigpOiBSZHhBdmF0YXJEaXJlY3RpdmUge1xuICAgIHJldHVybiBpbmplY3QoUmR4QXZhdGFyVG9rZW4pO1xufVxuIl19
@@ -1,46 +0,0 @@
1
- import { Directive, ElementRef, HostListener, Input, Optional } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class RdxLabelDirective {
4
- constructor(el) {
5
- this.el = el;
6
- /**
7
- * The id of the element the label is associated with.
8
- * @default '-'
9
- */
10
- this.htmlFor = '';
11
- }
12
- // prevent text selection when double-clicking label
13
- // The main problem with double-clicks in a web app is that
14
- // you will have to create special code to handle this on touch enabled devices.
15
- onMouseDown(event) {
16
- const target = event.target;
17
- // only prevent text selection if clicking inside the label itself
18
- if (['BUTTON', 'INPUT', 'SELECT', 'TEXTAREA'].includes(target.tagName)) {
19
- return;
20
- }
21
- // prevent text selection when double-clicking label
22
- if (this.el.nativeElement.contains(target) && !event.defaultPrevented && event.detail > 1) {
23
- event.preventDefault();
24
- }
25
- }
26
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxLabelDirective, deps: [{ token: i0.ElementRef, optional: true }], target: i0.ɵɵFactoryTarget.Directive }); }
27
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxLabelDirective, isStandalone: true, selector: "label[rdxLabel]", inputs: { htmlFor: "htmlFor" }, host: { listeners: { "mousedown": "onMouseDown($event)" }, properties: { "attr.for": "htmlFor ? htmlFor : null" } }, ngImport: i0 }); }
28
- }
29
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxLabelDirective, decorators: [{
30
- type: Directive,
31
- args: [{
32
- selector: 'label[rdxLabel]',
33
- standalone: true,
34
- host: {
35
- '[attr.for]': 'htmlFor ? htmlFor : null'
36
- }
37
- }]
38
- }], ctorParameters: () => [{ type: i0.ElementRef, decorators: [{
39
- type: Optional
40
- }] }], propDecorators: { htmlFor: [{
41
- type: Input
42
- }], onMouseDown: [{
43
- type: HostListener,
44
- args: ['mousedown', ['$event']]
45
- }] } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFiZWwuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9sYWJlbC9zcmMvbGFiZWwuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVNyRixNQUFNLE9BQU8saUJBQWlCO0lBTzFCLFlBQWdDLEVBQWM7UUFBZCxPQUFFLEdBQUYsRUFBRSxDQUFZO1FBTjlDOzs7V0FHRztRQUNNLFlBQU8sR0FBRyxFQUFFLENBQUM7SUFFMkIsQ0FBQztJQUVsRCxvREFBb0Q7SUFDcEQsMkRBQTJEO0lBQzNELGdGQUFnRjtJQUVoRixXQUFXLENBQUMsS0FBaUI7UUFDekIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFFM0Msa0VBQWtFO1FBQ2xFLElBQUksQ0FBQyxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxVQUFVLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDckUsT0FBTztRQUNYLENBQUM7UUFFRCxvREFBb0Q7UUFDcEQsSUFBSSxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN4RixLQUFLLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDM0IsQ0FBQztJQUNMLENBQUM7OEdBekJRLGlCQUFpQjtrR0FBakIsaUJBQWlCOzsyRkFBakIsaUJBQWlCO2tCQVA3QixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxpQkFBaUI7b0JBQzNCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsWUFBWSxFQUFFLDBCQUEwQjtxQkFDM0M7aUJBQ0o7OzBCQVFnQixRQUFRO3lDQUZaLE9BQU87c0JBQWYsS0FBSztnQkFRTixXQUFXO3NCQURWLFlBQVk7dUJBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIElucHV0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2xhYmVsW3JkeExhYmVsXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5mb3JdJzogJ2h0bWxGb3IgPyBodG1sRm9yIDogbnVsbCdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeExhYmVsRGlyZWN0aXZlIHtcbiAgICAvKipcbiAgICAgKiBUaGUgaWQgb2YgdGhlIGVsZW1lbnQgdGhlIGxhYmVsIGlzIGFzc29jaWF0ZWQgd2l0aC5cbiAgICAgKiBAZGVmYXVsdCAnLSdcbiAgICAgKi9cbiAgICBASW5wdXQoKSBodG1sRm9yID0gJyc7XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBwcml2YXRlIGVsOiBFbGVtZW50UmVmKSB7fVxuXG4gICAgLy8gcHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGVuIGRvdWJsZS1jbGlja2luZyBsYWJlbFxuICAgIC8vIFRoZSBtYWluIHByb2JsZW0gd2l0aCBkb3VibGUtY2xpY2tzIGluIGEgd2ViIGFwcCBpcyB0aGF0XG4gICAgLy8geW91IHdpbGwgaGF2ZSB0byBjcmVhdGUgc3BlY2lhbCBjb2RlIHRvIGhhbmRsZSB0aGlzIG9uIHRvdWNoIGVuYWJsZWQgZGV2aWNlcy5cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWRvd24nLCBbJyRldmVudCddKVxuICAgIG9uTW91c2VEb3duKGV2ZW50OiBNb3VzZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICAvLyBvbmx5IHByZXZlbnQgdGV4dCBzZWxlY3Rpb24gaWYgY2xpY2tpbmcgaW5zaWRlIHRoZSBsYWJlbCBpdHNlbGZcbiAgICAgICAgaWYgKFsnQlVUVE9OJywgJ0lOUFVUJywgJ1NFTEVDVCcsICdURVhUQVJFQSddLmluY2x1ZGVzKHRhcmdldC50YWdOYW1lKSkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gcHJldmVudCB0ZXh0IHNlbGVjdGlvbiB3aGVuIGRvdWJsZS1jbGlja2luZyBsYWJlbFxuICAgICAgICBpZiAodGhpcy5lbC5uYXRpdmVFbGVtZW50LmNvbnRhaW5zKHRhcmdldCkgJiYgIWV2ZW50LmRlZmF1bHRQcmV2ZW50ZWQgJiYgZXZlbnQuZGV0YWlsID4gMSkge1xuICAgICAgICAgICAgZXZlbnQucHJldmVudERlZmF1bHQoKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,5 +0,0 @@
1
- export * from './src/overlay-arrow.directive';
2
- export * from './src/overlay-trigger.directive';
3
- export * from './src/overlay-trigger.token';
4
- export * from './src/overlay.directive';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL292ZXJsYXkvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsNkJBQTZCLENBQUM7QUFDNUMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL292ZXJsYXktYXJyb3cuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL292ZXJsYXktdHJpZ2dlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvb3ZlcmxheS10cmlnZ2VyLnRva2VuJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL292ZXJsYXkuZGlyZWN0aXZlJztcbiJdfQ==
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './index';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy1vdmVybGF5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9vdmVybGF5L3JhZGl4LW5nLXByaW1pdGl2ZXMtb3ZlcmxheS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -1,59 +0,0 @@
1
- import { Directive, ElementRef, inject } from '@angular/core';
2
- import { RdxOverlayArrowToken } from './overlay-arrow.token';
3
- import { injectOverlayTrigger } from './overlay-trigger.token';
4
- import * as i0 from "@angular/core";
5
- export class RdxOverlayArrowDirective {
6
- constructor() {
7
- /**
8
- * Access the arrow element
9
- */
10
- this.elementRef = inject((ElementRef));
11
- /**
12
- * Access the overlay trigger
13
- */
14
- this.overlayTrigger = injectOverlayTrigger();
15
- }
16
- /**
17
- * Register the arrow on init
18
- * @internal
19
- */
20
- ngOnInit() {
21
- this.overlayTrigger.registerArrow(this);
22
- }
23
- /**
24
- * Unregister the arrow on destroy
25
- * @internal
26
- */
27
- ngOnDestroy() {
28
- this.overlayTrigger.unregisterArrow();
29
- }
30
- /**
31
- * Define the position of the arrow.
32
- */
33
- setPosition(placement, arrowX, arrowY) {
34
- const staticSide = {
35
- top: 'bottom',
36
- right: 'left',
37
- bottom: 'top',
38
- left: 'right'
39
- }[placement.split('-')[0]];
40
- Object.assign(this.elementRef.nativeElement.style, {
41
- left: arrowX != null ? `${arrowX}px` : '',
42
- top: arrowY != null ? `${arrowY}px` : '',
43
- right: '',
44
- bottom: '',
45
- [staticSide]: `-${this.elementRef.nativeElement.offsetWidth / 2}px`
46
- });
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxOverlayArrowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxOverlayArrowDirective, isStandalone: true, selector: "[rdxOverlayArrow]", providers: [{ provide: RdxOverlayArrowToken, useExisting: RdxOverlayArrowDirective }], ngImport: i0 }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxOverlayArrowDirective, decorators: [{
52
- type: Directive,
53
- args: [{
54
- selector: '[rdxOverlayArrow]',
55
- standalone: true,
56
- providers: [{ provide: RdxOverlayArrowToken, useExisting: RdxOverlayArrowDirective }]
57
- }]
58
- }] });
59
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1hcnJvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL292ZXJsYXkvc3JjL292ZXJsYXktYXJyb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBcUIsTUFBTSxlQUFlLENBQUM7QUFJakYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDN0QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUJBQXlCLENBQUM7O0FBTy9ELE1BQU0sT0FBTyx3QkFBd0I7SUFMckM7UUFNSTs7V0FFRztRQUNNLGVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztRQUV0RDs7V0FFRztRQUNjLG1CQUFjLEdBQUcsb0JBQW9CLEVBQUUsQ0FBQztLQXFDNUQ7SUFuQ0c7OztPQUdHO0lBQ0gsUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRDs7O09BR0c7SUFDSCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGNBQWMsQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsU0FBb0IsRUFBRSxNQUFlLEVBQUUsTUFBZTtRQUM5RCxNQUFNLFVBQVUsR0FBRztZQUNmLEdBQUcsRUFBRSxRQUFRO1lBQ2IsS0FBSyxFQUFFLE1BQU07WUFDYixNQUFNLEVBQUUsS0FBSztZQUNiLElBQUksRUFBRSxPQUFPO1NBQ2hCLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBVyxDQUFDO1FBRXJDLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFO1lBQy9DLElBQUksRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3pDLEdBQUcsRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ3hDLEtBQUssRUFBRSxFQUFFO1lBQ1QsTUFBTSxFQUFFLEVBQUU7WUFDVixDQUFDLFVBQVUsQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUMsV0FBVyxHQUFHLENBQUMsSUFBSTtTQUN0RSxDQUFDLENBQUM7SUFDUCxDQUFDOzhHQTdDUSx3QkFBd0I7a0dBQXhCLHdCQUF3QixnRUFGdEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxXQUFXLEVBQUUsd0JBQXdCLEVBQUUsQ0FBQzs7MkZBRTVFLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsV0FBVywwQkFBMEIsRUFBRSxDQUFDO2lCQUN4RiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkRlc3Ryb3ksIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcblxuaW1wb3J0IHsgUmR4T3ZlcmxheUFycm93VG9rZW4gfSBmcm9tICcuL292ZXJsYXktYXJyb3cudG9rZW4nO1xuaW1wb3J0IHsgaW5qZWN0T3ZlcmxheVRyaWdnZXIgfSBmcm9tICcuL292ZXJsYXktdHJpZ2dlci50b2tlbic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeE92ZXJsYXlBcnJvd10nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgcHJvdmlkZXJzOiBbeyBwcm92aWRlOiBSZHhPdmVybGF5QXJyb3dUb2tlbiwgdXNlRXhpc3Rpbmc6IFJkeE92ZXJsYXlBcnJvd0RpcmVjdGl2ZSB9XVxufSlcbmV4cG9ydCBjbGFzcyBSZHhPdmVybGF5QXJyb3dEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgLyoqXG4gICAgICogQWNjZXNzIHRoZSBhcnJvdyBlbGVtZW50XG4gICAgICovXG4gICAgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxFbGVtZW50Pik7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIG92ZXJsYXkgdHJpZ2dlclxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheVRyaWdnZXIgPSBpbmplY3RPdmVybGF5VHJpZ2dlcigpO1xuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgdGhlIGFycm93IG9uIGluaXRcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5VHJpZ2dlci5yZWdpc3RlckFycm93KHRoaXMpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgdGhlIGFycm93IG9uIGRlc3Ryb3lcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5VHJpZ2dlci51bnJlZ2lzdGVyQXJyb3coKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgdGhlIHBvc2l0aW9uIG9mIHRoZSBhcnJvdy5cbiAgICAgKi9cbiAgICBzZXRQb3NpdGlvbihwbGFjZW1lbnQ6IFBsYWNlbWVudCwgYXJyb3dYPzogbnVtYmVyLCBhcnJvd1k/OiBudW1iZXIpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgc3RhdGljU2lkZSA9IHtcbiAgICAgICAgICAgIHRvcDogJ2JvdHRvbScsXG4gICAgICAgICAgICByaWdodDogJ2xlZnQnLFxuICAgICAgICAgICAgYm90dG9tOiAndG9wJyxcbiAgICAgICAgICAgIGxlZnQ6ICdyaWdodCdcbiAgICAgICAgfVtwbGFjZW1lbnQuc3BsaXQoJy0nKVswXV0gYXMgc3RyaW5nO1xuXG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5lbGVtZW50UmVmLm5hdGl2ZUVsZW1lbnQuc3R5bGUsIHtcbiAgICAgICAgICAgIGxlZnQ6IGFycm93WCAhPSBudWxsID8gYCR7YXJyb3dYfXB4YCA6ICcnLFxuICAgICAgICAgICAgdG9wOiBhcnJvd1kgIT0gbnVsbCA/IGAke2Fycm93WX1weGAgOiAnJyxcbiAgICAgICAgICAgIHJpZ2h0OiAnJyxcbiAgICAgICAgICAgIGJvdHRvbTogJycsXG4gICAgICAgICAgICBbc3RhdGljU2lkZV06IGAtJHt0aGlzLmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCAvIDJ9cHhgXG4gICAgICAgIH0pO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,3 +0,0 @@
1
- import { InjectionToken } from '@angular/core';
2
- export const RdxOverlayArrowToken = new InjectionToken('RdxOverlayArrowToken');
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS1hcnJvdy50b2tlbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvb3ZlcmxheS9zcmMvb3ZlcmxheS1hcnJvdy50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSS9DLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUNsRCxzQkFBc0IsQ0FDekIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgUmR4T3ZlcmxheUFycm93RGlyZWN0aXZlIH0gZnJvbSAnLi9vdmVybGF5LWFycm93LmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBSZHhPdmVybGF5QXJyb3dUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHhPdmVybGF5QXJyb3dEaXJlY3RpdmU+KFxuICAgICdSZHhPdmVybGF5QXJyb3dUb2tlbidcbik7XG4iXX0=
@@ -1,279 +0,0 @@
1
- /* eslint-disable @angular-eslint/no-input-rename */
2
- import { DomPortalOutlet, TemplatePortal } from '@angular/cdk/portal';
3
- import { ApplicationRef, booleanAttribute, ComponentFactoryResolver, Directive, ElementRef, inject, Injector, Input, numberAttribute, TemplateRef, ViewContainerRef } from '@angular/core';
4
- import { arrow, autoUpdate, computePosition, flip, offset, shift } from '@floating-ui/dom';
5
- import { RdxOverlayTriggerToken } from './overlay-trigger.token';
6
- import * as i0 from "@angular/core";
7
- export class RdxOverlayTriggerDirective {
8
- constructor() {
9
- /**
10
- * Access the application ref
11
- */
12
- this.appRef = inject(ApplicationRef);
13
- /**
14
- * Access the component factory resolver
15
- */
16
- this.componentFactoryResolver = inject(ComponentFactoryResolver);
17
- /**
18
- * Access the injector
19
- */
20
- this.injector = inject(Injector);
21
- /**
22
- * Access the trigger element
23
- */
24
- this.trigger = inject((ElementRef));
25
- /**
26
- * Access the view container
27
- */
28
- this.viewContainer = inject(ViewContainerRef);
29
- /**
30
- * Define if the trigger should be disabled.
31
- * @default false
32
- */
33
- this.disabled = false;
34
- /**
35
- * Define the placement of the overlay relative to the trigger.
36
- * @default 'bottom'
37
- */
38
- this.placement = 'top';
39
- /**
40
- * Define the offset of the overlay relative to the trigger.
41
- * @default 4
42
- */
43
- this.offset = 4;
44
- /**
45
- * Define the delay before the overlay is displayed.
46
- * @default 0
47
- */
48
- this.showDelay = 0;
49
- /**
50
- * Define the delay before the overlay is hidden.
51
- * @default 0
52
- */
53
- this.hideDelay = 0;
54
- /**
55
- * Define whether the overlay should shift when the overlay is near the edge of the viewport.
56
- * @default true
57
- */
58
- this.shift = true;
59
- /**
60
- * Define whether the overlay should flip when there is not enough space for the overlay.
61
- * @default true
62
- */
63
- this.flip = true;
64
- /**
65
- * Define the container in to which the overlay should be attached.
66
- * @default document.body
67
- */
68
- this.container = document.body;
69
- /**
70
- * Store the overlay content instance.
71
- */
72
- this.overlay = null;
73
- /**
74
- * Store the overlay arrow instance.
75
- */
76
- this.arrow = null;
77
- /**
78
- * Store the view ref
79
- */
80
- this.viewRef = null;
81
- /**
82
- * Store the show delay timeout
83
- */
84
- this.showDelayTimeout = null;
85
- /**
86
- * Store the hide delay timeout
87
- */
88
- this.hideDelayTimeout = null;
89
- /**
90
- * Store additional providers to register on the overlay.
91
- */
92
- this.providers = [];
93
- }
94
- /**
95
- * Determine the state of the overlay.
96
- */
97
- get isOpen() {
98
- return !!this.viewRef;
99
- }
100
- /**
101
- * Determine the state of the overlay.
102
- */
103
- get state() {
104
- if (this.showDelayTimeout) {
105
- return 'opening';
106
- }
107
- if (this.hideDelayTimeout) {
108
- return 'closing';
109
- }
110
- return this.isOpen ? 'open' : 'closed';
111
- }
112
- /**
113
- * Create the overlay.
114
- */
115
- createOverlay() {
116
- const domPortal = new DomPortalOutlet(this.container, this.componentFactoryResolver, this.appRef, this.injector);
117
- const templatePortal = new TemplatePortal(this.templateRef, this.viewContainer, undefined, Injector.create({
118
- parent: this.injector,
119
- providers: [
120
- {
121
- provide: RdxOverlayTriggerToken,
122
- useValue: this
123
- },
124
- ...this.providers
125
- ]
126
- }));
127
- this.viewRef = domPortal.attach(templatePortal);
128
- this.viewRef.detectChanges();
129
- this.updateOverlayPosition();
130
- this.showDelayTimeout = null;
131
- }
132
- /**
133
- * Update the overlay position.
134
- */
135
- updateOverlayPosition() {
136
- if (!this.viewRef) {
137
- return;
138
- }
139
- const overlayElement = this.viewRef.rootNodes[0];
140
- const middleware = [];
141
- if (this.offset) {
142
- middleware.push(offset(this.offset));
143
- }
144
- if (this.shift) {
145
- middleware.push(shift());
146
- }
147
- if (this.flip) {
148
- middleware.push(flip());
149
- }
150
- // if there is an arrow defined, we need to add the arrow middleware
151
- if (this.arrow) {
152
- middleware.push(arrow({ element: this.arrow.elementRef.nativeElement }));
153
- }
154
- this.dispose = autoUpdate(this.trigger.nativeElement, overlayElement, async () => {
155
- const position = await computePosition(this.trigger.nativeElement, overlayElement, {
156
- placement: this.placement,
157
- middleware
158
- });
159
- this.overlay?.setPosition(position.x, position.y);
160
- if (position.middlewareData.arrow) {
161
- this.arrow?.setPosition(this.placement, position.middlewareData.arrow.x, position.middlewareData.arrow.y);
162
- }
163
- });
164
- }
165
- /**
166
- * Destroy the overlay.
167
- */
168
- destroyOverlay() {
169
- this.viewRef?.destroy();
170
- this.viewRef = null;
171
- this.dispose?.();
172
- this.hideDelayTimeout = null;
173
- }
174
- /**
175
- * Show the overlay.
176
- */
177
- show() {
178
- if (this.disabled || this.isOpen) {
179
- return;
180
- }
181
- if (this.hideDelayTimeout) {
182
- clearTimeout(this.hideDelayTimeout);
183
- this.hideDelayTimeout = null;
184
- }
185
- this.showDelayTimeout = window.setTimeout(() => this.createOverlay(), this.showDelay);
186
- }
187
- /**
188
- * Hide the overlay.
189
- */
190
- hide() {
191
- if (!this.isOpen) {
192
- return;
193
- }
194
- if (this.showDelayTimeout) {
195
- clearTimeout(this.showDelayTimeout);
196
- this.showDelayTimeout = null;
197
- }
198
- this.hideDelayTimeout = window.setTimeout(() => this.destroyOverlay(), this.hideDelay);
199
- }
200
- /**
201
- * Register the overlay.
202
- * @param overlay The overlay to register.
203
- * @internal
204
- */
205
- registerOverlay(overlay) {
206
- this.overlay = overlay;
207
- }
208
- /**
209
- * Unregister the overlay.
210
- * @internal
211
- */
212
- unregisterOverlay() {
213
- this.overlay = null;
214
- }
215
- /**
216
- * Register the arrow.
217
- * @param arrow The arrow to register.
218
- * @internal
219
- */
220
- registerArrow(arrow) {
221
- this.arrow = arrow;
222
- }
223
- /**
224
- * Unregister the arrow.
225
- * @internal
226
- */
227
- unregisterArrow() {
228
- this.arrow = null;
229
- }
230
- /**
231
- * Register a provider on the overlay.
232
- * @param provider The provider to register.
233
- * @internal
234
- */
235
- registerProvider(provider) {
236
- this.providers.push(provider);
237
- }
238
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxOverlayTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
239
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RdxOverlayTriggerDirective, isStandalone: true, selector: "[rdxOverlayTrigger]", inputs: { templateRef: ["rdxOverlayTrigger", "templateRef"], disabled: ["rdxOverlayDisabled", "disabled", booleanAttribute], placement: ["rdxOverlayPlacement", "placement"], offset: ["rdxOverlayOffset", "offset", numberAttribute], showDelay: ["rdxOverlayShowDelay", "showDelay", numberAttribute], hideDelay: ["rdxOverlayHideDelay", "hideDelay", numberAttribute], shift: ["rdxOverlayShift", "shift", booleanAttribute], flip: ["rdxOverlayFlip", "flip", booleanAttribute], container: ["rdxOverlayContainer", "container"] }, host: { properties: { "attr.data-state": "state" } }, exportAs: ["rdxOverlayTrigger"], ngImport: i0 }); }
240
- }
241
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxOverlayTriggerDirective, decorators: [{
242
- type: Directive,
243
- args: [{
244
- selector: '[rdxOverlayTrigger]',
245
- standalone: true,
246
- exportAs: 'rdxOverlayTrigger',
247
- host: {
248
- '[attr.data-state]': 'state'
249
- }
250
- }]
251
- }], propDecorators: { templateRef: [{
252
- type: Input,
253
- args: [{ alias: 'rdxOverlayTrigger', required: true }]
254
- }], disabled: [{
255
- type: Input,
256
- args: [{ alias: 'rdxOverlayDisabled', transform: booleanAttribute }]
257
- }], placement: [{
258
- type: Input,
259
- args: ['rdxOverlayPlacement']
260
- }], offset: [{
261
- type: Input,
262
- args: [{ alias: 'rdxOverlayOffset', transform: numberAttribute }]
263
- }], showDelay: [{
264
- type: Input,
265
- args: [{ alias: 'rdxOverlayShowDelay', transform: numberAttribute }]
266
- }], hideDelay: [{
267
- type: Input,
268
- args: [{ alias: 'rdxOverlayHideDelay', transform: numberAttribute }]
269
- }], shift: [{
270
- type: Input,
271
- args: [{ alias: 'rdxOverlayShift', transform: booleanAttribute }]
272
- }], flip: [{
273
- type: Input,
274
- args: [{ alias: 'rdxOverlayFlip', transform: booleanAttribute }]
275
- }], container: [{
276
- type: Input,
277
- args: ['rdxOverlayContainer']
278
- }] } });
279
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvb3ZlcmxheS9zcmMvb3ZlcmxheS10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxjQUFjLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RSxPQUFPLEVBQ0gsY0FBYyxFQUNkLGdCQUFnQixFQUNoQix3QkFBd0IsRUFDeEIsU0FBUyxFQUNULFVBQVUsRUFFVixNQUFNLEVBQ04sUUFBUSxFQUNSLEtBQUssRUFDTCxlQUFlLEVBRWYsV0FBVyxFQUNYLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQ0gsS0FBSyxFQUNMLFVBQVUsRUFDVixlQUFlLEVBQ2YsSUFBSSxFQUVKLE1BQU0sRUFFTixLQUFLLEVBQ1IsTUFBTSxrQkFBa0IsQ0FBQztBQUcxQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7QUFXakUsTUFBTSxPQUFPLDBCQUEwQjtJQVJ2QztRQVNJOztXQUVHO1FBQ2MsV0FBTSxHQUFHLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVqRDs7V0FFRztRQUNjLDZCQUF3QixHQUFHLE1BQU0sQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO1FBRTdFOztXQUVHO1FBQ2MsYUFBUSxHQUFHLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUU3Qzs7V0FFRztRQUNjLFlBQU8sR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUF1QixDQUFBLENBQUMsQ0FBQztRQUUzRDs7V0FFRztRQUNjLGtCQUFhLEdBQUcsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFPMUQ7OztXQUdHO1FBQ2tFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEY7OztXQUdHO1FBQzJCLGNB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S0FBSyxFQUFFLHFCQUFxQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBTUQsS0FBSztzQkFBdEUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxpQkFBaUIsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTUMsSUFBSTtzQkFBcEUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTWpDLFNBQVM7c0JBQXRDLEtBQUs7dUJBQUMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgQGFuZ3VsYXItZXNsaW50L25vLWlucHV0LXJlbmFtZSAqL1xuaW1wb3J0IHsgRG9tUG9ydGFsT3V0bGV0LCBUZW1wbGF0ZVBvcnRhbCB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9wb3J0YWwnO1xuaW1wb3J0IHtcbiAgICBBcHBsaWNhdGlvblJlZixcbiAgICBib29sZWFuQXR0cmlidXRlLFxuICAgIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICBEaXJlY3RpdmUsXG4gICAgRWxlbWVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWYsXG4gICAgaW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIElucHV0LFxuICAgIG51bWJlckF0dHJpYnV0ZSxcbiAgICBTdGF0aWNQcm92aWRlcixcbiAgICBUZW1wbGF0ZVJlZixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge1xuICAgIGFycm93LFxuICAgIGF1dG9VcGRhdGUsXG4gICAgY29tcHV0ZVBvc2l0aW9uLFxuICAgIGZsaXAsXG4gICAgTWlkZGxld2FyZSxcbiAgICBvZmZzZXQsXG4gICAgUGxhY2VtZW50LFxuICAgIHNoaWZ0XG59IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuXG5pbXBvcnQgdHlwZSB7IFJkeE92ZXJsYXlBcnJvd0RpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmxheS1hcnJvdy5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgUmR4T3ZlcmxheVRyaWdnZXJUb2tlbiB9IGZyb20gJy4vb3ZlcmxheS10cmlnZ2VyLnRva2VuJztcbmltcG9ydCB0eXBlIHsgUmR4T3ZlcmxheURpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmxheS5kaXJlY3RpdmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhPdmVybGF5VHJpZ2dlcl0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdyZHhPdmVybGF5VHJpZ2dlcicsXG4gICAgaG9zdDoge1xuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAnc3RhdGUnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSB7XG4gICAgLyoqXG4gICAgICogQWNjZXNzIHRoZSBhcHBsaWNhdGlvbiByZWZcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGFwcFJlZiA9IGluamVjdChBcHBsaWNhdGlvblJlZik7XG5cbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGNvbXBvbmVudCBmYWN0b3J5IHJlc29sdmVyXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIgPSBpbmplY3QoQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcblxuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgaW5qZWN0b3JcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IGluamVjdG9yID0gaW5qZWN0KEluamVjdG9yKTtcblxuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgdHJpZ2dlciBlbGVtZW50XG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmlnZ2VyID0gaW5qZWN0KEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+KTtcblxuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgdmlldyBjb250YWluZXJcbiAgICAgKi9cbiAgICBwcml2YXRlIHJlYWRvbmx5IHZpZXdDb250YWluZXIgPSBpbmplY3QoVmlld0NvbnRhaW5lclJlZik7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgdGhlIG92ZXJsYXkgdG8gZGlzcGxheSB3aGVuIHRoZSB0cmlnZ2VyIGlzIGFjdGl2YXRlZC5cbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3JkeE92ZXJsYXlUcmlnZ2VyJywgcmVxdWlyZWQ6IHRydWUgfSkgdGVtcGxhdGVSZWYhOiBUZW1wbGF0ZVJlZjx2b2lkPjtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSBpZiB0aGUgdHJpZ2dlciBzaG91bGQgYmUgZGlzYWJsZWQuXG4gICAgICogQGRlZmF1bHQgZmFsc2VcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3JkeE92ZXJsYXlEaXNhYmxlZCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBkaXNhYmxlZCA9IGZhbHNlO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBwbGFjZW1lbnQgb2YgdGhlIG92ZXJsYXkgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAgICogQGRlZmF1bHQgJ2JvdHRvbSdcbiAgICAgKi9cbiAgICBASW5wdXQoJ3JkeE92ZXJsYXlQbGFjZW1lbnQnKSBwbGFjZW1lbnQ6IFBsYWNlbWVudCA9ICd0b3AnO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBvZmZzZXQgb2YgdGhlIG92ZXJsYXkgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAgICogQGRlZmF1bHQgNFxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAncmR4T3ZlcmxheU9mZnNldCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIG9mZnNldCA9IDQ7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgdGhlIGRlbGF5IGJlZm9yZSB0aGUgb3ZlcmxheSBpcyBkaXNwbGF5ZWQuXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAncmR4T3ZlcmxheVNob3dEZWxheScsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIHNob3dEZWxheSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgdGhlIGRlbGF5IGJlZm9yZSB0aGUgb3ZlcmxheSBpcyBoaWRkZW4uXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAncmR4T3ZlcmxheUhpZGVEZWxheScsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIGhpZGVEZWxheSA9IDA7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgd2hldGhlciB0aGUgb3ZlcmxheSBzaG91bGQgc2hpZnQgd2hlbiB0aGUgb3ZlcmxheSBpcyBuZWFyIHRoZSBlZGdlIG9mIHRoZSB2aWV3cG9ydC5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhPdmVybGF5U2hpZnQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgc2hpZnQgPSB0cnVlO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHdoZXRoZXIgdGhlIG92ZXJsYXkgc2hvdWxkIGZsaXAgd2hlbiB0aGVyZSBpcyBub3QgZW5vdWdoIHNwYWNlIGZvciB0aGUgb3ZlcmxheS5cbiAgICAgKiBAZGVmYXVsdCB0cnVlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhPdmVybGF5RmxpcCcsIHRyYW5zZm9ybTogYm9vbGVhbkF0dHJpYnV0ZSB9KSBmbGlwID0gdHJ1ZTtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY29udGFpbmVyIGluIHRvIHdoaWNoIHRoZSBvdmVybGF5IHNob3VsZCBiZSBhdHRhY2hlZC5cbiAgICAgKiBAZGVmYXVsdCBkb2N1bWVudC5ib2R5XG4gICAgICovXG4gICAgQElucHV0KCdyZHhPdmVybGF5Q29udGFpbmVyJykgY29udGFpbmVyOiBIVE1MRWxlbWVudCA9IGRvY3VtZW50LmJvZHk7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB0aGUgb3ZlcmxheSBjb250ZW50IGluc3RhbmNlLlxuICAgICAqL1xuICAgIHByaXZhdGUgb3ZlcmxheTogUmR4T3ZlcmxheURpcmVjdGl2ZSB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU3RvcmUgdGhlIG92ZXJsYXkgYXJyb3cgaW5zdGFuY2UuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcnJvdzogUmR4T3ZlcmxheUFycm93RGlyZWN0aXZlIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB0aGUgdmlldyByZWZcbiAgICAgKi9cbiAgICBwcml2YXRlIHZpZXdSZWY6IEVtYmVkZGVkVmlld1JlZjx2b2lkPiB8IG51bGwgPSBudWxsO1xuXG4gICAgLyoqXG4gICAgICogU3RvcmUgdGhlIHNob3cgZGVsYXkgdGltZW91dFxuICAgICAqL1xuICAgIHByaXZhdGUgc2hvd0RlbGF5VGltZW91dDogbnVtYmVyIHwgbnVsbCA9IG51bGw7XG5cbiAgICAvKipcbiAgICAgKiBTdG9yZSB0aGUgaGlkZSBkZWxheSB0aW1lb3V0XG4gICAgICovXG4gICAgcHJpdmF0ZSBoaWRlRGVsYXlUaW1lb3V0OiBudW1iZXIgfCBudWxsID0gbnVsbDtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlIHRoZSBkaXNwb3NlIGZ1bmN0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSBkaXNwb3NlPzogKCkgPT4gdm9pZDtcblxuICAgIC8qKlxuICAgICAqIFN0b3JlIGFkZGl0aW9uYWwgcHJvdmlkZXJzIHRvIHJlZ2lzdGVyIG9uIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgcHJvdmlkZXJzOiBTdGF0aWNQcm92aWRlcltdID0gW107XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmUgdGhlIHN0YXRlIG9mIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIHByaXZhdGUgZ2V0IGlzT3BlbigpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuICEhdGhpcy52aWV3UmVmO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSB0aGUgc3RhdGUgb2YgdGhlIG92ZXJsYXkuXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGdldCBzdGF0ZSgpOiAnY2xvc2VkJyB8ICdvcGVuaW5nJyB8ICdvcGVuJyB8ICdjbG9zaW5nJyB7XG4gICAgICAgIGlmICh0aGlzLnNob3dEZWxheVRpbWVvdXQpIHtcbiAgICAgICAgICAgIHJldHVybiAnb3BlbmluZyc7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5oaWRlRGVsYXlUaW1lb3V0KSB7XG4gICAgICAgICAgICByZXR1cm4gJ2Nsb3NpbmcnO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuaXNPcGVuID8gJ29wZW4nIDogJ2Nsb3NlZCc7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIHRoZSBvdmVybGF5LlxuICAgICAqL1xuICAgIHByaXZhdGUgY3JlYXRlT3ZlcmxheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZG9tUG9ydGFsID0gbmV3IERvbVBvcnRhbE91dGxldChcbiAgICAgICAgICAgIHRoaXMuY29udGFpbmVyLFxuICAgICAgICAgICAgdGhpcy5jb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgICAgICAgICB0aGlzLmFwcFJlZixcbiAgICAgICAgICAgIHRoaXMuaW5qZWN0b3JcbiAgICAgICAgKTtcblxuICAgICAgICBjb25zdCB0ZW1wbGF0ZVBvcnRhbCA9IG5ldyBUZW1wbGF0ZVBvcnRhbChcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVSZWYsXG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXIsXG4gICAgICAgICAgICB1bmRlZmluZWQsXG4gICAgICAgICAgICBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICAgICAgICAgIHBhcmVudDogdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUmR4T3ZlcmxheVRyaWdnZXJUb2tlbixcbiAgICAgICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiB0aGlzXG4gICAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMucHJvdmlkZXJzXG4gICAgICAgICAgICAgICAgXVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnZpZXdSZWYgPSBkb21Qb3J0YWwuYXR0YWNoKHRlbXBsYXRlUG9ydGFsKTtcbiAgICAgICAgdGhpcy52aWV3UmVmLmRldGVjdENoYW5nZXMoKTtcblxuICAgICAgICB0aGlzLnVwZGF0ZU92ZXJsYXlQb3NpdGlvbigpO1xuICAgICAgICB0aGlzLnNob3dEZWxheVRpbWVvdXQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVwZGF0ZSB0aGUgb3ZlcmxheSBwb3NpdGlvbi5cbiAgICAgKi9cbiAgICBwcml2YXRlIHVwZGF0ZU92ZXJsYXlQb3NpdGlvbigpOiB2b2lkIHtcbiAgICAgICAgaWYgKCF0aGlzLnZpZXdSZWYpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGNvbnN0IG92ZXJsYXlFbGVtZW50ID0gdGhpcy52aWV3UmVmLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcblxuICAgICAgICBjb25zdCBtaWRkbGV3YXJlOiBNaWRkbGV3YXJlW10gPSBbXTtcblxuICAgICAgICBpZiAodGhpcy5vZmZzZXQpIHtcbiAgICAgICAgICAgIG1pZGRsZXdhcmUucHVzaChvZmZzZXQodGhpcy5vZmZzZXQpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLnNoaWZ0KSB7XG4gICAgICAgICAgICBtaWRkbGV3YXJlLnB1c2goc2hpZnQoKSk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5mbGlwKSB7XG4gICAgICAgICAgICBtaWRkbGV3YXJlLnB1c2goZmxpcCgpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIC8vIGlmIHRoZXJlIGlzIGFuIGFycm93IGRlZmluZWQsIHdlIG5lZWQgdG8gYWRkIHRoZSBhcnJvdyBtaWRkbGV3YXJlXG4gICAgICAgIGlmICh0aGlzLmFycm93KSB7XG4gICAgICAgICAgICBtaWRkbGV3YXJlLnB1c2goYXJyb3coeyBlbGVtZW50OiB0aGlzLmFycm93LmVsZW1lbnRSZWYubmF0aXZlRWxlbWVudCB9KSk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmRpc3Bvc2UgPSBhdXRvVXBkYXRlKHRoaXMudHJpZ2dlci5uYXRpdmVFbGVtZW50LCBvdmVybGF5RWxlbWVudCwgYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgcG9zaXRpb24gPSBhd2FpdCBjb21wdXRlUG9zaXRpb24odGhpcy50cmlnZ2VyLm5hdGl2ZUVsZW1lbnQsIG92ZXJsYXlFbGVtZW50LCB7XG4gICAgICAgICAgICAgICAgcGxhY2VtZW50OiB0aGlzLnBsYWNlbWVudCxcbiAgICAgICAgICAgICAgICBtaWRkbGV3YXJlXG4gICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgdGhpcy5vdmVybGF5Py5zZXRQb3NpdGlvbihwb3NpdGlvbi54LCBwb3NpdGlvbi55KTtcblxuICAgICAgICAgICAgaWYgKHBvc2l0aW9uLm1pZGRsZXdhcmVEYXRhLmFycm93KSB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcnJvdz8uc2V0UG9zaXRpb24oXG4gICAgICAgICAgICAgICAgICAgIHRoaXMucGxhY2VtZW50LFxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbi5taWRkbGV3YXJlRGF0YS5hcnJvdy54LFxuICAgICAgICAgICAgICAgICAgICBwb3NpdGlvbi5taWRkbGV3YXJlRGF0YS5hcnJvdy55XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRGVzdHJveSB0aGUgb3ZlcmxheS5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRlc3Ryb3lPdmVybGF5KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnZpZXdSZWY/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy52aWV3UmVmID0gbnVsbDtcblxuICAgICAgICB0aGlzLmRpc3Bvc2U/LigpO1xuICAgICAgICB0aGlzLmhpZGVEZWxheVRpbWVvdXQgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFNob3cgdGhlIG92ZXJsYXkuXG4gICAgICovXG4gICAgc2hvdygpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQgfHwgdGhpcy5pc09wZW4pIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmhpZGVEZWxheVRpbWVvdXQpIHtcbiAgICAgICAgICAgIGNsZWFyVGltZW91dCh0aGlzLmhpZGVEZWxheVRpbWVvdXQpO1xuICAgICAgICAgICAgdGhpcy5oaWRlRGVsYXlUaW1lb3V0ID0gbnVsbDtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuc2hvd0RlbGF5VGltZW91dCA9IHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHRoaXMuY3JlYXRlT3ZlcmxheSgpLCB0aGlzLnNob3dEZWxheSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgb3ZlcmxheS5cbiAgICAgKi9cbiAgICBoaWRlKCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMuaXNPcGVuKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5zaG93RGVsYXlUaW1lb3V0KSB7XG4gICAgICAgICAgICBjbGVhclRpbWVvdXQodGhpcy5zaG93RGVsYXlUaW1lb3V0KTtcbiAgICAgICAgICAgIHRoaXMuc2hvd0RlbGF5VGltZW91dCA9IG51bGw7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmhpZGVEZWxheVRpbWVvdXQgPSB3aW5kb3cuc2V0VGltZW91dCgoKSA9PiB0aGlzLmRlc3Ryb3lPdmVybGF5KCksIHRoaXMuaGlkZURlbGF5KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZWdpc3RlciB0aGUgb3ZlcmxheS5cbiAgICAgKiBAcGFyYW0gb3ZlcmxheSBUaGUgb3ZlcmxheSB0byByZWdpc3Rlci5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICByZWdpc3Rlck92ZXJsYXkob3ZlcmxheTogUmR4T3ZlcmxheURpcmVjdGl2ZSk6IHZvaWQge1xuICAgICAgICB0aGlzLm92ZXJsYXkgPSBvdmVybGF5O1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFVucmVnaXN0ZXIgdGhlIG92ZXJsYXkuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgdW5yZWdpc3Rlck92ZXJsYXkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3ZlcmxheSA9IG51bGw7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogUmVnaXN0ZXIgdGhlIGFycm93LlxuICAgICAqIEBwYXJhbSBhcnJvdyBUaGUgYXJyb3cgdG8gcmVnaXN0ZXIuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcmVnaXN0ZXJBcnJvdyhhcnJvdzogUmR4T3ZlcmxheUFycm93RGlyZWN0aXZlKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXJyb3cgPSBhcnJvdztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBVbnJlZ2lzdGVyIHRoZSBhcnJvdy5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICB1bnJlZ2lzdGVyQXJyb3coKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXJyb3cgPSBudWxsO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlZ2lzdGVyIGEgcHJvdmlkZXIgb24gdGhlIG92ZXJsYXkuXG4gICAgICogQHBhcmFtIHByb3ZpZGVyIFRoZSBwcm92aWRlciB0byByZWdpc3Rlci5cbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICByZWdpc3RlclByb3ZpZGVyKHByb3ZpZGVyOiBTdGF0aWNQcm92aWRlcik6IHZvaWQge1xuICAgICAgICB0aGlzLnByb3ZpZGVycy5wdXNoKHByb3ZpZGVyKTtcbiAgICB9XG59XG4iXX0=
@@ -1,9 +0,0 @@
1
- import { inject, InjectionToken } from '@angular/core';
2
- export const RdxOverlayTriggerToken = new InjectionToken('RdxOverlayTriggerToken');
3
- /**
4
- * Inject the overlay trigger directive
5
- */
6
- export function injectOverlayTrigger() {
7
- return inject(RdxOverlayTriggerToken);
8
- }
9
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcmxheS10cmlnZ2VyLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9vdmVybGF5L3NyYy9vdmVybGF5LXRyaWdnZXIudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJdkQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3BELHdCQUF3QixDQUMzQixDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2hDLE9BQU8sTUFBTSxDQUFDLHNCQUFzQixDQUFDLENBQUM7QUFDMUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBSZHhPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSB9IGZyb20gJy4vb3ZlcmxheS10cmlnZ2VyLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBSZHhPdmVybGF5VHJpZ2dlclRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeE92ZXJsYXlUcmlnZ2VyRGlyZWN0aXZlPihcbiAgICAnUmR4T3ZlcmxheVRyaWdnZXJUb2tlbidcbik7XG5cbi8qKlxuICogSW5qZWN0IHRoZSBvdmVybGF5IHRyaWdnZXIgZGlyZWN0aXZlXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBpbmplY3RPdmVybGF5VHJpZ2dlcigpOiBSZHhPdmVybGF5VHJpZ2dlckRpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIGluamVjdChSZHhPdmVybGF5VHJpZ2dlclRva2VuKTtcbn1cbiJdfQ==