shirkasoft-ui-components 1.2.0 → 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.
- package/fesm2022/shirkasoft-ui-components-breadcrumb.mjs +199 -0
- package/fesm2022/shirkasoft-ui-components-breadcrumb.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-button.mjs +148 -0
- package/fesm2022/shirkasoft-ui-components-button.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-chart.mjs +153 -0
- package/fesm2022/shirkasoft-ui-components-chart.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-confirm-dialog.mjs +143 -0
- package/fesm2022/shirkasoft-ui-components-confirm-dialog.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-date-picker.mjs +638 -0
- package/fesm2022/shirkasoft-ui-components-date-picker.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-fieldset.mjs +94 -0
- package/fesm2022/shirkasoft-ui-components-fieldset.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-file-upload.mjs +242 -0
- package/fesm2022/shirkasoft-ui-components-file-upload.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-knob.mjs +269 -0
- package/fesm2022/shirkasoft-ui-components-knob.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-loading.mjs +255 -0
- package/fesm2022/shirkasoft-ui-components-loading.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-modal.mjs +290 -0
- package/fesm2022/shirkasoft-ui-components-modal.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-notification.mjs +143 -0
- package/fesm2022/shirkasoft-ui-components-notification.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-price-input.mjs +64 -0
- package/fesm2022/shirkasoft-ui-components-price-input.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-rail-sidebar.mjs +205 -0
- package/fesm2022/shirkasoft-ui-components-rail-sidebar.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-select.mjs +737 -0
- package/fesm2022/shirkasoft-ui-components-select.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-sidebar.mjs +185 -0
- package/fesm2022/shirkasoft-ui-components-sidebar.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-skeleton.mjs +74 -0
- package/fesm2022/shirkasoft-ui-components-skeleton.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-table.mjs +689 -0
- package/fesm2022/shirkasoft-ui-components-table.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-tabs.mjs +249 -0
- package/fesm2022/shirkasoft-ui-components-tabs.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-tag.mjs +70 -0
- package/fesm2022/shirkasoft-ui-components-tag.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-text-field.mjs +370 -0
- package/fesm2022/shirkasoft-ui-components-text-field.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-timeline.mjs +222 -0
- package/fesm2022/shirkasoft-ui-components-timeline.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-toggle.mjs +186 -0
- package/fesm2022/shirkasoft-ui-components-toggle.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-tooltip.mjs +169 -0
- package/fesm2022/shirkasoft-ui-components-tooltip.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-utils.mjs +64 -0
- package/fesm2022/shirkasoft-ui-components-utils.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components-wizard.mjs +167 -0
- package/fesm2022/shirkasoft-ui-components-wizard.mjs.map +1 -0
- package/fesm2022/shirkasoft-ui-components.mjs +0 -5729
- package/fesm2022/shirkasoft-ui-components.mjs.map +1 -1
- package/package.json +101 -1
- package/types/shirkasoft-ui-components-breadcrumb.d.ts +68 -0
- package/types/shirkasoft-ui-components-button.d.ts +59 -0
- package/types/shirkasoft-ui-components-chart.d.ts +65 -0
- package/types/shirkasoft-ui-components-confirm-dialog.d.ts +88 -0
- package/types/shirkasoft-ui-components-date-picker.d.ts +200 -0
- package/types/shirkasoft-ui-components-fieldset.d.ts +72 -0
- package/types/shirkasoft-ui-components-file-upload.d.ts +87 -0
- package/types/shirkasoft-ui-components-knob.d.ts +69 -0
- package/types/shirkasoft-ui-components-loading.d.ts +94 -0
- package/types/shirkasoft-ui-components-modal.d.ts +139 -0
- package/types/shirkasoft-ui-components-notification.d.ts +82 -0
- package/types/shirkasoft-ui-components-price-input.d.ts +41 -0
- package/types/shirkasoft-ui-components-rail-sidebar.d.ts +121 -0
- package/types/shirkasoft-ui-components-select.d.ts +182 -0
- package/types/shirkasoft-ui-components-sidebar.d.ts +106 -0
- package/types/shirkasoft-ui-components-skeleton.d.ts +36 -0
- package/types/shirkasoft-ui-components-table.d.ts +293 -0
- package/types/shirkasoft-ui-components-tabs.d.ts +102 -0
- package/types/shirkasoft-ui-components-tag.d.ts +31 -0
- package/types/shirkasoft-ui-components-text-field.d.ts +120 -0
- package/types/shirkasoft-ui-components-timeline.d.ts +178 -0
- package/types/shirkasoft-ui-components-toggle.d.ts +48 -0
- package/types/shirkasoft-ui-components-tooltip.d.ts +47 -0
- package/types/shirkasoft-ui-components-utils.d.ts +9 -0
- package/types/shirkasoft-ui-components-wizard.d.ts +101 -0
- package/types/shirkasoft-ui-components.d.ts +1 -2333
|
@@ -1,2334 +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
|
-
|
|
7
|
-
* Shirkasoft UI Components.
|
|
8
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
9
|
-
* Belongs to Shirkasoft.
|
|
10
|
-
*/
|
|
11
|
-
/**
|
|
12
|
-
* Text input (or textarea) that implements ControlValueAccessor with built-in
|
|
13
|
-
* validation messages, card/number formatting, password reveal and search mode.
|
|
14
|
-
*/
|
|
15
|
-
declare class TextFieldComponent implements ControlValueAccessor {
|
|
16
|
-
private cdr;
|
|
17
|
-
/** id attribute applied to the native input. */
|
|
18
|
-
id: _angular_core.InputSignal<string>;
|
|
19
|
-
/** Formats the value as a credit card number (XXXX-XXXX-XXXX-XXXX). */
|
|
20
|
-
formatCard: _angular_core.InputSignal<boolean>;
|
|
21
|
-
/** Blocks the minus sign from being typed. */
|
|
22
|
-
preventNegative: _angular_core.InputSignal<boolean>;
|
|
23
|
-
/** Label rendered above the field. */
|
|
24
|
-
label: _angular_core.InputSignal<string>;
|
|
25
|
-
/** Native input type ('text', 'password', 'number', etc.). */
|
|
26
|
-
type: _angular_core.InputSignal<string>;
|
|
27
|
-
/** Allows digits only, stripping any other character. */
|
|
28
|
-
numbersOnly: _angular_core.InputSignal<boolean>;
|
|
29
|
-
/** When true, allows decimals and normalizes ',' to '.'. */
|
|
30
|
-
allowDecimals: _angular_core.InputSignal<boolean>;
|
|
31
|
-
/** Maximum number of characters the user can type. */
|
|
32
|
-
maxLength: _angular_core.InputSignal<number | undefined>;
|
|
33
|
-
/** Placeholder text of the native input. */
|
|
34
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
35
|
-
/** Custom messages keyed by validation error name. */
|
|
36
|
-
errorMessages: _angular_core.InputSignal<{
|
|
37
|
-
[key: string]: string;
|
|
38
|
-
}>;
|
|
39
|
-
/** Parent reactive form used to resolve the control by label. */
|
|
40
|
-
formGroup: _angular_core.InputSignal<FormGroup<any> | undefined>;
|
|
41
|
-
/** Reactive control bound directly to this field. */
|
|
42
|
-
control: _angular_core.InputSignal<FormControl<any> | undefined>;
|
|
43
|
-
/** Disables the field. */
|
|
44
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
45
|
-
/** Custom error message shown regardless of validation errors. */
|
|
46
|
-
errorMessage: _angular_core.InputSignal<string>;
|
|
47
|
-
/** Renders a textarea instead of an input. */
|
|
48
|
-
isTextArea: _angular_core.InputSignal<boolean>;
|
|
49
|
-
/** Height classes applied when `isTextArea` is true. */
|
|
50
|
-
textAreaHeight: _angular_core.InputSignal<string>;
|
|
51
|
-
/** Renders the field as a read-only search trigger. */
|
|
52
|
-
searchMode: _angular_core.InputSignal<boolean>;
|
|
53
|
-
/** Value shown when `searchMode` is enabled. */
|
|
54
|
-
displayValue: _angular_core.InputSignal<string>;
|
|
55
|
-
/** Native autocomplete attribute. */
|
|
56
|
-
autocomplete: _angular_core.InputSignal<string>;
|
|
57
|
-
/** Emitted when the search button is clicked (search mode). */
|
|
58
|
-
searchButtonClick: _angular_core.OutputEmitterRef<void>;
|
|
59
|
-
protected readonly getIcon: (name: any) => any;
|
|
60
|
-
/** Reference to the native input element. */
|
|
61
|
-
inputElement: _angular_core.Signal<ElementRef<HTMLInputElement> | undefined>;
|
|
62
|
-
/** Reference to the native textarea element. */
|
|
63
|
-
textareaElement: _angular_core.Signal<ElementRef<HTMLTextAreaElement> | undefined>;
|
|
64
|
-
/** Internal raw value of the field. */
|
|
65
|
-
private _value;
|
|
66
|
-
/** Reactive disabled state from the form control. */
|
|
67
|
-
private _disabledState;
|
|
68
|
-
/** Whether the password is currently revealed. */
|
|
69
|
-
showPassword: _angular_core.WritableSignal<boolean>;
|
|
70
|
-
/** Tracks whether the control was in error at some point (for "was fixed" UX). */
|
|
71
|
-
hadError: _angular_core.WritableSignal<boolean>;
|
|
72
|
-
/** Counter bumped to trigger recomputation of derived error signals. */
|
|
73
|
-
private errorTracker;
|
|
74
|
-
/** Text displayed in search mode when `displayValue` is set. */
|
|
75
|
-
displayLabel: _angular_core.Signal<string>;
|
|
76
|
-
/** Prevents re-subscribing to the same form control. */
|
|
77
|
-
private subscribed;
|
|
78
|
-
/** Effective disabled state combining the input and the form binding. */
|
|
79
|
-
isDisabled: _angular_core.Signal<boolean>;
|
|
80
|
-
/** Current field value. */
|
|
81
|
-
value: _angular_core.Signal<any>;
|
|
82
|
-
/** Resolves the reactive control: explicit `control` or `formGroup.get(label)`. */
|
|
83
|
-
actualControl: _angular_core.Signal<FormControl<any> | undefined>;
|
|
84
|
-
/** True when the resolved control is invalid and dirty or touched. */
|
|
85
|
-
shouldShowError: _angular_core.Signal<boolean | undefined>;
|
|
86
|
-
/** True when the control had an error before and is now valid (success state). */
|
|
87
|
-
wasFixedError: _angular_core.Signal<boolean | undefined>;
|
|
88
|
-
/** Resolved list of error messages for the current control state. */
|
|
89
|
-
getErrorMessages: _angular_core.Signal<string[]>;
|
|
90
|
-
/** Effective input type (handles textarea and password reveal). */
|
|
91
|
-
effectiveType: _angular_core.Signal<string>;
|
|
92
|
-
private transloco;
|
|
93
|
-
/** Callback notified with the new value (ControlValueAccessor). */
|
|
94
|
-
private onChange;
|
|
95
|
-
/** Callback notified when the field is touched (ControlValueAccessor). */
|
|
96
|
-
private onTouched;
|
|
97
|
-
private destroyRef;
|
|
98
|
-
constructor();
|
|
99
|
-
/** Prevents disallowed characters based on the `numbersOnly`/`allowDecimals` config. */
|
|
100
|
-
numberValidation(event: KeyboardEvent): void;
|
|
101
|
-
/** Marks the field as touched and refreshes the error state. */
|
|
102
|
-
onBlur(): void;
|
|
103
|
-
/** Formats the raw input as a credit card number and notifies the control. */
|
|
104
|
-
onCardInput(event: Event): void;
|
|
105
|
-
/** Handles raw input: applies number/card/max-length formatting and notifies the control. */
|
|
106
|
-
onInput(event: Event): void;
|
|
107
|
-
/** Toggles the visibility of a password field. */
|
|
108
|
-
togglePasswordVisibility(): void;
|
|
109
|
-
/** Sets the value from the form control applying the same formatting rules. */
|
|
110
|
-
writeValue(value: any): void;
|
|
111
|
-
/** Registers the callback invoked on value changes (ControlValueAccessor). */
|
|
112
|
-
registerOnChange(fn: any): void;
|
|
113
|
-
/** Registers the callback invoked when the field is touched. */
|
|
114
|
-
registerOnTouched(fn: any): void;
|
|
115
|
-
/** Reflects the disabled state of the form control. */
|
|
116
|
-
setDisabledState(isDisabled: boolean): void;
|
|
117
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TextFieldComponent, never>;
|
|
118
|
-
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>;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Shirkasoft UI Components.
|
|
123
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
124
|
-
* Belongs to Shirkasoft.
|
|
125
|
-
*/
|
|
126
|
-
/** Toast-style notification entry. */
|
|
127
|
-
interface Notification {
|
|
128
|
-
id: string;
|
|
129
|
-
message: string;
|
|
130
|
-
type: 'success' | 'error' | 'warning' | 'info';
|
|
131
|
-
/** Current progress 0-100 when `showProgress` is true. */
|
|
132
|
-
progress?: number;
|
|
133
|
-
/** Whether the notification renders a progress indicator. */
|
|
134
|
-
showProgress?: boolean;
|
|
135
|
-
}
|
|
136
|
-
/**
|
|
137
|
-
* Central notification store. Components push/update/remove notifications
|
|
138
|
-
* reactively through signals for the notification component to render.
|
|
139
|
-
*/
|
|
140
|
-
declare class NotificationService {
|
|
141
|
-
/** Reactive list of visible notifications. */
|
|
142
|
-
private notificationsSignal;
|
|
143
|
-
/** Monotonic id counter for new notifications. */
|
|
144
|
-
private currentId;
|
|
145
|
-
/** Readonly reactive list of visible notifications. */
|
|
146
|
-
notifications: _angular_core.Signal<Notification[]>;
|
|
147
|
-
/**
|
|
148
|
-
* Adds a notification and returns its id. When `showProgress` is false and
|
|
149
|
-
* `duration` is positive, it auto-removes after that many ms.
|
|
150
|
-
*/
|
|
151
|
-
addNotification(message: string, type?: Notification['type'], showProgress?: boolean, duration?: number): string;
|
|
152
|
-
/** Updates a progress notification; auto-removes when progress hits 100. */
|
|
153
|
-
updateProgress(notificationId: string, progress: number): void;
|
|
154
|
-
/** Removes the given notification. */
|
|
155
|
-
removeNotification(notification: Notification): void;
|
|
156
|
-
/** Removes the notification with the given id. */
|
|
157
|
-
removeNotificationById(notificationId: string): void;
|
|
158
|
-
/** Removes every visible notification. */
|
|
159
|
-
clearAll(): void;
|
|
160
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationService, never>;
|
|
161
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<NotificationService>;
|
|
162
|
-
}
|
|
163
|
-
|
|
164
|
-
type NotificationPosition = 'center-top' | 'right-top' | 'left-top';
|
|
165
|
-
/**
|
|
166
|
-
* Shirkasoft UI Components.
|
|
167
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
168
|
-
* Belongs to Shirkasoft.
|
|
169
|
-
*/
|
|
170
|
-
/**
|
|
171
|
-
* Toast notification host that renders the notifications pushed through the
|
|
172
|
-
* NotificationService in the configured position.
|
|
173
|
-
*/
|
|
174
|
-
declare class NotificationComponent {
|
|
175
|
-
/** Position of the notification stack: center, right or left top. */
|
|
176
|
-
position: _angular_core.InputSignal<NotificationPosition>;
|
|
177
|
-
private notificationService;
|
|
178
|
-
protected getIcon: (name: any) => any;
|
|
179
|
-
/** Maps each notification type to its internal icon name. */
|
|
180
|
-
private readonly iconMap;
|
|
181
|
-
/** Resolves the icon name for a notification type. */
|
|
182
|
-
getNotificationIcon(type: string): string;
|
|
183
|
-
/** Live list of active notifications. */
|
|
184
|
-
notifications: _angular_core.Signal<Notification[]>;
|
|
185
|
-
/** Notifications sorted with the newest first. */
|
|
186
|
-
sortedNotifications: _angular_core.Signal<Notification[]>;
|
|
187
|
-
/** Removes a notification through the service. */
|
|
188
|
-
removeNotification(notification: Notification): void;
|
|
189
|
-
/** Rounds the progress value of a notification. */
|
|
190
|
-
roundProgress(progress: number | undefined): number;
|
|
191
|
-
/** Whether there are notifications to show. */
|
|
192
|
-
hasNotifications: _angular_core.Signal<boolean>;
|
|
193
|
-
/** CSS classes positioning the stack according to `position`. */
|
|
194
|
-
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">;
|
|
195
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<NotificationComponent, never>;
|
|
196
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<NotificationComponent, "shk-notification", never, { "position": { "alias": "position"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
197
|
-
}
|
|
198
|
-
|
|
199
|
-
/**
|
|
200
|
-
* Shirkasoft UI Components.
|
|
201
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
202
|
-
* Belongs to Shirkasoft.
|
|
203
|
-
*/
|
|
204
|
-
/**
|
|
205
|
-
* Switch / checkbox component that implements ControlValueAccessor so it can
|
|
206
|
-
* be used with reactive and template-driven forms.
|
|
207
|
-
*/
|
|
208
|
-
declare class ToggleComponent implements ControlValueAccessor {
|
|
209
|
-
/** Text displayed next to the control. */
|
|
210
|
-
label: _angular_core.InputSignal<string>;
|
|
211
|
-
/** Visual style: 'toggle' (switch) or 'checkbox'. Defaults to 'toggle'. */
|
|
212
|
-
mode: _angular_core.InputSignal<"toggle" | "checkbox">;
|
|
213
|
-
/** Manually controlled checked state (supports one-way binding). */
|
|
214
|
-
checked: _angular_core.InputSignal<boolean | undefined>;
|
|
215
|
-
/** Emitted with the new value when the user toggles the control. */
|
|
216
|
-
checkedChange: _angular_core.OutputEmitterRef<boolean>;
|
|
217
|
-
/** Internal controlled/reactive value. */
|
|
218
|
-
_value: _angular_core.WritableSignal<boolean>;
|
|
219
|
-
/** Reactive disabled state. */
|
|
220
|
-
_disabled: _angular_core.WritableSignal<boolean>;
|
|
221
|
-
/** Callback notified with the new value on change (ControlValueAccessor). */
|
|
222
|
-
private onChange;
|
|
223
|
-
/** Callback notified when the control loses focus or is touched. */
|
|
224
|
-
private onTouched;
|
|
225
|
-
constructor();
|
|
226
|
-
/** Sets the value from the form control. */
|
|
227
|
-
writeValue(value: any): void;
|
|
228
|
-
/** Registers the callback invoked on value changes (ControlValueAccessor). */
|
|
229
|
-
registerOnChange(fn: any): void;
|
|
230
|
-
/** Registers the callback invoked when the control is touched. */
|
|
231
|
-
registerOnTouched(fn: any): void;
|
|
232
|
-
/** Reflects the disabled state of the form control. */
|
|
233
|
-
setDisabledState(isDisabled: boolean): void;
|
|
234
|
-
/**
|
|
235
|
-
* Inverts the current value (unless disabled), notifies the form control,
|
|
236
|
-
* marks the control as touched and emits `checkedChange`.
|
|
237
|
-
*/
|
|
238
|
-
toggle(): void;
|
|
239
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToggleComponent, never>;
|
|
240
|
-
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>;
|
|
241
|
-
}
|
|
242
|
-
|
|
243
|
-
/**
|
|
244
|
-
* Shirkasoft UI Components.
|
|
245
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
246
|
-
* Belongs to Shirkasoft.
|
|
247
|
-
*/
|
|
248
|
-
/**
|
|
249
|
-
* Numeric input tailored for currency values with a optional percentage mode.
|
|
250
|
-
* Uses two-way bindable models: `value` and `isPercentage`.
|
|
251
|
-
*/
|
|
252
|
-
declare class PriceInputComponent {
|
|
253
|
-
/** Numeric value, bindable with [(value)]. */
|
|
254
|
-
value: _angular_core.ModelSignal<number>;
|
|
255
|
-
/** Whether the input works as a percentage, bindable with [(isPercentage)]. */
|
|
256
|
-
isPercentage: _angular_core.ModelSignal<boolean>;
|
|
257
|
-
/** Label displayed above the field. */
|
|
258
|
-
label: _angular_core.InputSignal<string>;
|
|
259
|
-
/** id attribute applied to the native input. */
|
|
260
|
-
inputId: _angular_core.InputSignal<string>;
|
|
261
|
-
/** Marks the field as required. */
|
|
262
|
-
required: _angular_core.InputSignal<boolean>;
|
|
263
|
-
/** Disables the input. */
|
|
264
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
265
|
-
/** Minimum allowed value. */
|
|
266
|
-
min: _angular_core.InputSignal<number>;
|
|
267
|
-
/** Maximum allowed value. */
|
|
268
|
-
max: _angular_core.InputSignal<number>;
|
|
269
|
-
/** Shows the error styling on the field. */
|
|
270
|
-
showError: _angular_core.InputSignal<boolean>;
|
|
271
|
-
/** Message rendered when the field is in error state. */
|
|
272
|
-
errorMessage: _angular_core.InputSignal<string>;
|
|
273
|
-
/** Toggles between amount and percentage modes (unless disabled). */
|
|
274
|
-
toggleMode(): void;
|
|
275
|
-
/** Parses the user input and updates the bound `value`. */
|
|
276
|
-
onInput(event: Event): void;
|
|
277
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<PriceInputComponent, never>;
|
|
278
|
-
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>;
|
|
279
|
-
}
|
|
280
|
-
|
|
281
|
-
/** Which granularity the picker edits: a day, a month or a year. */
|
|
282
|
-
type DatePickerView = 'date' | 'month' | 'year';
|
|
283
|
-
/**
|
|
284
|
-
* Shirkasoft UI Components.
|
|
285
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
286
|
-
* Belongs to Shirkasoft.
|
|
287
|
-
*/
|
|
288
|
-
/**
|
|
289
|
-
* Date/time picker implemented as a ControlValueAccessor. Supports choosing a
|
|
290
|
-
* day, month or year, optional time selection (with seconds/12-hour format),
|
|
291
|
-
* min/max constraints and locale-aware labels.
|
|
292
|
-
*/
|
|
293
|
-
declare class DatePickerComponent implements ControlValueAccessor {
|
|
294
|
-
private elementRef;
|
|
295
|
-
private cdr;
|
|
296
|
-
private destroyRef;
|
|
297
|
-
private transloco;
|
|
298
|
-
/** HTML id for the input (for label/for pairing). */
|
|
299
|
-
id: _angular_core.InputSignal<string>;
|
|
300
|
-
/** Granularity of the picker ('date' | 'month' | 'year'). */
|
|
301
|
-
view: _angular_core.InputSignal<DatePickerView>;
|
|
302
|
-
/** Label shown above the input. */
|
|
303
|
-
label: _angular_core.InputSignal<string>;
|
|
304
|
-
/** Placeholder of the input. */
|
|
305
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
306
|
-
/** FormGroup used to resolve the control from `label`. */
|
|
307
|
-
formGroup: _angular_core.InputSignal<FormGroup<any> | undefined>;
|
|
308
|
-
/** Directly bound FormControl. */
|
|
309
|
-
control: _angular_core.InputSignal<FormControl<any> | undefined>;
|
|
310
|
-
/** Disables the picker. */
|
|
311
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
312
|
-
/** Custom error message displayed (overrides translated ones). */
|
|
313
|
-
errorMessage: _angular_core.InputSignal<string>;
|
|
314
|
-
/** Per-validation-key custom error messages. */
|
|
315
|
-
errorMessages: _angular_core.InputSignal<{
|
|
316
|
-
[key: string]: string;
|
|
317
|
-
}>;
|
|
318
|
-
/** Minimum allowed date (YYYY-MM-DD) or year/month string. */
|
|
319
|
-
minValue: _angular_core.InputSignal<string>;
|
|
320
|
-
/** Maximum allowed date (YYYY-MM-DD) or year/month string. */
|
|
321
|
-
maxValue: _angular_core.InputSignal<string>;
|
|
322
|
-
/** Locale used for month/day names and formatted labels. */
|
|
323
|
-
locale: _angular_core.InputSignal<string>;
|
|
324
|
-
/** Edits only the time portion of the value. */
|
|
325
|
-
timeOnly: _angular_core.InputSignal<boolean>;
|
|
326
|
-
/** Shows the time selectors alongside the date. */
|
|
327
|
-
showTime: _angular_core.InputSignal<boolean>;
|
|
328
|
-
/** Hour format: '12' or '24'. */
|
|
329
|
-
hourFormat: _angular_core.InputSignal<"12" | "24">;
|
|
330
|
-
/** Whether the seconds selector is shown. */
|
|
331
|
-
showSeconds: _angular_core.InputSignal<boolean>;
|
|
332
|
-
/** Step (in minutes) for the minute selector. */
|
|
333
|
-
minuteStep: _angular_core.InputSignal<number>;
|
|
334
|
-
/** Whether the dropdown calendar is open. */
|
|
335
|
-
isOpen: _angular_core.WritableSignal<boolean>;
|
|
336
|
-
/** Year currently displayed in the calendar. */
|
|
337
|
-
viewYear: _angular_core.WritableSignal<number>;
|
|
338
|
-
/** Month currently displayed in the calendar (0-based). */
|
|
339
|
-
viewMonth: _angular_core.WritableSignal<number>;
|
|
340
|
-
/** Starting year of the decade shown in year view. */
|
|
341
|
-
viewDecade: _angular_core.WritableSignal<number>;
|
|
342
|
-
/** Hour selected in the time selectors. */
|
|
343
|
-
viewHour: _angular_core.WritableSignal<number>;
|
|
344
|
-
/** Minute selected in the time selectors. */
|
|
345
|
-
viewMinute: _angular_core.WritableSignal<number>;
|
|
346
|
-
/** Second selected in the time selectors. */
|
|
347
|
-
viewSecond: _angular_core.WritableSignal<number>;
|
|
348
|
-
/** Meridiem selected in 12-hour format. */
|
|
349
|
-
viewMeridiem: _angular_core.WritableSignal<"AM" | "PM">;
|
|
350
|
-
/** Date part selected but not yet committed until the time is confirmed. */
|
|
351
|
-
private pendingDate;
|
|
352
|
-
/** Underlying value (mirrors the reactive control). */
|
|
353
|
-
private _value;
|
|
354
|
-
/** Disabled state coming from the reactive form infrastructure. */
|
|
355
|
-
private _disabledState;
|
|
356
|
-
/** Whether status subscriptions have been attached to the control. */
|
|
357
|
-
private subscribed;
|
|
358
|
-
private valueSubscribed;
|
|
359
|
-
/** Counter used to recompute the error helpers reactively. */
|
|
360
|
-
private errorTracker;
|
|
361
|
-
/** Whether an error was displayed at some point. */
|
|
362
|
-
hadError: _angular_core.WritableSignal<boolean>;
|
|
363
|
-
/** ControlValueAccessor callbacks. */
|
|
364
|
-
private onChange;
|
|
365
|
-
private onTouched;
|
|
366
|
-
/** Current value of the picker. */
|
|
367
|
-
value: _angular_core.Signal<string | null>;
|
|
368
|
-
/** Whether the picker is disabled (input or reactive form). */
|
|
369
|
-
isDisabled: _angular_core.Signal<boolean>;
|
|
370
|
-
/** Resolves the control from `control` input or `formGroup`+`label`. */
|
|
371
|
-
actualControl: _angular_core.Signal<FormControl<any> | undefined>;
|
|
372
|
-
/** Whether the bound control should show its error message. */
|
|
373
|
-
shouldShowError: _angular_core.Signal<boolean | undefined>;
|
|
374
|
-
/** Whether an error was fixed (invalid before, now valid and touched). */
|
|
375
|
-
wasFixedError: _angular_core.Signal<boolean | undefined>;
|
|
376
|
-
/** Validation error messages to display, custom or translated. */
|
|
377
|
-
getErrorMessages: _angular_core.Signal<string[]>;
|
|
378
|
-
/** Date part displayed in the calendar (pending date or committed value). */
|
|
379
|
-
displayedDate: _angular_core.Signal<string | null>;
|
|
380
|
-
/** Human-readable label for the selected value in the input. */
|
|
381
|
-
displayLabel: _angular_core.Signal<string>;
|
|
382
|
-
/** Localized short month names for the year view. */
|
|
383
|
-
monthNames: _angular_core.Signal<string[]>;
|
|
384
|
-
/** Localized short weekday names for the calendar header. */
|
|
385
|
-
dayNames: _angular_core.Signal<string[]>;
|
|
386
|
-
/** Number of days in the currently viewed month. */
|
|
387
|
-
daysInMonth: _angular_core.Signal<number>;
|
|
388
|
-
/** Weekday index (0=Sunday) of the first day of the viewed month. */
|
|
389
|
-
firstDayOfMonth: _angular_core.Signal<number>;
|
|
390
|
-
/** Calendar grid: nulls for leading blanks then the days of the month. */
|
|
391
|
-
calendarDays: _angular_core.Signal<(number | null)[]>;
|
|
392
|
-
/** Whether the prev navigation button is allowed by `minValue`. */
|
|
393
|
-
canGoPrev: _angular_core.Signal<boolean>;
|
|
394
|
-
/** Whether the next navigation button is allowed by `maxValue`. */
|
|
395
|
-
canGoNext: _angular_core.Signal<boolean>;
|
|
396
|
-
/** Year of the displayed date, if any. */
|
|
397
|
-
selectedYear: _angular_core.Signal<number | null>;
|
|
398
|
-
/** Month index (0-based) of the displayed date, if any. */
|
|
399
|
-
selectedMonth: _angular_core.Signal<number | null>;
|
|
400
|
-
/** Day of the displayed date, if any (date view only). */
|
|
401
|
-
selectedDay: _angular_core.Signal<number | null>;
|
|
402
|
-
/** 12 years of the viewed decade for the year view. */
|
|
403
|
-
decadeYears: _angular_core.Signal<number[]>;
|
|
404
|
-
/** (Unused legacy placeholder) plain year list. */
|
|
405
|
-
years: number[];
|
|
406
|
-
constructor();
|
|
407
|
-
/** Closes the dropdown when clicking outside the component. */
|
|
408
|
-
onDocumentClick(event: MouseEvent): void;
|
|
409
|
-
/** Closes the dropdown on Escape. */
|
|
410
|
-
onEscape(): void;
|
|
411
|
-
/** Opens/closes the dropdown, syncing the calendar to the current value. */
|
|
412
|
-
toggle(): void;
|
|
413
|
-
/** Aligns the calendar view signals with the current value (or today). */
|
|
414
|
-
private syncViewToValue;
|
|
415
|
-
/** Closes the dropdown, marks the control as touched and refreshes errors. */
|
|
416
|
-
close(): void;
|
|
417
|
-
/** Navigates the calendar to the previous year/month/decade. */
|
|
418
|
-
prev(): void;
|
|
419
|
-
/** Navigates the calendar to the next year/month/decade. */
|
|
420
|
-
next(): void;
|
|
421
|
-
/** Selects a day of the month (pending if time is shown). */
|
|
422
|
-
selectDay(day: number): void;
|
|
423
|
-
/** Selects a month of the year (pending if time is shown). */
|
|
424
|
-
selectMonth(monthIndex: number): void;
|
|
425
|
-
/** Selects a year (pending if time is shown). */
|
|
426
|
-
selectYear(year: number): void;
|
|
427
|
-
/** Commits a value, updates the component, the control and the outputs. */
|
|
428
|
-
private setValue;
|
|
429
|
-
/** Confirms the selected time and commits the combined date+time value. */
|
|
430
|
-
confirmTime(): void;
|
|
431
|
-
/** Reads the hour selected in the time selector. */
|
|
432
|
-
onHourChange(event: Event): void;
|
|
433
|
-
/** Reads the minute selected in the time selector. */
|
|
434
|
-
onMinuteChange(event: Event): void;
|
|
435
|
-
/** Reads the second selected in the time selector. */
|
|
436
|
-
onSecondChange(event: Event): void;
|
|
437
|
-
/** Current meridiem ("AM"/"PM") for the 12-hour format. */
|
|
438
|
-
meridiem(): 'AM' | 'PM';
|
|
439
|
-
/** Reads the meridiem selected in the time selector. */
|
|
440
|
-
onMeridiemChange(event: Event): void;
|
|
441
|
-
/** Splits the date part from a full ISO "date" or "dateTtime" value. */
|
|
442
|
-
private datePartOf;
|
|
443
|
-
/** Formats a raw time string ("HH:mm[:ss]") using the configured format. */
|
|
444
|
-
private formatTimeFromValue;
|
|
445
|
-
/** Formats hour/minute/second according to hour format and seconds option. */
|
|
446
|
-
private formatTime;
|
|
447
|
-
/** Formats a Date as a YYYY-MM-DD ISO string. */
|
|
448
|
-
private toISODate;
|
|
449
|
-
/** Whether the given day matches the currently selected date. */
|
|
450
|
-
isSelectedDay(day: number): boolean;
|
|
451
|
-
/** Hours available in the time selector ('12' maps to 0..11 or 12..23). */
|
|
452
|
-
hoursRange(): number[];
|
|
453
|
-
/** Minutes available in the time selector, stepped by `minuteStep`. */
|
|
454
|
-
minutesRange(): number[];
|
|
455
|
-
/** Seconds available in the time selector (0..59). */
|
|
456
|
-
secondsRange(): number[];
|
|
457
|
-
/** Formats an hour for display in the selector (12-hour aware). */
|
|
458
|
-
hourDisplay(hour: number): string;
|
|
459
|
-
/** Pads a minute value with a leading zero. */
|
|
460
|
-
minutesLabel(value: number): string;
|
|
461
|
-
/** Whether the given day is today's date. */
|
|
462
|
-
isToday(day: number): boolean;
|
|
463
|
-
/** Whether the given month matches the selected month and year. */
|
|
464
|
-
isSelectedMonth(monthIndex: number): boolean;
|
|
465
|
-
isCurrentMonth(monthIndex: number): boolean;
|
|
466
|
-
isSelectedYear(year: number): boolean;
|
|
467
|
-
isCurrentYear(year: number): boolean;
|
|
468
|
-
writeValue(value: any): void;
|
|
469
|
-
registerOnChange(fn: any): void;
|
|
470
|
-
registerOnTouched(fn: any): void;
|
|
471
|
-
setDisabledState(isDisabled: boolean): void;
|
|
472
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<DatePickerComponent, never>;
|
|
473
|
-
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; }; "timeOnly": { "alias": "timeOnly"; "required": false; "isSignal": true; }; "showTime": { "alias": "showTime"; "required": false; "isSignal": true; }; "hourFormat": { "alias": "hourFormat"; "required": false; "isSignal": true; }; "showSeconds": { "alias": "showSeconds"; "required": false; "isSignal": true; }; "minuteStep": { "alias": "minuteStep"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
474
|
-
}
|
|
475
|
-
|
|
476
|
-
/**
|
|
477
|
-
* Shirkasoft UI Components.
|
|
478
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
479
|
-
* Belongs to Shirkasoft.
|
|
480
|
-
*/
|
|
481
|
-
/**
|
|
482
|
-
* Confirmation dialog opened via `show()` which resolves a Promise<boolean>
|
|
483
|
-
* with the user's choice.
|
|
484
|
-
*/
|
|
485
|
-
declare class ConfirmDialogComponent implements OnDestroy {
|
|
486
|
-
protected getIcon: (name: any) => any;
|
|
487
|
-
/** Title shown in the dialog header. */
|
|
488
|
-
title: _angular_core.InputSignal<string>;
|
|
489
|
-
/** Message body of the dialog. */
|
|
490
|
-
message: _angular_core.InputSignal<string>;
|
|
491
|
-
/** Label of the confirm button. */
|
|
492
|
-
confirmLabel: _angular_core.InputSignal<string>;
|
|
493
|
-
/** Label of the cancel button. */
|
|
494
|
-
cancelLabel: _angular_core.InputSignal<string>;
|
|
495
|
-
/** Text shown on the confirm button while `loading` is true. */
|
|
496
|
-
loadingText: _angular_core.InputSignal<string>;
|
|
497
|
-
/** Visual style: 'danger', 'info' or 'warning'. */
|
|
498
|
-
type: _angular_core.InputSignal<"info" | "warning" | "danger">;
|
|
499
|
-
/** Shows a spinner and disables the confirm button. */
|
|
500
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
501
|
-
/** Whether the cancel button is shown. */
|
|
502
|
-
showCancel: _angular_core.InputSignal<boolean>;
|
|
503
|
-
/** Controls dialog visibility. */
|
|
504
|
-
visible: _angular_core.WritableSignal<boolean>;
|
|
505
|
-
/** Resolver of the currently pending confirmation promise. */
|
|
506
|
-
private resolveRef;
|
|
507
|
-
/** Emitted whenever the dialog is closed (confirm or cancel). */
|
|
508
|
-
closed: _angular_core.OutputEmitterRef<void>;
|
|
509
|
-
/** Opens the dialog and returns a promise resolving with the user choice. */
|
|
510
|
-
show(): Promise<boolean>;
|
|
511
|
-
/** Resolves with `true` when the user confirms. */
|
|
512
|
-
onConfirm(): void;
|
|
513
|
-
/** Resolves with `false` when the user cancels. */
|
|
514
|
-
onCancel(): void;
|
|
515
|
-
/** Clears the pending resolver on destroy. */
|
|
516
|
-
ngOnDestroy(): void;
|
|
517
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmDialogComponent, never>;
|
|
518
|
-
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>;
|
|
519
|
-
}
|
|
520
|
-
|
|
521
|
-
/**
|
|
522
|
-
* Shirkasoft UI Components.
|
|
523
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
524
|
-
* Belongs to Shirkasoft.
|
|
525
|
-
*/
|
|
526
|
-
/** Options for opening a confirmation dialog. */
|
|
527
|
-
interface ConfirmConfig {
|
|
528
|
-
title?: string;
|
|
529
|
-
message: string;
|
|
530
|
-
confirmLabel?: string;
|
|
531
|
-
cancelLabel?: string;
|
|
532
|
-
loadingText?: string;
|
|
533
|
-
type?: 'danger' | 'info' | 'warning';
|
|
534
|
-
showCancel?: boolean;
|
|
535
|
-
loading?: boolean;
|
|
536
|
-
}
|
|
537
|
-
/**
|
|
538
|
-
* Programmatically opens the confirmation dialog and resolves a Promise
|
|
539
|
-
* with the user's decision (true = confirm, false = cancel).
|
|
540
|
-
*/
|
|
541
|
-
declare class ConfirmDialogService {
|
|
542
|
-
/** Reference to the currently open dialog, if any. */
|
|
543
|
-
private dialogRef;
|
|
544
|
-
private destroyRef;
|
|
545
|
-
private appRef;
|
|
546
|
-
private injector;
|
|
547
|
-
constructor();
|
|
548
|
-
/**
|
|
549
|
-
* Opens a confirmation dialog with the given configuration and returns a
|
|
550
|
-
* promise resolving with the user's choice.
|
|
551
|
-
*/
|
|
552
|
-
confirm(config: ConfirmConfig): Promise<boolean>;
|
|
553
|
-
/** Detaches and destroys the mounted dialog if present. */
|
|
554
|
-
private cleanupDialog;
|
|
555
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ConfirmDialogService, never>;
|
|
556
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ConfirmDialogService>;
|
|
557
|
-
}
|
|
558
|
-
|
|
559
|
-
/**
|
|
560
|
-
* Shirkasoft UI Components.
|
|
561
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
562
|
-
* Belongs to Shirkasoft.
|
|
563
|
-
*/
|
|
564
|
-
/** Options for opening a modal through the service. */
|
|
565
|
-
interface ModalConfig {
|
|
566
|
-
/** Title shown in the modal header. */
|
|
567
|
-
title: string;
|
|
568
|
-
/** Component rendered inside the modal body. */
|
|
569
|
-
component: Type<any>;
|
|
570
|
-
/** Data passed to the modal component via inputs. */
|
|
571
|
-
data?: Record<string, any>;
|
|
572
|
-
/** Modal width (CSS value). */
|
|
573
|
-
width?: string;
|
|
574
|
-
/** Whether the accept/cancel buttons are shown. */
|
|
575
|
-
showButtons?: boolean;
|
|
576
|
-
/** Whether the expand (fullscreen) button is shown. */
|
|
577
|
-
showExpandButton?: boolean;
|
|
578
|
-
/** Label of the accept button. */
|
|
579
|
-
acceptLabel?: string;
|
|
580
|
-
/** Label of the cancel button. */
|
|
581
|
-
cancelLabel?: string;
|
|
582
|
-
/** Optional callback invoked when the modal closes. */
|
|
583
|
-
onClose?: () => void;
|
|
584
|
-
}
|
|
585
|
-
/**
|
|
586
|
-
* Global modal manager. Opens modals on a stack, exposing reactive access to
|
|
587
|
-
* the current modal and the top-most opened config.
|
|
588
|
-
*/
|
|
589
|
-
declare class ModalService {
|
|
590
|
-
/** Stack of open modals (top-most renders on top). */
|
|
591
|
-
private stackSignal;
|
|
592
|
-
/** Counter emitted on each close, used to trigger close animations. */
|
|
593
|
-
private closeRequestSignal;
|
|
594
|
-
private router;
|
|
595
|
-
private destroyRef;
|
|
596
|
-
constructor();
|
|
597
|
-
/** Reactive list of open modals. */
|
|
598
|
-
modalStack: _angular_core.Signal<ModalConfig[]>;
|
|
599
|
-
/** Top-most modal on the stack, or null. */
|
|
600
|
-
currentModal: _angular_core.Signal<ModalConfig | null>;
|
|
601
|
-
/** Reactive close-request counter. */
|
|
602
|
-
closeRequest: _angular_core.Signal<number>;
|
|
603
|
-
/** Opens a new modal on top of the stack. */
|
|
604
|
-
open(config: ModalConfig): void;
|
|
605
|
-
/** Alias of `close()` used by the accept button. */
|
|
606
|
-
accept(): void;
|
|
607
|
-
/** Closes the top-most modal, invoking its onClose callback. */
|
|
608
|
-
close(): void;
|
|
609
|
-
/** Closes all open modals at once. */
|
|
610
|
-
clear(): void;
|
|
611
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalService, never>;
|
|
612
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<ModalService>;
|
|
613
|
-
}
|
|
614
|
-
|
|
615
|
-
/**
|
|
616
|
-
* Shirkasoft UI Components.
|
|
617
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
618
|
-
* Belongs to Shirkasoft.
|
|
619
|
-
*/
|
|
620
|
-
/**
|
|
621
|
-
* Modal dialog that renders a dynamically loaded component, tracks its
|
|
622
|
-
* form validity and submit outputs, and delegates accept/cancel to the
|
|
623
|
-
* shared ModalService.
|
|
624
|
-
*/
|
|
625
|
-
declare class ModalComponent {
|
|
626
|
-
protected getIcon: (name: any) => any;
|
|
627
|
-
private notificationSrv;
|
|
628
|
-
private destroyRef;
|
|
629
|
-
private modalSrv;
|
|
630
|
-
private transloco;
|
|
631
|
-
private cdr;
|
|
632
|
-
/** Reference where the dynamic content is rendered. */
|
|
633
|
-
container: _angular_core.Signal<ViewContainerRef | undefined>;
|
|
634
|
-
/** Configuration of the modal currently open (from the service). */
|
|
635
|
-
currentConfig: _angular_core.WritableSignal<ModalConfig | null>;
|
|
636
|
-
/** Modal title. */
|
|
637
|
-
title: _angular_core.WritableSignal<string>;
|
|
638
|
-
/** Whether the modal is visible. */
|
|
639
|
-
visible: _angular_core.WritableSignal<boolean>;
|
|
640
|
-
/** Generic loading flag for the footer actions. */
|
|
641
|
-
loading: _angular_core.WritableSignal<boolean>;
|
|
642
|
-
/** Whether the accept action is being processed. */
|
|
643
|
-
isProcessing: _angular_core.WritableSignal<boolean>;
|
|
644
|
-
/** Whether the modal is currently expanded to fullscreen. */
|
|
645
|
-
isExpanded: _angular_core.WritableSignal<boolean>;
|
|
646
|
-
/** True when the dynamic component reports a valid form. */
|
|
647
|
-
isFormValid: _angular_core.WritableSignal<boolean>;
|
|
648
|
-
/** Reference to the dynamically created component. */
|
|
649
|
-
componentRef: ComponentRef<any> | null;
|
|
650
|
-
/** Subscriptions to the dynamic component outputs. */
|
|
651
|
-
private subscriptions;
|
|
652
|
-
/** Width of the modal (fullscreen when expanded). */
|
|
653
|
-
computedModalWidth: _angular_core.Signal<string>;
|
|
654
|
-
/** Whether the footer buttons should be rendered. */
|
|
655
|
-
modalButtonsVisible: _angular_core.Signal<boolean>;
|
|
656
|
-
/** Whether the expand/fullscreen button is shown. */
|
|
657
|
-
showExpandButton: _angular_core.Signal<boolean>;
|
|
658
|
-
/** Resolved cancel button label. */
|
|
659
|
-
cancelLabel: _angular_core.Signal<string>;
|
|
660
|
-
/** Resolved accept button label. */
|
|
661
|
-
acceptLabel: _angular_core.Signal<string>;
|
|
662
|
-
constructor();
|
|
663
|
-
/** Updates visibility when the backdrop/close controls change. */
|
|
664
|
-
onVisibleChange(show: boolean): void;
|
|
665
|
-
/** Creates the dynamic component and wires its form/submit outputs. */
|
|
666
|
-
private loadComponent;
|
|
667
|
-
/** Subscribes to a dynamic component output if it exists. */
|
|
668
|
-
private subscribeToOutput;
|
|
669
|
-
/** Finalizes the submit flow, accepting the modal on success. */
|
|
670
|
-
private handleSubmit;
|
|
671
|
-
/** Closes the modal, calling the dynamic component's `handleCancel` if any. */
|
|
672
|
-
closeModal(): void;
|
|
673
|
-
/** Performs the actual close sequence and cleanup. */
|
|
674
|
-
doClose(): void;
|
|
675
|
-
/** Toggles between normal width and fullscreen. */
|
|
676
|
-
toggleExpand(): void;
|
|
677
|
-
/** Validates the dynamic component form and triggers its `onSubmit`. */
|
|
678
|
-
onAccept(): void;
|
|
679
|
-
/** Resolves the dynamic component's form (property or getter function). */
|
|
680
|
-
private getForm;
|
|
681
|
-
/** Recursively checks for real validation errors (ignoring 'warning'). */
|
|
682
|
-
private hasRealErrors;
|
|
683
|
-
/** Marks a form (and all its descendants) as touched. */
|
|
684
|
-
private markAllAsTouched;
|
|
685
|
-
/** True when the component exposes both `onSubmit` and a `form`. */
|
|
686
|
-
private isDynamicComponent;
|
|
687
|
-
/** Unsubscribes outputs and destroys the dynamic component. */
|
|
688
|
-
private cleanup;
|
|
689
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ModalComponent, never>;
|
|
690
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ModalComponent, "shk-modal", never, {}, {}, never, never, true, never>;
|
|
691
|
-
}
|
|
692
|
-
|
|
693
|
-
/** Option rendered by the select, optionally prefixed with a "new entry" badge. */
|
|
694
|
-
interface SelectOption {
|
|
695
|
-
label: string;
|
|
696
|
-
value: any;
|
|
697
|
-
custom?: boolean;
|
|
698
|
-
}
|
|
699
|
-
/**
|
|
700
|
-
* Shirkasoft UI Components.
|
|
701
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
702
|
-
* Belongs to Shirkasoft.
|
|
703
|
-
*/
|
|
704
|
-
/**
|
|
705
|
-
* Custom select that works as a ControlValueAccessor: single/multiple
|
|
706
|
-
* selection, searchable, keyboard navigation, pagination, custom entries and
|
|
707
|
-
* reactive-form integration.
|
|
708
|
-
*/
|
|
709
|
-
declare class SelectComponent implements ControlValueAccessor {
|
|
710
|
-
private elementRef;
|
|
711
|
-
/** Resolves icon names to lucide components, falling back to a chevron. */
|
|
712
|
-
protected getIcon: (name: any) => any;
|
|
713
|
-
/** Available options. */
|
|
714
|
-
options: _angular_core.InputSignal<SelectOption[]>;
|
|
715
|
-
/** Enables multi-select mode. */
|
|
716
|
-
multiple: _angular_core.InputSignal<boolean>;
|
|
717
|
-
/** Restricts multi-selection to the given value combinations. */
|
|
718
|
-
validCombinations: _angular_core.InputSignal<string[][] | undefined>;
|
|
719
|
-
/** Placeholder shown when there is no selection. */
|
|
720
|
-
placeholder: _angular_core.InputSignal<string>;
|
|
721
|
-
/** Label used to bind the control inside a `formGroup`. */
|
|
722
|
-
label: _angular_core.InputSignal<string | undefined>;
|
|
723
|
-
/** Shows a loading state while options are being fetched. */
|
|
724
|
-
isLoading: _angular_core.InputSignal<boolean>;
|
|
725
|
-
/** Marks that all options have been loaded (used with pagination + search). */
|
|
726
|
-
isAllDataLoaded: _angular_core.InputSignal<boolean>;
|
|
727
|
-
/** Allows creating new entries from the typed search term. */
|
|
728
|
-
allowCustomEntries: _angular_core.InputSignal<boolean>;
|
|
729
|
-
/** Parent form group to resolve the control from `label`. */
|
|
730
|
-
formGroup: _angular_core.InputSignal<FormGroup<any> | undefined>;
|
|
731
|
-
/** Enables the search input inside the dropdown. */
|
|
732
|
-
isSearchable: _angular_core.InputSignal<boolean>;
|
|
733
|
-
/** Number of options loaded per page when pagination is enabled. */
|
|
734
|
-
itemsPerPage: _angular_core.InputSignal<number>;
|
|
735
|
-
/** FormControl bound externally (used instead of `formGroup`/`label`). */
|
|
736
|
-
control: _angular_core.InputSignal<FormControl<any> | undefined>;
|
|
737
|
-
/** Paginates the option list instead of rendering it all at once. */
|
|
738
|
-
usePagination: _angular_core.InputSignal<boolean>;
|
|
739
|
-
/** Disables the whole select. */
|
|
740
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
741
|
-
/** Custom per-validation-error messages shown under the select. */
|
|
742
|
-
errorMessages: _angular_core.InputSignal<{
|
|
743
|
-
[key: string]: string;
|
|
744
|
-
}>;
|
|
745
|
-
/** Keeps the search term when options reload. */
|
|
746
|
-
preserveSearchOnLoad: _angular_core.InputSignal<boolean>;
|
|
747
|
-
/** Translation key of the "no records" empty message. */
|
|
748
|
-
emptyMessageKey: _angular_core.InputSignal<string>;
|
|
749
|
-
/** Opens the dropdown above the trigger instead of below. */
|
|
750
|
-
dropdownUpward: _angular_core.InputSignal<boolean>;
|
|
751
|
-
/** Shows the "no selection" option in single-select mode. */
|
|
752
|
-
showEmptyOption: _angular_core.InputSignal<boolean>;
|
|
753
|
-
/** Emits when the selection changes (new value or array in multiple mode). */
|
|
754
|
-
selectionChange: _angular_core.OutputEmitterRef<any>;
|
|
755
|
-
/** Emits the debounced search term while typing. */
|
|
756
|
-
search: _angular_core.OutputEmitterRef<string>;
|
|
757
|
-
/** Reference to the filter input inside the dropdown (when searchable). */
|
|
758
|
-
filterInput: _angular_core.Signal<ElementRef<any> | undefined>;
|
|
759
|
-
/** Reference to the select container element. */
|
|
760
|
-
private selectContainer;
|
|
761
|
-
/** Reference to the trigger button. */
|
|
762
|
-
private selectTrigger;
|
|
763
|
-
/** Reference to the dropdown list container. */
|
|
764
|
-
private dropdownContainer;
|
|
765
|
-
/** Underlying selection value (mirrors the reactive control). */
|
|
766
|
-
private _value;
|
|
767
|
-
/** Whether the dropdown is open. */
|
|
768
|
-
isOpen: _angular_core.WritableSignal<boolean>;
|
|
769
|
-
/** Index of the currently focused option for keyboard navigation. */
|
|
770
|
-
focusedIndex: _angular_core.WritableSignal<number>;
|
|
771
|
-
/** Current search term (searchable mode). */
|
|
772
|
-
searchTerm: _angular_core.WritableSignal<string>;
|
|
773
|
-
/** Current page of the paginated dropdown. */
|
|
774
|
-
currentPage: _angular_core.WritableSignal<number>;
|
|
775
|
-
/** Tracks whether the user typed in the search input. */
|
|
776
|
-
private searchTermChanged;
|
|
777
|
-
/** Internal disabled state from the reactive form (setDisabledState). */
|
|
778
|
-
private _isDisabled;
|
|
779
|
-
/** Debounce timer handle for the search output. */
|
|
780
|
-
private debounceTimer;
|
|
781
|
-
/** Error-state counter used to recompute error helpers reactively. */
|
|
782
|
-
private errorTracker;
|
|
783
|
-
/** Whether an error has been shown at some point (for "fixed" messaging). */
|
|
784
|
-
hadError: _angular_core.WritableSignal<boolean>;
|
|
785
|
-
/** Whether control status/value subscriptions have been attached. */
|
|
786
|
-
private subscribed;
|
|
787
|
-
private valueSubscribed;
|
|
788
|
-
/** Current selection value. */
|
|
789
|
-
value: _angular_core.Signal<any>;
|
|
790
|
-
/** True when the select is disabled via input or by the reactive form. */
|
|
791
|
-
isDisabled: _angular_core.Signal<boolean>;
|
|
792
|
-
/** Resolves the form control from `control` or from `formGroup`+`label`. */
|
|
793
|
-
actualControl: _angular_core.Signal<FormControl<any> | undefined>;
|
|
794
|
-
/** Whether the bound control should display its error (invalid + touched/dirty). */
|
|
795
|
-
shouldShowError: _angular_core.Signal<boolean | undefined>;
|
|
796
|
-
/** Whether an error was shown before and the control is now valid + touched. */
|
|
797
|
-
wasFixedError: _angular_core.Signal<boolean | undefined>;
|
|
798
|
-
/** Text shown in the trigger: the selected label(s) or the placeholder. */
|
|
799
|
-
displayValue: _angular_core.Signal<any>;
|
|
800
|
-
/** List of validation error messages for the bound control. */
|
|
801
|
-
getErrorMessages: _angular_core.Signal<string[]>;
|
|
802
|
-
/** Options filtered by the search term (matches first, then contains). */
|
|
803
|
-
filteredOptions: _angular_core.Signal<SelectOption[]>;
|
|
804
|
-
/** Options for the current page, with a synthetic custom entry when allowed. */
|
|
805
|
-
paginatedOptions: _angular_core.Signal<SelectOption[]>;
|
|
806
|
-
/** Non-custom options, including the empty option in single-select mode. */
|
|
807
|
-
regularOptions: _angular_core.Signal<SelectOption[]>;
|
|
808
|
-
/** Total pages of the filtered option list (1 when pagination is off). */
|
|
809
|
-
totalPages: _angular_core.Signal<number>;
|
|
810
|
-
/** Whether there is at least one selected value. */
|
|
811
|
-
hasSelectedValues: _angular_core.Signal<any>;
|
|
812
|
-
/** Whether the custom optional entry should be offered for the current term. */
|
|
813
|
-
showCustomOption: _angular_core.Signal<boolean>;
|
|
814
|
-
private transloco;
|
|
815
|
-
/** ControlValueAccessor onChange callback. */
|
|
816
|
-
private onChange;
|
|
817
|
-
/** ControlValueAccessor onTouched callback. */
|
|
818
|
-
private onTouched;
|
|
819
|
-
private destroyRef;
|
|
820
|
-
constructor(elementRef: ElementRef);
|
|
821
|
-
/** Sets the disabled state coming from the reactive form infrastructure. */
|
|
822
|
-
setDisabledState(isDisabled: boolean): void;
|
|
823
|
-
/** Marks the control as touched and updates validity and error state. */
|
|
824
|
-
private markAsTouchedAndUpdate;
|
|
825
|
-
/** Strips accents and lowercases text for accent-insensitive matching. */
|
|
826
|
-
normalizeText(text: string): string;
|
|
827
|
-
/** Keyboard handler for the trigger element (open/close/navigate/select). */
|
|
828
|
-
onKeydown(event: KeyboardEvent): void;
|
|
829
|
-
/** Keyboard handler for the search input inside a searchable dropdown. */
|
|
830
|
-
handleKeyDown(event: KeyboardEvent): void;
|
|
831
|
-
/** Moves the focused option index by `direction`, skipping disabled ones. */
|
|
832
|
-
private moveFocus;
|
|
833
|
-
/** Index of the currently selected option, or -1. */
|
|
834
|
-
private getSelectedIndex;
|
|
835
|
-
/** Whether an option is disabled based on the valid combinations rule. */
|
|
836
|
-
isOptionDisabled(option: SelectOption): boolean;
|
|
837
|
-
/** Whether an option is currently selected. */
|
|
838
|
-
isSelected(option: SelectOption): boolean;
|
|
839
|
-
/** Goes to the next options page when possible. */
|
|
840
|
-
nextPage(): void;
|
|
841
|
-
/** Goes to the previous options page when possible. */
|
|
842
|
-
previousPage(): void;
|
|
843
|
-
/** Closes the dropdown when a click happens outside the component. */
|
|
844
|
-
onClickOutside(event: MouseEvent): void;
|
|
845
|
-
/** Selects a typed free-text value as a new custom entry. */
|
|
846
|
-
onCustomOptionClick(): void;
|
|
847
|
-
/** Handles typing in the search input (updates term and emits search). */
|
|
848
|
-
onInputChange(event: Event): void;
|
|
849
|
-
/** Selects or toggles the clicked option (custom entries included). */
|
|
850
|
-
onOptionClick(option: SelectOption): void;
|
|
851
|
-
/** Selects a single option and updates the control/outputs. */
|
|
852
|
-
selectOption(option: SelectOption): void;
|
|
853
|
-
/** Toggles an option in multiple mode, honoring the valid combinations. */
|
|
854
|
-
toggleOption(option: SelectOption): void;
|
|
855
|
-
/** Opens/closes the dropdown and manages focus/selection state. */
|
|
856
|
-
toggleDropdown(): void;
|
|
857
|
-
/** trackBy for rendered options so Angular reuses DOM nodes by value. */
|
|
858
|
-
trackByFn(index: number, option: SelectOption): any;
|
|
859
|
-
/** Writes an external value into the internal signal (ControlValueAccessor). */
|
|
860
|
-
writeValue(value: any): void;
|
|
861
|
-
/** Stores the onChange callback (ControlValueAccessor). */
|
|
862
|
-
registerOnChange(fn: any): void;
|
|
863
|
-
/** Stores the onTouched callback (ControlValueAccessor). */
|
|
864
|
-
registerOnTouched(fn: any): void;
|
|
865
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SelectComponent, never>;
|
|
866
|
-
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>;
|
|
867
|
-
}
|
|
868
|
-
|
|
869
|
-
interface FileUploadError {
|
|
870
|
-
type: 'size' | 'type';
|
|
871
|
-
message: string;
|
|
872
|
-
file: File;
|
|
873
|
-
}
|
|
874
|
-
/**
|
|
875
|
-
* Shirkasoft UI Components.
|
|
876
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
877
|
-
* Belongs to Shirkasoft.
|
|
878
|
-
*/
|
|
879
|
-
/**
|
|
880
|
-
* Drag & drop file uploader with file type/size validation, image previews,
|
|
881
|
-
* multiple files support and localized error messages.
|
|
882
|
-
*/
|
|
883
|
-
declare class FileUploadComponent {
|
|
884
|
-
protected getIcon: (name: any) => any;
|
|
885
|
-
private transloco;
|
|
886
|
-
/** Main label of the uploader. */
|
|
887
|
-
label: _angular_core.InputSignal<string>;
|
|
888
|
-
/** Accepted MIME types/extensions (e.g. 'image/*', '.pdf'). */
|
|
889
|
-
accept: _angular_core.InputSignal<string>;
|
|
890
|
-
/** Maximum allowed size per file (bytes). */
|
|
891
|
-
maxFileSize: _angular_core.InputSignal<number>;
|
|
892
|
-
/** Maximum number of files (0 = unlimited). */
|
|
893
|
-
maxFiles: _angular_core.InputSignal<number>;
|
|
894
|
-
/** Text of the file picker button. */
|
|
895
|
-
fileUploadText: _angular_core.InputSignal<string>;
|
|
896
|
-
/** Helper text shown next to the label. */
|
|
897
|
-
fileRecommendation: _angular_core.InputSignal<string>;
|
|
898
|
-
/** Text shown when files are already loaded. */
|
|
899
|
-
changeFilesText: _angular_core.InputSignal<string>;
|
|
900
|
-
/** Enables selecting more than one file at once. */
|
|
901
|
-
multiple: _angular_core.InputSignal<boolean>;
|
|
902
|
-
/** Emitted with the currently selected files. */
|
|
903
|
-
fileSelected: _angular_core.OutputEmitterRef<File[]>;
|
|
904
|
-
/** Emitted when the last selected file is removed. */
|
|
905
|
-
fileRemoved: _angular_core.OutputEmitterRef<void>;
|
|
906
|
-
/** Emitted when a file fails validation (type/size). */
|
|
907
|
-
fileError: _angular_core.OutputEmitterRef<FileUploadError>;
|
|
908
|
-
/** Emitted when a file is near the size limit. */
|
|
909
|
-
fileWarning: _angular_core.OutputEmitterRef<FileUploadError>;
|
|
910
|
-
/** Currently selected files. */
|
|
911
|
-
selectedFiles: _angular_core.WritableSignal<File[]>;
|
|
912
|
-
/** Localized error message displayed to the user. */
|
|
913
|
-
errorMessage: _angular_core.WritableSignal<string>;
|
|
914
|
-
/** Whether the user is dragging files over the zone. */
|
|
915
|
-
isDragOver: _angular_core.WritableSignal<boolean>;
|
|
916
|
-
/** Object URLs used for image previews. */
|
|
917
|
-
private previewUrls;
|
|
918
|
-
/** Whether another selection is allowed. */
|
|
919
|
-
canAddMore: _angular_core.Signal<boolean>;
|
|
920
|
-
/** True when the maximum number of files has been reached. */
|
|
921
|
-
maxReached: _angular_core.Signal<boolean>;
|
|
922
|
-
/** Whether the file is an image (used for previews). */
|
|
923
|
-
isImageFile(file: File): boolean;
|
|
924
|
-
/** Returns (creating on demand) the object URL for a file preview. */
|
|
925
|
-
previewUrl(file: File): string;
|
|
926
|
-
/** Marks the drop zone as active while dragging over it. */
|
|
927
|
-
onDragOver(event: DragEvent): void;
|
|
928
|
-
/** Clears the drag-over state when the drag leaves the zone. */
|
|
929
|
-
onDragLeave(event: DragEvent): void;
|
|
930
|
-
/** Processes the files dropped on the zone. */
|
|
931
|
-
onDrop(event: DragEvent): void;
|
|
932
|
-
/** Processes the files picked from the native file input. */
|
|
933
|
-
onFileChange(event: Event): void;
|
|
934
|
-
/** Validates and appends the received files, emitting errors/warnings. */
|
|
935
|
-
private processFiles;
|
|
936
|
-
/** Validates a file against `accept` and `maxFileSize`. */
|
|
937
|
-
private validateFile;
|
|
938
|
-
/** Emits a warning when the file is close to the size limit (>90%). */
|
|
939
|
-
private checkSizeWarning;
|
|
940
|
-
/** Removes a file, revoking its preview URL. */
|
|
941
|
-
removeFile(file: File): void;
|
|
942
|
-
/** Clears all selected files and previews. */
|
|
943
|
-
changeFiles(): void;
|
|
944
|
-
/** Revokes every stored preview object URL. */
|
|
945
|
-
private clearPreviews;
|
|
946
|
-
/** Human readable size (B/KB/MB). */
|
|
947
|
-
private formatFileSize;
|
|
948
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FileUploadComponent, never>;
|
|
949
|
-
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>;
|
|
950
|
-
}
|
|
951
|
-
|
|
952
|
-
/**
|
|
953
|
-
* Resolves the icon passed to a component into a lucide component.
|
|
954
|
-
* Accepts a registered string name, an existing lucide component or a LucideIconData object.
|
|
955
|
-
*/
|
|
956
|
-
declare function getIcon(icon?: any, fallback?: any): any;
|
|
957
|
-
|
|
958
|
-
/**
|
|
959
|
-
* Shirkasoft UI Components.
|
|
960
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
961
|
-
* Belongs to Shirkasoft.
|
|
962
|
-
*/
|
|
963
|
-
type TagSeverity = 'secondary' | 'success' | 'info' | 'warning' | 'danger' | 'contrast';
|
|
964
|
-
/** Small label used to highlight a value, status or category. */
|
|
965
|
-
declare class TagComponent {
|
|
966
|
-
/** Text shown inside the tag. */
|
|
967
|
-
value: _angular_core.InputSignal<string | number>;
|
|
968
|
-
/** Color variant. Defaults to 'secondary'. */
|
|
969
|
-
severity: _angular_core.InputSignal<TagSeverity>;
|
|
970
|
-
/** Renders the tag with fully rounded corners (pill). */
|
|
971
|
-
rounded: _angular_core.InputSignal<boolean>;
|
|
972
|
-
/** Optional leading lucide icon name or component. */
|
|
973
|
-
icon: _angular_core.InputSignal<any>;
|
|
974
|
-
/** Inline styles applied to the tag. */
|
|
975
|
-
style: _angular_core.InputSignal<Record<string, string | number>>;
|
|
976
|
-
/** Extra CSS classes. */
|
|
977
|
-
styleClass: _angular_core.InputSignal<string>;
|
|
978
|
-
protected getIcon: typeof getIcon;
|
|
979
|
-
protected tagClass: _angular_core.Signal<string>;
|
|
980
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TagComponent, never>;
|
|
981
|
-
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>;
|
|
982
|
-
}
|
|
983
|
-
|
|
984
|
-
interface Column {
|
|
985
|
-
field: string;
|
|
986
|
-
header: string;
|
|
987
|
-
sortable?: boolean;
|
|
988
|
-
filter?: boolean;
|
|
989
|
-
filterPlaceholder?: string;
|
|
990
|
-
width?: string;
|
|
991
|
-
defaultSort?: true;
|
|
992
|
-
filterType?: 'text' | 'exact' | 'select';
|
|
993
|
-
filterOptions?: {
|
|
994
|
-
label: string;
|
|
995
|
-
value: any;
|
|
996
|
-
}[];
|
|
997
|
-
template?: 'text' | 'tag';
|
|
998
|
-
format?: (row: any) => string;
|
|
999
|
-
tagValue?: (row: any) => string;
|
|
1000
|
-
tagSeverity?: (row: any) => TagSeverity | undefined;
|
|
1001
|
-
tagRounded?: boolean | ((row: any) => boolean);
|
|
1002
|
-
tagIcon?: string | ((row: any) => string);
|
|
1003
|
-
tagStyle?: (row: any) => Record<string, string | number> | undefined;
|
|
1004
|
-
}
|
|
1005
|
-
interface TableAction {
|
|
1006
|
-
label: string;
|
|
1007
|
-
icon: string | any;
|
|
1008
|
-
onClick: () => void;
|
|
1009
|
-
class?: string;
|
|
1010
|
-
isVisible?: () => boolean;
|
|
1011
|
-
isDisabled?: () => boolean;
|
|
1012
|
-
}
|
|
1013
|
-
interface RowAction {
|
|
1014
|
-
label: string | ((data: any) => string);
|
|
1015
|
-
icon: string | ((data: any) => any) | any;
|
|
1016
|
-
onClick: (rowData: any) => void;
|
|
1017
|
-
class?: string | ((data: any) => string);
|
|
1018
|
-
isVisible?: (rowData: any) => boolean;
|
|
1019
|
-
isDisabled?: (rowData: any) => boolean;
|
|
1020
|
-
}
|
|
1021
|
-
interface PageChangeEvent {
|
|
1022
|
-
first: number;
|
|
1023
|
-
rows: number;
|
|
1024
|
-
page: number;
|
|
1025
|
-
pageCount: number;
|
|
1026
|
-
}
|
|
1027
|
-
interface FilterChangeEvent {
|
|
1028
|
-
filters: {
|
|
1029
|
-
[key: string]: any;
|
|
1030
|
-
};
|
|
1031
|
-
}
|
|
1032
|
-
/**
|
|
1033
|
-
* Shirkasoft UI Components.
|
|
1034
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1035
|
-
* Belongs to Shirkasoft.
|
|
1036
|
-
*/
|
|
1037
|
-
/**
|
|
1038
|
-
* Data table with sorting, column filters, global search, pagination,
|
|
1039
|
-
* row/header actions, tag cells and optional server-side mode.
|
|
1040
|
-
*/
|
|
1041
|
-
declare class TableComponent {
|
|
1042
|
-
private fb;
|
|
1043
|
-
private cdr;
|
|
1044
|
-
private transloco;
|
|
1045
|
-
private destroyRef;
|
|
1046
|
-
/** Maps icon names to lucide components, falling back to a plus icon. */
|
|
1047
|
-
protected getIcon: (name: any) => any;
|
|
1048
|
-
/**
|
|
1049
|
-
* Minimum width applied to each column (except `actions`, which keeps its
|
|
1050
|
-
* own computed width) only on narrow screens. On wide screens columns
|
|
1051
|
-
* stretch normally to fill the container width. Can be overridden per
|
|
1052
|
-
* column via `col.width`.
|
|
1053
|
-
*/
|
|
1054
|
-
protected readonly DEFAULT_COLUMN_WIDTH = "140px";
|
|
1055
|
-
/** Returns the effective CSS width for a column ('actions' included). */
|
|
1056
|
-
getColumnWidth(col: Column): string;
|
|
1057
|
-
/** Signal with the translated "Actions" header label. */
|
|
1058
|
-
private actionsHeaderLabel;
|
|
1059
|
-
/** Signal reacting to language changes so imperative translations are recomputed. */
|
|
1060
|
-
private currentLang;
|
|
1061
|
-
/** Reactive signal of loaded translations so pageReport is not stuck with raw keys. */
|
|
1062
|
-
private translations;
|
|
1063
|
-
/** Full dataset. In server-side mode only the current page rows. */
|
|
1064
|
-
data: _angular_core.InputSignal<any[]>;
|
|
1065
|
-
/** Column definitions (field, header, filterable, tag cell options, etc.). */
|
|
1066
|
-
columns: _angular_core.InputSignal<Column[]>;
|
|
1067
|
-
/** Number of rows displayed per page. */
|
|
1068
|
-
rowsPerPage: _angular_core.InputSignal<number>;
|
|
1069
|
-
/** Options shown in the rows-per-page selector. */
|
|
1070
|
-
rowsPerPageOptions: _angular_core.InputSignal<number[]>;
|
|
1071
|
-
/** Whether the table is in loading state (shows the overlay/skeleton). */
|
|
1072
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
1073
|
-
/** Whether to render the row actions column. */
|
|
1074
|
-
showActionRow: _angular_core.InputSignal<boolean>;
|
|
1075
|
-
/** Custom cell/header templates keyed by column field. */
|
|
1076
|
-
customTemplates: _angular_core.InputSignal<{
|
|
1077
|
-
[key: string]: any;
|
|
1078
|
-
}>;
|
|
1079
|
-
/** Actions rendered in the table header. */
|
|
1080
|
-
headerActions: _angular_core.InputSignal<TableAction[]>;
|
|
1081
|
-
/** Actions rendered per row (icon, label, class, visibility/disabled). */
|
|
1082
|
-
rowActions: _angular_core.InputSignal<RowAction[]>;
|
|
1083
|
-
/** Whether the table container renders a drop shadow. */
|
|
1084
|
-
hasShadow: _angular_core.InputSignal<boolean>;
|
|
1085
|
-
/** Field used as the default initial sort. */
|
|
1086
|
-
defaultSortField: _angular_core.InputSignal<string>;
|
|
1087
|
-
/** Order used by the default initial sort (1 asc, -1 desc). */
|
|
1088
|
-
defaultSortOrder: _angular_core.InputSignal<number>;
|
|
1089
|
-
/** Whether the global search input is shown. */
|
|
1090
|
-
showSearch: _angular_core.InputSignal<boolean>;
|
|
1091
|
-
/** Placeholder for the global search input. */
|
|
1092
|
-
searchPlaceholder: _angular_core.InputSignal<string>;
|
|
1093
|
-
/** Message shown when there are no rows. */
|
|
1094
|
-
emptyMessage: _angular_core.InputSignal<string>;
|
|
1095
|
-
/** Enables server-side pagination/filtering/sorting mode. */
|
|
1096
|
-
serverSide: _angular_core.InputSignal<boolean>;
|
|
1097
|
-
/** Total number of records in server-side mode (for pagination math). */
|
|
1098
|
-
totalRecords: _angular_core.InputSignal<number>;
|
|
1099
|
-
/** Optional prebuilt filter chips (label + value) shown above the table. */
|
|
1100
|
-
filters: _angular_core.InputSignal<{
|
|
1101
|
-
label: string;
|
|
1102
|
-
value: string;
|
|
1103
|
-
}[]>;
|
|
1104
|
-
/** Currently active filter chip value. */
|
|
1105
|
-
activeFilter: _angular_core.InputSignal<string>;
|
|
1106
|
-
/** Emits when the user clicks the refresh button. */
|
|
1107
|
-
refresh: _angular_core.OutputEmitterRef<void>;
|
|
1108
|
-
/** Emits page changes (server-side mode) with first/rows/page info. */
|
|
1109
|
-
pageChange: _angular_core.OutputEmitterRef<PageChangeEvent>;
|
|
1110
|
-
/** Emits the active column filters. */
|
|
1111
|
-
filterChange: _angular_core.OutputEmitterRef<FilterChangeEvent>;
|
|
1112
|
-
/** Emits the debounced global search term. */
|
|
1113
|
-
searchChange: _angular_core.OutputEmitterRef<string>;
|
|
1114
|
-
/** Emits when a filter chip is clicked. */
|
|
1115
|
-
filterClick: _angular_core.OutputEmitterRef<string>;
|
|
1116
|
-
/** Internal copy of the input data used as the base for search/filter. */
|
|
1117
|
-
private originalData;
|
|
1118
|
-
/** Rows after the global search is applied. */
|
|
1119
|
-
searchedData: _angular_core.WritableSignal<any[]>;
|
|
1120
|
-
/** Rows after column filters are applied. */
|
|
1121
|
-
filteredData: _angular_core.WritableSignal<any[]>;
|
|
1122
|
-
/** Rows belonging to the current page (after slicing). */
|
|
1123
|
-
displayedData: _angular_core.WritableSignal<any[]>;
|
|
1124
|
-
/** Local total records after filtering (client mode). */
|
|
1125
|
-
localTotalRecords: _angular_core.WritableSignal<number>;
|
|
1126
|
-
/** Index of the first row of the current page. */
|
|
1127
|
-
first: _angular_core.WritableSignal<number>;
|
|
1128
|
-
/** Visibility map for each column filter input. */
|
|
1129
|
-
showFilterInput: _angular_core.WritableSignal<{
|
|
1130
|
-
[key: string]: boolean;
|
|
1131
|
-
}>;
|
|
1132
|
-
/** Current global search term. */
|
|
1133
|
-
searchQuery: _angular_core.WritableSignal<string>;
|
|
1134
|
-
/** Currently sorted field. */
|
|
1135
|
-
sortField: _angular_core.WritableSignal<string>;
|
|
1136
|
-
/** Current sort direction (1 asc, -1 desc). */
|
|
1137
|
-
sortOrder: _angular_core.WritableSignal<number>;
|
|
1138
|
-
/** Local rows per page, kept in sync with the `rowsPerPage` input. */
|
|
1139
|
-
rowsPerPageLocal: _angular_core.WritableSignal<number>;
|
|
1140
|
-
/** Total number of pages based on the effective record count. */
|
|
1141
|
-
totalPages: _angular_core.Signal<number>;
|
|
1142
|
-
/** Current page number (1-based). */
|
|
1143
|
-
currentPage: _angular_core.Signal<number>;
|
|
1144
|
-
/** Reactive form holding the value of each column filter. */
|
|
1145
|
-
columnFiltersForm: FormGroup;
|
|
1146
|
-
/** Subjects used to debounce column filters (server mode) and search. */
|
|
1147
|
-
private filterSubject;
|
|
1148
|
-
private searchSubject;
|
|
1149
|
-
/**
|
|
1150
|
-
* Signature of the last built set of filterable fields (+filter type) to
|
|
1151
|
-
* avoid rebuilding the form (and losing user input) on reference changes.
|
|
1152
|
-
*/
|
|
1153
|
-
private lastFilterFieldsSignature;
|
|
1154
|
-
private columnFilterSubscriptions;
|
|
1155
|
-
/** Columns array with the leading `actions` column when row actions exist. */
|
|
1156
|
-
columnsWithActions: _angular_core.Signal<Column[]>;
|
|
1157
|
-
/** Total records: server-provided in server mode, locally computed otherwise. */
|
|
1158
|
-
effectiveTotalRecords: _angular_core.Signal<number>;
|
|
1159
|
-
/**
|
|
1160
|
-
* Rows rendered by the template: the input data in server-side mode or the
|
|
1161
|
-
* locally sliced/page current rows otherwise.
|
|
1162
|
-
*/
|
|
1163
|
-
effectiveDisplayedData: _angular_core.Signal<any[]>;
|
|
1164
|
-
/**
|
|
1165
|
-
* Reactive "X to Y of Z" report. Depends on loaded translations and the
|
|
1166
|
-
* active language so it always reflects the translated template.
|
|
1167
|
-
*/
|
|
1168
|
-
pageReport: _angular_core.Signal<string>;
|
|
1169
|
-
constructor();
|
|
1170
|
-
/**
|
|
1171
|
-
* Builds (or keeps) the reactive form with one control per filterable
|
|
1172
|
-
* column. The form is only rebuilt when the set of filterable
|
|
1173
|
-
* fields/filter types changes, preserving the values already typed by the
|
|
1174
|
-
* user otherwise. Previous subscriptions are unsubscribed to avoid leaks.
|
|
1175
|
-
*/
|
|
1176
|
-
private setupColumnFilters;
|
|
1177
|
-
/** Collects the non-empty column filter values and emits them. */
|
|
1178
|
-
private emitFilterChange;
|
|
1179
|
-
/** Applies the global search over the original data (client mode). */
|
|
1180
|
-
private applySearch;
|
|
1181
|
-
/** Entry point that applies search (which cascades into column filters). */
|
|
1182
|
-
private applyFilters;
|
|
1183
|
-
/**
|
|
1184
|
-
* Applies every column filter on top of the searched data using each
|
|
1185
|
-
* column's `filterType` ('select', 'exact' or text contains).
|
|
1186
|
-
*/
|
|
1187
|
-
private applyColumnFilters;
|
|
1188
|
-
/** Slices the filtered rows for the current page. */
|
|
1189
|
-
private updateDisplayedData;
|
|
1190
|
-
/** Emits the filter chip clicked in the template. */
|
|
1191
|
-
onFilterClick(value: string): void;
|
|
1192
|
-
/** Toggles the sort direction of a column (first click sorts ascending). */
|
|
1193
|
-
toggleSort(field: string): void;
|
|
1194
|
-
/**
|
|
1195
|
-
* Sorts the filtered rows by the current field. Rows with null/undefined
|
|
1196
|
-
* values are always kept at the end regardless of sort direction.
|
|
1197
|
-
*/
|
|
1198
|
-
private applySort;
|
|
1199
|
-
/** Handles the global search input (updates query, resets page, debounces server mode). */
|
|
1200
|
-
onSearchInput(value: string): void;
|
|
1201
|
-
/** Clears a column filter value and hides its input. */
|
|
1202
|
-
clearFilter(field: string): void;
|
|
1203
|
-
/** Toggles the visibility of a column filter input. */
|
|
1204
|
-
toggleFilter(field: string): void;
|
|
1205
|
-
/**
|
|
1206
|
-
* Whether a column filter is non-empty. Avoids treating the number 0 as
|
|
1207
|
-
* "no value".
|
|
1208
|
-
*/
|
|
1209
|
-
hasFilterValue(field: string): boolean;
|
|
1210
|
-
/** Returns the reactive page report string (template helper). */
|
|
1211
|
-
getPageReport(): string;
|
|
1212
|
-
/** Goes to the first page (emits pageChange in server-side mode). */
|
|
1213
|
-
goToFirst(): void;
|
|
1214
|
-
/** Goes to the last page (emits pageChange in server-side mode). */
|
|
1215
|
-
goToLast(): void;
|
|
1216
|
-
/** Updates rows-per-page and resets to the first page. */
|
|
1217
|
-
onRowsPerPageChange(rows: number): void;
|
|
1218
|
-
/** Emits the refresh output. */
|
|
1219
|
-
refreshData(): void;
|
|
1220
|
-
/** Whether the current page is the first one. */
|
|
1221
|
-
isFirstPage(): boolean;
|
|
1222
|
-
/** Whether the current page is the last one. */
|
|
1223
|
-
isLastPage(): boolean;
|
|
1224
|
-
/** Moves to the next page (emits pageChange in server-side mode). */
|
|
1225
|
-
next(): void;
|
|
1226
|
-
/** Moves to the previous page (emits pageChange in server mode). */
|
|
1227
|
-
prev(): void;
|
|
1228
|
-
/** Resets the table to the first page. */
|
|
1229
|
-
reset(): void;
|
|
1230
|
-
/** Resolves the row action label, static or per-row function. */
|
|
1231
|
-
getRowActionLabel(action: RowAction, rowData: any): string;
|
|
1232
|
-
/**
|
|
1233
|
-
* Resolves the row action icon: a lucide component, a function returning
|
|
1234
|
-
* the icon name, or a raw string resolved by the central icon map.
|
|
1235
|
-
*/
|
|
1236
|
-
getRowActionIconName(action: RowAction, rowData: any): any;
|
|
1237
|
-
/** Resolves the CSS class of a row action, static or per-row function. */
|
|
1238
|
-
getRowActionClass(action: RowAction, rowData: any): string;
|
|
1239
|
-
/** Whether a header action is disabled. */
|
|
1240
|
-
isHeaderActionDisabled(action: TableAction): boolean;
|
|
1241
|
-
/** Whether a header action is visible. */
|
|
1242
|
-
isHeaderActionVisible(action: TableAction): boolean;
|
|
1243
|
-
/** Whether a row action is disabled for the given row. */
|
|
1244
|
-
isRowActionDisabled(action: RowAction, rowData: any): boolean;
|
|
1245
|
-
/** Whether a row action is visible for the given row. */
|
|
1246
|
-
isRowActionVisible(action: RowAction, rowData: any): boolean;
|
|
1247
|
-
/** Truncates a value with an ellipsis past the given character limit. */
|
|
1248
|
-
truncate(value: any, limit?: number): string;
|
|
1249
|
-
/** Resolves the value displayed inside a tag cell, static or per-row function. */
|
|
1250
|
-
getTagValue(col: Column, rowData: any): string;
|
|
1251
|
-
/** Resolves and validates the tag severity, falling back to 'secondary'. */
|
|
1252
|
-
getTagSeverity(col: Column, rowData: any): TagSeverity;
|
|
1253
|
-
/** Resolves whether the tag in a cell is rounded, static or per-row function. */
|
|
1254
|
-
getTagRounded(col: Column, rowData: any): boolean;
|
|
1255
|
-
/** Resolves the icon shown inside a tag cell, static or per-row function. */
|
|
1256
|
-
getTagIcon(col: Column, rowData: any): string;
|
|
1257
|
-
/** Resolves the CSS styles of a tag cell, static or per-row function. */
|
|
1258
|
-
getTagStyle(col: Column, rowData: any): Record<string, string | number>;
|
|
1259
|
-
/**
|
|
1260
|
-
* trackBy for row identity: prefers `id`/`_id` and falls back to the index.
|
|
1261
|
-
*/
|
|
1262
|
-
trackByRow(row: any, index: number): any;
|
|
1263
|
-
/** Keyboard support (Enter/Space) for sorting a column header. */
|
|
1264
|
-
onHeaderKeydown(event: KeyboardEvent, col: Column): void;
|
|
1265
|
-
/** Accessible aria-sort value for a given column header. */
|
|
1266
|
-
getAriaSort(col: Column): 'ascending' | 'descending' | 'none';
|
|
1267
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableComponent, never>;
|
|
1268
|
-
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>;
|
|
1269
|
-
}
|
|
1270
|
-
|
|
1271
|
-
/**
|
|
1272
|
-
* Shirkasoft UI Components.
|
|
1273
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1274
|
-
* Belongs to Shirkasoft.
|
|
1275
|
-
*/
|
|
1276
|
-
/**
|
|
1277
|
-
* Tooltip rendered in `document.body` with `position: fixed`, so it always
|
|
1278
|
-
* floats above any container (tables with `overflow: hidden`, modals, scroll
|
|
1279
|
-
* wrappers, etc.) and never gets clipped or hidden behind its anchor element.
|
|
1280
|
-
*/
|
|
1281
|
-
declare class TooltipComponent implements OnDestroy {
|
|
1282
|
-
/** Content of the tooltip. */
|
|
1283
|
-
readonly text: _angular_core.InputSignal<string>;
|
|
1284
|
-
/** Preferred placement relative to the trigger. */
|
|
1285
|
-
readonly position: _angular_core.InputSignal<"top" | "bottom" | "right">;
|
|
1286
|
-
/** 'hover' shows on mouse enter; 'fixed' stays pinned to the content. */
|
|
1287
|
-
readonly mode: _angular_core.InputSignal<"fixed" | "hover">;
|
|
1288
|
-
/** Distance (px) between the tooltip and the trigger. */
|
|
1289
|
-
readonly offset: _angular_core.InputSignal<number>;
|
|
1290
|
-
private readonly host;
|
|
1291
|
-
private readonly document;
|
|
1292
|
-
/** The dynamically created tooltip element. */
|
|
1293
|
-
private tooltipEl;
|
|
1294
|
-
/** Unsubscribe callbacks for the scroll/resize listeners. */
|
|
1295
|
-
private cleanup;
|
|
1296
|
-
/** Shows the tooltip over the host trigger on mouseenter. */
|
|
1297
|
-
onMouseEnter(): void;
|
|
1298
|
-
/** Hides the tooltip on mouseleave. */
|
|
1299
|
-
onMouseLeave(): void;
|
|
1300
|
-
/** Creates and positions the tooltip element on `document.body`. */
|
|
1301
|
-
private show;
|
|
1302
|
-
/** Computes the tooltip position, clamped to the viewport. */
|
|
1303
|
-
private computePosition;
|
|
1304
|
-
/** Fades the tooltip out and removes it from the DOM. */
|
|
1305
|
-
private hide;
|
|
1306
|
-
/** Removes the tooltip and its listeners. */
|
|
1307
|
-
private removeTooltip;
|
|
1308
|
-
/** Cleans up the tooltip on component destroy. */
|
|
1309
|
-
ngOnDestroy(): void;
|
|
1310
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TooltipComponent, never>;
|
|
1311
|
-
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>;
|
|
1312
|
-
}
|
|
1313
|
-
|
|
1314
|
-
interface SidebarItem {
|
|
1315
|
-
id: string;
|
|
1316
|
-
label: string;
|
|
1317
|
-
icon?: string | any;
|
|
1318
|
-
route?: string;
|
|
1319
|
-
children?: SidebarItem[];
|
|
1320
|
-
roles?: string[];
|
|
1321
|
-
badge?: string | number;
|
|
1322
|
-
disabled?: boolean;
|
|
1323
|
-
separator?: boolean;
|
|
1324
|
-
}
|
|
1325
|
-
interface SidebarGroup {
|
|
1326
|
-
id?: string;
|
|
1327
|
-
label?: string;
|
|
1328
|
-
items: SidebarItem[];
|
|
1329
|
-
}
|
|
1330
|
-
/**
|
|
1331
|
-
* Shirkasoft UI Components.
|
|
1332
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1333
|
-
* Belongs to Shirkasoft.
|
|
1334
|
-
*/
|
|
1335
|
-
/**
|
|
1336
|
-
* Collapsible vertical navigation sidebar with groups, icons, badges,
|
|
1337
|
-
* role-based filtering, responsive mobile drawer and tooltips.
|
|
1338
|
-
*/
|
|
1339
|
-
declare class SidebarComponent {
|
|
1340
|
-
private platformId;
|
|
1341
|
-
/** Flat list of navigation items (used when no groups are provided). */
|
|
1342
|
-
items: _angular_core.InputSignal<SidebarItem[]>;
|
|
1343
|
-
/** Grouped navigation items; takes precedence over `items`. */
|
|
1344
|
-
groups: _angular_core.InputSignal<SidebarGroup[]>;
|
|
1345
|
-
/** Brand title shown at the top of the sidebar. */
|
|
1346
|
-
title: _angular_core.InputSignal<string>;
|
|
1347
|
-
/** Subtitle under the title. */
|
|
1348
|
-
subtitle: _angular_core.InputSignal<string>;
|
|
1349
|
-
/** Brand logo image/url shown at the top. */
|
|
1350
|
-
logo: _angular_core.InputSignal<string>;
|
|
1351
|
-
/** id of the item currently highlighted as active. */
|
|
1352
|
-
activeItemId: _angular_core.InputSignal<string>;
|
|
1353
|
-
/** Role used to filter items that declare `roles`. */
|
|
1354
|
-
userRole: _angular_core.InputSignal<string>;
|
|
1355
|
-
/** Whether the sidebar can collapse into a rail. */
|
|
1356
|
-
collapsible: _angular_core.InputSignal<boolean>;
|
|
1357
|
-
/** Shows the expand/collapse toggle button. */
|
|
1358
|
-
showToggle: _angular_core.InputSignal<boolean>;
|
|
1359
|
-
/** Enables the mobile drawer behaviour below lg breakpoint. */
|
|
1360
|
-
responsive: _angular_core.InputSignal<boolean>;
|
|
1361
|
-
/** Keeps the sidebar fixed while the page scrolls. */
|
|
1362
|
-
fixed: _angular_core.InputSignal<boolean>;
|
|
1363
|
-
/** Adds a drop shadow to the sidebar. */
|
|
1364
|
-
hasShadow: _angular_core.InputSignal<boolean>;
|
|
1365
|
-
/** Width in expanded state. */
|
|
1366
|
-
expandedWidth: _angular_core.InputSignal<string>;
|
|
1367
|
-
/** Width when collapsed. */
|
|
1368
|
-
collapsedWidth: _angular_core.InputSignal<string>;
|
|
1369
|
-
/** Group ids opened by default on load. */
|
|
1370
|
-
defaultExpanded: _angular_core.InputSignal<string[]>;
|
|
1371
|
-
/** Optional transform applied to item labels (e.g. i18n). */
|
|
1372
|
-
labelPipe: _angular_core.InputSignal<(label: string) => string>;
|
|
1373
|
-
/** Tooltip for the expand action. */
|
|
1374
|
-
expandTooltip: _angular_core.InputSignal<string>;
|
|
1375
|
-
/** Tooltip for the collapse action. */
|
|
1376
|
-
collapseTooltip: _angular_core.InputSignal<string>;
|
|
1377
|
-
/** Collapsed state, bindable with [(collapsed)]. */
|
|
1378
|
-
collapsed: _angular_core.ModelSignal<boolean>;
|
|
1379
|
-
/** Mobile drawer open state, bindable with [(mobileOpen)]. */
|
|
1380
|
-
mobileOpen: _angular_core.ModelSignal<boolean>;
|
|
1381
|
-
/** Emitted when a navigation item is clicked. */
|
|
1382
|
-
itemClick: _angular_core.OutputEmitterRef<SidebarItem>;
|
|
1383
|
-
/** Emitted with the new collapsed state after toggling. */
|
|
1384
|
-
toggle: _angular_core.OutputEmitterRef<boolean>;
|
|
1385
|
-
protected getIcon: (name: any) => any;
|
|
1386
|
-
/** Currently selected item id. */
|
|
1387
|
-
protected selectedId: _angular_core.WritableSignal<string>;
|
|
1388
|
-
/** Set of group ids currently expanded. */
|
|
1389
|
-
protected expandedGroups: _angular_core.WritableSignal<Set<string>>;
|
|
1390
|
-
private isBrowser;
|
|
1391
|
-
constructor();
|
|
1392
|
-
/** Current sidebar width depending on the collapsed state. */
|
|
1393
|
-
protected width: _angular_core.Signal<string>;
|
|
1394
|
-
/** Navigation items after group flattening and role filtering. */
|
|
1395
|
-
protected navItems: _angular_core.Signal<SidebarItem[]>;
|
|
1396
|
-
/** Closes the mobile drawer when the window grows below lg. */
|
|
1397
|
-
onResize(_event: Event): void;
|
|
1398
|
-
/** Applies the `labelPipe` transform to an item label. */
|
|
1399
|
-
protected label(item: SidebarItem): string;
|
|
1400
|
-
/** Whether the item matches the selected id. */
|
|
1401
|
-
protected isItemActive(item: SidebarItem): boolean;
|
|
1402
|
-
/** Whether one of the item's children is currently active. */
|
|
1403
|
-
protected isGroupActive(item: SidebarItem): boolean;
|
|
1404
|
-
/** Whether a group is expanded. */
|
|
1405
|
-
protected isGroupExpanded(item: SidebarItem): boolean;
|
|
1406
|
-
/** Toggles the expanded state of a group. */
|
|
1407
|
-
protected toggleGroup(item: SidebarItem): void;
|
|
1408
|
-
/** Selects an item, emits `itemClick` and closes the mobile drawer when needed. */
|
|
1409
|
-
protected onItemClick(item: SidebarItem): void;
|
|
1410
|
-
/** Toggles collapse (desktop) or the mobile drawer (below lg). */
|
|
1411
|
-
protected onToggle(): void;
|
|
1412
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SidebarComponent, never>;
|
|
1413
|
-
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>;
|
|
1414
|
-
}
|
|
1415
|
-
|
|
1416
|
-
interface RailSidebarItem {
|
|
1417
|
-
id: string;
|
|
1418
|
-
label: string;
|
|
1419
|
-
icon?: string | any;
|
|
1420
|
-
routerLink?: string;
|
|
1421
|
-
children?: RailSidebarItem[];
|
|
1422
|
-
roles?: string[];
|
|
1423
|
-
badge?: string | number;
|
|
1424
|
-
disabled?: boolean;
|
|
1425
|
-
separator?: boolean;
|
|
1426
|
-
}
|
|
1427
|
-
interface RailSidebarSection {
|
|
1428
|
-
key: string;
|
|
1429
|
-
label: string;
|
|
1430
|
-
icon?: string | any;
|
|
1431
|
-
routerLink?: string;
|
|
1432
|
-
matchPrefixes?: string[];
|
|
1433
|
-
items?: RailSidebarItem[];
|
|
1434
|
-
}
|
|
1435
|
-
interface RailSidebarSectionEvent {
|
|
1436
|
-
key: string;
|
|
1437
|
-
routerLink?: string;
|
|
1438
|
-
}
|
|
1439
|
-
/**
|
|
1440
|
-
* Shirkasoft UI Components.
|
|
1441
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1442
|
-
* Belongs to Shirkasoft.
|
|
1443
|
-
*/
|
|
1444
|
-
/**
|
|
1445
|
-
* Narrow "rail" sidebar that expands into sections. Supports sections, roles,
|
|
1446
|
-
* language switching, collapse/expand and responsive tooltips.
|
|
1447
|
-
*/
|
|
1448
|
-
declare class RailSidebarComponent {
|
|
1449
|
-
/** Sections presented as expandable areas of the rail. */
|
|
1450
|
-
sections: _angular_core.InputSignal<RailSidebarSection[]>;
|
|
1451
|
-
/** Current location url used to detect the active section/item. */
|
|
1452
|
-
activeUrl: _angular_core.InputSignal<string>;
|
|
1453
|
-
/** Key of the active section, bindable with [(activeSectionKey)]. */
|
|
1454
|
-
activeSectionKey: _angular_core.ModelSignal<string>;
|
|
1455
|
-
/** Collapsed (rail only) state, bindable with [(collapsed)]. */
|
|
1456
|
-
collapsed: _angular_core.ModelSignal<boolean>;
|
|
1457
|
-
/** Active language code. */
|
|
1458
|
-
activeLang: _angular_core.InputSignal<string>;
|
|
1459
|
-
/** Languages available in the language switcher. */
|
|
1460
|
-
langs: _angular_core.InputSignal<string[]>;
|
|
1461
|
-
/** Brand logo image/url. */
|
|
1462
|
-
logo: _angular_core.InputSignal<string>;
|
|
1463
|
-
/** Application name shown when expanded. */
|
|
1464
|
-
appName: _angular_core.InputSignal<string>;
|
|
1465
|
-
/** Role used to filter items that declare `roles`. */
|
|
1466
|
-
userRole: _angular_core.InputSignal<string>;
|
|
1467
|
-
/** Optional transform applied to item labels (e.g. i18n). */
|
|
1468
|
-
labelPipe: _angular_core.InputSignal<(label: string) => string>;
|
|
1469
|
-
/** Width of the collapsed rail. */
|
|
1470
|
-
railWidth: _angular_core.InputSignal<string>;
|
|
1471
|
-
/** Width when a section is expanded. */
|
|
1472
|
-
expandedWidth: _angular_core.InputSignal<string>;
|
|
1473
|
-
/** Tooltip for the workspace/home action. */
|
|
1474
|
-
workspaceTooltip: _angular_core.InputSignal<string>;
|
|
1475
|
-
/** Tooltip for the logout action. */
|
|
1476
|
-
logoutTooltip: _angular_core.InputSignal<string>;
|
|
1477
|
-
/** Tooltip for collapsing the sidebar. */
|
|
1478
|
-
collapseTooltip: _angular_core.InputSignal<string>;
|
|
1479
|
-
/** Tooltip for expanding the sidebar. */
|
|
1480
|
-
expandTooltip: _angular_core.InputSignal<string>;
|
|
1481
|
-
/** Emitted when a section is selected, with its key and optional route. */
|
|
1482
|
-
sectionSelected: _angular_core.OutputEmitterRef<RailSidebarSectionEvent>;
|
|
1483
|
-
/** Emitted when a navigation item is clicked. */
|
|
1484
|
-
itemClick: _angular_core.OutputEmitterRef<RailSidebarItem>;
|
|
1485
|
-
/** Emitted with the next language code when the user switches language. */
|
|
1486
|
-
setLang: _angular_core.OutputEmitterRef<string>;
|
|
1487
|
-
/** Emitted when the user requests to log out. */
|
|
1488
|
-
logoutRequested: _angular_core.OutputEmitterRef<void>;
|
|
1489
|
-
/** Emitted with the new collapsed state after toggling. */
|
|
1490
|
-
toggleSidebar: _angular_core.OutputEmitterRef<boolean>;
|
|
1491
|
-
/** Emitted when the workspace/home entry is clicked. */
|
|
1492
|
-
workspaceClick: _angular_core.OutputEmitterRef<void>;
|
|
1493
|
-
protected getIcon: (name: any) => any;
|
|
1494
|
-
/** Set of group ids currently expanded. */
|
|
1495
|
-
protected expandedGroups: _angular_core.WritableSignal<Set<string>>;
|
|
1496
|
-
constructor();
|
|
1497
|
-
/** Current sidebar width depending on the collapsed state. */
|
|
1498
|
-
protected width: _angular_core.Signal<string>;
|
|
1499
|
-
/** The section currently selected. */
|
|
1500
|
-
protected activeSection: _angular_core.Signal<RailSidebarSection | null>;
|
|
1501
|
-
/** Items of the active section, filtered by role. */
|
|
1502
|
-
protected navItems: _angular_core.Signal<RailSidebarItem[]>;
|
|
1503
|
-
/** Applies the `labelPipe` transform to a label. */
|
|
1504
|
-
protected label(label: string): string;
|
|
1505
|
-
/** Whether the section matches the active key. */
|
|
1506
|
-
protected isSectionActive(section: RailSidebarSection): boolean;
|
|
1507
|
-
/** Whether the item is the best route match for the active url. */
|
|
1508
|
-
protected isItemActive(item: RailSidebarItem): boolean;
|
|
1509
|
-
/** Whether one of the item's children matches the active url. */
|
|
1510
|
-
protected isGroupActive(item: RailSidebarItem): boolean;
|
|
1511
|
-
/** Exact or prefix match between a router link and the active url. */
|
|
1512
|
-
private matchesUrl;
|
|
1513
|
-
/** Longest (most specific) item whose route matches the active url. */
|
|
1514
|
-
private bestMatchItem;
|
|
1515
|
-
/** Whether a group is expanded. */
|
|
1516
|
-
protected isGroupExpanded(item: RailSidebarItem): boolean;
|
|
1517
|
-
/** Toggles the expanded state of a group. */
|
|
1518
|
-
protected toggleGroup(item: RailSidebarItem): void;
|
|
1519
|
-
/** Selects a section, emits `sectionSelected` and expands the rail when collapsed. */
|
|
1520
|
-
protected onSectionClick(section: RailSidebarSection): void;
|
|
1521
|
-
/** Emits `itemClick` for a navigation item (skipping disabled items). */
|
|
1522
|
-
protected onItemClick(item: RailSidebarItem): void;
|
|
1523
|
-
/** Emits `workspaceClick` and expands the sidebar if it was collapsed. */
|
|
1524
|
-
protected onWorkspace(): void;
|
|
1525
|
-
/** Cycles to the next language and emits `setLang`. */
|
|
1526
|
-
protected onToggleLang(): void;
|
|
1527
|
-
/** Toggles collapse and emits `toggleSidebar`. */
|
|
1528
|
-
protected onToggleSidebar(): void;
|
|
1529
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<RailSidebarComponent, never>;
|
|
1530
|
-
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>;
|
|
1531
|
-
}
|
|
1532
|
-
|
|
1533
|
-
/**
|
|
1534
|
-
* Shirkasoft UI Components.
|
|
1535
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1536
|
-
* Belongs to Shirkasoft.
|
|
1537
|
-
*/
|
|
1538
|
-
/**
|
|
1539
|
-
* Chart.js wrapper that renders line, bar, pie, doughnut or polarArea charts
|
|
1540
|
-
* and updates them reactively as the inputs change.
|
|
1541
|
-
*/
|
|
1542
|
-
declare class ChartComponent implements AfterViewInit, OnDestroy {
|
|
1543
|
-
/** Guarantees Chart.js plugins are only registered once. */
|
|
1544
|
-
private static registered;
|
|
1545
|
-
/** Type of chart to render. */
|
|
1546
|
-
type: _angular_core.InputSignal<"line" | "bar" | "pie" | "doughnut" | "polarArea">;
|
|
1547
|
-
/** Chart.js datasets payload. */
|
|
1548
|
-
data: _angular_core.InputSignal<any>;
|
|
1549
|
-
/** Chart.js options object. */
|
|
1550
|
-
options: _angular_core.InputSignal<any>;
|
|
1551
|
-
/** Reference to the inner canvas element. */
|
|
1552
|
-
private canvasRef;
|
|
1553
|
-
/** Live Chart.js instance. */
|
|
1554
|
-
private chartInstance;
|
|
1555
|
-
/** Whether the view has been initialized yet. */
|
|
1556
|
-
private initialized;
|
|
1557
|
-
constructor();
|
|
1558
|
-
/** Creates the initial chart once the canvas is available. */
|
|
1559
|
-
ngAfterViewInit(): void;
|
|
1560
|
-
/** Destroys the Chart.js instance. */
|
|
1561
|
-
ngOnDestroy(): void;
|
|
1562
|
-
/** Clears the canvas by reassigning its width. */
|
|
1563
|
-
private resetCanvas;
|
|
1564
|
-
/** Creates a new Chart.js instance on the canvas. */
|
|
1565
|
-
private initChart;
|
|
1566
|
-
/** Deep clones a value to detach it from Angular's reactive objects. */
|
|
1567
|
-
private deepClone;
|
|
1568
|
-
/** Applies the new data/options, rebuilding the chart when the type changes. */
|
|
1569
|
-
private updateChart;
|
|
1570
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ChartComponent, never>;
|
|
1571
|
-
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>;
|
|
1572
|
-
}
|
|
1573
|
-
|
|
1574
|
-
/**
|
|
1575
|
-
* Shirkasoft UI Components.
|
|
1576
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1577
|
-
* Belongs to Shirkasoft.
|
|
1578
|
-
*/
|
|
1579
|
-
/** Default dataset colors used by the ChartComponent when no palette is provided. */
|
|
1580
|
-
declare const COLOR_PALETTE: {
|
|
1581
|
-
bg: string;
|
|
1582
|
-
border: string;
|
|
1583
|
-
}[];
|
|
1584
|
-
/**
|
|
1585
|
-
* Reads the current `--shk-*` CSS variables from the document and returns
|
|
1586
|
-
* the text, muted and border colors used by charts to follow the active theme.
|
|
1587
|
-
*/
|
|
1588
|
-
declare function readThemeColors(): {
|
|
1589
|
-
text: string;
|
|
1590
|
-
muted: string;
|
|
1591
|
-
border: string;
|
|
1592
|
-
};
|
|
1593
|
-
|
|
1594
|
-
/**
|
|
1595
|
-
* Shirkasoft UI Components.
|
|
1596
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1597
|
-
* Belongs to Shirkasoft.
|
|
1598
|
-
*/
|
|
1599
|
-
/** A chip shown under a sub item (time, pricing model, quantity, etc). */
|
|
1600
|
-
interface TimelineMeta {
|
|
1601
|
-
icon: string | any;
|
|
1602
|
-
label?: string;
|
|
1603
|
-
value: string;
|
|
1604
|
-
}
|
|
1605
|
-
/** A row inside a timeline item (e.g. an activity of a tour day). */
|
|
1606
|
-
interface TimelineSubItem {
|
|
1607
|
-
id: string | number;
|
|
1608
|
-
title: string;
|
|
1609
|
-
subtitle?: string;
|
|
1610
|
-
/** Used to look up icon / color in `iconMap` and `iconColors`. */
|
|
1611
|
-
type?: string;
|
|
1612
|
-
/** Overrides the resolved icon (name or component). */
|
|
1613
|
-
icon?: string | any;
|
|
1614
|
-
/** Hex background for the icon box (fallback). */
|
|
1615
|
-
color?: string;
|
|
1616
|
-
/** Hex text color for the icon (fallback). */
|
|
1617
|
-
colorText?: string;
|
|
1618
|
-
/** Custom CSS classes for the icon box (takes precedence over inline colors). */
|
|
1619
|
-
iconClass?: string;
|
|
1620
|
-
optional?: boolean;
|
|
1621
|
-
optionalLabel?: string;
|
|
1622
|
-
meta?: TimelineMeta[];
|
|
1623
|
-
price?: string | number;
|
|
1624
|
-
}
|
|
1625
|
-
/** A single event in the timeline (e.g. a tour day). */
|
|
1626
|
-
interface TimelineItem {
|
|
1627
|
-
id: string | number;
|
|
1628
|
-
/** Text shown inside the marker (falls back to the auto index). */
|
|
1629
|
-
markerText?: string | number;
|
|
1630
|
-
title?: string;
|
|
1631
|
-
subtitle?: string;
|
|
1632
|
-
description?: string;
|
|
1633
|
-
/** Small pill shown above the title (e.g. "Día 1"). */
|
|
1634
|
-
badge?: string | number;
|
|
1635
|
-
badgeIcon?: string | any;
|
|
1636
|
-
/** CSS classes for the marker (falls back to the cycled gradient palette). */
|
|
1637
|
-
color?: string;
|
|
1638
|
-
subItems?: TimelineSubItem[];
|
|
1639
|
-
}
|
|
1640
|
-
/** A button rendered in the header. */
|
|
1641
|
-
interface TimelineAction {
|
|
1642
|
-
label: string;
|
|
1643
|
-
icon: string | any;
|
|
1644
|
-
onClick: () => void;
|
|
1645
|
-
class?: string;
|
|
1646
|
-
isVisible?: () => boolean;
|
|
1647
|
-
isDisabled?: () => boolean;
|
|
1648
|
-
}
|
|
1649
|
-
/** An action rendered in the item card footer. */
|
|
1650
|
-
interface TimelineItemAction {
|
|
1651
|
-
label: string | ((item: TimelineItem) => string);
|
|
1652
|
-
icon: string | any | ((item: TimelineItem) => string | any);
|
|
1653
|
-
onClick: (item: TimelineItem) => void;
|
|
1654
|
-
class?: string | ((item: TimelineItem) => string);
|
|
1655
|
-
isVisible?: (item: TimelineItem) => boolean;
|
|
1656
|
-
isDisabled?: (item: TimelineItem) => boolean;
|
|
1657
|
-
}
|
|
1658
|
-
/** An action rendered on hover over a sub item. */
|
|
1659
|
-
interface TimelineSubItemAction {
|
|
1660
|
-
label: string | ((item: TimelineItem, subItem: TimelineSubItem) => string);
|
|
1661
|
-
icon: string | any | ((item: TimelineItem, subItem: TimelineSubItem) => string | any);
|
|
1662
|
-
onClick: (item: TimelineItem, subItem: TimelineSubItem) => void;
|
|
1663
|
-
isVisible?: (item: TimelineItem, subItem: TimelineSubItem) => boolean;
|
|
1664
|
-
isDisabled?: (item: TimelineItem, subItem: TimelineSubItem) => boolean;
|
|
1665
|
-
}
|
|
1666
|
-
type TimelineAlignment = 'left' | 'alternate';
|
|
1667
|
-
type TimelineMarkerSize = 'sm' | 'md' | 'lg';
|
|
1668
|
-
declare const DEFAULT_MARKER_GRADIENTS: string[];
|
|
1669
|
-
/** Supplier-type style palette used by the original wac-app timeline. */
|
|
1670
|
-
declare const DEFAULT_SUPPLIER_ICON_COLORS: Record<string, {
|
|
1671
|
-
bg: string;
|
|
1672
|
-
text: string;
|
|
1673
|
-
}>;
|
|
1674
|
-
/** Maps a sub-item `type` to a lucide icon component. */
|
|
1675
|
-
declare const DEFAULT_SUPPLIER_TYPE_ICONS: Record<string, any>;
|
|
1676
|
-
declare class TimelineComponent {
|
|
1677
|
-
protected getIcon: (name: any) => any;
|
|
1678
|
-
/** Timeline data. */
|
|
1679
|
-
items: _angular_core.InputSignal<TimelineItem[]>;
|
|
1680
|
-
/** 'left' = line and markers on the left; 'alternate' = cards alternate around a centered line on lg+. */
|
|
1681
|
-
alignment: _angular_core.InputSignal<TimelineAlignment>;
|
|
1682
|
-
/** Shows/hides the vertical connector line. */
|
|
1683
|
-
showLine: _angular_core.InputSignal<boolean>;
|
|
1684
|
-
/** Marker diameter. */
|
|
1685
|
-
markerSize: _angular_core.InputSignal<TimelineMarkerSize>;
|
|
1686
|
-
/** Gradient classes cycled across markers when the item has no `color`. */
|
|
1687
|
-
markerGradients: _angular_core.InputSignal<string[]>;
|
|
1688
|
-
/** Shows the info column on the opposite side of the card (alternate mode, lg+). */
|
|
1689
|
-
showOpposite: _angular_core.InputSignal<boolean>;
|
|
1690
|
-
/** Shows the item description. */
|
|
1691
|
-
showDescription: _angular_core.InputSignal<boolean>;
|
|
1692
|
-
/** Shows meta chips inside sub items. */
|
|
1693
|
-
showSubItemMeta: _angular_core.InputSignal<boolean>;
|
|
1694
|
-
/** Shows the price of each sub item. */
|
|
1695
|
-
showSubItemPrice: _angular_core.InputSignal<boolean>;
|
|
1696
|
-
/** Auto-append "N {subItemCountLabel}" under the title when the item has no subtitle. */
|
|
1697
|
-
showSubItemCount: _angular_core.InputSignal<boolean>;
|
|
1698
|
-
subItemCountLabel: _angular_core.InputSignal<string>;
|
|
1699
|
-
showHeader: _angular_core.InputSignal<boolean>;
|
|
1700
|
-
headerTitle: _angular_core.InputSignal<string>;
|
|
1701
|
-
/** Convenience "add" button in the header. */
|
|
1702
|
-
showAddItem: _angular_core.InputSignal<boolean>;
|
|
1703
|
-
addItemLabel: _angular_core.InputSignal<string>;
|
|
1704
|
-
addItemIcon: _angular_core.InputSignal<string>;
|
|
1705
|
-
addItemTooltip: _angular_core.InputSignal<string>;
|
|
1706
|
-
headerActions: _angular_core.InputSignal<TimelineAction[]>;
|
|
1707
|
-
/** Renders "+ Añadir sub-elemento" in each card footer. */
|
|
1708
|
-
showAddSubItem: _angular_core.InputSignal<boolean>;
|
|
1709
|
-
addSubItemLabel: _angular_core.InputSignal<string>;
|
|
1710
|
-
addSubItemTooltip: _angular_core.InputSignal<string>;
|
|
1711
|
-
itemActions: _angular_core.InputSignal<TimelineItemAction[]>;
|
|
1712
|
-
subItemActions: _angular_core.InputSignal<TimelineSubItemAction[]>;
|
|
1713
|
-
/** Maps a sub-item `type` to a lucide icon (name or component). */
|
|
1714
|
-
iconMap: _angular_core.InputSignal<{
|
|
1715
|
-
[type: string]: any;
|
|
1716
|
-
}>;
|
|
1717
|
-
/** Maps a sub-item `type` to its icon-box colors. */
|
|
1718
|
-
iconColors: _angular_core.InputSignal<{
|
|
1719
|
-
[type: string]: {
|
|
1720
|
-
bg: string;
|
|
1721
|
-
text: string;
|
|
1722
|
-
};
|
|
1723
|
-
}>;
|
|
1724
|
-
/** Icon used when nothing matches. */
|
|
1725
|
-
fallbackIcon: _angular_core.InputSignal<any>;
|
|
1726
|
-
showEmptyState: _angular_core.InputSignal<boolean>;
|
|
1727
|
-
emptyMessage: _angular_core.InputSignal<string>;
|
|
1728
|
-
emptyIcon: _angular_core.InputSignal<any>;
|
|
1729
|
-
editTooltip: _angular_core.InputSignal<string>;
|
|
1730
|
-
deleteTooltip: _angular_core.InputSignal<string>;
|
|
1731
|
-
optionalLabel: _angular_core.InputSignal<string>;
|
|
1732
|
-
noSubItemsMessage: _angular_core.InputSignal<string>;
|
|
1733
|
-
/** Custom content templates: keys 'marker', 'opposite', 'content', 'description', 'subItem', 'empty'. */
|
|
1734
|
-
customTemplates: _angular_core.InputSignal<{
|
|
1735
|
-
[key: string]: any;
|
|
1736
|
-
}>;
|
|
1737
|
-
addItem: _angular_core.OutputEmitterRef<void>;
|
|
1738
|
-
addSubItem: _angular_core.OutputEmitterRef<TimelineItem>;
|
|
1739
|
-
itemClick: _angular_core.OutputEmitterRef<TimelineItem>;
|
|
1740
|
-
subItemClick: _angular_core.OutputEmitterRef<{
|
|
1741
|
-
item: TimelineItem;
|
|
1742
|
-
subItem: TimelineSubItem;
|
|
1743
|
-
}>;
|
|
1744
|
-
markerText(item: TimelineItem, index: number): string | number;
|
|
1745
|
-
markerClass(item: TimelineItem, index: number): string;
|
|
1746
|
-
markerColumnClass(): string;
|
|
1747
|
-
alternateMarkerColumnClass(): string;
|
|
1748
|
-
lineClass(): string;
|
|
1749
|
-
subItemIconName(sub: TimelineSubItem): string;
|
|
1750
|
-
subItemStyle(sub: TimelineSubItem): {
|
|
1751
|
-
[key: string]: string;
|
|
1752
|
-
} | undefined;
|
|
1753
|
-
isHeaderActionVisible(action: TimelineAction): boolean;
|
|
1754
|
-
isHeaderActionDisabled(action: TimelineAction): boolean;
|
|
1755
|
-
getItemActionLabel(action: TimelineItemAction, item: TimelineItem): string;
|
|
1756
|
-
getItemActionIconName(action: TimelineItemAction, item: TimelineItem): any;
|
|
1757
|
-
getItemActionClass(action: TimelineItemAction, item: TimelineItem): string;
|
|
1758
|
-
isItemActionVisible(action: TimelineItemAction, item: TimelineItem): boolean;
|
|
1759
|
-
isItemActionDisabled(action: TimelineItemAction, item: TimelineItem): boolean;
|
|
1760
|
-
getSubItemActionLabel(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): string;
|
|
1761
|
-
getSubItemActionIconName(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): any;
|
|
1762
|
-
isSubItemActionVisible(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): boolean;
|
|
1763
|
-
isSubItemActionDisabled(action: TimelineSubItemAction, item: TimelineItem, sub: TimelineSubItem): boolean;
|
|
1764
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TimelineComponent, never>;
|
|
1765
|
-
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>;
|
|
1766
|
-
}
|
|
1767
|
-
|
|
1768
|
-
/** An action button rendered on the right side of the fieldset header. */
|
|
1769
|
-
interface FieldsetHeaderAction {
|
|
1770
|
-
label: string;
|
|
1771
|
-
icon: string | any;
|
|
1772
|
-
onClick: () => void;
|
|
1773
|
-
class?: string;
|
|
1774
|
-
isVisible?: () => boolean;
|
|
1775
|
-
isDisabled?: () => boolean;
|
|
1776
|
-
}
|
|
1777
|
-
/**
|
|
1778
|
-
* Shirkasoft UI Components.
|
|
1779
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1780
|
-
* Belongs to Shirkasoft.
|
|
1781
|
-
*/
|
|
1782
|
-
/**
|
|
1783
|
-
* Collapsible content group with a legend header, optional leading icon,
|
|
1784
|
-
* badge and action buttons on the right side.
|
|
1785
|
-
*/
|
|
1786
|
-
declare class FieldsetComponent {
|
|
1787
|
-
protected getIcon: (name: any) => any;
|
|
1788
|
-
/** Title shown in the header. */
|
|
1789
|
-
legend: _angular_core.InputSignal<string>;
|
|
1790
|
-
/** Collapsed state (default: collapsed). Two-way bindable with [(collapsed)]. */
|
|
1791
|
-
collapsed: _angular_core.ModelSignal<boolean>;
|
|
1792
|
-
/** Whether the header toggles the content. */
|
|
1793
|
-
toggleable: _angular_core.InputSignal<boolean>;
|
|
1794
|
-
/** Shows the expand/collapse icon button. */
|
|
1795
|
-
showToggleIcon: _angular_core.InputSignal<boolean>;
|
|
1796
|
-
/** Optional leading icon shown next to the legend. */
|
|
1797
|
-
icon: _angular_core.InputSignal<any>;
|
|
1798
|
-
/** Optional badge/count shown after the legend. */
|
|
1799
|
-
badge: _angular_core.InputSignal<string | number>;
|
|
1800
|
-
/** CSS classes for the badge (override). */
|
|
1801
|
-
badgeClass: _angular_core.InputSignal<string>;
|
|
1802
|
-
/** Icon shown when collapsed. */
|
|
1803
|
-
collapsedIcon: _angular_core.InputSignal<string>;
|
|
1804
|
-
/** Icon shown when expanded. */
|
|
1805
|
-
expandedIcon: _angular_core.InputSignal<string>;
|
|
1806
|
-
/** Action buttons rendered on the right side of the header. */
|
|
1807
|
-
headerActions: _angular_core.InputSignal<FieldsetHeaderAction[]>;
|
|
1808
|
-
/** Custom content templates: key 'legend' (context: $implicit collapsed, expanded). */
|
|
1809
|
-
customTemplates: _angular_core.InputSignal<{
|
|
1810
|
-
[key: string]: any;
|
|
1811
|
-
}>;
|
|
1812
|
-
/** CSS classes for the extra shadow styling of the panel. */
|
|
1813
|
-
hasShadow: _angular_core.InputSignal<boolean>;
|
|
1814
|
-
/** Accessible label for the expand action. */
|
|
1815
|
-
expandLabel: _angular_core.InputSignal<string>;
|
|
1816
|
-
/** Accessible label for the collapse action. */
|
|
1817
|
-
collapseLabel: _angular_core.InputSignal<string>;
|
|
1818
|
-
/** Emits the new expanded state when toggled. */
|
|
1819
|
-
toggle: _angular_core.OutputEmitterRef<boolean>;
|
|
1820
|
-
/** Emitted when the fieldset is expanded. */
|
|
1821
|
-
expand: _angular_core.OutputEmitterRef<void>;
|
|
1822
|
-
/** Emitted when the fieldset is collapsed. */
|
|
1823
|
-
collapse: _angular_core.OutputEmitterRef<void>;
|
|
1824
|
-
/** Stable id linking the header button and the content region. */
|
|
1825
|
-
contentId: string;
|
|
1826
|
-
/** Toggles the collapsed state and emits the new state (unless not toggleable). */
|
|
1827
|
-
onToggle(): void;
|
|
1828
|
-
/** Whether a header action can be rendered. */
|
|
1829
|
-
isHeaderActionVisible(action: FieldsetHeaderAction): boolean;
|
|
1830
|
-
/** Whether a header action should be disabled. */
|
|
1831
|
-
isHeaderActionDisabled(action: FieldsetHeaderAction): boolean;
|
|
1832
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<FieldsetComponent, never>;
|
|
1833
|
-
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>;
|
|
1834
|
-
}
|
|
1835
|
-
|
|
1836
|
-
/** A step of the wizard shown in the stepper. */
|
|
1837
|
-
interface WizardStep {
|
|
1838
|
-
id: string | number;
|
|
1839
|
-
label: string;
|
|
1840
|
-
/** Optional lucide icon rendered inside the step circle. */
|
|
1841
|
-
icon?: string;
|
|
1842
|
-
/** Overrides the primary footer button label for this step. */
|
|
1843
|
-
primaryLabel?: string;
|
|
1844
|
-
/** Overrides the primary footer button icon for this step. */
|
|
1845
|
-
primaryIcon?: string;
|
|
1846
|
-
}
|
|
1847
|
-
/** Declares a step's content template: <ng-template shkWizardStepContent="stepId">…</ng-template>. */
|
|
1848
|
-
declare class ShkWizardStepContent {
|
|
1849
|
-
templateRef: TemplateRef<unknown>;
|
|
1850
|
-
stepId: _angular_core.InputSignal<string | number>;
|
|
1851
|
-
constructor(templateRef: TemplateRef<unknown>);
|
|
1852
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ShkWizardStepContent, never>;
|
|
1853
|
-
static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ShkWizardStepContent, "ng-template[shkWizardStepContent]", never, { "stepId": { "alias": "shkWizardStepContent"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
1854
|
-
}
|
|
1855
|
-
/**
|
|
1856
|
-
* Shirkasoft UI Components.
|
|
1857
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1858
|
-
* Belongs to Shirkasoft.
|
|
1859
|
-
*/
|
|
1860
|
-
/**
|
|
1861
|
-
* Multi-step wizard with a progress stepper, header, footer actions and
|
|
1862
|
-
* content templates declared with `shkWizardStepContent`.
|
|
1863
|
-
*/
|
|
1864
|
-
declare class WizardComponent {
|
|
1865
|
-
protected getIcon: (name: any) => any;
|
|
1866
|
-
/** Steps definition shown in the stepper and used to resolve step content. */
|
|
1867
|
-
steps: _angular_core.InputSignal<WizardStep[]>;
|
|
1868
|
-
/** Active step id. Two-way bindable with [(currentStep)]. Null resolves to the first step. */
|
|
1869
|
-
currentStep: _angular_core.ModelSignal<string | number | null>;
|
|
1870
|
-
/** Shows the sticky header (back button + title). */
|
|
1871
|
-
showHeader: _angular_core.InputSignal<boolean>;
|
|
1872
|
-
headerTitle: _angular_core.InputSignal<string>;
|
|
1873
|
-
headerSubtitle: _angular_core.InputSignal<string>;
|
|
1874
|
-
/** Shows the round back button in the header. */
|
|
1875
|
-
showBackButton: _angular_core.InputSignal<boolean>;
|
|
1876
|
-
backTooltip: _angular_core.InputSignal<string>;
|
|
1877
|
-
/** Optional lucide icon shown before the title. */
|
|
1878
|
-
headerIcon: _angular_core.InputSignal<string>;
|
|
1879
|
-
/** Shows the progress stepper (hide it for edit mode, like wac-app does). */
|
|
1880
|
-
showStepper: _angular_core.InputSignal<boolean>;
|
|
1881
|
-
/** Lets the user click on previous steps to jump back. */
|
|
1882
|
-
stepperClickable: _angular_core.InputSignal<boolean>;
|
|
1883
|
-
showFooter: _angular_core.InputSignal<boolean>;
|
|
1884
|
-
/** Shows a "Paso X / N" counter on the left of the footer. */
|
|
1885
|
-
showStepCounter: _angular_core.InputSignal<boolean>;
|
|
1886
|
-
stepCounterPrefix: _angular_core.InputSignal<string>;
|
|
1887
|
-
/** Shows the Cancel button on the first step (instead of a back button). */
|
|
1888
|
-
showCancel: _angular_core.InputSignal<boolean>;
|
|
1889
|
-
/** Auto-advances to the next step on the primary button when it is not the last step. */
|
|
1890
|
-
advanceOnNext: _angular_core.InputSignal<boolean>;
|
|
1891
|
-
prevLabel: _angular_core.InputSignal<string>;
|
|
1892
|
-
prevIcon: _angular_core.InputSignal<string>;
|
|
1893
|
-
cancelLabel: _angular_core.InputSignal<string>;
|
|
1894
|
-
cancelIcon: _angular_core.InputSignal<string>;
|
|
1895
|
-
nextLabel: _angular_core.InputSignal<string>;
|
|
1896
|
-
nextIcon: _angular_core.InputSignal<string>;
|
|
1897
|
-
finishLabel: _angular_core.InputSignal<string>;
|
|
1898
|
-
finishIcon: _angular_core.InputSignal<string>;
|
|
1899
|
-
/** Overrides the primary footer button label for every step. */
|
|
1900
|
-
primaryLabel: _angular_core.InputSignal<string | null>;
|
|
1901
|
-
/** Overrides the primary footer button icon for every step. */
|
|
1902
|
-
primaryIcon: _angular_core.InputSignal<string | null>;
|
|
1903
|
-
/** Shows a loading spinner on the primary button and disables it. */
|
|
1904
|
-
primaryLoading: _angular_core.InputSignal<boolean>;
|
|
1905
|
-
/** Disables the primary footer button (e.g. while the step form is invalid). */
|
|
1906
|
-
primaryDisabled: _angular_core.InputSignal<boolean>;
|
|
1907
|
-
back: _angular_core.OutputEmitterRef<void>;
|
|
1908
|
-
cancel: _angular_core.OutputEmitterRef<void>;
|
|
1909
|
-
prev: _angular_core.OutputEmitterRef<void>;
|
|
1910
|
-
next: _angular_core.OutputEmitterRef<void>;
|
|
1911
|
-
finish: _angular_core.OutputEmitterRef<void>;
|
|
1912
|
-
stepChange: _angular_core.OutputEmitterRef<{
|
|
1913
|
-
step: WizardStep | null;
|
|
1914
|
-
index: number;
|
|
1915
|
-
}>;
|
|
1916
|
-
readonly stepContents: _angular_core.Signal<readonly ShkWizardStepContent[]>;
|
|
1917
|
-
currentIndex: _angular_core.Signal<number>;
|
|
1918
|
-
currentStepObj: _angular_core.Signal<WizardStep>;
|
|
1919
|
-
isFirstStep: _angular_core.Signal<boolean>;
|
|
1920
|
-
isLastStep: _angular_core.Signal<boolean>;
|
|
1921
|
-
primaryActionLabel: _angular_core.Signal<string>;
|
|
1922
|
-
primaryActionIcon: _angular_core.Signal<string>;
|
|
1923
|
-
getStepTemplate(id: string | number): TemplateRef<unknown> | undefined;
|
|
1924
|
-
goTo(stepId: string | number): void;
|
|
1925
|
-
onPrev(): void;
|
|
1926
|
-
onNext(): void;
|
|
1927
|
-
onPrimary(): void;
|
|
1928
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<WizardComponent, never>;
|
|
1929
|
-
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>;
|
|
1930
|
-
}
|
|
1931
|
-
|
|
1932
|
-
type SkeletonShape = 'rectangle' | 'circle';
|
|
1933
|
-
type SkeletonAnimation = 'wave' | 'pulse' | 'none';
|
|
1934
|
-
/**
|
|
1935
|
-
* Shirkasoft UI Components.
|
|
1936
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1937
|
-
* Belongs to Shirkasoft.
|
|
1938
|
-
*/
|
|
1939
|
-
/** Placeholder block shown while content is loading. */
|
|
1940
|
-
declare class SkeletonComponent {
|
|
1941
|
-
/** Shape of the skeleton: rectangle (default) or circle. */
|
|
1942
|
-
shape: _angular_core.InputSignal<SkeletonShape>;
|
|
1943
|
-
/** When shape is circle, sets both width and height. */
|
|
1944
|
-
size: _angular_core.InputSignal<string>;
|
|
1945
|
-
/** Width of the rectangle skeleton. */
|
|
1946
|
-
width: _angular_core.InputSignal<string>;
|
|
1947
|
-
/** Height of the rectangle skeleton. */
|
|
1948
|
-
height: _angular_core.InputSignal<string>;
|
|
1949
|
-
/** Custom border radius (rectangle only). */
|
|
1950
|
-
borderRadius: _angular_core.InputSignal<string>;
|
|
1951
|
-
/** Animation effect: 'wave' (default), 'pulse' or 'none'. */
|
|
1952
|
-
animation: _angular_core.InputSignal<SkeletonAnimation>;
|
|
1953
|
-
/** Inline styles applied to the skeleton block. */
|
|
1954
|
-
style: _angular_core.InputSignal<Record<string, string | number>>;
|
|
1955
|
-
/** Extra CSS classes. */
|
|
1956
|
-
styleClass: _angular_core.InputSignal<string>;
|
|
1957
|
-
protected rootStyle: _angular_core.Signal<{
|
|
1958
|
-
[x: string]: string | number;
|
|
1959
|
-
}>;
|
|
1960
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<SkeletonComponent, never>;
|
|
1961
|
-
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>;
|
|
1962
|
-
}
|
|
1963
|
-
|
|
1964
|
-
type ButtonSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warning' | 'danger' | 'help' | 'contrast';
|
|
1965
|
-
type ButtonSize = 'small' | 'large';
|
|
1966
|
-
type ButtonIconPosition = 'left' | 'right' | 'top' | 'bottom';
|
|
1967
|
-
/**
|
|
1968
|
-
* Shirkasoft UI Components.
|
|
1969
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
1970
|
-
* Belongs to Shirkasoft.
|
|
1971
|
-
*/
|
|
1972
|
-
/** Generic button with icon, severity variants, loading state and sizes. */
|
|
1973
|
-
declare class ButtonComponent {
|
|
1974
|
-
/** Text shown inside the button. */
|
|
1975
|
-
label: _angular_core.InputSignal<string>;
|
|
1976
|
-
/** Optional leading lucide icon name or component. */
|
|
1977
|
-
icon: _angular_core.InputSignal<any>;
|
|
1978
|
-
/** Position of the icon relative to the label. */
|
|
1979
|
-
iconPos: _angular_core.InputSignal<ButtonIconPosition>;
|
|
1980
|
-
/** Color variant. Defaults to 'primary'. */
|
|
1981
|
-
severity: _angular_core.InputSignal<ButtonSeverity>;
|
|
1982
|
-
/** Transparent background with a colored border. */
|
|
1983
|
-
outlined: _angular_core.InputSignal<boolean>;
|
|
1984
|
-
/** Borderless button with a colored label. */
|
|
1985
|
-
text: _angular_core.InputSignal<boolean>;
|
|
1986
|
-
/** Adds a soft shadow. */
|
|
1987
|
-
raised: _angular_core.InputSignal<boolean>;
|
|
1988
|
-
/** Fully rounded corners (pill). */
|
|
1989
|
-
rounded: _angular_core.InputSignal<boolean>;
|
|
1990
|
-
/** Size variant. */
|
|
1991
|
-
size: _angular_core.InputSignal<ButtonSize | undefined>;
|
|
1992
|
-
/** Disables the button. */
|
|
1993
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
1994
|
-
/** Shows a spinner and disables the button. */
|
|
1995
|
-
loading: _angular_core.InputSignal<boolean>;
|
|
1996
|
-
/** Icon shown while loading. Defaults to 'refresh'. */
|
|
1997
|
-
loadingIcon: _angular_core.InputSignal<string>;
|
|
1998
|
-
/** Optional text shown instead of the label while loading. */
|
|
1999
|
-
loadingText: _angular_core.InputSignal<string>;
|
|
2000
|
-
/** Native button type. */
|
|
2001
|
-
type: _angular_core.InputSignal<"submit" | "button" | "reset">;
|
|
2002
|
-
/** Accessible label when the button is icon-only. */
|
|
2003
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
2004
|
-
/** Native title tooltip. */
|
|
2005
|
-
title: _angular_core.InputSignal<string>;
|
|
2006
|
-
/** Inline styles applied to the button. */
|
|
2007
|
-
style: _angular_core.InputSignal<Record<string, string | number>>;
|
|
2008
|
-
/** Extra CSS classes. */
|
|
2009
|
-
styleClass: _angular_core.InputSignal<string>;
|
|
2010
|
-
/** Emitted on click with the original MouseEvent. */
|
|
2011
|
-
onClick: _angular_core.OutputEmitterRef<MouseEvent>;
|
|
2012
|
-
protected getIcon: typeof getIcon;
|
|
2013
|
-
protected iconOnly: _angular_core.Signal<boolean>;
|
|
2014
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
|
|
2015
|
-
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>;
|
|
2016
|
-
}
|
|
2017
|
-
|
|
2018
|
-
/**
|
|
2019
|
-
* Shirkasoft UI Components.
|
|
2020
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2021
|
-
* Belongs to Shirkasoft.
|
|
2022
|
-
*/
|
|
2023
|
-
/** SVG radial knob with drag and keyboard support. Implements ControlValueAccessor. */
|
|
2024
|
-
declare class KnobComponent implements ControlValueAccessor {
|
|
2025
|
-
/** Current value. Two-way bindable with [(value)]. */
|
|
2026
|
-
value: _angular_core.ModelSignal<number>;
|
|
2027
|
-
/** Minimum value. */
|
|
2028
|
-
min: _angular_core.InputSignal<number>;
|
|
2029
|
-
/** Maximum value. */
|
|
2030
|
-
max: _angular_core.InputSignal<number>;
|
|
2031
|
-
/** Increment used by arrows and pointer drag rounding. */
|
|
2032
|
-
step: _angular_core.InputSignal<number>;
|
|
2033
|
-
/** Diameter of the knob in px. */
|
|
2034
|
-
size: _angular_core.InputSignal<number>;
|
|
2035
|
-
/** Thickness of the arc stroke. */
|
|
2036
|
-
strokeWidth: _angular_core.InputSignal<number>;
|
|
2037
|
-
/** Color of the filled arc. */
|
|
2038
|
-
valueColor: _angular_core.InputSignal<string>;
|
|
2039
|
-
/** Color of the track arc. */
|
|
2040
|
-
rangeColor: _angular_core.InputSignal<string>;
|
|
2041
|
-
/** Whether the current value is shown in the center. */
|
|
2042
|
-
showValue: _angular_core.InputSignal<boolean>;
|
|
2043
|
-
/** Disables user interaction. */
|
|
2044
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
2045
|
-
/** Blocks editing but keeps the control styled as enabled. */
|
|
2046
|
-
readonly: _angular_core.InputSignal<boolean>;
|
|
2047
|
-
/** Accessible label. */
|
|
2048
|
-
ariaLabel: _angular_core.InputSignal<string>;
|
|
2049
|
-
/** Emitted when the knob value changes. */
|
|
2050
|
-
change: _angular_core.OutputEmitterRef<number>;
|
|
2051
|
-
/** Emitted when the user releases the pointer. */
|
|
2052
|
-
end: _angular_core.OutputEmitterRef<number>;
|
|
2053
|
-
protected knobSvg: _angular_core.Signal<ElementRef<SVGElement> | undefined>;
|
|
2054
|
-
private onChange;
|
|
2055
|
-
private onTouched;
|
|
2056
|
-
private dragging;
|
|
2057
|
-
private formDisabled;
|
|
2058
|
-
/** Effective disabled state combining the `disabled` input and the form binding. */
|
|
2059
|
-
protected effectiveDisabled: _angular_core.Signal<boolean>;
|
|
2060
|
-
protected r: _angular_core.Signal<number>;
|
|
2061
|
-
protected center: _angular_core.Signal<number>;
|
|
2062
|
-
protected fraction: _angular_core.Signal<number>;
|
|
2063
|
-
protected rangeArc: _angular_core.Signal<string>;
|
|
2064
|
-
protected valueArc: _angular_core.Signal<string>;
|
|
2065
|
-
writeValue(value: any): void;
|
|
2066
|
-
registerOnChange(fn: any): void;
|
|
2067
|
-
registerOnTouched(fn: any): void;
|
|
2068
|
-
setDisabledState(isDisabled: boolean): void;
|
|
2069
|
-
onPointerDown(event: PointerEvent): void;
|
|
2070
|
-
onPointerMove(event: PointerEvent): void;
|
|
2071
|
-
onPointerUp(event: PointerEvent): void;
|
|
2072
|
-
updateByKey(step: number): void;
|
|
2073
|
-
private applyEvent;
|
|
2074
|
-
private setValue;
|
|
2075
|
-
private clamp;
|
|
2076
|
-
private getArcPath;
|
|
2077
|
-
private anglePoint;
|
|
2078
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<KnobComponent, never>;
|
|
2079
|
-
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>;
|
|
2080
|
-
}
|
|
2081
|
-
|
|
2082
|
-
/**
|
|
2083
|
-
* Shirkasoft UI Components.
|
|
2084
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2085
|
-
* Belongs to Shirkasoft.
|
|
2086
|
-
*/
|
|
2087
|
-
/** Circular indeterminate spinner. */
|
|
2088
|
-
declare class LoadingSpinnerComponent {
|
|
2089
|
-
/** Diameter of the spinner. */
|
|
2090
|
-
size: _angular_core.InputSignal<string>;
|
|
2091
|
-
/** Border thickness in px. */
|
|
2092
|
-
thickness: _angular_core.InputSignal<number>;
|
|
2093
|
-
/** Color of the moving arc. Defaults to the primary token. */
|
|
2094
|
-
color: _angular_core.InputSignal<string>;
|
|
2095
|
-
/** Optional text shown under the spinner. */
|
|
2096
|
-
label: _angular_core.InputSignal<string>;
|
|
2097
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingSpinnerComponent, never>;
|
|
2098
|
-
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>;
|
|
2099
|
-
}
|
|
2100
|
-
|
|
2101
|
-
/**
|
|
2102
|
-
* Shirkasoft UI Components.
|
|
2103
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2104
|
-
* Belongs to Shirkasoft.
|
|
2105
|
-
*/
|
|
2106
|
-
/** Progress bar with an indeterminate sweep or a determinate percentage. */
|
|
2107
|
-
declare class LoadingBarComponent {
|
|
2108
|
-
/** Height of the bar. */
|
|
2109
|
-
height: _angular_core.InputSignal<string>;
|
|
2110
|
-
/** When true the bar animates without a known percentage. */
|
|
2111
|
-
indeterminate: _angular_core.InputSignal<boolean>;
|
|
2112
|
-
/** Current progress 0-100 when `indeterminate` is false. */
|
|
2113
|
-
progress: _angular_core.InputSignal<number>;
|
|
2114
|
-
/** Fill color. Defaults to the primary token. */
|
|
2115
|
-
color: _angular_core.InputSignal<string>;
|
|
2116
|
-
/** Renders fully rounded ends. */
|
|
2117
|
-
rounded: _angular_core.InputSignal<boolean>;
|
|
2118
|
-
/** Fill width/style for the determinate mode, empty for indeterminate. */
|
|
2119
|
-
protected fillStyle: _angular_core.Signal<{
|
|
2120
|
-
width?: undefined;
|
|
2121
|
-
} | {
|
|
2122
|
-
width: string;
|
|
2123
|
-
}>;
|
|
2124
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingBarComponent, never>;
|
|
2125
|
-
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>;
|
|
2126
|
-
}
|
|
2127
|
-
|
|
2128
|
-
/** Backdrop style behind the overlay: none, light or dark. */
|
|
2129
|
-
type LoadingOverlayBackdrop = 'transparent' | 'light' | 'dark';
|
|
2130
|
-
/**
|
|
2131
|
-
* Shirkasoft UI Components.
|
|
2132
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2133
|
-
* Belongs to Shirkasoft.
|
|
2134
|
-
*/
|
|
2135
|
-
/** Wraps content and shows a centered spinner over it while `visible` is true. */
|
|
2136
|
-
declare class LoadingOverlayComponent {
|
|
2137
|
-
/** Controls whether the spinner layer is shown. */
|
|
2138
|
-
visible: _angular_core.InputSignal<boolean>;
|
|
2139
|
-
/** Optional text under the spinner. */
|
|
2140
|
-
message: _angular_core.InputSignal<string>;
|
|
2141
|
-
/** Diameter of the spinner. */
|
|
2142
|
-
spinnerSize: _angular_core.InputSignal<string>;
|
|
2143
|
-
/** Spinner color. Defaults to the primary token. */
|
|
2144
|
-
color: _angular_core.InputSignal<string>;
|
|
2145
|
-
/** Backdrop behind the spinner. */
|
|
2146
|
-
backdrop: _angular_core.InputSignal<LoadingOverlayBackdrop>;
|
|
2147
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingOverlayComponent, never>;
|
|
2148
|
-
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>;
|
|
2149
|
-
}
|
|
2150
|
-
|
|
2151
|
-
/**
|
|
2152
|
-
* Shirkasoft UI Components.
|
|
2153
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2154
|
-
* Belongs to Shirkasoft.
|
|
2155
|
-
*/
|
|
2156
|
-
/** Bouncing dots loading indicator. */
|
|
2157
|
-
declare class LoadingDotsComponent {
|
|
2158
|
-
/** Diameter of each dot. */
|
|
2159
|
-
size: _angular_core.InputSignal<string>;
|
|
2160
|
-
/** Dot color. Defaults to the primary token. */
|
|
2161
|
-
color: _angular_core.InputSignal<string>;
|
|
2162
|
-
/** Number of dots. */
|
|
2163
|
-
count: _angular_core.InputSignal<number>;
|
|
2164
|
-
/** Optional text shown next to the dots. */
|
|
2165
|
-
label: _angular_core.InputSignal<string>;
|
|
2166
|
-
/** Array of dot indices to render based on the `count` input. */
|
|
2167
|
-
protected dots: _angular_core.Signal<unknown[]>;
|
|
2168
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<LoadingDotsComponent, never>;
|
|
2169
|
-
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>;
|
|
2170
|
-
}
|
|
2171
|
-
|
|
2172
|
-
/**
|
|
2173
|
-
* Shirkasoft UI Components.
|
|
2174
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2175
|
-
* Belongs to Shirkasoft.
|
|
2176
|
-
*/
|
|
2177
|
-
/** Shared state between shk-abs and its tab/tabpanel children. */
|
|
2178
|
-
declare class TabsService {
|
|
2179
|
-
/** Currently active tab value. */
|
|
2180
|
-
readonly active: _angular_core.WritableSignal<any>;
|
|
2181
|
-
/** Sets the active tab to the given value. */
|
|
2182
|
-
select(value: any): void;
|
|
2183
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsService, never>;
|
|
2184
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<TabsService>;
|
|
2185
|
-
}
|
|
2186
|
-
|
|
2187
|
-
/**
|
|
2188
|
-
* Shirkasoft UI Components.
|
|
2189
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2190
|
-
* Belongs to Shirkasoft.
|
|
2191
|
-
*/
|
|
2192
|
-
/** Container for tab panels. Renders its projected shk-tablist/shh-tab content. */
|
|
2193
|
-
declare class TabsComponent {
|
|
2194
|
-
/** Currently active tab value. Two-way bindable with [(value)]. */
|
|
2195
|
-
value: _angular_core.ModelSignal<any>;
|
|
2196
|
-
/** Allows the tab header to scroll horizontally when it overflows. */
|
|
2197
|
-
scrollable: _angular_core.InputSignal<boolean>;
|
|
2198
|
-
/** Shared service used to sync the active tab with the children. */
|
|
2199
|
-
protected tabsSvc: TabsService;
|
|
2200
|
-
constructor();
|
|
2201
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabsComponent, never>;
|
|
2202
|
-
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>;
|
|
2203
|
-
}
|
|
2204
|
-
|
|
2205
|
-
/**
|
|
2206
|
-
* Shirkasoft UI Components.
|
|
2207
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2208
|
-
* Belongs to Shirkasoft.
|
|
2209
|
-
*/
|
|
2210
|
-
/** Horizontal bar that contains the shk-tab headers. */
|
|
2211
|
-
declare class TablistComponent {
|
|
2212
|
-
/** Allows the header to scroll horizontally when it overflows. */
|
|
2213
|
-
scrollable: _angular_core.InputSignal<boolean>;
|
|
2214
|
-
/** Extra CSS classes. */
|
|
2215
|
-
styleClass: _angular_core.InputSignal<string>;
|
|
2216
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TablistComponent, never>;
|
|
2217
|
-
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>;
|
|
2218
|
-
}
|
|
2219
|
-
|
|
2220
|
-
/**
|
|
2221
|
-
* Shirkasoft UI Components.
|
|
2222
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2223
|
-
* Belongs to Shirkasoft.
|
|
2224
|
-
*/
|
|
2225
|
-
/** A single tab header. Clicking it activates the matching panel. */
|
|
2226
|
-
declare class TabComponent {
|
|
2227
|
-
/** Value that links this tab to its panel. */
|
|
2228
|
-
value: _angular_core.InputSignal<any>;
|
|
2229
|
-
/** Disables the tab. */
|
|
2230
|
-
disabled: _angular_core.InputSignal<boolean>;
|
|
2231
|
-
/** Extra CSS classes. */
|
|
2232
|
-
styleClass: _angular_core.InputSignal<string>;
|
|
2233
|
-
/** Shared service used to read the active tab value. */
|
|
2234
|
-
protected tabsSvc: TabsService;
|
|
2235
|
-
/** Whether this tab is the active one. */
|
|
2236
|
-
protected active: _angular_core.Signal<boolean>;
|
|
2237
|
-
/** Activates this tab through the shared service. */
|
|
2238
|
-
select(): void;
|
|
2239
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabComponent, never>;
|
|
2240
|
-
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>;
|
|
2241
|
-
}
|
|
2242
|
-
|
|
2243
|
-
/**
|
|
2244
|
-
* Shirkasoft UI Components.
|
|
2245
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2246
|
-
* Belongs to Shirkasoft.
|
|
2247
|
-
*/
|
|
2248
|
-
/** Container that groups the shk-tabpanel content sections. */
|
|
2249
|
-
declare class TabpanelsComponent {
|
|
2250
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabpanelsComponent, never>;
|
|
2251
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabpanelsComponent, "shk-tabpanels", never, {}, {}, never, ["*"], true, never>;
|
|
2252
|
-
}
|
|
2253
|
-
|
|
2254
|
-
/**
|
|
2255
|
-
* Shirkasoft UI Components.
|
|
2256
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2257
|
-
* Belongs to Shirkasoft.
|
|
2258
|
-
*/
|
|
2259
|
-
/** Content section shown only while its value is the active tab. */
|
|
2260
|
-
declare class TabPanelComponent {
|
|
2261
|
-
/** Value that links this panel to its tab. */
|
|
2262
|
-
value: _angular_core.InputSignal<any>;
|
|
2263
|
-
/** Shared service used to read the active tab value. */
|
|
2264
|
-
protected tabsSvc: TabsService;
|
|
2265
|
-
/** Whether this panel is the active one. */
|
|
2266
|
-
protected active: _angular_core.Signal<boolean>;
|
|
2267
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabPanelComponent, never>;
|
|
2268
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabPanelComponent, "shk-tabpanel", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
|
|
2269
|
-
}
|
|
2270
|
-
|
|
2271
|
-
/**
|
|
2272
|
-
* Shirkasoft UI Components.
|
|
2273
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2274
|
-
* Belongs to Shirkasoft.
|
|
2275
|
-
*/
|
|
2276
|
-
/** A single breadcrumb entry with an optional navigation route. */
|
|
2277
|
-
interface BreadcrumbItem {
|
|
2278
|
-
label: string;
|
|
2279
|
-
route?: string;
|
|
2280
|
-
}
|
|
2281
|
-
/**
|
|
2282
|
-
* Global breadcrumb state. Components and pages write the current trail via
|
|
2283
|
-
* `set()` and observatories read it through `breadcrumbs$`.
|
|
2284
|
-
*/
|
|
2285
|
-
declare class BreadcrumbService {
|
|
2286
|
-
/** Internal buffer holding the current breadcrumb trail. */
|
|
2287
|
-
private breadcrumbsSubject;
|
|
2288
|
-
/** Observable emitted with the latest breadcrumb trail. */
|
|
2289
|
-
breadcrumbs$: Observable<BreadcrumbItem[]>;
|
|
2290
|
-
/** Replaces the whole breadcrumb trail. */
|
|
2291
|
-
set(items: BreadcrumbItem[]): void;
|
|
2292
|
-
/** Empties the breadcrumb trail. */
|
|
2293
|
-
clear(): void;
|
|
2294
|
-
/** Returns the breadcrumb trail currently held (snapshot). */
|
|
2295
|
-
getCurrent(): BreadcrumbItem[];
|
|
2296
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbService, never>;
|
|
2297
|
-
static ɵprov: _angular_core.ɵɵInjectableDeclaration<BreadcrumbService>;
|
|
2298
|
-
}
|
|
2299
|
-
|
|
2300
|
-
type BreadcrumbSeparator = 'chevron' | 'slash' | 'arrow';
|
|
2301
|
-
/**
|
|
2302
|
-
* Shirkasoft UI Components.
|
|
2303
|
-
* Authors: Roberto Valladares Martin (Ansem13), Julio César García García (Sanjuli14).
|
|
2304
|
-
* Belongs to Shirkasoft.
|
|
2305
|
-
*/
|
|
2306
|
-
/**
|
|
2307
|
-
* Navigation breadcrumb showing the current page hierarchy. Can be fed with
|
|
2308
|
-
* static items or driven by the shared BreadcrumbService.
|
|
2309
|
-
*/
|
|
2310
|
-
declare class BreadcrumbComponent implements OnInit, OnDestroy {
|
|
2311
|
-
private readonly breadcrumbService;
|
|
2312
|
-
/** Static list of breadcrumb items. Takes precedence over the service items. */
|
|
2313
|
-
items: _angular_core.InputSignal<BreadcrumbItem[]>;
|
|
2314
|
-
/** Visual separator between items: 'chevron', 'slash' or 'arrow'. */
|
|
2315
|
-
separator: _angular_core.InputSignal<BreadcrumbSeparator>;
|
|
2316
|
-
/** When true, subscribes to the BreadcrumbService to resolve items. */
|
|
2317
|
-
useService: _angular_core.InputSignal<boolean>;
|
|
2318
|
-
/** Items received from the BreadcrumbService. */
|
|
2319
|
-
protected serviceItems: _angular_core.WritableSignal<BreadcrumbItem[]>;
|
|
2320
|
-
/** Final items: static `items` if provided, otherwise the service items. */
|
|
2321
|
-
protected resolvedItems: _angular_core.Signal<BreadcrumbItem[]>;
|
|
2322
|
-
/** Active subscription to the breadcrumb stream. */
|
|
2323
|
-
private serviceSub;
|
|
2324
|
-
constructor();
|
|
2325
|
-
/** Subscribes to the BreadcrumbService when `useService` is enabled. */
|
|
2326
|
-
ngOnInit(): void;
|
|
2327
|
-
/** Unsubscribes from the breadcrumb stream to avoid leaks. */
|
|
2328
|
-
ngOnDestroy(): void;
|
|
2329
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BreadcrumbComponent, never>;
|
|
2330
|
-
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>;
|
|
2331
|
-
}
|
|
2332
|
-
|
|
2333
|
-
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 };
|
|
2334
|
-
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 { };
|