ng-primitives 0.90.0 → 0.91.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 (93) hide show
  1. package/a11y/index.d.ts +38 -46
  2. package/accordion/index.d.ts +252 -104
  3. package/ai/index.d.ts +1 -1
  4. package/autofill/index.d.ts +49 -9
  5. package/avatar/index.d.ts +96 -61
  6. package/breadcrumbs/index.d.ts +156 -16
  7. package/button/index.d.ts +23 -28
  8. package/checkbox/index.d.ts +93 -14
  9. package/combobox/index.d.ts +1 -1
  10. package/date-picker/index.d.ts +12 -11
  11. package/fesm2022/ng-primitives-a11y.mjs +36 -52
  12. package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
  13. package/fesm2022/ng-primitives-accordion.mjs +210 -189
  14. package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
  15. package/fesm2022/ng-primitives-ai.mjs +4 -4
  16. package/fesm2022/ng-primitives-ai.mjs.map +1 -1
  17. package/fesm2022/ng-primitives-autofill.mjs +53 -36
  18. package/fesm2022/ng-primitives-autofill.mjs.map +1 -1
  19. package/fesm2022/ng-primitives-avatar.mjs +97 -138
  20. package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
  21. package/fesm2022/ng-primitives-breadcrumbs.mjs +92 -35
  22. package/fesm2022/ng-primitives-breadcrumbs.mjs.map +1 -1
  23. package/fesm2022/ng-primitives-button.mjs +14 -36
  24. package/fesm2022/ng-primitives-button.mjs.map +1 -1
  25. package/fesm2022/ng-primitives-checkbox.mjs +87 -65
  26. package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
  27. package/fesm2022/ng-primitives-combobox.mjs +9 -9
  28. package/fesm2022/ng-primitives-combobox.mjs.map +1 -1
  29. package/fesm2022/ng-primitives-date-picker.mjs +5 -4
  30. package/fesm2022/ng-primitives-date-picker.mjs.map +1 -1
  31. package/fesm2022/ng-primitives-form-field.mjs +48 -16
  32. package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
  33. package/fesm2022/ng-primitives-input.mjs +32 -48
  34. package/fesm2022/ng-primitives-input.mjs.map +1 -1
  35. package/fesm2022/ng-primitives-interactions.mjs +4 -4
  36. package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
  37. package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
  38. package/fesm2022/ng-primitives-menu.mjs +13 -6
  39. package/fesm2022/ng-primitives-menu.mjs.map +1 -1
  40. package/fesm2022/ng-primitives-pagination.mjs +6 -6
  41. package/fesm2022/ng-primitives-pagination.mjs.map +1 -1
  42. package/fesm2022/ng-primitives-progress.mjs +2 -2
  43. package/fesm2022/ng-primitives-progress.mjs.map +1 -1
  44. package/fesm2022/ng-primitives-radio.mjs +3 -3
  45. package/fesm2022/ng-primitives-radio.mjs.map +1 -1
  46. package/fesm2022/ng-primitives-roving-focus.mjs +259 -236
  47. package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
  48. package/fesm2022/ng-primitives-search.mjs.map +1 -1
  49. package/fesm2022/ng-primitives-select.mjs +8 -8
  50. package/fesm2022/ng-primitives-select.mjs.map +1 -1
  51. package/fesm2022/ng-primitives-slider.mjs +195 -172
  52. package/fesm2022/ng-primitives-slider.mjs.map +1 -1
  53. package/fesm2022/ng-primitives-state.mjs +172 -2
  54. package/fesm2022/ng-primitives-state.mjs.map +1 -1
  55. package/fesm2022/ng-primitives-switch.mjs +90 -88
  56. package/fesm2022/ng-primitives-switch.mjs.map +1 -1
  57. package/fesm2022/ng-primitives-tabs.mjs +4 -1
  58. package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
  59. package/fesm2022/ng-primitives-textarea.mjs +27 -35
  60. package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
  61. package/fesm2022/ng-primitives-toggle-group.mjs +134 -136
  62. package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
  63. package/fesm2022/ng-primitives-toggle.mjs +69 -58
  64. package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
  65. package/fesm2022/ng-primitives-toolbar.mjs +26 -35
  66. package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
  67. package/fesm2022/ng-primitives-utils.mjs +48 -35
  68. package/fesm2022/ng-primitives-utils.mjs.map +1 -1
  69. package/form-field/index.d.ts +7 -3
  70. package/input/index.d.ts +61 -24
  71. package/interactions/index.d.ts +5 -5
  72. package/listbox/index.d.ts +1 -1
  73. package/menu/index.d.ts +3 -2
  74. package/package.json +1 -1
  75. package/pagination/index.d.ts +7 -7
  76. package/roving-focus/index.d.ts +77 -101
  77. package/schematics/ng-add/schema.d.ts +0 -1
  78. package/schematics/ng-generate/templates/checkbox/checkbox.__fileSuffix@dasherize__.ts.template +2 -2
  79. package/schematics/ng-generate/templates/slider/slider.__fileSuffix@dasherize__.ts.template +6 -3
  80. package/schematics/ng-generate/templates/switch/switch.__fileSuffix@dasherize__.ts.template +2 -2
  81. package/schematics/ng-generate/templates/toggle/toggle.__fileSuffix@dasherize__.ts.template +2 -2
  82. package/schematics/ng-generate/templates/toggle-group/toggle-group.__fileSuffix@dasherize__.ts.template +2 -2
  83. package/schematics/ng-generate/templates/toolbar/toolbar.__fileSuffix@dasherize__.ts.template +1 -1
  84. package/search/index.d.ts +1 -1
  85. package/select/index.d.ts +2 -2
  86. package/slider/index.d.ts +195 -56
  87. package/state/index.d.ts +57 -3
  88. package/switch/index.d.ts +103 -28
  89. package/textarea/index.d.ts +63 -8
  90. package/toggle/index.d.ts +65 -24
  91. package/toggle-group/index.d.ts +79 -54
  92. package/toolbar/index.d.ts +27 -17
  93. package/utils/index.d.ts +1 -0
@@ -1,71 +1,9 @@
1
1
  import * as i0 from '@angular/core';
2
- import { signal, Directive, InjectionToken, inject, input, numberAttribute, computed, ElementRef, HostListener } from '@angular/core';
2
+ import { InjectionToken, inject, signal, computed, input, numberAttribute, Directive } from '@angular/core';
3
+ import { injectElementRef } from 'ng-primitives/internal';
4
+ import { createPrimitive, dataBinding, styleBinding, listener } from 'ng-primitives/state';
3
5
  import { injectDisposables } from 'ng-primitives/utils';
4
- import { createStateToken, createStateProvider, createStateInjector, createState } from 'ng-primitives/state';
5
- import * as i1 from 'ng-primitives/a11y';
6
- import { injectVisuallyHiddenState, NgpVisuallyHidden } from 'ng-primitives/a11y';
7
-
8
- /**
9
- * The state token for the Avatar primitive.
10
- */
11
- const NgpAvatarStateToken = createStateToken('Avatar');
12
- /**
13
- * Provides the Avatar state.
14
- */
15
- const provideAvatarState = createStateProvider(NgpAvatarStateToken);
16
- /**
17
- * Injects the Avatar state.
18
- */
19
- const injectAvatarState = createStateInjector(NgpAvatarStateToken);
20
- /**
21
- * The Avatar state registration function.
22
- */
23
- const avatarState = createState(NgpAvatarStateToken);
24
-
25
- /**
26
- * Apply the `ngpAvatar` directive to an element that represents the avatar. This directive is a container for the image and/or fallback.
27
- */
28
- class NgpAvatar {
29
- constructor() {
30
- /**
31
- * Store the current status of the avatar.
32
- * @internal
33
- */
34
- this.status = signal(NgpAvatarStatus.Idle, ...(ngDevMode ? [{ debugName: "status" }] : []));
35
- /**
36
- * The avatar state.
37
- */
38
- this.state = avatarState(this);
39
- }
40
- /**
41
- * Set the avatar status.
42
- * @param status The status to set.
43
- * @internal
44
- */
45
- setStatus(status) {
46
- this.status.set(status);
47
- }
48
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
49
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpAvatar, isStandalone: true, selector: "[ngpAvatar]", host: { properties: { "attr.data-status": "status()" } }, providers: [provideAvatarState()], exportAs: ["ngpAvatar"], ngImport: i0 }); }
50
- }
51
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatar, decorators: [{
52
- type: Directive,
53
- args: [{
54
- selector: '[ngpAvatar]',
55
- exportAs: 'ngpAvatar',
56
- providers: [provideAvatarState()],
57
- host: {
58
- '[attr.data-status]': 'status()',
59
- },
60
- }]
61
- }] });
62
- var NgpAvatarStatus;
63
- (function (NgpAvatarStatus) {
64
- NgpAvatarStatus["Idle"] = "idle";
65
- NgpAvatarStatus["Loading"] = "loading";
66
- NgpAvatarStatus["Loaded"] = "loaded";
67
- NgpAvatarStatus["Error"] = "error";
68
- })(NgpAvatarStatus || (NgpAvatarStatus = {}));
6
+ import { ngpVisuallyHidden } from 'ng-primitives/a11y';
69
7
 
70
8
  const defaultAvatarConfig = {
71
9
  delay: 0,
@@ -92,23 +30,47 @@ function injectAvatarConfig() {
92
30
  return inject(NgpAvatarConfigToken, { optional: true }) ?? defaultAvatarConfig;
93
31
  }
94
32
 
33
+ const [NgpAvatarStateToken, ngpAvatar, injectAvatarState, provideAvatarState] = createPrimitive('NgpAvatar', ({}) => {
34
+ const element = injectElementRef();
35
+ const status = signal(NgpAvatarStatus.Idle, ...(ngDevMode ? [{ debugName: "status" }] : []));
36
+ // Host bindings
37
+ dataBinding(element, 'data-status', status);
38
+ function setStatus(newStatus) {
39
+ status.set(newStatus);
40
+ }
41
+ return {
42
+ status,
43
+ setStatus,
44
+ };
45
+ });
46
+ var NgpAvatarStatus;
47
+ (function (NgpAvatarStatus) {
48
+ NgpAvatarStatus["Idle"] = "idle";
49
+ NgpAvatarStatus["Loading"] = "loading";
50
+ NgpAvatarStatus["Loaded"] = "loaded";
51
+ NgpAvatarStatus["Error"] = "error";
52
+ })(NgpAvatarStatus || (NgpAvatarStatus = {}));
53
+
54
+ const [NgpAvatarFallbackStateToken, ngpAvatarFallback, injectAvatarFallbackState, provideAvatarFallbackState,] = createPrimitive('NgpAvatarFallback', ({}) => {
55
+ const avatar = injectAvatarState();
56
+ const element = injectElementRef();
57
+ const disposables = injectDisposables();
58
+ const delayElapsed = signal(false, ...(ngDevMode ? [{ debugName: "delayElapsed" }] : []));
59
+ const visible = computed(() => delayElapsed() && avatar().status() !== NgpAvatarStatus.Loaded, ...(ngDevMode ? [{ debugName: "visible" }] : []));
60
+ disposables.setTimeout(() => delayElapsed.set(true), 0);
61
+ styleBinding(element, 'display', () => (visible() ? null : 'none'));
62
+ return {};
63
+ });
64
+
95
65
  /**
96
66
  * Apply the `ngpAvatarFallback` directive to an element that represents the user in the absence of an image. This is typically the user's initials.
97
67
  */
98
68
  class NgpAvatarFallback {
99
69
  constructor() {
100
- /**
101
- * Access the avatar
102
- */
103
- this.avatar = injectAvatarState();
104
70
  /**
105
71
  * Access the global configuration.
106
72
  */
107
73
  this.config = injectAvatarConfig();
108
- /**
109
- * Access the disposable utilities.
110
- */
111
- this.disposables = injectDisposables();
112
74
  /**
113
75
  * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.
114
76
  * @default 0
@@ -118,97 +80,94 @@ class NgpAvatarFallback {
118
80
  alias: 'ngpAvatarFallbackDelay',
119
81
  transform: numberAttribute,
120
82
  }]));
121
- /**
122
- * Determine if this element should be hidden.
123
- * @returns True if the element should be visible
124
- */
125
- this.visible = computed(() =>
126
- // we need to check if the element can render and if the avatar is not in a loaded state
127
- this.delayElapsed() && this.avatar().status() !== NgpAvatarStatus.Loaded, ...(ngDevMode ? [{ debugName: "visible" }] : []));
128
- /**
129
- * Determine the delay has elapsed, and we can show the fallback.
130
- */
131
- this.delayElapsed = signal(false, ...(ngDevMode ? [{ debugName: "delayElapsed" }] : []));
132
- }
133
- ngOnInit() {
134
- this.disposables.setTimeout(() => this.delayElapsed.set(true), this.delay());
83
+ ngpAvatarFallback({ delay: this.delay });
135
84
  }
136
85
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatarFallback, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
137
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", 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\"" } }, exportAs: ["ngpAvatarFallback"], ngImport: i0 }); }
86
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "17.1.0", version: "20.3.9", type: NgpAvatarFallback, isStandalone: true, selector: "[ngpAvatarFallback]", inputs: { delay: { classPropertyName: "delay", publicName: "ngpAvatarFallbackDelay", isSignal: true, isRequired: false, transformFunction: null } }, exportAs: ["ngpAvatarFallback"], ngImport: i0 }); }
138
87
  }
139
88
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatarFallback, decorators: [{
140
89
  type: Directive,
141
90
  args: [{
142
91
  selector: '[ngpAvatarFallback]',
143
92
  exportAs: 'ngpAvatarFallback',
144
- host: {
145
- '[style.display]': 'visible() ? null : "none"',
146
- },
147
93
  }]
148
- }], propDecorators: { delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpAvatarFallbackDelay", required: false }] }] } });
94
+ }], ctorParameters: () => [], propDecorators: { delay: [{ type: i0.Input, args: [{ isSignal: true, alias: "ngpAvatarFallbackDelay", required: false }] }] } });
95
+
96
+ const [NgpAvatarImageStateToken, ngpAvatarImage, injectAvatarImageState, provideAvatarImageState,] = createPrimitive('NgpAvatarImage', ({}) => {
97
+ const avatar = injectAvatarState();
98
+ const element = injectElementRef();
99
+ const visuallyHidden = ngpVisuallyHidden({});
100
+ // initially mark the avatar as loading
101
+ setStatus(NgpAvatarStatus.Loading);
102
+ // if there is no src, we can report this as an error
103
+ if (!element.nativeElement.src) {
104
+ setStatus(NgpAvatarStatus.Error);
105
+ }
106
+ // if the image has already loaded, we can report this to the avatar
107
+ if (element.nativeElement.complete) {
108
+ setStatus(NgpAvatarStatus.Loaded);
109
+ }
110
+ // host listeners
111
+ listener(element, 'load', () => setStatus(NgpAvatarStatus.Loaded));
112
+ listener(element, 'error', () => setStatus(NgpAvatarStatus.Error));
113
+ function setStatus(state) {
114
+ avatar().setStatus(state);
115
+ visuallyHidden.setVisibility(state === NgpAvatarStatus.Loaded);
116
+ }
117
+ return {};
118
+ });
149
119
 
150
120
  /**
151
121
  * Apply the `ngpAvatarImage` directive to an element that represents the avatar image. This would typically be an `img` element or a `div` with a background image.
152
122
  */
153
123
  class NgpAvatarImage {
154
124
  constructor() {
155
- /**
156
- * Control the visibility of the image.
157
- */
158
- this.visuallyHidden = injectVisuallyHiddenState();
159
- /**
160
- * Access the avatar
161
- */
162
- this.avatar = injectAvatarState();
163
- /**
164
- * Access the image element ref.
165
- */
166
- this.elementRef = inject(ElementRef);
167
- }
168
- ngOnInit() {
169
- // mark the avatar as loading
170
- this.setState(NgpAvatarStatus.Loading);
171
- // if there is no src, we can report this as an error
172
- if (!this.elementRef.nativeElement.src) {
173
- this.setState(NgpAvatarStatus.Error);
174
- }
175
- // if the image has already loaded, we can report this to the avatar
176
- if (this.elementRef.nativeElement.complete) {
177
- this.setState(NgpAvatarStatus.Loaded);
178
- }
179
- }
180
- onLoad() {
181
- this.setState(NgpAvatarStatus.Loaded);
182
- }
183
- onError() {
184
- this.setState(NgpAvatarStatus.Error);
185
- }
186
- setState(state) {
187
- this.avatar().setStatus(state);
188
- // if the state is loaded then we should make the image visible
189
- this.visuallyHidden().setVisibility(state === NgpAvatarStatus.Loaded);
125
+ ngpAvatarImage({});
190
126
  }
191
127
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatarImage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
192
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpAvatarImage, isStandalone: true, selector: "img[ngpAvatarImage]", host: { listeners: { "load": "onLoad()", "error": "onError()" } }, exportAs: ["ngpAvatarImage"], hostDirectives: [{ directive: i1.NgpVisuallyHidden }], ngImport: i0 }); }
128
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpAvatarImage, isStandalone: true, selector: "img[ngpAvatarImage]", exportAs: ["ngpAvatarImage"], ngImport: i0 }); }
193
129
  }
194
130
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatarImage, decorators: [{
195
131
  type: Directive,
196
132
  args: [{
197
133
  selector: 'img[ngpAvatarImage]',
198
134
  exportAs: 'ngpAvatarImage',
199
- hostDirectives: [NgpVisuallyHidden],
200
135
  }]
201
- }], propDecorators: { onLoad: [{
202
- type: HostListener,
203
- args: ['load']
204
- }], onError: [{
205
- type: HostListener,
206
- args: ['error']
207
- }] } });
136
+ }], ctorParameters: () => [] });
137
+
138
+ /**
139
+ * Apply the `ngpAvatar` directive to an element that represents the avatar. This directive is a container for the image and/or fallback.
140
+ */
141
+ class NgpAvatar {
142
+ constructor() {
143
+ /**
144
+ * The avatar state.
145
+ */
146
+ this.state = ngpAvatar({});
147
+ }
148
+ /**
149
+ * Set the avatar status.
150
+ * @param status The status to set.
151
+ * @internal
152
+ */
153
+ setStatus(status) {
154
+ this.state.setStatus(status);
155
+ }
156
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatar, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
157
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpAvatar, isStandalone: true, selector: "[ngpAvatar]", providers: [provideAvatarState()], exportAs: ["ngpAvatar"], ngImport: i0 }); }
158
+ }
159
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpAvatar, decorators: [{
160
+ type: Directive,
161
+ args: [{
162
+ selector: '[ngpAvatar]',
163
+ exportAs: 'ngpAvatar',
164
+ providers: [provideAvatarState()],
165
+ }]
166
+ }] });
208
167
 
209
168
  /**
210
169
  * Generated bundle index. Do not edit.
211
170
  */
212
171
 
213
- export { NgpAvatar, NgpAvatarFallback, NgpAvatarImage, NgpAvatarStatus, injectAvatarState, provideAvatarConfig, provideAvatarState };
172
+ export { NgpAvatar, NgpAvatarFallback, NgpAvatarFallbackStateToken, NgpAvatarImage, NgpAvatarImageStateToken, NgpAvatarStateToken, NgpAvatarStatus, injectAvatarFallbackState, injectAvatarImageState, injectAvatarState, ngpAvatar, ngpAvatarFallback, ngpAvatarImage, provideAvatarConfig, provideAvatarFallbackState, provideAvatarImageState, provideAvatarState };
214
173
  //# sourceMappingURL=ng-primitives-avatar.mjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"ng-primitives-avatar.mjs","sources":["../../../../packages/ng-primitives/avatar/src/avatar/avatar-state.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.ts","../../../../packages/ng-primitives/avatar/src/config/avatar-config.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["import {\n createState,\n createStateInjector,\n createStateProvider,\n createStateToken,\n} from 'ng-primitives/state';\nimport type { NgpAvatar } from './avatar';\n\n/**\n * The state token for the Avatar primitive.\n */\nexport const NgpAvatarStateToken = createStateToken<NgpAvatar>('Avatar');\n\n/**\n * Provides the Avatar state.\n */\nexport const provideAvatarState = createStateProvider(NgpAvatarStateToken);\n\n/**\n * Injects the Avatar state.\n */\nexport const injectAvatarState = createStateInjector<NgpAvatar>(NgpAvatarStateToken);\n\n/**\n * The Avatar state registration function.\n */\nexport const avatarState = createState(NgpAvatarStateToken);\n","import { Directive, signal } from '@angular/core';\nimport { avatarState, provideAvatarState } from './avatar-state';\n\n/**\n * Apply the `ngpAvatar` directive to an element that represents the avatar. This directive is a container for the image and/or fallback.\n */\n@Directive({\n selector: '[ngpAvatar]',\n exportAs: 'ngpAvatar',\n providers: [provideAvatarState()],\n host: {\n '[attr.data-status]': 'status()',\n },\n})\nexport class NgpAvatar {\n /**\n * Store the current status of the avatar.\n * @internal\n */\n readonly status = signal(NgpAvatarStatus.Idle);\n\n /**\n * The avatar state.\n */\n protected readonly state = avatarState<NgpAvatar>(this);\n\n /**\n * Set the avatar status.\n * @param status The status to set.\n * @internal\n */\n setStatus(status: NgpAvatarStatus): void {\n this.status.set(status);\n }\n}\n\nexport enum NgpAvatarStatus {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","import { 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","import { NumberInput } from '@angular/cdk/coercion';\nimport { computed, Directive, input, numberAttribute, OnInit, signal } from '@angular/core';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { NgpAvatarStatus } from '../avatar/avatar';\nimport { injectAvatarState } from '../avatar/avatar-state';\nimport { injectAvatarConfig } from '../config/avatar-config';\n\n/**\n * Apply the `ngpAvatarFallback` directive to an element that represents the user in the absence of an image. This is typically the user's initials.\n */\n@Directive({\n selector: '[ngpAvatarFallback]',\n exportAs: 'ngpAvatarFallback',\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 = injectAvatarState();\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().status() !== NgpAvatarStatus.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","import { Directive, ElementRef, HostListener, inject, OnInit } from '@angular/core';\nimport { injectVisuallyHiddenState, NgpVisuallyHidden } from 'ng-primitives/a11y';\nimport { NgpAvatarStatus } from '../avatar/avatar';\nimport { injectAvatarState } from '../avatar/avatar-state';\n\n/**\n * Apply the `ngpAvatarImage` directive to an element that represents the avatar image. This would typically be an `img` element or a `div` with a background image.\n */\n@Directive({\n selector: 'img[ngpAvatarImage]',\n exportAs: 'ngpAvatarImage',\n hostDirectives: [NgpVisuallyHidden],\n})\nexport class NgpAvatarImage implements OnInit {\n /**\n * Control the visibility of the image.\n */\n protected readonly visuallyHidden = injectVisuallyHiddenState();\n\n /**\n * Access the avatar\n */\n private readonly avatar = injectAvatarState();\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(NgpAvatarStatus.Loading);\n\n // if there is no src, we can report this as an error\n if (!this.elementRef.nativeElement.src) {\n this.setState(NgpAvatarStatus.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(NgpAvatarStatus.Loaded);\n }\n }\n\n @HostListener('load')\n protected onLoad(): void {\n this.setState(NgpAvatarStatus.Loaded);\n }\n\n @HostListener('error')\n protected onError(): void {\n this.setState(NgpAvatarStatus.Error);\n }\n\n private setState(state: NgpAvatarStatus) {\n this.avatar().setStatus(state);\n\n // if the state is loaded then we should make the image visible\n this.visuallyHidden().setVisibility(state === NgpAvatarStatus.Loaded);\n }\n}\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/config/avatar-config.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-fallback/avatar-fallback.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image-state.ts","../../../../packages/ng-primitives/avatar/src/avatar-image/avatar-image.ts","../../../../packages/ng-primitives/avatar/src/avatar/avatar.ts","../../../../packages/ng-primitives/avatar/src/ng-primitives-avatar.ts"],"sourcesContent":["import { 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","import { signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, dataBinding } from 'ng-primitives/state';\n\nexport interface NgpAvatarState {\n /**\n * The avatar status.\n */\n status: Signal<NgpAvatarStatus>;\n\n /**\n * Set the avatar status.\n */\n setStatus(status: NgpAvatarStatus): void;\n}\n\nexport interface NgpAvatarProps {}\n\nexport const [NgpAvatarStateToken, ngpAvatar, injectAvatarState, provideAvatarState] =\n createPrimitive('NgpAvatar', ({}: NgpAvatarProps) => {\n const element = injectElementRef();\n const status = signal(NgpAvatarStatus.Idle);\n\n // Host bindings\n dataBinding(element, 'data-status', status);\n\n function setStatus(newStatus: NgpAvatarStatus): void {\n status.set(newStatus);\n }\n\n return {\n status,\n setStatus,\n };\n });\n\nexport enum NgpAvatarStatus {\n Idle = 'idle',\n Loading = 'loading',\n Loaded = 'loaded',\n Error = 'error',\n}\n","import { computed, signal, Signal } from '@angular/core';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, styleBinding } from 'ng-primitives/state';\nimport { injectDisposables } from 'ng-primitives/utils';\nimport { injectAvatarState, NgpAvatarStatus } from '../avatar/avatar-state';\n\nexport interface NgpAvatarFallbackState {}\n\nexport interface NgpAvatarFallbackProps {\n /**\n * The delay before showing the fallback.\n */\n delay?: Signal<number>;\n}\n\nexport const [\n NgpAvatarFallbackStateToken,\n ngpAvatarFallback,\n injectAvatarFallbackState,\n provideAvatarFallbackState,\n] = createPrimitive('NgpAvatarFallback', ({}: NgpAvatarFallbackProps) => {\n const avatar = injectAvatarState();\n const element = injectElementRef();\n const disposables = injectDisposables();\n\n const delayElapsed = signal(false);\n const visible = computed(() => delayElapsed() && avatar().status() !== NgpAvatarStatus.Loaded);\n\n disposables.setTimeout(() => delayElapsed.set(true), 0);\n\n styleBinding(element, 'display', () => (visible() ? null : 'none'));\n\n return {};\n});\n","import { NumberInput } from '@angular/cdk/coercion';\nimport { Directive, input, numberAttribute } from '@angular/core';\nimport { injectAvatarConfig } from '../config/avatar-config';\nimport { ngpAvatarFallback } from './avatar-fallback-state';\n\n/**\n * Apply the `ngpAvatarFallback` directive to an element that represents the user in the absence of an image. This is typically the user's initials.\n */\n@Directive({\n selector: '[ngpAvatarFallback]',\n exportAs: 'ngpAvatarFallback',\n})\nexport class NgpAvatarFallback {\n /**\n * Access the global configuration.\n */\n private readonly config = injectAvatarConfig();\n\n /**\n * Define a delay before the fallback is shown. This is useful to only show the fallback for those with slower connections.\n * @default 0\n */\n readonly delay = input<number, NumberInput>(this.config.delay, {\n alias: 'ngpAvatarFallbackDelay',\n transform: numberAttribute,\n });\n\n constructor() {\n ngpAvatarFallback({ delay: this.delay });\n }\n}\n","import { ngpVisuallyHidden } from 'ng-primitives/a11y';\nimport { injectElementRef } from 'ng-primitives/internal';\nimport { createPrimitive, listener } from 'ng-primitives/state';\nimport { injectAvatarState, NgpAvatarStatus } from '../avatar/avatar-state';\n\nexport interface NgpAvatarImageState {}\n\nexport interface NgpAvatarImageProps {}\n\nexport const [\n NgpAvatarImageStateToken,\n ngpAvatarImage,\n injectAvatarImageState,\n provideAvatarImageState,\n] = createPrimitive('NgpAvatarImage', ({}: NgpAvatarImageProps) => {\n const avatar = injectAvatarState();\n const element = injectElementRef<HTMLImageElement>();\n const visuallyHidden = ngpVisuallyHidden({});\n\n // initially mark the avatar as loading\n setStatus(NgpAvatarStatus.Loading);\n\n // if there is no src, we can report this as an error\n if (!element.nativeElement.src) {\n setStatus(NgpAvatarStatus.Error);\n }\n\n // if the image has already loaded, we can report this to the avatar\n if (element.nativeElement.complete) {\n setStatus(NgpAvatarStatus.Loaded);\n }\n\n // host listeners\n listener(element, 'load', () => setStatus(NgpAvatarStatus.Loaded));\n listener(element, 'error', () => setStatus(NgpAvatarStatus.Error));\n\n function setStatus(state: NgpAvatarStatus) {\n avatar().setStatus(state);\n visuallyHidden.setVisibility(state === NgpAvatarStatus.Loaded);\n }\n\n return {};\n});\n","import { Directive } from '@angular/core';\nimport { ngpAvatarImage } from './avatar-image-state';\n\n/**\n * Apply the `ngpAvatarImage` directive to an element that represents the avatar image. This would typically be an `img` element or a `div` with a background image.\n */\n@Directive({\n selector: 'img[ngpAvatarImage]',\n exportAs: 'ngpAvatarImage',\n})\nexport class NgpAvatarImage {\n constructor() {\n ngpAvatarImage({});\n }\n}\n","import { Directive } from '@angular/core';\nimport { ngpAvatar, NgpAvatarStatus, provideAvatarState } from './avatar-state';\n\n/**\n * Apply the `ngpAvatar` directive to an element that represents the avatar. This directive is a container for the image and/or fallback.\n */\n@Directive({\n selector: '[ngpAvatar]',\n exportAs: 'ngpAvatar',\n providers: [provideAvatarState()],\n})\nexport class NgpAvatar {\n /**\n * The avatar state.\n */\n private readonly state = ngpAvatar({});\n\n /**\n * Set the avatar status.\n * @param status The status to set.\n * @internal\n */\n setStatus(status: NgpAvatarStatus): void {\n this.state.setStatus(status);\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;;;AAUO,MAAM,mBAAmB,GAAoB;AAClD,IAAA,KAAK,EAAE,CAAC;CACT;AAEM,MAAM,oBAAoB,GAAG,IAAI,cAAc,CAAkB,sBAAsB,CAAC;AAE/F;;;;AAIG;AACG,SAAU,mBAAmB,CAAC,MAAgC,EAAA;IAClE,OAAO;AACL,QAAA;AACE,YAAA,OAAO,EAAE,oBAAoB;AAC7B,YAAA,QAAQ,EAAE,EAAE,GAAG,mBAAmB,EAAE,GAAG,MAAM,EAAE;AAChD,SAAA;KACF;AACH;AAEA;;;AAGG;SACa,kBAAkB,GAAA;AAChC,IAAA,OAAO,MAAM,CAAC,oBAAoB,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,IAAI,mBAAmB;AAChF;;AClBO,MAAM,CAAC,mBAAmB,EAAE,SAAS,EAAE,iBAAiB,EAAE,kBAAkB,CAAC,GAClF,eAAe,CAAC,WAAW,EAAE,CAAC,EAAkB,KAAI;AAClD,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;IAClC,MAAM,MAAM,GAAG,MAAM,CAAC,eAAe,CAAC,IAAI,kDAAC;;AAG3C,IAAA,WAAW,CAAC,OAAO,EAAE,aAAa,EAAE,MAAM,CAAC;IAE3C,SAAS,SAAS,CAAC,SAA0B,EAAA;AAC3C,QAAA,MAAM,CAAC,GAAG,CAAC,SAAS,CAAC;IACvB;IAEA,OAAO;QACL,MAAM;QACN,SAAS;KACV;AACH,CAAC;IAES;AAAZ,CAAA,UAAY,eAAe,EAAA;AACzB,IAAA,eAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,eAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,eAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,eAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EALW,eAAe,KAAf,eAAe,GAAA,EAAA,CAAA,CAAA;;ACrBpB,MAAM,CACX,2BAA2B,EAC3B,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC3B,GAAG,eAAe,CAAC,mBAAmB,EAAE,CAAC,EAA0B,KAAI;AACtE,IAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE;AAClC,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAE;AAClC,IAAA,MAAM,WAAW,GAAG,iBAAiB,EAAE;AAEvC,IAAA,MAAM,YAAY,GAAG,MAAM,CAAC,KAAK,wDAAC;IAClC,MAAM,OAAO,GAAG,QAAQ,CAAC,MAAM,YAAY,EAAE,IAAI,MAAM,EAAE,CAAC,MAAM,EAAE,KAAK,eAAe,CAAC,MAAM,mDAAC;AAE9F,IAAA,WAAW,CAAC,UAAU,CAAC,MAAM,YAAY,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IAEvD,YAAY,CAAC,OAAO,EAAE,SAAS,EAAE,OAAO,OAAO,EAAE,GAAG,IAAI,GAAG,MAAM,CAAC,CAAC;AAEnE,IAAA,OAAO,EAAE;AACX,CAAC;;AC5BD;;AAEG;MAKU,iBAAiB,CAAA;AAe5B,IAAA,WAAA,GAAA;AAdA;;AAEG;QACc,IAAA,CAAA,MAAM,GAAG,kBAAkB,EAAE;AAE9C;;;AAGG;QACM,IAAA,CAAA,KAAK,GAAG,KAAK,CAAsB,IAAI,CAAC,MAAM,CAAC,KAAK,EAAA,IAAA,SAAA,GAAA,CAAA,EAAA,SAAA,EAAA,OAAA,EAC3D,KAAK,EAAE,wBAAwB;gBAC/B,SAAS,EAAE,eAAe,EAAA,CAAA,GAAA,CAFmC;AAC7D,gBAAA,KAAK,EAAE,wBAAwB;AAC/B,gBAAA,SAAS,EAAE,eAAe;AAC3B,aAAA,CAAA,CAAA,CAAC;QAGA,iBAAiB,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;IAC1C;8GAjBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAjB,iBAAiB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,KAAA,EAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,UAAA,EAAA,wBAAA,EAAA,QAAA,EAAA,IAAA,EAAA,UAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,IAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAJ7B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,mBAAmB;AAC9B,iBAAA;;;ACFM,MAAM,CACX,wBAAwB,EACxB,cAAc,EACd,sBAAsB,EACtB,uBAAuB,EACxB,GAAG,eAAe,CAAC,gBAAgB,EAAE,CAAC,EAAuB,KAAI;AAChE,IAAA,MAAM,MAAM,GAAG,iBAAiB,EAAE;AAClC,IAAA,MAAM,OAAO,GAAG,gBAAgB,EAAoB;AACpD,IAAA,MAAM,cAAc,GAAG,iBAAiB,CAAC,EAAE,CAAC;;AAG5C,IAAA,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC;;AAGlC,IAAA,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,GAAG,EAAE;AAC9B,QAAA,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC;IAClC;;AAGA,IAAA,IAAI,OAAO,CAAC,aAAa,CAAC,QAAQ,EAAE;AAClC,QAAA,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC;IACnC;;AAGA,IAAA,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;AAClE,IAAA,QAAQ,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IAElE,SAAS,SAAS,CAAC,KAAsB,EAAA;AACvC,QAAA,MAAM,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC;QACzB,cAAc,CAAC,aAAa,CAAC,KAAK,KAAK,eAAe,CAAC,MAAM,CAAC;IAChE;AAEA,IAAA,OAAO,EAAE;AACX,CAAC;;ACvCD;;AAEG;MAKU,cAAc,CAAA;AACzB,IAAA,WAAA,GAAA;QACE,cAAc,CAAC,EAAE,CAAC;IACpB;8GAHW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kGAAd,cAAc,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAJ1B,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,QAAQ,EAAE,gBAAgB;AAC3B,iBAAA;;;ACND;;AAEG;MAMU,SAAS,CAAA;AALtB,IAAA,WAAA,GAAA;AAME;;AAEG;AACc,QAAA,IAAA,CAAA,KAAK,GAAG,SAAS,CAAC,EAAE,CAAC;AAUvC,IAAA;AARC;;;;AAIG;AACH,IAAA,SAAS,CAAC,MAAuB,EAAA;AAC/B,QAAA,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,MAAM,CAAC;IAC9B;8GAbW,SAAS,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAT,IAAA,SAAA,IAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,SAAS,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,aAAA,EAAA,SAAA,EAFT,CAAC,kBAAkB,EAAE,CAAC,EAAA,QAAA,EAAA,CAAA,WAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;;2FAEtB,SAAS,EAAA,UAAA,EAAA,CAAA;kBALrB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,aAAa;AACvB,oBAAA,QAAQ,EAAE,WAAW;AACrB,oBAAA,SAAS,EAAE,CAAC,kBAAkB,EAAE,CAAC;AAClC,iBAAA;;;ACVD;;AAEG;;;;"}
@@ -1,138 +1,195 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { Directive } from '@angular/core';
3
+ import { injectElementRef } from 'ng-primitives/internal';
4
+ import { createPrimitive, attrBinding } from 'ng-primitives/state';
3
5
  import { ngpInteractions } from 'ng-primitives/interactions';
4
6
 
7
+ const [NgpBreadcrumbEllipsisStateToken, ngpBreadcrumbEllipsis, injectBreadcrumbEllipsisState, provideBreadcrumbEllipsisState,] = createPrimitive('NgpBreadcrumbEllipsis', ({}) => {
8
+ const element = injectElementRef();
9
+ // Host bindings
10
+ attrBinding(element, 'role', 'presentation');
11
+ attrBinding(element, 'aria-hidden', 'true');
12
+ return {};
13
+ });
14
+
5
15
  /**
6
16
  * Apply `ngpBreadcrumbEllipsis` to elements that represent collapsed breadcrumb items.
7
17
  */
8
18
  class NgpBreadcrumbEllipsis {
19
+ constructor() {
20
+ ngpBreadcrumbEllipsis({});
21
+ }
9
22
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbEllipsis, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
10
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbEllipsis, isStandalone: true, selector: "[ngpBreadcrumbEllipsis]", host: { attributes: { "role": "presentation", "aria-hidden": "true" } }, exportAs: ["ngpBreadcrumbEllipsis"], ngImport: i0 }); }
23
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbEllipsis, isStandalone: true, selector: "[ngpBreadcrumbEllipsis]", providers: [provideBreadcrumbEllipsisState()], exportAs: ["ngpBreadcrumbEllipsis"], ngImport: i0 }); }
11
24
  }
12
25
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbEllipsis, decorators: [{
13
26
  type: Directive,
14
27
  args: [{
15
28
  selector: '[ngpBreadcrumbEllipsis]',
16
29
  exportAs: 'ngpBreadcrumbEllipsis',
17
- host: {
18
- role: 'presentation',
19
- 'aria-hidden': 'true',
20
- },
30
+ providers: [provideBreadcrumbEllipsisState()],
21
31
  }]
22
- }] });
32
+ }], ctorParameters: () => [] });
33
+
34
+ const [NgpBreadcrumbItemStateToken, ngpBreadcrumbItem, injectBreadcrumbItemState, provideBreadcrumbItemState,] = createPrimitive('NgpBreadcrumbItem', ({}) => {
35
+ const element = injectElementRef();
36
+ // Host bindings
37
+ attrBinding(element, 'role', 'listitem');
38
+ return {};
39
+ });
23
40
 
24
41
  /**
25
42
  * Apply `ngpBreadcrumbItem` to each list item in the breadcrumb trail.
26
43
  */
27
44
  class NgpBreadcrumbItem {
45
+ constructor() {
46
+ ngpBreadcrumbItem({});
47
+ }
28
48
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbItem, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
29
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbItem, isStandalone: true, selector: "[ngpBreadcrumbItem]", host: { attributes: { "role": "listitem" } }, exportAs: ["ngpBreadcrumbItem"], ngImport: i0 }); }
49
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbItem, isStandalone: true, selector: "[ngpBreadcrumbItem]", providers: [provideBreadcrumbItemState()], exportAs: ["ngpBreadcrumbItem"], ngImport: i0 }); }
30
50
  }
31
51
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbItem, decorators: [{
32
52
  type: Directive,
33
53
  args: [{
34
54
  selector: '[ngpBreadcrumbItem]',
35
55
  exportAs: 'ngpBreadcrumbItem',
36
- host: {
37
- role: 'listitem',
38
- },
56
+ providers: [provideBreadcrumbItemState()],
39
57
  }]
40
- }] });
58
+ }], ctorParameters: () => [] });
59
+
60
+ const [NgpBreadcrumbLinkStateToken, ngpBreadcrumbLink, injectBreadcrumbLinkState, provideBreadcrumbLinkState,] = createPrimitive('NgpBreadcrumbLink', ({}) => {
61
+ // Set up interactions for hover, press, and focus-visible
62
+ ngpInteractions({ hover: true, press: true, focusVisible: true });
63
+ return {};
64
+ });
41
65
 
42
66
  /**
43
67
  * Apply `ngpBreadcrumbLink` to anchors or buttons that navigate to a breadcrumb destination.
44
68
  */
45
69
  class NgpBreadcrumbLink {
46
70
  constructor() {
47
- ngpInteractions({ hover: true, press: true, focusVisible: true });
71
+ ngpBreadcrumbLink({});
48
72
  }
49
73
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbLink, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
50
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbLink, isStandalone: true, selector: "[ngpBreadcrumbLink]", exportAs: ["ngpBreadcrumbLink"], ngImport: i0 }); }
74
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbLink, isStandalone: true, selector: "[ngpBreadcrumbLink]", providers: [provideBreadcrumbLinkState()], exportAs: ["ngpBreadcrumbLink"], ngImport: i0 }); }
51
75
  }
52
76
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbLink, decorators: [{
53
77
  type: Directive,
54
78
  args: [{
55
79
  selector: '[ngpBreadcrumbLink]',
56
80
  exportAs: 'ngpBreadcrumbLink',
81
+ providers: [provideBreadcrumbLinkState()],
57
82
  }]
58
83
  }], ctorParameters: () => [] });
59
84
 
85
+ const [NgpBreadcrumbListStateToken, ngpBreadcrumbList, injectBreadcrumbListState, provideBreadcrumbListState,] = createPrimitive('NgpBreadcrumbList', ({}) => {
86
+ const element = injectElementRef();
87
+ // Host bindings
88
+ attrBinding(element, 'role', 'list');
89
+ return {};
90
+ });
91
+
60
92
  /**
61
93
  * Apply `ngpBreadcrumbList` to the ordered list that groups breadcrumb items.
62
94
  */
63
95
  class NgpBreadcrumbList {
96
+ constructor() {
97
+ ngpBreadcrumbList({});
98
+ }
64
99
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbList, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
65
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbList, isStandalone: true, selector: "[ngpBreadcrumbList]", host: { attributes: { "role": "list" } }, exportAs: ["ngpBreadcrumbList"], ngImport: i0 }); }
100
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbList, isStandalone: true, selector: "[ngpBreadcrumbList]", providers: [provideBreadcrumbListState()], exportAs: ["ngpBreadcrumbList"], ngImport: i0 }); }
66
101
  }
67
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbList, decorators: [{
68
103
  type: Directive,
69
104
  args: [{
70
105
  selector: '[ngpBreadcrumbList]',
71
106
  exportAs: 'ngpBreadcrumbList',
72
- host: {
73
- role: 'list',
74
- },
107
+ providers: [provideBreadcrumbListState()],
75
108
  }]
76
- }] });
109
+ }], ctorParameters: () => [] });
110
+
111
+ const [NgpBreadcrumbPageStateToken, ngpBreadcrumbPage, injectBreadcrumbPageState, provideBreadcrumbPageState,] = createPrimitive('NgpBreadcrumbPage', ({}) => {
112
+ const element = injectElementRef();
113
+ // Host bindings
114
+ attrBinding(element, 'aria-current', 'page');
115
+ return {};
116
+ });
77
117
 
78
118
  /**
79
119
  * Apply `ngpBreadcrumbPage` to non-link content that represents the active page.
80
120
  */
81
121
  class NgpBreadcrumbPage {
122
+ constructor() {
123
+ ngpBreadcrumbPage({});
124
+ }
82
125
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbPage, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
83
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbPage, isStandalone: true, selector: "[ngpBreadcrumbPage]", host: { attributes: { "aria-current": "page" } }, exportAs: ["ngpBreadcrumbPage"], ngImport: i0 }); }
126
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbPage, isStandalone: true, selector: "[ngpBreadcrumbPage]", providers: [provideBreadcrumbPageState()], exportAs: ["ngpBreadcrumbPage"], ngImport: i0 }); }
84
127
  }
85
128
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbPage, decorators: [{
86
129
  type: Directive,
87
130
  args: [{
88
131
  selector: '[ngpBreadcrumbPage]',
89
132
  exportAs: 'ngpBreadcrumbPage',
90
- host: {
91
- 'aria-current': 'page',
92
- },
133
+ providers: [provideBreadcrumbPageState()],
93
134
  }]
94
- }] });
135
+ }], ctorParameters: () => [] });
136
+
137
+ const [NgpBreadcrumbSeparatorStateToken, ngpBreadcrumbSeparator, injectBreadcrumbSeparatorState, provideBreadcrumbSeparatorState,] = createPrimitive('NgpBreadcrumbSeparator', ({}) => {
138
+ const element = injectElementRef();
139
+ // Host bindings
140
+ attrBinding(element, 'role', 'presentation');
141
+ attrBinding(element, 'aria-hidden', 'true');
142
+ return {};
143
+ });
95
144
 
96
145
  /**
97
146
  * Apply `ngpBreadcrumbSeparator` between breadcrumb items to render a visual divider.
98
147
  */
99
148
  class NgpBreadcrumbSeparator {
149
+ constructor() {
150
+ ngpBreadcrumbSeparator({});
151
+ }
100
152
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbSeparator, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
101
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbSeparator, isStandalone: true, selector: "[ngpBreadcrumbSeparator]", host: { attributes: { "role": "presentation", "aria-hidden": "true" } }, exportAs: ["ngpBreadcrumbSeparator"], ngImport: i0 }); }
153
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbSeparator, isStandalone: true, selector: "[ngpBreadcrumbSeparator]", providers: [provideBreadcrumbSeparatorState()], exportAs: ["ngpBreadcrumbSeparator"], ngImport: i0 }); }
102
154
  }
103
155
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbSeparator, decorators: [{
104
156
  type: Directive,
105
157
  args: [{
106
158
  selector: '[ngpBreadcrumbSeparator]',
107
159
  exportAs: 'ngpBreadcrumbSeparator',
108
- host: {
109
- role: 'presentation',
110
- 'aria-hidden': 'true',
111
- },
160
+ providers: [provideBreadcrumbSeparatorState()],
112
161
  }]
113
- }] });
162
+ }], ctorParameters: () => [] });
163
+
164
+ const [NgpBreadcrumbsStateToken, ngpBreadcrumbs, injectBreadcrumbsState, provideBreadcrumbsState,] = createPrimitive('NgpBreadcrumbs', ({}) => {
165
+ const element = injectElementRef();
166
+ // Host bindings
167
+ attrBinding(element, 'role', 'navigation');
168
+ return {};
169
+ });
114
170
 
115
171
  /**
116
172
  * Apply `ngpBreadcrumbs` to the navigation element that wraps the breadcrumb trail.
117
173
  */
118
174
  class NgpBreadcrumbs {
175
+ constructor() {
176
+ ngpBreadcrumbs({});
177
+ }
119
178
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbs, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
120
- static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbs, isStandalone: true, selector: "[ngpBreadcrumbs]", host: { attributes: { "role": "navigation" } }, exportAs: ["ngpBreadcrumbs"], ngImport: i0 }); }
179
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.9", type: NgpBreadcrumbs, isStandalone: true, selector: "[ngpBreadcrumbs]", providers: [provideBreadcrumbsState()], exportAs: ["ngpBreadcrumbs"], ngImport: i0 }); }
121
180
  }
122
181
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.9", ngImport: i0, type: NgpBreadcrumbs, decorators: [{
123
182
  type: Directive,
124
183
  args: [{
125
184
  selector: '[ngpBreadcrumbs]',
126
185
  exportAs: 'ngpBreadcrumbs',
127
- host: {
128
- role: 'navigation',
129
- },
186
+ providers: [provideBreadcrumbsState()],
130
187
  }]
131
- }] });
188
+ }], ctorParameters: () => [] });
132
189
 
133
190
  /**
134
191
  * Generated bundle index. Do not edit.
135
192
  */
136
193
 
137
- export { NgpBreadcrumbEllipsis, NgpBreadcrumbItem, NgpBreadcrumbLink, NgpBreadcrumbList, NgpBreadcrumbPage, NgpBreadcrumbSeparator, NgpBreadcrumbs };
194
+ export { NgpBreadcrumbEllipsis, NgpBreadcrumbEllipsisStateToken, NgpBreadcrumbItem, NgpBreadcrumbItemStateToken, NgpBreadcrumbLink, NgpBreadcrumbLinkStateToken, NgpBreadcrumbList, NgpBreadcrumbListStateToken, NgpBreadcrumbPage, NgpBreadcrumbPageStateToken, NgpBreadcrumbSeparator, NgpBreadcrumbSeparatorStateToken, NgpBreadcrumbs, NgpBreadcrumbsStateToken, injectBreadcrumbEllipsisState, injectBreadcrumbItemState, injectBreadcrumbLinkState, injectBreadcrumbListState, injectBreadcrumbPageState, injectBreadcrumbSeparatorState, injectBreadcrumbsState, ngpBreadcrumbEllipsis, ngpBreadcrumbItem, ngpBreadcrumbLink, ngpBreadcrumbList, ngpBreadcrumbPage, ngpBreadcrumbSeparator, ngpBreadcrumbs, provideBreadcrumbEllipsisState, provideBreadcrumbItemState, provideBreadcrumbLinkState, provideBreadcrumbListState, provideBreadcrumbPageState, provideBreadcrumbSeparatorState, provideBreadcrumbsState };
138
195
  //# sourceMappingURL=ng-primitives-breadcrumbs.mjs.map