@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.
- package/avatar/README.md +1 -0
- package/avatar/index.d.ts +4 -0
- package/avatar/src/avatar-fallback.directive.d.ts +34 -0
- package/avatar/src/avatar-image.directive.d.ts +17 -0
- package/avatar/src/avatar.config.d.ts +12 -0
- package/avatar/src/avatar.directive.d.ts +22 -0
- package/avatar/src/avatar.token.d.ts +4 -0
- package/checkbox/index.d.ts +1 -1
- package/checkbox/src/checkbox-indicator.directive.d.ts +4 -4
- package/checkbox/src/checkbox.directive.d.ts +3 -3
- package/checkbox/src/checkbox.token.d.ts +3 -3
- package/esm2022/avatar/index.mjs +5 -0
- package/esm2022/avatar/radix-ng-primitives-avatar.mjs +5 -0
- package/esm2022/avatar/src/avatar-fallback.directive.mjs +61 -0
- package/esm2022/avatar/src/avatar-image.directive.mjs +50 -0
- package/esm2022/avatar/src/avatar.config.mjs +17 -0
- package/esm2022/avatar/src/avatar.directive.mjs +38 -0
- package/esm2022/avatar/src/avatar.token.mjs +6 -0
- package/esm2022/checkbox/index.mjs +2 -2
- package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +5 -5
- package/esm2022/checkbox/src/checkbox.directive.mjs +11 -11
- package/esm2022/checkbox/src/checkbox.token.mjs +4 -4
- package/esm2022/label/src/label.directive.mjs +5 -5
- package/esm2022/overlay/index.mjs +5 -0
- package/esm2022/overlay/radix-ng-primitives-overlay.mjs +5 -0
- package/esm2022/overlay/src/overlay-arrow.directive.mjs +59 -0
- package/esm2022/overlay/src/overlay-arrow.token.mjs +3 -0
- package/esm2022/overlay/src/overlay-trigger.directive.mjs +279 -0
- package/esm2022/overlay/src/overlay-trigger.token.mjs +9 -0
- package/esm2022/overlay/src/overlay.directive.mjs +51 -0
- package/esm2022/overlay/src/overlay.token.mjs +3 -0
- package/esm2022/progress/src/progress-indicator.directive.mjs +5 -5
- package/esm2022/progress/src/progress.directive.mjs +7 -7
- package/esm2022/progress/src/progress.token.mjs +4 -4
- package/esm2022/radio/index.mjs +2 -2
- package/esm2022/radio/src/radio-group.directive.mjs +14 -14
- package/esm2022/radio/src/radio-group.token.mjs +4 -4
- package/esm2022/radio/src/radio-indicator.directive.mjs +5 -5
- package/esm2022/radio/src/radio-item.directive.mjs +11 -11
- package/esm2022/radio/src/radio-item.token.mjs +4 -4
- package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +8 -8
- package/esm2022/roving-focus/src/roving-focus-group.token.mjs +4 -4
- package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +8 -8
- package/esm2022/roving-focus/src/roving-focus-item.token.mjs +4 -4
- package/esm2022/separator/src/separator.directive.mjs +6 -6
- package/esm2022/switch/index.mjs +2 -2
- package/esm2022/switch/src/switch-thumb.directive.mjs +5 -5
- package/esm2022/switch/src/switch.directive.mjs +11 -11
- package/esm2022/switch/src/switch.token.mjs +4 -4
- package/esm2022/toggle/index.mjs +2 -0
- package/esm2022/toggle/radix-ng-primitives-toggle.mjs +5 -0
- package/esm2022/toggle/src/toggle.directive.mjs +65 -0
- package/esm2022/tooltip/index.mjs +5 -0
- package/esm2022/tooltip/radix-ng-primitives-tooltip.mjs +5 -0
- package/esm2022/tooltip/src/tooltip-arrow.directive.mjs +17 -0
- package/esm2022/tooltip/src/tooltip-trigger.directive.mjs +148 -0
- package/esm2022/tooltip/src/tooltip-trigger.token.mjs +6 -0
- package/esm2022/tooltip/src/tooltip.config.mjs +31 -0
- package/esm2022/tooltip/src/tooltip.directive.mjs +46 -0
- package/esm2022/visually-hidden/src/visually-hidden.directive.mjs +5 -5
- package/fesm2022/radix-ng-primitives-avatar.mjs +167 -0
- package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-checkbox.mjs +32 -32
- package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-label.mjs +5 -5
- package/fesm2022/radix-ng-primitives-label.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-overlay.mjs +399 -0
- package/fesm2022/radix-ng-primitives-overlay.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-progress.mjs +12 -12
- package/fesm2022/radix-ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-radio.mjs +48 -48
- package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-roving-focus.mjs +15 -15
- package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-separator.mjs +5 -5
- package/fesm2022/radix-ng-primitives-separator.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-switch.mjs +34 -34
- package/fesm2022/radix-ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/radix-ng-primitives-toggle.mjs +72 -0
- package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-tooltip.mjs +242 -0
- package/fesm2022/radix-ng-primitives-tooltip.mjs.map +1 -0
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs +5 -5
- package/fesm2022/radix-ng-primitives-visually-hidden.mjs.map +1 -1
- package/label/src/label.directive.d.ts +3 -3
- package/overlay/README.md +1 -0
- package/overlay/index.d.ts +4 -0
- package/overlay/src/overlay-arrow.directive.d.ts +29 -0
- package/overlay/src/overlay-arrow.token.d.ts +3 -0
- package/overlay/src/overlay-trigger.directive.d.ts +163 -0
- package/overlay/src/overlay-trigger.token.d.ts +7 -0
- package/overlay/src/overlay.directive.d.ts +29 -0
- package/overlay/src/overlay.token.d.ts +3 -0
- package/package.json +29 -4
- package/progress/src/progress-indicator.directive.d.ts +4 -4
- package/progress/src/progress.directive.d.ts +3 -3
- package/progress/src/progress.token.d.ts +3 -3
- package/radio/index.d.ts +1 -1
- package/radio/src/radio-group.directive.d.ts +3 -3
- package/radio/src/radio-group.token.d.ts +3 -3
- package/radio/src/radio-indicator.directive.d.ts +5 -5
- package/radio/src/radio-item.directive.d.ts +4 -4
- package/radio/src/radio-item.token.d.ts +3 -3
- package/roving-focus/src/roving-focus-group.directive.d.ts +7 -7
- package/roving-focus/src/roving-focus-group.token.d.ts +3 -3
- package/roving-focus/src/roving-focus-item.directive.d.ts +3 -3
- package/roving-focus/src/roving-focus-item.token.d.ts +3 -3
- package/separator/src/separator.directive.d.ts +3 -3
- package/switch/index.d.ts +1 -1
- package/switch/src/switch-thumb.directive.d.ts +4 -4
- package/switch/src/switch.directive.d.ts +3 -3
- package/switch/src/switch.token.d.ts +3 -3
- package/toggle/README.md +3 -0
- package/toggle/index.d.ts +1 -0
- package/toggle/src/toggle.directive.d.ts +30 -0
- package/tooltip/README.md +1 -0
- package/tooltip/index.d.ts +4 -0
- package/tooltip/src/tooltip-arrow.directive.d.ts +6 -0
- package/tooltip/src/tooltip-trigger.directive.d.ts +79 -0
- package/tooltip/src/tooltip-trigger.token.d.ts +4 -0
- package/tooltip/src/tooltip.config.d.ts +46 -0
- package/tooltip/src/tooltip.directive.d.ts +17 -0
- package/visually-hidden/src/visually-hidden.directive.d.ts +3 -3
@@ -1,6 +1,6 @@
|
|
1
|
-
import {
|
2
|
-
export const
|
1
|
+
import { inject, InjectionToken } from '@angular/core';
|
2
|
+
export const RdxSwitchToken = new InjectionToken('RdxSwitchToken');
|
3
3
|
export function injectSwitch() {
|
4
|
-
return inject(
|
4
|
+
return inject(RdxSwitchToken);
|
5
5
|
}
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
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
|
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:
|
33
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.3", type:
|
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:
|
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,
|
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":"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"}
|