@devjuliovilla/jv-ui 1.5.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/LICENSE +21 -0
- package/README.md +65 -0
- package/fesm2022/devjuliovilla-jv-ui.mjs +3064 -0
- package/fesm2022/devjuliovilla-jv-ui.mjs.map +1 -0
- package/package.json +47 -0
- package/types/devjuliovilla-jv-ui.d.ts +707 -0
|
@@ -0,0 +1,707 @@
|
|
|
1
|
+
import * as _angular_core from '@angular/core';
|
|
2
|
+
import { InjectionToken } from '@angular/core';
|
|
3
|
+
import * as _angular_forms from '@angular/forms';
|
|
4
|
+
import { ControlValueAccessor } from '@angular/forms';
|
|
5
|
+
import * as _devjuliovilla_jv_ui from '@devjuliovilla/jv-ui';
|
|
6
|
+
|
|
7
|
+
type JvIntent = 'primary' | 'secondary' | 'outline' | 'ghost' | 'danger' | 'success' | 'warning' | 'link';
|
|
8
|
+
type JvTone = 'primary' | 'secondary' | 'success' | 'warning' | 'danger' | 'info' | 'neutral';
|
|
9
|
+
|
|
10
|
+
declare class JvButtonComponent {
|
|
11
|
+
readonly variant: _angular_core.InputSignal<JvIntent>;
|
|
12
|
+
readonly icon: _angular_core.InputSignal<string | null>;
|
|
13
|
+
readonly iconPosition: _angular_core.InputSignal<"start" | "end">;
|
|
14
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
15
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
16
|
+
protected readonly buttonClass: _angular_core.Signal<string>;
|
|
17
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvButtonComponent, never>;
|
|
18
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvButtonComponent, "jv-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPosition": { "alias": "iconPosition"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
declare class JvButtonGroupComponent {
|
|
22
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvButtonGroupComponent, never>;
|
|
23
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvButtonGroupComponent, "jv-button-group", never, {}, {}, never, ["*"], true, never>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
declare class JvIconButtonComponent {
|
|
27
|
+
readonly icon: _angular_core.InputSignal<string>;
|
|
28
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
29
|
+
readonly variant: _angular_core.InputSignal<JvIntent>;
|
|
30
|
+
readonly disabled: _angular_core.InputSignal<boolean>;
|
|
31
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvIconButtonComponent, never>;
|
|
32
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvIconButtonComponent, "jv-icon-button", never, { "icon": { "alias": "icon"; "required": true; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": true; "isSignal": true; }; "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
interface JvLoginSubmitEvent {
|
|
36
|
+
identifier: string;
|
|
37
|
+
password: string;
|
|
38
|
+
rememberMe: boolean;
|
|
39
|
+
}
|
|
40
|
+
interface JvForgotPasswordSubmitEvent {
|
|
41
|
+
email: string;
|
|
42
|
+
}
|
|
43
|
+
interface JvChangePasswordSubmitEvent {
|
|
44
|
+
currentPassword: string;
|
|
45
|
+
newPassword: string;
|
|
46
|
+
confirmPassword: string;
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
declare class JvChangePasswordPageComponent {
|
|
50
|
+
private readonly formBuilder;
|
|
51
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
52
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
53
|
+
readonly submitLabel: _angular_core.InputSignal<string>;
|
|
54
|
+
readonly cancelLabel: _angular_core.InputSignal<string>;
|
|
55
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
56
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
57
|
+
readonly changePasswordSubmit: _angular_core.OutputEmitterRef<JvChangePasswordSubmitEvent>;
|
|
58
|
+
readonly cancel: _angular_core.OutputEmitterRef<void>;
|
|
59
|
+
protected readonly form: _angular_forms.FormGroup<{
|
|
60
|
+
currentPassword: _angular_forms.FormControl<string | null>;
|
|
61
|
+
newPassword: _angular_forms.FormControl<string | null>;
|
|
62
|
+
confirmPassword: _angular_forms.FormControl<string | null>;
|
|
63
|
+
}>;
|
|
64
|
+
protected readonly currentInvalid: _angular_core.Signal<boolean>;
|
|
65
|
+
protected readonly newInvalid: _angular_core.Signal<boolean>;
|
|
66
|
+
protected readonly confirmInvalid: _angular_core.Signal<boolean>;
|
|
67
|
+
protected submit(): void;
|
|
68
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvChangePasswordPageComponent, never>;
|
|
69
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvChangePasswordPageComponent, "jv-change-password-page", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, { "changePasswordSubmit": "changePasswordSubmit"; "cancel": "cancel"; }, never, never, true, never>;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
declare class JvForgotPasswordPageComponent {
|
|
73
|
+
private readonly formBuilder;
|
|
74
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
75
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
76
|
+
readonly submitLabel: _angular_core.InputSignal<string>;
|
|
77
|
+
readonly backLabel: _angular_core.InputSignal<string>;
|
|
78
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
79
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
80
|
+
readonly forgotPasswordSubmit: _angular_core.OutputEmitterRef<JvForgotPasswordSubmitEvent>;
|
|
81
|
+
readonly backToLogin: _angular_core.OutputEmitterRef<void>;
|
|
82
|
+
protected readonly form: _angular_forms.FormGroup<{
|
|
83
|
+
email: _angular_forms.FormControl<string | null>;
|
|
84
|
+
}>;
|
|
85
|
+
protected readonly emailInvalid: _angular_core.Signal<boolean>;
|
|
86
|
+
protected submit(): void;
|
|
87
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvForgotPasswordPageComponent, never>;
|
|
88
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvForgotPasswordPageComponent, "jv-forgot-password-page", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "backLabel": { "alias": "backLabel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, { "forgotPasswordSubmit": "forgotPasswordSubmit"; "backToLogin": "backToLogin"; }, never, never, true, never>;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
declare class JvLoginPageComponent {
|
|
92
|
+
private readonly formBuilder;
|
|
93
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
94
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
95
|
+
readonly submitLabel: _angular_core.InputSignal<string>;
|
|
96
|
+
readonly rememberMeLabel: _angular_core.InputSignal<string>;
|
|
97
|
+
readonly forgotPasswordLabel: _angular_core.InputSignal<string>;
|
|
98
|
+
readonly loading: _angular_core.InputSignal<boolean>;
|
|
99
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
100
|
+
readonly loginSubmit: _angular_core.OutputEmitterRef<JvLoginSubmitEvent>;
|
|
101
|
+
readonly forgotPasswordClick: _angular_core.OutputEmitterRef<void>;
|
|
102
|
+
protected readonly form: _angular_forms.FormGroup<{
|
|
103
|
+
identifier: _angular_forms.FormControl<string | null>;
|
|
104
|
+
password: _angular_forms.FormControl<string | null>;
|
|
105
|
+
rememberMe: _angular_forms.FormControl<boolean | null>;
|
|
106
|
+
}>;
|
|
107
|
+
protected readonly identifierInvalid: _angular_core.Signal<boolean>;
|
|
108
|
+
protected readonly passwordInvalid: _angular_core.Signal<boolean>;
|
|
109
|
+
protected submit(): void;
|
|
110
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvLoginPageComponent, never>;
|
|
111
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvLoginPageComponent, "jv-login-page", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "submitLabel": { "alias": "submitLabel"; "required": false; "isSignal": true; }; "rememberMeLabel": { "alias": "rememberMeLabel"; "required": false; "isSignal": true; }; "forgotPasswordLabel": { "alias": "forgotPasswordLabel"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; }, { "loginSubmit": "loginSubmit"; "forgotPasswordClick": "forgotPasswordClick"; }, never, never, true, never>;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
declare class JvCardComponent {
|
|
115
|
+
readonly elevated: _angular_core.InputSignal<boolean>;
|
|
116
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvCardComponent, never>;
|
|
117
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvCardComponent, "jv-card", never, { "elevated": { "alias": "elevated"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
declare class JvDividerComponent {
|
|
121
|
+
readonly vertical: _angular_core.InputSignal<boolean>;
|
|
122
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvDividerComponent, never>;
|
|
123
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvDividerComponent, "jv-divider", never, { "vertical": { "alias": "vertical"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
declare class JvSectionComponent {
|
|
127
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
128
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
129
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvSectionComponent, never>;
|
|
130
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvSectionComponent, "jv-section", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
declare class JvAlertComponent {
|
|
134
|
+
readonly tone: _angular_core.InputSignal<JvTone>;
|
|
135
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
136
|
+
readonly role: _angular_core.InputSignal<"status" | "alert">;
|
|
137
|
+
protected readonly alertClass: _angular_core.Signal<string>;
|
|
138
|
+
protected readonly iconName: _angular_core.Signal<"circle-alert" | "info" | "check" | "triangle-alert" | "sparkles">;
|
|
139
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvAlertComponent, never>;
|
|
140
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvAlertComponent, "jv-alert", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "role": { "alias": "role"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
141
|
+
}
|
|
142
|
+
|
|
143
|
+
declare class JvBadgeComponent {
|
|
144
|
+
readonly tone: _angular_core.InputSignal<JvTone>;
|
|
145
|
+
protected readonly badgeClass: _angular_core.Signal<string>;
|
|
146
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvBadgeComponent, never>;
|
|
147
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvBadgeComponent, "jv-badge", never, { "tone": { "alias": "tone"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
type JvTheme = 'light' | 'dark' | 'high-contrast';
|
|
151
|
+
type JvDensity = 'compact' | 'normal' | 'comfortable';
|
|
152
|
+
type JvToastPosition = 'top-left' | 'top-center' | 'top-right' | 'bottom-left' | 'bottom-center' | 'bottom-right';
|
|
153
|
+
interface JvUiConfig {
|
|
154
|
+
theme: JvTheme;
|
|
155
|
+
density: JvDensity;
|
|
156
|
+
language: string;
|
|
157
|
+
locale: string;
|
|
158
|
+
toastPosition: JvToastPosition;
|
|
159
|
+
}
|
|
160
|
+
declare const JV_UI_DEFAULT_CONFIG: JvUiConfig;
|
|
161
|
+
|
|
162
|
+
interface JvToastItem {
|
|
163
|
+
id: number;
|
|
164
|
+
title?: string;
|
|
165
|
+
message: string;
|
|
166
|
+
tone: JvTone;
|
|
167
|
+
duration: number;
|
|
168
|
+
}
|
|
169
|
+
interface JvConfirmOptions {
|
|
170
|
+
title: string;
|
|
171
|
+
message: string;
|
|
172
|
+
confirmLabel?: string;
|
|
173
|
+
cancelLabel?: string;
|
|
174
|
+
tone?: Exclude<JvTone, 'neutral' | 'secondary'> | 'primary';
|
|
175
|
+
}
|
|
176
|
+
interface JvActiveConfirmDialog extends Required<JvConfirmOptions> {
|
|
177
|
+
id: number;
|
|
178
|
+
}
|
|
179
|
+
interface JvLoaderState {
|
|
180
|
+
activeCount: number;
|
|
181
|
+
visible: boolean;
|
|
182
|
+
message: string;
|
|
183
|
+
}
|
|
184
|
+
interface JvToastViewport {
|
|
185
|
+
position: JvToastPosition;
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
declare class JvLoaderService {
|
|
189
|
+
private readonly counter;
|
|
190
|
+
private readonly visible;
|
|
191
|
+
private readonly message;
|
|
192
|
+
private readonly delayMs;
|
|
193
|
+
private showTimeout;
|
|
194
|
+
readonly activeCount: _angular_core.Signal<number>;
|
|
195
|
+
readonly isVisible: _angular_core.Signal<boolean>;
|
|
196
|
+
readonly liveMessage: _angular_core.Signal<string>;
|
|
197
|
+
show(message?: string): void;
|
|
198
|
+
hide(): void;
|
|
199
|
+
private scheduleVisibility;
|
|
200
|
+
private clearTimer;
|
|
201
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvLoaderService, never>;
|
|
202
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvLoaderService>;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
declare class JvLoaderComponent {
|
|
206
|
+
private readonly document;
|
|
207
|
+
protected readonly loaderService: JvLoaderService;
|
|
208
|
+
constructor();
|
|
209
|
+
handleWheel(event: WheelEvent): void;
|
|
210
|
+
handleTouchMove(event: TouchEvent): void;
|
|
211
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvLoaderComponent, never>;
|
|
212
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvLoaderComponent, "jv-loader", never, {}, {}, never, never, true, never>;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
declare class JvToastService {
|
|
216
|
+
private readonly announcementService;
|
|
217
|
+
private readonly config;
|
|
218
|
+
private readonly items;
|
|
219
|
+
private readonly positionOverride;
|
|
220
|
+
private nextId;
|
|
221
|
+
readonly toasts: _angular_core.Signal<JvToastItem[]>;
|
|
222
|
+
readonly position: _angular_core.Signal<JvToastPosition>;
|
|
223
|
+
show(message: string, tone?: JvTone, options?: {
|
|
224
|
+
title?: string;
|
|
225
|
+
duration?: number;
|
|
226
|
+
}): number;
|
|
227
|
+
dismiss(id: number): void;
|
|
228
|
+
setPosition(position: JvToastPosition): void;
|
|
229
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvToastService, never>;
|
|
230
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvToastService>;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
declare class JvToastComponent {
|
|
234
|
+
protected readonly toastService: JvToastService;
|
|
235
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvToastComponent, never>;
|
|
236
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvToastComponent, "jv-toast", never, {}, {}, never, never, true, never>;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
declare class JvCheckboxComponent implements ControlValueAccessor {
|
|
240
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
241
|
+
readonly describedBy: _angular_core.InputSignal<string>;
|
|
242
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
243
|
+
value: boolean;
|
|
244
|
+
disabled: boolean;
|
|
245
|
+
private onChange;
|
|
246
|
+
private onTouched;
|
|
247
|
+
writeValue(value: boolean | null): void;
|
|
248
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
249
|
+
registerOnTouched(fn: () => void): void;
|
|
250
|
+
setDisabledState(isDisabled: boolean): void;
|
|
251
|
+
handleChange(event: Event): void;
|
|
252
|
+
handleBlur(): void;
|
|
253
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvCheckboxComponent, never>;
|
|
254
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvCheckboxComponent, "jv-checkbox", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
255
|
+
}
|
|
256
|
+
|
|
257
|
+
declare class JvFormContainerComponent {
|
|
258
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
259
|
+
readonly hint: _angular_core.InputSignal<string>;
|
|
260
|
+
readonly error: _angular_core.InputSignal<string>;
|
|
261
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
262
|
+
readonly hintId: _angular_core.InputSignal<string>;
|
|
263
|
+
readonly errorId: _angular_core.InputSignal<string>;
|
|
264
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
265
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
266
|
+
protected readonly resolvedHintId: _angular_core.Signal<string>;
|
|
267
|
+
protected readonly resolvedErrorId: _angular_core.Signal<string>;
|
|
268
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvFormContainerComponent, never>;
|
|
269
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvFormContainerComponent, "jv-form-container", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "hint": { "alias": "hint"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "hintId": { "alias": "hintId"; "required": false; "isSignal": true; }; "errorId": { "alias": "errorId"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
interface JvSelectOption<T = string> {
|
|
273
|
+
label: string;
|
|
274
|
+
value: T;
|
|
275
|
+
disabled?: boolean;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
declare class JvInputComponent implements ControlValueAccessor {
|
|
279
|
+
readonly type: _angular_core.InputSignal<"number" | "search" | "text" | "email" | "password">;
|
|
280
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
281
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
282
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
283
|
+
readonly describedBy: _angular_core.InputSignal<string>;
|
|
284
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
285
|
+
value: string;
|
|
286
|
+
disabled: boolean;
|
|
287
|
+
private onChange;
|
|
288
|
+
private onTouched;
|
|
289
|
+
writeValue(value: string | null): void;
|
|
290
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
291
|
+
registerOnTouched(fn: () => void): void;
|
|
292
|
+
setDisabledState(isDisabled: boolean): void;
|
|
293
|
+
handleInput(event: Event): void;
|
|
294
|
+
handleBlur(): void;
|
|
295
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvInputComponent, never>;
|
|
296
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvInputComponent, "jv-input", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
297
|
+
}
|
|
298
|
+
|
|
299
|
+
declare class JvRadioComponent implements ControlValueAccessor {
|
|
300
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
301
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
302
|
+
readonly radioValue: _angular_core.InputSignal<string>;
|
|
303
|
+
readonly describedBy: _angular_core.InputSignal<string>;
|
|
304
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
305
|
+
value: string;
|
|
306
|
+
disabled: boolean;
|
|
307
|
+
private onChange;
|
|
308
|
+
private onTouched;
|
|
309
|
+
writeValue(value: string | null): void;
|
|
310
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
311
|
+
registerOnTouched(fn: () => void): void;
|
|
312
|
+
setDisabledState(isDisabled: boolean): void;
|
|
313
|
+
handleChange(): void;
|
|
314
|
+
handleBlur(): void;
|
|
315
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvRadioComponent, never>;
|
|
316
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvRadioComponent, "jv-radio", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "radioValue": { "alias": "radioValue"; "required": true; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
317
|
+
}
|
|
318
|
+
|
|
319
|
+
declare class JvSelectComponent implements ControlValueAccessor {
|
|
320
|
+
readonly options: _angular_core.InputSignal<JvSelectOption<string>[]>;
|
|
321
|
+
readonly placeholder: _angular_core.InputSignal<string>;
|
|
322
|
+
readonly required: _angular_core.InputSignal<boolean>;
|
|
323
|
+
readonly invalid: _angular_core.InputSignal<boolean>;
|
|
324
|
+
readonly describedBy: _angular_core.InputSignal<string>;
|
|
325
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
326
|
+
readonly modelValue: _angular_core.InputSignal<string>;
|
|
327
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<string>;
|
|
328
|
+
value: string;
|
|
329
|
+
disabled: boolean;
|
|
330
|
+
private onChange;
|
|
331
|
+
private onTouched;
|
|
332
|
+
protected readonly currentValue: _angular_core.Signal<string>;
|
|
333
|
+
writeValue(value: string | null): void;
|
|
334
|
+
registerOnChange(fn: (value: string) => void): void;
|
|
335
|
+
registerOnTouched(fn: () => void): void;
|
|
336
|
+
setDisabledState(isDisabled: boolean): void;
|
|
337
|
+
handleChange(event: Event): void;
|
|
338
|
+
handleBlur(): void;
|
|
339
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvSelectComponent, never>;
|
|
340
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvSelectComponent, "jv-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "invalid": { "alias": "invalid"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "modelValue": { "alias": "modelValue"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; }, never, never, true, never>;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
declare class JvSwitchComponent implements ControlValueAccessor {
|
|
344
|
+
readonly label: _angular_core.InputSignal<string>;
|
|
345
|
+
readonly describedBy: _angular_core.InputSignal<string>;
|
|
346
|
+
readonly inputId: _angular_core.InputSignal<string>;
|
|
347
|
+
value: boolean;
|
|
348
|
+
disabled: boolean;
|
|
349
|
+
private onChange;
|
|
350
|
+
private onTouched;
|
|
351
|
+
writeValue(value: boolean | null): void;
|
|
352
|
+
registerOnChange(fn: (value: boolean) => void): void;
|
|
353
|
+
registerOnTouched(fn: () => void): void;
|
|
354
|
+
setDisabledState(isDisabled: boolean): void;
|
|
355
|
+
handleChange(event: Event): void;
|
|
356
|
+
handleBlur(): void;
|
|
357
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvSwitchComponent, never>;
|
|
358
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvSwitchComponent, "jv-switch", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "describedBy": { "alias": "describedBy"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
359
|
+
}
|
|
360
|
+
|
|
361
|
+
interface JvIconDefinition {
|
|
362
|
+
viewBox: string;
|
|
363
|
+
paths: string[];
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
declare class JvIconComponent {
|
|
367
|
+
private readonly warnedNames;
|
|
368
|
+
readonly name: _angular_core.InputSignal<string>;
|
|
369
|
+
readonly size: _angular_core.InputSignal<number>;
|
|
370
|
+
readonly strokeWidth: _angular_core.InputSignal<number>;
|
|
371
|
+
readonly decorative: _angular_core.InputSignal<boolean>;
|
|
372
|
+
readonly ariaLabel: _angular_core.InputSignal<string | undefined>;
|
|
373
|
+
protected readonly normalizedName: _angular_core.Signal<string>;
|
|
374
|
+
protected readonly iconDefinition: _angular_core.Signal<JvIconDefinition>;
|
|
375
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvIconComponent, never>;
|
|
376
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvIconComponent, "jv-icon", never, { "name": { "alias": "name"; "required": true; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "decorative": { "alias": "decorative"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
377
|
+
}
|
|
378
|
+
|
|
379
|
+
declare const JV_UI_CONFIG: InjectionToken<Partial<JvUiConfig>[]>;
|
|
380
|
+
declare const JV_UI_CONFIG_DEFAULTS: InjectionToken<JvUiConfig>;
|
|
381
|
+
declare function provideJvUi(config?: Partial<JvUiConfig>): _angular_core.EnvironmentProviders;
|
|
382
|
+
|
|
383
|
+
declare class JvDialogService {
|
|
384
|
+
private readonly announcementService;
|
|
385
|
+
private readonly document;
|
|
386
|
+
private readonly activeDialogSignal;
|
|
387
|
+
private nextId;
|
|
388
|
+
private resolver;
|
|
389
|
+
private restoreTarget;
|
|
390
|
+
readonly activeDialog: _angular_core.Signal<JvActiveConfirmDialog | null>;
|
|
391
|
+
confirm(options: JvConfirmOptions): Promise<boolean>;
|
|
392
|
+
resolve(result: boolean): void;
|
|
393
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvDialogService, never>;
|
|
394
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvDialogService>;
|
|
395
|
+
}
|
|
396
|
+
|
|
397
|
+
declare class JvConfirmDialogComponent {
|
|
398
|
+
protected readonly dialogService: JvDialogService;
|
|
399
|
+
protected readonly activeDialog: _angular_core.Signal<_devjuliovilla_jv_ui.JvActiveConfirmDialog | null>;
|
|
400
|
+
protected readonly isOpen: _angular_core.Signal<boolean>;
|
|
401
|
+
protected readonly dialogTitle: _angular_core.Signal<string>;
|
|
402
|
+
protected readonly dialogMessage: _angular_core.Signal<string>;
|
|
403
|
+
protected readonly cancelLabel: _angular_core.Signal<string>;
|
|
404
|
+
protected readonly confirmLabel: _angular_core.Signal<string>;
|
|
405
|
+
protected readonly confirmVariant: _angular_core.Signal<JvIntent>;
|
|
406
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvConfirmDialogComponent, never>;
|
|
407
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvConfirmDialogComponent, "jv-confirm-dialog", never, {}, {}, never, never, true, never>;
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
declare class JvDialogComponent {
|
|
411
|
+
private readonly document;
|
|
412
|
+
private readonly panelRef;
|
|
413
|
+
readonly open: _angular_core.InputSignal<boolean>;
|
|
414
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
415
|
+
readonly closed: _angular_core.OutputEmitterRef<void>;
|
|
416
|
+
protected readonly titleId: string;
|
|
417
|
+
protected readonly descriptionId: string;
|
|
418
|
+
constructor();
|
|
419
|
+
handleDocumentKeydown(event: KeyboardEvent): void;
|
|
420
|
+
private focusInitialElement;
|
|
421
|
+
backdropClose(): void;
|
|
422
|
+
private trapFocus;
|
|
423
|
+
private getFocusableElements;
|
|
424
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvDialogComponent, never>;
|
|
425
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvDialogComponent, "jv-dialog", never, { "open": { "alias": "open"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, ["*", "[dialog-actions]"], true, never>;
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
interface JvBreadcrumbItem {
|
|
429
|
+
label: string;
|
|
430
|
+
href?: string;
|
|
431
|
+
active?: boolean;
|
|
432
|
+
}
|
|
433
|
+
interface JvNavItem {
|
|
434
|
+
id: string;
|
|
435
|
+
label: string;
|
|
436
|
+
icon?: string;
|
|
437
|
+
href?: string;
|
|
438
|
+
active?: boolean;
|
|
439
|
+
children?: JvNavItem[];
|
|
440
|
+
}
|
|
441
|
+
interface JvTopbarAction {
|
|
442
|
+
id: string;
|
|
443
|
+
label: string;
|
|
444
|
+
icon: string;
|
|
445
|
+
}
|
|
446
|
+
interface JvThemeOption {
|
|
447
|
+
label: string;
|
|
448
|
+
value: JvTheme;
|
|
449
|
+
icon?: string;
|
|
450
|
+
}
|
|
451
|
+
|
|
452
|
+
declare class JvBreadcrumbComponent {
|
|
453
|
+
readonly items: _angular_core.InputSignal<JvBreadcrumbItem[]>;
|
|
454
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvBreadcrumbComponent, never>;
|
|
455
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvBreadcrumbComponent, "jv-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
declare class JvDashboardShellComponent {
|
|
459
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
460
|
+
readonly sidebarSubtitle: _angular_core.InputSignal<string>;
|
|
461
|
+
readonly brandIcon: _angular_core.InputSignal<string>;
|
|
462
|
+
readonly navItems: _angular_core.InputSignal<JvNavItem[]>;
|
|
463
|
+
readonly sidebarCollapsed: _angular_core.InputSignal<boolean>;
|
|
464
|
+
readonly mobileSidebarOpen: _angular_core.InputSignal<boolean>;
|
|
465
|
+
readonly topbarTitle: _angular_core.InputSignal<string>;
|
|
466
|
+
readonly topbarSubtitle: _angular_core.InputSignal<string>;
|
|
467
|
+
readonly currentTheme: _angular_core.InputSignal<JvTheme>;
|
|
468
|
+
readonly themeOptions: _angular_core.InputSignal<JvThemeOption[]>;
|
|
469
|
+
readonly topbarActions: _angular_core.InputSignal<JvTopbarAction[]>;
|
|
470
|
+
readonly showThemeSelector: _angular_core.InputSignal<boolean>;
|
|
471
|
+
readonly menuClick: _angular_core.OutputEmitterRef<void>;
|
|
472
|
+
readonly sidebarCollapseToggle: _angular_core.OutputEmitterRef<void>;
|
|
473
|
+
readonly themeChange: _angular_core.OutputEmitterRef<JvTheme>;
|
|
474
|
+
readonly topbarActionClick: _angular_core.OutputEmitterRef<string>;
|
|
475
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvDashboardShellComponent, never>;
|
|
476
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvDashboardShellComponent, "jv-dashboard-shell", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "sidebarSubtitle": { "alias": "sidebarSubtitle"; "required": false; "isSignal": true; }; "brandIcon": { "alias": "brandIcon"; "required": false; "isSignal": true; }; "navItems": { "alias": "navItems"; "required": false; "isSignal": true; }; "sidebarCollapsed": { "alias": "sidebarCollapsed"; "required": false; "isSignal": true; }; "mobileSidebarOpen": { "alias": "mobileSidebarOpen"; "required": false; "isSignal": true; }; "topbarTitle": { "alias": "topbarTitle"; "required": false; "isSignal": true; }; "topbarSubtitle": { "alias": "topbarSubtitle"; "required": false; "isSignal": true; }; "currentTheme": { "alias": "currentTheme"; "required": false; "isSignal": true; }; "themeOptions": { "alias": "themeOptions"; "required": false; "isSignal": true; }; "topbarActions": { "alias": "topbarActions"; "required": false; "isSignal": true; }; "showThemeSelector": { "alias": "showThemeSelector"; "required": false; "isSignal": true; }; }, { "menuClick": "menuClick"; "sidebarCollapseToggle": "sidebarCollapseToggle"; "themeChange": "themeChange"; "topbarActionClick": "topbarActionClick"; }, never, ["[topbar-actions]", "*"], true, never>;
|
|
477
|
+
}
|
|
478
|
+
|
|
479
|
+
declare class JvPageComponent {
|
|
480
|
+
readonly eyebrow: _angular_core.InputSignal<string>;
|
|
481
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
482
|
+
readonly description: _angular_core.InputSignal<string>;
|
|
483
|
+
readonly breadcrumbs: _angular_core.InputSignal<JvBreadcrumbItem[]>;
|
|
484
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvPageComponent, never>;
|
|
485
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvPageComponent, "jv-page", never, { "eyebrow": { "alias": "eyebrow"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "description": { "alias": "description"; "required": false; "isSignal": true; }; "breadcrumbs": { "alias": "breadcrumbs"; "required": false; "isSignal": true; }; }, {}, never, ["[page-actions]", "*"], true, never>;
|
|
486
|
+
}
|
|
487
|
+
|
|
488
|
+
declare class JvSidebarComponent {
|
|
489
|
+
private readonly router;
|
|
490
|
+
private readonly expandedSections;
|
|
491
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
492
|
+
readonly subtitle: _angular_core.InputSignal<string>;
|
|
493
|
+
readonly brandIcon: _angular_core.InputSignal<string>;
|
|
494
|
+
readonly items: _angular_core.InputSignal<JvNavItem[]>;
|
|
495
|
+
readonly collapsed: _angular_core.InputSignal<boolean>;
|
|
496
|
+
readonly mobileOpen: _angular_core.InputSignal<boolean>;
|
|
497
|
+
readonly ariaLabel: _angular_core.InputSignal<string>;
|
|
498
|
+
readonly collapseToggle: _angular_core.OutputEmitterRef<void>;
|
|
499
|
+
private readonly activeChildParentIds;
|
|
500
|
+
protected readonly normalizedItems: _angular_core.Signal<{
|
|
501
|
+
children: JvNavItem[];
|
|
502
|
+
id: string;
|
|
503
|
+
label: string;
|
|
504
|
+
icon?: string;
|
|
505
|
+
href?: string;
|
|
506
|
+
active?: boolean;
|
|
507
|
+
}[]>;
|
|
508
|
+
protected isExpanded(id: string): boolean;
|
|
509
|
+
protected toggleSection(id: string): void;
|
|
510
|
+
protected isHashLink(href?: string): boolean;
|
|
511
|
+
protected navigateTo(href?: string): void;
|
|
512
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvSidebarComponent, never>;
|
|
513
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvSidebarComponent, "jv-sidebar", never, { "title": { "alias": "title"; "required": true; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "brandIcon": { "alias": "brandIcon"; "required": false; "isSignal": true; }; "items": { "alias": "items"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "mobileOpen": { "alias": "mobileOpen"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "collapseToggle": "collapseToggle"; }, never, never, true, never>;
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
declare class JvTopbarComponent {
|
|
517
|
+
readonly title: _angular_core.InputSignal<string>;
|
|
518
|
+
readonly subtitle: _angular_core.InputSignal<string>;
|
|
519
|
+
readonly currentTheme: _angular_core.InputSignal<JvTheme>;
|
|
520
|
+
readonly themeOptions: _angular_core.InputSignal<JvThemeOption[]>;
|
|
521
|
+
readonly actions: _angular_core.InputSignal<JvTopbarAction[]>;
|
|
522
|
+
readonly showThemeSelector: _angular_core.InputSignal<boolean>;
|
|
523
|
+
readonly menuClick: _angular_core.OutputEmitterRef<void>;
|
|
524
|
+
readonly themeChange: _angular_core.OutputEmitterRef<JvTheme>;
|
|
525
|
+
readonly actionClick: _angular_core.OutputEmitterRef<string>;
|
|
526
|
+
protected readonly visibleActions: () => JvTopbarAction[];
|
|
527
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTopbarComponent, never>;
|
|
528
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvTopbarComponent, "jv-topbar", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "currentTheme": { "alias": "currentTheme"; "required": false; "isSignal": true; }; "themeOptions": { "alias": "themeOptions"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "showThemeSelector": { "alias": "showThemeSelector"; "required": false; "isSignal": true; }; }, { "menuClick": "menuClick"; "themeChange": "themeChange"; "actionClick": "actionClick"; }, never, ["[topbar-actions]"], true, never>;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
declare class JvThemeService {
|
|
532
|
+
private readonly document;
|
|
533
|
+
private readonly config;
|
|
534
|
+
private readonly storageKey;
|
|
535
|
+
readonly theme: _angular_core.WritableSignal<JvTheme>;
|
|
536
|
+
readonly density: _angular_core.WritableSignal<JvDensity>;
|
|
537
|
+
initialize(): void;
|
|
538
|
+
setTheme(theme: JvTheme): void;
|
|
539
|
+
setDensity(density: JvDensity): void;
|
|
540
|
+
private applyTheme;
|
|
541
|
+
private applyDensity;
|
|
542
|
+
private applyLanguage;
|
|
543
|
+
private resolveInitialTheme;
|
|
544
|
+
private readSavedTheme;
|
|
545
|
+
private prefersDarkMode;
|
|
546
|
+
private isTheme;
|
|
547
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvThemeService, never>;
|
|
548
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvThemeService>;
|
|
549
|
+
}
|
|
550
|
+
|
|
551
|
+
declare class JvAnnouncementService {
|
|
552
|
+
private readonly document;
|
|
553
|
+
private region;
|
|
554
|
+
announce(message: string, politeness?: 'polite' | 'assertive'): void;
|
|
555
|
+
private ensureRegion;
|
|
556
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvAnnouncementService, never>;
|
|
557
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvAnnouncementService>;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
declare const ES: Record<string, string>;
|
|
561
|
+
|
|
562
|
+
declare const EN: Record<string, string>;
|
|
563
|
+
|
|
564
|
+
type JvLocale = 'es' | 'en';
|
|
565
|
+
declare const JV_LOCALE_DICTIONARIES: Record<JvLocale, Record<string, string>>;
|
|
566
|
+
declare const JV_DEFAULT_LOCALE: JvLocale;
|
|
567
|
+
|
|
568
|
+
declare class JvTranslationService {
|
|
569
|
+
private readonly config;
|
|
570
|
+
readonly locale: _angular_core.WritableSignal<JvLocale>;
|
|
571
|
+
initialize(): void;
|
|
572
|
+
setLocale(locale: JvLocale): void;
|
|
573
|
+
translate(key: string, params?: Record<string, string | number>): string;
|
|
574
|
+
private resolveLocale;
|
|
575
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvTranslationService, never>;
|
|
576
|
+
static ɵprov: _angular_core.ɵɵInjectableDeclaration<JvTranslationService>;
|
|
577
|
+
}
|
|
578
|
+
|
|
579
|
+
type JvGridRowId = string | number;
|
|
580
|
+
type JvGridTrackBy<T> = keyof T | ((row: T, index: number) => JvGridRowId);
|
|
581
|
+
type JvGridSortDirection = 'asc' | 'desc' | null;
|
|
582
|
+
interface JvGridSortState {
|
|
583
|
+
columnKey: string;
|
|
584
|
+
direction: JvGridSortDirection;
|
|
585
|
+
}
|
|
586
|
+
interface JvGridColumn<T = any> {
|
|
587
|
+
key: keyof T | string;
|
|
588
|
+
header: string;
|
|
589
|
+
sortable?: boolean;
|
|
590
|
+
searchable?: boolean;
|
|
591
|
+
hidden?: boolean;
|
|
592
|
+
width?: string;
|
|
593
|
+
align?: 'start' | 'center' | 'end';
|
|
594
|
+
type?: 'text' | 'number' | 'currency' | 'date' | 'datetime' | 'boolean';
|
|
595
|
+
cellClass?: string;
|
|
596
|
+
headerClass?: string;
|
|
597
|
+
format?: (value: unknown, row: T) => string;
|
|
598
|
+
}
|
|
599
|
+
interface JvGridAction<T = any> {
|
|
600
|
+
id: string;
|
|
601
|
+
label: string;
|
|
602
|
+
icon?: string;
|
|
603
|
+
variant?: 'default' | 'primary' | 'danger';
|
|
604
|
+
disabled?: (row: T) => boolean;
|
|
605
|
+
}
|
|
606
|
+
interface JvGridOptions {
|
|
607
|
+
searchable?: boolean;
|
|
608
|
+
sortable?: boolean;
|
|
609
|
+
pageable?: boolean;
|
|
610
|
+
selectable?: boolean;
|
|
611
|
+
pageSize?: number;
|
|
612
|
+
pageSizeOptions?: number[];
|
|
613
|
+
density?: 'compact' | 'normal' | 'comfortable';
|
|
614
|
+
loading?: boolean;
|
|
615
|
+
emptyMessage?: string;
|
|
616
|
+
noResultsMessage?: string;
|
|
617
|
+
searchPlaceholder?: string;
|
|
618
|
+
ariaLabel?: string;
|
|
619
|
+
trackBy?: JvGridTrackBy<any>;
|
|
620
|
+
}
|
|
621
|
+
interface JvGridPageEvent {
|
|
622
|
+
pageIndex: number;
|
|
623
|
+
pageSize: number;
|
|
624
|
+
}
|
|
625
|
+
declare const JV_GRID_DEFAULT_OPTIONS: JvGridOptions;
|
|
626
|
+
|
|
627
|
+
declare class JvGridComponent<T = any> {
|
|
628
|
+
private readonly gridId;
|
|
629
|
+
private readonly translationService;
|
|
630
|
+
readonly data: _angular_core.InputSignal<T[]>;
|
|
631
|
+
readonly columns: _angular_core.InputSignal<JvGridColumn<T>[]>;
|
|
632
|
+
readonly actions: _angular_core.InputSignal<JvGridAction<T>[]>;
|
|
633
|
+
readonly options: _angular_core.InputSignal<Partial<JvGridOptions>>;
|
|
634
|
+
readonly trackBy: _angular_core.InputSignal<keyof T | ((row: T, index: number) => JvGridRowId) | null>;
|
|
635
|
+
readonly selectedIds: _angular_core.InputSignal<JvGridRowId[]>;
|
|
636
|
+
readonly rowClick: _angular_core.OutputEmitterRef<T>;
|
|
637
|
+
readonly actionClick: _angular_core.OutputEmitterRef<{
|
|
638
|
+
actionId: string;
|
|
639
|
+
row: T;
|
|
640
|
+
}>;
|
|
641
|
+
readonly selectionChange: _angular_core.OutputEmitterRef<JvGridRowId[]>;
|
|
642
|
+
readonly pageChange: _angular_core.OutputEmitterRef<JvGridPageEvent>;
|
|
643
|
+
readonly searchChange: _angular_core.OutputEmitterRef<string>;
|
|
644
|
+
readonly sortChange: _angular_core.OutputEmitterRef<JvGridSortState>;
|
|
645
|
+
private readonly effectiveOptions;
|
|
646
|
+
private readonly idKey;
|
|
647
|
+
protected readonly resolvedOptions: _angular_core.Signal<{
|
|
648
|
+
searchable?: boolean;
|
|
649
|
+
sortable?: boolean;
|
|
650
|
+
pageable?: boolean;
|
|
651
|
+
selectable?: boolean;
|
|
652
|
+
pageSize?: number;
|
|
653
|
+
pageSizeOptions?: number[];
|
|
654
|
+
density?: "compact" | "normal" | "comfortable";
|
|
655
|
+
loading?: boolean;
|
|
656
|
+
emptyMessage?: string;
|
|
657
|
+
noResultsMessage?: string;
|
|
658
|
+
searchPlaceholder?: string;
|
|
659
|
+
ariaLabel?: string;
|
|
660
|
+
trackBy?: _devjuliovilla_jv_ui.JvGridTrackBy<any>;
|
|
661
|
+
}>;
|
|
662
|
+
protected readonly gridLabel: _angular_core.Signal<string>;
|
|
663
|
+
protected readonly visibleColumns: _angular_core.Signal<JvGridColumn<T>[]>;
|
|
664
|
+
private readonly internalSelectedIds;
|
|
665
|
+
readonly searchTerm: _angular_core.WritableSignal<string>;
|
|
666
|
+
readonly sortState: _angular_core.WritableSignal<JvGridSortState>;
|
|
667
|
+
readonly pageIndex: _angular_core.WritableSignal<number>;
|
|
668
|
+
protected readonly pageSize: _angular_core.Signal<number>;
|
|
669
|
+
private readonly searchPageResetter;
|
|
670
|
+
private readonly selectedIdSet;
|
|
671
|
+
protected readonly filteredData: _angular_core.Signal<T[]>;
|
|
672
|
+
protected readonly sortedData: _angular_core.Signal<T[]>;
|
|
673
|
+
protected readonly totalItems: _angular_core.Signal<number>;
|
|
674
|
+
protected readonly totalPages: _angular_core.Signal<number>;
|
|
675
|
+
protected readonly pagedData: _angular_core.Signal<T[]>;
|
|
676
|
+
protected readonly pageStart: _angular_core.Signal<number>;
|
|
677
|
+
protected readonly pageEnd: _angular_core.Signal<number>;
|
|
678
|
+
protected readonly pageRange: _angular_core.Signal<number[]>;
|
|
679
|
+
protected readonly allSelected: _angular_core.Signal<boolean>;
|
|
680
|
+
protected readonly someSelected: _angular_core.Signal<boolean>;
|
|
681
|
+
protected readonly colspan: _angular_core.Signal<number>;
|
|
682
|
+
protected readonly densityClass: _angular_core.Signal<string>;
|
|
683
|
+
protected readonly t: (key: string, params?: Record<string, string | number>) => string;
|
|
684
|
+
protected getRowId(row: T, index?: number): JvGridRowId;
|
|
685
|
+
protected colKey(col: JvGridColumn<T>): string;
|
|
686
|
+
protected getRawCellValue(row: T, col: JvGridColumn<T>): unknown;
|
|
687
|
+
protected getCellValue(row: T, col: JvGridColumn<T>): unknown;
|
|
688
|
+
protected formatValue(value: unknown, col: JvGridColumn<T>): string;
|
|
689
|
+
protected getAriaSort(col: JvGridColumn<T>): 'ascending' | 'descending' | 'none' | null;
|
|
690
|
+
protected getSortLabel(col: JvGridColumn<T>): string;
|
|
691
|
+
private findColumn;
|
|
692
|
+
protected toggleSort(col: JvGridColumn<T>, event?: Event): void;
|
|
693
|
+
protected readonly actionVariant: (v?: "default" | "primary" | "danger") => JvIntent;
|
|
694
|
+
protected onSearchInput(value: string): void;
|
|
695
|
+
protected goToPage(page: number): void;
|
|
696
|
+
protected isSelected(row: T): boolean;
|
|
697
|
+
protected toggleRow(row: T): void;
|
|
698
|
+
protected toggleSelectAll(checked: boolean): void;
|
|
699
|
+
protected onRowClick(event: Event | T, row?: T): void;
|
|
700
|
+
protected onActionClick(action: JvGridAction<T>, row: T): void;
|
|
701
|
+
protected getRowLabel(row: T, index: number): string;
|
|
702
|
+
static ɵfac: _angular_core.ɵɵFactoryDeclaration<JvGridComponent<any>, never>;
|
|
703
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<JvGridComponent<any>, "jv-grid", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; "trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "selectedIds": { "alias": "selectedIds"; "required": false; "isSignal": true; }; }, { "rowClick": "rowClick"; "actionClick": "actionClick"; "selectionChange": "selectionChange"; "pageChange": "pageChange"; "searchChange": "searchChange"; "sortChange": "sortChange"; }, never, never, true, never>;
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
export { EN, ES, JV_DEFAULT_LOCALE, JV_GRID_DEFAULT_OPTIONS, JV_LOCALE_DICTIONARIES, JV_UI_CONFIG, JV_UI_CONFIG_DEFAULTS, JV_UI_DEFAULT_CONFIG, JvAlertComponent, JvAnnouncementService, JvBadgeComponent, JvBreadcrumbComponent, JvButtonComponent, JvButtonGroupComponent, JvCardComponent, JvChangePasswordPageComponent, JvCheckboxComponent, JvConfirmDialogComponent, JvDashboardShellComponent, JvDialogComponent, JvDialogService, JvDividerComponent, JvForgotPasswordPageComponent, JvFormContainerComponent, JvGridComponent, JvIconButtonComponent, JvIconComponent, JvInputComponent, JvLoaderComponent, JvLoaderService, JvLoginPageComponent, JvPageComponent, JvRadioComponent, JvSectionComponent, JvSelectComponent, JvSidebarComponent, JvSwitchComponent, JvThemeService, JvToastComponent, JvToastService, JvTopbarComponent, JvTranslationService, provideJvUi };
|
|
707
|
+
export type { JvActiveConfirmDialog, JvBreadcrumbItem, JvChangePasswordSubmitEvent, JvConfirmOptions, JvDensity, JvForgotPasswordSubmitEvent, JvGridAction, JvGridColumn, JvGridOptions, JvGridPageEvent, JvGridRowId, JvGridSortDirection, JvGridSortState, JvGridTrackBy, JvIntent, JvLoaderState, JvLocale, JvLoginSubmitEvent, JvNavItem, JvSelectOption, JvTheme, JvThemeOption, JvToastItem, JvToastPosition, JvToastViewport, JvTone, JvTopbarAction, JvUiConfig };
|