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.
- package/a11y/index.d.ts +38 -46
- package/accordion/index.d.ts +252 -104
- package/ai/index.d.ts +1 -1
- package/autofill/index.d.ts +49 -9
- package/avatar/index.d.ts +96 -61
- package/breadcrumbs/index.d.ts +156 -16
- package/button/index.d.ts +23 -28
- package/checkbox/index.d.ts +93 -14
- package/combobox/index.d.ts +1 -1
- package/date-picker/index.d.ts +12 -11
- package/fesm2022/ng-primitives-a11y.mjs +36 -52
- package/fesm2022/ng-primitives-a11y.mjs.map +1 -1
- package/fesm2022/ng-primitives-accordion.mjs +210 -189
- package/fesm2022/ng-primitives-accordion.mjs.map +1 -1
- package/fesm2022/ng-primitives-ai.mjs +4 -4
- package/fesm2022/ng-primitives-ai.mjs.map +1 -1
- package/fesm2022/ng-primitives-autofill.mjs +53 -36
- package/fesm2022/ng-primitives-autofill.mjs.map +1 -1
- package/fesm2022/ng-primitives-avatar.mjs +97 -138
- package/fesm2022/ng-primitives-avatar.mjs.map +1 -1
- package/fesm2022/ng-primitives-breadcrumbs.mjs +92 -35
- package/fesm2022/ng-primitives-breadcrumbs.mjs.map +1 -1
- package/fesm2022/ng-primitives-button.mjs +14 -36
- package/fesm2022/ng-primitives-button.mjs.map +1 -1
- package/fesm2022/ng-primitives-checkbox.mjs +87 -65
- package/fesm2022/ng-primitives-checkbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-combobox.mjs +9 -9
- package/fesm2022/ng-primitives-combobox.mjs.map +1 -1
- package/fesm2022/ng-primitives-date-picker.mjs +5 -4
- package/fesm2022/ng-primitives-date-picker.mjs.map +1 -1
- package/fesm2022/ng-primitives-form-field.mjs +48 -16
- package/fesm2022/ng-primitives-form-field.mjs.map +1 -1
- package/fesm2022/ng-primitives-input.mjs +32 -48
- package/fesm2022/ng-primitives-input.mjs.map +1 -1
- package/fesm2022/ng-primitives-interactions.mjs +4 -4
- package/fesm2022/ng-primitives-interactions.mjs.map +1 -1
- package/fesm2022/ng-primitives-listbox.mjs.map +1 -1
- package/fesm2022/ng-primitives-menu.mjs +13 -6
- package/fesm2022/ng-primitives-menu.mjs.map +1 -1
- package/fesm2022/ng-primitives-pagination.mjs +6 -6
- package/fesm2022/ng-primitives-pagination.mjs.map +1 -1
- package/fesm2022/ng-primitives-progress.mjs +2 -2
- package/fesm2022/ng-primitives-progress.mjs.map +1 -1
- package/fesm2022/ng-primitives-radio.mjs +3 -3
- package/fesm2022/ng-primitives-radio.mjs.map +1 -1
- package/fesm2022/ng-primitives-roving-focus.mjs +259 -236
- package/fesm2022/ng-primitives-roving-focus.mjs.map +1 -1
- package/fesm2022/ng-primitives-search.mjs.map +1 -1
- package/fesm2022/ng-primitives-select.mjs +8 -8
- package/fesm2022/ng-primitives-select.mjs.map +1 -1
- package/fesm2022/ng-primitives-slider.mjs +195 -172
- package/fesm2022/ng-primitives-slider.mjs.map +1 -1
- package/fesm2022/ng-primitives-state.mjs +172 -2
- package/fesm2022/ng-primitives-state.mjs.map +1 -1
- package/fesm2022/ng-primitives-switch.mjs +90 -88
- package/fesm2022/ng-primitives-switch.mjs.map +1 -1
- package/fesm2022/ng-primitives-tabs.mjs +4 -1
- package/fesm2022/ng-primitives-tabs.mjs.map +1 -1
- package/fesm2022/ng-primitives-textarea.mjs +27 -35
- package/fesm2022/ng-primitives-textarea.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle-group.mjs +134 -136
- package/fesm2022/ng-primitives-toggle-group.mjs.map +1 -1
- package/fesm2022/ng-primitives-toggle.mjs +69 -58
- package/fesm2022/ng-primitives-toggle.mjs.map +1 -1
- package/fesm2022/ng-primitives-toolbar.mjs +26 -35
- package/fesm2022/ng-primitives-toolbar.mjs.map +1 -1
- package/fesm2022/ng-primitives-utils.mjs +48 -35
- package/fesm2022/ng-primitives-utils.mjs.map +1 -1
- package/form-field/index.d.ts +7 -3
- package/input/index.d.ts +61 -24
- package/interactions/index.d.ts +5 -5
- package/listbox/index.d.ts +1 -1
- package/menu/index.d.ts +3 -2
- package/package.json +1 -1
- package/pagination/index.d.ts +7 -7
- package/roving-focus/index.d.ts +77 -101
- package/schematics/ng-add/schema.d.ts +0 -1
- package/schematics/ng-generate/templates/checkbox/checkbox.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/slider/slider.__fileSuffix@dasherize__.ts.template +6 -3
- package/schematics/ng-generate/templates/switch/switch.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/toggle/toggle.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/toggle-group/toggle-group.__fileSuffix@dasherize__.ts.template +2 -2
- package/schematics/ng-generate/templates/toolbar/toolbar.__fileSuffix@dasherize__.ts.template +1 -1
- package/search/index.d.ts +1 -1
- package/select/index.d.ts +2 -2
- package/slider/index.d.ts +195 -56
- package/state/index.d.ts +57 -3
- package/switch/index.d.ts +103 -28
- package/textarea/index.d.ts +63 -8
- package/toggle/index.d.ts +65 -24
- package/toggle-group/index.d.ts +79 -54
- package/toolbar/index.d.ts +27 -17
- package/utils/index.d.ts +1 -0
|
@@ -1,71 +1,9 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import {
|
|
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 {
|
|
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 } },
|
|
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]",
|
|
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
|
-
}],
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
|
|
206
|
-
|
|
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":"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"}
|
|
@@ -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]",
|
|
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
|
-
|
|
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]",
|
|
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
|
-
|
|
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
|
-
|
|
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]",
|
|
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
|
-
|
|
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]",
|
|
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
|
-
|
|
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]",
|
|
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
|
-
|
|
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]",
|
|
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
|
-
|
|
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
|