shirkasoft-ui-components 1.1.3 → 1.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (79) hide show
  1. package/fesm2022/shirkasoft-ui-components-breadcrumb.mjs +199 -0
  2. package/fesm2022/shirkasoft-ui-components-breadcrumb.mjs.map +1 -0
  3. package/fesm2022/shirkasoft-ui-components-button.mjs +148 -0
  4. package/fesm2022/shirkasoft-ui-components-button.mjs.map +1 -0
  5. package/fesm2022/shirkasoft-ui-components-chart.mjs +153 -0
  6. package/fesm2022/shirkasoft-ui-components-chart.mjs.map +1 -0
  7. package/fesm2022/shirkasoft-ui-components-confirm-dialog.mjs +143 -0
  8. package/fesm2022/shirkasoft-ui-components-confirm-dialog.mjs.map +1 -0
  9. package/fesm2022/shirkasoft-ui-components-date-picker.mjs +638 -0
  10. package/fesm2022/shirkasoft-ui-components-date-picker.mjs.map +1 -0
  11. package/fesm2022/shirkasoft-ui-components-fieldset.mjs +94 -0
  12. package/fesm2022/shirkasoft-ui-components-fieldset.mjs.map +1 -0
  13. package/fesm2022/shirkasoft-ui-components-file-upload.mjs +242 -0
  14. package/fesm2022/shirkasoft-ui-components-file-upload.mjs.map +1 -0
  15. package/fesm2022/shirkasoft-ui-components-knob.mjs +269 -0
  16. package/fesm2022/shirkasoft-ui-components-knob.mjs.map +1 -0
  17. package/fesm2022/shirkasoft-ui-components-loading.mjs +255 -0
  18. package/fesm2022/shirkasoft-ui-components-loading.mjs.map +1 -0
  19. package/fesm2022/shirkasoft-ui-components-modal.mjs +290 -0
  20. package/fesm2022/shirkasoft-ui-components-modal.mjs.map +1 -0
  21. package/fesm2022/shirkasoft-ui-components-notification.mjs +143 -0
  22. package/fesm2022/shirkasoft-ui-components-notification.mjs.map +1 -0
  23. package/fesm2022/shirkasoft-ui-components-price-input.mjs +64 -0
  24. package/fesm2022/shirkasoft-ui-components-price-input.mjs.map +1 -0
  25. package/fesm2022/shirkasoft-ui-components-rail-sidebar.mjs +205 -0
  26. package/fesm2022/shirkasoft-ui-components-rail-sidebar.mjs.map +1 -0
  27. package/fesm2022/shirkasoft-ui-components-select.mjs +737 -0
  28. package/fesm2022/shirkasoft-ui-components-select.mjs.map +1 -0
  29. package/fesm2022/shirkasoft-ui-components-sidebar.mjs +185 -0
  30. package/fesm2022/shirkasoft-ui-components-sidebar.mjs.map +1 -0
  31. package/fesm2022/shirkasoft-ui-components-skeleton.mjs +74 -0
  32. package/fesm2022/shirkasoft-ui-components-skeleton.mjs.map +1 -0
  33. package/fesm2022/shirkasoft-ui-components-table.mjs +689 -0
  34. package/fesm2022/shirkasoft-ui-components-table.mjs.map +1 -0
  35. package/fesm2022/shirkasoft-ui-components-tabs.mjs +249 -0
  36. package/fesm2022/shirkasoft-ui-components-tabs.mjs.map +1 -0
  37. package/fesm2022/shirkasoft-ui-components-tag.mjs +70 -0
  38. package/fesm2022/shirkasoft-ui-components-tag.mjs.map +1 -0
  39. package/fesm2022/shirkasoft-ui-components-text-field.mjs +370 -0
  40. package/fesm2022/shirkasoft-ui-components-text-field.mjs.map +1 -0
  41. package/fesm2022/shirkasoft-ui-components-timeline.mjs +222 -0
  42. package/fesm2022/shirkasoft-ui-components-timeline.mjs.map +1 -0
  43. package/fesm2022/shirkasoft-ui-components-toggle.mjs +186 -0
  44. package/fesm2022/shirkasoft-ui-components-toggle.mjs.map +1 -0
  45. package/fesm2022/shirkasoft-ui-components-tooltip.mjs +169 -0
  46. package/fesm2022/shirkasoft-ui-components-tooltip.mjs.map +1 -0
  47. package/fesm2022/shirkasoft-ui-components-utils.mjs +64 -0
  48. package/fesm2022/shirkasoft-ui-components-utils.mjs.map +1 -0
  49. package/fesm2022/shirkasoft-ui-components-wizard.mjs +167 -0
  50. package/fesm2022/shirkasoft-ui-components-wizard.mjs.map +1 -0
  51. package/fesm2022/shirkasoft-ui-components.mjs +0 -5040
  52. package/fesm2022/shirkasoft-ui-components.mjs.map +1 -1
  53. package/package.json +102 -2
  54. package/types/shirkasoft-ui-components-breadcrumb.d.ts +68 -0
  55. package/types/shirkasoft-ui-components-button.d.ts +59 -0
  56. package/types/shirkasoft-ui-components-chart.d.ts +65 -0
  57. package/types/shirkasoft-ui-components-confirm-dialog.d.ts +88 -0
  58. package/types/shirkasoft-ui-components-date-picker.d.ts +200 -0
  59. package/types/shirkasoft-ui-components-fieldset.d.ts +72 -0
  60. package/types/shirkasoft-ui-components-file-upload.d.ts +87 -0
  61. package/types/shirkasoft-ui-components-knob.d.ts +69 -0
  62. package/types/shirkasoft-ui-components-loading.d.ts +94 -0
  63. package/types/shirkasoft-ui-components-modal.d.ts +139 -0
  64. package/types/shirkasoft-ui-components-notification.d.ts +82 -0
  65. package/types/shirkasoft-ui-components-price-input.d.ts +41 -0
  66. package/types/shirkasoft-ui-components-rail-sidebar.d.ts +121 -0
  67. package/types/shirkasoft-ui-components-select.d.ts +182 -0
  68. package/types/shirkasoft-ui-components-sidebar.d.ts +106 -0
  69. package/types/shirkasoft-ui-components-skeleton.d.ts +36 -0
  70. package/types/shirkasoft-ui-components-table.d.ts +293 -0
  71. package/types/shirkasoft-ui-components-tabs.d.ts +102 -0
  72. package/types/shirkasoft-ui-components-tag.d.ts +31 -0
  73. package/types/shirkasoft-ui-components-text-field.d.ts +120 -0
  74. package/types/shirkasoft-ui-components-timeline.d.ts +178 -0
  75. package/types/shirkasoft-ui-components-toggle.d.ts +48 -0
  76. package/types/shirkasoft-ui-components-tooltip.d.ts +47 -0
  77. package/types/shirkasoft-ui-components-utils.d.ts +9 -0
  78. package/types/shirkasoft-ui-components-wizard.d.ts +101 -0
  79. package/types/shirkasoft-ui-components.d.ts +1 -1464
@@ -1,1465 +1,2 @@
1
- import * as _angular_core from '@angular/core';
2
- import { ElementRef, OnDestroy, Type, ViewContainerRef, ComponentRef, AfterViewInit, TemplateRef, OnInit } from '@angular/core';
3
- import { ControlValueAccessor, FormGroup, FormControl } from '@angular/forms';
4
- import { Observable } from 'rxjs';
5
1
 
6
- declare class TextFieldComponent implements ControlValueAccessor {
7
- private cdr;
8
- id: _angular_core.InputSignal<string>;
9
- formatCard: _angular_core.InputSignal<boolean>;
10
- preventNegative: _angular_core.InputSignal<boolean>;
11
- label: _angular_core.InputSignal<string>;
12
- type: _angular_core.InputSignal<string>;
13
- numbersOnly: _angular_core.InputSignal<boolean>;
14
- allowDecimals: _angular_core.InputSignal<boolean>;
15
- maxLength: _angular_core.InputSignal<number | undefined>;
16
- placeholder: _angular_core.InputSignal<string>;
17
- errorMessages: _angular_core.InputSignal<{
18
- [key: string]: string;
19
- }>;
20
- formGroup: _angular_core.InputSignal<FormGroup<any> | undefined>;
21
- control: _angular_core.InputSignal<FormControl<any> | undefined>;
22
- disabled: _angular_core.InputSignal<boolean>;
23
- errorMessage: _angular_core.InputSignal<string>;
24
- isTextArea: _angular_core.InputSignal<boolean>;
25
- textAreaHeight: _angular_core.InputSignal<string>;
26
- searchMode: _angular_core.InputSignal<boolean>;
27
- displayValue: _angular_core.InputSignal<string>;
28
- autocomplete: _angular_core.InputSignal<string>;
29
- searchButtonClick: _angular_core.OutputEmitterRef<void>;
30
- protected readonly getIcon: (name: string) => any;
31
- inputElement: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
32
- textareaElement: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
33
- private _value;
34
- private _disabledState;
35
- showPassword: _angular_core.WritableSignal<boolean>;
36
- hadError: _angular_core.WritableSignal<boolean>;
37
- private errorTracker;
38
- displayLabel: _angular_core.Signal<string>;
39
- private subscribed;
40
- isDisabled: _angular_core.Signal<boolean>;
41
- value: _angular_core.Signal<any>;
42
- actualControl: _angular_core.Signal<FormControl<any> | undefined>;
43
- shouldShowError: _angular_core.Signal<boolean | undefined>;
44
- wasFixedError: _angular_core.Signal<boolean | undefined>;
45
- getErrorMessages: _angular_core.Signal<string[]>;
46
- effectiveType: _angular_core.Signal<string>;
47
- private transloco;
48
- private onChange;
49
- private onTouched;
50
- private destroyRef;
51
- constructor();
52
- numberValidation(event: KeyboardEvent): void;
53
- onBlur(): void;
54
- onCardInput(event: Event): void;
55
- onInput(event: Event): void;
56
- togglePasswordVisibility(): void;
57
- writeValue(value: any): void;
58
- registerOnChange(fn: any): void;
59
- registerOnTouched(fn: any): void;
60
- setDisabledState(isDisabled: boolean): void;
61
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextFieldComponent, never>;
62
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TextFieldComponent, "shk-text-field", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "formatCard": { "alias": "formatCard"; "required": false; "isSignal": true; }; "preventNegative": { "alias": "preventNegative"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "numbersOnly": { "alias": "numbersOnly"; "required": false; "isSignal": true; }; "allowDecimals": { "alias": "allowDecimals"; "required": false; "isSignal": true; }; "maxLength": { "alias": "maxLength"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "isTextArea": { "alias": "isTextArea"; "required": false; "isSignal": true; }; "textAreaHeight": { "alias": "textAreaHeight"; "required": false; "isSignal": true; }; "searchMode": { "alias": "searchMode"; "required": false; "isSignal": true; }; "displayValue": { "alias": "displayValue"; "required": false; "isSignal": true; }; "autocomplete": { "alias": "autocomplete"; "required": false; "isSignal": true; }; }, { "searchButtonClick": "searchButtonClick"; }, never, never, true, never>;
63
- }
64
-
65
- interface Notification {
66
- id: string;
67
- message: string;
68
- type: 'success' | 'error' | 'warning' | 'info';
69
- progress?: number;
70
- showProgress?: boolean;
71
- }
72
- declare class NotificationService {
73
- private notificationsSignal;
74
- private currentId;
75
- notifications: _angular_core.Signal<Notification[]>;
76
- addNotification(message: string, type?: Notification['type'], showProgress?: boolean, duration?: number): string;
77
- updateProgress(notificationId: string, progress: number): void;
78
- removeNotification(notification: Notification): void;
79
- removeNotificationById(notificationId: string): void;
80
- clearAll(): void;
81
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationService, never>;
82
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<NotificationService>;
83
- }
84
-
85
- type NotificationPosition = 'center-top' | 'right-top' | 'left-top';
86
- declare class NotificationComponent {
87
- position: _angular_core.InputSignal<NotificationPosition>;
88
- private notificationService;
89
- protected getIcon: (name: string) => any;
90
- private readonly iconMap;
91
- getNotificationIcon(type: string): string;
92
- notifications: _angular_core.Signal<Notification[]>;
93
- sortedNotifications: _angular_core.Signal<Notification[]>;
94
- removeNotification(notification: Notification): void;
95
- roundProgress(progress: number | undefined): number;
96
- hasNotifications: _angular_core.Signal<boolean>;
97
- positionClass: _angular_core.Signal<"fixed top-4 z-[9999] space-y-4 sm:space-y-6 sm:top-6 lg:top-8 right-4" | "fixed top-4 z-[9999] space-y-4 sm:space-y-6 sm:top-6 lg:top-8 left-4" | "fixed top-4 z-[9999] space-y-4 sm:space-y-6 sm:top-6 lg:top-8 left-1/2 -translate-x-1/2">;
98
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationComponent, never>;
99
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotificationComponent, "shk-notification", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
100
- }
101
-
102
- declare class ToggleComponent implements ControlValueAccessor {
103
- label: _angular_core.InputSignal<string>;
104
- mode: _angular_core.InputSignal<"toggle" | "checkbox">;
105
- checked: _angular_core.InputSignal<boolean | undefined>;
106
- checkedChange: _angular_core.OutputEmitterRef<boolean>;
107
- _value: _angular_core.WritableSignal<boolean>;
108
- _disabled: _angular_core.WritableSignal<boolean>;
109
- private onChange;
110
- private onTouched;
111
- constructor();
112
- writeValue(value: any): void;
113
- registerOnChange(fn: any): void;
114
- registerOnTouched(fn: any): void;
115
- setDisabledState(isDisabled: boolean): void;
116
- toggle(): void;
117
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
118
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ToggleComponent, "shk-toggle", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "checked": { "alias": "checked"; "required": false; "isSignal": true; }; }, { "checkedChange": "checkedChange"; }, never, never, true, never>;
119
- }
120
-
121
- declare class PriceInputComponent {
122
- value: _angular_core.ModelSignal<number>;
123
- isPercentage: _angular_core.ModelSignal<boolean>;
124
- label: _angular_core.InputSignal<string>;
125
- inputId: _angular_core.InputSignal<string>;
126
- required: _angular_core.InputSignal<boolean>;
127
- disabled: _angular_core.InputSignal<boolean>;
128
- min: _angular_core.InputSignal<number>;
129
- max: _angular_core.InputSignal<number>;
130
- showError: _angular_core.InputSignal<boolean>;
131
- errorMessage: _angular_core.InputSignal<string>;
132
- toggleMode(): void;
133
- onInput(event: Event): void;
134
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<PriceInputComponent, never>;
135
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<PriceInputComponent, "shk-price-input", never, { "value": { "alias": "value"; "required": true; "isSignal": true; }; "isPercentage": { "alias": "isPercentage"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "inputId": { "alias": "inputId"; "required": false; "isSignal": true; }; "required": { "alias": "required"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "showError": { "alias": "showError"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "isPercentage": "isPercentageChange"; }, never, never, true, never>;
136
- }
137
-
138
- type DatePickerView = 'date' | 'month' | 'year';
139
- declare class DatePickerComponent implements ControlValueAccessor {
140
- private elementRef;
141
- private cdr;
142
- private destroyRef;
143
- private transloco;
144
- id: _angular_core.InputSignal<string>;
145
- view: _angular_core.InputSignal<DatePickerView>;
146
- label: _angular_core.InputSignal<string>;
147
- placeholder: _angular_core.InputSignal<string>;
148
- formGroup: _angular_core.InputSignal<FormGroup<any> | undefined>;
149
- control: _angular_core.InputSignal<FormControl<any> | undefined>;
150
- disabled: _angular_core.InputSignal<boolean>;
151
- errorMessage: _angular_core.InputSignal<string>;
152
- errorMessages: _angular_core.InputSignal<{
153
- [key: string]: string;
154
- }>;
155
- minValue: _angular_core.InputSignal<string>;
156
- maxValue: _angular_core.InputSignal<string>;
157
- locale: _angular_core.InputSignal<string>;
158
- isOpen: _angular_core.WritableSignal<boolean>;
159
- viewYear: _angular_core.WritableSignal<number>;
160
- viewMonth: _angular_core.WritableSignal<number>;
161
- viewDecade: _angular_core.WritableSignal<number>;
162
- private _value;
163
- private _disabledState;
164
- private subscribed;
165
- private valueSubscribed;
166
- private errorTracker;
167
- hadError: _angular_core.WritableSignal<boolean>;
168
- private onChange;
169
- private onTouched;
170
- value: _angular_core.Signal<string | null>;
171
- isDisabled: _angular_core.Signal<boolean>;
172
- actualControl: _angular_core.Signal<FormControl<any> | undefined>;
173
- shouldShowError: _angular_core.Signal<boolean | undefined>;
174
- wasFixedError: _angular_core.Signal<boolean | undefined>;
175
- getErrorMessages: _angular_core.Signal<string[]>;
176
- displayLabel: _angular_core.Signal<string>;
177
- monthNames: _angular_core.Signal<string[]>;
178
- dayNames: _angular_core.Signal<string[]>;
179
- daysInMonth: _angular_core.Signal<number>;
180
- firstDayOfMonth: _angular_core.Signal<number>;
181
- calendarDays: _angular_core.Signal<(number | null)[]>;
182
- canGoPrev: _angular_core.Signal<boolean>;
183
- canGoNext: _angular_core.Signal<boolean>;
184
- selectedYear: _angular_core.Signal<number | null>;
185
- selectedMonth: _angular_core.Signal<number | null>;
186
- selectedDay: _angular_core.Signal<number | null>;
187
- decadeYears: _angular_core.Signal<number[]>;
188
- years: number[];
189
- constructor();
190
- onDocumentClick(event: MouseEvent): void;
191
- onEscape(): void;
192
- toggle(): void;
193
- private syncViewToValue;
194
- close(): void;
195
- prev(): void;
196
- next(): void;
197
- selectDay(day: number): void;
198
- selectMonth(monthIndex: number): void;
199
- selectYear(year: number): void;
200
- private setValue;
201
- isSelectedDay(day: number): boolean;
202
- isToday(day: number): boolean;
203
- isSelectedMonth(monthIndex: number): boolean;
204
- isCurrentMonth(monthIndex: number): boolean;
205
- isSelectedYear(year: number): boolean;
206
- isCurrentYear(year: number): boolean;
207
- writeValue(value: any): void;
208
- registerOnChange(fn: any): void;
209
- registerOnTouched(fn: any): void;
210
- setDisabledState(isDisabled: boolean): void;
211
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
212
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DatePickerComponent, "shk-date-picker", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "view": { "alias": "view"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "errorMessage": { "alias": "errorMessage"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "minValue": { "alias": "minValue"; "required": false; "isSignal": true; }; "maxValue": { "alias": "maxValue"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
213
- }
214
-
215
- declare class ConfirmDialogComponent implements OnDestroy {
216
- protected getIcon: (name: string) => any;
217
- title: _angular_core.InputSignal<string>;
218
- message: _angular_core.InputSignal<string>;
219
- confirmLabel: _angular_core.InputSignal<string>;
220
- cancelLabel: _angular_core.InputSignal<string>;
221
- loadingText: _angular_core.InputSignal<string>;
222
- type: _angular_core.InputSignal<"warning" | "info" | "danger">;
223
- loading: _angular_core.InputSignal<boolean>;
224
- showCancel: _angular_core.InputSignal<boolean>;
225
- visible: _angular_core.WritableSignal<boolean>;
226
- private resolveRef;
227
- closed: _angular_core.OutputEmitterRef<void>;
228
- show(): Promise<boolean>;
229
- onConfirm(): void;
230
- onCancel(): void;
231
- ngOnDestroy(): void;
232
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmDialogComponent, never>;
233
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ConfirmDialogComponent, "shk-confirm-dialog", never, { "title": { "alias": "title"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "confirmLabel": { "alias": "confirmLabel"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "showCancel": { "alias": "showCancel"; "required": false; "isSignal": true; }; }, { "closed": "closed"; }, never, never, true, never>;
234
- }
235
-
236
- interface ConfirmConfig {
237
- title?: string;
238
- message: string;
239
- confirmLabel?: string;
240
- cancelLabel?: string;
241
- loadingText?: string;
242
- type?: 'danger' | 'info' | 'warning';
243
- showCancel?: boolean;
244
- loading?: boolean;
245
- }
246
- declare class ConfirmDialogService {
247
- private dialogRef;
248
- private destroyRef;
249
- private appRef;
250
- private injector;
251
- constructor();
252
- confirm(config: ConfirmConfig): Promise<boolean>;
253
- private cleanupDialog;
254
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmDialogService, never>;
255
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ConfirmDialogService>;
256
- }
257
-
258
- interface ModalConfig {
259
- title: string;
260
- component: Type<any>;
261
- data?: Record<string, any>;
262
- width?: string;
263
- showButtons?: boolean;
264
- showExpandButton?: boolean;
265
- acceptLabel?: string;
266
- cancelLabel?: string;
267
- onClose?: () => void;
268
- }
269
- declare class ModalService {
270
- private stackSignal;
271
- private closeRequestSignal;
272
- private router;
273
- private destroyRef;
274
- constructor();
275
- modalStack: _angular_core.Signal<ModalConfig[]>;
276
- currentModal: _angular_core.Signal<ModalConfig | null>;
277
- closeRequest: _angular_core.Signal<number>;
278
- open(config: ModalConfig): void;
279
- accept(): void;
280
- close(): void;
281
- clear(): void;
282
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>;
283
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModalService>;
284
- }
285
-
286
- declare class ModalComponent {
287
- protected getIcon: (name: string) => any;
288
- private notificationSrv;
289
- private destroyRef;
290
- private modalSrv;
291
- private transloco;
292
- private cdr;
293
- container: _angular_core.Signal<ViewContainerRef | undefined>;
294
- currentConfig: _angular_core.WritableSignal<ModalConfig | null>;
295
- title: _angular_core.WritableSignal<string>;
296
- visible: _angular_core.WritableSignal<boolean>;
297
- loading: _angular_core.WritableSignal<boolean>;
298
- isProcessing: _angular_core.WritableSignal<boolean>;
299
- isExpanded: _angular_core.WritableSignal<boolean>;
300
- isFormValid: _angular_core.WritableSignal<boolean>;
301
- componentRef: ComponentRef<any> | null;
302
- private subscriptions;
303
- computedModalWidth: _angular_core.Signal<string>;
304
- modalButtonsVisible: _angular_core.Signal<boolean>;
305
- showExpandButton: _angular_core.Signal<boolean>;
306
- cancelLabel: _angular_core.Signal<string>;
307
- acceptLabel: _angular_core.Signal<string>;
308
- constructor();
309
- onVisibleChange(show: boolean): void;
310
- private loadComponent;
311
- private subscribeToOutput;
312
- private handleSubmit;
313
- closeModal(): void;
314
- doClose(): void;
315
- toggleExpand(): void;
316
- onAccept(): void;
317
- private getForm;
318
- private hasRealErrors;
319
- private markAllAsTouched;
320
- private isDynamicComponent;
321
- private cleanup;
322
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
323
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "shk-modal", never, {}, {}, never, never, true, never>;
324
- }
325
-
326
- interface SelectOption {
327
- label: string;
328
- value: any;
329
- custom?: boolean;
330
- }
331
- declare class SelectComponent implements ControlValueAccessor {
332
- private elementRef;
333
- protected getIcon: (name: string) => any;
334
- options: _angular_core.InputSignal<SelectOption[]>;
335
- multiple: _angular_core.InputSignal<boolean>;
336
- validCombinations: _angular_core.InputSignal<string[][] | undefined>;
337
- placeholder: _angular_core.InputSignal<string>;
338
- label: _angular_core.InputSignal<string | undefined>;
339
- isLoading: _angular_core.InputSignal<boolean>;
340
- isAllDataLoaded: _angular_core.InputSignal<boolean>;
341
- allowCustomEntries: _angular_core.InputSignal<boolean>;
342
- formGroup: _angular_core.InputSignal<FormGroup<any> | undefined>;
343
- isSearchable: _angular_core.InputSignal<boolean>;
344
- itemsPerPage: _angular_core.InputSignal<number>;
345
- control: _angular_core.InputSignal<FormControl<any> | undefined>;
346
- usePagination: _angular_core.InputSignal<boolean>;
347
- disabled: _angular_core.InputSignal<boolean>;
348
- errorMessages: _angular_core.InputSignal<{
349
- [key: string]: string;
350
- }>;
351
- preserveSearchOnLoad: _angular_core.InputSignal<boolean>;
352
- emptyMessageKey: _angular_core.InputSignal<string>;
353
- dropdownUpward: _angular_core.InputSignal<boolean>;
354
- showEmptyOption: _angular_core.InputSignal<boolean>;
355
- selectionChange: _angular_core.OutputEmitterRef<any>;
356
- search: _angular_core.OutputEmitterRef<string>;
357
- filterInput: _angular_core.Signal<ElementRef<any> | undefined>;
358
- private selectContainer;
359
- private selectTrigger;
360
- private dropdownContainer;
361
- private _value;
362
- isOpen: _angular_core.WritableSignal<boolean>;
363
- focusedIndex: _angular_core.WritableSignal<number>;
364
- searchTerm: _angular_core.WritableSignal<string>;
365
- currentPage: _angular_core.WritableSignal<number>;
366
- private searchTermChanged;
367
- private _isDisabled;
368
- private debounceTimer;
369
- private errorTracker;
370
- hadError: _angular_core.WritableSignal<boolean>;
371
- private subscribed;
372
- private valueSubscribed;
373
- value: _angular_core.Signal<any>;
374
- isDisabled: _angular_core.Signal<boolean>;
375
- actualControl: _angular_core.Signal<FormControl<any> | undefined>;
376
- shouldShowError: _angular_core.Signal<boolean | undefined>;
377
- wasFixedError: _angular_core.Signal<boolean | undefined>;
378
- displayValue: _angular_core.Signal<any>;
379
- getErrorMessages: _angular_core.Signal<string[]>;
380
- filteredOptions: _angular_core.Signal<SelectOption[]>;
381
- paginatedOptions: _angular_core.Signal<SelectOption[]>;
382
- regularOptions: _angular_core.Signal<SelectOption[]>;
383
- totalPages: _angular_core.Signal<number>;
384
- hasSelectedValues: _angular_core.Signal<any>;
385
- showCustomOption: _angular_core.Signal<boolean>;
386
- private transloco;
387
- private onChange;
388
- private onTouched;
389
- private destroyRef;
390
- constructor(elementRef: ElementRef);
391
- setDisabledState(isDisabled: boolean): void;
392
- private markAsTouchedAndUpdate;
393
- normalizeText(text: string): string;
394
- onKeydown(event: KeyboardEvent): void;
395
- handleKeyDown(event: KeyboardEvent): void;
396
- private moveFocus;
397
- private getSelectedIndex;
398
- isOptionDisabled(option: SelectOption): boolean;
399
- isSelected(option: SelectOption): boolean;
400
- nextPage(): void;
401
- previousPage(): void;
402
- onClickOutside(event: MouseEvent): void;
403
- onCustomOptionClick(): void;
404
- onInputChange(event: Event): void;
405
- onOptionClick(option: SelectOption): void;
406
- selectOption(option: SelectOption): void;
407
- toggleOption(option: SelectOption): void;
408
- toggleDropdown(): void;
409
- trackByFn(index: number, option: SelectOption): any;
410
- writeValue(value: any): void;
411
- registerOnChange(fn: any): void;
412
- registerOnTouched(fn: any): void;
413
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent, never>;
414
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SelectComponent, "shk-select", never, { "options": { "alias": "options"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; "validCombinations": { "alias": "validCombinations"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; "isLoading": { "alias": "isLoading"; "required": false; "isSignal": true; }; "isAllDataLoaded": { "alias": "isAllDataLoaded"; "required": false; "isSignal": true; }; "allowCustomEntries": { "alias": "allowCustomEntries"; "required": false; "isSignal": true; }; "formGroup": { "alias": "formGroup"; "required": false; "isSignal": true; }; "isSearchable": { "alias": "isSearchable"; "required": false; "isSignal": true; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; "isSignal": true; }; "control": { "alias": "control"; "required": false; "isSignal": true; }; "usePagination": { "alias": "usePagination"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "errorMessages": { "alias": "errorMessages"; "required": false; "isSignal": true; }; "preserveSearchOnLoad": { "alias": "preserveSearchOnLoad"; "required": false; "isSignal": true; }; "emptyMessageKey": { "alias": "emptyMessageKey"; "required": false; "isSignal": true; }; "dropdownUpward": { "alias": "dropdownUpward"; "required": false; "isSignal": true; }; "showEmptyOption": { "alias": "showEmptyOption"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "search": "search"; }, never, never, true, never>;
415
- }
416
-
417
- interface FileUploadError {
418
- type: 'size' | 'type';
419
- message: string;
420
- file: File;
421
- }
422
- declare class FileUploadComponent {
423
- protected getIcon: (name: string) => any;
424
- private transloco;
425
- label: _angular_core.InputSignal<string>;
426
- accept: _angular_core.InputSignal<string>;
427
- maxFileSize: _angular_core.InputSignal<number>;
428
- maxFiles: _angular_core.InputSignal<number>;
429
- fileUploadText: _angular_core.InputSignal<string>;
430
- fileRecommendation: _angular_core.InputSignal<string>;
431
- changeFilesText: _angular_core.InputSignal<string>;
432
- multiple: _angular_core.InputSignal<boolean>;
433
- fileSelected: _angular_core.OutputEmitterRef<File[]>;
434
- fileRemoved: _angular_core.OutputEmitterRef<void>;
435
- fileError: _angular_core.OutputEmitterRef<FileUploadError>;
436
- fileWarning: _angular_core.OutputEmitterRef<FileUploadError>;
437
- selectedFiles: _angular_core.WritableSignal<File[]>;
438
- errorMessage: _angular_core.WritableSignal<string>;
439
- isDragOver: _angular_core.WritableSignal<boolean>;
440
- private previewUrls;
441
- canAddMore: _angular_core.Signal<boolean>;
442
- maxReached: _angular_core.Signal<boolean>;
443
- isImageFile(file: File): boolean;
444
- previewUrl(file: File): string;
445
- onDragOver(event: DragEvent): void;
446
- onDragLeave(event: DragEvent): void;
447
- onDrop(event: DragEvent): void;
448
- onFileChange(event: Event): void;
449
- private processFiles;
450
- private validateFile;
451
- private checkSizeWarning;
452
- removeFile(file: File): void;
453
- changeFiles(): void;
454
- private clearPreviews;
455
- private formatFileSize;
456
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileUploadComponent, never>;
457
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FileUploadComponent, "shk-file-upload", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "accept": { "alias": "accept"; "required": false; "isSignal": true; }; "maxFileSize": { "alias": "maxFileSize"; "required": false; "isSignal": true; }; "maxFiles": { "alias": "maxFiles"; "required": false; "isSignal": true; }; "fileUploadText": { "alias": "fileUploadText"; "required": false; "isSignal": true; }; "fileRecommendation": { "alias": "fileRecommendation"; "required": false; "isSignal": true; }; "changeFilesText": { "alias": "changeFilesText"; "required": false; "isSignal": true; }; "multiple": { "alias": "multiple"; "required": false; "isSignal": true; }; }, { "fileSelected": "fileSelected"; "fileRemoved": "fileRemoved"; "fileError": "fileError"; "fileWarning": "fileWarning"; }, never, never, true, never>;
458
- }
459
-
460
- /** Resolves a lucide icon name to its component. Falls back to a help circle. */
461
- declare function getIcon$6(name?: string): any;
462
-
463
- type TagSeverity = 'secondary' | 'success' | 'info' | 'warning' | 'danger' | 'contrast';
464
- /** Small label used to highlight a value, status or category. */
465
- declare class TagComponent {
466
- /** Text shown inside the tag. */
467
- value: _angular_core.InputSignal<string | number>;
468
- /** Color variant. Defaults to 'secondary'. */
469
- severity: _angular_core.InputSignal<TagSeverity>;
470
- /** Renders the tag with fully rounded corners (pill). */
471
- rounded: _angular_core.InputSignal<boolean>;
472
- /** Optional leading lucide icon name. */
473
- icon: _angular_core.InputSignal<string>;
474
- /** Inline styles applied to the tag. */
475
- style: _angular_core.InputSignal<Record<string, string | number>>;
476
- /** Extra CSS classes. */
477
- styleClass: _angular_core.InputSignal<string>;
478
- protected getIcon: typeof getIcon$6;
479
- protected tagClass: _angular_core.Signal<string>;
480
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
481
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TagComponent, "shk-tag", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
482
- }
483
-
484
- declare function getIcon$5(name: string): any;
485
- interface Column {
486
- field: string;
487
- header: string;
488
- sortable?: boolean;
489
- filter?: boolean;
490
- filterPlaceholder?: string;
491
- width?: string;
492
- defaultSort?: true;
493
- filterType?: 'text' | 'exact' | 'select';
494
- filterOptions?: {
495
- label: string;
496
- value: any;
497
- }[];
498
- template?: 'text' | 'tag';
499
- format?: (row: any) => string;
500
- tagValue?: (row: any) => string;
501
- tagSeverity?: (row: any) => TagSeverity | undefined;
502
- tagRounded?: boolean | ((row: any) => boolean);
503
- tagIcon?: string | ((row: any) => string);
504
- tagStyle?: (row: any) => Record<string, string | number> | undefined;
505
- }
506
- interface TableAction {
507
- label: string;
508
- icon: string;
509
- onClick: () => void;
510
- class?: string;
511
- isVisible?: () => boolean;
512
- isDisabled?: () => boolean;
513
- }
514
- interface RowAction {
515
- label: string | ((data: any) => string);
516
- icon: string | ((data: any) => string);
517
- onClick: (rowData: any) => void;
518
- class?: string | ((data: any) => string);
519
- isVisible?: (rowData: any) => boolean;
520
- isDisabled?: (rowData: any) => boolean;
521
- }
522
- interface PageChangeEvent {
523
- first: number;
524
- rows: number;
525
- page: number;
526
- pageCount: number;
527
- }
528
- interface FilterChangeEvent {
529
- filters: {
530
- [key: string]: any;
531
- };
532
- }
533
- declare class TableComponent {
534
- private fb;
535
- private cdr;
536
- private transloco;
537
- private destroyRef;
538
- protected getIcon: typeof getIcon$5;
539
- /**
540
- * FIX responsive: ancho mínimo que toma cada columna (excepto 'actions',
541
- * que ya tiene su propio ancho calculado) SOLO en pantallas angostas
542
- * (ver el media query en `styles`). En pantallas anchas esta variable no
543
- * se usa: las columnas se estiran normalmente al 100% del contenedor,
544
- * igual que antes. Ajustable por columna vía `col.width` si alguna
545
- * necesita más o menos espacio en mobile.
546
- */
547
- protected readonly DEFAULT_COLUMN_WIDTH = "140px";
548
- getColumnWidth(col: Column): string;
549
- private actionsHeaderLabel;
550
- private currentLang;
551
- data: _angular_core.InputSignal<any[]>;
552
- columns: _angular_core.InputSignal<Column[]>;
553
- rowsPerPage: _angular_core.InputSignal<number>;
554
- rowsPerPageOptions: _angular_core.InputSignal<number[]>;
555
- loading: _angular_core.InputSignal<boolean>;
556
- showActionRow: _angular_core.InputSignal<boolean>;
557
- customTemplates: _angular_core.InputSignal<{
558
- [key: string]: any;
559
- }>;
560
- headerActions: _angular_core.InputSignal<TableAction[]>;
561
- rowActions: _angular_core.InputSignal<RowAction[]>;
562
- hasShadow: _angular_core.InputSignal<boolean>;
563
- defaultSortField: _angular_core.InputSignal<string>;
564
- defaultSortOrder: _angular_core.InputSignal<number>;
565
- showSearch: _angular_core.InputSignal<boolean>;
566
- searchPlaceholder: _angular_core.InputSignal<string>;
567
- emptyMessage: _angular_core.InputSignal<string>;
568
- serverSide: _angular_core.InputSignal<boolean>;
569
- totalRecords: _angular_core.InputSignal<number>;
570
- filters: _angular_core.InputSignal<{
571
- label: string;
572
- value: string;
573
- }[]>;
574
- activeFilter: _angular_core.InputSignal<string>;
575
- refresh: _angular_core.OutputEmitterRef<void>;
576
- pageChange: _angular_core.OutputEmitterRef<PageChangeEvent>;
577
- filterChange: _angular_core.OutputEmitterRef<FilterChangeEvent>;
578
- searchChange: _angular_core.OutputEmitterRef<string>;
579
- filterClick: _angular_core.OutputEmitterRef<string>;
580
- private originalData;
581
- searchedData: _angular_core.WritableSignal<any[]>;
582
- filteredData: _angular_core.WritableSignal<any[]>;
583
- displayedData: _angular_core.WritableSignal<any[]>;
584
- localTotalRecords: _angular_core.WritableSignal<number>;
585
- first: _angular_core.WritableSignal<number>;
586
- showFilterInput: _angular_core.WritableSignal<{
587
- [key: string]: boolean;
588
- }>;
589
- searchQuery: _angular_core.WritableSignal<string>;
590
- sortField: _angular_core.WritableSignal<string>;
591
- sortOrder: _angular_core.WritableSignal<number>;
592
- rowsPerPageLocal: _angular_core.WritableSignal<number>;
593
- totalPages: _angular_core.Signal<number>;
594
- currentPage: _angular_core.Signal<number>;
595
- columnFiltersForm: FormGroup;
596
- private filterSubject;
597
- private searchSubject;
598
- private lastFilterFieldsSignature;
599
- private columnFilterSubscriptions;
600
- columnsWithActions: _angular_core.Signal<Column[]>;
601
- effectiveTotalRecords: _angular_core.Signal<number>;
602
- effectiveDisplayedData: _angular_core.Signal<any[]>;
603
- pageReport: _angular_core.Signal<string>;
604
- constructor();
605
- /**
606
- * FIX crítico: antes se reconstruía el FormGroup completo (perdiendo el
607
- * texto escrito por el usuario en los filtros y el estado de visibilidad
608
- * de cada filtro) cada vez que `columns()` cambiaba de referencia, aunque
609
- * el conjunto de campos filtrables fuera idéntico. Ahora comparamos una
610
- * "firma" del set de campos+tipo de filtro y solo reconstruimos si
611
- * realmente cambió. Además, las suscripciones previas se limpian antes de
612
- * crear las nuevas para no acumular fugas de memoria.
613
- */
614
- private setupColumnFilters;
615
- private emitFilterChange;
616
- private applySearch;
617
- private applyFilters;
618
- private applyColumnFilters;
619
- private updateDisplayedData;
620
- onFilterClick(value: string): void;
621
- toggleSort(field: string): void;
622
- /**
623
- * FIX: se documenta explícitamente el criterio de valores null/undefined.
624
- * Se mantienen SIEMPRE al final de la lista, sin importar la dirección del
625
- * orden (comportamiento común e intencional en tablas de datos). Si en tu
626
- * caso de uso prefieres que "sigan" la dirección del sort, multiplica
627
- * ambos returns por `order`.
628
- */
629
- private applySort;
630
- onSearchInput(value: string): void;
631
- clearFilter(field: string): void;
632
- toggleFilter(field: string): void;
633
- /**
634
- * FIX #5 (falsy zero): antes el template usaba `columnFiltersForm.get(field)?.value`
635
- * directamente en un `@if`/`[class]`, lo cual falla cuando el valor es `0`
636
- * (número), ya que `0` es falsy en JS. Este helper compara explícitamente
637
- * contra null/undefined/''.
638
- */
639
- hasFilterValue(field: string): boolean;
640
- getPageReport(): string;
641
- goToFirst(): void;
642
- goToLast(): void;
643
- onRowsPerPageChange(rows: number): void;
644
- refreshData(): void;
645
- isFirstPage(): boolean;
646
- isLastPage(): boolean;
647
- next(): void;
648
- prev(): void;
649
- reset(): void;
650
- getRowActionLabel(action: RowAction, rowData: any): string;
651
- getRowActionIconName(action: RowAction, rowData: any): string;
652
- getRowActionClass(action: RowAction, rowData: any): string;
653
- isHeaderActionDisabled(action: TableAction): boolean;
654
- isHeaderActionVisible(action: TableAction): boolean;
655
- isRowActionDisabled(action: RowAction, rowData: any): boolean;
656
- isRowActionVisible(action: RowAction, rowData: any): boolean;
657
- truncate(value: any, limit?: number): string;
658
- getTagValue(col: Column, rowData: any): string;
659
- getTagSeverity(col: Column, rowData: any): TagSeverity;
660
- getTagRounded(col: Column, rowData: any): boolean;
661
- getTagIcon(col: Column, rowData: any): string;
662
- getTagStyle(col: Column, rowData: any): Record<string, string | number>;
663
- /**
664
- * FIX #7 (medio): trackBy real por identidad de fila en vez de `$index`.
665
- * Si tu dato no tiene `id`/`_id`, cae de vuelta al índice (comportamiento
666
- * anterior), pero se recomienda pasar filas con un identificador único.
667
- */
668
- trackByRow(row: any, index: number): any;
669
- /** FIX accesibilidad: soporte de teclado (Enter/Espacio) para ordenar columnas. */
670
- onHeaderKeydown(event: KeyboardEvent, col: Column): void;
671
- /** FIX accesibilidad: valor aria-sort para el <th> correspondiente. */
672
- getAriaSort(col: Column): 'ascending' | 'descending' | 'none';
673
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent, never>;
674
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableComponent, "shk-table", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "rowsPerPage": { "alias": "rowsPerPage"; "required": false; "isSignal": true; }; "rowsPerPageOptions": { "alias": "rowsPerPageOptions"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "showActionRow": { "alias": "showActionRow"; "required": false; "isSignal": true; }; "customTemplates": { "alias": "customTemplates"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "hasShadow": { "alias": "hasShadow"; "required": false; "isSignal": true; }; "defaultSortField": { "alias": "defaultSortField"; "required": false; "isSignal": true; }; "defaultSortOrder": { "alias": "defaultSortOrder"; "required": false; "isSignal": true; }; "showSearch": { "alias": "showSearch"; "required": false; "isSignal": true; }; "searchPlaceholder": { "alias": "searchPlaceholder"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "serverSide": { "alias": "serverSide"; "required": false; "isSignal": true; }; "totalRecords": { "alias": "totalRecords"; "required": false; "isSignal": true; }; "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "activeFilter": { "alias": "activeFilter"; "required": false; "isSignal": true; }; }, { "refresh": "refresh"; "pageChange": "pageChange"; "filterChange": "filterChange"; "searchChange": "searchChange"; "filterClick": "filterClick"; }, never, never, true, never>;
675
- }
676
-
677
- /**
678
- * Tooltip que se renderiza en `document.body` con `position: fixed`, de modo
679
- * que siempre flota por encima de cualquier contenedor (tablas con
680
- * `overflow: hidden`, modales, scroll wrappers, etc.) y nunca queda
681
- * recortado ni pasa por debajo de su elemento ancla.
682
- */
683
- declare class TooltipComponent implements OnDestroy {
684
- readonly text: _angular_core.InputSignal<string>;
685
- readonly position: _angular_core.InputSignal<"top" | "bottom" | "right">;
686
- readonly mode: _angular_core.InputSignal<"fixed" | "hover">;
687
- readonly offset: _angular_core.InputSignal<number>;
688
- private readonly host;
689
- private readonly document;
690
- private tooltipEl;
691
- private cleanup;
692
- onMouseEnter(): void;
693
- onMouseLeave(): void;
694
- private show;
695
- private computePosition;
696
- private hide;
697
- private removeTooltip;
698
- ngOnDestroy(): void;
699
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
700
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TooltipComponent, "shk-tooltip", never, { "text": { "alias": "text"; "required": false; "isSignal": true; }; "position": { "alias": "position"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "offset": { "alias": "offset"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
701
- }
702
-
703
- declare function getIcon$4(name?: string): any;
704
- interface SidebarItem {
705
- id: string;
706
- label: string;
707
- icon?: string;
708
- route?: string;
709
- children?: SidebarItem[];
710
- roles?: string[];
711
- badge?: string | number;
712
- disabled?: boolean;
713
- separator?: boolean;
714
- }
715
- interface SidebarGroup {
716
- id?: string;
717
- label?: string;
718
- items: SidebarItem[];
719
- }
720
- declare class SidebarComponent {
721
- private platformId;
722
- items: _angular_core.InputSignal<SidebarItem[]>;
723
- groups: _angular_core.InputSignal<SidebarGroup[]>;
724
- title: _angular_core.InputSignal<string>;
725
- subtitle: _angular_core.InputSignal<string>;
726
- logo: _angular_core.InputSignal<string>;
727
- activeItemId: _angular_core.InputSignal<string>;
728
- userRole: _angular_core.InputSignal<string>;
729
- collapsible: _angular_core.InputSignal<boolean>;
730
- showToggle: _angular_core.InputSignal<boolean>;
731
- responsive: _angular_core.InputSignal<boolean>;
732
- fixed: _angular_core.InputSignal<boolean>;
733
- hasShadow: _angular_core.InputSignal<boolean>;
734
- expandedWidth: _angular_core.InputSignal<string>;
735
- collapsedWidth: _angular_core.InputSignal<string>;
736
- defaultExpanded: _angular_core.InputSignal<string[]>;
737
- labelPipe: _angular_core.InputSignal<(label: string) => string>;
738
- expandTooltip: _angular_core.InputSignal<string>;
739
- collapseTooltip: _angular_core.InputSignal<string>;
740
- collapsed: _angular_core.ModelSignal<boolean>;
741
- mobileOpen: _angular_core.ModelSignal<boolean>;
742
- itemClick: _angular_core.OutputEmitterRef<SidebarItem>;
743
- toggle: _angular_core.OutputEmitterRef<boolean>;
744
- protected getIcon: typeof getIcon$4;
745
- protected selectedId: _angular_core.WritableSignal<string>;
746
- protected expandedGroups: _angular_core.WritableSignal<Set<string>>;
747
- private isBrowser;
748
- constructor(platformId: Object);
749
- protected width: _angular_core.Signal<string>;
750
- protected navItems: _angular_core.Signal<SidebarItem[]>;
751
- onResize(_event: Event): void;
752
- protected label(item: SidebarItem): string;
753
- protected isItemActive(item: SidebarItem): boolean;
754
- protected isGroupActive(item: SidebarItem): boolean;
755
- protected isGroupExpanded(item: SidebarItem): boolean;
756
- protected toggleGroup(item: SidebarItem): void;
757
- protected onItemClick(item: SidebarItem): void;
758
- protected onToggle(): void;
759
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
760
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SidebarComponent, "shk-sidebar", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "groups": { "alias": "groups"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "subtitle": { "alias": "subtitle"; "required": false; "isSignal": true; }; "logo": { "alias": "logo"; "required": false; "isSignal": true; }; "activeItemId": { "alias": "activeItemId"; "required": false; "isSignal": true; }; "userRole": { "alias": "userRole"; "required": false; "isSignal": true; }; "collapsible": { "alias": "collapsible"; "required": false; "isSignal": true; }; "showToggle": { "alias": "showToggle"; "required": false; "isSignal": true; }; "responsive": { "alias": "responsive"; "required": false; "isSignal": true; }; "fixed": { "alias": "fixed"; "required": false; "isSignal": true; }; "hasShadow": { "alias": "hasShadow"; "required": false; "isSignal": true; }; "expandedWidth": { "alias": "expandedWidth"; "required": false; "isSignal": true; }; "collapsedWidth": { "alias": "collapsedWidth"; "required": false; "isSignal": true; }; "defaultExpanded": { "alias": "defaultExpanded"; "required": false; "isSignal": true; }; "labelPipe": { "alias": "labelPipe"; "required": false; "isSignal": true; }; "expandTooltip": { "alias": "expandTooltip"; "required": false; "isSignal": true; }; "collapseTooltip": { "alias": "collapseTooltip"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "mobileOpen": { "alias": "mobileOpen"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "mobileOpen": "mobileOpenChange"; "itemClick": "itemClick"; "toggle": "toggle"; }, never, ["[sidebarHeader]", "[sidebarContent]", "[sidebarFooter]"], true, never>;
761
- }
762
-
763
- declare function getIcon$3(name?: string): any;
764
- interface RailSidebarItem {
765
- id: string;
766
- label: string;
767
- icon?: string;
768
- routerLink?: string;
769
- children?: RailSidebarItem[];
770
- roles?: string[];
771
- badge?: string | number;
772
- disabled?: boolean;
773
- separator?: boolean;
774
- }
775
- interface RailSidebarSection {
776
- key: string;
777
- label: string;
778
- icon?: string;
779
- routerLink?: string;
780
- matchPrefixes?: string[];
781
- items?: RailSidebarItem[];
782
- }
783
- interface RailSidebarSectionEvent {
784
- key: string;
785
- routerLink?: string;
786
- }
787
- declare class RailSidebarComponent {
788
- sections: _angular_core.InputSignal<RailSidebarSection[]>;
789
- activeUrl: _angular_core.InputSignal<string>;
790
- activeSectionKey: _angular_core.ModelSignal<string>;
791
- collapsed: _angular_core.ModelSignal<boolean>;
792
- activeLang: _angular_core.InputSignal<string>;
793
- langs: _angular_core.InputSignal<string[]>;
794
- logo: _angular_core.InputSignal<string>;
795
- appName: _angular_core.InputSignal<string>;
796
- userRole: _angular_core.InputSignal<string>;
797
- labelPipe: _angular_core.InputSignal<(label: string) => string>;
798
- railWidth: _angular_core.InputSignal<string>;
799
- expandedWidth: _angular_core.InputSignal<string>;
800
- workspaceTooltip: _angular_core.InputSignal<string>;
801
- logoutTooltip: _angular_core.InputSignal<string>;
802
- collapseTooltip: _angular_core.InputSignal<string>;
803
- expandTooltip: _angular_core.InputSignal<string>;
804
- sectionSelected: _angular_core.OutputEmitterRef<RailSidebarSectionEvent>;
805
- itemClick: _angular_core.OutputEmitterRef<RailSidebarItem>;
806
- setLang: _angular_core.OutputEmitterRef<string>;
807
- logoutRequested: _angular_core.OutputEmitterRef<void>;
808
- toggleSidebar: _angular_core.OutputEmitterRef<boolean>;
809
- workspaceClick: _angular_core.OutputEmitterRef<void>;
810
- protected getIcon: typeof getIcon$3;
811
- protected expandedGroups: _angular_core.WritableSignal<Set<string>>;
812
- constructor();
813
- protected width: _angular_core.Signal<string>;
814
- protected activeSection: _angular_core.Signal<RailSidebarSection | null>;
815
- protected navItems: _angular_core.Signal<RailSidebarItem[]>;
816
- protected label(label: string): string;
817
- protected isSectionActive(section: RailSidebarSection): boolean;
818
- protected isItemActive(item: RailSidebarItem): boolean;
819
- protected isGroupActive(item: RailSidebarItem): boolean;
820
- private matchesUrl;
821
- private bestMatchItem;
822
- protected isGroupExpanded(item: RailSidebarItem): boolean;
823
- protected toggleGroup(item: RailSidebarItem): void;
824
- protected onSectionClick(section: RailSidebarSection): void;
825
- protected onItemClick(item: RailSidebarItem): void;
826
- protected onWorkspace(): void;
827
- protected onToggleLang(): void;
828
- protected onToggleSidebar(): void;
829
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<RailSidebarComponent, never>;
830
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<RailSidebarComponent, "shk-rail-sidebar", never, { "sections": { "alias": "sections"; "required": false; "isSignal": true; }; "activeUrl": { "alias": "activeUrl"; "required": false; "isSignal": true; }; "activeSectionKey": { "alias": "activeSectionKey"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "activeLang": { "alias": "activeLang"; "required": false; "isSignal": true; }; "langs": { "alias": "langs"; "required": false; "isSignal": true; }; "logo": { "alias": "logo"; "required": false; "isSignal": true; }; "appName": { "alias": "appName"; "required": false; "isSignal": true; }; "userRole": { "alias": "userRole"; "required": false; "isSignal": true; }; "labelPipe": { "alias": "labelPipe"; "required": false; "isSignal": true; }; "railWidth": { "alias": "railWidth"; "required": false; "isSignal": true; }; "expandedWidth": { "alias": "expandedWidth"; "required": false; "isSignal": true; }; "workspaceTooltip": { "alias": "workspaceTooltip"; "required": false; "isSignal": true; }; "logoutTooltip": { "alias": "logoutTooltip"; "required": false; "isSignal": true; }; "collapseTooltip": { "alias": "collapseTooltip"; "required": false; "isSignal": true; }; "expandTooltip": { "alias": "expandTooltip"; "required": false; "isSignal": true; }; }, { "activeSectionKey": "activeSectionKeyChange"; "collapsed": "collapsedChange"; "sectionSelected": "sectionSelected"; "itemClick": "itemClick"; "setLang": "setLang"; "logoutRequested": "logoutRequested"; "toggleSidebar": "toggleSidebar"; "workspaceClick": "workspaceClick"; }, never, never, true, never>;
831
- }
832
-
833
- declare class ChartComponent implements AfterViewInit, OnDestroy {
834
- private static registered;
835
- type: _angular_core.InputSignal<"line" | "bar" | "pie" | "doughnut" | "polarArea">;
836
- data: _angular_core.InputSignal<any>;
837
- options: _angular_core.InputSignal<any>;
838
- private canvasRef;
839
- private chartInstance;
840
- private initialized;
841
- constructor();
842
- ngAfterViewInit(): void;
843
- ngOnDestroy(): void;
844
- private resetCanvas;
845
- private initChart;
846
- private deepClone;
847
- private updateChart;
848
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartComponent, never>;
849
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ChartComponent, "shk-chart", never, { "type": { "alias": "type"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
850
- }
851
-
852
- declare const COLOR_PALETTE: {
853
- bg: string;
854
- border: string;
855
- }[];
856
- declare function readThemeColors(): {
857
- text: string;
858
- muted: string;
859
- border: string;
860
- };
861
-
862
- declare function getIcon$2(name: string): any;
863
- /** A chip shown under a sub item (time, pricing model, quantity, etc). */
864
- interface TimelineMeta {
865
- icon: string;
866
- label?: string;
867
- value: string;
868
- }
869
- /** A row inside a timeline item (e.g. an activity of a tour day). */
870
- interface TimelineSubItem {
871
- id: string | number;
872
- title: string;
873
- subtitle?: string;
874
- /** Used to look up icon / color in `iconMap` and `iconColors`. */
875
- type?: string;
876
- /** Overrides the resolved icon name. */
877
- icon?: string;
878
- /** Hex background for the icon box (fallback). */
879
- color?: string;
880
- /** Hex text color for the icon (fallback). */
881
- colorText?: string;
882
- /** Custom CSS classes for the icon box (takes precedence over inline colors). */
883
- iconClass?: string;
884
- optional?: boolean;
885
- optionalLabel?: string;
886
- meta?: TimelineMeta[];
887
- price?: string | number;
888
- }
889
- /** A single event in the timeline (e.g. a tour day). */
890
- interface TimelineItem {
891
- id: string | number;
892
- /** Text shown inside the marker (falls back to the auto index). */
893
- markerText?: string | number;
894
- title?: string;
895
- subtitle?: string;
896
- description?: string;
897
- /** Small pill shown above the title (e.g. "Día 1"). */
898
- badge?: string | number;
899
- badgeIcon?: string;
900
- /** CSS classes for the marker (falls back to the cycled gradient palette). */
901
- color?: string;
902
- subItems?: TimelineSubItem[];
903
- }
904
- /** A button rendered in the header. */
905
- interface TimelineAction {
906
- label: string;
907
- icon: string;
908
- onClick: () => void;
909
- class?: string;
910
- isVisible?: () => boolean;
911
- isDisabled?: () => boolean;
912
- }
913
- /** An action rendered in the item card footer. */
914
- interface TimelineItemAction {
915
- label: string | ((item: TimelineItem) => string);
916
- icon: string | ((item: TimelineItem) => string);
917
- onClick: (item: TimelineItem) => void;
918
- class?: string | ((item: TimelineItem) => string);
919
- isVisible?: (item: TimelineItem) => boolean;
920
- isDisabled?: (item: TimelineItem) => boolean;
921
- }
922
- /** An action rendered on hover over a sub item. */
923
- interface TimelineSubItemAction {
924
- label: string | ((item: TimelineItem, subItem: TimelineSubItem) => string);
925
- icon: string | ((item: TimelineItem, subItem: TimelineSubItem) => string);
926
- onClick: (item: TimelineItem, subItem: TimelineSubItem) => void;
927
- isVisible?: (item: TimelineItem, subItem: TimelineSubItem) => boolean;
928
- isDisabled?: (item: TimelineItem, subItem: TimelineSubItem) => boolean;
929
- }
930
- type TimelineAlignment = 'left' | 'alternate';
931
- type TimelineMarkerSize = 'sm' | 'md' | 'lg';
932
- declare const DEFAULT_MARKER_GRADIENTS: string[];
933
- /** Supplier-type style palette used by the original wac-app timeline. */
934
- declare const DEFAULT_SUPPLIER_ICON_COLORS: Record<string, {
935
- bg: string;
936
- text: string;
937
- }>;
938
- /** Maps a sub-item `type` to a lucide icon name. */
939
- declare const DEFAULT_SUPPLIER_TYPE_ICONS: Record<string, string>;
940
- declare class TimelineComponent {
941
- protected getIcon: typeof getIcon$2;
942
- /** Timeline data. */
943
- items: _angular_core.InputSignal<TimelineItem[]>;
944
- /** 'left' = line and markers on the left; 'alternate' = cards alternate around a centered line on lg+. */
945
- alignment: _angular_core.InputSignal<TimelineAlignment>;
946
- /** Shows/hides the vertical connector line. */
947
- showLine: _angular_core.InputSignal<boolean>;
948
- /** Marker diameter. */
949
- markerSize: _angular_core.InputSignal<TimelineMarkerSize>;
950
- /** Gradient classes cycled across markers when the item has no `color`. */
951
- markerGradients: _angular_core.InputSignal<string[]>;
952
- /** Shows the info column on the opposite side of the card (alternate mode, lg+). */
953
- showOpposite: _angular_core.InputSignal<boolean>;
954
- /** Shows the item description. */
955
- showDescription: _angular_core.InputSignal<boolean>;
956
- /** Shows meta chips inside sub items. */
957
- showSubItemMeta: _angular_core.InputSignal<boolean>;
958
- /** Shows the price of each sub item. */
959
- showSubItemPrice: _angular_core.InputSignal<boolean>;
960
- /** Auto-append "N {subItemCountLabel}" under the title when the item has no subtitle. */
961
- showSubItemCount: _angular_core.InputSignal<boolean>;
962
- subItemCountLabel: _angular_core.InputSignal<string>;
963
- showHeader: _angular_core.InputSignal<boolean>;
964
- headerTitle: _angular_core.InputSignal<string>;
965
- /** Convenience "add" button in the header. */
966
- showAddItem: _angular_core.InputSignal<boolean>;
967
- addItemLabel: _angular_core.InputSignal<string>;
968
- addItemIcon: _angular_core.InputSignal<string>;
969
- addItemTooltip: _angular_core.InputSignal<string>;
970
- headerActions: _angular_core.InputSignal<TimelineAction[]>;
971
- /** Renders "+ Añadir sub-elemento" in each card footer. */
972
- showAddSubItem: _angular_core.InputSignal<boolean>;
973
- addSubItemLabel: _angular_core.InputSignal<string>;
974
- addSubItemTooltip: _angular_core.InputSignal<string>;
975
- itemActions: _angular_core.InputSignal<TimelineItemAction[]>;
976
- subItemActions: _angular_core.InputSignal<TimelineSubItemAction[]>;
977
- /** Maps a sub-item `type` to a lucide icon name. */
978
- iconMap: _angular_core.InputSignal<{
979
- [type: string]: string;
980
- }>;
981
- /** Maps a sub-item `type` to its icon-box colors. */
982
- iconColors: _angular_core.InputSignal<{
983
- [type: string]: {
984
- bg: string;
985
- text: string;
986
- };
987
- }>;
988
- /** Icon used when nothing matches. */
989
- fallbackIcon: _angular_core.InputSignal<string>;
990
- showEmptyState: _angular_core.InputSignal<boolean>;
991
- emptyMessage: _angular_core.InputSignal<string>;
992
- emptyIcon: _angular_core.InputSignal<string>;
993
- editTooltip: _angular_core.InputSignal<string>;
994
- deleteTooltip: _angular_core.InputSignal<string>;
995
- optionalLabel: _angular_core.InputSignal<string>;
996
- noSubItemsMessage: _angular_core.InputSignal<string>;
997
- /** Custom content templates: keys 'marker', 'opposite', 'content', 'description', 'subItem', 'empty'. */
998
- customTemplates: _angular_core.InputSignal<{
999
- [key: string]: any;
1000
- }>;
1001
- addItem: _angular_core.OutputEmitterRef<void>;
1002
- addSubItem: _angular_core.OutputEmitterRef<TimelineItem>;
1003
- itemClick: _angular_core.OutputEmitterRef<TimelineItem>;
1004
- subItemClick: _angular_core.OutputEmitterRef<{
1005
- item: TimelineItem;
1006
- subItem: TimelineSubItem;
1007
- }>;
1008
- markerText(item: TimelineItem, index: number): string | number;
1009
- markerClass(item: TimelineItem, index: number): string;
1010
- markerColumnClass(): string;
1011
- alternateMarkerColumnClass(): string;
1012
- lineClass(): string;
1013
- subItemIconName(sub: TimelineSubItem): string;
1014
- subItemStyle(sub: TimelineSubItem): {
1015
- [key: string]: string;
1016
- } | undefined;
1017
- isHeaderActionVisible(action: TimelineAction): boolean;
1018
- isHeaderActionDisabled(action: TimelineAction): boolean;
1019
- getItemActionLabel(action: TimelineItemAction, item: TimelineItem): string;
1020
- getItemActionIconName(action: TimelineItemAction, item: TimelineItem): string;
1021
- getItemActionClass(action: TimelineItemAction, item: TimelineItem): string;
1022
- isItemActionVisible(action: TimelineItemAction, item: TimelineItem): boolean;
1023
- isItemActionDisabled(action: TimelineItemAction, item: TimelineItem): boolean;
1024
- getSubItemActionLabel(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): string;
1025
- getSubItemActionIconName(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): string;
1026
- isSubItemActionVisible(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): boolean;
1027
- isSubItemActionDisabled(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): boolean;
1028
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimelineComponent, never>;
1029
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TimelineComponent, "shk-timeline", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "showLine": { "alias": "showLine"; "required": false; "isSignal": true; }; "markerSize": { "alias": "markerSize"; "required": false; "isSignal": true; }; "markerGradients": { "alias": "markerGradients"; "required": false; "isSignal": true; }; "showOpposite": { "alias": "showOpposite"; "required": false; "isSignal": true; }; "showDescription": { "alias": "showDescription"; "required": false; "isSignal": true; }; "showSubItemMeta": { "alias": "showSubItemMeta"; "required": false; "isSignal": true; }; "showSubItemPrice": { "alias": "showSubItemPrice"; "required": false; "isSignal": true; }; "showSubItemCount": { "alias": "showSubItemCount"; "required": false; "isSignal": true; }; "subItemCountLabel": { "alias": "subItemCountLabel"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "showAddItem": { "alias": "showAddItem"; "required": false; "isSignal": true; }; "addItemLabel": { "alias": "addItemLabel"; "required": false; "isSignal": true; }; "addItemIcon": { "alias": "addItemIcon"; "required": false; "isSignal": true; }; "addItemTooltip": { "alias": "addItemTooltip"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "showAddSubItem": { "alias": "showAddSubItem"; "required": false; "isSignal": true; }; "addSubItemLabel": { "alias": "addSubItemLabel"; "required": false; "isSignal": true; }; "addSubItemTooltip": { "alias": "addSubItemTooltip"; "required": false; "isSignal": true; }; "itemActions": { "alias": "itemActions"; "required": false; "isSignal": true; }; "subItemActions": { "alias": "subItemActions"; "required": false; "isSignal": true; }; "iconMap": { "alias": "iconMap"; "required": false; "isSignal": true; }; "iconColors": { "alias": "iconColors"; "required": false; "isSignal": true; }; "fallbackIcon": { "alias": "fallbackIcon"; "required": false; "isSignal": true; }; "showEmptyState": { "alias": "showEmptyState"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "emptyIcon": { "alias": "emptyIcon"; "required": false; "isSignal": true; }; "editTooltip": { "alias": "editTooltip"; "required": false; "isSignal": true; }; "deleteTooltip": { "alias": "deleteTooltip"; "required": false; "isSignal": true; }; "optionalLabel": { "alias": "optionalLabel"; "required": false; "isSignal": true; }; "noSubItemsMessage": { "alias": "noSubItemsMessage"; "required": false; "isSignal": true; }; "customTemplates": { "alias": "customTemplates"; "required": false; "isSignal": true; }; }, { "addItem": "addItem"; "addSubItem": "addSubItem"; "itemClick": "itemClick"; "subItemClick": "subItemClick"; }, never, never, true, never>;
1030
- }
1031
-
1032
- declare function getIcon$1(name: string): any;
1033
- /** An action button rendered on the right side of the fieldset header. */
1034
- interface FieldsetHeaderAction {
1035
- label: string;
1036
- icon: string;
1037
- onClick: () => void;
1038
- class?: string;
1039
- isVisible?: () => boolean;
1040
- isDisabled?: () => boolean;
1041
- }
1042
- declare class FieldsetComponent {
1043
- protected getIcon: typeof getIcon$1;
1044
- /** Title shown in the header. */
1045
- legend: _angular_core.InputSignal<string>;
1046
- /** Collapsed state (default: collapsed). Two-way bindable with [(collapsed)]. */
1047
- collapsed: _angular_core.ModelSignal<boolean>;
1048
- /** Whether the header toggles the content. */
1049
- toggleable: _angular_core.InputSignal<boolean>;
1050
- /** Shows the expand/collapse icon button. */
1051
- showToggleIcon: _angular_core.InputSignal<boolean>;
1052
- /** Optional leading icon shown next to the legend. */
1053
- icon: _angular_core.InputSignal<string>;
1054
- /** Optional badge/count shown after the legend. */
1055
- badge: _angular_core.InputSignal<string | number>;
1056
- /** CSS classes for the badge (override). */
1057
- badgeClass: _angular_core.InputSignal<string>;
1058
- /** Icon shown when collapsed. */
1059
- collapsedIcon: _angular_core.InputSignal<string>;
1060
- /** Icon shown when expanded. */
1061
- expandedIcon: _angular_core.InputSignal<string>;
1062
- /** Action buttons rendered on the right side of the header. */
1063
- headerActions: _angular_core.InputSignal<FieldsetHeaderAction[]>;
1064
- /** Custom content templates: key 'legend' (context: $implicit collapsed, expanded). */
1065
- customTemplates: _angular_core.InputSignal<{
1066
- [key: string]: any;
1067
- }>;
1068
- hasShadow: _angular_core.InputSignal<boolean>;
1069
- expandLabel: _angular_core.InputSignal<string>;
1070
- collapseLabel: _angular_core.InputSignal<string>;
1071
- /** Emits the new expanded state when toggled. */
1072
- toggle: _angular_core.OutputEmitterRef<boolean>;
1073
- expand: _angular_core.OutputEmitterRef<void>;
1074
- collapse: _angular_core.OutputEmitterRef<void>;
1075
- contentId: string;
1076
- onToggle(): void;
1077
- isHeaderActionVisible(action: FieldsetHeaderAction): boolean;
1078
- isHeaderActionDisabled(action: FieldsetHeaderAction): boolean;
1079
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldsetComponent, never>;
1080
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<FieldsetComponent, "shk-fieldset", never, { "legend": { "alias": "legend"; "required": false; "isSignal": true; }; "collapsed": { "alias": "collapsed"; "required": false; "isSignal": true; }; "toggleable": { "alias": "toggleable"; "required": false; "isSignal": true; }; "showToggleIcon": { "alias": "showToggleIcon"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "badge": { "alias": "badge"; "required": false; "isSignal": true; }; "badgeClass": { "alias": "badgeClass"; "required": false; "isSignal": true; }; "collapsedIcon": { "alias": "collapsedIcon"; "required": false; "isSignal": true; }; "expandedIcon": { "alias": "expandedIcon"; "required": false; "isSignal": true; }; "headerActions": { "alias": "headerActions"; "required": false; "isSignal": true; }; "customTemplates": { "alias": "customTemplates"; "required": false; "isSignal": true; }; "hasShadow": { "alias": "hasShadow"; "required": false; "isSignal": true; }; "expandLabel": { "alias": "expandLabel"; "required": false; "isSignal": true; }; "collapseLabel": { "alias": "collapseLabel"; "required": false; "isSignal": true; }; }, { "collapsed": "collapsedChange"; "toggle": "toggle"; "expand": "expand"; "collapse": "collapse"; }, never, ["*"], true, never>;
1081
- }
1082
-
1083
- declare function getIcon(name: string): any;
1084
- /** A step of the wizard shown in the stepper. */
1085
- interface WizardStep {
1086
- id: string | number;
1087
- label: string;
1088
- /** Optional lucide icon rendered inside the step circle. */
1089
- icon?: string;
1090
- /** Overrides the primary footer button label for this step. */
1091
- primaryLabel?: string;
1092
- /** Overrides the primary footer button icon for this step. */
1093
- primaryIcon?: string;
1094
- }
1095
- /** Declares a step's content template: <ng-template shkWizardStepContent="stepId">…</ng-template>. */
1096
- declare class ShkWizardStepContent {
1097
- templateRef: TemplateRef<unknown>;
1098
- stepId: _angular_core.InputSignal<string | number>;
1099
- constructor(templateRef: TemplateRef<unknown>);
1100
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShkWizardStepContent, never>;
1101
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShkWizardStepContent, "ng-template[shkWizardStepContent]", never, { "stepId": { "alias": "shkWizardStepContent"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
1102
- }
1103
- declare class WizardComponent {
1104
- protected getIcon: typeof getIcon;
1105
- /** Steps definition shown in the stepper and used to resolve step content. */
1106
- steps: _angular_core.InputSignal<WizardStep[]>;
1107
- /** Active step id. Two-way bindable with [(currentStep)]. Null resolves to the first step. */
1108
- currentStep: _angular_core.ModelSignal<string | number | null>;
1109
- /** Shows the sticky header (back button + title). */
1110
- showHeader: _angular_core.InputSignal<boolean>;
1111
- headerTitle: _angular_core.InputSignal<string>;
1112
- headerSubtitle: _angular_core.InputSignal<string>;
1113
- /** Shows the round back button in the header. */
1114
- showBackButton: _angular_core.InputSignal<boolean>;
1115
- backTooltip: _angular_core.InputSignal<string>;
1116
- /** Optional lucide icon shown before the title. */
1117
- headerIcon: _angular_core.InputSignal<string>;
1118
- /** Shows the progress stepper (hide it for edit mode, like wac-app does). */
1119
- showStepper: _angular_core.InputSignal<boolean>;
1120
- /** Lets the user click on previous steps to jump back. */
1121
- stepperClickable: _angular_core.InputSignal<boolean>;
1122
- showFooter: _angular_core.InputSignal<boolean>;
1123
- /** Shows a "Paso X / N" counter on the left of the footer. */
1124
- showStepCounter: _angular_core.InputSignal<boolean>;
1125
- stepCounterPrefix: _angular_core.InputSignal<string>;
1126
- /** Shows the Cancel button on the first step (instead of a back button). */
1127
- showCancel: _angular_core.InputSignal<boolean>;
1128
- /** Auto-advances to the next step on the primary button when it is not the last step. */
1129
- advanceOnNext: _angular_core.InputSignal<boolean>;
1130
- prevLabel: _angular_core.InputSignal<string>;
1131
- prevIcon: _angular_core.InputSignal<string>;
1132
- cancelLabel: _angular_core.InputSignal<string>;
1133
- cancelIcon: _angular_core.InputSignal<string>;
1134
- nextLabel: _angular_core.InputSignal<string>;
1135
- nextIcon: _angular_core.InputSignal<string>;
1136
- finishLabel: _angular_core.InputSignal<string>;
1137
- finishIcon: _angular_core.InputSignal<string>;
1138
- /** Overrides the primary footer button label for every step. */
1139
- primaryLabel: _angular_core.InputSignal<string | null>;
1140
- /** Overrides the primary footer button icon for every step. */
1141
- primaryIcon: _angular_core.InputSignal<string | null>;
1142
- /** Shows a loading spinner on the primary button and disables it. */
1143
- primaryLoading: _angular_core.InputSignal<boolean>;
1144
- /** Disables the primary footer button (e.g. while the step form is invalid). */
1145
- primaryDisabled: _angular_core.InputSignal<boolean>;
1146
- back: _angular_core.OutputEmitterRef<void>;
1147
- cancel: _angular_core.OutputEmitterRef<void>;
1148
- prev: _angular_core.OutputEmitterRef<void>;
1149
- next: _angular_core.OutputEmitterRef<void>;
1150
- finish: _angular_core.OutputEmitterRef<void>;
1151
- stepChange: _angular_core.OutputEmitterRef<{
1152
- step: WizardStep | null;
1153
- index: number;
1154
- }>;
1155
- readonly stepContents: _angular_core.Signal<readonly ShkWizardStepContent[]>;
1156
- currentIndex: _angular_core.Signal<number>;
1157
- currentStepObj: _angular_core.Signal<WizardStep>;
1158
- isFirstStep: _angular_core.Signal<boolean>;
1159
- isLastStep: _angular_core.Signal<boolean>;
1160
- primaryActionLabel: _angular_core.Signal<string>;
1161
- primaryActionIcon: _angular_core.Signal<string>;
1162
- getStepTemplate(id: string | number): TemplateRef<unknown> | undefined;
1163
- goTo(stepId: string | number): void;
1164
- onPrev(): void;
1165
- onNext(): void;
1166
- onPrimary(): void;
1167
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<WizardComponent, never>;
1168
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<WizardComponent, "shk-wizard", never, { "steps": { "alias": "steps"; "required": false; "isSignal": true; }; "currentStep": { "alias": "currentStep"; "required": false; "isSignal": true; }; "showHeader": { "alias": "showHeader"; "required": false; "isSignal": true; }; "headerTitle": { "alias": "headerTitle"; "required": false; "isSignal": true; }; "headerSubtitle": { "alias": "headerSubtitle"; "required": false; "isSignal": true; }; "showBackButton": { "alias": "showBackButton"; "required": false; "isSignal": true; }; "backTooltip": { "alias": "backTooltip"; "required": false; "isSignal": true; }; "headerIcon": { "alias": "headerIcon"; "required": false; "isSignal": true; }; "showStepper": { "alias": "showStepper"; "required": false; "isSignal": true; }; "stepperClickable": { "alias": "stepperClickable"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "showStepCounter": { "alias": "showStepCounter"; "required": false; "isSignal": true; }; "stepCounterPrefix": { "alias": "stepCounterPrefix"; "required": false; "isSignal": true; }; "showCancel": { "alias": "showCancel"; "required": false; "isSignal": true; }; "advanceOnNext": { "alias": "advanceOnNext"; "required": false; "isSignal": true; }; "prevLabel": { "alias": "prevLabel"; "required": false; "isSignal": true; }; "prevIcon": { "alias": "prevIcon"; "required": false; "isSignal": true; }; "cancelLabel": { "alias": "cancelLabel"; "required": false; "isSignal": true; }; "cancelIcon": { "alias": "cancelIcon"; "required": false; "isSignal": true; }; "nextLabel": { "alias": "nextLabel"; "required": false; "isSignal": true; }; "nextIcon": { "alias": "nextIcon"; "required": false; "isSignal": true; }; "finishLabel": { "alias": "finishLabel"; "required": false; "isSignal": true; }; "finishIcon": { "alias": "finishIcon"; "required": false; "isSignal": true; }; "primaryLabel": { "alias": "primaryLabel"; "required": false; "isSignal": true; }; "primaryIcon": { "alias": "primaryIcon"; "required": false; "isSignal": true; }; "primaryLoading": { "alias": "primaryLoading"; "required": false; "isSignal": true; }; "primaryDisabled": { "alias": "primaryDisabled"; "required": false; "isSignal": true; }; }, { "currentStep": "currentStepChange"; "back": "back"; "cancel": "cancel"; "prev": "prev"; "next": "next"; "finish": "finish"; "stepChange": "stepChange"; }, ["stepContents"], ["[shkWizardHeaderActions]"], true, never>;
1169
- }
1170
-
1171
- type SkeletonShape = 'rectangle' | 'circle';
1172
- type SkeletonAnimation = 'wave' | 'pulse' | 'none';
1173
- /** Placeholder block shown while content is loading. */
1174
- declare class SkeletonComponent {
1175
- /** Shape of the skeleton: rectangle (default) or circle. */
1176
- shape: _angular_core.InputSignal<SkeletonShape>;
1177
- /** When shape is circle, sets both width and height. */
1178
- size: _angular_core.InputSignal<string>;
1179
- /** Width of the rectangle skeleton. */
1180
- width: _angular_core.InputSignal<string>;
1181
- /** Height of the rectangle skeleton. */
1182
- height: _angular_core.InputSignal<string>;
1183
- /** Custom border radius (rectangle only). */
1184
- borderRadius: _angular_core.InputSignal<string>;
1185
- /** Animation effect: 'wave' (default), 'pulse' or 'none'. */
1186
- animation: _angular_core.InputSignal<SkeletonAnimation>;
1187
- /** Inline styles applied to the skeleton block. */
1188
- style: _angular_core.InputSignal<Record<string, string | number>>;
1189
- /** Extra CSS classes. */
1190
- styleClass: _angular_core.InputSignal<string>;
1191
- protected rootStyle: _angular_core.Signal<{
1192
- [x: string]: string | number;
1193
- }>;
1194
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonComponent, never>;
1195
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SkeletonComponent, "shk-skeleton", never, { "shape": { "alias": "shape"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "animation": { "alias": "animation"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1196
- }
1197
-
1198
- type ButtonSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger' | 'help' | 'contrast';
1199
- type ButtonSize = 'small' | 'large';
1200
- type ButtonIconPosition = 'left' | 'right' | 'top' | 'bottom';
1201
- /** Generic button with icon, severity variants, loading state and sizes. */
1202
- declare class ButtonComponent {
1203
- /** Text shown inside the button. */
1204
- label: _angular_core.InputSignal<string>;
1205
- /** Optional leading lucide icon name. */
1206
- icon: _angular_core.InputSignal<string>;
1207
- /** Position of the icon relative to the label. */
1208
- iconPos: _angular_core.InputSignal<ButtonIconPosition>;
1209
- /** Color variant. Defaults to 'primary'. */
1210
- severity: _angular_core.InputSignal<ButtonSeverity>;
1211
- /** Transparent background with a colored border. */
1212
- outlined: _angular_core.InputSignal<boolean>;
1213
- /** Borderless button with a colored label. */
1214
- text: _angular_core.InputSignal<boolean>;
1215
- /** Adds a soft shadow. */
1216
- raised: _angular_core.InputSignal<boolean>;
1217
- /** Fully rounded corners (pill). */
1218
- rounded: _angular_core.InputSignal<boolean>;
1219
- /** Size variant. */
1220
- size: _angular_core.InputSignal<ButtonSize | undefined>;
1221
- /** Disables the button. */
1222
- disabled: _angular_core.InputSignal<boolean>;
1223
- /** Shows a spinner and disables the button. */
1224
- loading: _angular_core.InputSignal<boolean>;
1225
- /** Icon shown while loading. Defaults to 'refresh'. */
1226
- loadingIcon: _angular_core.InputSignal<string>;
1227
- /** Optional text shown instead of the label while loading. */
1228
- loadingText: _angular_core.InputSignal<string>;
1229
- /** Native button type. */
1230
- type: _angular_core.InputSignal<"submit" | "button" | "reset">;
1231
- /** Accessible label when the button is icon-only. */
1232
- ariaLabel: _angular_core.InputSignal<string>;
1233
- /** Native title tooltip. */
1234
- title: _angular_core.InputSignal<string>;
1235
- /** Inline styles applied to the button. */
1236
- style: _angular_core.InputSignal<Record<string, string | number>>;
1237
- /** Extra CSS classes. */
1238
- styleClass: _angular_core.InputSignal<string>;
1239
- /** Emitted on click with the original MouseEvent. */
1240
- onClick: _angular_core.OutputEmitterRef<MouseEvent>;
1241
- protected getIcon: typeof getIcon$6;
1242
- protected iconOnly: _angular_core.Signal<boolean>;
1243
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
1244
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "shk-button", never, { "label": { "alias": "label"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "iconPos": { "alias": "iconPos"; "required": false; "isSignal": true; }; "severity": { "alias": "severity"; "required": false; "isSignal": true; }; "outlined": { "alias": "outlined"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "raised": { "alias": "raised"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "loadingIcon": { "alias": "loadingIcon"; "required": false; "isSignal": true; }; "loadingText": { "alias": "loadingText"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, { "onClick": "onClick"; }, never, ["*"], true, never>;
1245
- }
1246
-
1247
- /** SVG radial knob with drag and keyboard support. Implements ControlValueAccessor. */
1248
- declare class KnobComponent implements ControlValueAccessor {
1249
- /** Current value. Two-way bindable with [(value)]. */
1250
- value: _angular_core.ModelSignal<number>;
1251
- /** Minimum value. */
1252
- min: _angular_core.InputSignal<number>;
1253
- /** Maximum value. */
1254
- max: _angular_core.InputSignal<number>;
1255
- /** Increment used by arrows and pointer drag rounding. */
1256
- step: _angular_core.InputSignal<number>;
1257
- /** Diameter of the knob in px. */
1258
- size: _angular_core.InputSignal<number>;
1259
- /** Thickness of the arc stroke. */
1260
- strokeWidth: _angular_core.InputSignal<number>;
1261
- /** Color of the filled arc. */
1262
- valueColor: _angular_core.InputSignal<string>;
1263
- /** Color of the track arc. */
1264
- rangeColor: _angular_core.InputSignal<string>;
1265
- /** Whether the current value is shown in the center. */
1266
- showValue: _angular_core.InputSignal<boolean>;
1267
- /** Disables user interaction. */
1268
- disabled: _angular_core.InputSignal<boolean>;
1269
- /** Blocks editing but keeps the control styled as enabled. */
1270
- readonly: _angular_core.InputSignal<boolean>;
1271
- /** Accessible label. */
1272
- ariaLabel: _angular_core.InputSignal<string>;
1273
- /** Emitted when the knob value changes. */
1274
- change: _angular_core.OutputEmitterRef<number>;
1275
- /** Emitted when the user releases the pointer. */
1276
- end: _angular_core.OutputEmitterRef<number>;
1277
- protected knobSvg: _angular_core.Signal<ElementRef<SVGElement> | undefined>;
1278
- private onChange;
1279
- private onTouched;
1280
- private dragging;
1281
- private formDisabled;
1282
- /** Effective disabled state combining the `disabled` input and the form binding. */
1283
- protected effectiveDisabled: _angular_core.Signal<boolean>;
1284
- protected r: _angular_core.Signal<number>;
1285
- protected center: _angular_core.Signal<number>;
1286
- protected fraction: _angular_core.Signal<number>;
1287
- protected rangeArc: _angular_core.Signal<string>;
1288
- protected valueArc: _angular_core.Signal<string>;
1289
- writeValue(value: any): void;
1290
- registerOnChange(fn: any): void;
1291
- registerOnTouched(fn: any): void;
1292
- setDisabledState(isDisabled: boolean): void;
1293
- onPointerDown(event: PointerEvent): void;
1294
- onPointerMove(event: PointerEvent): void;
1295
- onPointerUp(event: PointerEvent): void;
1296
- updateByKey(step: number): void;
1297
- private applyEvent;
1298
- private setValue;
1299
- private clamp;
1300
- private getArcPath;
1301
- private anglePoint;
1302
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnobComponent, never>;
1303
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<KnobComponent, "shk-knob", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "min": { "alias": "min"; "required": false; "isSignal": true; }; "max": { "alias": "max"; "required": false; "isSignal": true; }; "step": { "alias": "step"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "strokeWidth": { "alias": "strokeWidth"; "required": false; "isSignal": true; }; "valueColor": { "alias": "valueColor"; "required": false; "isSignal": true; }; "rangeColor": { "alias": "rangeColor"; "required": false; "isSignal": true; }; "showValue": { "alias": "showValue"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "readonly": { "alias": "readonly"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; "change": "change"; "end": "end"; }, never, never, true, never>;
1304
- }
1305
-
1306
- /** Circular indeterminate spinner. */
1307
- declare class LoadingSpinnerComponent {
1308
- /** Diameter of the spinner. */
1309
- size: _angular_core.InputSignal<string>;
1310
- /** Border thickness in px. */
1311
- thickness: _angular_core.InputSignal<number>;
1312
- /** Color of the moving arc. Defaults to the primary token. */
1313
- color: _angular_core.InputSignal<string>;
1314
- /** Optional text shown under the spinner. */
1315
- label: _angular_core.InputSignal<string>;
1316
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingSpinnerComponent, never>;
1317
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoadingSpinnerComponent, "shk-loading-spinner", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "thickness": { "alias": "thickness"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1318
- }
1319
-
1320
- /** Progress bar with an indeterminate sweep or a determinate percentage. */
1321
- declare class LoadingBarComponent {
1322
- /** Height of the bar. */
1323
- height: _angular_core.InputSignal<string>;
1324
- /** When true the bar animates without a known percentage. */
1325
- indeterminate: _angular_core.InputSignal<boolean>;
1326
- /** Current progress 0-100 when `indeterminate` is false. */
1327
- progress: _angular_core.InputSignal<number>;
1328
- /** Fill color. Defaults to the primary token. */
1329
- color: _angular_core.InputSignal<string>;
1330
- /** Renders fully rounded ends. */
1331
- rounded: _angular_core.InputSignal<boolean>;
1332
- protected fillStyle: _angular_core.Signal<{
1333
- width?: undefined;
1334
- } | {
1335
- width: string;
1336
- }>;
1337
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingBarComponent, never>;
1338
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoadingBarComponent, "shk-loading-bar", never, { "height": { "alias": "height"; "required": false; "isSignal": true; }; "indeterminate": { "alias": "indeterminate"; "required": false; "isSignal": true; }; "progress": { "alias": "progress"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "rounded": { "alias": "rounded"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1339
- }
1340
-
1341
- type LoadingOverlayBackdrop = 'transparent' | 'light' | 'dark';
1342
- /** Wraps content and shows a centered spinner over it while `visible` is true. */
1343
- declare class LoadingOverlayComponent {
1344
- /** Controls whether the spinner layer is shown. */
1345
- visible: _angular_core.InputSignal<boolean>;
1346
- /** Optional text under the spinner. */
1347
- message: _angular_core.InputSignal<string>;
1348
- /** Diameter of the spinner. */
1349
- spinnerSize: _angular_core.InputSignal<string>;
1350
- /** Spinner color. Defaults to the primary token. */
1351
- color: _angular_core.InputSignal<string>;
1352
- /** Backdrop behind the spinner. */
1353
- backdrop: _angular_core.InputSignal<LoadingOverlayBackdrop>;
1354
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingOverlayComponent, never>;
1355
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoadingOverlayComponent, "shk-loading-overlay", never, { "visible": { "alias": "visible"; "required": false; "isSignal": true; }; "message": { "alias": "message"; "required": false; "isSignal": true; }; "spinnerSize": { "alias": "spinnerSize"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "backdrop": { "alias": "backdrop"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1356
- }
1357
-
1358
- /** Bouncing dots loading indicator. */
1359
- declare class LoadingDotsComponent {
1360
- /** Diameter of each dot. */
1361
- size: _angular_core.InputSignal<string>;
1362
- /** Dot color. Defaults to the primary token. */
1363
- color: _angular_core.InputSignal<string>;
1364
- /** Number of dots. */
1365
- count: _angular_core.InputSignal<number>;
1366
- /** Optional text shown next to the dots. */
1367
- label: _angular_core.InputSignal<string>;
1368
- protected dots: _angular_core.Signal<unknown[]>;
1369
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingDotsComponent, never>;
1370
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<LoadingDotsComponent, "shk-loading-dots", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; "count": { "alias": "count"; "required": false; "isSignal": true; }; "label": { "alias": "label"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1371
- }
1372
-
1373
- /** Shared state between shk-tabs and its projected tab/tabpanel children. */
1374
- declare class TabsService {
1375
- readonly active: _angular_core.WritableSignal<any>;
1376
- select(value: any): void;
1377
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsService, never>;
1378
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<TabsService>;
1379
- }
1380
-
1381
- /** Container for tab panels. Renders its projected shk-tablist/shh-tab content. */
1382
- declare class TabsComponent {
1383
- /** Currently active tab value. Two-way bindable with [(value)]. */
1384
- value: _angular_core.ModelSignal<any>;
1385
- /** Allows the tab header to scroll horizontally when it overflows. */
1386
- scrollable: _angular_core.InputSignal<boolean>;
1387
- protected tabsSvc: TabsService;
1388
- constructor();
1389
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
1390
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabsComponent, "shk-tabs", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; }, { "value": "valueChange"; }, never, ["*"], true, never>;
1391
- }
1392
-
1393
- /** Horizontal bar that contains the shk-tab headers. */
1394
- declare class TablistComponent {
1395
- /** Allows the header to scroll horizontally when it overflows. */
1396
- scrollable: _angular_core.InputSignal<boolean>;
1397
- /** Extra CSS classes. */
1398
- styleClass: _angular_core.InputSignal<string>;
1399
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TablistComponent, never>;
1400
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TablistComponent, "shk-tablist", never, { "scrollable": { "alias": "scrollable"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1401
- }
1402
-
1403
- /** A single tab header. Clicking it activates the matching panel. */
1404
- declare class TabComponent {
1405
- /** Value that links this tab to its panel. */
1406
- value: _angular_core.InputSignal<any>;
1407
- /** Disables the tab. */
1408
- disabled: _angular_core.InputSignal<boolean>;
1409
- /** Extra CSS classes. */
1410
- styleClass: _angular_core.InputSignal<string>;
1411
- protected tabsSvc: TabsService;
1412
- protected active: _angular_core.Signal<boolean>;
1413
- select(): void;
1414
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
1415
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabComponent, "shk-tab", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1416
- }
1417
-
1418
- /** Container that groups the shk-tabpanel content sections. */
1419
- declare class TabpanelsComponent {
1420
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabpanelsComponent, never>;
1421
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabpanelsComponent, "shk-tabpanels", never, {}, {}, never, ["*"], true, never>;
1422
- }
1423
-
1424
- /** Content section shown only while its value is the active tab. */
1425
- declare class TabPanelComponent {
1426
- /** Value that links this panel to its tab. */
1427
- value: _angular_core.InputSignal<any>;
1428
- protected tabsSvc: TabsService;
1429
- protected active: _angular_core.Signal<boolean>;
1430
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabPanelComponent, never>;
1431
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabPanelComponent, "shk-tabpanel", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
1432
- }
1433
-
1434
- interface BreadcrumbItem {
1435
- label: string;
1436
- route?: string;
1437
- }
1438
- declare class BreadcrumbService {
1439
- private breadcrumbsSubject;
1440
- breadcrumbs$: Observable<BreadcrumbItem[]>;
1441
- set(items: BreadcrumbItem[]): void;
1442
- clear(): void;
1443
- getCurrent(): BreadcrumbItem[];
1444
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbService, never>;
1445
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<BreadcrumbService>;
1446
- }
1447
-
1448
- type BreadcrumbSeparator = 'chevron' | 'slash' | 'arrow';
1449
- declare class BreadcrumbComponent implements OnInit, OnDestroy {
1450
- private readonly breadcrumbService;
1451
- items: _angular_core.InputSignal<BreadcrumbItem[]>;
1452
- separator: _angular_core.InputSignal<BreadcrumbSeparator>;
1453
- useService: _angular_core.InputSignal<boolean>;
1454
- protected serviceItems: _angular_core.WritableSignal<BreadcrumbItem[]>;
1455
- protected resolvedItems: _angular_core.Signal<BreadcrumbItem[]>;
1456
- private serviceSub;
1457
- constructor();
1458
- ngOnInit(): void;
1459
- ngOnDestroy(): void;
1460
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
1461
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<BreadcrumbComponent, "shk-breadcrumb", never, { "items": { "alias": "items"; "required": false; "isSignal": true; }; "separator": { "alias": "separator"; "required": false; "isSignal": true; }; "useService": { "alias": "useService"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
1462
- }
1463
-
1464
- export { BreadcrumbComponent, BreadcrumbService, ButtonComponent, COLOR_PALETTE, ChartComponent, ConfirmDialogComponent, ConfirmDialogService, DEFAULT_MARKER_GRADIENTS, DEFAULT_SUPPLIER_ICON_COLORS, DEFAULT_SUPPLIER_TYPE_ICONS, DatePickerComponent, FieldsetComponent, FileUploadComponent, KnobComponent, LoadingBarComponent, LoadingDotsComponent, LoadingOverlayComponent, LoadingSpinnerComponent, ModalComponent, ModalService, NotificationComponent, NotificationService, PriceInputComponent, RailSidebarComponent, SelectComponent, ShkWizardStepContent, SidebarComponent, SkeletonComponent, TabComponent, TabPanelComponent, TableComponent, TablistComponent, TabpanelsComponent, TabsComponent, TagComponent, TextFieldComponent, TimelineComponent, ToggleComponent, TooltipComponent, WizardComponent, readThemeColors };
1465
- export type { BreadcrumbItem, BreadcrumbSeparator, ButtonIconPosition, ButtonSeverity, ButtonSize, Column, ConfirmConfig, DatePickerView, FieldsetHeaderAction, FileUploadError, FilterChangeEvent, LoadingOverlayBackdrop, ModalConfig, Notification, NotificationPosition, PageChangeEvent, RailSidebarItem, RailSidebarSection, RailSidebarSectionEvent, RowAction, SelectOption, SidebarGroup, SidebarItem, SkeletonAnimation, SkeletonShape, TableAction, TagSeverity, TimelineAction, TimelineAlignment, TimelineItem, TimelineItemAction, TimelineMarkerSize, TimelineMeta, TimelineSubItem, TimelineSubItemAction, WizardStep };
2
+ export { };