@radix-ng/primitives 0.18.2 → 0.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (96) hide show
  1. package/avatar/index.d.ts +1 -2
  2. package/avatar/src/avatar-fallback.directive.d.ts +11 -23
  3. package/avatar/src/avatar-image.directive.d.ts +10 -14
  4. package/avatar/src/avatar-root.directive.d.ts +5 -15
  5. package/checkbox/index.d.ts +11 -0
  6. package/checkbox/src/checkbox-button.directive.d.ts +1 -1
  7. package/checkbox/src/checkbox-indicator.directive.d.ts +1 -1
  8. package/checkbox/src/checkbox-input.directive.d.ts +1 -1
  9. package/checkbox/src/checkbox.directive.d.ts +1 -1
  10. package/compodoc/documentation.json +9385 -4858
  11. package/core/index.d.ts +2 -0
  12. package/core/src/control-value-accessor/index.d.ts +75 -0
  13. package/core/src/create-inject-context/assert-injector.d.ts +51 -0
  14. package/core/src/create-inject-context/index.d.ts +68 -0
  15. package/core/src/types.d.ts +23 -0
  16. package/esm2022/avatar/index.mjs +1 -1
  17. package/esm2022/avatar/src/avatar-fallback.directive.mjs +38 -40
  18. package/esm2022/avatar/src/avatar-image.directive.mjs +25 -26
  19. package/esm2022/avatar/src/avatar-root.directive.mjs +13 -25
  20. package/esm2022/checkbox/index.mjs +31 -1
  21. package/esm2022/checkbox/src/checkbox-button.directive.mjs +3 -3
  22. package/esm2022/checkbox/src/checkbox-indicator.directive.mjs +3 -3
  23. package/esm2022/checkbox/src/checkbox-input.directive.mjs +3 -3
  24. package/esm2022/checkbox/src/checkbox.directive.mjs +3 -3
  25. package/esm2022/core/index.mjs +3 -1
  26. package/esm2022/core/src/control-value-accessor/index.mjs +103 -0
  27. package/esm2022/core/src/create-inject-context/assert-injector.mjs +15 -0
  28. package/esm2022/core/src/create-inject-context/index.mjs +116 -0
  29. package/esm2022/core/src/types.mjs +2 -0
  30. package/esm2022/popover/index.mjs +41 -0
  31. package/esm2022/popover/radix-ng-primitives-popover.mjs +5 -0
  32. package/esm2022/popover/src/popover-arrow.directive.mjs +112 -0
  33. package/esm2022/popover/src/popover-arrow.token.mjs +3 -0
  34. package/esm2022/popover/src/popover-close.directive.mjs +37 -0
  35. package/esm2022/popover/src/popover-content.directive.mjs +227 -0
  36. package/esm2022/popover/src/popover-root.directive.mjs +142 -0
  37. package/esm2022/popover/src/popover-root.inject.mjs +7 -0
  38. package/esm2022/popover/src/popover-root.token.mjs +3 -0
  39. package/esm2022/popover/src/popover-trigger.directive.mjs +42 -0
  40. package/esm2022/popover/src/popover.constants.mjs +90 -0
  41. package/esm2022/popover/src/popover.types.mjs +14 -0
  42. package/esm2022/popover/src/popover.utils.mjs +115 -0
  43. package/esm2022/radio/index.mjs +2 -1
  44. package/esm2022/radio/src/radio-item-input.directive.mjs +37 -0
  45. package/esm2022/radio/src/radio-item.directive.mjs +55 -39
  46. package/esm2022/radio/src/radio-root.directive.mjs +30 -120
  47. package/esm2022/radio/src/radio-tokens.mjs +1 -1
  48. package/esm2022/roving-focus/index.mjs +3 -0
  49. package/esm2022/roving-focus/radix-ng-primitives-roving-focus.mjs +5 -0
  50. package/esm2022/roving-focus/src/roving-focus-group.directive.mjs +138 -0
  51. package/esm2022/roving-focus/src/roving-focus-item.directive.mjs +133 -0
  52. package/esm2022/roving-focus/src/utils.mjs +47 -0
  53. package/esm2022/select/src/select-item.directive.mjs +8 -2
  54. package/esm2022/toggle/src/toggle-input.directive.mjs +4 -3
  55. package/fesm2022/radix-ng-primitives-avatar.mjs +70 -85
  56. package/fesm2022/radix-ng-primitives-avatar.mjs.map +1 -1
  57. package/fesm2022/radix-ng-primitives-checkbox.mjs +35 -10
  58. package/fesm2022/radix-ng-primitives-checkbox.mjs.map +1 -1
  59. package/fesm2022/radix-ng-primitives-core.mjs +230 -3
  60. package/fesm2022/radix-ng-primitives-core.mjs.map +1 -1
  61. package/fesm2022/radix-ng-primitives-popover.mjs +796 -0
  62. package/fesm2022/radix-ng-primitives-popover.mjs.map +1 -0
  63. package/fesm2022/radix-ng-primitives-radio.mjs +145 -186
  64. package/fesm2022/radix-ng-primitives-radio.mjs.map +1 -1
  65. package/fesm2022/radix-ng-primitives-roving-focus.mjs +320 -0
  66. package/fesm2022/radix-ng-primitives-roving-focus.mjs.map +1 -0
  67. package/fesm2022/radix-ng-primitives-select.mjs +7 -1
  68. package/fesm2022/radix-ng-primitives-select.mjs.map +1 -1
  69. package/fesm2022/radix-ng-primitives-toggle.mjs +3 -2
  70. package/fesm2022/radix-ng-primitives-toggle.mjs.map +1 -1
  71. package/package.json +18 -6
  72. package/popover/README.md +3 -0
  73. package/popover/index.d.ts +17 -0
  74. package/popover/src/popover-arrow.directive.d.ts +37 -0
  75. package/popover/src/popover-arrow.token.d.ts +3 -0
  76. package/popover/src/popover-close.directive.d.ts +15 -0
  77. package/popover/src/popover-content.directive.d.ts +84 -0
  78. package/popover/src/popover-root.directive.d.ts +58 -0
  79. package/popover/src/popover-root.inject.d.ts +2 -0
  80. package/popover/src/popover-root.token.d.ts +3 -0
  81. package/popover/src/popover-trigger.directive.d.ts +18 -0
  82. package/popover/src/popover.constants.d.ts +8 -0
  83. package/popover/src/popover.types.d.ts +34 -0
  84. package/popover/src/popover.utils.d.ts +12 -0
  85. package/radio/index.d.ts +1 -0
  86. package/radio/src/radio-item-input.directive.d.ts +12 -0
  87. package/radio/src/radio-item.directive.d.ts +23 -14
  88. package/radio/src/radio-root.directive.d.ts +19 -34
  89. package/radio/src/radio-tokens.d.ts +6 -4
  90. package/roving-focus/README.md +3 -0
  91. package/roving-focus/index.d.ts +3 -0
  92. package/roving-focus/src/roving-focus-group.directive.d.ts +50 -0
  93. package/roving-focus/src/roving-focus-item.directive.d.ts +50 -0
  94. package/roving-focus/src/utils.d.ts +19 -0
  95. package/select/src/select-item.directive.d.ts +7 -1
  96. package/toggle/src/toggle-input.directive.d.ts +1 -1
package/core/index.d.ts CHANGED
@@ -1,5 +1,7 @@
1
1
  export * from './src/accessor/provide-value-accessor';
2
2
  export * from './src/auto-focus.directive';
3
+ export * from './src/control-value-accessor';
4
+ export * from './src/create-inject-context';
3
5
  export * from './src/document';
4
6
  export * from './src/inject-ng-control';
5
7
  export * from './src/is-client';
@@ -0,0 +1,75 @@
1
+ /**
2
+ * Based On:
3
+ * Copyright (c) flebee Authors. Licensed under the MIT License.
4
+ */
5
+ import { BooleanInput } from '@angular/cdk/coercion';
6
+ import { Injector } from '@angular/core';
7
+ import { ControlValueAccessor } from '@angular/forms';
8
+ import * as i0 from "@angular/core";
9
+ export type RdxControlValueAccessorCompareTo<T = any> = (a?: T, b?: T) => boolean;
10
+ export declare const injectCvaCompareTo: {
11
+ (): RdxControlValueAccessorCompareTo<any>;
12
+ (injectOptions: import("@angular/core").InjectOptions & {
13
+ optional?: false;
14
+ } & {
15
+ injector?: Injector;
16
+ }): RdxControlValueAccessorCompareTo<any>;
17
+ (injectOptions: import("@angular/core").InjectOptions & {
18
+ injector?: Injector;
19
+ }): RdxControlValueAccessorCompareTo<any> | null;
20
+ }, provideCvaCompareTo: (() => import("@angular/core").Provider) & ((value: RdxControlValueAccessorCompareTo<any> | (() => RdxControlValueAccessorCompareTo<any>), isFunctionValue: boolean) => import("@angular/core").Provider);
21
+ /**
22
+ * Provides a {@link RdxControlValueAccessorCompareTo comparator} based on a property of `T`.
23
+ *
24
+ * @example
25
+ * ```ts
26
+ * interface User {
27
+ * id: string;
28
+ * name: string;
29
+ * }
30
+ *
31
+ * provideCvaCompareToByProp<User>('id');
32
+ * ```
33
+ */
34
+ export declare const provideCvaCompareToByProp: <T>(prop: keyof T) => import("@angular/core").Provider;
35
+ export declare class RdxControlValueAccessor<Value> implements ControlValueAccessor {
36
+ private readonly ngControl;
37
+ private readonly destroyRef;
38
+ private readonly injector;
39
+ /**
40
+ * A comparator, which determines value changes. Should return true, if two values are considered semantic equal.
41
+ *
42
+ * Defaults to {@link Object.is} in order to align with change detection behavior for inputs.
43
+ */
44
+ readonly compareTo: RdxControlValueAccessorCompareTo<Value>;
45
+ /** Whether this is disabled. If a control is present, it reflects it's disabled state. */
46
+ inputDisabled: import("@angular/core").ModelSignal<BooleanInput>;
47
+ disabled: import("@angular/core").Signal<boolean>;
48
+ /** The value of this. If a control is present, it reflects it's value. */
49
+ value: import("@angular/core").ModelSignal<Value>;
50
+ /**
51
+ * `NgModel` sets up the control in `ngOnChanges`. Idk if bug or on purpose, but `writeValue` and `setDisabledState` are called before the inputs are set.
52
+ * {@link https://github.com/angular/angular/blob/main/packages/forms/src/directives/ng_model.ts#L223}
53
+ *
54
+ * @ignore
55
+ */
56
+ private get registered();
57
+ constructor();
58
+ private _onChange;
59
+ private _onTouched;
60
+ /**
61
+ * This function should be called when this host is considered `touched`.
62
+ *
63
+ * NOTE: Whenever a `blur` event is triggered on this host, this function is called.
64
+ *
65
+ * @see {@link RdxControlValueAccessor.registerOnTouched}
66
+ * @see {@link RdxControlValueAccessor._ngControl}
67
+ */
68
+ markAsTouched(): void;
69
+ setDisabledState(disabled: boolean): void;
70
+ writeValue(value: Value): void;
71
+ registerOnChange(onChange: (value: Value) => void): void;
72
+ registerOnTouched(onTouched: () => void): void;
73
+ static ɵfac: i0.ɵɵFactoryDeclaration<RdxControlValueAccessor<any>, never>;
74
+ static ɵdir: i0.ɵɵDirectiveDeclaration<RdxControlValueAccessor<any>, never, never, { "inputDisabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "value": { "alias": "value"; "required": false; "isSignal": true; }; }, { "inputDisabled": "disabledChange"; "value": "valueChange"; }, never, never, true, never>;
75
+ }
@@ -0,0 +1,51 @@
1
+ /**
2
+ * This code is adapted from the original implementation by the ngxTension team.
3
+ * Source: https://github.com/ngxtension/ngxtension-platform/blob/main/libs/ngxtension/assert-injector/src/assert-injector.ts
4
+ *
5
+ * Copyright (c) ngxtension Authors. Licensed under the MIT License.
6
+ */
7
+ import { Injector } from '@angular/core';
8
+ import { Nullable, SafeFunction } from '../types';
9
+ /**
10
+ * `assertInjector` extends `assertInInjectionContext` with an optional `Injector`
11
+ * After assertion, `assertInjector` runs the `runner` function with the guaranteed `Injector`
12
+ * whether it is the default `Injector` within the current **Injection Context**
13
+ * or the custom `Injector` that was passed in.
14
+ *
15
+ * @template {() => unknown} Runner - Runner is a function that can return anything
16
+ * @param {SafeFunction} fn - the Function to pass in `assertInInjectionContext`
17
+ * @param {Nullable<Injector>} injector - the optional "custom" Injector
18
+ * @param {Runner} runner - the runner fn
19
+ * @returns {ReturnType<Runner>} result - returns the result of the Runner
20
+ *
21
+ * @example
22
+ * ```ts
23
+ * function injectValue(injector?: Injector) {
24
+ * return assertInjector(injectValue, injector, () => 'value');
25
+ * }
26
+ *
27
+ * injectValue(); // string
28
+ * ```
29
+ */
30
+ export declare function assertInjector<Runner extends () => unknown>(fn: SafeFunction, injector: Nullable<Injector>, runner: Runner): ReturnType<Runner>;
31
+ /**
32
+ * `assertInjector` extends `assertInInjectionContext` with an optional `Injector`
33
+ * After assertion, `assertInjector` returns a guaranteed `Injector` whether it is the default `Injector`
34
+ * within the current **Injection Context** or the custom `Injector` that was passed in.
35
+ *
36
+ * @param {SafeFunction} fn - the Function to pass in `assertInInjectionContext`
37
+ * @param {Nullable<Injector>} injector - the optional "custom" Injector
38
+ * @returns Injector
39
+ *
40
+ * @example
41
+ * ```ts
42
+ * function injectDestroy(injector?: Injector) {
43
+ * injector = assertInjector(injectDestroy, injector);
44
+ *
45
+ * return runInInjectionContext(injector, () => {
46
+ * // code
47
+ * })
48
+ * }
49
+ * ```
50
+ */
51
+ export declare function assertInjector(fn: SafeFunction, injector: Nullable<Injector>): Injector;
@@ -0,0 +1,68 @@
1
+ /**
2
+ *
3
+ * Copyright (c) ngxtension Authors. Licensed under the MIT License.
4
+ */
5
+ import { InjectionToken, type EnvironmentProviders, type Host, type InjectOptions, type Injector, type Optional, type Provider, type Self, type SkipSelf, type Type } from '@angular/core';
6
+ type CreateInjectionTokenDep<TTokenType> = Type<TTokenType> | (abstract new (...args: any[]) => TTokenType) | InjectionToken<TTokenType>;
7
+ type CreateInjectionTokenDeps<TFactory extends (...args: any[]) => any, TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>> = {
8
+ [Index in keyof TFactoryDeps]: CreateInjectionTokenDep<TFactoryDeps[Index]> | [...modifiers: Array<Optional | Self | SkipSelf | Host>, token: CreateInjectionTokenDep<TFactoryDeps[Index]>];
9
+ } & {
10
+ length: TFactoryDeps['length'];
11
+ };
12
+ export type CreateInjectionTokenOptions<TFactory extends (...args: any[]) => any, TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>> = (TFactoryDeps[0] extends undefined ? {
13
+ deps?: never;
14
+ } : {
15
+ deps: CreateInjectionTokenDeps<TFactory, TFactoryDeps>;
16
+ }) & {
17
+ isRoot?: boolean;
18
+ isFunctionValue?: boolean;
19
+ multi?: boolean;
20
+ token?: InjectionToken<ReturnType<TFactory>>;
21
+ extraProviders?: Provider | EnvironmentProviders;
22
+ };
23
+ type InjectFn<TFactoryReturn> = {
24
+ (): TFactoryReturn;
25
+ (injectOptions: InjectOptions & {
26
+ optional?: false;
27
+ } & {
28
+ injector?: Injector;
29
+ }): TFactoryReturn;
30
+ (injectOptions: InjectOptions & {
31
+ injector?: Injector;
32
+ }): TFactoryReturn | null;
33
+ };
34
+ type ProvideFn<TNoop extends boolean, TFactoryReturn, TReturn = TFactoryReturn extends Array<infer Item> ? Item : TFactoryReturn> = (TNoop extends true ? (value: TReturn | (() => TReturn)) => Provider : () => Provider) & (TReturn extends Function ? (value: TReturn | (() => TReturn), isFunctionValue: boolean) => Provider : (value: TReturn | (() => TReturn)) => Provider);
35
+ export type CreateInjectionTokenReturn<TFactoryReturn, TNoop extends boolean = false> = [
36
+ InjectFn<TFactoryReturn>,
37
+ ProvideFn<TNoop, TFactoryReturn>,
38
+ InjectionToken<TFactoryReturn>,
39
+ () => Provider
40
+ ];
41
+ /**
42
+ * `createInjectionToken` accepts a factory function and returns a tuple of `injectFn`, `provideFn`, and the `InjectionToken`
43
+ * that the factory function is for.
44
+ *
45
+ * @param {Function} factory - Factory Function that returns the value for the `InjectionToken`
46
+ * @param {CreateInjectionTokenOptions} options - object to control how the `InjectionToken` behaves
47
+ * @returns {CreateInjectionTokenReturn}
48
+ *
49
+ * @example
50
+ * ```ts
51
+ * const [injectCounter, provideCounter, COUNTER] = createInjectionToken(() => signal(0));
52
+ *
53
+ * export class Counter {
54
+ * counter = injectCounter(); // WritableSignal<number>
55
+ * }
56
+ * ```
57
+ */
58
+ export declare function createInjectionToken<TFactory extends (...args: any[]) => any, TFactoryDeps extends Parameters<TFactory> = Parameters<TFactory>, TOptions extends CreateInjectionTokenOptions<TFactory, TFactoryDeps> = CreateInjectionTokenOptions<TFactory, TFactoryDeps>, TFactoryReturn = TOptions['multi'] extends true ? Array<ReturnType<TFactory>> : ReturnType<TFactory>>(factory: TFactory, options?: TOptions): CreateInjectionTokenReturn<TFactoryReturn>;
59
+ export declare function createNoopInjectionToken<TValue, TMulti extends boolean = false, TOptions = Pick<CreateInjectionTokenOptions<() => void, []>, 'extraProviders'> & (TValue extends (...args: any[]) => any ? {
60
+ isFunctionValue: true;
61
+ } : {
62
+ isFunctionValue?: never;
63
+ }) & (TMulti extends true ? {
64
+ multi: true;
65
+ } : {
66
+ multi?: never;
67
+ })>(description: string, options?: TOptions): CreateInjectionTokenReturn<TMulti extends true ? TValue[] : TValue, true>;
68
+ export {};
@@ -0,0 +1,23 @@
1
+ /**
2
+ * Nullable from `Type` adds `null` and `undefined`
3
+ *
4
+ * @example ```ts
5
+ * // Expect: string | number | undefined | null
6
+ * type Value = Nulling<string | number>;
7
+ * ```
8
+ */
9
+ export type Nullable<Type> = null | Type | undefined;
10
+ /**
11
+ * SafeFunction is a type for functions that accept any number of arguments of unknown types
12
+ * and return a value of an unknown type. This is useful when you want to define a function
13
+ * without being strict about the input or output types, maintaining flexibility.
14
+ *
15
+ * @example ```ts
16
+ * const safeFn: SafeFunction = (...args) => {
17
+ * return args.length > 0 ? args[0] : null;
18
+ * };
19
+ *
20
+ * const result = safeFn(1, 'hello'); // result: 1
21
+ * ```
22
+ */
23
+ export type SafeFunction = (...args: unknown[]) => unknown;
@@ -2,4 +2,4 @@ export * from './src/avatar-fallback.directive';
2
2
  export * from './src/avatar-image.directive';
3
3
  export * from './src/avatar-root.directive';
4
4
  export * from './src/avatar.config';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2F2YXRhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBRWhELGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvYXZhdGFyLWZhbGxiYWNrLmRpcmVjdGl2ZSc7XG5leHBvcnQgdHlwZSB7IFJkeEF2YXRhckZhbGxiYWNrUHJvcHMgfSBmcm9tICcuL3NyYy9hdmF0YXItZmFsbGJhY2suZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2F2YXRhci1pbWFnZS5kaXJlY3RpdmUnO1xuZXhwb3J0IHR5cGUgeyBSZHhBdmF0YXJJbWFnZVByb3BzIH0gZnJvbSAnLi9zcmMvYXZhdGFyLWltYWdlLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hdmF0YXItcm9vdC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvYXZhdGFyLmNvbmZpZyc7XG4iXX0=
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2F2YXRhci9pbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyw2QkFBNkIsQ0FBQztBQUU1QyxjQUFjLHFCQUFxQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9zcmMvYXZhdGFyLWZhbGxiYWNrLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hdmF0YXItaW1hZ2UuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2F2YXRhci1yb290LmRpcmVjdGl2ZSc7XG5leHBvcnQgdHlwZSB7IFJkeEltYWdlTG9hZGluZ1N0YXR1cyB9IGZyb20gJy4vc3JjL2F2YXRhci1yb290LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9hdmF0YXIuY29uZmlnJztcbiJdfQ==
@@ -1,62 +1,60 @@
1
- import { isPlatformBrowser } from '@angular/common';
2
- import { Directive, inject, Input, NgZone, numberAttribute, PLATFORM_ID, signal } from '@angular/core';
3
- import { injectAvatar } from './avatar-root.directive';
1
+ import { Directive, effect, inject, input, signal } from '@angular/core';
2
+ import { RdxAvatarRootContext } from './avatar-root.directive';
4
3
  import { injectAvatarConfig } from './avatar.config';
5
4
  import * as i0 from "@angular/core";
6
5
  export class RdxAvatarFallbackDirective {
7
6
  constructor() {
8
- this.avatar = injectAvatar();
7
+ this.avatarRoot = inject(RdxAvatarRootContext);
9
8
  this.config = injectAvatarConfig();
10
- this.ngZone = inject(NgZone);
11
- this.platformId = inject(PLATFORM_ID);
12
- /**
13
- * Define a delay before the fallback is shown.
14
- * This is useful to only show the fallback for those with slower connections.
15
- * @default 0
16
- */
17
- this.delayMs = this.config.delayMs;
18
- this.visible = signal(false);
19
- /**
20
- * Determine the delay has elapsed, and we can show the fallback.
21
- */
22
- this.delayElapsed = false;
9
+ this.delayMs = input(this.config.delayMs);
10
+ this.canRender = signal(false);
23
11
  this.timeoutId = null;
12
+ effect(() => {
13
+ const status = this.avatarRoot.imageLoadingStatus();
14
+ if (status === 'loading') {
15
+ this.startDelayTimer();
16
+ }
17
+ else {
18
+ this.clearDelayTimer();
19
+ this.canRender.set(false);
20
+ }
21
+ }, { allowSignalWrites: true });
24
22
  }
25
- ngOnInit() {
26
- if (isPlatformBrowser(this.platformId)) {
27
- this.ngZone.runOutsideAngular(() => {
28
- this.timeoutId = globalThis.setTimeout(() => {
29
- this.ngZone.run(() => {
30
- this.delayElapsed = true;
31
- this.updateVisibility();
32
- });
33
- }, this.delayMs);
34
- });
23
+ get shouldRender() {
24
+ return this.canRender() && this.avatarRoot.imageLoadingStatus() !== 'loaded';
25
+ }
26
+ startDelayTimer() {
27
+ this.clearDelayTimer();
28
+ if (this.delayMs() > 0) {
29
+ this.timeoutId = setTimeout(() => {
30
+ this.canRender.set(true);
31
+ }, this.delayMs());
32
+ }
33
+ else {
34
+ this.canRender.set(true);
35
35
  }
36
36
  }
37
- ngOnDestroy() {
38
- if (isPlatformBrowser(this.platformId) && this.timeoutId !== null) {
39
- globalThis.clearTimeout(this.timeoutId);
37
+ clearDelayTimer() {
38
+ if (this.timeoutId !== null) {
39
+ clearTimeout(this.timeoutId);
40
+ this.timeoutId = null;
40
41
  }
41
42
  }
42
- updateVisibility() {
43
- this.visible.set(this.delayElapsed && this.avatar._state() !== 'loaded');
43
+ ngOnDestroy() {
44
+ this.clearDelayTimer();
44
45
  }
45
46
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarFallbackDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
46
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "16.1.0", version: "18.2.11", type: RdxAvatarFallbackDirective, isStandalone: true, selector: "span[rdxAvatarFallback]", inputs: { delayMs: ["rdxDelayMs", "delayMs", numberAttribute] }, host: { properties: { "style.display": "visible() ? null : \"none\"" } }, exportAs: ["rdxAvatarFallback"], ngImport: i0 }); }
47
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxAvatarFallbackDirective, isStandalone: true, selector: "span[rdxAvatarFallback]", inputs: { delayMs: { classPropertyName: "delayMs", publicName: "delayMs", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "style.display": "shouldRender ? null : \"none\" " } }, exportAs: ["rdxAvatarFallback"], ngImport: i0 }); }
47
48
  }
48
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarFallbackDirective, decorators: [{
49
50
  type: Directive,
50
51
  args: [{
51
52
  selector: 'span[rdxAvatarFallback]',
52
- exportAs: 'rdxAvatarFallback',
53
53
  standalone: true,
54
+ exportAs: 'rdxAvatarFallback',
54
55
  host: {
55
- '[style.display]': 'visible() ? null : "none"'
56
+ '[style.display]': 'shouldRender ? null : "none" '
56
57
  }
57
58
  }]
58
- }], propDecorators: { delayMs: [{
59
- type: Input,
60
- args: [{ alias: 'rdxDelayMs', transform: numberAttribute }]
61
- }] } });
62
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWZhbGxiYWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvYXZhdGFyL3NyYy9hdmF0YXItZmFsbGJhY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3BELE9BQU8sRUFDSCxTQUFTLEVBQ1QsTUFBTSxFQUNOLEtBQUssRUFDTCxNQUFNLEVBQ04sZUFBZSxFQUdmLFdBQVcsRUFDWCxNQUFNLEVBQ1QsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQWNyRCxNQUFNLE9BQU8sMEJBQTBCO0lBUnZDO1FBU3FCLFdBQU0sR0FBRyxZQUFZLEVBQUUsQ0FBQztRQUV4QixXQUFNLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUU5QixXQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBRXhCLGVBQVUsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFbEQ7Ozs7V0FJRztRQUN5RCxZQUFPLEdBQVcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUM7UUFFekYsWUFBTyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUVqQzs7V0FFRztRQUNLLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGNBQVMsR0FBeUMsSUFBSSxDQUFDO0tBd0JsRTtJQXRCRyxRQUFRO1FBQ0osSUFBSSxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztZQUNyQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsRUFBRTtnQkFDL0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxVQUFVLENBQUMsVUFBVSxDQUFDLEdBQUcsRUFBRTtvQkFDeEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO3dCQUNqQixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQzt3QkFDekIsSUFBSSxDQUFDLGdCQUFnQixFQUFFLENBQUM7b0JBQzVCLENBQUMsQ0FBQyxDQUFDO2dCQUNQLENBQUMsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDckIsQ0FBQyxDQUFDLENBQUM7UUFDUCxDQUFDO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO1lBQ2hFLFVBQVUsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQzVDLENBQUM7SUFDTCxDQUFDO0lBRU8sZ0JBQWdCO1FBQ3BCLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsS0FBSyxRQUFRLENBQUMsQ0FBQztJQUM3RSxDQUFDOytHQTlDUSwwQkFBMEI7bUdBQTFCLDBCQUEwQix3R0FjTSxlQUFlOzs0RkFkL0MsMEJBQTBCO2tCQVJ0QyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSx5QkFBeUI7b0JBQ25DLFFBQVEsRUFBRSxtQkFBbUI7b0JBQzdCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixJQUFJLEVBQUU7d0JBQ0YsaUJBQWlCLEVBQUUsMkJBQTJCO3FCQUNqRDtpQkFDSjs4QkFlK0QsT0FBTztzQkFBbEUsS0FBSzt1QkFBQyxFQUFFLEtBQUssRUFBRSxZQUFZLEVBQUUsU0FBUyxFQUFFLGVBQWUsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIGluamVjdCxcbiAgICBJbnB1dCxcbiAgICBOZ1pvbmUsXG4gICAgbnVtYmVyQXR0cmlidXRlLFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgUExBVEZPUk1fSUQsXG4gICAgc2lnbmFsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgaW5qZWN0QXZhdGFyIH0gZnJvbSAnLi9hdmF0YXItcm9vdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgaW5qZWN0QXZhdGFyQ29uZmlnIH0gZnJvbSAnLi9hdmF0YXIuY29uZmlnJztcblxuZXhwb3J0IGludGVyZmFjZSBSZHhBdmF0YXJGYWxsYmFja1Byb3BzIHtcbiAgICBkZWxheU1zPzogbnVtYmVyO1xufVxuXG5ARGlyZWN0aXZlKHtcbiAgICBzZWxlY3RvcjogJ3NwYW5bcmR4QXZhdGFyRmFsbGJhY2tdJyxcbiAgICBleHBvcnRBczogJ3JkeEF2YXRhckZhbGxiYWNrJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgJ1tzdHlsZS5kaXNwbGF5XSc6ICd2aXNpYmxlKCkgPyBudWxsIDogXCJub25lXCInXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhBdmF0YXJGYWxsYmFja0RpcmVjdGl2ZSBpbXBsZW1lbnRzIFJkeEF2YXRhckZhbGxiYWNrUHJvcHMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YXRhciA9IGluamVjdEF2YXRhcigpO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBjb25maWcgPSBpbmplY3RBdmF0YXJDb25maWcoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgbmdab25lID0gaW5qZWN0KE5nWm9uZSk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHBsYXRmb3JtSWQgPSBpbmplY3QoUExBVEZPUk1fSUQpO1xuXG4gICAgLyoqXG4gICAgICogRGVmaW5lIGEgZGVsYXkgYmVmb3JlIHRoZSBmYWxsYmFjayBpcyBzaG93bi5cbiAgICAgKiBUaGlzIGlzIHVzZWZ1bCB0byBvbmx5IHNob3cgdGhlIGZhbGxiYWNrIGZvciB0aG9zZSB3aXRoIHNsb3dlciBjb25uZWN0aW9ucy5cbiAgICAgKiBAZGVmYXVsdCAwXG4gICAgICovXG4gICAgQElucHV0KHsgYWxpYXM6ICdyZHhEZWxheU1zJywgdHJhbnNmb3JtOiBudW1iZXJBdHRyaWJ1dGUgfSkgZGVsYXlNczogbnVtYmVyID0gdGhpcy5jb25maWcuZGVsYXlNcztcblxuICAgIHJlYWRvbmx5IHZpc2libGUgPSBzaWduYWwoZmFsc2UpO1xuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lIHRoZSBkZWxheSBoYXMgZWxhcHNlZCwgYW5kIHdlIGNhbiBzaG93IHRoZSBmYWxsYmFjay5cbiAgICAgKi9cbiAgICBwcml2YXRlIGRlbGF5RWxhcHNlZCA9IGZhbHNlO1xuXG4gICAgcHJpdmF0ZSB0aW1lb3V0SWQ6IFJldHVyblR5cGU8dHlwZW9mIHNldFRpbWVvdXQ+IHwgbnVsbCA9IG51bGw7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgaWYgKGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCkpIHtcbiAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bk91dHNpZGVBbmd1bGFyKCgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnRpbWVvdXRJZCA9IGdsb2JhbFRoaXMuc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmRlbGF5RWxhcHNlZCA9IHRydWU7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVwZGF0ZVZpc2liaWxpdHkoKTtcbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfSwgdGhpcy5kZWxheU1zKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmIChpc1BsYXRmb3JtQnJvd3Nlcih0aGlzLnBsYXRmb3JtSWQpICYmIHRoaXMudGltZW91dElkICE9PSBudWxsKSB7XG4gICAgICAgICAgICBnbG9iYWxUaGlzLmNsZWFyVGltZW91dCh0aGlzLnRpbWVvdXRJZCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVZpc2liaWxpdHkoKTogdm9pZCB7XG4gICAgICAgIHRoaXMudmlzaWJsZS5zZXQodGhpcy5kZWxheUVsYXBzZWQgJiYgdGhpcy5hdmF0YXIuX3N0YXRlKCkgIT09ICdsb2FkZWQnKTtcbiAgICB9XG59XG4iXX0=
59
+ }], ctorParameters: () => [] });
60
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWZhbGxiYWNrLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvYXZhdGFyL3NyYy9hdmF0YXItZmFsbGJhY2suZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQy9ELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQVVyRCxNQUFNLE9BQU8sMEJBQTBCO0lBVW5DO1FBVG1CLGVBQVUsR0FBRyxNQUFNLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUU1QyxXQUFNLEdBQUcsa0JBQWtCLEVBQUUsQ0FBQztRQUV0QyxZQUFPLEdBQUcsS0FBSyxDQUFTLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbkMsY0FBUyxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNyQyxjQUFTLEdBQXlDLElBQUksQ0FBQztRQUczRCxNQUFNLENBQ0YsR0FBRyxFQUFFO1lBQ0QsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1lBQ3BELElBQUksTUFBTSxLQUFLLFNBQVMsRUFBRSxDQUFDO2dCQUN2QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7WUFDM0IsQ0FBQztpQkFBTSxDQUFDO2dCQUNKLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDdkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDOUIsQ0FBQztRQUNMLENBQUMsRUFDRCxFQUFFLGlCQUFpQixFQUFFLElBQUksRUFBRSxDQUM5QixDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksWUFBWTtRQUNaLE9BQU8sSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLEVBQUUsS0FBSyxRQUFRLENBQUM7SUFDakYsQ0FBQztJQUVPLGVBQWU7UUFDbkIsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ3ZCLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3JCLElBQUksQ0FBQyxTQUFTLEdBQUcsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDN0IsQ0FBQyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1FBQ3ZCLENBQUM7YUFBTSxDQUFDO1lBQ0osSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsQ0FBQztJQUNMLENBQUM7SUFFTyxlQUFlO1FBQ25CLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLEVBQUUsQ0FBQztZQUMxQixZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1lBQzdCLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQzFCLENBQUM7SUFDTCxDQUFDO0lBRUQsV0FBVztRQUNQLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztJQUMzQixDQUFDOytHQWpEUSwwQkFBMEI7bUdBQTFCLDBCQUEwQjs7NEZBQTFCLDBCQUEwQjtrQkFSdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUseUJBQXlCO29CQUNuQyxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLG1CQUFtQjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNGLGlCQUFpQixFQUFFLCtCQUErQjtxQkFDckQ7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEaXJlY3RpdmUsIGVmZmVjdCwgaW5qZWN0LCBpbnB1dCwgT25EZXN0cm95LCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeEF2YXRhclJvb3RDb250ZXh0IH0gZnJvbSAnLi9hdmF0YXItcm9vdC5kaXJlY3RpdmUnO1xuaW1wb3J0IHsgaW5qZWN0QXZhdGFyQ29uZmlnIH0gZnJvbSAnLi9hdmF0YXIuY29uZmlnJztcblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdzcGFuW3JkeEF2YXRhckZhbGxiYWNrXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ3JkeEF2YXRhckZhbGxiYWNrJyxcbiAgICBob3N0OiB7XG4gICAgICAgICdbc3R5bGUuZGlzcGxheV0nOiAnc2hvdWxkUmVuZGVyID8gbnVsbCA6IFwibm9uZVwiICdcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeEF2YXRhckZhbGxiYWNrRGlyZWN0aXZlIGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgYXZhdGFyUm9vdCA9IGluamVjdChSZHhBdmF0YXJSb290Q29udGV4dCk7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IGNvbmZpZyA9IGluamVjdEF2YXRhckNvbmZpZygpO1xuXG4gICAgcmVhZG9ubHkgZGVsYXlNcyA9IGlucHV0PG51bWJlcj4odGhpcy5jb25maWcuZGVsYXlNcyk7XG5cbiAgICBwcm90ZWN0ZWQgcmVhZG9ubHkgY2FuUmVuZGVyID0gc2lnbmFsKGZhbHNlKTtcbiAgICBwcml2YXRlIHRpbWVvdXRJZDogUmV0dXJuVHlwZTx0eXBlb2Ygc2V0VGltZW91dD4gfCBudWxsID0gbnVsbDtcblxuICAgIGNvbnN0cnVjdG9yKCkge1xuICAgICAgICBlZmZlY3QoXG4gICAgICAgICAgICAoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3Qgc3RhdHVzID0gdGhpcy5hdmF0YXJSb290LmltYWdlTG9hZGluZ1N0YXR1cygpO1xuICAgICAgICAgICAgICAgIGlmIChzdGF0dXMgPT09ICdsb2FkaW5nJykge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGVsYXlUaW1lcigpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2xlYXJEZWxheVRpbWVyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY2FuUmVuZGVyLnNldChmYWxzZSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIHsgYWxsb3dTaWduYWxXcml0ZXM6IHRydWUgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldCBzaG91bGRSZW5kZXIoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNhblJlbmRlcigpICYmIHRoaXMuYXZhdGFyUm9vdC5pbWFnZUxvYWRpbmdTdGF0dXMoKSAhPT0gJ2xvYWRlZCc7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGFydERlbGF5VGltZXIoKSB7XG4gICAgICAgIHRoaXMuY2xlYXJEZWxheVRpbWVyKCk7XG4gICAgICAgIGlmICh0aGlzLmRlbGF5TXMoKSA+IDApIHtcbiAgICAgICAgICAgIHRoaXMudGltZW91dElkID0gc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXIuc2V0KHRydWUpO1xuICAgICAgICAgICAgfSwgdGhpcy5kZWxheU1zKCkpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgdGhpcy5jYW5SZW5kZXIuc2V0KHRydWUpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjbGVhckRlbGF5VGltZXIoKSB7XG4gICAgICAgIGlmICh0aGlzLnRpbWVvdXRJZCAhPT0gbnVsbCkge1xuICAgICAgICAgICAgY2xlYXJUaW1lb3V0KHRoaXMudGltZW91dElkKTtcbiAgICAgICAgICAgIHRoaXMudGltZW91dElkID0gbnVsbDtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCkge1xuICAgICAgICB0aGlzLmNsZWFyRGVsYXlUaW1lcigpO1xuICAgIH1cbn1cbiJdfQ==
@@ -1,53 +1,52 @@
1
- import { Directive, ElementRef, EventEmitter, inject, Output } from '@angular/core';
2
- import { injectAvatar } from './avatar-root.directive';
1
+ import { computed, Directive, ElementRef, inject, input, output } from '@angular/core';
2
+ import { RdxAvatarRootContext } from './avatar-root.directive';
3
3
  import * as i0 from "@angular/core";
4
4
  export class RdxAvatarImageDirective {
5
5
  constructor() {
6
- this.avatar = injectAvatar();
7
- this.elementRef = inject(ElementRef);
8
- /**
9
- * By default, it will only render when it has loaded.
10
- * You can use the `onLoadingStatusChange` handler if you need more control.
11
- */
12
- this.onLoadingStatusChange = new EventEmitter();
6
+ this.avatarRoot = inject(RdxAvatarRootContext);
7
+ this.elementRef = inject((ElementRef));
8
+ this.src = (input.required);
9
+ this.onLoadingStatusChange = output();
10
+ this.imageLoadingStatus = computed(() => this.avatarRoot.imageLoadingStatus());
13
11
  }
14
12
  ngOnInit() {
15
- this.avatar._setState('loading');
16
13
  if (!this.nativeElement.src) {
17
- this.avatar._setState('error');
14
+ this.setImageStatus('error');
18
15
  }
19
- if (this.nativeElement.complete) {
20
- this.avatar._setState('loaded');
16
+ else if (this.nativeElement.complete) {
17
+ this.setImageStatus('loaded');
18
+ }
19
+ else {
20
+ this.setImageStatus('loading');
21
21
  }
22
- this.onLoadingStatusChange.emit(this.avatar._state());
23
22
  }
24
23
  onLoad() {
25
- this.avatar._setState('loaded');
26
- this.onLoadingStatusChange.emit('loaded');
24
+ this.setImageStatus('loaded');
27
25
  }
28
26
  onError() {
29
- this.avatar._setState('error');
30
- this.onLoadingStatusChange.emit('error');
27
+ this.setImageStatus('error');
28
+ }
29
+ setImageStatus(status) {
30
+ this.avatarRoot.imageLoadingStatus.set(status);
31
+ this.onLoadingStatusChange.emit(status);
31
32
  }
32
33
  get nativeElement() {
33
34
  return this.elementRef.nativeElement;
34
35
  }
35
36
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarImageDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
36
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxAvatarImageDirective, isStandalone: true, selector: "img[rdxAvatarImage]", outputs: { onLoadingStatusChange: "onLoadingStatusChange" }, host: { attributes: { "role": "img" }, listeners: { "load": "onLoad()", "error": "onError()" } }, exportAs: ["rdxAvatarImage"], ngImport: i0 }); }
37
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxAvatarImageDirective, isStandalone: true, selector: "img[rdxAvatarImage]", outputs: { onLoadingStatusChange: "onLoadingStatusChange" }, host: { listeners: { "load": "onLoad()", "error": "onError()" }, properties: { "style.display": "(imageLoadingStatus() === \"loaded\")? null : \"none\"" } }, exportAs: ["rdxAvatarImage"], ngImport: i0 }); }
37
38
  }
38
39
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarImageDirective, decorators: [{
39
40
  type: Directive,
40
41
  args: [{
41
42
  selector: 'img[rdxAvatarImage]',
42
- exportAs: 'rdxAvatarImage',
43
43
  standalone: true,
44
+ exportAs: 'rdxAvatarImage',
44
45
  host: {
45
- role: 'img',
46
46
  '(load)': 'onLoad()',
47
- '(error)': 'onError()'
47
+ '(error)': 'onError()',
48
+ '[style.display]': '(imageLoadingStatus() === "loaded")? null : "none"'
48
49
  }
49
50
  }]
50
- }], propDecorators: { onLoadingStatusChange: [{
51
- type: Output
52
- }] } });
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWltYWdlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvYXZhdGFyL3NyYy9hdmF0YXItaW1hZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsVUFBVSxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVGLE9BQU8sRUFBRSxZQUFZLEVBQXlCLE1BQU0seUJBQXlCLENBQUM7O0FBZ0I5RSxNQUFNLE9BQU8sdUJBQXVCO0lBVnBDO1FBV3FCLFdBQU0sR0FBRyxZQUFZLEVBQUUsQ0FBQztRQUV4QixlQUFVLEdBQUcsTUFBTSxDQUErQixVQUFVLENBQUMsQ0FBQztRQUUvRTs7O1dBR0c7UUFDTywwQkFBcUIsR0FBRyxJQUFJLFlBQVksRUFBeUIsQ0FBQztLQTZCL0U7SUEzQkcsUUFBUTtRQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRWpDLElBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQzFCLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFUyxNQUFNO1FBQ1osSUFBSSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBRVMsT0FBTztRQUNiLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDN0MsQ0FBQztJQUVELElBQUksYUFBYTtRQUNiLE9BQU8sSUFBSSxDQUFDLFVBQVUsQ0FBQyxhQUFhLENBQUM7SUFDekMsQ0FBQzsrR0FyQ1EsdUJBQXVCO21HQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBVm5DLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLGdCQUFnQjtvQkFDMUIsVUFBVSxFQUFFLElBQUk7b0JBQ2hCLElBQUksRUFBRTt3QkFDRixJQUFJLEVBQUUsS0FBSzt3QkFDWCxRQUFRLEVBQUUsVUFBVTt3QkFDcEIsU0FBUyxFQUFFLFdBQVc7cUJBQ3pCO2lCQUNKOzhCQVVhLHFCQUFxQjtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBpbmplY3QsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RBdmF0YXIsIFJkeEltYWdlTG9hZGluZ1N0YXR1cyB9IGZyb20gJy4vYXZhdGFyLXJvb3QuZGlyZWN0aXZlJztcblxuZXhwb3J0IGludGVyZmFjZSBSZHhBdmF0YXJJbWFnZVByb3BzIHtcbiAgICBvbkxvYWRpbmdTdGF0dXNDaGFuZ2U/OiBFdmVudEVtaXR0ZXI8UmR4SW1hZ2VMb2FkaW5nU3RhdHVzPjtcbn1cblxuQERpcmVjdGl2ZSh7XG4gICAgc2VsZWN0b3I6ICdpbWdbcmR4QXZhdGFySW1hZ2VdJyxcbiAgICBleHBvcnRBczogJ3JkeEF2YXRhckltYWdlJyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIGhvc3Q6IHtcbiAgICAgICAgcm9sZTogJ2ltZycsXG4gICAgICAgICcobG9hZCknOiAnb25Mb2FkKCknLFxuICAgICAgICAnKGVycm9yKSc6ICdvbkVycm9yKCknXG4gICAgfVxufSlcbmV4cG9ydCBjbGFzcyBSZHhBdmF0YXJJbWFnZURpcmVjdGl2ZSBpbXBsZW1lbnRzIFJkeEF2YXRhckltYWdlUHJvcHMsIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBhdmF0YXIgPSBpbmplY3RBdmF0YXIoKTtcblxuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdDxFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+PihFbGVtZW50UmVmKTtcblxuICAgIC8qKlxuICAgICAqIEJ5IGRlZmF1bHQsIGl0IHdpbGwgb25seSByZW5kZXIgd2hlbiBpdCBoYXMgbG9hZGVkLlxuICAgICAqIFlvdSBjYW4gdXNlIHRoZSBgb25Mb2FkaW5nU3RhdHVzQ2hhbmdlYCBoYW5kbGVyIGlmIHlvdSBuZWVkIG1vcmUgY29udHJvbC5cbiAgICAgKi9cbiAgICBAT3V0cHV0KCkgb25Mb2FkaW5nU3RhdHVzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxSZHhJbWFnZUxvYWRpbmdTdGF0dXM+KCk7XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdmF0YXIuX3NldFN0YXRlKCdsb2FkaW5nJyk7XG5cbiAgICAgICAgaWYgKCF0aGlzLm5hdGl2ZUVsZW1lbnQuc3JjKSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhci5fc2V0U3RhdGUoJ2Vycm9yJyk7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAodGhpcy5uYXRpdmVFbGVtZW50LmNvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLmF2YXRhci5fc2V0U3RhdGUoJ2xvYWRlZCcpO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5vbkxvYWRpbmdTdGF0dXNDaGFuZ2UuZW1pdCh0aGlzLmF2YXRhci5fc3RhdGUoKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uTG9hZCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hdmF0YXIuX3NldFN0YXRlKCdsb2FkZWQnKTtcbiAgICAgICAgdGhpcy5vbkxvYWRpbmdTdGF0dXNDaGFuZ2UuZW1pdCgnbG9hZGVkJyk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIG9uRXJyb3IoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXZhdGFyLl9zZXRTdGF0ZSgnZXJyb3InKTtcbiAgICAgICAgdGhpcy5vbkxvYWRpbmdTdGF0dXNDaGFuZ2UuZW1pdCgnZXJyb3InKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cbiJdfQ==
51
+ }] });
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLWltYWdlLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvYXZhdGFyL3NyYy9hdmF0YXItaW1hZ2UuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRixPQUFPLEVBQUUsb0JBQW9CLEVBQXlCLE1BQU0seUJBQXlCLENBQUM7O0FBWXRGLE1BQU0sT0FBTyx1QkFBdUI7SUFWcEM7UUFXcUIsZUFBVSxHQUFHLE1BQU0sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1FBQzFDLGVBQVUsR0FBRyxNQUFNLENBQUMsQ0FBQSxVQUE0QixDQUFBLENBQUMsQ0FBQztRQUUxRCxRQUFHLEdBQUcsQ0FBQSxLQUFLLENBQUMsUUFBZ0IsQ0FBQSxDQUFDO1FBRTdCLDBCQUFxQixHQUFHLE1BQU0sRUFBeUIsQ0FBQztRQUV4RCx1QkFBa0IsR0FBRyxRQUFRLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDLENBQUM7S0E0QnRGO0lBMUJHLFFBQVE7UUFDSixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLEVBQUUsQ0FBQztZQUMxQixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ2pDLENBQUM7YUFBTSxJQUFJLElBQUksQ0FBQyxhQUFhLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDckMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUNsQyxDQUFDO2FBQU0sQ0FBQztZQUNKLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDbkMsQ0FBQztJQUNMLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsT0FBTztRQUNILElBQUksQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVPLGNBQWMsQ0FBQyxNQUE2QjtRQUNoRCxJQUFJLENBQUMsVUFBVSxDQUFDLGtCQUFrQixDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMscUJBQXFCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDYixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsYUFBYSxDQUFDO0lBQ3pDLENBQUM7K0dBbkNRLHVCQUF1QjttR0FBdkIsdUJBQXVCOzs0RkFBdkIsdUJBQXVCO2tCQVZuQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFVBQVUsRUFBRSxJQUFJO29CQUNoQixRQUFRLEVBQUUsZ0JBQWdCO29CQUMxQixJQUFJLEVBQUU7d0JBQ0YsUUFBUSxFQUFFLFVBQVU7d0JBQ3BCLFNBQVMsRUFBRSxXQUFXO3dCQUN0QixpQkFBaUIsRUFBRSxvREFBb0Q7cUJBQzFFO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgY29tcHV0ZWQsIERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgaW5qZWN0LCBpbnB1dCwgT25Jbml0LCBvdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJkeEF2YXRhclJvb3RDb250ZXh0LCBSZHhJbWFnZUxvYWRpbmdTdGF0dXMgfSBmcm9tICcuL2F2YXRhci1yb290LmRpcmVjdGl2ZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnaW1nW3JkeEF2YXRhckltYWdlXScsXG4gICAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgICBleHBvcnRBczogJ3JkeEF2YXRhckltYWdlJyxcbiAgICBob3N0OiB7XG4gICAgICAgICcobG9hZCknOiAnb25Mb2FkKCknLFxuICAgICAgICAnKGVycm9yKSc6ICdvbkVycm9yKCknLFxuICAgICAgICAnW3N0eWxlLmRpc3BsYXldJzogJyhpbWFnZUxvYWRpbmdTdGF0dXMoKSA9PT0gXCJsb2FkZWRcIik/IG51bGwgOiBcIm5vbmVcIidcbiAgICB9XG59KVxuZXhwb3J0IGNsYXNzIFJkeEF2YXRhckltYWdlRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBwcml2YXRlIHJlYWRvbmx5IGF2YXRhclJvb3QgPSBpbmplY3QoUmR4QXZhdGFyUm9vdENvbnRleHQpO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgZWxlbWVudFJlZiA9IGluamVjdChFbGVtZW50UmVmPEhUTUxJbWFnZUVsZW1lbnQ+KTtcblxuICAgIHJlYWRvbmx5IHNyYyA9IGlucHV0LnJlcXVpcmVkPHN0cmluZz47XG5cbiAgICByZWFkb25seSBvbkxvYWRpbmdTdGF0dXNDaGFuZ2UgPSBvdXRwdXQ8UmR4SW1hZ2VMb2FkaW5nU3RhdHVzPigpO1xuXG4gICAgcmVhZG9ubHkgaW1hZ2VMb2FkaW5nU3RhdHVzID0gY29tcHV0ZWQoKCkgPT4gdGhpcy5hdmF0YXJSb290LmltYWdlTG9hZGluZ1N0YXR1cygpKTtcblxuICAgIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoIXRoaXMubmF0aXZlRWxlbWVudC5zcmMpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SW1hZ2VTdGF0dXMoJ2Vycm9yJyk7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5uYXRpdmVFbGVtZW50LmNvbXBsZXRlKSB7XG4gICAgICAgICAgICB0aGlzLnNldEltYWdlU3RhdHVzKCdsb2FkZWQnKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SW1hZ2VTdGF0dXMoJ2xvYWRpbmcnKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIG9uTG9hZCgpIHtcbiAgICAgICAgdGhpcy5zZXRJbWFnZVN0YXR1cygnbG9hZGVkJyk7XG4gICAgfVxuXG4gICAgb25FcnJvcigpIHtcbiAgICAgICAgdGhpcy5zZXRJbWFnZVN0YXR1cygnZXJyb3InKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHNldEltYWdlU3RhdHVzKHN0YXR1czogUmR4SW1hZ2VMb2FkaW5nU3RhdHVzKSB7XG4gICAgICAgIHRoaXMuYXZhdGFyUm9vdC5pbWFnZUxvYWRpbmdTdGF0dXMuc2V0KHN0YXR1cyk7XG4gICAgICAgIHRoaXMub25Mb2FkaW5nU3RhdHVzQ2hhbmdlLmVtaXQoc3RhdHVzKTtcbiAgICB9XG5cbiAgICBnZXQgbmF0aXZlRWxlbWVudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIH1cbn1cbiJdfQ==
@@ -1,30 +1,18 @@
1
- import { Directive, inject, InjectionToken, signal } from '@angular/core';
1
+ import { Directive, Injectable, signal } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
- const RdxAvatarToken = new InjectionToken('RdxAvatarToken');
4
- export function injectAvatar() {
5
- return inject(RdxAvatarToken);
6
- }
7
- export class RdxAvatarRootDirective {
3
+ export class RdxAvatarRootContext {
8
4
  constructor() {
9
- /**
10
- * A readonly signal property that holds the current state of image loading.
11
- * To set a new status, use the `setState` method of the component.
12
- * @internal
13
- */
14
- this._state = signal('idle');
15
- }
16
- /**
17
- * Set the avatar state.
18
- * @param state The new image loading status to set. This value should be one of the predefined states
19
- * in the `ImageLoadingStatus`
20
- * @returns void This method does not return a value.
21
- * @internal
22
- */
23
- _setState(state) {
24
- this._state.set(state);
5
+ this.imageLoadingStatus = signal('loading');
25
6
  }
7
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarRootContext, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
8
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarRootContext }); }
9
+ }
10
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarRootContext, decorators: [{
11
+ type: Injectable
12
+ }] });
13
+ export class RdxAvatarRootDirective {
26
14
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarRootDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
27
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxAvatarRootDirective, isStandalone: true, selector: "span[rdxAvatarRoot]", providers: [{ provide: RdxAvatarToken, useExisting: RdxAvatarRootDirective }], exportAs: ["rdxAvatarRoot"], ngImport: i0 }); }
15
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "18.2.11", type: RdxAvatarRootDirective, isStandalone: true, selector: "span[rdxAvatarRoot]", providers: [RdxAvatarRootContext], exportAs: ["rdxAvatarRoot"], ngImport: i0 }); }
28
16
  }
29
17
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxAvatarRootDirective, decorators: [{
30
18
  type: Directive,
@@ -32,7 +20,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
32
20
  selector: 'span[rdxAvatarRoot]',
33
21
  exportAs: 'rdxAvatarRoot',
34
22
  standalone: true,
35
- providers: [{ provide: RdxAvatarToken, useExisting: RdxAvatarRootDirective }]
23
+ providers: [RdxAvatarRootContext]
36
24
  }]
37
25
  }] });
38
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXJvb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hdmF0YXIvc3JjL2F2YXRhci1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUUxRSxNQUFNLGNBQWMsR0FBRyxJQUFJLGNBQWMsQ0FBeUIsZ0JBQWdCLENBQUMsQ0FBQztBQUVwRixNQUFNLFVBQVUsWUFBWTtJQUN4QixPQUFPLE1BQU0sQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUNsQyxDQUFDO0FBVUQsTUFBTSxPQUFPLHNCQUFzQjtJQU5uQztRQU9JOzs7O1dBSUc7UUFDTSxXQUFNLEdBQUcsTUFBTSxDQUF3QixNQUFNLENBQUMsQ0FBQztLQVkzRDtJQVZHOzs7Ozs7T0FNRztJQUNILFNBQVMsQ0FBQyxLQUE0QjtRQUNsQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMzQixDQUFDOytHQWpCUSxzQkFBc0I7bUdBQXRCLHNCQUFzQixrRUFGcEIsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyxFQUFFLHNCQUFzQixFQUFFLENBQUM7OzRGQUVwRSxzQkFBc0I7a0JBTmxDLFNBQVM7bUJBQUM7b0JBQ1AsUUFBUSxFQUFFLHFCQUFxQjtvQkFDL0IsUUFBUSxFQUFFLGVBQWU7b0JBQ3pCLFVBQVUsRUFBRSxJQUFJO29CQUNoQixTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsV0FBVyx3QkFBd0IsRUFBRSxDQUFDO2lCQUNoRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IERpcmVjdGl2ZSwgaW5qZWN0LCBJbmplY3Rpb25Ub2tlbiwgc2lnbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmNvbnN0IFJkeEF2YXRhclRva2VuID0gbmV3IEluamVjdGlvblRva2VuPFJkeEF2YXRhclJvb3REaXJlY3RpdmU+KCdSZHhBdmF0YXJUb2tlbicpO1xuXG5leHBvcnQgZnVuY3Rpb24gaW5qZWN0QXZhdGFyKCk6IFJkeEF2YXRhclJvb3REaXJlY3RpdmUge1xuICAgIHJldHVybiBpbmplY3QoUmR4QXZhdGFyVG9rZW4pO1xufVxuXG5leHBvcnQgdHlwZSBSZHhJbWFnZUxvYWRpbmdTdGF0dXMgPSAnaWRsZScgfCAnbG9hZGluZycgfCAnbG9hZGVkJyB8ICdlcnJvcic7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnc3BhbltyZHhBdmF0YXJSb290XScsXG4gICAgZXhwb3J0QXM6ICdyZHhBdmF0YXJSb290JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW3sgcHJvdmlkZTogUmR4QXZhdGFyVG9rZW4sIHVzZUV4aXN0aW5nOiBSZHhBdmF0YXJSb290RGlyZWN0aXZlIH1dXG59KVxuZXhwb3J0IGNsYXNzIFJkeEF2YXRhclJvb3REaXJlY3RpdmUge1xuICAgIC8qKlxuICAgICAqIEEgcmVhZG9ubHkgc2lnbmFsIHByb3BlcnR5IHRoYXQgaG9sZHMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgaW1hZ2UgbG9hZGluZy5cbiAgICAgKiBUbyBzZXQgYSBuZXcgc3RhdHVzLCB1c2UgdGhlIGBzZXRTdGF0ZWAgbWV0aG9kIG9mIHRoZSBjb21wb25lbnQuXG4gICAgICogQGludGVybmFsXG4gICAgICovXG4gICAgcmVhZG9ubHkgX3N0YXRlID0gc2lnbmFsPFJkeEltYWdlTG9hZGluZ1N0YXR1cz4oJ2lkbGUnKTtcblxuICAgIC8qKlxuICAgICAqIFNldCB0aGUgYXZhdGFyIHN0YXRlLlxuICAgICAqIEBwYXJhbSBzdGF0ZSBUaGUgbmV3IGltYWdlIGxvYWRpbmcgc3RhdHVzIHRvIHNldC4gVGhpcyB2YWx1ZSBzaG91bGQgYmUgb25lIG9mIHRoZSBwcmVkZWZpbmVkIHN0YXRlc1xuICAgICAqICAgICAgICAgICAgICBpbiB0aGUgYEltYWdlTG9hZGluZ1N0YXR1c2BcbiAgICAgKiBAcmV0dXJucyB2b2lkIFRoaXMgbWV0aG9kIGRvZXMgbm90IHJldHVybiBhIHZhbHVlLlxuICAgICAqIEBpbnRlcm5hbFxuICAgICAqL1xuICAgIF9zZXRTdGF0ZShzdGF0ZTogUmR4SW1hZ2VMb2FkaW5nU3RhdHVzKTogdm9pZCB7XG4gICAgICAgIHRoaXMuX3N0YXRlLnNldChzdGF0ZSk7XG4gICAgfVxufVxuIl19
26
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXZhdGFyLXJvb3QuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvcHJpbWl0aXZlcy9hdmF0YXIvc3JjL2F2YXRhci1yb290LmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBSzlELE1BQU0sT0FBTyxvQkFBb0I7SUFEakM7UUFFYSx1QkFBa0IsR0FBRyxNQUFNLENBQXdCLFNBQVMsQ0FBQyxDQUFDO0tBQzFFOytHQUZZLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVOztBQVdYLE1BQU0sT0FBTyxzQkFBc0I7K0dBQXRCLHNCQUFzQjttR0FBdEIsc0JBQXNCLGtFQUZwQixDQUFDLG9CQUFvQixDQUFDOzs0RkFFeEIsc0JBQXNCO2tCQU5sQyxTQUFTO21CQUFDO29CQUNQLFFBQVEsRUFBRSxxQkFBcUI7b0JBQy9CLFFBQVEsRUFBRSxlQUFlO29CQUN6QixVQUFVLEVBQUUsSUFBSTtvQkFDaEIsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7aUJBQ3BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRGlyZWN0aXZlLCBJbmplY3RhYmxlLCBzaWduYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IHR5cGUgUmR4SW1hZ2VMb2FkaW5nU3RhdHVzID0gJ2lkbGUnIHwgJ2xvYWRpbmcnIHwgJ2xvYWRlZCcgfCAnZXJyb3InO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUmR4QXZhdGFyUm9vdENvbnRleHQge1xuICAgIHJlYWRvbmx5IGltYWdlTG9hZGluZ1N0YXR1cyA9IHNpZ25hbDxSZHhJbWFnZUxvYWRpbmdTdGF0dXM+KCdsb2FkaW5nJyk7XG59XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnc3BhbltyZHhBdmF0YXJSb290XScsXG4gICAgZXhwb3J0QXM6ICdyZHhBdmF0YXJSb290JyxcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHByb3ZpZGVyczogW1JkeEF2YXRhclJvb3RDb250ZXh0XVxufSlcbmV4cG9ydCBjbGFzcyBSZHhBdmF0YXJSb290RGlyZWN0aXZlIHt9XG4iXX0=
@@ -1,6 +1,36 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { RdxCheckboxButtonDirective } from './src/checkbox-button.directive';
3
+ import { RdxCheckboxIndicatorDirective } from './src/checkbox-indicator.directive';
4
+ import { RdxCheckboxInputDirective } from './src/checkbox-input.directive';
5
+ import { RdxCheckboxDirective } from './src/checkbox.directive';
6
+ import * as i0 from "@angular/core";
1
7
  export * from './src/checkbox-button.directive';
2
8
  export * from './src/checkbox-indicator.directive';
3
9
  export * from './src/checkbox-input.directive';
4
10
  export * from './src/checkbox.directive';
5
11
  export * from './src/checkbox.token';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NoZWNrYm94L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc3JjL2NoZWNrYm94LWJ1dHRvbi5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvY2hlY2tib3gtaW5kaWNhdG9yLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9jaGVja2JveC1pbnB1dC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9zcmMvY2hlY2tib3guZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2NoZWNrYm94LnRva2VuJztcbiJdfQ==
12
+ const _imports = [
13
+ RdxCheckboxInputDirective,
14
+ RdxCheckboxDirective,
15
+ RdxCheckboxButtonDirective,
16
+ RdxCheckboxIndicatorDirective
17
+ ];
18
+ export class RdxCheckboxModule {
19
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
20
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule, imports: [RdxCheckboxInputDirective,
21
+ RdxCheckboxDirective,
22
+ RdxCheckboxButtonDirective,
23
+ RdxCheckboxIndicatorDirective], exports: [RdxCheckboxInputDirective,
24
+ RdxCheckboxDirective,
25
+ RdxCheckboxButtonDirective,
26
+ RdxCheckboxIndicatorDirective] }); }
27
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule }); }
28
+ }
29
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxModule, decorators: [{
30
+ type: NgModule,
31
+ args: [{
32
+ imports: [..._imports],
33
+ exports: [..._imports]
34
+ }]
35
+ }] });
36
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wcmltaXRpdmVzL2NoZWNrYm94L2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDZCQUE2QixFQUFFLE1BQU0sb0NBQW9DLENBQUM7QUFDbkYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDM0UsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMEJBQTBCLENBQUM7O0FBRWhFLGNBQWMsaUNBQWlDLENBQUM7QUFDaEQsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLGdDQUFnQyxDQUFDO0FBQy9DLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsY0FBYyxzQkFBc0IsQ0FBQztBQUVyQyxNQUFNLFFBQVEsR0FBRztJQUNiLHlCQUF5QjtJQUN6QixvQkFBb0I7SUFDcEIsMEJBQTBCO0lBQzFCLDZCQUE2QjtDQUNoQyxDQUFDO0FBTUYsTUFBTSxPQUFPLGlCQUFpQjsrR0FBakIsaUJBQWlCO2dIQUFqQixpQkFBaUIsWUFWMUIseUJBQXlCO1lBQ3pCLG9CQUFvQjtZQUNwQiwwQkFBMEI7WUFDMUIsNkJBQTZCLGFBSDdCLHlCQUF5QjtZQUN6QixvQkFBb0I7WUFDcEIsMEJBQTBCO1lBQzFCLDZCQUE2QjtnSEFPcEIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUo3QixRQUFRO21CQUFDO29CQUNOLE9BQU8sRUFBRSxDQUFDLEdBQUcsUUFBUSxDQUFDO29CQUN0QixPQUFPLEVBQUUsQ0FBQyxHQUFHLFFBQVEsQ0FBQztpQkFDekIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmR4Q2hlY2tib3hCdXR0b25EaXJlY3RpdmUgfSBmcm9tICcuL3NyYy9jaGVja2JveC1idXR0b24uZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeENoZWNrYm94SW5kaWNhdG9yRGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2hlY2tib3gtaW5kaWNhdG9yLmRpcmVjdGl2ZSc7XG5pbXBvcnQgeyBSZHhDaGVja2JveElucHV0RGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2hlY2tib3gtaW5wdXQuZGlyZWN0aXZlJztcbmltcG9ydCB7IFJkeENoZWNrYm94RGlyZWN0aXZlIH0gZnJvbSAnLi9zcmMvY2hlY2tib3guZGlyZWN0aXZlJztcblxuZXhwb3J0ICogZnJvbSAnLi9zcmMvY2hlY2tib3gtYnV0dG9uLmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9jaGVja2JveC1pbmRpY2F0b3IuZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2NoZWNrYm94LWlucHV0LmRpcmVjdGl2ZSc7XG5leHBvcnQgKiBmcm9tICcuL3NyYy9jaGVja2JveC5kaXJlY3RpdmUnO1xuZXhwb3J0IHR5cGUgeyBDaGVja2JveFN0YXRlIH0gZnJvbSAnLi9zcmMvY2hlY2tib3guZGlyZWN0aXZlJztcbmV4cG9ydCAqIGZyb20gJy4vc3JjL2NoZWNrYm94LnRva2VuJztcblxuY29uc3QgX2ltcG9ydHMgPSBbXG4gICAgUmR4Q2hlY2tib3hJbnB1dERpcmVjdGl2ZSxcbiAgICBSZHhDaGVja2JveERpcmVjdGl2ZSxcbiAgICBSZHhDaGVja2JveEJ1dHRvbkRpcmVjdGl2ZSxcbiAgICBSZHhDaGVja2JveEluZGljYXRvckRpcmVjdGl2ZVxuXTtcblxuQE5nTW9kdWxlKHtcbiAgICBpbXBvcnRzOiBbLi4uX2ltcG9ydHNdLFxuICAgIGV4cG9ydHM6IFsuLi5faW1wb3J0c11cbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2hlY2tib3hNb2R1bGUge31cbiJdfQ==
@@ -8,13 +8,13 @@ export class RdxCheckboxButtonDirective {
8
8
  this.elementId = computed(() => (this.id() ? this.id() : `rdx-checkbox-${this.id()}`));
9
9
  }
10
10
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxButtonDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
11
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxCheckboxButtonDirective, isStandalone: true, selector: "button[CheckboxButton]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "checkbox", "tabindex": "-1" }, properties: { "checked": "checkbox.checked", "disabled": "checkbox.disabled", "required": "checkbox.required", "attr.id": "elementId()", "attr.aria-checked": "checkbox.indeterminate ? \"mixed\" : checkbox.checked", "attr.aria-required": "checkbox.required ? \"\" : null", "attr.data-state": "checkbox.state", "attr.data-disabled": "checkbox.disabled ? \"\" : null" } }, ngImport: i0 }); }
11
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "18.2.11", type: RdxCheckboxButtonDirective, isStandalone: true, selector: "button[rdxCheckboxButton]", inputs: { id: { classPropertyName: "id", publicName: "id", isSignal: true, isRequired: false, transformFunction: null } }, host: { attributes: { "type": "button", "role": "checkbox", "tabindex": "-1" }, properties: { "checked": "checkbox.checked", "disabled": "checkbox.disabled", "required": "checkbox.required", "attr.id": "elementId()", "attr.aria-checked": "checkbox.indeterminate ? \"mixed\" : checkbox.checked", "attr.aria-required": "checkbox.required ? \"\" : null", "attr.data-state": "checkbox.state", "attr.data-disabled": "checkbox.disabled ? \"\" : null" } }, ngImport: i0 }); }
12
12
  }
13
13
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImport: i0, type: RdxCheckboxButtonDirective, decorators: [{
14
14
  type: Directive,
15
15
  args: [{
16
16
  standalone: true,
17
- selector: 'button[CheckboxButton]',
17
+ selector: 'button[rdxCheckboxButton]',
18
18
  host: {
19
19
  type: 'button',
20
20
  role: 'checkbox',
@@ -30,4 +30,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.11", ngImpo
30
30
  }
31
31
  }]
32
32
  }] });
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2hlY2tib3gvc3JjL2NoZWNrYm94LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFtQmxELE1BQU0sT0FBTywwQkFBMEI7SUFqQnZDO1FBa0J1QixhQUFRLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFdEMsT0FBRSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFDdEIsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3hHOytHQUxZLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQWpCdEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLHdCQUF3QjtvQkFDbEMsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxVQUFVO3dCQUNoQixRQUFRLEVBQUUsSUFBSTt3QkFDZCxXQUFXLEVBQUUsa0JBQWtCO3dCQUMvQixZQUFZLEVBQUUsbUJBQW1CO3dCQUNqQyxZQUFZLEVBQUUsbUJBQW1CO3dCQUNqQyxXQUFXLEVBQUUsYUFBYTt3QkFDMUIscUJBQXFCLEVBQUUscURBQXFEO3dCQUM1RSxzQkFBc0IsRUFBRSwrQkFBK0I7d0JBQ3ZELG1CQUFtQixFQUFFLGdCQUFnQjt3QkFDckMsc0JBQXNCLEVBQUUsK0JBQStCO3FCQUMxRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYnV0dG9uW0NoZWNrYm94QnV0dG9uXScsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgcm9sZTogJ2NoZWNrYm94JyxcbiAgICAgICAgdGFiaW5kZXg6ICctMScsXG4gICAgICAgICdbY2hlY2tlZF0nOiAnY2hlY2tib3guY2hlY2tlZCcsXG4gICAgICAgICdbZGlzYWJsZWRdJzogJ2NoZWNrYm94LmRpc2FibGVkJyxcbiAgICAgICAgJ1tyZXF1aXJlZF0nOiAnY2hlY2tib3gucmVxdWlyZWQnLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2VsZW1lbnRJZCgpJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY2hlY2tlZF0nOiAnY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA/IFwibWl4ZWRcIiA6IGNoZWNrYm94LmNoZWNrZWQnLFxuICAgICAgICAnW2F0dHIuYXJpYS1yZXF1aXJlZF0nOiAnY2hlY2tib3gucmVxdWlyZWQgPyBcIlwiIDogbnVsbCcsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdjaGVja2JveC5zdGF0ZScsXG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdjaGVja2JveC5kaXNhYmxlZCA/IFwiXCIgOiBudWxsJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2hlY2tib3hCdXR0b25EaXJlY3RpdmUge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjaGVja2JveCA9IGluamVjdENoZWNrYm94KCk7XG5cbiAgICByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuICAgIHByb3RlY3RlZCByZWFkb25seSBlbGVtZW50SWQgPSBjb21wdXRlZCgoKSA9PiAodGhpcy5pZCgpID8gdGhpcy5pZCgpIDogYHJkeC1jaGVja2JveC0ke3RoaXMuaWQoKX1gKSk7XG59XG4iXX0=
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2tib3gtYnV0dG9uLmRpcmVjdGl2ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL3ByaW1pdGl2ZXMvY2hlY2tib3gvc3JjL2NoZWNrYm94LWJ1dHRvbi5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFtQmxELE1BQU0sT0FBTywwQkFBMEI7SUFqQnZDO1FBa0J1QixhQUFRLEdBQUcsY0FBYyxFQUFFLENBQUM7UUFFdEMsT0FBRSxHQUFHLEtBQUssQ0FBZ0IsSUFBSSxDQUFDLENBQUM7UUFFdEIsY0FBUyxHQUFHLFFBQVEsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsSUFBSSxDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0tBQ3hHOytHQU5ZLDBCQUEwQjttR0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQWpCdEMsU0FBUzttQkFBQztvQkFDUCxVQUFVLEVBQUUsSUFBSTtvQkFDaEIsUUFBUSxFQUFFLDJCQUEyQjtvQkFDckMsSUFBSSxFQUFFO3dCQUNGLElBQUksRUFBRSxRQUFRO3dCQUNkLElBQUksRUFBRSxVQUFVO3dCQUNoQixRQUFRLEVBQUUsSUFBSTt3QkFDZCxXQUFXLEVBQUUsa0JBQWtCO3dCQUMvQixZQUFZLEVBQUUsbUJBQW1CO3dCQUNqQyxZQUFZLEVBQUUsbUJBQW1CO3dCQUNqQyxXQUFXLEVBQUUsYUFBYTt3QkFDMUIscUJBQXFCLEVBQUUscURBQXFEO3dCQUM1RSxzQkFBc0IsRUFBRSwrQkFBK0I7d0JBQ3ZELG1CQUFtQixFQUFFLGdCQUFnQjt3QkFDckMsc0JBQXNCLEVBQUUsK0JBQStCO3FCQUMxRDtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGNvbXB1dGVkLCBEaXJlY3RpdmUsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpbmplY3RDaGVja2JveCB9IGZyb20gJy4vY2hlY2tib3gudG9rZW4nO1xuXG5ARGlyZWN0aXZlKHtcbiAgICBzdGFuZGFsb25lOiB0cnVlLFxuICAgIHNlbGVjdG9yOiAnYnV0dG9uW3JkeENoZWNrYm94QnV0dG9uXScsXG4gICAgaG9zdDoge1xuICAgICAgICB0eXBlOiAnYnV0dG9uJyxcbiAgICAgICAgcm9sZTogJ2NoZWNrYm94JyxcbiAgICAgICAgdGFiaW5kZXg6ICctMScsXG4gICAgICAgICdbY2hlY2tlZF0nOiAnY2hlY2tib3guY2hlY2tlZCcsXG4gICAgICAgICdbZGlzYWJsZWRdJzogJ2NoZWNrYm94LmRpc2FibGVkJyxcbiAgICAgICAgJ1tyZXF1aXJlZF0nOiAnY2hlY2tib3gucmVxdWlyZWQnLFxuICAgICAgICAnW2F0dHIuaWRdJzogJ2VsZW1lbnRJZCgpJyxcbiAgICAgICAgJ1thdHRyLmFyaWEtY2hlY2tlZF0nOiAnY2hlY2tib3guaW5kZXRlcm1pbmF0ZSA/IFwibWl4ZWRcIiA6IGNoZWNrYm94LmNoZWNrZWQnLFxuICAgICAgICAnW2F0dHIuYXJpYS1yZXF1aXJlZF0nOiAnY2hlY2tib3gucmVxdWlyZWQgPyBcIlwiIDogbnVsbCcsXG4gICAgICAgICdbYXR0ci5kYXRhLXN0YXRlXSc6ICdjaGVja2JveC5zdGF0ZScsXG4gICAgICAgICdbYXR0ci5kYXRhLWRpc2FibGVkXSc6ICdjaGVja2JveC5kaXNhYmxlZCA/IFwiXCIgOiBudWxsJ1xuICAgIH1cbn0pXG5leHBvcnQgY2xhc3MgUmR4Q2hlY2tib3hCdXR0b25EaXJlY3RpdmUge1xuICAgIHByb3RlY3RlZCByZWFkb25seSBjaGVja2JveCA9IGluamVjdENoZWNrYm94KCk7XG5cbiAgICByZWFkb25seSBpZCA9IGlucHV0PHN0cmluZyB8IG51bGw+KG51bGwpO1xuXG4gICAgcHJvdGVjdGVkIHJlYWRvbmx5IGVsZW1lbnRJZCA9IGNvbXB1dGVkKCgpID0+ICh0aGlzLmlkKCkgPyB0aGlzLmlkKCkgOiBgcmR4LWNoZWNrYm94LSR7dGhpcy5pZCgpfWApKTtcbn1cbiJdfQ==