@radix-ng/primitives 0.2.0 → 0.4.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 (123) hide show
  1. package/avatar/README.md +1 -0
  2. package/avatar/index.d.ts +4 -0
  3. package/avatar/src/avatar-fallback.directive.d.ts +34 -0
  4. package/avatar/src/avatar-image.directive.d.ts +17 -0
  5. package/avatar/src/avatar.config.d.ts +12 -0
  6. package/avatar/src/avatar.directive.d.ts +22 -0
  7. package/avatar/src/avatar.token.d.ts +4 -0
  8. package/checkbox/index.d.ts +1 -1
  9. package/checkbox/src/checkbox-indicator.directive.d.ts +4 -4
  10. package/checkbox/src/checkbox.directive.d.ts +3 -3
  11. package/checkbox/src/checkbox.token.d.ts +3 -3
  12. package/esm2022/avatar/index.mjs +5 -0
  13. package/esm2022/avatar/radix-ng-primitives-avatar.mjs +5 -0
  14. package/esm2022/avatar/src/avatar-fallback.directive.mjs +61 -0
  15. package/esm2022/avatar/src/avatar-image.directive.mjs +50 -0
  16. package/esm2022/avatar/src/avatar.config.mjs +17 -0
  17. package/esm2022/avatar/src/avatar.directive.mjs +38 -0
  18. package/esm2022/avatar/src/avatar.token.mjs +6 -0
  19. package/esm2022/checkbox/index.mjs +2 -2
  20. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +5 -5
  21. package/esm2022/checkbox/src/checkbox.directive.mjs +11 -11
  22. package/esm2022/checkbox/src/checkbox.token.mjs +4 -4
  23. package/esm2022/label/src/label.directive.mjs +5 -5
  24. package/esm2022/overlay/index.mjs +5 -0
  25. package/esm2022/overlay/radix-ng-primitives-overlay.mjs +5 -0
  26. package/esm2022/overlay/src/overlay-arrow.directive.mjs +59 -0
  27. package/esm2022/overlay/src/overlay-arrow.token.mjs +3 -0
  28. package/esm2022/overlay/src/overlay-trigger.directive.mjs +279 -0
  29. package/esm2022/overlay/src/overlay-trigger.token.mjs +9 -0
  30. package/esm2022/overlay/src/overlay.directive.mjs +51 -0
  31. package/esm2022/overlay/src/overlay.token.mjs +3 -0
  32. package/esm2022/progress/src/progress-indicator.directive.mjs +5 -5
  33. package/esm2022/progress/src/progress.directive.mjs +7 -7
  34. package/esm2022/progress/src/progress.token.mjs +4 -4
  35. package/esm2022/radio/index.mjs +2 -2
  36. package/esm2022/radio/src/radio-group.directive.mjs +14 -14
  37. package/esm2022/radio/src/radio-group.token.mjs +4 -4
  38. package/esm2022/radio/src/radio-indicator.directive.mjs +5 -5
  39. package/esm2022/radio/src/radio-item.directive.mjs +11 -11
  40. package/esm2022/radio/src/radio-item.token.mjs +4 -4
  41. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +8 -8
  42. package/esm2022/roving-focus/src/roving-focus-group.token.mjs +4 -4
  43. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +8 -8
  44. package/esm2022/roving-focus/src/roving-focus-item.token.mjs +4 -4
  45. package/esm2022/separator/src/separator.directive.mjs +6 -6
  46. package/esm2022/switch/index.mjs +2 -2
  47. package/esm2022/switch/src/switch-thumb.directive.mjs +5 -5
  48. package/esm2022/switch/src/switch.directive.mjs +11 -11
  49. package/esm2022/switch/src/switch.token.mjs +4 -4
  50. package/esm2022/toggle/index.mjs +2 -0
  51. package/esm2022/toggle/radix-ng-primitives-toggle.mjs +5 -0
  52. package/esm2022/toggle/src/toggle.directive.mjs +65 -0
  53. package/esm2022/tooltip/index.mjs +5 -0
  54. package/esm2022/tooltip/radix-ng-primitives-tooltip.mjs +5 -0
  55. package/esm2022/tooltip/src/tooltip-arrow.directive.mjs +17 -0
  56. package/esm2022/tooltip/src/tooltip-trigger.directive.mjs +148 -0
  57. package/esm2022/tooltip/src/tooltip-trigger.token.mjs +6 -0
  58. package/esm2022/tooltip/src/tooltip.config.mjs +31 -0
  59. package/esm2022/tooltip/src/tooltip.directive.mjs +46 -0
  60. package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +5 -5
  61. package/fesm2022/radix-ng-primitives-avatar.mjs +167 -0
  62. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -0
  63. package/fesm2022/radix-ng-primitives-checkbox.mjs +32 -32
  64. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  65. package/fesm2022/radix-ng-primitives-label.mjs +5 -5
  66. package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
  67. package/fesm2022/radix-ng-primitives-overlay.mjs +399 -0
  68. package/fesm2022/radix-ng-primitives-overlay.mjs.map +1 -0
  69. package/fesm2022/radix-ng-primitives-progress.mjs +12 -12
  70. package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
  71. package/fesm2022/radix-ng-primitives-radio.mjs +48 -48
  72. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  73. package/fesm2022/radix-ng-primitives-roving-focus.mjs +15 -15
  74. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
  75. package/fesm2022/radix-ng-primitives-separator.mjs +5 -5
  76. package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
  77. package/fesm2022/radix-ng-primitives-switch.mjs +34 -34
  78. package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
  79. package/fesm2022/radix-ng-primitives-toggle.mjs +72 -0
  80. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -0
  81. package/fesm2022/radix-ng-primitives-tooltip.mjs +242 -0
  82. package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -0
  83. package/fesm2022/radix-ng-primitives-visually-hidden.mjs +5 -5
  84. package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
  85. package/label/src/label.directive.d.ts +3 -3
  86. package/overlay/README.md +1 -0
  87. package/overlay/index.d.ts +4 -0
  88. package/overlay/src/overlay-arrow.directive.d.ts +29 -0
  89. package/overlay/src/overlay-arrow.token.d.ts +3 -0
  90. package/overlay/src/overlay-trigger.directive.d.ts +163 -0
  91. package/overlay/src/overlay-trigger.token.d.ts +7 -0
  92. package/overlay/src/overlay.directive.d.ts +29 -0
  93. package/overlay/src/overlay.token.d.ts +3 -0
  94. package/package.json +29 -4
  95. package/progress/src/progress-indicator.directive.d.ts +4 -4
  96. package/progress/src/progress.directive.d.ts +3 -3
  97. package/progress/src/progress.token.d.ts +3 -3
  98. package/radio/index.d.ts +1 -1
  99. package/radio/src/radio-group.directive.d.ts +3 -3
  100. package/radio/src/radio-group.token.d.ts +3 -3
  101. package/radio/src/radio-indicator.directive.d.ts +5 -5
  102. package/radio/src/radio-item.directive.d.ts +4 -4
  103. package/radio/src/radio-item.token.d.ts +3 -3
  104. package/roving-focus/src/roving-focus-group.directive.d.ts +7 -7
  105. package/roving-focus/src/roving-focus-group.token.d.ts +3 -3
  106. package/roving-focus/src/roving-focus-item.directive.d.ts +3 -3
  107. package/roving-focus/src/roving-focus-item.token.d.ts +3 -3
  108. package/separator/src/separator.directive.d.ts +3 -3
  109. package/switch/index.d.ts +1 -1
  110. package/switch/src/switch-thumb.directive.d.ts +4 -4
  111. package/switch/src/switch.directive.d.ts +3 -3
  112. package/switch/src/switch.token.d.ts +3 -3
  113. package/toggle/README.md +3 -0
  114. package/toggle/index.d.ts +1 -0
  115. package/toggle/src/toggle.directive.d.ts +30 -0
  116. package/tooltip/README.md +1 -0
  117. package/tooltip/index.d.ts +4 -0
  118. package/tooltip/src/tooltip-arrow.directive.d.ts +6 -0
  119. package/tooltip/src/tooltip-trigger.directive.d.ts +79 -0
  120. package/tooltip/src/tooltip-trigger.token.d.ts +4 -0
  121. package/tooltip/src/tooltip.config.d.ts +46 -0
  122. package/tooltip/src/tooltip.directive.d.ts +17 -0
  123. package/visually-hidden/src/visually-hidden.directive.d.ts +3 -3
@@ -1,6 +1,6 @@
1
- import { InjectionToken, inject } from '@angular/core';
2
- export const SwitchToken = new InjectionToken('SwitchToken');
1
+ import { inject, InjectionToken } from '@angular/core';
2
+ export const RdxSwitchToken = new InjectionToken('RdxSwitchToken');
3
3
  export function injectSwitch() {
4
- return inject(SwitchToken);
4
+ return inject(RdxSwitchToken);
5
5
  }
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zd2l0Y2gvc3JjL3N3aXRjaC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd2RCxNQUFNLENBQUMsTUFBTSxXQUFXLEdBQUcsSUFBSSxjQUFjLENBQWtCLGFBQWEsQ0FBQyxDQUFDO0FBRTlFLE1BQU0sVUFBVSxZQUFZO0lBQ3hCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0FBQy9CLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiwgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7IFN3aXRjaERpcmVjdGl2ZSB9IGZyb20gJy4vc3dpdGNoLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCBjb25zdCBTd2l0Y2hUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxTd2l0Y2hEaXJlY3RpdmU+KCdTd2l0Y2hUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0U3dpdGNoKCk6IFN3aXRjaERpcmVjdGl2ZSB7XG4gICAgcmV0dXJuIGluamVjdChTd2l0Y2hUb2tlbik7XG59XG4iXX0=
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3dpdGNoLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9zd2l0Y2gvc3JjL3N3aXRjaC50b2tlbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl2RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQXFCLGdCQUFnQixDQUFDLENBQUM7QUFFdkYsTUFBTSxVQUFVLFlBQVk7SUFDeEIsT0FBTyxNQUFNLENBQUMsY0FBYyxDQUFDLENBQUM7QUFDbEMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHR5cGUgeyBSZHhTd2l0Y2hEaXJlY3RpdmUgfSBmcm9tICcuL3N3aXRjaC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4U3dpdGNoVG9rZW4gPSBuZXcgSW5qZWN0aW9uVG9rZW48UmR4U3dpdGNoRGlyZWN0aXZlPignUmR4U3dpdGNoVG9rZW4nKTtcblxuZXhwb3J0IGZ1bmN0aW9uIGluamVjdFN3aXRjaCgpOiBSZHhTd2l0Y2hEaXJlY3RpdmUge1xuICAgIHJldHVybiBpbmplY3QoUmR4U3dpdGNoVG9rZW4pO1xufVxuIl19
@@ -0,0 +1,2 @@
1
+ export * from './src/toggle.directive';
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RvZ2dsZS9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLHdCQUF3QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9nZ2xlLmRpcmVjdGl2ZSc7XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy10b2dnbGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3RvZ2dsZS9yYWRpeC1uZy1wcmltaXRpdmVzLXRvZ2dsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,65 @@
1
+ import { booleanAttribute, Directive, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ let uniqueId = 0;
4
+ export class RdxToggleDirective {
5
+ constructor() {
6
+ /**
7
+ * Whether the toggle is pressed.
8
+ * @default false
9
+ */
10
+ this.pressed = false;
11
+ /**
12
+ * Whether the toggle is disabled.
13
+ * @default false
14
+ */
15
+ this.disabled = false;
16
+ /**
17
+ * Determine element id
18
+ */
19
+ this.id = 'rdx-toggle-' + uniqueId++;
20
+ /**
21
+ * Event emitted when the toggle is pressed.
22
+ */
23
+ this.pressedChange = new EventEmitter();
24
+ }
25
+ /**
26
+ * Toggle the pressed state.
27
+ */
28
+ toggle() {
29
+ if (this.disabled) {
30
+ return;
31
+ }
32
+ this.pressed = !this.pressed;
33
+ this.pressedChange.emit(this.pressed);
34
+ }
35
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RdxToggleDirective, isStandalone: true, selector: "button[rdxToggle]", inputs: { pressed: ["rdxTogglePressed", "pressed", booleanAttribute], disabled: ["rdxToggleDisabled", "disabled", booleanAttribute], id: "id" }, outputs: { pressedChange: "rdxToggleOnPressedChange" }, host: { attributes: { "type": "button" }, listeners: { "click": "toggle()" }, properties: { "attr.aria-pressed": "pressed", "attr.data-state": "pressed ? \"on\" : \"off\"", "attr.data-disabled": "disabled" } }, ngImport: i0 }); }
37
+ }
38
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxToggleDirective, decorators: [{
39
+ type: Directive,
40
+ args: [{
41
+ selector: 'button[rdxToggle]',
42
+ standalone: true,
43
+ host: {
44
+ type: 'button',
45
+ '[attr.aria-pressed]': 'pressed',
46
+ '[attr.data-state]': 'pressed ? "on" : "off"',
47
+ '[attr.data-disabled]': 'disabled'
48
+ }
49
+ }]
50
+ }], propDecorators: { pressed: [{
51
+ type: Input,
52
+ args: [{ alias: 'rdxTogglePressed', transform: booleanAttribute }]
53
+ }], disabled: [{
54
+ type: Input,
55
+ args: [{ alias: 'rdxToggleDisabled', transform: booleanAttribute }]
56
+ }], id: [{
57
+ type: Input
58
+ }], pressedChange: [{
59
+ type: Output,
60
+ args: ['rdxToggleOnPressedChange']
61
+ }], toggle: [{
62
+ type: HostListener,
63
+ args: ['click']
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9nZ2xlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9nZ2xlL3NyYy90b2dnbGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDSCxnQkFBZ0IsRUFDaEIsU0FBUyxFQUNULFlBQVksRUFDWixZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDVCxNQUFNLGVBQWUsQ0FBQzs7QUFFdkIsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBWWpCLE1BQU0sT0FBTyxrQkFBa0I7SUFWL0I7UUFXSTs7O1dBR0c7UUFDZ0UsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUVuRjs7O1dBR0c7UUFDaUUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQUVyRjs7V0FFRztRQUNNLE9BQUUsR0FBRyxhQUFhLEdBQUcsUUFBUSxFQUFFLENBQUM7UUFDekM7O1dBRUc7UUFDMEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO0tBYzVGO0lBWkc7O09BRUc7SUFFSCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDaEIsT0FBTztRQUNYLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQztRQUM3QixJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDMUMsQ0FBQzs4R0FqQ1Esa0JBQWtCO2tHQUFsQixrQkFBa0Isd0dBS29CLGdCQUFnQiwrQ0FNZixnQkFBZ0I7OzJGQVh2RCxrQkFBa0I7a0JBVjlCLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsUUFBUTt3QkFDZCxxQkFBcUIsRUFBRSxTQUFTO3dCQUNoQyxtQkFBbUIsRUFBRSx3QkFBd0I7d0JBQzdDLHNCQUFzQixFQUFFLFVBQVU7cUJBQ3JDO2lCQUNKOzhCQU1zRSxPQUFPO3NCQUF6RSxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFNRyxRQUFRO3NCQUEzRSxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLG1CQUFtQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFLekQsRUFBRTtzQkFBVixLQUFLO2dCQUl1QyxhQUFhO3NCQUF6RCxNQUFNO3VCQUFDLDBCQUEwQjtnQkFNbEMsTUFBTTtzQkFETCxZQUFZO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIGJvb2xlYW5BdHRyaWJ1dGUsXG4gICAgRGlyZWN0aXZlLFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBIb3N0TGlzdGVuZXIsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0XG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5sZXQgdW5pcXVlSWQgPSAwO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ2J1dHRvbltyZHhUb2dnbGVdJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgdHlwZTogJ2J1dHRvbicsXG4gICAgICAgICdbYXR0ci5hcmlhLXByZXNzZWRdJzogJ3ByZXNzZWQnLFxuICAgICAgICAnW2F0dHIuZGF0YS1zdGF0ZV0nOiAncHJlc3NlZCA/IFwib25cIiA6IFwib2ZmXCInLFxuICAgICAgICAnW2F0dHIuZGF0YS1kaXNhYmxlZF0nOiAnZGlzYWJsZWQnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb2dnbGVEaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRvZ2dsZSBpcyBwcmVzc2VkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhUb2dnbGVQcmVzc2VkJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIHByZXNzZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFdoZXRoZXIgdGhlIHRvZ2dsZSBpcyBkaXNhYmxlZC5cbiAgICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAncmR4VG9nZ2xlRGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERldGVybWluZSBlbGVtZW50IGlkXG4gICAgICovXG4gICAgQElucHV0KCkgaWQgPSAncmR4LXRvZ2dsZS0nICsgdW5pcXVlSWQrKztcbiAgICAvKipcbiAgICAgKiBFdmVudCBlbWl0dGVkIHdoZW4gdGhlIHRvZ2dsZSBpcyBwcmVzc2VkLlxuICAgICAqL1xuICAgIEBPdXRwdXQoJ3JkeFRvZ2dsZU9uUHJlc3NlZENoYW5nZScpIHJlYWRvbmx5IHByZXNzZWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICAvKipcbiAgICAgKiBUb2dnbGUgdGhlIHByZXNzZWQgc3RhdGUuXG4gICAgICovXG4gICAgQEhvc3RMaXN0ZW5lcignY2xpY2snKVxuICAgIHRvZ2dsZSgpOiB2b2lkIHtcbiAgICAgICAgaWYgKHRoaXMuZGlzYWJsZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMucHJlc3NlZCA9ICF0aGlzLnByZXNzZWQ7XG4gICAgICAgIHRoaXMucHJlc3NlZENoYW5nZS5lbWl0KHRoaXMucHJlc3NlZCk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,5 @@
1
+ export * from './src/tooltip-arrow.directive';
2
+ export * from './src/tooltip-trigger.directive';
3
+ export * from './src/tooltip.config';
4
+ export * from './src/tooltip.directive';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYywrQkFBK0IsQ0FBQztBQUM5QyxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx5QkFBeUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL3Rvb2x0aXAtYXJyb3cuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL3Rvb2x0aXAtdHJpZ2dlci5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9vbHRpcC5jb25maWcnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvdG9vbHRpcC5kaXJlY3RpdmUnO1xuIl19
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaXgtbmctcHJpbWl0aXZlcy10b29sdGlwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90b29sdGlwL3JhZGl4LW5nLXByaW1pdGl2ZXMtdG9vbHRpcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsU0FBUyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBHZW5lcmF0ZWQgYnVuZGxlIGluZGV4LiBEbyBub3QgZWRpdC5cbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2luZGV4JztcbiJdfQ==
@@ -0,0 +1,17 @@
1
+ import { Directive } from '@angular/core';
2
+ import { RdxOverlayArrowDirective } from '@radix-ng/primitives/overlay';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@radix-ng/primitives/overlay";
5
+ export class RdxTooltipArrowDirective {
6
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxTooltipArrowDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
7
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxTooltipArrowDirective, isStandalone: true, selector: "[rdxTooltipArrow]", hostDirectives: [{ directive: i1.RdxOverlayArrowDirective }], ngImport: i0 }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxTooltipArrowDirective, decorators: [{
10
+ type: Directive,
11
+ args: [{
12
+ selector: '[rdxTooltipArrow]',
13
+ standalone: true,
14
+ hostDirectives: [RdxOverlayArrowDirective]
15
+ }]
16
+ }] });
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC1hcnJvdy5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAtYXJyb3cuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQU94RSxNQUFNLE9BQU8sd0JBQXdCOzhHQUF4Qix3QkFBd0I7a0dBQXhCLHdCQUF3Qjs7MkZBQXhCLHdCQUF3QjtrQkFMcEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsbUJBQW1CO29CQUM3QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsY0FBYyxFQUFFLENBQUMsd0JBQXdCLENBQUM7aUJBQzdDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJkeE92ZXJsYXlBcnJvd0RpcmVjdGl2ZSB9IGZyb20gJ0ByYWRpeC1uZy9wcmltaXRpdmVzL292ZXJsYXknO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ1tyZHhUb29sdGlwQXJyb3ddJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3REaXJlY3RpdmVzOiBbUmR4T3ZlcmxheUFycm93RGlyZWN0aXZlXVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwQXJyb3dEaXJlY3RpdmUge31cbiJdfQ==
@@ -0,0 +1,148 @@
1
+ /* eslint-disable @angular-eslint/no-input-rename */
2
+ import { booleanAttribute, Directive, HostListener, inject, Input, numberAttribute, TemplateRef } from '@angular/core';
3
+ import { RdxOverlayTriggerDirective } from '@radix-ng/primitives/overlay';
4
+ import { RdxTooltipTriggerToken } from './tooltip-trigger.token';
5
+ import { injectTooltipConfig } from './tooltip.config';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "@radix-ng/primitives/overlay";
8
+ export class RdxTooltipTriggerDirective {
9
+ constructor() {
10
+ /**
11
+ * Access the overlay trigger directive
12
+ */
13
+ this.overlayTrigger = inject(RdxOverlayTriggerDirective);
14
+ /**
15
+ * Access the global tooltip configuration
16
+ */
17
+ this.tooltipConfig = injectTooltipConfig();
18
+ /**
19
+ * Define if the trigger should be disabled.
20
+ * @default false
21
+ */
22
+ this.disabled = false;
23
+ /**
24
+ * Define the placement of the tooltip relative to the trigger.
25
+ * @default 'bottom'
26
+ */
27
+ this.placement = this.tooltipConfig.placement;
28
+ /**
29
+ * Define the offset of the tooltip relative to the trigger.
30
+ * @default 0
31
+ */
32
+ this.offset = this.tooltipConfig.offset;
33
+ /**
34
+ * Define the delay before the tooltip is displayed.
35
+ * @default 0
36
+ */
37
+ this.showDelay = this.tooltipConfig.showDelay;
38
+ /**
39
+ * Define the delay before the tooltip is hidden.
40
+ * @default 0
41
+ */
42
+ this.hideDelay = this.tooltipConfig.hideDelay;
43
+ /**
44
+ * Define whether the tooltip should flip when there is not enough space for the tooltip.
45
+ * @default true
46
+ */
47
+ this.flip = this.tooltipConfig.flip;
48
+ /**
49
+ * Define the container in to which the tooltip should be attached.
50
+ * @default document.body
51
+ */
52
+ this.container = this.tooltipConfig.container;
53
+ }
54
+ ngOnInit() {
55
+ this.overlayTrigger.registerProvider({
56
+ provide: RdxTooltipTriggerToken,
57
+ useValue: this
58
+ });
59
+ }
60
+ /**
61
+ * Show the tooltip.
62
+ */
63
+ show() {
64
+ this.overlayTrigger.show();
65
+ }
66
+ /**
67
+ * Hide the tooltip.
68
+ */
69
+ hide() {
70
+ this.overlayTrigger.hide();
71
+ }
72
+ /**
73
+ * Define the tooltip id.
74
+ * @param id The tooltip id
75
+ * @internal
76
+ */
77
+ setTooltipId(id) {
78
+ this.tooltipId = id;
79
+ }
80
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxTooltipTriggerDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
81
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RdxTooltipTriggerDirective, isStandalone: true, selector: "[rdxTooltipTrigger]", inputs: { templateRef: ["rdxTooltipTrigger", "templateRef"], disabled: ["rdxTooltipDisabled", "disabled", booleanAttribute], placement: ["rdxTooltipPlacement", "placement"], offset: ["rdxTooltipOffset", "offset", numberAttribute], showDelay: ["rdxTooltipShowDelay", "showDelay", numberAttribute], hideDelay: ["rdxTooltipHideDelay", "hideDelay", numberAttribute], flip: ["rdxTooltipFlip", "flip", booleanAttribute], container: ["rdxTooltipContainer", "container"] }, host: { listeners: { "mouseenter": "show()", "focus": "show()", "mouseleave": "hide()", "blur": "hide()", "window:keydown.escape": "hide()" }, properties: { "attr.aria-describedby": "tooltipId" } }, hostDirectives: [{ directive: i1.RdxOverlayTriggerDirective, inputs: ["rdxOverlayTrigger", "rdxTooltipTrigger", "rdxOverlayDisabled", "rdxTooltipDisabled", "rdxOverlayPlacement", "rdxTooltipPlacement", "rdxOverlayOffset", "rdxTooltipOffset", "rdxOverlayShowDelay", "rdxTooltipShowDelay", "rdxOverlayHideDelay", "rdxTooltipHideDelay", "rdxOverlayShift", "rdxTooltipShift", "rdxOverlayFlip", "rdxTooltipFlip", "rdxOverlayContainer", "rdxTooltipContainer"] }], ngImport: i0 }); }
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxTooltipTriggerDirective, decorators: [{
84
+ type: Directive,
85
+ args: [{
86
+ selector: '[rdxTooltipTrigger]',
87
+ standalone: true,
88
+ host: {
89
+ '[attr.aria-describedby]': 'tooltipId'
90
+ },
91
+ hostDirectives: [
92
+ {
93
+ directive: RdxOverlayTriggerDirective,
94
+ inputs: [
95
+ 'rdxOverlayTrigger: rdxTooltipTrigger',
96
+ 'rdxOverlayDisabled: rdxTooltipDisabled',
97
+ 'rdxOverlayPlacement: rdxTooltipPlacement',
98
+ 'rdxOverlayOffset: rdxTooltipOffset',
99
+ 'rdxOverlayShowDelay: rdxTooltipShowDelay',
100
+ 'rdxOverlayHideDelay: rdxTooltipHideDelay',
101
+ 'rdxOverlayShift: rdxTooltipShift',
102
+ 'rdxOverlayFlip: rdxTooltipFlip',
103
+ 'rdxOverlayContainer: rdxTooltipContainer'
104
+ ]
105
+ }
106
+ ]
107
+ }]
108
+ }], propDecorators: { templateRef: [{
109
+ type: Input,
110
+ args: [{ alias: 'rdxTooltipTrigger', required: true }]
111
+ }], disabled: [{
112
+ type: Input,
113
+ args: [{ alias: 'rdxTooltipDisabled', transform: booleanAttribute }]
114
+ }], placement: [{
115
+ type: Input,
116
+ args: ['rdxTooltipPlacement']
117
+ }], offset: [{
118
+ type: Input,
119
+ args: [{ alias: 'rdxTooltipOffset', transform: numberAttribute }]
120
+ }], showDelay: [{
121
+ type: Input,
122
+ args: [{ alias: 'rdxTooltipShowDelay', transform: numberAttribute }]
123
+ }], hideDelay: [{
124
+ type: Input,
125
+ args: [{ alias: 'rdxTooltipHideDelay', transform: numberAttribute }]
126
+ }], flip: [{
127
+ type: Input,
128
+ args: [{ alias: 'rdxTooltipFlip', transform: booleanAttribute }]
129
+ }], container: [{
130
+ type: Input,
131
+ args: ['rdxTooltipContainer']
132
+ }], show: [{
133
+ type: HostListener,
134
+ args: ['mouseenter']
135
+ }, {
136
+ type: HostListener,
137
+ args: ['focus']
138
+ }], hide: [{
139
+ type: HostListener,
140
+ args: ['mouseleave']
141
+ }, {
142
+ type: HostListener,
143
+ args: ['blur']
144
+ }, {
145
+ type: HostListener,
146
+ args: ['window:keydown.escape']
147
+ }] } });
148
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdG9vbHRpcC9zcmMvdG9vbHRpcC10cmlnZ2VyLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxvREFBb0Q7QUFDcEQsT0FBTyxFQUNILGdCQUFnQixFQUNoQixTQUFTLEVBQ1QsWUFBWSxFQUNaLE1BQU0sRUFDTixLQUFLLEVBQ0wsZUFBZSxFQUVmLFdBQVcsRUFDZCxNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUUxRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7O0FBeUJ2RCxNQUFNLE9BQU8sMEJBQTBCO0lBdkJ2QztRQXdCSTs7V0FFRztRQUNjLG1CQUFjLEdBQUcsTUFBTSxDQUFDLDBCQUEwQixDQUFDLENBQUM7UUFFckU7O1dBRUc7UUFDYyxrQkFBYSxHQUFHLG1CQUFtQixFQUFFLENBQUM7UUFPdkQ7OztXQUdHO1FBQ2tFLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEY7OztXQUdHO1FBQzJCLGNBQVMsR0FBYyxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUVsRjs7O1dBR0c7UUFDK0QsV0FBTSxHQUNwRSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQztRQUU5Qjs7O1dBR0c7UUFDa0UsY0FBUyxHQUMxRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUVqQzs7O1dBR0c7UUFDa0UsY0FBUyxHQUMxRSxJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztRQUVqQzs7O1dBR0c7UUFDOEQsU0FBSSxHQUNqRSxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQztRQUU1Qjs7O1dBR0c7UUFDMkIsY0FBUyxHQUFnQixJQUFJLENBQUMsYUFBYSxDQUFDLFNBQVMsQ0FBQztLQXlDdkY7SUFsQ0csUUFBUTtRQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUM7WUFDakMsT0FBTyxFQUFFLHNCQUFzQjtZQUMvQixRQUFRLEVBQUUsSUFBSTtTQUNqQixDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7O09BRUc7SUFHSCxJQUFJO1FBQ0EsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7O09BRUc7SUFJSCxJQUFJO1FBQ0EsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILFlBQVksQ0FBQyxFQUFVO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OEdBcEdRLDBCQUEwQjtrR0FBMUIsMEJBQTBCLGlLQW9CYyxnQkFBZ0IsMkZBWWxCLGVBQWUsbURBT1osZUFBZSxtREFPZixlQUFlLG9DQU9wQixnQkFBZ0I7OzJGQXJEcEQsMEJBQTBCO2tCQXZCdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsSUFBSSxFQUFFO3dCQUNGLHlCQUF5QixFQUFFLFdBQVc7cUJBQ3pDO29CQUNELGNBQWMsRUFBRTt3QkFDWjs0QkFDSSxTQUFTLEVBQUUsMEJBQTBCOzRCQUNyQyxNQUFNLEVBQUU7Z0NBQ0osc0NBQXNDO2dDQUN0Qyx3Q0FBd0M7Z0NBQ3hDLDBDQUEwQztnQ0FDMUMsb0NBQW9DO2dDQUNwQywwQ0FBMEM7Z0NBQzFDLDBDQUEwQztnQ0FDMUMsa0NBQWtDO2dDQUNsQyxnQ0FBZ0M7Z0NBQ2hDLDBDQUEwQzs2QkFDN0M7eUJBQ0o7cUJBQ0o7aUJBQ0o7OEJBZTBELFdBQVc7c0JBQWpFLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUsbUJBQW1CLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFNZ0IsUUFBUTtzQkFBNUUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsZ0JBQWdCLEVBQUU7Z0JBTXJDLFNBQVM7c0JBQXRDLEtBQUs7dUJBQUMscUJBQXFCO2dCQU1zQyxNQUFNO3NCQUF2RSxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxlQUFlLEVBQUU7Z0JBT0ssU0FBUztzQkFBN0UsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxxQkFBcUIsRUFBRSxTQUFTLEVBQUUsZUFBZSxFQUFFO2dCQU9FLFNBQVM7c0JBQTdFLEtBQUs7dUJBQUMsRUFBRSxLQUFLLEVBQUUscUJBQXFCLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRTtnQkFPRixJQUFJO3NCQUFwRSxLQUFLO3VCQUFDLEVBQUUsS0FBSyxFQUFFLGdCQUFnQixFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRTtnQkFPakMsU0FBUztzQkFBdEMsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBbUI1QixJQUFJO3NCQUZILFlBQVk7dUJBQUMsWUFBWTs7c0JBQ3pCLFlBQVk7dUJBQUMsT0FBTztnQkFXckIsSUFBSTtzQkFISCxZQUFZO3VCQUFDLFlBQVk7O3NCQUN6QixZQUFZO3VCQUFDLE1BQU07O3NCQUNuQixZQUFZO3VCQUFDLHVCQUF1QiIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEBhbmd1bGFyLWVzbGludC9uby1pbnB1dC1yZW5hbWUgKi9cbmltcG9ydCB7XG4gICAgYm9vbGVhbkF0dHJpYnV0ZSxcbiAgICBEaXJlY3RpdmUsXG4gICAgSG9zdExpc3RlbmVyLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBudW1iZXJBdHRyaWJ1dGUsXG4gICAgT25Jbml0LFxuICAgIFRlbXBsYXRlUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBQbGFjZW1lbnQgfSBmcm9tICdAZmxvYXRpbmctdWkvZG9tJztcbmltcG9ydCB7IFJkeE92ZXJsYXlUcmlnZ2VyRGlyZWN0aXZlIH0gZnJvbSAnQHJhZGl4LW5nL3ByaW1pdGl2ZXMvb3ZlcmxheSc7XG5cbmltcG9ydCB7IFJkeFRvb2x0aXBUcmlnZ2VyVG9rZW4gfSBmcm9tICcuL3Rvb2x0aXAtdHJpZ2dlci50b2tlbic7XG5pbXBvcnQgeyBpbmplY3RUb29sdGlwQ29uZmlnIH0gZnJvbSAnLi90b29sdGlwLmNvbmZpZyc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW3JkeFRvb2x0aXBUcmlnZ2VyXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBob3N0OiB7XG4gICAgICAgICdbYXR0ci5hcmlhLWRlc2NyaWJlZGJ5XSc6ICd0b29sdGlwSWQnXG4gICAgfSxcbiAgICBob3N0RGlyZWN0aXZlczogW1xuICAgICAgICB7XG4gICAgICAgICAgICBkaXJlY3RpdmU6IFJkeE92ZXJsYXlUcmlnZ2VyRGlyZWN0aXZlLFxuICAgICAgICAgICAgaW5wdXRzOiBbXG4gICAgICAgICAgICAgICAgJ3JkeE92ZXJsYXlUcmlnZ2VyOiByZHhUb29sdGlwVHJpZ2dlcicsXG4gICAgICAgICAgICAgICAgJ3JkeE92ZXJsYXlEaXNhYmxlZDogcmR4VG9vbHRpcERpc2FibGVkJyxcbiAgICAgICAgICAgICAgICAncmR4T3ZlcmxheVBsYWNlbWVudDogcmR4VG9vbHRpcFBsYWNlbWVudCcsXG4gICAgICAgICAgICAgICAgJ3JkeE92ZXJsYXlPZmZzZXQ6IHJkeFRvb2x0aXBPZmZzZXQnLFxuICAgICAgICAgICAgICAgICdyZHhPdmVybGF5U2hvd0RlbGF5OiByZHhUb29sdGlwU2hvd0RlbGF5JyxcbiAgICAgICAgICAgICAgICAncmR4T3ZlcmxheUhpZGVEZWxheTogcmR4VG9vbHRpcEhpZGVEZWxheScsXG4gICAgICAgICAgICAgICAgJ3JkeE92ZXJsYXlTaGlmdDogcmR4VG9vbHRpcFNoaWZ0JyxcbiAgICAgICAgICAgICAgICAncmR4T3ZlcmxheUZsaXA6IHJkeFRvb2x0aXBGbGlwJyxcbiAgICAgICAgICAgICAgICAncmR4T3ZlcmxheUNvbnRhaW5lcjogcmR4VG9vbHRpcENvbnRhaW5lcidcbiAgICAgICAgICAgIF1cbiAgICAgICAgfVxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgUmR4VG9vbHRpcFRyaWdnZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgb3ZlcmxheSB0cmlnZ2VyIGRpcmVjdGl2ZVxuICAgICAqL1xuICAgIHByaXZhdGUgcmVhZG9ubHkgb3ZlcmxheVRyaWdnZXIgPSBpbmplY3QoUmR4T3ZlcmxheVRyaWdnZXJEaXJlY3RpdmUpO1xuXG4gICAgLyoqXG4gICAgICogQWNjZXNzIHRoZSBnbG9iYWwgdG9vbHRpcCBjb25maWd1cmF0aW9uXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0b29sdGlwQ29uZmlnID0gaW5qZWN0VG9vbHRpcENvbmZpZygpO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSB0b29sdGlwIHRvIGRpc3BsYXkgd2hlbiB0aGUgdHJpZ2dlciBpcyBhY3RpdmF0ZWQuXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhUb29sdGlwVHJpZ2dlcicsIHJlcXVpcmVkOiB0cnVlIH0pIHRlbXBsYXRlUmVmITogVGVtcGxhdGVSZWY8dm9pZD47XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgaWYgdGhlIHRyaWdnZXIgc2hvdWxkIGJlIGRpc2FibGVkLlxuICAgICAqIEBkZWZhdWx0IGZhbHNlXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhUb29sdGlwRGlzYWJsZWQnLCB0cmFuc2Zvcm06IGJvb2xlYW5BdHRyaWJ1dGUgfSkgZGlzYWJsZWQgPSBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgcGxhY2VtZW50IG9mIHRoZSB0b29sdGlwIHJlbGF0aXZlIHRvIHRoZSB0cmlnZ2VyLlxuICAgICAqIEBkZWZhdWx0ICdib3R0b20nXG4gICAgICovXG4gICAgQElucHV0KCdyZHhUb29sdGlwUGxhY2VtZW50JykgcGxhY2VtZW50OiBQbGFjZW1lbnQgPSB0aGlzLnRvb2x0aXBDb25maWcucGxhY2VtZW50O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBvZmZzZXQgb2YgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAgICogQGRlZmF1bHQgMFxuICAgICAqL1xuICAgIEBJbnB1dCh7IGFsaWFzOiAncmR4VG9vbHRpcE9mZnNldCcsIHRyYW5zZm9ybTogbnVtYmVyQXR0cmlidXRlIH0pIG9mZnNldDogbnVtYmVyID1cbiAgICAgICAgdGhpcy50b29sdGlwQ29uZmlnLm9mZnNldDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgZGVsYXkgYmVmb3JlIHRoZSB0b29sdGlwIGlzIGRpc3BsYXllZC5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhUb29sdGlwU2hvd0RlbGF5JywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgc2hvd0RlbGF5OiBudW1iZXIgPVxuICAgICAgICB0aGlzLnRvb2x0aXBDb25maWcuc2hvd0RlbGF5O1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBkZWxheSBiZWZvcmUgdGhlIHRvb2x0aXAgaXMgaGlkZGVuLlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3JkeFRvb2x0aXBIaWRlRGVsYXknLCB0cmFuc2Zvcm06IG51bWJlckF0dHJpYnV0ZSB9KSBoaWRlRGVsYXk6IG51bWJlciA9XG4gICAgICAgIHRoaXMudG9vbHRpcENvbmZpZy5oaWRlRGVsYXk7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgd2hldGhlciB0aGUgdG9vbHRpcCBzaG91bGQgZmxpcCB3aGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSB0b29sdGlwLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBASW5wdXQoeyBhbGlhczogJ3JkeFRvb2x0aXBGbGlwJywgdHJhbnNmb3JtOiBib29sZWFuQXR0cmlidXRlIH0pIGZsaXA6IGJvb2xlYW4gPVxuICAgICAgICB0aGlzLnRvb2x0aXBDb25maWcuZmxpcDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgY29udGFpbmVyIGluIHRvIHdoaWNoIHRoZSB0b29sdGlwIHNob3VsZCBiZSBhdHRhY2hlZC5cbiAgICAgKiBAZGVmYXVsdCBkb2N1bWVudC5ib2R5XG4gICAgICovXG4gICAgQElucHV0KCdyZHhUb29sdGlwQ29udGFpbmVyJykgY29udGFpbmVyOiBIVE1MRWxlbWVudCA9IHRoaXMudG9vbHRpcENvbmZpZy5jb250YWluZXI7XG5cbiAgICAvKipcbiAgICAgKiBUaGUgdG9vbHRpcCBpZC5cbiAgICAgKi9cbiAgICBwcm90ZWN0ZWQgdG9vbHRpcElkPzogc3RyaW5nO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3ZlcmxheVRyaWdnZXIucmVnaXN0ZXJQcm92aWRlcih7XG4gICAgICAgICAgICBwcm92aWRlOiBSZHhUb29sdGlwVHJpZ2dlclRva2VuLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHRoaXNcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogU2hvdyB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWVudGVyJylcbiAgICBASG9zdExpc3RlbmVyKCdmb2N1cycpXG4gICAgc2hvdygpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vdmVybGF5VHJpZ2dlci5zaG93KCk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogSGlkZSB0aGUgdG9vbHRpcC5cbiAgICAgKi9cbiAgICBASG9zdExpc3RlbmVyKCdtb3VzZWxlYXZlJylcbiAgICBASG9zdExpc3RlbmVyKCdibHVyJylcbiAgICBASG9zdExpc3RlbmVyKCd3aW5kb3c6a2V5ZG93bi5lc2NhcGUnKVxuICAgIGhpZGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3ZlcmxheVRyaWdnZXIuaGlkZSgpO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgdG9vbHRpcCBpZC5cbiAgICAgKiBAcGFyYW0gaWQgVGhlIHRvb2x0aXAgaWRcbiAgICAgKiBAaW50ZXJuYWxcbiAgICAgKi9cbiAgICBzZXRUb29sdGlwSWQoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLnRvb2x0aXBJZCA9IGlkO1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { inject, InjectionToken } from '@angular/core';
2
+ export const RdxTooltipTriggerToken = new InjectionToken('RdxTooltipTriggerToken');
3
+ export function injectTooltipTrigger() {
4
+ return inject(RdxTooltipTriggerToken);
5
+ }
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC10cmlnZ2VyLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy90b29sdGlwL3NyYy90b29sdGlwLXRyaWdnZXIudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJdkQsTUFBTSxDQUFDLE1BQU0sc0JBQXNCLEdBQUcsSUFBSSxjQUFjLENBQ3BELHdCQUF3QixDQUMzQixDQUFDO0FBRUYsTUFBTSxVQUFVLG9CQUFvQjtJQUNoQyxPQUFPLE1BQU0sQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDO0FBQzFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBpbmplY3QsIEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB0eXBlIHsgUmR4VG9vbHRpcFRyaWdnZXJEaXJlY3RpdmUgfSBmcm9tICcuL3Rvb2x0aXAtdHJpZ2dlci5kaXJlY3RpdmUnO1xuXG5leHBvcnQgY29uc3QgUmR4VG9vbHRpcFRyaWdnZXJUb2tlbiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxSZHhUb29sdGlwVHJpZ2dlckRpcmVjdGl2ZT4oXG4gICAgJ1JkeFRvb2x0aXBUcmlnZ2VyVG9rZW4nXG4pO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VG9vbHRpcFRyaWdnZXIoKTogUmR4VG9vbHRpcFRyaWdnZXJEaXJlY3RpdmUge1xuICAgIHJldHVybiBpbmplY3QoUmR4VG9vbHRpcFRyaWdnZXJUb2tlbik7XG59XG4iXX0=
@@ -0,0 +1,31 @@
1
+ import { inject, InjectionToken } from '@angular/core';
2
+ export const TooltipConfigToken = new InjectionToken('TooltipConfig');
3
+ const defaultTooltipConfig = {
4
+ offset: 4,
5
+ placement: 'top',
6
+ showDelay: 0,
7
+ hideDelay: 0,
8
+ flip: true,
9
+ container: document.body
10
+ };
11
+ /**
12
+ * Provide the default Tooltip configuration
13
+ * @param config The Tooltip configuration
14
+ * @returns The provider
15
+ */
16
+ export function provideTooltipConfig(config) {
17
+ return [
18
+ {
19
+ provide: TooltipConfigToken,
20
+ useValue: { ...defaultTooltipConfig, ...config }
21
+ }
22
+ ];
23
+ }
24
+ /**
25
+ * Inject the Tooltip configuration
26
+ * @returns The global Tooltip configuration
27
+ */
28
+ export function injectTooltipConfig() {
29
+ return inject(TooltipConfigToken, { optional: true }) ?? defaultTooltipConfig;
30
+ }
31
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsY0FBYyxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBSWpFLE1BQU0sQ0FBQyxNQUFNLGtCQUFrQixHQUFHLElBQUksY0FBYyxDQUFtQixlQUFlLENBQUMsQ0FBQztBQXdDeEYsTUFBTSxvQkFBb0IsR0FBcUI7SUFDM0MsTUFBTSxFQUFFLENBQUM7SUFDVCxTQUFTLEVBQUUsS0FBSztJQUNoQixTQUFTLEVBQUUsQ0FBQztJQUNaLFNBQVMsRUFBRSxDQUFDO0lBQ1osSUFBSSxFQUFFLElBQUk7SUFDVixTQUFTLEVBQUUsUUFBUSxDQUFDLElBQUk7Q0FDM0IsQ0FBQztBQUVGOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsb0JBQW9CLENBQUMsTUFBaUM7SUFDbEUsT0FBTztRQUNIO1lBQ0ksT0FBTyxFQUFFLGtCQUFrQjtZQUMzQixRQUFRLEVBQUUsRUFBRSxHQUFHLG9CQUFvQixFQUFFLEdBQUcsTUFBTSxFQUFFO1NBQ25EO0tBQ0osQ0FBQztBQUNOLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQy9CLE9BQU8sTUFBTSxDQUFDLGtCQUFrQixFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksb0JBQW9CLENBQUM7QUFDbEYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0aW9uVG9rZW4sIFByb3ZpZGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFBsYWNlbWVudCB9IGZyb20gJ0BmbG9hdGluZy11aS9kb20nO1xuXG5leHBvcnQgY29uc3QgVG9vbHRpcENvbmZpZ1Rva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeFRvb2x0aXBDb25maWc+KCdUb29sdGlwQ29uZmlnJyk7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmR4VG9vbHRpcENvbmZpZyB7XG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBvZmZzZXQgb2YgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAgICogQGRlZmF1bHQgNFxuICAgICAqL1xuICAgIG9mZnNldDogbnVtYmVyO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBwbGFjZW1lbnQgb2YgdGhlIHRvb2x0aXAgcmVsYXRpdmUgdG8gdGhlIHRyaWdnZXIuXG4gICAgICogQGRlZmF1bHQgJ3RvcCdcbiAgICAgKi9cbiAgICBwbGFjZW1lbnQ6IFBsYWNlbWVudDtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgZGVsYXkgYmVmb3JlIHRoZSB0b29sdGlwIGlzIHNob3duLlxuICAgICAqIEBkZWZhdWx0IDBcbiAgICAgKi9cbiAgICBzaG93RGVsYXk6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgZGVsYXkgYmVmb3JlIHRoZSB0b29sdGlwIGlzIGhpZGRlbi5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgaGlkZURlbGF5OiBudW1iZXI7XG5cbiAgICAvKipcbiAgICAgKiBEZWZpbmUgd2hldGhlciB0aGUgdG9vbHRpcCBzaG91bGQgZmxpcCB3aGVuIHRoZXJlIGlzIG5vdCBlbm91Z2ggc3BhY2UgZm9yIHRoZSB0b29sdGlwLlxuICAgICAqIEBkZWZhdWx0IHRydWVcbiAgICAgKi9cbiAgICBmbGlwOiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIHRoZSBjb250YWluZXIgaW4gdG8gd2hpY2ggdGhlIHRvb2x0aXAgc2hvdWxkIGJlIGF0dGFjaGVkLlxuICAgICAqIEBkZWZhdWx0IGRvY3VtZW50LmJvZHlcbiAgICAgKi9cbiAgICBjb250YWluZXI6IEhUTUxFbGVtZW50O1xufVxuXG5jb25zdCBkZWZhdWx0VG9vbHRpcENvbmZpZzogUmR4VG9vbHRpcENvbmZpZyA9IHtcbiAgICBvZmZzZXQ6IDQsXG4gICAgcGxhY2VtZW50OiAndG9wJyxcbiAgICBzaG93RGVsYXk6IDAsXG4gICAgaGlkZURlbGF5OiAwLFxuICAgIGZsaXA6IHRydWUsXG4gICAgY29udGFpbmVyOiBkb2N1bWVudC5ib2R5XG59O1xuXG4vKipcbiAqIFByb3ZpZGUgdGhlIGRlZmF1bHQgVG9vbHRpcCBjb25maWd1cmF0aW9uXG4gKiBAcGFyYW0gY29uZmlnIFRoZSBUb29sdGlwIGNvbmZpZ3VyYXRpb25cbiAqIEByZXR1cm5zIFRoZSBwcm92aWRlclxuICovXG5leHBvcnQgZnVuY3Rpb24gcHJvdmlkZVRvb2x0aXBDb25maWcoY29uZmlnOiBQYXJ0aWFsPFJkeFRvb2x0aXBDb25maWc+KTogUHJvdmlkZXJbXSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogVG9vbHRpcENvbmZpZ1Rva2VuLFxuICAgICAgICAgICAgdXNlVmFsdWU6IHsgLi4uZGVmYXVsdFRvb2x0aXBDb25maWcsIC4uLmNvbmZpZyB9XG4gICAgICAgIH1cbiAgICBdO1xufVxuXG4vKipcbiAqIEluamVjdCB0aGUgVG9vbHRpcCBjb25maWd1cmF0aW9uXG4gKiBAcmV0dXJucyBUaGUgZ2xvYmFsIFRvb2x0aXAgY29uZmlndXJhdGlvblxuICovXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0VG9vbHRpcENvbmZpZygpOiBSZHhUb29sdGlwQ29uZmlnIHtcbiAgICByZXR1cm4gaW5qZWN0KFRvb2x0aXBDb25maWdUb2tlbiwgeyBvcHRpb25hbDogdHJ1ZSB9KSA/PyBkZWZhdWx0VG9vbHRpcENvbmZpZztcbn1cbiJdfQ==
@@ -0,0 +1,46 @@
1
+ import { Directive, Input } from '@angular/core';
2
+ import { RdxOverlayDirective } from '@radix-ng/primitives/overlay';
3
+ import { injectTooltipTrigger } from './tooltip-trigger.token';
4
+ import * as i0 from "@angular/core";
5
+ import * as i1 from "@radix-ng/primitives/overlay";
6
+ /**
7
+ * A unique identifier for the tooltip
8
+ */
9
+ let uniqueId = 0;
10
+ export class RdxTooltipDirective {
11
+ constructor() {
12
+ /**
13
+ * Access the tooltip trigger
14
+ */
15
+ this.trigger = injectTooltipTrigger();
16
+ /**
17
+ * Define the tooltip id
18
+ */
19
+ this.id = `rdx-tooltip-${uniqueId++}`;
20
+ }
21
+ ngOnInit() {
22
+ this.trigger.setTooltipId(this.id);
23
+ }
24
+ ngOnChanges(changes) {
25
+ if ('id' in changes) {
26
+ this.trigger.setTooltipId(this.id);
27
+ }
28
+ }
29
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxTooltipDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
30
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxTooltipDirective, isStandalone: true, selector: "[rdxTooltip]", inputs: { id: "id" }, host: { attributes: { "role": "tooltip" } }, exportAs: ["rdxTooltip"], usesOnChanges: true, hostDirectives: [{ directive: i1.RdxOverlayDirective }], ngImport: i0 }); }
31
+ }
32
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxTooltipDirective, decorators: [{
33
+ type: Directive,
34
+ args: [{
35
+ selector: '[rdxTooltip]',
36
+ standalone: true,
37
+ exportAs: 'rdxTooltip',
38
+ hostDirectives: [RdxOverlayDirective],
39
+ host: {
40
+ role: 'tooltip'
41
+ }
42
+ }]
43
+ }], propDecorators: { id: [{
44
+ type: Input
45
+ }] } });
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbHRpcC5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL3Rvb2x0aXAvc3JjL3Rvb2x0aXAuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFvQyxNQUFNLGVBQWUsQ0FBQztBQUVuRixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQztBQUVuRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQzs7O0FBRS9EOztHQUVHO0FBQ0gsSUFBSSxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBV2pCLE1BQU0sT0FBTyxtQkFBbUI7SUFUaEM7UUFVSTs7V0FFRztRQUNjLFlBQU8sR0FBRyxvQkFBb0IsRUFBRSxDQUFDO1FBRWxEOztXQUVHO1FBQ00sT0FBRSxHQUFHLGVBQWUsUUFBUSxFQUFFLEVBQUUsQ0FBQztLQVc3QztJQVRHLFFBQVE7UUFDSixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFdBQVcsQ0FBQyxPQUFzQjtRQUM5QixJQUFJLElBQUksSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsT0FBTyxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDdkMsQ0FBQztJQUNMLENBQUM7OEdBbkJRLG1CQUFtQjtrR0FBbkIsbUJBQW1COzsyRkFBbkIsbUJBQW1CO2tCQVQvQixTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxjQUFjO29CQUN4QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLFlBQVk7b0JBQ3RCLGNBQWMsRUFBRSxDQUFDLG1CQUFtQixDQUFDO29CQUNyQyxJQUFJLEVBQUU7d0JBQ0YsSUFBSSxFQUFFLFNBQVM7cUJBQ2xCO2lCQUNKOzhCQVVZLEVBQUU7c0JBQVYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgSW5wdXQsIE9uQ2hhbmdlcywgT25Jbml0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IFJkeE92ZXJsYXlEaXJlY3RpdmUgfSBmcm9tICdAcmFkaXgtbmcvcHJpbWl0aXZlcy9vdmVybGF5JztcblxuaW1wb3J0IHsgaW5qZWN0VG9vbHRpcFRyaWdnZXIgfSBmcm9tICcuL3Rvb2x0aXAtdHJpZ2dlci50b2tlbic7XG5cbi8qKlxuICogQSB1bmlxdWUgaWRlbnRpZmllciBmb3IgdGhlIHRvb2x0aXBcbiAqL1xubGV0IHVuaXF1ZUlkID0gMDtcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VG9vbHRpcF0nLFxuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgZXhwb3J0QXM6ICdyZHhUb29sdGlwJyxcbiAgICBob3N0RGlyZWN0aXZlczogW1JkeE92ZXJsYXlEaXJlY3RpdmVdLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ3Rvb2x0aXAnXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhUb29sdGlwRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICAgIC8qKlxuICAgICAqIEFjY2VzcyB0aGUgdG9vbHRpcCB0cmlnZ2VyXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmlnZ2VyID0gaW5qZWN0VG9vbHRpcFRyaWdnZXIoKTtcblxuICAgIC8qKlxuICAgICAqIERlZmluZSB0aGUgdG9vbHRpcCBpZFxuICAgICAqL1xuICAgIEBJbnB1dCgpIGlkID0gYHJkeC10b29sdGlwLSR7dW5pcXVlSWQrK31gO1xuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudHJpZ2dlci5zZXRUb29sdGlwSWQodGhpcy5pZCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgICAgICBpZiAoJ2lkJyBpbiBjaGFuZ2VzKSB7XG4gICAgICAgICAgICB0aGlzLnRyaWdnZXIuc2V0VG9vbHRpcElkKHRoaXMuaWQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
@@ -1,6 +1,6 @@
1
1
  import { Directive, ElementRef, inject } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- export class VisuallyHiddenDirective {
3
+ export class RdxVisuallyHiddenDirective {
4
4
  constructor() {
5
5
  /**
6
6
  * Access the element.
@@ -29,14 +29,14 @@ export class VisuallyHiddenDirective {
29
29
  left: 0
30
30
  });
31
31
  }
32
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VisuallyHiddenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
33
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: VisuallyHiddenDirective, isStandalone: true, selector: "[rdxVisuallyHidden]", ngImport: i0 }); }
32
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxVisuallyHiddenDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
33
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxVisuallyHiddenDirective, isStandalone: true, selector: "[rdxVisuallyHidden]", ngImport: i0 }); }
34
34
  }
35
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: VisuallyHiddenDirective, decorators: [{
35
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxVisuallyHiddenDirective, decorators: [{
36
36
  type: Directive,
37
37
  args: [{
38
38
  selector: '[rdxVisuallyHidden]',
39
39
  standalone: true
40
40
  }]
41
41
  }] });
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsbHktaGlkZGVuLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdmlzdWFsbHktaGlkZGVuL3NyYy92aXN1YWxseS1oaWRkZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQzs7QUFNdEUsTUFBTSxPQUFPLHVCQUF1QjtJQUpwQztRQUtJOztXQUVHO1FBQ2MsWUFBTyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7S0F3QjFFO0lBdEJHLFFBQVE7UUFDSixtQkFBbUI7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDNUMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIseURBQXlEO1lBQ3pELE9BQU8sRUFBRSxNQUFNO1lBQ2YsVUFBVSxFQUFFLE1BQU07WUFDbEIsMkVBQTJFO1lBQzNFLG9CQUFvQixFQUFFLE1BQU07WUFDNUIsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixJQUFJLEVBQUUsQ0FBQztTQUNWLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBM0JRLHVCQUF1QjtrR0FBdkIsdUJBQXVCOzsyRkFBdkIsdUJBQXVCO2tCQUpuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgT25Jbml0LCBpbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VmlzdWFsbHlIaWRkZW5dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFZpc3VhbGx5SGlkZGVuRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBoaWRlIHRoZSBlbGVtZW50XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAgICAgd2lkdGg6ICcxcHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICBtYXJnaW46ICctMXB4JyxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIGNsaXA6ICdyZWN0KDAsIDAsIDAsIDApJyxcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgd29yZFdyYXA6ICdub3JtYWwnLFxuICAgICAgICAgICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsXG4gICAgICAgICAgICBhcHBlYXJhbmNlOiAnbm9uZScsXG4gICAgICAgICAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHNcbiAgICAgICAgICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgICAgICAgICAnLW1vei1hcHBlYXJhbmNlJzogJ25vbmUnLFxuICAgICAgICAgICAgbGVmdDogMFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
42
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlzdWFsbHktaGlkZGVuLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvdmlzdWFsbHktaGlkZGVuL3NyYy92aXN1YWxseS1oaWRkZW4uZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBVSxNQUFNLGVBQWUsQ0FBQzs7QUFNdEUsTUFBTSxPQUFPLDBCQUEwQjtJQUp2QztRQUtJOztXQUVHO1FBQ2MsWUFBTyxHQUFHLE1BQU0sQ0FBMEIsVUFBVSxDQUFDLENBQUM7S0F3QjFFO0lBdEJHLFFBQVE7UUFDSixtQkFBbUI7UUFDbkIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUU7WUFDNUMsUUFBUSxFQUFFLFVBQVU7WUFDcEIsTUFBTSxFQUFFLENBQUM7WUFDVCxLQUFLLEVBQUUsS0FBSztZQUNaLE1BQU0sRUFBRSxLQUFLO1lBQ2IsT0FBTyxFQUFFLENBQUM7WUFDVixNQUFNLEVBQUUsTUFBTTtZQUNkLFFBQVEsRUFBRSxRQUFRO1lBQ2xCLElBQUksRUFBRSxrQkFBa0I7WUFDeEIsVUFBVSxFQUFFLFFBQVE7WUFDcEIsUUFBUSxFQUFFLFFBQVE7WUFDbEIseURBQXlEO1lBQ3pELE9BQU8sRUFBRSxNQUFNO1lBQ2YsVUFBVSxFQUFFLE1BQU07WUFDbEIsMkVBQTJFO1lBQzNFLG9CQUFvQixFQUFFLE1BQU07WUFDNUIsaUJBQWlCLEVBQUUsTUFBTTtZQUN6QixJQUFJLEVBQUUsQ0FBQztTQUNWLENBQUMsQ0FBQztJQUNQLENBQUM7OEdBM0JRLDBCQUEwQjtrR0FBMUIsMEJBQTBCOzsyRkFBMUIsMEJBQTBCO2tCQUp0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdbcmR4VmlzdWFsbHlIaWRkZW5dJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlXG59KVxuZXhwb3J0IGNsYXNzIFJkeFZpc3VhbGx5SGlkZGVuRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICAvKipcbiAgICAgKiBBY2Nlc3MgdGhlIGVsZW1lbnQuXG4gICAgICovXG4gICAgcHJpdmF0ZSByZWFkb25seSBlbGVtZW50ID0gaW5qZWN0PEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICAvLyBoaWRlIHRoZSBlbGVtZW50XG4gICAgICAgIE9iamVjdC5hc3NpZ24odGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc3R5bGUsIHtcbiAgICAgICAgICAgIHBvc2l0aW9uOiAnYWJzb2x1dGUnLFxuICAgICAgICAgICAgYm9yZGVyOiAwLFxuICAgICAgICAgICAgd2lkdGg6ICcxcHgnLFxuICAgICAgICAgICAgaGVpZ2h0OiAnMXB4JyxcbiAgICAgICAgICAgIHBhZGRpbmc6IDAsXG4gICAgICAgICAgICBtYXJnaW46ICctMXB4JyxcbiAgICAgICAgICAgIG92ZXJmbG93OiAnaGlkZGVuJyxcbiAgICAgICAgICAgIGNsaXA6ICdyZWN0KDAsIDAsIDAsIDApJyxcbiAgICAgICAgICAgIHdoaXRlU3BhY2U6ICdub3dyYXAnLFxuICAgICAgICAgICAgd29yZFdyYXA6ICdub3JtYWwnLFxuICAgICAgICAgICAgLy8gQXZvaWQgYnJvd3NlcnMgcmVuZGVyaW5nIHRoZSBmb2N1cyByaW5nIGluIHNvbWUgY2FzZXMuXG4gICAgICAgICAgICBvdXRsaW5lOiAnbm9uZScsXG4gICAgICAgICAgICBhcHBlYXJhbmNlOiAnbm9uZScsXG4gICAgICAgICAgICAvLyBBdm9pZCBzb21lIGNhc2VzIHdoZXJlIHRoZSBicm93c2VyIHdpbGwgc3RpbGwgcmVuZGVyIHRoZSBuYXRpdmUgY29udHJvbHNcbiAgICAgICAgICAgICctd2Via2l0LWFwcGVhcmFuY2UnOiAnbm9uZScsXG4gICAgICAgICAgICAnLW1vei1hcHBlYXJhbmNlJzogJ25vbmUnLFxuICAgICAgICAgICAgbGVmdDogMFxuICAgICAgICB9KTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,167 @@
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, inject, Directive, numberAttribute, Input, ElementRef, HostListener } from '@angular/core';
3
+
4
+ const defaultAvatarConfig = {
5
+ delay: 0
6
+ };
7
+ const RdxAvatarConfigToken = new InjectionToken('RdxAvatarConfigToken');
8
+ function provideRdxAvatarConfig(config) {
9
+ return [
10
+ {
11
+ provide: RdxAvatarConfigToken,
12
+ useValue: { ...defaultAvatarConfig, ...config }
13
+ }
14
+ ];
15
+ }
16
+ function injectAvatarConfig() {
17
+ return inject(RdxAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;
18
+ }
19
+
20
+ const RdxAvatarToken = new InjectionToken('RdxAvatarToken');
21
+ function injectAvatar() {
22
+ return inject(RdxAvatarToken);
23
+ }
24
+
25
+ class RdxAvatarDirective {
26
+ constructor() {
27
+ /**
28
+ * Store the current state of the avatar.
29
+ * @internal
30
+ */
31
+ this.state = RdxAvatarState.Idle;
32
+ }
33
+ /**
34
+ * Set the avatar state.
35
+ * @param state The state to set.
36
+ * @internal
37
+ */
38
+ setState(state) {
39
+ this.state = state;
40
+ }
41
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
42
+ 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 }); }
43
+ }
44
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarDirective, decorators: [{
45
+ type: Directive,
46
+ args: [{
47
+ selector: '[rdxAvatar]',
48
+ standalone: true,
49
+ providers: [{ provide: RdxAvatarToken, useExisting: RdxAvatarDirective }]
50
+ }]
51
+ }] });
52
+ var RdxAvatarState;
53
+ (function (RdxAvatarState) {
54
+ RdxAvatarState[RdxAvatarState["Idle"] = 0] = "Idle";
55
+ RdxAvatarState[RdxAvatarState["Loading"] = 1] = "Loading";
56
+ RdxAvatarState[RdxAvatarState["Loaded"] = 2] = "Loaded";
57
+ RdxAvatarState[RdxAvatarState["Error"] = 3] = "Error";
58
+ })(RdxAvatarState || (RdxAvatarState = {}));
59
+
60
+ class RdxAvatarFallbackDirective {
61
+ constructor() {
62
+ /**
63
+ * Access the avatar
64
+ */
65
+ this.avatar = injectAvatar();
66
+ /**
67
+ * Access the global configuration.
68
+ */
69
+ this.config = injectAvatarConfig();
70
+ /**
71
+ * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.
72
+ * @default 0
73
+ */
74
+ this.delay = this.config.delay;
75
+ /**
76
+ * Determine the delay has elapsed, and we can show the fallback.
77
+ */
78
+ this.delayElapsed = false;
79
+ /**
80
+ * Store the timeout id.
81
+ */
82
+ this.timeoutId = null;
83
+ }
84
+ /**
85
+ * Determine if this element should be hidden.
86
+ */
87
+ get visible() {
88
+ // we need to check if the element can render and if the avatar is not in a loaded state
89
+ return this.delayElapsed && this.avatar.state !== RdxAvatarState.Loaded;
90
+ }
91
+ ngOnInit() {
92
+ this.timeoutId = window.setTimeout(() => (this.delayElapsed = true), this.delay);
93
+ }
94
+ ngOnDestroy() {
95
+ if (this.timeoutId) {
96
+ window.clearTimeout(this.timeoutId);
97
+ }
98
+ }
99
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarFallbackDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
100
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "17.3.3", type: RdxAvatarFallbackDirective, isStandalone: true, selector: "[rdxAvatarFallback]", inputs: { delay: ["rdxAvatarFallbackDelay", "delay", numberAttribute] }, host: { properties: { "style.display": "visible ? null : \"none\"" } }, ngImport: i0 }); }
101
+ }
102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarFallbackDirective, decorators: [{
103
+ type: Directive,
104
+ args: [{
105
+ selector: '[rdxAvatarFallback]',
106
+ standalone: true,
107
+ host: {
108
+ '[style.display]': 'visible ? null : "none"'
109
+ }
110
+ }]
111
+ }], propDecorators: { delay: [{
112
+ type: Input,
113
+ args: [{ alias: 'rdxAvatarFallbackDelay', transform: numberAttribute }]
114
+ }] } });
115
+
116
+ class RdxAvatarImageDirective {
117
+ constructor() {
118
+ /**
119
+ * Access the avatar
120
+ */
121
+ this.avatar = injectAvatar();
122
+ /**
123
+ * Access the image element ref.
124
+ */
125
+ this.elementRef = inject(ElementRef);
126
+ }
127
+ ngOnInit() {
128
+ // mark the avatar as loading
129
+ this.avatar.setState(RdxAvatarState.Loading);
130
+ // if there is no src, we can report this as an error
131
+ if (!this.elementRef.nativeElement.src) {
132
+ this.avatar.setState(RdxAvatarState.Error);
133
+ }
134
+ // if the image has already loaded, we can report this to the avatar
135
+ if (this.elementRef.nativeElement.complete) {
136
+ this.avatar.setState(RdxAvatarState.Loaded);
137
+ }
138
+ }
139
+ onLoad() {
140
+ this.avatar.setState(RdxAvatarState.Loaded);
141
+ }
142
+ onError() {
143
+ this.avatar.setState(RdxAvatarState.Error);
144
+ }
145
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
146
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type: RdxAvatarImageDirective, isStandalone: true, selector: "img[rdxAvatarImage]", host: { listeners: { "load": "onLoad()", "error": "onError()" } }, ngImport: i0 }); }
147
+ }
148
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.3", ngImport: i0, type: RdxAvatarImageDirective, decorators: [{
149
+ type: Directive,
150
+ args: [{
151
+ selector: 'img[rdxAvatarImage]',
152
+ standalone: true
153
+ }]
154
+ }], propDecorators: { onLoad: [{
155
+ type: HostListener,
156
+ args: ['load']
157
+ }], onError: [{
158
+ type: HostListener,
159
+ args: ['error']
160
+ }] } });
161
+
162
+ /**
163
+ * Generated bundle index. Do not edit.
164
+ */
165
+
166
+ export { RdxAvatarConfigToken, RdxAvatarDirective, RdxAvatarFallbackDirective, RdxAvatarImageDirective, RdxAvatarState, defaultAvatarConfig, injectAvatarConfig, provideRdxAvatarConfig };
167
+ //# sourceMappingURL=radix-ng-primitives-avatar.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"radix-ng-primitives-avatar.mjs","sources":["../../../packages/primitives/avatar/src/avatar.config.ts","../../../packages/primitives/avatar/src/avatar.token.ts","../../../packages/primitives/avatar/src/avatar.directive.ts","../../../packages/primitives/avatar/src/avatar-fallback.directive.ts","../../../packages/primitives/avatar/src/avatar-image.directive.ts","../../../packages/primitives/avatar/radix-ng-primitives-avatar.ts"],"sourcesContent":["import { inject, InjectionToken, Provider } from '@angular/core';\n\nexport interface RdxAvatarConfig {\n /**\n * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n delay: number;\n}\n\nexport const defaultAvatarConfig: RdxAvatarConfig = {\n delay: 0\n};\n\nexport const RdxAvatarConfigToken = new InjectionToken<RdxAvatarConfig>('RdxAvatarConfigToken');\n\nexport function provideRdxAvatarConfig(config: Partial<RdxAvatarConfig>): Provider[] {\n return [\n {\n provide: RdxAvatarConfigToken,\n useValue: { ...defaultAvatarConfig, ...config }\n }\n ];\n}\n\nexport function injectAvatarConfig(): RdxAvatarConfig {\n return inject(RdxAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;\n}\n","import { inject, InjectionToken } from '@angular/core';\n\nimport type { RdxAvatarDirective } from './avatar.directive';\n\nexport const RdxAvatarToken = new InjectionToken<RdxAvatarDirective>('RdxAvatarToken');\n\nexport function injectAvatar(): RdxAvatarDirective {\n return inject(RdxAvatarToken);\n}\n","import { Directive } from '@angular/core';\n\nimport { RdxAvatarToken } from './avatar.token';\n\n@Directive({\n selector: '[rdxAvatar]',\n standalone: true,\n providers: [{ provide: RdxAvatarToken, useExisting: RdxAvatarDirective }]\n})\nexport class RdxAvatarDirective {\n /**\n * Store the current state of the avatar.\n * @internal\n */\n state: RdxAvatarState = RdxAvatarState.Idle;\n\n /**\n * Set the avatar state.\n * @param state The state to set.\n * @internal\n */\n setState(state: RdxAvatarState): void {\n this.state = state;\n }\n}\n\nexport enum RdxAvatarState {\n Idle,\n Loading,\n Loaded,\n Error\n}\n","import { Directive, Input, numberAttribute, OnDestroy, OnInit } from '@angular/core';\n\nimport { injectAvatarConfig } from './avatar.config';\nimport { RdxAvatarState } from './avatar.directive';\nimport { injectAvatar } from './avatar.token';\n\n@Directive({\n selector: '[rdxAvatarFallback]',\n standalone: true,\n host: {\n '[style.display]': 'visible ? null : \"none\"'\n }\n})\nexport class RdxAvatarFallbackDirective implements OnInit, OnDestroy {\n /**\n * Access the avatar\n */\n private readonly avatar = injectAvatar();\n\n /**\n * Access the global configuration.\n */\n private readonly config = injectAvatarConfig();\n\n /**\n * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n @Input({ alias: 'rdxAvatarFallbackDelay', transform: numberAttribute }) delay: number =\n this.config.delay;\n\n /**\n * Determine if this element should be hidden.\n */\n protected get visible(): boolean {\n // we need to check if the element can render and if the avatar is not in a loaded state\n return this.delayElapsed && this.avatar.state !== RdxAvatarState.Loaded;\n }\n\n /**\n * Determine the delay has elapsed, and we can show the fallback.\n */\n private delayElapsed = false;\n\n /**\n * Store the timeout id.\n */\n private timeoutId: number | null = null;\n\n ngOnInit(): void {\n this.timeoutId = window.setTimeout(() => (this.delayElapsed = true), this.delay);\n }\n\n ngOnDestroy(): void {\n if (this.timeoutId) {\n window.clearTimeout(this.timeoutId);\n }\n }\n}\n","import { Directive, ElementRef, HostListener, inject, OnInit } from '@angular/core';\n\nimport { RdxAvatarState } from './avatar.directive';\nimport { injectAvatar } from './avatar.token';\n\n@Directive({\n selector: 'img[rdxAvatarImage]',\n standalone: true\n})\nexport class RdxAvatarImageDirective implements OnInit {\n /**\n * Access the avatar\n */\n private readonly avatar = injectAvatar();\n\n /**\n * Access the image element ref.\n */\n private readonly elementRef = inject<ElementRef<HTMLImageElement>>(ElementRef);\n\n ngOnInit(): void {\n // mark the avatar as loading\n this.avatar.setState(RdxAvatarState.Loading);\n\n // if there is no src, we can report this as an error\n if (!this.elementRef.nativeElement.src) {\n this.avatar.setState(RdxAvatarState.Error);\n }\n\n // if the image has already loaded, we can report this to the avatar\n if (this.elementRef.nativeElement.complete) {\n this.avatar.setState(RdxAvatarState.Loaded);\n }\n }\n\n @HostListener('load')\n protected onLoad(): void {\n this.avatar.setState(RdxAvatarState.Loaded);\n }\n\n @HostListener('error')\n protected onError(): void {\n this.avatar.setState(RdxAvatarState.Error);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;AAUa,MAAA,mBAAmB,GAAoB;AAChD,IAAA,KAAK,EAAE,CAAC;EACV;MAEW,oBAAoB,GAAG,IAAI,cAAc,CAAkB,sBAAsB,EAAE;AAE1F,SAAU,sBAAsB,CAAC,MAAgC,EAAA;IACnE,OAAO;AACH,QAAA;AACI,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,EAAE;AAClD,SAAA;KACJ,CAAC;AACN,CAAC;SAEe,kBAAkB,GAAA;AAC9B,IAAA,OAAO,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,mBAAmB,CAAC;AACnF;;ACvBO,MAAM,cAAc,GAAG,IAAI,cAAc,CAAqB,gBAAgB,CAAC,CAAC;SAEvE,YAAY,GAAA;AACxB,IAAA,OAAO,MAAM,CAAC,cAAc,CAAC,CAAC;AAClC;;MCCa,kBAAkB,CAAA;AAL/B,IAAA,WAAA,GAAA;AAMI;;;AAGG;AACH,QAAA,IAAA,CAAA,KAAK,GAAmB,cAAc,CAAC,IAAI,CAAC;AAU/C,KAAA;AARG;;;;AAIG;AACH,IAAA,QAAQ,CAAC,KAAqB,EAAA;AAC1B,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;8GAdQ,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAlB,kBAAkB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAFhB,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,kBAAkB,EAAE,CAAC,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAEhE,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,UAAU,EAAE,IAAI;oBAChB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAoB,kBAAA,EAAE,CAAC;AAC5E,iBAAA,CAAA;;IAkBW,eAKX;AALD,CAAA,UAAY,cAAc,EAAA;AACtB,IAAA,cAAA,CAAA,cAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAI,CAAA;AACJ,IAAA,cAAA,CAAA,cAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAO,CAAA;AACP,IAAA,cAAA,CAAA,cAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAM,CAAA;AACN,IAAA,cAAA,CAAA,cAAA,CAAA,OAAA,CAAA,GAAA,CAAA,CAAA,GAAA,OAAK,CAAA;AACT,CAAC,EALW,cAAc,KAAd,cAAc,GAKzB,EAAA,CAAA,CAAA;;MClBY,0BAA0B,CAAA;AAPvC,IAAA,WAAA,GAAA;AAQI;;AAEG;QACc,IAAM,CAAA,MAAA,GAAG,YAAY,EAAE,CAAC;AAEzC;;AAEG;QACc,IAAM,CAAA,MAAA,GAAG,kBAAkB,EAAE,CAAC;AAE/C;;;AAGG;AACqE,QAAA,IAAA,CAAA,KAAK,GACzE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;AAUtB;;AAEG;QACK,IAAY,CAAA,YAAA,GAAG,KAAK,CAAC;AAE7B;;AAEG;QACK,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC;AAW3C,KAAA;AA3BG;;AAEG;AACH,IAAA,IAAc,OAAO,GAAA;;AAEjB,QAAA,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,cAAc,CAAC,MAAM,CAAC;KAC3E;IAYD,QAAQ,GAAA;QACJ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,UAAU,CAAC,OAAO,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;KACpF;IAED,WAAW,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,MAAM,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;SACvC;KACJ;8GA5CQ,0BAA0B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;AAA1B,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,0BAA0B,4GAekB,eAAe,CAAA,EAAA,EAAA,IAAA,EAAA,EAAA,UAAA,EAAA,EAAA,eAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAf3D,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAPtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,IAAI,EAAE;AACF,wBAAA,iBAAiB,EAAE,yBAAyB;AAC/C,qBAAA;AACJ,iBAAA,CAAA;8BAgB2E,KAAK,EAAA,CAAA;sBAA5E,KAAK;AAAC,gBAAA,IAAA,EAAA,CAAA,EAAE,KAAK,EAAE,wBAAwB,EAAE,SAAS,EAAE,eAAe,EAAE,CAAA;;;MCnB7D,uBAAuB,CAAA;AAJpC,IAAA,WAAA,GAAA;AAKI;;AAEG;QACc,IAAM,CAAA,MAAA,GAAG,YAAY,EAAE,CAAC;AAEzC;;AAEG;AACc,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAA+B,UAAU,CAAC,CAAC;AA0BlF,KAAA;IAxBG,QAAQ,GAAA;;QAEJ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;;QAG7C,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,GAAG,EAAE;YACpC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;SAC9C;;QAGD,IAAI,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,QAAQ,EAAE;YACxC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;SAC/C;KACJ;IAGS,MAAM,GAAA;QACZ,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC;KAC/C;IAGS,OAAO,GAAA;QACb,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;KAC9C;8GAlCQ,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,MAAA,EAAA,UAAA,EAAA,OAAA,EAAA,WAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE,IAAI;AACnB,iBAAA,CAAA;8BA4Ba,MAAM,EAAA,CAAA;sBADf,YAAY;uBAAC,MAAM,CAAA;gBAMV,OAAO,EAAA,CAAA;sBADhB,YAAY;uBAAC,OAAO,CAAA;;;ACxCzB;;AAEG;;;;"}