ng-primitives 0.0.7 → 0.2.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/README.md +14 -4
- package/accordion/accordion-trigger/accordion-trigger.directive.d.ts +2 -1
- package/autofill/README.md +3 -0
- package/autofill/autofill/autofill.directive.d.ts +19 -0
- package/{select/select-button/select-button.token.d.ts → autofill/autofill/autofill.token.d.ts} +4 -4
- package/autofill/index.d.ts +9 -0
- package/avatar/avatar/avatar.directive.d.ts +2 -1
- package/button/README.md +3 -0
- package/button/button/button.directive.d.ts +27 -0
- package/{select/select-option/select-option.token.d.ts → button/button/button.token.d.ts} +4 -4
- package/button/index.d.ts +9 -0
- package/checkbox/checkbox/checkbox.directive.d.ts +11 -61
- package/checkbox/index.d.ts +0 -4
- package/esm2022/a11y/visually-hidden/visually-hidden.directive.mjs +3 -3
- package/esm2022/accordion/accordion/accordion.directive.mjs +5 -4
- package/esm2022/accordion/accordion-content/accordion-content.directive.mjs +5 -6
- package/esm2022/accordion/accordion-item/accordion-item.directive.mjs +5 -5
- package/esm2022/accordion/accordion-trigger/accordion-trigger.directive.mjs +8 -5
- package/esm2022/autofill/autofill/autofill.directive.mjs +71 -0
- package/esm2022/autofill/autofill/autofill.token.mjs +16 -0
- package/esm2022/autofill/index.mjs +10 -0
- package/esm2022/autofill/ng-primitives-autofill.mjs +5 -0
- package/esm2022/avatar/avatar/avatar.directive.mjs +7 -4
- package/esm2022/avatar/avatar-fallback/avatar-fallback.directive.mjs +3 -3
- package/esm2022/avatar/avatar-image/avatar-image.directive.mjs +3 -3
- package/esm2022/button/button/button.directive.mjs +47 -0
- package/esm2022/button/button/button.token.mjs +16 -0
- package/esm2022/button/index.mjs +10 -0
- package/esm2022/button/ng-primitives-button.mjs +5 -0
- package/esm2022/checkbox/checkbox/checkbox.directive.mjs +29 -79
- package/esm2022/checkbox/index.mjs +1 -5
- package/esm2022/file-upload/file-upload/file-upload.directive.mjs +7 -4
- package/esm2022/focus-trap/focus-trap/focus-trap.directive.mjs +262 -0
- package/esm2022/focus-trap/focus-trap/focus-trap.token.mjs +16 -0
- package/esm2022/focus-trap/index.mjs +10 -0
- package/esm2022/focus-trap/ng-primitives-focus-trap.mjs +5 -0
- package/esm2022/form-field/description/description.directive.mjs +14 -14
- package/esm2022/form-field/error/error.directive.mjs +27 -29
- package/esm2022/form-field/form-control/form-control.directive.mjs +22 -16
- package/esm2022/form-field/form-field/form-field.directive.mjs +3 -3
- package/esm2022/form-field/form-field/form-field.token.mjs +3 -7
- package/esm2022/form-field/label/label.directive.mjs +56 -17
- package/esm2022/input/index.mjs +10 -0
- package/esm2022/input/input/input.directive.mjs +55 -0
- package/esm2022/input/input/input.token.mjs +16 -0
- package/esm2022/input/ng-primitives-input.mjs +5 -0
- package/esm2022/interactions/focus/focus.directive.mjs +15 -10
- package/esm2022/interactions/focus-visible/focus-visible.directive.mjs +12 -7
- package/esm2022/interactions/hover/hover.directive.mjs +16 -11
- package/esm2022/interactions/index.mjs +5 -1
- package/esm2022/interactions/move/move.directive.mjs +216 -0
- package/esm2022/interactions/move/move.token.mjs +16 -0
- package/esm2022/interactions/press/press.directive.mjs +118 -0
- package/esm2022/interactions/press/press.token.mjs +16 -0
- package/esm2022/internal/disabled/disabled.mjs +19 -0
- package/esm2022/internal/index.mjs +11 -0
- package/esm2022/internal/ng-primitives-internal.mjs +5 -0
- package/esm2022/internal/orientation/orientation.mjs +19 -0
- package/esm2022/internal/style-injector/style-injector.mjs +81 -0
- package/esm2022/progress/progress/progress.directive.mjs +3 -3
- package/esm2022/progress/progress-indicator/progress-indicator.directive.mjs +3 -3
- package/esm2022/radio/radio-group/radio-group.directive.mjs +14 -54
- package/esm2022/radio/radio-indicator/radio-indicator.directive.mjs +8 -5
- package/esm2022/radio/radio-item/radio-item.directive.mjs +8 -6
- package/esm2022/resize/resize/resize.directive.mjs +3 -3
- package/esm2022/roving-focus/roving-focus-group/roving-focus-group.directive.mjs +14 -9
- package/esm2022/roving-focus/roving-focus-item/roving-focus-item.directive.mjs +3 -3
- package/esm2022/search/index.mjs +10 -0
- package/esm2022/search/ng-primitives-search.mjs +5 -0
- package/esm2022/search/search-field/search-field.directive.mjs +47 -0
- package/esm2022/search/search-field/search-field.token.mjs +16 -0
- package/esm2022/select/index.mjs +1 -7
- package/esm2022/select/select/select.directive.mjs +23 -36
- package/esm2022/select/select/select.token.mjs +1 -1
- package/esm2022/slider/slider/slider.directive.mjs +18 -5
- package/esm2022/slider/slider-range/slider-range.directive.mjs +6 -5
- package/esm2022/slider/slider-thumb/slider-thumb.directive.mjs +7 -4
- package/esm2022/slider/slider-track/slider-track.directive.mjs +8 -4
- package/esm2022/switch/switch/switch.directive.mjs +18 -58
- package/esm2022/switch/switch-thumb/switch-thumb.directive.mjs +9 -6
- package/esm2022/tabs/tab-button/tab-button.directive.mjs +8 -6
- package/esm2022/tabs/tab-list/tab-list.directive.mjs +3 -3
- package/esm2022/tabs/tab-panel/tab-panel.directive.mjs +5 -6
- package/esm2022/tabs/tabset/tabset.directive.mjs +14 -18
- package/esm2022/textarea/index.mjs +10 -0
- package/esm2022/textarea/ng-primitives-textarea.mjs +5 -0
- package/esm2022/textarea/textarea/textarea.directive.mjs +37 -0
- package/esm2022/textarea/textarea/textarea.token.mjs +16 -0
- package/esm2022/toggle/toggle/toggle.directive.mjs +33 -13
- package/esm2022/tooltip/tooltip/tooltip.directive.mjs +3 -3
- package/esm2022/tooltip/tooltip-trigger/tooltip-trigger.directive.mjs +7 -7
- package/esm2022/utils/helpers/focus-manager.mjs +3 -3
- package/esm2022/utils/index.mjs +2 -2
- package/esm2022/utils/signals/async.mjs +11 -17
- package/fesm2022/ng-primitives-a11y.mjs +3 -3
- package/fesm2022/ng-primitives-accordion.mjs +19 -16
- package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/ng-primitives-autofill.mjs +100 -0
- package/fesm2022/ng-primitives-autofill.mjs.map +1 -0
- package/fesm2022/ng-primitives-avatar.mjs +13 -10
- package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/ng-primitives-button.mjs +76 -0
- package/fesm2022/ng-primitives-button.mjs.map +1 -0
- package/fesm2022/ng-primitives-checkbox.mjs +25 -203
- package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-file-upload.mjs +6 -3
- package/fesm2022/ng-primitives-file-upload.mjs.map +1 -1
- package/fesm2022/ng-primitives-focus-trap.mjs +291 -0
- package/fesm2022/ng-primitives-focus-trap.mjs.map +1 -0
- package/fesm2022/ng-primitives-form-field.mjs +119 -80
- package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
- package/fesm2022/ng-primitives-input.mjs +84 -0
- package/fesm2022/ng-primitives-input.mjs.map +1 -0
- package/fesm2022/ng-primitives-interactions.mjs +394 -26
- package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
- package/fesm2022/ng-primitives-internal.mjs +132 -0
- package/fesm2022/ng-primitives-internal.mjs.map +1 -0
- package/fesm2022/ng-primitives-progress.mjs +6 -6
- package/fesm2022/ng-primitives-radio.mjs +25 -62
- package/fesm2022/ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/ng-primitives-resize.mjs +3 -3
- package/fesm2022/ng-primitives-roving-focus.mjs +15 -10
- package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/ng-primitives-search.mjs +76 -0
- package/fesm2022/ng-primitives-search.mjs.map +1 -0
- package/fesm2022/ng-primitives-select.mjs +23 -395
- package/fesm2022/ng-primitives-select.mjs.map +1 -1
- package/fesm2022/ng-primitives-slider.mjs +35 -14
- package/fesm2022/ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/ng-primitives-switch.mjs +23 -62
- package/fesm2022/ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/ng-primitives-tabs.mjs +27 -30
- package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/ng-primitives-textarea.mjs +66 -0
- package/fesm2022/ng-primitives-textarea.mjs.map +1 -0
- package/fesm2022/ng-primitives-toggle.mjs +32 -12
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/ng-primitives-tooltip.mjs +9 -9
- package/fesm2022/ng-primitives-tooltip.mjs.map +1 -1
- package/fesm2022/ng-primitives-utils.mjs +14 -20
- package/fesm2022/ng-primitives-utils.mjs.map +1 -1
- package/file-upload/file-upload/file-upload.directive.d.ts +2 -1
- package/focus-trap/README.md +3 -0
- package/focus-trap/focus-trap/focus-trap.directive.d.ts +64 -0
- package/{select/select-options/select-options.token.d.ts → focus-trap/focus-trap/focus-trap.token.d.ts} +4 -4
- package/focus-trap/index.d.ts +9 -0
- package/form-field/description/description.directive.d.ts +1 -1
- package/form-field/error/error.directive.d.ts +9 -5
- package/form-field/form-control/form-control.directive.d.ts +7 -3
- package/form-field/form-field/form-field.token.d.ts +1 -1
- package/form-field/label/label.directive.d.ts +3 -2
- package/input/README.md +3 -0
- package/input/index.d.ts +9 -0
- package/input/input/input.directive.d.ts +33 -0
- package/input/input/input.token.d.ts +14 -0
- package/interactions/focus/focus.directive.d.ts +6 -2
- package/interactions/focus-visible/focus-visible.directive.d.ts +5 -1
- package/interactions/hover/hover.directive.d.ts +5 -1
- package/interactions/index.d.ts +4 -0
- package/interactions/move/move.directive.d.ts +126 -0
- package/interactions/move/move.token.d.ts +14 -0
- package/interactions/press/press.directive.d.ts +59 -0
- package/interactions/press/press.token.d.ts +14 -0
- package/internal/README.md +3 -0
- package/internal/disabled/disabled.d.ts +21 -0
- package/internal/index.d.ts +10 -0
- package/internal/orientation/orientation.d.ts +22 -0
- package/internal/style-injector/style-injector.d.ts +36 -0
- package/package.json +49 -7
- package/radio/radio-group/radio-group.directive.d.ts +4 -41
- package/radio/radio-indicator/radio-indicator.directive.d.ts +2 -1
- package/radio/radio-item/radio-item.directive.d.ts +2 -1
- package/roving-focus/roving-focus-group/roving-focus-group.directive.d.ts +7 -2
- package/search/README.md +3 -0
- package/search/index.d.ts +9 -0
- package/search/search-field/search-field.directive.d.ts +15 -0
- package/search/search-field/search-field.token.d.ts +14 -0
- package/select/index.d.ts +0 -6
- package/select/select/select.directive.d.ts +7 -22
- package/select/select/select.token.d.ts +2 -2
- package/slider/slider/slider.directive.d.ts +4 -2
- package/slider/slider-thumb/slider-thumb.directive.d.ts +2 -1
- package/slider/slider-track/slider-track.directive.d.ts +1 -1
- package/switch/switch/switch.directive.d.ts +5 -45
- package/switch/switch-thumb/switch-thumb.directive.d.ts +2 -1
- package/tabs/tab-button/tab-button.directive.d.ts +2 -1
- package/tabs/tabset/tabset.directive.d.ts +3 -9
- package/textarea/README.md +3 -0
- package/textarea/index.d.ts +9 -0
- package/textarea/textarea/textarea.directive.d.ts +20 -0
- package/textarea/textarea/textarea.token.d.ts +14 -0
- package/toggle/toggle/toggle.directive.d.ts +16 -4
- package/utils/index.d.ts +1 -1
- package/utils/signals/async.d.ts +10 -12
- package/checkbox/checkbox-indicator/checkbox-indicator.directive.d.ts +0 -19
- package/checkbox/checkbox-indicator/checkbox-indicator.token.d.ts +0 -15
- package/checkbox/checkbox-input/checkbox-input.directive.d.ts +0 -10
- package/checkbox/checkbox-label/checkbox-label.directive.d.ts +0 -9
- package/esm2022/checkbox/checkbox-indicator/checkbox-indicator.directive.mjs +0 -51
- package/esm2022/checkbox/checkbox-indicator/checkbox-indicator.token.mjs +0 -17
- package/esm2022/checkbox/checkbox-input/checkbox-input.directive.mjs +0 -40
- package/esm2022/checkbox/checkbox-label/checkbox-label.directive.mjs +0 -32
- package/esm2022/select/select-button/select-button.directive.mjs +0 -84
- package/esm2022/select/select-button/select-button.token.mjs +0 -16
- package/esm2022/select/select-option/select-option.directive.mjs +0 -90
- package/esm2022/select/select-option/select-option.token.mjs +0 -16
- package/esm2022/select/select-options/select-options.directive.mjs +0 -157
- package/esm2022/select/select-options/select-options.token.mjs +0 -16
- package/select/select-button/select-button.directive.d.ts +0 -51
- package/select/select-option/select-option.directive.d.ts +0 -57
- package/select/select-options/select-options.directive.d.ts +0 -65
|
@@ -16,10 +16,10 @@ export class FocusManager {
|
|
|
16
16
|
break;
|
|
17
17
|
}
|
|
18
18
|
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
20
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: FocusManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: FocusManager, providedIn: 'root' }); }
|
|
21
21
|
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: FocusManager, decorators: [{
|
|
23
23
|
type: Injectable,
|
|
24
24
|
args: [{
|
|
25
25
|
providedIn: 'root',
|
package/esm2022/utils/index.mjs
CHANGED
|
@@ -8,6 +8,6 @@
|
|
|
8
8
|
export { injectDisposables } from './helpers/disposables';
|
|
9
9
|
export { FocusManager } from './helpers/focus-manager';
|
|
10
10
|
export { uniqueId } from './helpers/unique-id';
|
|
11
|
-
export {
|
|
11
|
+
export { onBooleanChange, onChange } from './signals/async';
|
|
12
12
|
export { injectDimensions } from './ui/dimensions';
|
|
13
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
13
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL3V0aWxzL3NyYy9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7O0dBTUc7QUFFSCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMxRCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0seUJBQXlCLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxlQUFlLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIENvcHlyaWdodCDCqSAyMDI0IEFuZ3VsYXIgUHJpbWl0aXZlcy5cbiAqIGh0dHBzOi8vZ2l0aHViLmNvbS9uZy1wcmltaXRpdmVzL25nLXByaW1pdGl2ZXNcbiAqXG4gKiBUaGlzIHNvdXJjZSBjb2RlIGlzIGxpY2Vuc2VkIHVuZGVyIHRoZSBDQyBCWS1ORCA0LjAgbGljZW5zZSBmb3VuZCBpbiB0aGVcbiAqIExJQ0VOU0UgZmlsZSBpbiB0aGUgcm9vdCBkaXJlY3Rvcnkgb2YgdGhpcyBzb3VyY2UgdHJlZS5cbiAqL1xuXG5leHBvcnQgeyBpbmplY3REaXNwb3NhYmxlcyB9IGZyb20gJy4vaGVscGVycy9kaXNwb3NhYmxlcyc7XG5leHBvcnQgeyBGb2N1c01hbmFnZXIgfSBmcm9tICcuL2hlbHBlcnMvZm9jdXMtbWFuYWdlcic7XG5leHBvcnQgeyB1bmlxdWVJZCB9IGZyb20gJy4vaGVscGVycy91bmlxdWUtaWQnO1xuZXhwb3J0IHsgb25Cb29sZWFuQ2hhbmdlLCBvbkNoYW5nZSB9IGZyb20gJy4vc2lnbmFscy9hc3luYyc7XG5leHBvcnQgeyBpbmplY3REaW1lbnNpb25zIH0gZnJvbSAnLi91aS9kaW1lbnNpb25zJztcbiJdfQ==
|
|
@@ -6,22 +6,6 @@
|
|
|
6
6
|
* LICENSE file in the root directory of this source tree.
|
|
7
7
|
*/
|
|
8
8
|
import { effect, signal } from '@angular/core';
|
|
9
|
-
/**
|
|
10
|
-
* Create a signal from an observable that is updated asynchronously.
|
|
11
|
-
* @param fn The function that returns an observable.
|
|
12
|
-
* @param options Options for the effect.
|
|
13
|
-
* @param options.injector
|
|
14
|
-
* @returns A signal that emits the value of the observable.
|
|
15
|
-
* @internal
|
|
16
|
-
*/
|
|
17
|
-
export function computedAsync(fn, options) {
|
|
18
|
-
const value = signal(null);
|
|
19
|
-
effect(onCleanup => {
|
|
20
|
-
const subscription = fn()?.subscribe(value.set);
|
|
21
|
-
onCleanup(() => subscription?.unsubscribe());
|
|
22
|
-
}, { allowSignalWrites: true, injector: options?.injector });
|
|
23
|
-
return value;
|
|
24
|
-
}
|
|
25
9
|
/**
|
|
26
10
|
* Listen for changes to a signal and call a function when the signal changes.
|
|
27
11
|
* @param source
|
|
@@ -40,4 +24,14 @@ export function onChange(source, fn, options) {
|
|
|
40
24
|
}
|
|
41
25
|
}, { allowSignalWrites: true, injector: options?.injector });
|
|
42
26
|
}
|
|
43
|
-
|
|
27
|
+
/**
|
|
28
|
+
* Listen for changes to a boolean signal and call one of two functions when the signal changes.
|
|
29
|
+
* @param source
|
|
30
|
+
* @param onTrue
|
|
31
|
+
* @param onFalse
|
|
32
|
+
* @param options
|
|
33
|
+
*/
|
|
34
|
+
export function onBooleanChange(source, onTrue, onFalse, options) {
|
|
35
|
+
onChange(source, value => (value ? onTrue() : onFalse()), options);
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXN5bmMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9uZy1wcmltaXRpdmVzL3V0aWxzL3NyYy9zaWduYWxzL2FzeW5jLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7R0FNRztBQUNILE9BQU8sRUFBb0IsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRTs7Ozs7OztHQU9HO0FBQ0gsTUFBTSxVQUFVLFFBQVEsQ0FDdEIsTUFBb0MsRUFDcEMsRUFBOEUsRUFDOUUsT0FBZ0M7SUFFaEMsTUFBTSxhQUFhLEdBQUcsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7SUFFdkMsTUFBTSxDQUNKLEdBQUcsRUFBRTtRQUNILE1BQU0sS0FBSyxHQUFHLE1BQU0sRUFBRSxDQUFDO1FBQ3ZCLElBQUksS0FBSyxLQUFLLGFBQWEsRUFBRSxFQUFFLENBQUM7WUFDOUIsRUFBRSxDQUFDLEtBQUssRUFBRSxhQUFhLEVBQUUsQ0FBQyxDQUFDO1lBQzNCLGFBQWEsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDM0IsQ0FBQztJQUNILENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxDQUN6RCxDQUFDO0FBQ0osQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILE1BQU0sVUFBVSxlQUFlLENBQzdCLE1BQXVCLEVBQ3ZCLE1BQWtCLEVBQ2xCLE9BQW1CLEVBQ25CLE9BQWdDO0lBRWhDLFFBQVEsQ0FBQyxNQUFNLEVBQUUsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUM7QUFDckUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQ29weXJpZ2h0IMKpIDIwMjQgQW5ndWxhciBQcmltaXRpdmVzLlxuICogaHR0cHM6Ly9naXRodWIuY29tL25nLXByaW1pdGl2ZXMvbmctcHJpbWl0aXZlc1xuICpcbiAqIFRoaXMgc291cmNlIGNvZGUgaXMgbGljZW5zZWQgdW5kZXIgdGhlIENDIEJZLU5EIDQuMCBsaWNlbnNlIGZvdW5kIGluIHRoZVxuICogTElDRU5TRSBmaWxlIGluIHRoZSByb290IGRpcmVjdG9yeSBvZiB0aGlzIHNvdXJjZSB0cmVlLlxuICovXG5pbXBvcnQgeyBJbmplY3RvciwgU2lnbmFsLCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG4vKipcbiAqIExpc3RlbiBmb3IgY2hhbmdlcyB0byBhIHNpZ25hbCBhbmQgY2FsbCBhIGZ1bmN0aW9uIHdoZW4gdGhlIHNpZ25hbCBjaGFuZ2VzLlxuICogQHBhcmFtIHNvdXJjZVxuICogQHBhcmFtIGZuXG4gKiBAcGFyYW0gb3B0aW9uc1xuICogQHBhcmFtIG9wdGlvbnMuaW5qZWN0b3JcbiAqIEBpbnRlcm5hbFxuICovXG5leHBvcnQgZnVuY3Rpb24gb25DaGFuZ2U8VD4oXG4gIHNvdXJjZTogU2lnbmFsPFQgfCBudWxsIHwgdW5kZWZpbmVkPixcbiAgZm46ICh2YWx1ZTogVCB8IG51bGwgfCB1bmRlZmluZWQsIHByZXZpb3VzVmFsdWU6IFQgfCBudWxsIHwgdW5kZWZpbmVkKSA9PiB2b2lkLFxuICBvcHRpb25zPzogeyBpbmplY3RvcjogSW5qZWN0b3IgfSxcbik6IHZvaWQge1xuICBjb25zdCBwcmV2aW91c1ZhbHVlID0gc2lnbmFsKHNvdXJjZSgpKTtcblxuICBlZmZlY3QoXG4gICAgKCkgPT4ge1xuICAgICAgY29uc3QgdmFsdWUgPSBzb3VyY2UoKTtcbiAgICAgIGlmICh2YWx1ZSAhPT0gcHJldmlvdXNWYWx1ZSgpKSB7XG4gICAgICAgIGZuKHZhbHVlLCBwcmV2aW91c1ZhbHVlKCkpO1xuICAgICAgICBwcmV2aW91c1ZhbHVlLnNldCh2YWx1ZSk7XG4gICAgICB9XG4gICAgfSxcbiAgICB7IGFsbG93U2lnbmFsV3JpdGVzOiB0cnVlLCBpbmplY3Rvcjogb3B0aW9ucz8uaW5qZWN0b3IgfSxcbiAgKTtcbn1cblxuLyoqXG4gKiBMaXN0ZW4gZm9yIGNoYW5nZXMgdG8gYSBib29sZWFuIHNpZ25hbCBhbmQgY2FsbCBvbmUgb2YgdHdvIGZ1bmN0aW9ucyB3aGVuIHRoZSBzaWduYWwgY2hhbmdlcy5cbiAqIEBwYXJhbSBzb3VyY2VcbiAqIEBwYXJhbSBvblRydWVcbiAqIEBwYXJhbSBvbkZhbHNlXG4gKiBAcGFyYW0gb3B0aW9uc1xuICovXG5leHBvcnQgZnVuY3Rpb24gb25Cb29sZWFuQ2hhbmdlKFxuICBzb3VyY2U6IFNpZ25hbDxib29sZWFuPixcbiAgb25UcnVlOiAoKSA9PiB2b2lkLFxuICBvbkZhbHNlOiAoKSA9PiB2b2lkLFxuICBvcHRpb25zPzogeyBpbmplY3RvcjogSW5qZWN0b3IgfSxcbik6IHZvaWQge1xuICBvbkNoYW5nZShzb3VyY2UsIHZhbHVlID0+ICh2YWx1ZSA/IG9uVHJ1ZSgpIDogb25GYWxzZSgpKSwgb3B0aW9ucyk7XG59XG4iXX0=
|
|
@@ -58,10 +58,10 @@ class NgpVisuallyHidden {
|
|
|
58
58
|
setVisibility(visible) {
|
|
59
59
|
this.hidden.set(!visible);
|
|
60
60
|
}
|
|
61
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
62
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
61
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpVisuallyHidden, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
62
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpVisuallyHidden, isStandalone: true, selector: "[ngpVisuallyHidden]", host: { properties: { "style": "style()" } }, providers: [{ provide: NgpVisuallyHiddenToken, useExisting: NgpVisuallyHidden }], exportAs: ["ngpVisuallyHidden"], ngImport: i0 }); }
|
|
63
63
|
}
|
|
64
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
64
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpVisuallyHidden, decorators: [{
|
|
65
65
|
type: Directive,
|
|
66
66
|
args: [{
|
|
67
67
|
standalone: true,
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, input, Directive, booleanAttribute, contentChild, computed, HostListener, model } from '@angular/core';
|
|
3
3
|
import { uniqueId, injectDimensions } from 'ng-primitives/utils';
|
|
4
|
+
import * as i1 from 'ng-primitives/interactions';
|
|
5
|
+
import { NgpHover, NgpPress, NgpFocusVisible } from 'ng-primitives/interactions';
|
|
4
6
|
|
|
5
7
|
/**
|
|
6
8
|
* Copyright © 2024 Angular Primitives.
|
|
@@ -76,10 +78,10 @@ class NgpAccordionContent {
|
|
|
76
78
|
*/
|
|
77
79
|
this.dimensions = injectDimensions();
|
|
78
80
|
}
|
|
79
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
80
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.
|
|
81
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordionContent, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
82
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpAccordionContent, isStandalone: true, selector: "[ngpAccordionContent]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "role": "region" }, properties: { "id": "id()", "attr.data-orientation": "accordion.orientation()", "attr.data-open": "dimensions().mounted ? accordionItem.open() : null", "attr.aria-labelledby": "accordionItem.triggerId()", "style.--ngp-accordion-content-width.px": "dimensions().width", "style.--ngp-accordion-content-height.px": "dimensions().height" } }, providers: [{ provide: NgpAccordionContentToken, useExisting: NgpAccordionContent }], exportAs: ["ngpAccordionContent"], ngImport: i0 }); }
|
|
81
83
|
}
|
|
82
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordionContent, decorators: [{
|
|
83
85
|
type: Directive,
|
|
84
86
|
args: [{
|
|
85
87
|
standalone: true,
|
|
@@ -90,11 +92,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
90
92
|
role: 'region',
|
|
91
93
|
'[id]': 'id()',
|
|
92
94
|
'[attr.data-orientation]': 'accordion.orientation()',
|
|
93
|
-
'[attr.data-
|
|
95
|
+
'[attr.data-open]': 'dimensions().mounted ? accordionItem.open() : null',
|
|
94
96
|
'[attr.aria-labelledby]': 'accordionItem.triggerId()',
|
|
95
97
|
'[style.--ngp-accordion-content-width.px]': 'dimensions().width',
|
|
96
98
|
'[style.--ngp-accordion-content-height.px]': 'dimensions().height',
|
|
97
|
-
'[hidden]': '!accordionItem.open() && dimensions().mounted ? true : null',
|
|
98
99
|
},
|
|
99
100
|
}]
|
|
100
101
|
}] });
|
|
@@ -155,10 +156,10 @@ class NgpAccordionItem {
|
|
|
155
156
|
*/
|
|
156
157
|
this.contentId = computed(() => this.content()?.id());
|
|
157
158
|
}
|
|
158
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
159
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.
|
|
159
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordionItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
160
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.2.0", version: "18.1.1", type: NgpAccordionItem, isStandalone: true, selector: "[ngpAccordionItem]", inputs: { value: { classPropertyName: "value", publicName: "ngpAccordionItemValue", isSignal: true, isRequired: true, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpAccordionItemDisabled", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "attr.data-orientation": "accordion.orientation()", "attr.data-open": "open()", "attr.data-disabled": "disabled() || accordion.disabled()" } }, providers: [{ provide: NgpAccordionItemToken, useExisting: NgpAccordionItem }], queries: [{ propertyName: "trigger", first: true, predicate: NgpAccordionTriggerToken, descendants: true, isSignal: true }, { propertyName: "content", first: true, predicate: NgpAccordionContentToken, descendants: true, isSignal: true }], exportAs: ["ngpAccordionItem"], ngImport: i0 }); }
|
|
160
161
|
}
|
|
161
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
162
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordionItem, decorators: [{
|
|
162
163
|
type: Directive,
|
|
163
164
|
args: [{
|
|
164
165
|
standalone: true,
|
|
@@ -167,7 +168,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
167
168
|
providers: [{ provide: NgpAccordionItemToken, useExisting: NgpAccordionItem }],
|
|
168
169
|
host: {
|
|
169
170
|
'[attr.data-orientation]': 'accordion.orientation()',
|
|
170
|
-
'[attr.data-
|
|
171
|
+
'[attr.data-open]': 'open()',
|
|
171
172
|
'[attr.data-disabled]': 'disabled() || accordion.disabled()',
|
|
172
173
|
},
|
|
173
174
|
}]
|
|
@@ -204,20 +205,21 @@ class NgpAccordionTrigger {
|
|
|
204
205
|
}
|
|
205
206
|
this.accordion.toggle(this.item.value());
|
|
206
207
|
}
|
|
207
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
208
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.
|
|
208
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordionTrigger, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
209
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpAccordionTrigger, isStandalone: true, selector: "[ngpAccordionTrigger]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { listeners: { "click": "toggle()" }, properties: { "id": "id()", "attr.data-orientation": "accordion.orientation()", "attr.data-open": "item.open()", "attr.data-disabled": "item.disabled() || accordion.disabled()", "attr.aria-controls": "item.contentId()", "attr.aria-expanded": "item.open()" } }, providers: [{ provide: NgpAccordionTriggerToken, useExisting: NgpAccordionTrigger }], exportAs: ["ngpAccordionTrigger"], hostDirectives: [{ directive: i1.NgpHover }, { directive: i1.NgpPress }, { directive: i1.NgpFocusVisible }], ngImport: i0 }); }
|
|
209
210
|
}
|
|
210
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
211
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordionTrigger, decorators: [{
|
|
211
212
|
type: Directive,
|
|
212
213
|
args: [{
|
|
213
214
|
standalone: true,
|
|
214
215
|
selector: '[ngpAccordionTrigger]',
|
|
215
216
|
exportAs: 'ngpAccordionTrigger',
|
|
216
217
|
providers: [{ provide: NgpAccordionTriggerToken, useExisting: NgpAccordionTrigger }],
|
|
218
|
+
hostDirectives: [NgpHover, NgpPress, NgpFocusVisible],
|
|
217
219
|
host: {
|
|
218
220
|
'[id]': 'id()',
|
|
219
221
|
'[attr.data-orientation]': 'accordion.orientation()',
|
|
220
|
-
'[attr.data-
|
|
222
|
+
'[attr.data-open]': 'item.open()',
|
|
221
223
|
'[attr.data-disabled]': 'item.disabled() || accordion.disabled()',
|
|
222
224
|
'[attr.aria-controls]': 'item.contentId()',
|
|
223
225
|
'[attr.aria-expanded]': 'item.open()',
|
|
@@ -332,10 +334,10 @@ class NgpAccordion {
|
|
|
332
334
|
this.value.set([...values, value]);
|
|
333
335
|
}
|
|
334
336
|
}
|
|
335
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
336
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.
|
|
337
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordion, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
338
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpAccordion, isStandalone: true, selector: "[ngpAccordion]", inputs: { type: { classPropertyName: "type", publicName: "ngpAccordionType", isSignal: true, isRequired: false, transformFunction: null }, collapsible: { classPropertyName: "collapsible", publicName: "ngpAccordionCollapsible", isSignal: true, isRequired: false, transformFunction: null }, value: { classPropertyName: "value", publicName: "ngpAccordionValue", isSignal: true, isRequired: false, transformFunction: null }, disabled: { classPropertyName: "disabled", publicName: "ngpAccordionDisabled", isSignal: true, isRequired: false, transformFunction: null }, orientation: { classPropertyName: "orientation", publicName: "ngpAccordionOrientation", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { value: "ngpAccordionValueChange" }, host: { properties: { "attr.data-orientation": "orientation()", "attr.data-disabled": "disabled()" } }, providers: [{ provide: NgpAccordionToken, useExisting: NgpAccordion }], exportAs: ["ngpAccordion"], ngImport: i0 }); }
|
|
337
339
|
}
|
|
338
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
340
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAccordion, decorators: [{
|
|
339
341
|
type: Directive,
|
|
340
342
|
args: [{
|
|
341
343
|
standalone: true,
|
|
@@ -344,6 +346,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
344
346
|
providers: [{ provide: NgpAccordionToken, useExisting: NgpAccordion }],
|
|
345
347
|
host: {
|
|
346
348
|
'[attr.data-orientation]': 'orientation()',
|
|
349
|
+
'[attr.data-disabled]': 'disabled()',
|
|
347
350
|
},
|
|
348
351
|
}]
|
|
349
352
|
}] });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-accordion.mjs","sources":["../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item.token.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion.token.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content.token.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content.directive.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger.token.ts","../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item.directive.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger.directive.ts","../../../../packages/ng-primitives/accordion/src/config/accordion.config.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion.directive.ts","../../../../packages/ng-primitives/accordion/src/index.ts","../../../../packages/ng-primitives/accordion/src/ng-primitives-accordion.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordionItem } from './accordion-item.directive';\n\nexport const NgpAccordionItemToken = new InjectionToken<NgpAccordionItem<unknown>>(\n 'NgpAccordionItemToken',\n);\n\n/**\n * Inject the AccordionItem directive instance\n * @returns The AccordionItem directive instance\n */\nexport function injectAccordionItem<T>(): NgpAccordionItem<T> {\n return inject(NgpAccordionItemToken) as NgpAccordionItem<T>;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordion } from './accordion.directive';\n\nexport const NgpAccordionToken = new InjectionToken<NgpAccordion<unknown>>('NgpAccordionToken');\n\n/**\n * Inject the Accordion directive instance\n * @returns The Accordion directive instance\n */\nexport function injectAccordion<T>(): NgpAccordion<T> {\n return inject(NgpAccordionToken) as NgpAccordion<T>;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordionContent } from './accordion-content.directive';\n\nexport const NgpAccordionContentToken = new InjectionToken<NgpAccordionContent>(\n 'NgpAccordionContentToken',\n);\n\n/**\n * Inject the AccordionContent directive instance\n * @returns The AccordionContent directive instance\n */\nexport function injectAccordionContent(): NgpAccordionContent {\n return inject(NgpAccordionContentToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, input } from '@angular/core';\nimport { injectDimensions, uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItem } from '../accordion-item/accordion-item.token';\nimport { injectAccordion } from '../accordion/accordion.token';\nimport { NgpAccordionContentToken } from './accordion-content.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordionContent]',\n exportAs: 'ngpAccordionContent',\n providers: [{ provide: NgpAccordionContentToken, useExisting: NgpAccordionContent }],\n host: {\n role: 'region',\n '[id]': 'id()',\n '[attr.data-orientation]': 'accordion.orientation()',\n '[attr.data-state]': 'accordionItem.open() ? \"open\" : \"closed\"',\n '[attr.aria-labelledby]': 'accordionItem.triggerId()',\n '[style.--ngp-accordion-content-width.px]': 'dimensions().width',\n '[style.--ngp-accordion-content-height.px]': 'dimensions().height',\n '[hidden]': '!accordionItem.open() && dimensions().mounted ? true : null',\n },\n})\nexport class NgpAccordionContent {\n /**\n * Access the accordion\n */\n protected readonly accordion = injectAccordion();\n\n /**\n * Access the accordion item\n */\n protected readonly accordionItem = injectAccordionItem();\n\n /**\n * The id of the content region\n */\n readonly id = input<string>(uniqueId('ngp-accordion-content'));\n\n /**\n * The size of the content region\n */\n protected readonly dimensions = injectDimensions();\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordionTrigger } from './accordion-trigger.directive';\n\nexport const NgpAccordionTriggerToken = new InjectionToken<NgpAccordionTrigger>(\n 'NgpAccordionTriggerToken',\n);\n\n/**\n * Inject the AccordionTrigger directive instance\n * @returns The AccordionTrigger directive instance\n */\nexport function injectAccordionTrigger(): NgpAccordionTrigger {\n return inject(NgpAccordionTriggerToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, computed, contentChild, input } from '@angular/core';\nimport { NgpAccordionContentToken } from '../accordion-content/accordion-content.token';\nimport { NgpAccordionTriggerToken } from '../accordion-trigger/accordion-trigger.token';\nimport { injectAccordion } from '../accordion/accordion.token';\nimport { NgpAccordionItemToken } from './accordion-item.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordionItem]',\n exportAs: 'ngpAccordionItem',\n providers: [{ provide: NgpAccordionItemToken, useExisting: NgpAccordionItem }],\n host: {\n '[attr.data-orientation]': 'accordion.orientation()',\n '[attr.data-state]': 'open() ? \"open\" : \"closed\"',\n '[attr.data-disabled]': 'disabled() || accordion.disabled()',\n },\n})\nexport class NgpAccordionItem<T> {\n /**\n * Access the accordion.\n */\n protected readonly accordion = injectAccordion();\n\n /**\n * The value of the accordion item.\n */\n readonly value = input.required<T>({\n alias: 'ngpAccordionItemValue',\n });\n\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionItemDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the accordion trigger\n */\n private readonly trigger = contentChild(NgpAccordionTriggerToken);\n\n /**\n * Access the accordion content\n */\n private readonly content = contentChild(NgpAccordionContentToken);\n\n /**\n * Whether the accordion item is expanded.\n */\n readonly open = computed<boolean>(() => this.accordion.isOpen(this.value()));\n\n /**\n * The trigger id.\n */\n readonly triggerId = computed(() => this.trigger()?.id());\n\n /**\n * The content id.\n */\n readonly contentId = computed(() => this.content()?.id());\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, HostListener, input } from '@angular/core';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItem } from '../accordion-item/accordion-item.token';\nimport { injectAccordion } from '../accordion/accordion.token';\nimport { NgpAccordionTriggerToken } from './accordion-trigger.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordionTrigger]',\n exportAs: 'ngpAccordionTrigger',\n providers: [{ provide: NgpAccordionTriggerToken, useExisting: NgpAccordionTrigger }],\n host: {\n '[id]': 'id()',\n '[attr.data-orientation]': 'accordion.orientation()',\n '[attr.data-state]': 'item.open() ? \"open\" : \"closed\"',\n '[attr.data-disabled]': 'item.disabled() || accordion.disabled()',\n '[attr.aria-controls]': 'item.contentId()',\n '[attr.aria-expanded]': 'item.open()',\n },\n})\nexport class NgpAccordionTrigger {\n /**\n * Access the parent accordion.\n */\n protected readonly accordion = injectAccordion();\n\n /**\n * The item instance.\n */\n protected readonly item = injectAccordionItem();\n\n /**\n * The id of the trigger.\n */\n readonly id = input<string>(uniqueId('ngp-accordion-trigger'));\n\n /**\n * Toggle the accordion item.\n */\n @HostListener('click')\n toggle(): void {\n if (this.item.disabled() || this.accordion.disabled()) {\n return;\n }\n\n this.accordion.toggle(this.item.value());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpAccordionType } from '../accordion/accordion.directive';\n\nexport interface NgpAccordionConfig {\n /**\n * The default type of the accordion\n * @default 'single'\n */\n type: NgpAccordionType;\n /**\n * Whether the accordion is collapsible\n * @default false\n */\n collapsible: boolean;\n /**\n * The default orientation of the accordion\n * @default 'vertical'\n */\n orientation: 'vertical' | 'horizontal';\n}\n\nexport const defaultAccordionConfig: NgpAccordionConfig = {\n type: 'single',\n collapsible: false,\n orientation: 'vertical',\n};\n\nexport const NgpAccordionConfigToken = new InjectionToken<NgpAccordionConfig>(\n 'NgpAccordionConfigToken',\n);\n\n/**\n * Provide the default Accordion configuration\n * @param config The Accordion configuration\n * @returns The provider\n */\nexport function provideAccordionConfig(config: Partial<NgpAccordionConfig>): Provider[] {\n return [\n {\n provide: NgpAccordionConfigToken,\n useValue: { ...defaultAccordionConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Accordion configuration\n * @returns The global Accordion configuration\n */\nexport function injectAccordionConfig(): NgpAccordionConfig {\n return inject(NgpAccordionConfigToken, { optional: true }) ?? defaultAccordionConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, model } from '@angular/core';\nimport { injectAccordionConfig } from '../config/accordion.config';\nimport { NgpAccordionToken } from './accordion.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordion]',\n exportAs: 'ngpAccordion',\n providers: [{ provide: NgpAccordionToken, useExisting: NgpAccordion }],\n host: {\n '[attr.data-orientation]': 'orientation()',\n },\n})\nexport class NgpAccordion<T> {\n /**\n * Access the global accordion configuration.\n */\n private readonly config = injectAccordionConfig();\n\n /**\n * The type of the accordion.\n */\n readonly type = input<NgpAccordionType>(this.config.type, {\n alias: 'ngpAccordionType',\n });\n\n /**\n * Whether the accordion is collapsible.\n */\n readonly collapsible = input<boolean, BooleanInput>(this.config.collapsible, {\n alias: 'ngpAccordionCollapsible',\n transform: booleanAttribute,\n });\n\n /**\n * The value of the accordion.\n */\n readonly value = model<T | T[] | null>(null, {\n alias: 'ngpAccordionValue',\n });\n\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The accordion orientation.\n */\n readonly orientation = input<'horizontal' | 'vertical'>(this.config.orientation, {\n alias: 'ngpAccordionOrientation',\n });\n\n /**\n * @param value The value to check.\n * @returns Whether the value is open.\n * @internal\n */\n isOpen(value: T): boolean {\n if (this.type() === 'multiple') {\n return (this.value() as T[] | null)?.includes(value) ?? false;\n }\n\n return this.value() === value;\n }\n\n toggle(value: T): void {\n const isOpen = this.isOpen(value);\n\n // if we are in single mode and the value is already open and the accordion is not collapsible, do nothing\n if (this.type() === 'single' && isOpen && !this.collapsible()) {\n return;\n }\n\n // if we are in single mode then toggle the value\n if (this.type() === 'single') {\n this.value.set(isOpen ? null : value);\n return;\n }\n\n // if we are in multiple mode then toggle the value\n const values = (this.value() as T[]) ?? [];\n\n if (isOpen) {\n this.value.set(values.filter(v => v !== value));\n } else {\n this.value.set([...values, value]);\n }\n }\n}\n\nexport type NgpAccordionType = 'single' | 'multiple';\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpAccordionContent } from './accordion-content/accordion-content.directive';\nexport { NgpAccordionContentToken } from './accordion-content/accordion-content.token';\nexport { NgpAccordionItem } from './accordion-item/accordion-item.directive';\nexport { NgpAccordionItemToken } from './accordion-item/accordion-item.token';\nexport { NgpAccordionTrigger } from './accordion-trigger/accordion-trigger.directive';\nexport { NgpAccordionTriggerToken } from './accordion-trigger/accordion-trigger.token';\nexport { NgpAccordion } from './accordion/accordion.directive';\nexport { NgpAccordionToken } from './accordion/accordion.token';\nexport { NgpAccordionConfig, provideAccordionConfig } from './config/accordion.config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-primitives-accordion.mjs","sources":["../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item.token.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion.token.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content.token.ts","../../../../packages/ng-primitives/accordion/src/accordion-content/accordion-content.directive.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger.token.ts","../../../../packages/ng-primitives/accordion/src/accordion-item/accordion-item.directive.ts","../../../../packages/ng-primitives/accordion/src/accordion-trigger/accordion-trigger.directive.ts","../../../../packages/ng-primitives/accordion/src/config/accordion.config.ts","../../../../packages/ng-primitives/accordion/src/accordion/accordion.directive.ts","../../../../packages/ng-primitives/accordion/src/index.ts","../../../../packages/ng-primitives/accordion/src/ng-primitives-accordion.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordionItem } from './accordion-item.directive';\n\nexport const NgpAccordionItemToken = new InjectionToken<NgpAccordionItem<unknown>>(\n 'NgpAccordionItemToken',\n);\n\n/**\n * Inject the AccordionItem directive instance\n * @returns The AccordionItem directive instance\n */\nexport function injectAccordionItem<T>(): NgpAccordionItem<T> {\n return inject(NgpAccordionItemToken) as NgpAccordionItem<T>;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordion } from './accordion.directive';\n\nexport const NgpAccordionToken = new InjectionToken<NgpAccordion<unknown>>('NgpAccordionToken');\n\n/**\n * Inject the Accordion directive instance\n * @returns The Accordion directive instance\n */\nexport function injectAccordion<T>(): NgpAccordion<T> {\n return inject(NgpAccordionToken) as NgpAccordion<T>;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordionContent } from './accordion-content.directive';\n\nexport const NgpAccordionContentToken = new InjectionToken<NgpAccordionContent>(\n 'NgpAccordionContentToken',\n);\n\n/**\n * Inject the AccordionContent directive instance\n * @returns The AccordionContent directive instance\n */\nexport function injectAccordionContent(): NgpAccordionContent {\n return inject(NgpAccordionContentToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, input } from '@angular/core';\nimport { injectDimensions, uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItem } from '../accordion-item/accordion-item.token';\nimport { injectAccordion } from '../accordion/accordion.token';\nimport { NgpAccordionContentToken } from './accordion-content.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordionContent]',\n exportAs: 'ngpAccordionContent',\n providers: [{ provide: NgpAccordionContentToken, useExisting: NgpAccordionContent }],\n host: {\n role: 'region',\n '[id]': 'id()',\n '[attr.data-orientation]': 'accordion.orientation()',\n '[attr.data-open]': 'dimensions().mounted ? accordionItem.open() : null',\n '[attr.aria-labelledby]': 'accordionItem.triggerId()',\n '[style.--ngp-accordion-content-width.px]': 'dimensions().width',\n '[style.--ngp-accordion-content-height.px]': 'dimensions().height',\n },\n})\nexport class NgpAccordionContent {\n /**\n * Access the accordion\n */\n protected readonly accordion = injectAccordion();\n\n /**\n * Access the accordion item\n */\n protected readonly accordionItem = injectAccordionItem();\n\n /**\n * The id of the content region\n */\n readonly id = input<string>(uniqueId('ngp-accordion-content'));\n\n /**\n * The size of the content region\n */\n protected readonly dimensions = injectDimensions();\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAccordionTrigger } from './accordion-trigger.directive';\n\nexport const NgpAccordionTriggerToken = new InjectionToken<NgpAccordionTrigger>(\n 'NgpAccordionTriggerToken',\n);\n\n/**\n * Inject the AccordionTrigger directive instance\n * @returns The AccordionTrigger directive instance\n */\nexport function injectAccordionTrigger(): NgpAccordionTrigger {\n return inject(NgpAccordionTriggerToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, computed, contentChild, input } from '@angular/core';\nimport { NgpAccordionContentToken } from '../accordion-content/accordion-content.token';\nimport { NgpAccordionTriggerToken } from '../accordion-trigger/accordion-trigger.token';\nimport { injectAccordion } from '../accordion/accordion.token';\nimport { NgpAccordionItemToken } from './accordion-item.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordionItem]',\n exportAs: 'ngpAccordionItem',\n providers: [{ provide: NgpAccordionItemToken, useExisting: NgpAccordionItem }],\n host: {\n '[attr.data-orientation]': 'accordion.orientation()',\n '[attr.data-open]': 'open()',\n '[attr.data-disabled]': 'disabled() || accordion.disabled()',\n },\n})\nexport class NgpAccordionItem<T> {\n /**\n * Access the accordion.\n */\n protected readonly accordion = injectAccordion();\n\n /**\n * The value of the accordion item.\n */\n readonly value = input.required<T>({\n alias: 'ngpAccordionItemValue',\n });\n\n /**\n * Whether the accordion item is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionItemDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * Access the accordion trigger\n */\n private readonly trigger = contentChild(NgpAccordionTriggerToken);\n\n /**\n * Access the accordion content\n */\n private readonly content = contentChild(NgpAccordionContentToken);\n\n /**\n * Whether the accordion item is expanded.\n */\n readonly open = computed<boolean>(() => this.accordion.isOpen(this.value()));\n\n /**\n * The trigger id.\n */\n readonly triggerId = computed(() => this.trigger()?.id());\n\n /**\n * The content id.\n */\n readonly contentId = computed(() => this.content()?.id());\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, HostListener, input } from '@angular/core';\nimport { NgpFocusVisible, NgpHover, NgpPress } from 'ng-primitives/interactions';\nimport { uniqueId } from 'ng-primitives/utils';\nimport { injectAccordionItem } from '../accordion-item/accordion-item.token';\nimport { injectAccordion } from '../accordion/accordion.token';\nimport { NgpAccordionTriggerToken } from './accordion-trigger.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordionTrigger]',\n exportAs: 'ngpAccordionTrigger',\n providers: [{ provide: NgpAccordionTriggerToken, useExisting: NgpAccordionTrigger }],\n hostDirectives: [NgpHover, NgpPress, NgpFocusVisible],\n host: {\n '[id]': 'id()',\n '[attr.data-orientation]': 'accordion.orientation()',\n '[attr.data-open]': 'item.open()',\n '[attr.data-disabled]': 'item.disabled() || accordion.disabled()',\n '[attr.aria-controls]': 'item.contentId()',\n '[attr.aria-expanded]': 'item.open()',\n },\n})\nexport class NgpAccordionTrigger {\n /**\n * Access the parent accordion.\n */\n protected readonly accordion = injectAccordion();\n\n /**\n * The item instance.\n */\n protected readonly item = injectAccordionItem();\n\n /**\n * The id of the trigger.\n */\n readonly id = input<string>(uniqueId('ngp-accordion-trigger'));\n\n /**\n * Toggle the accordion item.\n */\n @HostListener('click')\n toggle(): void {\n if (this.item.disabled() || this.accordion.disabled()) {\n return;\n }\n\n this.accordion.toggle(this.item.value());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, Provider, inject } from '@angular/core';\nimport { NgpAccordionType } from '../accordion/accordion.directive';\n\nexport interface NgpAccordionConfig {\n /**\n * The default type of the accordion\n * @default 'single'\n */\n type: NgpAccordionType;\n /**\n * Whether the accordion is collapsible\n * @default false\n */\n collapsible: boolean;\n /**\n * The default orientation of the accordion\n * @default 'vertical'\n */\n orientation: 'vertical' | 'horizontal';\n}\n\nexport const defaultAccordionConfig: NgpAccordionConfig = {\n type: 'single',\n collapsible: false,\n orientation: 'vertical',\n};\n\nexport const NgpAccordionConfigToken = new InjectionToken<NgpAccordionConfig>(\n 'NgpAccordionConfigToken',\n);\n\n/**\n * Provide the default Accordion configuration\n * @param config The Accordion configuration\n * @returns The provider\n */\nexport function provideAccordionConfig(config: Partial<NgpAccordionConfig>): Provider[] {\n return [\n {\n provide: NgpAccordionConfigToken,\n useValue: { ...defaultAccordionConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the Accordion configuration\n * @returns The global Accordion configuration\n */\nexport function injectAccordionConfig(): NgpAccordionConfig {\n return inject(NgpAccordionConfigToken, { optional: true }) ?? defaultAccordionConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { BooleanInput } from '@angular/cdk/coercion';\nimport { Directive, booleanAttribute, input, model } from '@angular/core';\nimport { injectAccordionConfig } from '../config/accordion.config';\nimport { NgpAccordionToken } from './accordion.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAccordion]',\n exportAs: 'ngpAccordion',\n providers: [{ provide: NgpAccordionToken, useExisting: NgpAccordion }],\n host: {\n '[attr.data-orientation]': 'orientation()',\n '[attr.data-disabled]': 'disabled()',\n },\n})\nexport class NgpAccordion<T> {\n /**\n * Access the global accordion configuration.\n */\n private readonly config = injectAccordionConfig();\n\n /**\n * The type of the accordion.\n */\n readonly type = input<NgpAccordionType>(this.config.type, {\n alias: 'ngpAccordionType',\n });\n\n /**\n * Whether the accordion is collapsible.\n */\n readonly collapsible = input<boolean, BooleanInput>(this.config.collapsible, {\n alias: 'ngpAccordionCollapsible',\n transform: booleanAttribute,\n });\n\n /**\n * The value of the accordion.\n */\n readonly value = model<T | T[] | null>(null, {\n alias: 'ngpAccordionValue',\n });\n\n /**\n * Whether the accordion is disabled.\n */\n readonly disabled = input<boolean, BooleanInput>(false, {\n alias: 'ngpAccordionDisabled',\n transform: booleanAttribute,\n });\n\n /**\n * The accordion orientation.\n */\n readonly orientation = input<'horizontal' | 'vertical'>(this.config.orientation, {\n alias: 'ngpAccordionOrientation',\n });\n\n /**\n * @param value The value to check.\n * @returns Whether the value is open.\n * @internal\n */\n isOpen(value: T): boolean {\n if (this.type() === 'multiple') {\n return (this.value() as T[] | null)?.includes(value) ?? false;\n }\n\n return this.value() === value;\n }\n\n toggle(value: T): void {\n const isOpen = this.isOpen(value);\n\n // if we are in single mode and the value is already open and the accordion is not collapsible, do nothing\n if (this.type() === 'single' && isOpen && !this.collapsible()) {\n return;\n }\n\n // if we are in single mode then toggle the value\n if (this.type() === 'single') {\n this.value.set(isOpen ? null : value);\n return;\n }\n\n // if we are in multiple mode then toggle the value\n const values = (this.value() as T[]) ?? [];\n\n if (isOpen) {\n this.value.set(values.filter(v => v !== value));\n } else {\n this.value.set([...values, value]);\n }\n }\n}\n\nexport type NgpAccordionType = 'single' | 'multiple';\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpAccordionContent } from './accordion-content/accordion-content.directive';\nexport { NgpAccordionContentToken } from './accordion-content/accordion-content.token';\nexport { NgpAccordionItem } from './accordion-item/accordion-item.directive';\nexport { NgpAccordionItemToken } from './accordion-item/accordion-item.token';\nexport { NgpAccordionTrigger } from './accordion-trigger/accordion-trigger.directive';\nexport { NgpAccordionTriggerToken } from './accordion-trigger/accordion-trigger.token';\nexport { NgpAccordion } from './accordion/accordion.directive';\nexport { NgpAccordionToken } from './accordion/accordion.token';\nexport { NgpAccordionConfig, provideAccordionConfig } from './config/accordion.config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, inject, signal, output, Directive, HostListener } from '@angular/core';
|
|
3
|
+
import { injectStyleInjector } from 'ng-primitives/internal';
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Copyright © 2024 Angular Primitives.
|
|
7
|
+
* https://github.com/ng-primitives/ng-primitives
|
|
8
|
+
*
|
|
9
|
+
* This source code is licensed under the CC BY-ND 4.0 license found in the
|
|
10
|
+
* LICENSE file in the root directory of this source tree.
|
|
11
|
+
*/
|
|
12
|
+
const NgpAutofillToken = new InjectionToken('NgpAutofillToken');
|
|
13
|
+
/**
|
|
14
|
+
* Inject the Autofill directive instance
|
|
15
|
+
*/
|
|
16
|
+
function injectAutofill() {
|
|
17
|
+
return inject(NgpAutofillToken);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
/**
|
|
21
|
+
* Copyright © 2024 Angular Primitives.
|
|
22
|
+
* https://github.com/ng-primitives/ng-primitives
|
|
23
|
+
*
|
|
24
|
+
* This source code is licensed under the CC BY-ND 4.0 license found in the
|
|
25
|
+
* LICENSE file in the root directory of this source tree.
|
|
26
|
+
*/
|
|
27
|
+
class NgpAutofill {
|
|
28
|
+
constructor() {
|
|
29
|
+
/**
|
|
30
|
+
* Access the style injector.
|
|
31
|
+
*/
|
|
32
|
+
this.styleInjector = injectStyleInjector();
|
|
33
|
+
/**
|
|
34
|
+
* Store the autofill state.
|
|
35
|
+
*/
|
|
36
|
+
this.autofilled = signal(false);
|
|
37
|
+
/**
|
|
38
|
+
* Emit when the autofill state changes.
|
|
39
|
+
*/
|
|
40
|
+
this.autofillChange = output({
|
|
41
|
+
alias: 'ngpAutofill',
|
|
42
|
+
});
|
|
43
|
+
// This technique is based on that used by the Angular CDK
|
|
44
|
+
// https://github.com/angular/components/blob/main/src/cdk/text-field/_index.scss
|
|
45
|
+
this.styleInjector.add('ngp-autofill', `
|
|
46
|
+
@keyframes ngp-autofill-start { }
|
|
47
|
+
@keyframes ngp-autofill-end {}
|
|
48
|
+
|
|
49
|
+
[data-autofill]:-webkit-autofill {
|
|
50
|
+
animation: ngp-autofill-start 0s 1ms;
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
[data-autofill]:not(:-webkit-autofill) {
|
|
54
|
+
animation: ngp-autofill-end 0s 1ms;
|
|
55
|
+
}
|
|
56
|
+
`);
|
|
57
|
+
}
|
|
58
|
+
onAnimationStart(event) {
|
|
59
|
+
if (event.animationName === 'ngp-autofill-start') {
|
|
60
|
+
this.autofilled.set(true);
|
|
61
|
+
this.autofillChange.emit(true);
|
|
62
|
+
}
|
|
63
|
+
if (event.animationName === 'ngp-autofill-end') {
|
|
64
|
+
this.autofilled.set(false);
|
|
65
|
+
this.autofillChange.emit(false);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAutofill, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
69
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpAutofill, isStandalone: true, selector: "[ngpAutofill]", outputs: { autofillChange: "ngpAutofill" }, host: { listeners: { "animationstart": "onAnimationStart($event)" }, properties: { "attr.data-autofill": "autofilled()" } }, providers: [{ provide: NgpAutofillToken, useExisting: NgpAutofill }], exportAs: ["ngpAutofill"], ngImport: i0 }); }
|
|
70
|
+
}
|
|
71
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAutofill, decorators: [{
|
|
72
|
+
type: Directive,
|
|
73
|
+
args: [{
|
|
74
|
+
standalone: true,
|
|
75
|
+
selector: '[ngpAutofill]',
|
|
76
|
+
exportAs: 'ngpAutofill',
|
|
77
|
+
providers: [{ provide: NgpAutofillToken, useExisting: NgpAutofill }],
|
|
78
|
+
host: {
|
|
79
|
+
'[attr.data-autofill]': 'autofilled()',
|
|
80
|
+
},
|
|
81
|
+
}]
|
|
82
|
+
}], ctorParameters: () => [], propDecorators: { onAnimationStart: [{
|
|
83
|
+
type: HostListener,
|
|
84
|
+
args: ['animationstart', ['$event']]
|
|
85
|
+
}] } });
|
|
86
|
+
|
|
87
|
+
/**
|
|
88
|
+
* Copyright © 2024 Angular Primitives.
|
|
89
|
+
* https://github.com/ng-primitives/ng-primitives
|
|
90
|
+
*
|
|
91
|
+
* This source code is licensed under the CC BY-ND 4.0 license found in the
|
|
92
|
+
* LICENSE file in the root directory of this source tree.
|
|
93
|
+
*/
|
|
94
|
+
|
|
95
|
+
/**
|
|
96
|
+
* Generated bundle index. Do not edit.
|
|
97
|
+
*/
|
|
98
|
+
|
|
99
|
+
export { NgpAutofill, NgpAutofillToken };
|
|
100
|
+
//# sourceMappingURL=ng-primitives-autofill.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ng-primitives-autofill.mjs","sources":["../../../../packages/ng-primitives/autofill/src/autofill/autofill.token.ts","../../../../packages/ng-primitives/autofill/src/autofill/autofill.directive.ts","../../../../packages/ng-primitives/autofill/src/index.ts","../../../../packages/ng-primitives/autofill/src/ng-primitives-autofill.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAutofill } from './autofill.directive';\n\nexport const NgpAutofillToken = new InjectionToken<NgpAutofill>('NgpAutofillToken');\n\n/**\n * Inject the Autofill directive instance\n */\nexport function injectAutofill(): NgpAutofill {\n return inject(NgpAutofillToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, HostListener, output, signal } from '@angular/core';\nimport { injectStyleInjector } from 'ng-primitives/internal';\nimport { NgpAutofillToken } from './autofill.token';\n\n@Directive({\n standalone: true,\n selector: '[ngpAutofill]',\n exportAs: 'ngpAutofill',\n providers: [{ provide: NgpAutofillToken, useExisting: NgpAutofill }],\n host: {\n '[attr.data-autofill]': 'autofilled()',\n },\n})\nexport class NgpAutofill {\n /**\n * Access the style injector.\n */\n private readonly styleInjector = injectStyleInjector();\n\n /**\n * Store the autofill state.\n */\n protected readonly autofilled = signal(false);\n\n /**\n * Emit when the autofill state changes.\n */\n readonly autofillChange = output<boolean>({\n alias: 'ngpAutofill',\n });\n\n constructor() {\n // This technique is based on that used by the Angular CDK\n // https://github.com/angular/components/blob/main/src/cdk/text-field/_index.scss\n this.styleInjector.add(\n 'ngp-autofill',\n `\n @keyframes ngp-autofill-start { }\n @keyframes ngp-autofill-end {}\n\n [data-autofill]:-webkit-autofill {\n animation: ngp-autofill-start 0s 1ms;\n }\n\n [data-autofill]:not(:-webkit-autofill) {\n animation: ngp-autofill-end 0s 1ms;\n }\n `,\n );\n }\n\n @HostListener('animationstart', ['$event'])\n protected onAnimationStart(event: AnimationEvent): void {\n if (event.animationName === 'ngp-autofill-start') {\n this.autofilled.set(true);\n this.autofillChange.emit(true);\n }\n\n if (event.animationName === 'ngp-autofill-end') {\n this.autofilled.set(false);\n this.autofillChange.emit(false);\n }\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpAutofill } from './autofill/autofill.directive';\nexport { NgpAutofillToken } from './autofill/autofill.token';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;AAAA;;;;;;AAMG;MAIU,gBAAgB,GAAG,IAAI,cAAc,CAAc,kBAAkB,EAAE;AAEpF;;AAEG;SACa,cAAc,GAAA;AAC5B,IAAA,OAAO,MAAM,CAAC,gBAAgB,CAAC,CAAC;AAClC;;ACjBA;;;;;;AAMG;MAcU,WAAW,CAAA;AAkBtB,IAAA,WAAA,GAAA;AAjBA;;AAEG;QACc,IAAa,CAAA,aAAA,GAAG,mBAAmB,EAAE,CAAC;AAEvD;;AAEG;AACgB,QAAA,IAAA,CAAA,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAE9C;;AAEG;QACM,IAAc,CAAA,cAAA,GAAG,MAAM,CAAU;AACxC,YAAA,KAAK,EAAE,aAAa;AACrB,SAAA,CAAC,CAAC;;;AAKD,QAAA,IAAI,CAAC,aAAa,CAAC,GAAG,CACpB,cAAc,EACd,CAAA;;;;;;;;;;;AAWC,MAAA,CAAA,CACF,CAAC;KACH;AAGS,IAAA,gBAAgB,CAAC,KAAqB,EAAA;AAC9C,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,oBAAoB,EAAE;AAChD,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC1B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;SAChC;AAED,QAAA,IAAI,KAAK,CAAC,aAAa,KAAK,kBAAkB,EAAE;AAC9C,YAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AAC3B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;SACjC;KACF;8GAjDU,WAAW,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA,EAAA;kGAAX,WAAW,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,eAAA,EAAA,OAAA,EAAA,EAAA,cAAA,EAAA,aAAA,EAAA,EAAA,IAAA,EAAA,EAAA,SAAA,EAAA,EAAA,gBAAA,EAAA,0BAAA,EAAA,EAAA,UAAA,EAAA,EAAA,oBAAA,EAAA,cAAA,EAAA,EAAA,EAAA,SAAA,EALX,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,WAAW,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,aAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA;;2FAKzD,WAAW,EAAA,UAAA,EAAA,CAAA;kBATvB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,UAAU,EAAE,IAAI;AAChB,oBAAA,QAAQ,EAAE,eAAe;AACzB,oBAAA,QAAQ,EAAE,aAAa;oBACvB,SAAS,EAAE,CAAC,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAa,WAAA,EAAE,CAAC;AACpE,oBAAA,IAAI,EAAE;AACJ,wBAAA,sBAAsB,EAAE,cAAc;AACvC,qBAAA;AACF,iBAAA,CAAA;wDAwCW,gBAAgB,EAAA,CAAA;sBADzB,YAAY;uBAAC,gBAAgB,EAAE,CAAC,QAAQ,CAAC,CAAA;;;AC1D5C;;;;;;AAMG;;ACNH;;AAEG;;;;"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, inject, signal, Directive, input, numberAttribute, computed, ElementRef, HostListener } from '@angular/core';
|
|
3
3
|
import { injectDisposables } from 'ng-primitives/utils';
|
|
4
|
-
import * as i1 from 'ng-primitives/
|
|
4
|
+
import * as i1 from 'ng-primitives/interactions';
|
|
5
|
+
import { NgpHover, NgpFocusVisible, NgpPress } from 'ng-primitives/interactions';
|
|
6
|
+
import * as i1$1 from 'ng-primitives/a11y';
|
|
5
7
|
import { injectVisuallyHidden, NgpVisuallyHidden } from 'ng-primitives/a11y';
|
|
6
8
|
|
|
7
9
|
/**
|
|
@@ -43,10 +45,10 @@ class NgpAvatar {
|
|
|
43
45
|
setState(state) {
|
|
44
46
|
this.state.set(state);
|
|
45
47
|
}
|
|
46
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
47
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
48
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
49
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpAvatar, isStandalone: true, selector: "[ngpAvatar]", host: { properties: { "attr.data-state": "state()" } }, providers: [{ provide: NgpAvatarToken, useExisting: NgpAvatar }], hostDirectives: [{ directive: i1.NgpHover }, { directive: i1.NgpFocusVisible }, { directive: i1.NgpPress }], ngImport: i0 }); }
|
|
48
50
|
}
|
|
49
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
51
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAvatar, decorators: [{
|
|
50
52
|
type: Directive,
|
|
51
53
|
args: [{
|
|
52
54
|
selector: '[ngpAvatar]',
|
|
@@ -55,6 +57,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.0.2", ngImpor
|
|
|
55
57
|
host: {
|
|
56
58
|
'[attr.data-state]': 'state()',
|
|
57
59
|
},
|
|
60
|
+
hostDirectives: [NgpHover, NgpFocusVisible, NgpPress],
|
|
58
61
|
}]
|
|
59
62
|
}] });
|
|
60
63
|
var NgpAvatarState;
|
|
@@ -134,10 +137,10 @@ class NgpAvatarFallback {
|
|
|
134
137
|
ngOnInit() {
|
|
135
138
|
this.disposables.setTimeout(() => this.delayElapsed.set(true), this.delay());
|
|
136
139
|
}
|
|
137
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
138
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.
|
|
140
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAvatarFallback, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
141
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.1.1", type: NgpAvatarFallback, isStandalone: true, selector: "[ngpAvatarFallback]", inputs: { delay: { classPropertyName: "delay", publicName: "ngpAvatarFallbackDelay", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "visible() ? null : \"none\"" } }, ngImport: i0 }); }
|
|
139
142
|
}
|
|
140
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
143
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAvatarFallback, decorators: [{
|
|
141
144
|
type: Directive,
|
|
142
145
|
args: [{
|
|
143
146
|
selector: '[ngpAvatarFallback]',
|
|
@@ -193,10 +196,10 @@ class NgpAvatarImage {
|
|
|
193
196
|
// if the state is loaded then we should make the image visible
|
|
194
197
|
this.visuallyHidden.setVisibility(state === NgpAvatarState.Loaded);
|
|
195
198
|
}
|
|
196
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.
|
|
197
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.
|
|
199
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAvatarImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
200
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.1.1", type: NgpAvatarImage, isStandalone: true, selector: "img[ngpAvatarImage]", host: { listeners: { "load": "onLoad()", "error": "onError()" } }, hostDirectives: [{ directive: i1$1.NgpVisuallyHidden }], ngImport: i0 }); }
|
|
198
201
|
}
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.
|
|
202
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.1.1", ngImport: i0, type: NgpAvatarImage, decorators: [{
|
|
200
203
|
type: Directive,
|
|
201
204
|
args: [{
|
|
202
205
|
selector: 'img[ngpAvatarImage]',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ng-primitives-avatar.mjs","sources":["../../../../packages/ng-primitives/avatar/src/avatar/avatar.token.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.directive.ts","../../../../packages/ng-primitives/avatar/src/config/avatar.config.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.directive.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.directive.ts","../../../../packages/ng-primitives/avatar/src/index.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAvatar } from './avatar.directive';\n\nexport const NgpAvatarToken = new InjectionToken<NgpAvatar>('NgpAvatarToken');\n\n/**\n * Provide the avatar\n * @returns The provider\n */\nexport function injectAvatar(): NgpAvatar {\n return inject(NgpAvatarToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, signal } from '@angular/core';\nimport { NgpAvatarToken } from './avatar.token';\n\n@Directive({\n selector: '[ngpAvatar]',\n standalone: true,\n providers: [{ provide: NgpAvatarToken, useExisting: NgpAvatar }],\n host: {\n '[attr.data-state]': 'state()',\n },\n})\nexport class NgpAvatar {\n /**\n * Store the current state of the avatar.\n * @internal\n */\n readonly state = signal(NgpAvatarState.Idle);\n\n /**\n * Set the avatar state.\n * @param state The state to set.\n * @internal\n */\n setState(state: NgpAvatarState): void {\n this.state.set(state);\n }\n}\n\nexport enum NgpAvatarState {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, Provider, inject } from '@angular/core';\n\nexport interface NgpAvatarConfig {\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: NgpAvatarConfig = {\n delay: 0,\n};\n\nexport const NgpAvatarConfigToken = new InjectionToken<NgpAvatarConfig>('NgpAvatarConfigToken');\n\n/**\n * Provide the avatar config\n * @param config The avatar config\n * @returns The provider\n */\nexport function provideAvatarConfig(config: Partial<NgpAvatarConfig>): Provider[] {\n return [\n {\n provide: NgpAvatarConfigToken,\n useValue: { ...defaultAvatarConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the avatar config\n * @returns The global avatar config\n */\nexport function injectAvatarConfig(): NgpAvatarConfig {\n return inject(NgpAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { NumberInput } from '@angular/cdk/coercion';\nimport { Directive, OnInit, computed, input, numberAttribute, signal } from '@angular/core';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpAvatarState } from '../avatar/avatar.directive';\nimport { injectAvatar } from '../avatar/avatar.token';\nimport { injectAvatarConfig } from '../config/avatar.config';\n\n@Directive({\n selector: '[ngpAvatarFallback]',\n standalone: true,\n host: {\n '[style.display]': 'visible() ? null : \"none\"',\n },\n})\nexport class NgpAvatarFallback implements OnInit {\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 * Access the disposable utilities.\n */\n private readonly disposables = injectDisposables();\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 readonly delay = input<number, NumberInput>(this.config.delay, {\n alias: 'ngpAvatarFallbackDelay',\n transform: numberAttribute,\n });\n\n /**\n * Determine if this element should be hidden.\n * @returns True if the element should be visible\n */\n protected readonly visible = computed(\n () =>\n // we need to check if the element can render and if the avatar is not in a loaded state\n this.delayElapsed() && this.avatar.state() !== NgpAvatarState.Loaded,\n );\n\n /**\n * Determine the delay has elapsed, and we can show the fallback.\n */\n private delayElapsed = signal(false);\n\n ngOnInit(): void {\n this.disposables.setTimeout(() => this.delayElapsed.set(true), this.delay());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, ElementRef, HostListener, OnInit, inject } from '@angular/core';\nimport { NgpVisuallyHidden, injectVisuallyHidden } from 'ng-primitives/a11y';\nimport { NgpAvatarState } from '../avatar/avatar.directive';\nimport { injectAvatar } from '../avatar/avatar.token';\n\n@Directive({\n selector: 'img[ngpAvatarImage]',\n standalone: true,\n hostDirectives: [NgpVisuallyHidden],\n})\nexport class NgpAvatarImage implements OnInit {\n /**\n * Control the visibility of the image.\n */\n protected readonly visuallyHidden = injectVisuallyHidden();\n\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.setState(NgpAvatarState.Loading);\n\n // if there is no src, we can report this as an error\n if (!this.elementRef.nativeElement.src) {\n this.setState(NgpAvatarState.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.setState(NgpAvatarState.Loaded);\n }\n }\n\n @HostListener('load')\n protected onLoad(): void {\n this.setState(NgpAvatarState.Loaded);\n }\n\n @HostListener('error')\n protected onError(): void {\n this.setState(NgpAvatarState.Error);\n }\n\n private setState(state: NgpAvatarState) {\n this.avatar.setState(state);\n\n // if the state is loaded then we should make the image visible\n this.visuallyHidden.setVisibility(state === NgpAvatarState.Loaded);\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpAvatarFallback } from './avatar-fallback/avatar-fallback.directive';\nexport { NgpAvatarImage } from './avatar-image/avatar-image.directive';\nexport { NgpAvatar, NgpAvatarState } from './avatar/avatar.directive';\nexport { NgpAvatarToken } from './avatar/avatar.token';\nexport { NgpAvatarConfig, provideAvatarConfig } from './config/avatar.config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"ng-primitives-avatar.mjs","sources":["../../../../packages/ng-primitives/avatar/src/avatar/avatar.token.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.directive.ts","../../../../packages/ng-primitives/avatar/src/config/avatar.config.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.directive.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.directive.ts","../../../../packages/ng-primitives/avatar/src/index.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, inject } from '@angular/core';\nimport type { NgpAvatar } from './avatar.directive';\n\nexport const NgpAvatarToken = new InjectionToken<NgpAvatar>('NgpAvatarToken');\n\n/**\n * Provide the avatar\n * @returns The provider\n */\nexport function injectAvatar(): NgpAvatar {\n return inject(NgpAvatarToken);\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, signal } from '@angular/core';\nimport { NgpFocusVisible, NgpHover, NgpPress } from 'ng-primitives/interactions';\nimport { NgpAvatarToken } from './avatar.token';\n\n@Directive({\n selector: '[ngpAvatar]',\n standalone: true,\n providers: [{ provide: NgpAvatarToken, useExisting: NgpAvatar }],\n host: {\n '[attr.data-state]': 'state()',\n },\n hostDirectives: [NgpHover, NgpFocusVisible, NgpPress],\n})\nexport class NgpAvatar {\n /**\n * Store the current state of the avatar.\n * @internal\n */\n readonly state = signal(NgpAvatarState.Idle);\n\n /**\n * Set the avatar state.\n * @param state The state to set.\n * @internal\n */\n setState(state: NgpAvatarState): void {\n this.state.set(state);\n }\n}\n\nexport enum NgpAvatarState {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { InjectionToken, Provider, inject } from '@angular/core';\n\nexport interface NgpAvatarConfig {\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: NgpAvatarConfig = {\n delay: 0,\n};\n\nexport const NgpAvatarConfigToken = new InjectionToken<NgpAvatarConfig>('NgpAvatarConfigToken');\n\n/**\n * Provide the avatar config\n * @param config The avatar config\n * @returns The provider\n */\nexport function provideAvatarConfig(config: Partial<NgpAvatarConfig>): Provider[] {\n return [\n {\n provide: NgpAvatarConfigToken,\n useValue: { ...defaultAvatarConfig, ...config },\n },\n ];\n}\n\n/**\n * Inject the avatar config\n * @returns The global avatar config\n */\nexport function injectAvatarConfig(): NgpAvatarConfig {\n return inject(NgpAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { NumberInput } from '@angular/cdk/coercion';\nimport { Directive, OnInit, computed, input, numberAttribute, signal } from '@angular/core';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpAvatarState } from '../avatar/avatar.directive';\nimport { injectAvatar } from '../avatar/avatar.token';\nimport { injectAvatarConfig } from '../config/avatar.config';\n\n@Directive({\n selector: '[ngpAvatarFallback]',\n standalone: true,\n host: {\n '[style.display]': 'visible() ? null : \"none\"',\n },\n})\nexport class NgpAvatarFallback implements OnInit {\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 * Access the disposable utilities.\n */\n private readonly disposables = injectDisposables();\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 readonly delay = input<number, NumberInput>(this.config.delay, {\n alias: 'ngpAvatarFallbackDelay',\n transform: numberAttribute,\n });\n\n /**\n * Determine if this element should be hidden.\n * @returns True if the element should be visible\n */\n protected readonly visible = computed(\n () =>\n // we need to check if the element can render and if the avatar is not in a loaded state\n this.delayElapsed() && this.avatar.state() !== NgpAvatarState.Loaded,\n );\n\n /**\n * Determine the delay has elapsed, and we can show the fallback.\n */\n private delayElapsed = signal(false);\n\n ngOnInit(): void {\n this.disposables.setTimeout(() => this.delayElapsed.set(true), this.delay());\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\nimport { Directive, ElementRef, HostListener, OnInit, inject } from '@angular/core';\nimport { NgpVisuallyHidden, injectVisuallyHidden } from 'ng-primitives/a11y';\nimport { NgpAvatarState } from '../avatar/avatar.directive';\nimport { injectAvatar } from '../avatar/avatar.token';\n\n@Directive({\n selector: 'img[ngpAvatarImage]',\n standalone: true,\n hostDirectives: [NgpVisuallyHidden],\n})\nexport class NgpAvatarImage implements OnInit {\n /**\n * Control the visibility of the image.\n */\n protected readonly visuallyHidden = injectVisuallyHidden();\n\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.setState(NgpAvatarState.Loading);\n\n // if there is no src, we can report this as an error\n if (!this.elementRef.nativeElement.src) {\n this.setState(NgpAvatarState.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.setState(NgpAvatarState.Loaded);\n }\n }\n\n @HostListener('load')\n protected onLoad(): void {\n this.setState(NgpAvatarState.Loaded);\n }\n\n @HostListener('error')\n protected onError(): void {\n this.setState(NgpAvatarState.Error);\n }\n\n private setState(state: NgpAvatarState) {\n this.avatar.setState(state);\n\n // if the state is loaded then we should make the image visible\n this.visuallyHidden.setVisibility(state === NgpAvatarState.Loaded);\n }\n}\n","/**\n * Copyright © 2024 Angular Primitives.\n * https://github.com/ng-primitives/ng-primitives\n *\n * This source code is licensed under the CC BY-ND 4.0 license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nexport { NgpAvatarFallback } from './avatar-fallback/avatar-fallback.directive';\nexport { NgpAvatarImage } from './avatar-image/avatar-image.directive';\nexport { NgpAvatar, NgpAvatarState } from './avatar/avatar.directive';\nexport { NgpAvatarToken } from './avatar/avatar.token';\nexport { NgpAvatarConfig, provideAvatarConfig } from './config/avatar.config';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1"],"mappings":"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"}
|