commons-shared-web-ui 0.0.1

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/index.d.ts ADDED
@@ -0,0 +1,742 @@
1
+ import * as i0 from '@angular/core';
2
+ import { EventEmitter, OnInit, OnDestroy, OnChanges, SimpleChanges } from '@angular/core';
3
+ import * as i2$1 from '@angular/common';
4
+ import * as i1 from '@angular/material/card';
5
+ import * as i2 from '@angular/material/snack-bar';
6
+ import { MatSnackBar } from '@angular/material/snack-bar';
7
+ import * as i3 from '@angular/material/checkbox';
8
+ import * as i4 from '@angular/material/divider';
9
+ import * as i5 from '@angular/material/select';
10
+ import * as i6 from '@angular/material/radio';
11
+ import * as i7 from '@angular/material/dialog';
12
+ import * as i8 from '@angular/material/form-field';
13
+ import * as i9 from '@angular/material/datepicker';
14
+ import * as i10 from '@angular/material/core';
15
+ import * as i11 from '@angular/material/input';
16
+ import * as i12 from '@angular/material/icon';
17
+ import * as i13 from '@angular/material/progress-spinner';
18
+ import * as i14 from '@angular/material/tabs';
19
+ import * as i15 from '@angular/material/button';
20
+ import * as i16 from '@angular/material/menu';
21
+ import * as i17 from '@angular/material/progress-bar';
22
+ import * as i18 from '@angular/material/tooltip';
23
+ import * as i19 from '@angular/material/slider';
24
+ import * as i20 from '@angular/material/list';
25
+ import * as i21 from '@angular/material/chips';
26
+ import * as i22 from '@angular/material/sort';
27
+ import * as i23 from '@angular/material/autocomplete';
28
+ import * as i24 from '@angular/material/slide-toggle';
29
+ import * as i25 from '@angular/material/button-toggle';
30
+ import * as i26 from '@angular/material/paginator';
31
+ import * as i27 from '@angular/material/table';
32
+ import * as i28 from '@angular/material/expansion';
33
+ import * as i29 from '@angular/cdk/accordion';
34
+ import * as i3$1 from '@angular/forms';
35
+ import { ControlValueAccessor, FormGroup, FormBuilder, AbstractControl, FormControl, FormArray } from '@angular/forms';
36
+ import { Router, ActivatedRoute } from '@angular/router';
37
+ import * as i3$2 from '@angular/common/http';
38
+ import { HttpClient } from '@angular/common/http';
39
+
40
+ declare class MaterialModule {
41
+ static ɵfac: i0.ɵɵFactoryDeclaration<MaterialModule, never>;
42
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MaterialModule, never, [typeof i1.MatCardModule, typeof i2.MatSnackBarModule, typeof i3.MatCheckboxModule, typeof i4.MatDividerModule, typeof i5.MatSelectModule, typeof i6.MatRadioModule, typeof i7.MatDialogModule, typeof i8.MatFormFieldModule, typeof i9.MatDatepickerModule, typeof i10.MatNativeDateModule, typeof i11.MatInputModule, typeof i12.MatIconModule, typeof i13.MatProgressSpinnerModule, typeof i14.MatTabsModule, typeof i15.MatButtonModule, typeof i16.MatMenuModule, typeof i14.MatTabsModule, typeof i17.MatProgressBarModule, typeof i18.MatTooltipModule, typeof i19.MatSliderModule, typeof i20.MatListModule, typeof i21.MatChipsModule, typeof i22.MatSortModule, typeof i23.MatAutocompleteModule, typeof i24.MatSlideToggleModule, typeof i25.MatButtonToggleModule], [typeof i1.MatCardModule, typeof i2.MatSnackBarModule, typeof i3.MatCheckboxModule, typeof i4.MatDividerModule, typeof i5.MatSelectModule, typeof i6.MatRadioModule, typeof i7.MatDialogModule, typeof i8.MatFormFieldModule, typeof i9.MatDatepickerModule, typeof i10.MatNativeDateModule, typeof i11.MatInputModule, typeof i12.MatIconModule, typeof i13.MatProgressSpinnerModule, typeof i14.MatTabsModule, typeof i15.MatButtonModule, typeof i16.MatMenuModule, typeof i14.MatTabsModule, typeof i17.MatProgressBarModule, typeof i18.MatTooltipModule, typeof i19.MatSliderModule, typeof i20.MatListModule, typeof i21.MatChipsModule, typeof i26.MatPaginatorModule, typeof i27.MatTableModule, typeof i28.MatExpansionModule, typeof i29.CdkAccordionModule, typeof i22.MatSortModule, typeof i23.MatAutocompleteModule, typeof i24.MatSlideToggleModule, typeof i25.MatButtonToggleModule]>;
43
+ static ɵinj: i0.ɵɵInjectorDeclaration<MaterialModule>;
44
+ }
45
+
46
+ interface CardType1Config {
47
+ label: string;
48
+ value: string;
49
+ valueColor?: string;
50
+ subtext?: string;
51
+ subtextClass?: string;
52
+ width?: string;
53
+ height?: string;
54
+ }
55
+ interface CardType2Config {
56
+ iconName?: string;
57
+ iconUrl?: string;
58
+ label: string;
59
+ value: string;
60
+ targetText?: string;
61
+ iconBackgroundColor?: string;
62
+ iconColor?: string;
63
+ width?: string;
64
+ height?: string;
65
+ }
66
+
67
+ declare class CardType1Component {
68
+ config: CardType1Config;
69
+ theme: 'theme-1' | 'theme-2';
70
+ cardClick: EventEmitter<void>;
71
+ get valueStyle(): {
72
+ color: string;
73
+ } | {
74
+ color?: undefined;
75
+ };
76
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardType1Component, never>;
77
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardType1Component, "lib-card-type-1", never, { "config": { "alias": "config"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "cardClick": "cardClick"; }, never, never, false, never>;
78
+ }
79
+
80
+ declare class CardType2Component {
81
+ config: CardType2Config;
82
+ theme: 'theme-1' | 'theme-2';
83
+ cardClick: EventEmitter<void>;
84
+ get iconBoxStyle(): {
85
+ backgroundColor: string;
86
+ } | {
87
+ backgroundColor?: undefined;
88
+ };
89
+ get iconStyle(): {
90
+ color: string;
91
+ } | {
92
+ color?: undefined;
93
+ };
94
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardType2Component, never>;
95
+ static ɵcmp: i0.ɵɵComponentDeclaration<CardType2Component, "lib-card-type-2", never, { "config": { "alias": "config"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "cardClick": "cardClick"; }, never, never, false, never>;
96
+ }
97
+
98
+ declare class CardsModule {
99
+ static ɵfac: i0.ɵɵFactoryDeclaration<CardsModule, never>;
100
+ static ɵmod: i0.ɵɵNgModuleDeclaration<CardsModule, [typeof CardType1Component, typeof CardType2Component], [typeof i2$1.CommonModule, typeof MaterialModule], [typeof CardType1Component, typeof CardType2Component]>;
101
+ static ɵinj: i0.ɵɵInjectorDeclaration<CardsModule>;
102
+ }
103
+
104
+ type AlertVariant = 'info' | 'warning' | 'warning-shadow' | 'success' | 'error';
105
+ type IconInput = boolean | string | {
106
+ type: 'material' | 'fontawesome' | 'img';
107
+ value: string;
108
+ };
109
+ declare class AlertComponent implements OnInit {
110
+ variant: AlertVariant;
111
+ title: string;
112
+ message: string;
113
+ icon: IconInput;
114
+ customIcon: string;
115
+ width?: string;
116
+ height?: string;
117
+ borderRadius?: string;
118
+ padding?: string;
119
+ gap?: string;
120
+ backgroundColor?: string;
121
+ color?: string;
122
+ borderColor?: string;
123
+ fontSize?: string;
124
+ fontWeight?: string;
125
+ boxShadow?: string;
126
+ borderTopLeftRadius?: string;
127
+ borderTopRightRadius?: string;
128
+ borderBottomLeftRadius?: string;
129
+ borderBottomRightRadius?: string;
130
+ constructor();
131
+ ngOnInit(): void;
132
+ get isDefaultIcon(): boolean;
133
+ get isStringIcon(): boolean;
134
+ get isObjectIcon(): boolean;
135
+ get iconString(): string;
136
+ get isImgIcon(): boolean;
137
+ get iconObject(): {
138
+ type: string;
139
+ value: string;
140
+ };
141
+ get defaultIconClass(): string;
142
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlertComponent, never>;
143
+ static ɵcmp: i0.ɵɵComponentDeclaration<AlertComponent, "lib-alert", never, { "variant": { "alias": "variant"; "required": false; }; "title": { "alias": "title"; "required": false; }; "message": { "alias": "message"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; "customIcon": { "alias": "customIcon"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "padding": { "alias": "padding"; "required": false; }; "gap": { "alias": "gap"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "color": { "alias": "color"; "required": false; }; "borderColor": { "alias": "borderColor"; "required": false; }; "fontSize": { "alias": "fontSize"; "required": false; }; "fontWeight": { "alias": "fontWeight"; "required": false; }; "boxShadow": { "alias": "boxShadow"; "required": false; }; "borderTopLeftRadius": { "alias": "borderTopLeftRadius"; "required": false; }; "borderTopRightRadius": { "alias": "borderTopRightRadius"; "required": false; }; "borderBottomLeftRadius": { "alias": "borderBottomLeftRadius"; "required": false; }; "borderBottomRightRadius": { "alias": "borderBottomRightRadius"; "required": false; }; }, {}, never, ["*"], false, never>;
144
+ }
145
+
146
+ declare class AlertModule {
147
+ static ɵfac: i0.ɵɵFactoryDeclaration<AlertModule, never>;
148
+ static ɵmod: i0.ɵɵNgModuleDeclaration<AlertModule, [typeof AlertComponent], [typeof i2$1.CommonModule], [typeof AlertComponent]>;
149
+ static ɵinj: i0.ɵɵInjectorDeclaration<AlertModule>;
150
+ }
151
+
152
+ type ButtonVariant = 'primary' | 'warning' | 'outline' | 'secondary' | 'success' | 'danger' | 'danger-outline';
153
+ declare class ButtonComponent implements OnInit {
154
+ variant: ButtonVariant;
155
+ type: 'button' | 'submit' | 'reset';
156
+ disabled: boolean;
157
+ width?: string;
158
+ height?: string;
159
+ borderRadius?: string;
160
+ fontSize?: string;
161
+ fontWeight?: string;
162
+ backgroundColor?: string;
163
+ color?: string;
164
+ border?: string;
165
+ icon: boolean | string | {
166
+ type: 'material' | 'fontawesome' | 'img';
167
+ value: string;
168
+ };
169
+ constructor();
170
+ ngOnInit(): void;
171
+ get isDefaultIcon(): boolean;
172
+ get isStringIcon(): boolean;
173
+ get isImgIcon(): boolean;
174
+ get isObjectIcon(): boolean;
175
+ get iconString(): string;
176
+ get iconObject(): {
177
+ type: string;
178
+ value: string;
179
+ };
180
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
181
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "lib-button", never, { "variant": { "alias": "variant"; "required": false; }; "type": { "alias": "type"; "required": false; }; "disabled": { "alias": "disabled"; "required": false; }; "width": { "alias": "width"; "required": false; }; "height": { "alias": "height"; "required": false; }; "borderRadius": { "alias": "borderRadius"; "required": false; }; "fontSize": { "alias": "fontSize"; "required": false; }; "fontWeight": { "alias": "fontWeight"; "required": false; }; "backgroundColor": { "alias": "backgroundColor"; "required": false; }; "color": { "alias": "color"; "required": false; }; "border": { "alias": "border"; "required": false; }; "icon": { "alias": "icon"; "required": false; }; }, {}, never, ["*"], false, never>;
182
+ }
183
+
184
+ declare class ButtonModule {
185
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonModule, never>;
186
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ButtonModule, [typeof ButtonComponent], [typeof i2$1.CommonModule], [typeof ButtonComponent]>;
187
+ static ɵinj: i0.ɵɵInjectorDeclaration<ButtonModule>;
188
+ }
189
+
190
+ interface ConfirmationModalConfig {
191
+ title: string;
192
+ headerTheme?: 'light' | 'dark';
193
+ icon?: string | {
194
+ type: 'material' | 'custom';
195
+ value: string;
196
+ color?: string;
197
+ };
198
+ width?: string;
199
+ size?: 'sm' | 'md' | 'lg';
200
+ customClass?: string;
201
+ backgroundColor?: string;
202
+ borderRadius?: string;
203
+ borderTopLeftRadius?: string;
204
+ borderTopRightRadius?: string;
205
+ borderBottomLeftRadius?: string;
206
+ borderBottomRightRadius?: string;
207
+ padding?: string;
208
+ headerBackgroundColor?: string;
209
+ headerTextColor?: string;
210
+ headerBorderBottom?: string;
211
+ bodyTextColor?: string;
212
+ footerBackgroundColor?: string;
213
+ footerBorderTop?: string;
214
+ confirmButton: {
215
+ label: string;
216
+ type: 'primary' | 'danger' | 'warning';
217
+ disabled?: boolean;
218
+ loading?: boolean;
219
+ };
220
+ cancelButton?: {
221
+ label?: string;
222
+ show?: boolean;
223
+ };
224
+ customFooter?: boolean;
225
+ closeOnBackdrop?: boolean;
226
+ closeOnEsc?: boolean;
227
+ showCloseButton?: boolean;
228
+ showCodeSnippetButton?: boolean;
229
+ ariaLabel?: string;
230
+ ariaDescribedBy?: string;
231
+ }
232
+
233
+ declare class ConfirmationModalComponent implements OnInit, OnDestroy {
234
+ config: ConfirmationModalConfig;
235
+ isOpen: boolean;
236
+ confirm: EventEmitter<void>;
237
+ cancel: EventEmitter<void>;
238
+ close: EventEmitter<void>;
239
+ showCodeSnippet: EventEmitter<void>;
240
+ private defaultConfig;
241
+ mergedConfig: ConfirmationModalConfig;
242
+ private previousActiveElement;
243
+ ngOnInit(): void;
244
+ ngOnChanges(): void;
245
+ private updateConfig;
246
+ ngOnDestroy(): void;
247
+ private toggleBodyScroll;
248
+ handleEscape(event: KeyboardEvent): void;
249
+ onBackdropClick(event: MouseEvent): void;
250
+ onConfirm(): void;
251
+ onCancel(): void;
252
+ onClose(): void;
253
+ onShowCodeSnippet(): void;
254
+ getModalWidth(): string;
255
+ getConfirmButtonClass(): string;
256
+ getHeaderClass(): string;
257
+ resolveIconType(icon: any): 'material' | 'custom' | 'img';
258
+ getIconValue(icon: any): string;
259
+ getIconColor(icon: any): string | undefined;
260
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationModalComponent, never>;
261
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConfirmationModalComponent, "cc-confirmation-modal", never, { "config": { "alias": "config"; "required": false; }; "isOpen": { "alias": "isOpen"; "required": false; }; }, { "confirm": "confirm"; "cancel": "cancel"; "close": "close"; "showCodeSnippet": "showCodeSnippet"; }, never, ["*", "[cc-modal-footer]"], false, never>;
262
+ }
263
+
264
+ declare class ConfirmationModalModule {
265
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfirmationModalModule, never>;
266
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ConfirmationModalModule, [typeof ConfirmationModalComponent], [typeof i2$1.CommonModule, typeof i12.MatIconModule, typeof i3$1.FormsModule], [typeof ConfirmationModalComponent]>;
267
+ static ɵinj: i0.ɵɵInjectorDeclaration<ConfirmationModalModule>;
268
+ }
269
+
270
+ interface FilterSidebarConfig {
271
+ tabs?: {
272
+ items: FilterSidebarTab[];
273
+ defaultActive?: string;
274
+ };
275
+ sections: FilterSidebarSection[];
276
+ actions?: {
277
+ apply?: {
278
+ label?: string;
279
+ visible?: boolean;
280
+ disabled?: boolean;
281
+ };
282
+ clear?: {
283
+ label?: string;
284
+ visible?: boolean;
285
+ };
286
+ };
287
+ settings?: {
288
+ collapsible?: boolean;
289
+ persistent?: boolean;
290
+ showCodeSnippet?: boolean;
291
+ };
292
+ }
293
+ interface FilterSidebarTab {
294
+ id: string;
295
+ label: string;
296
+ icon?: string;
297
+ }
298
+ interface FilterSidebarSection {
299
+ key: string;
300
+ title: string;
301
+ type: 'select' | 'accordion' | 'checkbox-group' | 'radio-group' | 'search';
302
+ options?: FilterSidebarOption[];
303
+ multi?: boolean;
304
+ expanded?: boolean;
305
+ placeholder?: string;
306
+ visible?: boolean;
307
+ }
308
+ interface FilterSidebarOption {
309
+ label: string;
310
+ value: any;
311
+ }
312
+ interface FilterSidebarOutput {
313
+ [key: string]: any;
314
+ }
315
+ interface FilterSidebarChangeEvent {
316
+ key: string;
317
+ value: any;
318
+ allFilters: FilterSidebarOutput;
319
+ }
320
+ type FilterConfig = FilterSidebarConfig;
321
+ type FilterChangeEvent = FilterSidebarChangeEvent;
322
+ type FilterOutput = FilterSidebarOutput;
323
+
324
+ declare class FilterSidebarComponent implements OnInit, ControlValueAccessor {
325
+ private router;
326
+ private route;
327
+ config: FilterSidebarConfig;
328
+ initialFilters: FilterSidebarOutput;
329
+ filterChange: EventEmitter<FilterSidebarChangeEvent>;
330
+ filterApply: EventEmitter<FilterSidebarOutput>;
331
+ filterClear: EventEmitter<void>;
332
+ tabChange: EventEmitter<string>;
333
+ showCodeSnippet: EventEmitter<void>;
334
+ filters: FilterSidebarOutput;
335
+ selectedTabId: string | null;
336
+ onChange: any;
337
+ onTouched: any;
338
+ constructor(router: Router, route: ActivatedRoute);
339
+ ngOnInit(): void;
340
+ writeValue(value: any): void;
341
+ registerOnChange(fn: any): void;
342
+ registerOnTouched(fn: any): void;
343
+ onTabClick(tab: FilterSidebarTab): void;
344
+ onFilterChange(key: string, value: any, isMulti?: boolean): void;
345
+ private toggleFilterValue;
346
+ private notifyChanges;
347
+ private updateUrl;
348
+ applyFilters(): void;
349
+ clearFilters(): void;
350
+ trackByFn(index: number, item: any): any;
351
+ onShowCodeSnippet(): void;
352
+ isImgUrl(icon: string): boolean;
353
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterSidebarComponent, never>;
354
+ static ɵcmp: i0.ɵɵComponentDeclaration<FilterSidebarComponent, "lib-filter-sidebar", never, { "config": { "alias": "config"; "required": false; }; "initialFilters": { "alias": "initialFilters"; "required": false; }; }, { "filterChange": "filterChange"; "filterApply": "filterApply"; "filterClear": "filterClear"; "tabChange": "tabChange"; "showCodeSnippet": "showCodeSnippet"; }, never, never, false, never>;
355
+ }
356
+
357
+ declare class FilterSidebarModule {
358
+ static ɵfac: i0.ɵɵFactoryDeclaration<FilterSidebarModule, never>;
359
+ static ɵmod: i0.ɵɵNgModuleDeclaration<FilterSidebarModule, [typeof FilterSidebarComponent], [typeof i2$1.CommonModule, typeof i3$1.FormsModule, typeof i3$1.ReactiveFormsModule, typeof MaterialModule], [typeof FilterSidebarComponent]>;
360
+ static ɵinj: i0.ɵɵInjectorDeclaration<FilterSidebarModule>;
361
+ }
362
+
363
+ interface SummaryCardConfig {
364
+ header: string;
365
+ value: string;
366
+ description?: string;
367
+ icon?: string;
368
+ iconImage?: string;
369
+ descriptionPosition?: 'bottom' | 'inline';
370
+ valueSubtext?: string;
371
+ metaData?: SummaryCardMeta[];
372
+ valueColor?: string;
373
+ headerColor?: string;
374
+ descriptionColor?: string;
375
+ iconColor?: string;
376
+ iconBackgroundColor?: string;
377
+ iconClass?: string;
378
+ valueClass?: string;
379
+ headerClass?: string;
380
+ descriptionClass?: string;
381
+ isDisabled?: boolean;
382
+ isClickable?: boolean;
383
+ }
384
+ interface SummaryCardMeta {
385
+ text: string;
386
+ type?: 'text' | 'pill';
387
+ color?: string;
388
+ backgroundColor?: string;
389
+ cssClass?: string;
390
+ }
391
+ declare class SummaryCardComponent {
392
+ config: SummaryCardConfig;
393
+ theme: 'theme-1' | 'theme-2';
394
+ cardClick: EventEmitter<void>;
395
+ get hostClasses(): string;
396
+ constructor();
397
+ onCardClick(): void;
398
+ get cardClasses(): {
399
+ [key: string]: boolean;
400
+ };
401
+ get iconStyles(): {
402
+ [key: string]: string;
403
+ };
404
+ get headerStyles(): {
405
+ [key: string]: string;
406
+ };
407
+ get valueStyles(): {
408
+ [key: string]: string;
409
+ };
410
+ get descriptionStyles(): {
411
+ [key: string]: string;
412
+ };
413
+ get isDescriptionInline(): boolean;
414
+ getMetaStyles(meta: SummaryCardMeta): {
415
+ [key: string]: string;
416
+ };
417
+ static ɵfac: i0.ɵɵFactoryDeclaration<SummaryCardComponent, never>;
418
+ static ɵcmp: i0.ɵɵComponentDeclaration<SummaryCardComponent, "lib-summary-card", never, { "config": { "alias": "config"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; }, { "cardClick": "cardClick"; }, never, never, false, never>;
419
+ }
420
+
421
+ declare class SummaryCardModule {
422
+ static ɵfac: i0.ɵɵFactoryDeclaration<SummaryCardModule, never>;
423
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SummaryCardModule, [typeof SummaryCardComponent], [typeof i2$1.CommonModule, typeof i12.MatIconModule], [typeof SummaryCardComponent]>;
424
+ static ɵinj: i0.ɵɵInjectorDeclaration<SummaryCardModule>;
425
+ }
426
+
427
+ type FieldType = 'text' | 'number' | 'email' | 'tel' | 'password' | 'select' | 'radio' | 'textarea' | 'date' | 'composite' | 'file' | 'dropdown' | 'url';
428
+ type KeyType = 'KEY_TYPE.UI_INPUT' | 'KEY_TYPE.NESTED_REF_JSON' | 'KEY_TYPE.REF_JSON';
429
+ type UIType = 'UI_TYPE.TEXT' | 'UI_TYPE.DROP_DOWN' | 'UI_TYPE.RADIO' | 'UI_TYPE.DATE' | 'UI_TYPE.FILE' | 'UI_TYPE.TEXTAREA';
430
+ type UISubType = 'UI_SUBTYPE.SHORT_TEXT' | 'UI_SUBTYPE.LONG_TEXT' | 'UI_SUBTYPE.NUMBER' | 'UI_SUBTYPE.EMAIL' | 'UI_SUBTYPE.PHONE' | 'UI_SUBTYPE.URL';
431
+ type OptionDTO = 'OPTION_DTO.REF_DATA' | 'OPTION_DTO.STATIC';
432
+ interface FormOption {
433
+ label: string;
434
+ value: any;
435
+ code?: string;
436
+ name?: string;
437
+ }
438
+ interface OptionConfig {
439
+ optionDTO: OptionDTO;
440
+ class?: string;
441
+ url?: string;
442
+ labelKey?: string;
443
+ requestKey?: string;
444
+ valueKey?: string;
445
+ staticOptions?: FormOption[];
446
+ }
447
+ interface UIConfig {
448
+ type: UIType;
449
+ subType?: UISubType;
450
+ dependent?: string[];
451
+ optionConfigs?: OptionConfig;
452
+ minCharacters?: number;
453
+ maxCharacters?: number;
454
+ }
455
+ interface ValidationRules {
456
+ isMandatory?: boolean;
457
+ isRequired?: boolean;
458
+ minLength?: number;
459
+ maxLength?: number;
460
+ pattern?: string;
461
+ min?: number;
462
+ max?: number;
463
+ }
464
+ interface UploadedFile {
465
+ name: string;
466
+ size: number;
467
+ type: string;
468
+ url?: string;
469
+ file?: File;
470
+ }
471
+ interface FormField {
472
+ type?: FieldType;
473
+ name: string;
474
+ label?: string;
475
+ jsonKey?: string;
476
+ sequence?: number;
477
+ keyType?: KeyType;
478
+ uiConfig?: UIConfig;
479
+ validationRules?: ValidationRules;
480
+ placeholder?: string;
481
+ hint?: string;
482
+ helpText?: string;
483
+ options?: FormOption[];
484
+ required?: boolean;
485
+ mandatory?: boolean;
486
+ disabled?: boolean;
487
+ visible?: boolean;
488
+ class?: string;
489
+ value?: any;
490
+ icon?: string;
491
+ suffixIcon?: string;
492
+ prefixIcon?: string;
493
+ suffixText?: string;
494
+ readonly?: boolean;
495
+ subFields?: FormField[];
496
+ separator?: string;
497
+ dependsOn?: string;
498
+ dependent?: string[];
499
+ accept?: string;
500
+ multiple?: boolean;
501
+ uploadedFiles?: UploadedFile[];
502
+ optionConfigs?: OptionConfig;
503
+ loadedOptions?: FormOption[];
504
+ compositeValidationRule?: 'minTotal' | 'percentageTotal' | 'minMax';
505
+ }
506
+ interface FormSection {
507
+ sectionTitle?: string;
508
+ fields: FormField[];
509
+ isRepeater?: boolean;
510
+ addLabel?: string;
511
+ removeLabel?: string;
512
+ repeaterItemLabel?: string;
513
+ formArrayName?: string;
514
+ noCardLayout?: boolean;
515
+ collapsible?: boolean;
516
+ collapsed?: boolean;
517
+ minItems?: number;
518
+ maxItems?: number;
519
+ class?: string;
520
+ }
521
+ interface FormConfig {
522
+ sections: FormSection[];
523
+ submitLabel?: string;
524
+ cancelLabel?: string;
525
+ saveDraftLabel?: string;
526
+ entityType?: string;
527
+ isModal?: boolean;
528
+ }
529
+ interface JsonFieldConfig {
530
+ jsonKey: string;
531
+ sequence: number;
532
+ label: string;
533
+ keyType: KeyType;
534
+ validationRules?: ValidationRules;
535
+ uiConfig: UIConfig;
536
+ }
537
+ interface JsonFormConfig {
538
+ entityType: string;
539
+ label: string;
540
+ jsonConfig: JsonFieldConfig[];
541
+ }
542
+
543
+ declare class ConfigurableFormComponent implements OnInit, OnChanges {
544
+ private fb;
545
+ private snackBar;
546
+ private http;
547
+ config: FormConfig;
548
+ jsonConfig: JsonFormConfig;
549
+ data: any;
550
+ baseApiUrl: string;
551
+ formSubmit: EventEmitter<any>;
552
+ formCancel: EventEmitter<void>;
553
+ optionsLoad: EventEmitter<any>;
554
+ form: FormGroup;
555
+ processedConfig: FormConfig;
556
+ fieldVisibilityMap: Map<string, boolean>;
557
+ constructor(fb: FormBuilder, snackBar: MatSnackBar, http: HttpClient);
558
+ ngOnInit(): void;
559
+ ngOnChanges(changes: SimpleChanges): void;
560
+ initializeForm(): void;
561
+ transformJsonConfig(jsonConfig: JsonFormConfig): FormConfig;
562
+ transformJsonField(jsonField: JsonFieldConfig): FormField;
563
+ mapUISubTypeToFieldType(subType?: string): FieldType;
564
+ normalizeFields(): void;
565
+ initializeFieldVisibility(): void;
566
+ buildForm(): void;
567
+ createCompositeValidator(field: FormField): (control: AbstractControl) => {
568
+ [x: string]: boolean;
569
+ };
570
+ createControl(field: FormField): FormControl;
571
+ createGroup(fields: FormField[]): FormGroup;
572
+ getFormArray(name: string): FormArray;
573
+ addRepeaterItem(section: FormSection): void;
574
+ removeRepeaterItem(sectionName: string, index: number): void;
575
+ onSubmit(): void;
576
+ scrollToFirstInvalidControl(): void;
577
+ setupDependencies(): void;
578
+ onFieldValueChange(field: FormField, value: any): void;
579
+ loadFieldOptions(field: FormField, parentValues?: any): void;
580
+ extractOptions(data: any[], config: any): FormOption[];
581
+ getFieldOptions(field: FormField): FormOption[];
582
+ isFieldVisible(field: FormField): boolean;
583
+ toggleFieldVisibility(field: FormField, visible: boolean): void;
584
+ updateControlValidators(control: AbstractControl, field: FormField): void;
585
+ onFileChange(event: any, field: FormField): void;
586
+ removeFile(field: FormField, index: number): void;
587
+ updateFileControlValue(field: FormField): void;
588
+ getCharacterCount(fieldName: string): number;
589
+ toggleSection(section: FormSection): void;
590
+ onCancel(): void;
591
+ private findFieldByName;
592
+ get sections(): FormSection[];
593
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurableFormComponent, never>;
594
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConfigurableFormComponent, "lib-configurable-form", never, { "config": { "alias": "config"; "required": false; }; "jsonConfig": { "alias": "jsonConfig"; "required": false; }; "data": { "alias": "data"; "required": false; }; "baseApiUrl": { "alias": "baseApiUrl"; "required": false; }; }, { "formSubmit": "formSubmit"; "formCancel": "formCancel"; "optionsLoad": "optionsLoad"; }, never, never, true, never>;
595
+ }
596
+
597
+ declare class ConfigurableFormModule {
598
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConfigurableFormModule, never>;
599
+ static ɵmod: i0.ɵɵNgModuleDeclaration<ConfigurableFormModule, never, [typeof i2$1.CommonModule, typeof i3$1.ReactiveFormsModule, typeof i3$2.HttpClientModule, typeof MaterialModule, typeof ConfigurableFormComponent], [typeof ConfigurableFormComponent]>;
600
+ static ɵinj: i0.ɵɵInjectorDeclaration<ConfigurableFormModule>;
601
+ }
602
+
603
+ declare class SharedUiModule {
604
+ static ɵfac: i0.ɵɵFactoryDeclaration<SharedUiModule, never>;
605
+ static ɵmod: i0.ɵɵNgModuleDeclaration<SharedUiModule, never, [typeof i2$1.CommonModule, typeof MaterialModule, typeof CardsModule, typeof AlertModule, typeof ButtonModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof SummaryCardModule, typeof ConfigurableFormModule], [typeof MaterialModule, typeof CardsModule, typeof AlertModule, typeof ButtonModule, typeof ConfirmationModalModule, typeof FilterSidebarModule, typeof SummaryCardModule, typeof ConfigurableFormModule]>;
606
+ static ɵinj: i0.ɵɵInjectorDeclaration<SharedUiModule>;
607
+ }
608
+
609
+ /**
610
+ * Utility functions for LocalStorage operations
611
+ */
612
+ declare const getLocalStorageItem: (key: string) => string | null;
613
+ declare const setLocalStorageItem: (key: string, value: string) => void;
614
+ declare const removeLocalStorageItem: (key: string) => void;
615
+ declare const clearLocalStorage: () => void;
616
+ /**
617
+ * Utility functions for SessionStorage operations
618
+ */
619
+ declare const getSessionStorageItem: (key: string) => string | null;
620
+ declare const setSessionStorageItem: (key: string, value: string) => void;
621
+ declare const removeSessionStorageItem: (key: string) => void;
622
+ declare const clearSessionStorage: () => void;
623
+
624
+ /**
625
+ * Example: Basic Form Configuration
626
+ * This is a generic example for testing and demonstration purposes.
627
+ */
628
+ declare const EXAMPLE_FORM_CONFIG: FormConfig;
629
+ /**
630
+ * Example: Target Group Configuration
631
+ * Demonstrates composite fields for Age Group and Gender Split
632
+ */
633
+ declare const TARGET_GROUP_CONFIG: FormConfig;
634
+
635
+ declare const configurableForm_examples_d_EXAMPLE_FORM_CONFIG: typeof EXAMPLE_FORM_CONFIG;
636
+ declare const configurableForm_examples_d_TARGET_GROUP_CONFIG: typeof TARGET_GROUP_CONFIG;
637
+ declare namespace configurableForm_examples_d {
638
+ export {
639
+ configurableForm_examples_d_EXAMPLE_FORM_CONFIG as EXAMPLE_FORM_CONFIG,
640
+ configurableForm_examples_d_TARGET_GROUP_CONFIG as TARGET_GROUP_CONFIG,
641
+ };
642
+ }
643
+
644
+ interface PaginationLabels {
645
+ items: string;
646
+ of: string;
647
+ perPage: string;
648
+ }
649
+ declare class PaginationComponent implements OnInit, OnChanges {
650
+ totalItems: number;
651
+ itemsPerPage: number;
652
+ currentPage: number;
653
+ pageSizeOptions: number[];
654
+ theme: 'theme-1' | 'theme-2';
655
+ labels: PaginationLabels;
656
+ pageChange: EventEmitter<number>;
657
+ itemsPerPageChange: EventEmitter<number>;
658
+ totalPages: number;
659
+ pages: (number | string)[];
660
+ startItem: number;
661
+ endItem: number;
662
+ constructor();
663
+ ngOnInit(): void;
664
+ ngOnChanges(changes: SimpleChanges): void;
665
+ calculatePagination(): void;
666
+ getVisiblePages(current: number, total: number): (number | string)[];
667
+ onPageChange(page: number | string): void;
668
+ onItemsPerPageChange(event: Event): void;
669
+ nextPage(): void;
670
+ prevPage(): void;
671
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginationComponent, never>;
672
+ static ɵcmp: i0.ɵɵComponentDeclaration<PaginationComponent, "lib-pagination", never, { "totalItems": { "alias": "totalItems"; "required": false; }; "itemsPerPage": { "alias": "itemsPerPage"; "required": false; }; "currentPage": { "alias": "currentPage"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "labels": { "alias": "labels"; "required": false; }; }, { "pageChange": "pageChange"; "itemsPerPageChange": "itemsPerPageChange"; }, never, never, false, never>;
673
+ }
674
+
675
+ declare class PaginationModule {
676
+ static ɵfac: i0.ɵɵFactoryDeclaration<PaginationModule, never>;
677
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PaginationModule, [typeof PaginationComponent], [typeof i2$1.CommonModule], [typeof PaginationComponent]>;
678
+ static ɵinj: i0.ɵɵInjectorDeclaration<PaginationModule>;
679
+ }
680
+
681
+ interface NavStyleConfig {
682
+ width?: string;
683
+ backgroundColor?: string;
684
+ borderRadius?: string;
685
+ border?: string;
686
+ padding?: string;
687
+ gap?: string;
688
+ boxShadow?: string;
689
+ itemColor?: string;
690
+ itemRadius?: string;
691
+ itemPadding?: string;
692
+ fontSize?: string;
693
+ fontWeight?: string;
694
+ activeItemBg?: string;
695
+ activeItemColor?: string;
696
+ activeItemFontWeight?: string;
697
+ activeItemBorderColor?: string;
698
+ hoverItemBg?: string;
699
+ hoverItemColor?: string;
700
+ badgeBg?: string;
701
+ badgeColor?: string;
702
+ }
703
+
704
+ interface NavItem {
705
+ id: string | number;
706
+ label: string;
707
+ icon?: string;
708
+ badge?: string | number;
709
+ disabled?: boolean;
710
+ }
711
+ declare class NavComponent implements OnChanges {
712
+ items: NavItem[];
713
+ activeId: string | number | null;
714
+ variant: 'filled' | 'underline' | 'pills';
715
+ orientation: 'horizontal' | 'vertical';
716
+ styleConfig: NavStyleConfig;
717
+ selectionChange: EventEmitter<NavItem>;
718
+ ngOnChanges(changes: SimpleChanges): void;
719
+ get computedStyles(): {
720
+ [key: string]: string | undefined;
721
+ };
722
+ onItemClick(item: NavItem): void;
723
+ trackById(index: number, item: NavItem): string | number;
724
+ static ɵfac: i0.ɵɵFactoryDeclaration<NavComponent, never>;
725
+ static ɵcmp: i0.ɵɵComponentDeclaration<NavComponent, "lib-nav", never, { "items": { "alias": "items"; "required": false; }; "activeId": { "alias": "activeId"; "required": false; }; "variant": { "alias": "variant"; "required": false; }; "orientation": { "alias": "orientation"; "required": false; }; "styleConfig": { "alias": "styleConfig"; "required": false; }; }, { "selectionChange": "selectionChange"; }, never, never, false, never>;
726
+ }
727
+
728
+ declare class NavModule {
729
+ static ɵfac: i0.ɵɵFactoryDeclaration<NavModule, never>;
730
+ static ɵmod: i0.ɵɵNgModuleDeclaration<NavModule, [typeof NavComponent], [typeof i2$1.CommonModule], [typeof NavComponent]>;
731
+ static ɵinj: i0.ɵɵInjectorDeclaration<NavModule>;
732
+ }
733
+
734
+ declare const DEFAULT_ITEMS_PER_PAGE = 10;
735
+ declare const DEFAULT_PAGE_SIZE_OPTIONS: number[];
736
+ declare const PAGINATION_THEME_DEFAULT = "theme-1";
737
+ declare const PAGINATION_THEME_DARK = "theme-2";
738
+ declare const NAV_VARIANT_DEFAULT: 'filled' | 'underline' | 'pills';
739
+ declare const NAV_ORIENTATION_DEFAULT: 'horizontal' | 'vertical';
740
+
741
+ export { AlertComponent, AlertModule, ButtonComponent, ButtonModule, CardType1Component, CardType2Component, CardsModule, ConfigurableFormComponent, configurableForm_examples_d as ConfigurableFormExamples, ConfigurableFormModule, ConfirmationModalComponent, ConfirmationModalModule, DEFAULT_ITEMS_PER_PAGE, DEFAULT_PAGE_SIZE_OPTIONS, FilterSidebarComponent, FilterSidebarModule, MaterialModule, NAV_ORIENTATION_DEFAULT, NAV_VARIANT_DEFAULT, NavComponent, NavModule, PAGINATION_THEME_DARK, PAGINATION_THEME_DEFAULT, PaginationComponent, PaginationModule, SharedUiModule, SummaryCardComponent, SummaryCardModule, clearLocalStorage, clearSessionStorage, getLocalStorageItem, getSessionStorageItem, removeLocalStorageItem, removeSessionStorageItem, setLocalStorageItem, setSessionStorageItem };
742
+ export type { AlertVariant, ButtonVariant, CardType1Config, CardType2Config, ConfirmationModalConfig, FieldType, FilterChangeEvent, FilterConfig, FilterOutput, FilterSidebarChangeEvent, FilterSidebarConfig, FilterSidebarOption, FilterSidebarOutput, FilterSidebarSection, FilterSidebarTab, FormConfig, FormField, FormOption, FormSection, IconInput, JsonFieldConfig, JsonFormConfig, KeyType, NavItem, NavStyleConfig, OptionConfig, OptionDTO, PaginationLabels, SummaryCardConfig, SummaryCardMeta, UIConfig, UISubType, UIType, UploadedFile, ValidationRules };