@acontplus/ng-components 1.0.6 → 1.0.7

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,993 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Type, AfterViewInit, ViewContainerRef, ElementRef, OnChanges, OnDestroy, EventEmitter, SimpleChanges, TemplateRef, AfterContentInit, OnInit, QueryList, InjectionToken, PipeTransform } from '@angular/core';
3
+ import { MatDialogRef } from '@angular/material/dialog';
4
+ import { ScrollStrategy } from '@angular/cdk/overlay';
5
+ import { MatChipInputEvent, MatChipEditedEvent } from '@angular/material/chips';
6
+ import { LiveAnnouncer } from '@angular/cdk/a11y';
7
+ import { ThemePalette } from '@angular/material/core';
8
+ import { TabulatorFull } from 'tabulator-tables';
9
+ import * as _angular_material_paginator from '@angular/material/paginator';
10
+ import { PageEvent } from '@angular/material/paginator';
11
+ import { MatTableDataSource, MatHeaderRowDef, MatRowDef, MatFooterRowDef, MatColumnDef, MatNoDataRow, MatTable } from '@angular/material/table';
12
+ import { SelectionModel } from '@angular/cdk/collections';
13
+ import * as rxjs from 'rxjs';
14
+ import { Observable } from 'rxjs';
15
+ import { ControlValueAccessor } from '@angular/forms';
16
+ import { HttpContext, HttpRequest, HttpInterceptorFn } from '@angular/common/http';
17
+ import { SafeHtml } from '@angular/platform-browser';
18
+ import { ComponentType } from '@angular/cdk/portal';
19
+
20
+ /**
21
+ * A versatile card component that wraps Angular Material's mat-card with additional functionality
22
+ * and customization options. This component provides a consistent card layout with configurable
23
+ * header, content, and action areas.
24
+ *
25
+ * @example
26
+ * <acp-mat-dynamic-card
27
+ * [cardTitle]="'Card Title'"
28
+ * [cardSubtitle]="'Card Subtitle'"
29
+ * [isHeaderVisible]="true"
30
+ * [areActionsVisible]="true"
31
+ * (primaryButtonClicked)="onPrimaryAction()">
32
+ * Card content goes here
33
+ * </acp-mat-dynamic-card>
34
+ */
35
+ declare class MatDynamicCardComponent {
36
+ /**
37
+ * The title text to display in the card header.
38
+ * @default null
39
+ */
40
+ cardTitle: _angular_core.InputSignal<string | null>;
41
+ /**
42
+ * The subtitle text to display in the card header.
43
+ * @default null
44
+ */
45
+ cardSubtitle: _angular_core.InputSignal<string | null>;
46
+ /**
47
+ * URL for the avatar image to display in the card header.
48
+ * @default null
49
+ */
50
+ avatarImageUrl: _angular_core.InputSignal<string | null>;
51
+ /**
52
+ * Whether to show the card header section.
53
+ * @default false
54
+ */
55
+ isHeaderVisible: _angular_core.InputSignalWithTransform<boolean, unknown>;
56
+ /**
57
+ * CSS padding value for the card content area.
58
+ * @default '1rem'
59
+ */
60
+ contentPadding: _angular_core.InputSignal<string>;
61
+ /**
62
+ * Whether to show a divider between the header and content sections.
63
+ * @default false
64
+ */
65
+ hasDivider: _angular_core.InputSignalWithTransform<boolean, unknown>;
66
+ /**
67
+ * Whether to show the action buttons section.
68
+ * @default false
69
+ */
70
+ areActionsVisible: _angular_core.InputSignalWithTransform<boolean, unknown>;
71
+ /**
72
+ * Text for the primary action button.
73
+ * @default 'Confirm'
74
+ */
75
+ primaryButtonText: _angular_core.InputSignal<string>;
76
+ /**
77
+ * Text for the secondary action button.
78
+ * @default 'Cancel'
79
+ */
80
+ secondaryButtonText: _angular_core.InputSignal<string>;
81
+ /**
82
+ * Material icon name for the primary button.
83
+ * @default null
84
+ */
85
+ primaryButtonIcon: _angular_core.InputSignal<string | null>;
86
+ /**
87
+ * Material icon name for the secondary button.
88
+ * @default null
89
+ */
90
+ secondaryButtonIcon: _angular_core.InputSignal<string | null>;
91
+ /**
92
+ * Alignment of the action buttons.
93
+ * @default 'end'
94
+ */
95
+ buttonsPosition: _angular_core.InputSignal<"start" | "end">;
96
+ /**
97
+ * Event emitted when the primary button is clicked.
98
+ */
99
+ primaryButtonClicked: _angular_core.OutputEmitterRef<void>;
100
+ /**
101
+ * Event emitted when the secondary button is clicked.
102
+ */
103
+ secondaryButtonClicked: _angular_core.OutputEmitterRef<void>;
104
+ /**
105
+ * Event emitted when the card is clicked.
106
+ */
107
+ cardClicked: _angular_core.OutputEmitterRef<Event>;
108
+ /**
109
+ * Handles the primary button click event.
110
+ * Stops event propagation and emits the primaryButtonClicked event.
111
+ * @param event The click event
112
+ */
113
+ handlePrimaryButtonClick(event: Event): void;
114
+ /**
115
+ * Handles the secondary button click event.
116
+ * Stops event propagation and emits the secondaryButtonClicked event.
117
+ * @param event The click event
118
+ */
119
+ handleSecondaryButtonClick(event: Event): void;
120
+ /**
121
+ * Handles the card click event.
122
+ * Emits the cardClicked event with the original event.
123
+ * @param event The click event
124
+ */
125
+ handleCardClick(event: Event): void;
126
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatDynamicCardComponent, never>;
127
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MatDynamicCardComponent, "acp-mat-dynamic-card", never, { "cardTitle": { "alias": "cardTitle"; "required": false; "isSignal": true; }; "cardSubtitle": { "alias": "cardSubtitle"; "required": false; "isSignal": true; }; "avatarImageUrl": { "alias": "avatarImageUrl"; "required": false; "isSignal": true; }; "isHeaderVisible": { "alias": "isHeaderVisible"; "required": false; "isSignal": true; }; "contentPadding": { "alias": "contentPadding"; "required": false; "isSignal": true; }; "hasDivider": { "alias": "hasDivider"; "required": false; "isSignal": true; }; "areActionsVisible": { "alias": "areActionsVisible"; "required": false; "isSignal": true; }; "primaryButtonText": { "alias": "primaryButtonText"; "required": false; "isSignal": true; }; "secondaryButtonText": { "alias": "secondaryButtonText"; "required": false; "isSignal": true; }; "primaryButtonIcon": { "alias": "primaryButtonIcon"; "required": false; "isSignal": true; }; "secondaryButtonIcon": { "alias": "secondaryButtonIcon"; "required": false; "isSignal": true; }; "buttonsPosition": { "alias": "buttonsPosition"; "required": false; "isSignal": true; }; }, { "primaryButtonClicked": "primaryButtonClicked"; "secondaryButtonClicked": "secondaryButtonClicked"; "cardClicked": "cardClicked"; }, never, ["*"], true, never>;
128
+ }
129
+
130
+ type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'full';
131
+ /**
132
+ * @interface MatCustomDialogConfig
133
+ * This is the main configuration object for any dialog opened through the service.
134
+ * It extends the standard MatDialogConfig with custom properties for convenience.
135
+ */
136
+ interface MatCustomDialogConfig<T = any> {
137
+ data?: T;
138
+ size?: DialogSize;
139
+ width?: string;
140
+ height?: string;
141
+ minWidth?: string;
142
+ minHeight?: string;
143
+ maxWidth?: string;
144
+ maxHeight?: string;
145
+ position?: {
146
+ top?: string;
147
+ bottom?: string;
148
+ left?: string;
149
+ right?: string;
150
+ };
151
+ panelClass?: string | string[];
152
+ backdropClass?: string | string[];
153
+ hasBackdrop?: boolean;
154
+ backdropClickClosable?: boolean;
155
+ escapeKeyClosable?: boolean;
156
+ isMobileFullScreen?: boolean;
157
+ autoFocus?: boolean | 'first-tabbable' | 'dialog' | 'first-heading';
158
+ restoreFocus?: boolean;
159
+ ariaLabel?: string;
160
+ ariaLabelledBy?: string;
161
+ ariaDescribedBy?: string;
162
+ role?: 'dialog' | 'alertdialog';
163
+ scrollStrategy?: ScrollStrategy;
164
+ enterAnimationDuration?: number | string;
165
+ exitAnimationDuration?: number | string;
166
+ }
167
+ /**
168
+ * Configuration interface for opening a dialog inside the custom `DialogWrapperComponent`.
169
+ * This interface defines the properties needed to configure the dialog wrapper.
170
+ *
171
+ * @interface DialogWrapperConfig
172
+ * @template T The type of data to pass to the content component
173
+ *
174
+ * @example
175
+ * const config: DialogWrapperConfig = {
176
+ * component: YourDialogContentComponent,
177
+ * title: 'Dialog Title',
178
+ * icon: 'info',
179
+ * data: { message: 'This is some data passed to the dialog content component' },
180
+ * hideHeader: false
181
+ * };
182
+ */
183
+ interface DialogWrapperConfig<T = any> {
184
+ /**
185
+ * The component type to render inside the dialog wrapper.
186
+ * This component will be dynamically created and inserted into the dialog.
187
+ */
188
+ component: Type<any>;
189
+ /**
190
+ * The title text to display in the dialog header.
191
+ */
192
+ title: string;
193
+ /**
194
+ * Optional Material icon name to display in the dialog header.
195
+ */
196
+ icon?: string;
197
+ /**
198
+ * Optional data to pass to the content component's instance.
199
+ * This will be accessible via the `data` property on the component instance.
200
+ */
201
+ data?: T;
202
+ /**
203
+ * Whether to hide the dialog header section.
204
+ * If true, the title, icon, and close button will not be displayed.
205
+ * @default false
206
+ */
207
+ hideHeader?: boolean;
208
+ }
209
+
210
+ declare class AdvancedDialogService {
211
+ private readonly dialog;
212
+ private readonly overlay;
213
+ private readonly breakpointObserver;
214
+ private readonly isMobile$;
215
+ /**
216
+ * Main method to open any component in a dialog.
217
+ * This provides maximum flexibility.
218
+ * @param component The component to render.
219
+ * @param config The detailed configuration for the dialog.
220
+ * @returns A MatDialogRef instance.
221
+ */
222
+ open<T, D = any, R = any>(component: ComponentType<T>, config?: MatCustomDialogConfig<D>): Promise<MatDialogRef<T, R>>;
223
+ /**
224
+ * A powerful helper to open a component inside our standard, branded "wrapper".
225
+ * This provides maximum consistency.
226
+ * @param wrapperConfig Configuration for the title, icon, and the content component.
227
+ * @param matDialogConfig Standard MatDialog configuration (size, position, etc.).
228
+ * @returns A MatDialogRef instance pointing to the wrapper.
229
+ */
230
+ openInWrapper<T, R = any>(wrapperConfig: DialogWrapperConfig<T>, matDialogConfig?: MatCustomDialogConfig<T>): Promise<MatDialogRef<DialogWrapperComponent, R>>;
231
+ /**
232
+ * Helper to open a dialog and only get an observable of the result.
233
+ */
234
+ openAndGetResult<T, D = any, R = any>(component: ComponentType<T>, config?: MatCustomDialogConfig<D>): Promise<R | undefined>;
235
+ /**
236
+ * Closes all currently open dialogs.
237
+ */
238
+ closeAll(): void;
239
+ private buildDialogConfig;
240
+ private applyFullScreenConfig;
241
+ private applyStandardConfig;
242
+ private applyCommonConfig;
243
+ private getDialogWidth;
244
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AdvancedDialogService, never>;
245
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AdvancedDialogService>;
246
+ }
247
+
248
+ declare class OverlayService {
249
+ private overlay;
250
+ private overlayRef;
251
+ /** Inserted by Angular inject() migration for backwards compatibility */
252
+ constructor(...args: unknown[]);
253
+ showSpinner(): void;
254
+ hideSpinner(): void;
255
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<OverlayService, never>;
256
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<OverlayService>;
257
+ }
258
+
259
+ declare class ThemeService {
260
+ private readonly _darkMode;
261
+ isDarkMode$: rxjs.Observable<boolean>;
262
+ loadMode(): void;
263
+ toggleDarkMode(): void;
264
+ private applyTheme;
265
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeService, never>;
266
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeService>;
267
+ }
268
+
269
+ interface AutocompleteWrapperItem {
270
+ id?: string | number;
271
+ name?: string;
272
+ value?: string;
273
+ description?: string;
274
+ [key: string]: any;
275
+ }
276
+ interface AutocompleteWrapperSearchResult {
277
+ items: AutocompleteWrapperItem[];
278
+ totalCount: number;
279
+ hasMore?: boolean;
280
+ }
281
+ type AutocompleteWrapperSearchFunction = (query: string, filters: AutocompleteWrapperFilters, page?: number, pageSize?: number) => Observable<AutocompleteWrapperSearchResult>;
282
+ interface AutocompleteWrapperConfig {
283
+ placeholder?: string;
284
+ clearInput?: boolean;
285
+ disabled?: boolean;
286
+ debounceTime?: number;
287
+ minSearchLength?: number;
288
+ maxHistoryItems?: number;
289
+ itemsPerPage?: number;
290
+ enableStockFilter?: boolean;
291
+ stockProperty?: string;
292
+ enablePagination?: boolean;
293
+ enableFilters?: boolean;
294
+ enableFooterActions?: boolean;
295
+ searchFields?: AutocompleteWrapperSearchField[];
296
+ stockOptions?: AutocompleteWrapperStockOption[];
297
+ overlayWidth?: string | number;
298
+ overlayMaxHeight?: string | number;
299
+ searchFunction?: AutocompleteWrapperSearchFunction;
300
+ searchMode?: 'local' | 'remote' | 'hybrid';
301
+ localData?: AutocompleteWrapperItem[];
302
+ noResultsText?: string;
303
+ sectionTitle?: string;
304
+ }
305
+ interface AutocompleteWrapperSearchField {
306
+ value: string;
307
+ label: string;
308
+ property: string;
309
+ }
310
+ interface AutocompleteWrapperStockOption {
311
+ value: string;
312
+ label: string;
313
+ }
314
+ interface AutocompleteWrapperFilters {
315
+ searchBy: string;
316
+ stockFilter: string;
317
+ }
318
+ interface AutocompleteWrapperEvents {
319
+ itemSelected: AutocompleteWrapperItem;
320
+ searchChanged: string;
321
+ pageChanged: number;
322
+ filterChanged: AutocompleteWrapperFilters;
323
+ advancedSearchClicked: void;
324
+ allResultsClicked: string;
325
+ createNewClicked: string;
326
+ historyCleared: void;
327
+ historyItemRemoved: {
328
+ item: AutocompleteWrapperItem;
329
+ index: number;
330
+ };
331
+ }
332
+ interface AutocompleteWrapperPaginationInfo {
333
+ currentPage: number;
334
+ totalPages: number;
335
+ totalItems: number;
336
+ itemsPerPage: number;
337
+ startItem: number;
338
+ endItem: number;
339
+ hasNextPage: boolean;
340
+ hasPreviousPage: boolean;
341
+ }
342
+ interface AutocompleteWrapperState {
343
+ query: string;
344
+ isLoading: boolean;
345
+ overlayOpen: boolean;
346
+ selectedIndex: number;
347
+ pagination: AutocompleteWrapperPaginationInfo;
348
+ hasResults: boolean;
349
+ isHistoryVisible: boolean;
350
+ historyCount: number;
351
+ filters: AutocompleteWrapperFilters;
352
+ }
353
+ interface AutocompleteWrapperActions {
354
+ onInput(event: Event): void;
355
+ showOverlay(): void;
356
+ hideOverlay(): void;
357
+ clearSearch(): void;
358
+ onKeyDown(event: KeyboardEvent): void;
359
+ selectItem(item: AutocompleteWrapperItem): void;
360
+ getItemDisplayText(item: AutocompleteWrapperItem): string;
361
+ clearHistory(): void;
362
+ removeHistoryItem(index: number, event: Event): void;
363
+ goToFirstPage(): void;
364
+ goToPreviousPage(): void;
365
+ goToNextPage(): void;
366
+ goToLastPage(): void;
367
+ goToPage(event: Event): void;
368
+ onFilterChange(): void;
369
+ onCreateNew(event: Event): void;
370
+ onAdvancedSearch(): void;
371
+ onShowAllResults(): void;
372
+ overlayOpen(): boolean;
373
+ isLoading(): boolean;
374
+ isHistoryVisible(): boolean;
375
+ historyList(): AutocompleteWrapperItem[];
376
+ selectedIndex(): number;
377
+ currentPageItems(): AutocompleteWrapperItem[];
378
+ totalItems(): number;
379
+ totalPages(): number;
380
+ currentPage(): number;
381
+ totalCount(): number;
382
+ startItem(): number;
383
+ endItem(): number;
384
+ sectionTitle(): string;
385
+ noResultsText(): string;
386
+ isNoResults(): boolean;
387
+ overlayWidth(): string | number;
388
+ overlayMaxHeight(): string | number;
389
+ }
390
+ declare const AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG: AutocompleteWrapperConfig;
391
+ declare const AUTOCOMPLETE_WRAPPER_PRODUCT_CONFIG: AutocompleteWrapperConfig;
392
+ declare const AUTOCOMPLETE_WRAPPER_CUSTOMER_CONFIG: AutocompleteWrapperConfig;
393
+ declare const AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG: AutocompleteWrapperConfig;
394
+ declare const AUTOCOMPLETE_WRAPPER_LOCAL_CONFIG: AutocompleteWrapperConfig;
395
+ declare const AUTOCOMPLETE_WRAPPER_PAGINATED_CONFIG: AutocompleteWrapperConfig;
396
+ declare function createAutocompleteWrapperConfig(overrides: Partial<AutocompleteWrapperConfig>): AutocompleteWrapperConfig;
397
+ interface ReusableAutocompleteWrapperComponent extends AutocompleteWrapperActions {
398
+ config: AutocompleteWrapperConfig;
399
+ filters: AutocompleteWrapperFilters;
400
+ query: string;
401
+ }
402
+ type AutocompleteWrapperSearchMode = 'local' | 'remote' | 'hybrid';
403
+ type AutocompleteWrapperItemProperty = keyof AutocompleteWrapperItem;
404
+ type AutocompleteWrapperEventHandler<T = any> = (event: T) => void;
405
+
406
+ declare class AutocompleteWrapperService {
407
+ private historySubject;
408
+ history$: Observable<AutocompleteWrapperItem[]>;
409
+ constructor();
410
+ searchLocal(items: AutocompleteWrapperItem[], query: string, filters: AutocompleteWrapperFilters, config: AutocompleteWrapperConfig): Observable<AutocompleteWrapperSearchResult>;
411
+ filterItems(items: AutocompleteWrapperItem[], query: string, filters: AutocompleteWrapperFilters, config?: AutocompleteWrapperConfig): AutocompleteWrapperItem[];
412
+ searchAsync(items: AutocompleteWrapperItem[], query: string, filters: AutocompleteWrapperFilters, config?: AutocompleteWrapperConfig): Observable<AutocompleteWrapperItem[]>;
413
+ private getSearchValue;
414
+ addToHistory(item: AutocompleteWrapperItem, maxItems?: number): void;
415
+ removeFromHistory(index: number): void;
416
+ clearHistory(): void;
417
+ getHistory(): AutocompleteWrapperItem[];
418
+ private loadHistoryFromStorage;
419
+ private saveHistoryToStorage;
420
+ paginateItems<T>(items: T[], page: number, itemsPerPage: number): T[];
421
+ getTotalPages(totalItems: number, itemsPerPage: number): number;
422
+ isValidPage(page: number, totalPages: number): boolean;
423
+ highlightText(text: string, query: string): string;
424
+ getItemDisplayText(item: AutocompleteWrapperItem, displayField?: string): string;
425
+ mergeConfig(userConfig: Partial<AutocompleteWrapperConfig>): AutocompleteWrapperConfig;
426
+ createGenericSearchFunction(config: {
427
+ search: (params: any) => Observable<any>;
428
+ queryParam?: string;
429
+ searchByParam?: string;
430
+ pageParam?: string;
431
+ pageSizeParam?: string;
432
+ responseMapper?: (response: any) => AutocompleteWrapperSearchResult;
433
+ }): AutocompleteWrapperSearchFunction;
434
+ createMockData(): AutocompleteWrapperItem[];
435
+ searchProducts(query: string, filters?: Partial<AutocompleteWrapperFilters>): Observable<AutocompleteWrapperSearchResult>;
436
+ createProductSearchConfig(): AutocompleteWrapperConfig;
437
+ createCustomerSearchConfig(): AutocompleteWrapperConfig;
438
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<AutocompleteWrapperService, never>;
439
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<AutocompleteWrapperService>;
440
+ }
441
+
442
+ /**
443
+ * A wrapper component for Angular Material dialogs that provides a consistent look and feel,
444
+ * including a draggable header and the ability to dynamically create components inside the dialog.
445
+ *
446
+ * This component is typically used with the AdvancedDialogService's openInWrapper method.
447
+ *
448
+ * @example
449
+ * // In your service or component:
450
+ * this.dialogService.openInWrapper({
451
+ * component: YourDialogContentComponent,
452
+ * title: 'Dialog Title',
453
+ * icon: 'info',
454
+ * data: { message: 'This is some data passed to the dialog content component' }
455
+ * });
456
+ */
457
+ declare class DialogWrapperComponent implements AfterViewInit {
458
+ dialogRef: MatDialogRef<DialogWrapperComponent, any>;
459
+ config: DialogWrapperConfig<any>;
460
+ /**
461
+ * A template reference that acts as an anchor for dynamic content.
462
+ * This is where the component specified in the config will be rendered.
463
+ */
464
+ contentHost: ViewContainerRef;
465
+ /**
466
+ * A reference to the header element for the z-index focus logic.
467
+ * Used to bring the dialog to the front when clicked.
468
+ */
469
+ header?: ElementRef;
470
+ /**
471
+ * Static counter to track the highest z-index for multiple dialogs.
472
+ * Ensures that the most recently clicked dialog appears on top.
473
+ */
474
+ private static lastZIndex;
475
+ /** Inserted by Angular inject() migration for backwards compatibility */
476
+ constructor(...args: unknown[]);
477
+ /**
478
+ * Lifecycle hook that initializes the dynamic content after the view is ready.
479
+ * Creates the component specified in the config and passes data to it.
480
+ */
481
+ ngAfterViewInit(): void;
482
+ /**
483
+ * Closes the dialog.
484
+ * Called when the close button in the header is clicked.
485
+ */
486
+ onClose(): void;
487
+ /**
488
+ * Brings the dialog to the front by adjusting its z-index.
489
+ * Called when the dialog header is clicked.
490
+ */
491
+ bringToFront(): void;
492
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogWrapperComponent, never>;
493
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogWrapperComponent, "acp-dialog-wrapper", never, {}, {}, never, never, true, never>;
494
+ }
495
+
496
+ declare class IconUserComponent {
497
+ size: _angular_core.InputSignal<string>;
498
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<IconUserComponent, never>;
499
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<IconUserComponent, "acp-icon-user", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
500
+ }
501
+
502
+ declare class SvgIconComponent {
503
+ id: _angular_core.InputSignal<string>;
504
+ width: _angular_core.InputSignal<string>;
505
+ height: _angular_core.InputSignal<string>;
506
+ color: _angular_core.InputSignal<string>;
507
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SvgIconComponent, never>;
508
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SvgIconComponent, "acp-svg-icon", never, { "id": { "alias": "id"; "required": false; "isSignal": true; }; "width": { "alias": "width"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "color": { "alias": "color"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
509
+ }
510
+
511
+ declare class MatInputChipComponent {
512
+ chips: _angular_core.InputSignal<string[]>;
513
+ labelText: _angular_core.InputSignal<string>;
514
+ placelholder: _angular_core.InputSignal<string>;
515
+ addOnBlur: boolean;
516
+ readonly separatorKeysCodes: readonly [13, 188];
517
+ announcer: LiveAnnouncer;
518
+ add(event: MatChipInputEvent): void;
519
+ remove(value: string): void;
520
+ edit(inputRaw: string, event: MatChipEditedEvent): void;
521
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatInputChipComponent, never>;
522
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MatInputChipComponent, "acp-mat-input-chip", never, { "chips": { "alias": "chips"; "required": true; "isSignal": true; }; "labelText": { "alias": "labelText"; "required": true; "isSignal": true; }; "placelholder": { "alias": "placelholder"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
523
+ }
524
+
525
+ type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'light' | 'dark';
526
+ type ButtonType = 'button' | 'submit' | 'reset';
527
+ type MaterialButtonStyle = 'basic' | 'raised' | 'flat' | 'stroked' | 'icon' | 'fab' | 'mini-fab';
528
+ declare class MatThemeButtonComponent {
529
+ variant: _angular_core.InputSignal<ButtonVariant>;
530
+ text: _angular_core.InputSignal<string>;
531
+ icon: _angular_core.InputSignal<string>;
532
+ outlined: _angular_core.InputSignal<boolean>;
533
+ disabled: _angular_core.InputSignal<boolean>;
534
+ useThemeColor: _angular_core.InputSignal<boolean>;
535
+ type: _angular_core.InputSignal<ButtonType>;
536
+ matStyle: _angular_core.InputSignal<MaterialButtonStyle>;
537
+ title: _angular_core.InputSignal<string>;
538
+ ariaLabel: _angular_core.InputSignal<string>;
539
+ name: _angular_core.InputSignal<string>;
540
+ id: _angular_core.InputSignal<string>;
541
+ form: _angular_core.InputSignal<string>;
542
+ tabIndex: _angular_core.InputSignal<number>;
543
+ testId: _angular_core.InputSignal<string>;
544
+ handleClick: _angular_core.OutputEmitterRef<unknown>;
545
+ getButtonClasses(): Record<string, boolean>;
546
+ getThemeColor(): ThemePalette | null;
547
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatThemeButtonComponent, never>;
548
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MatThemeButtonComponent, "acp-mat-theme-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "outlined": { "alias": "outlined"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "useThemeColor": { "alias": "useThemeColor"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "matStyle": { "alias": "matStyle"; "required": false; "isSignal": true; }; "title": { "alias": "title"; "required": false; "isSignal": true; }; "ariaLabel": { "alias": "ariaLabel"; "required": false; "isSignal": true; }; "name": { "alias": "name"; "required": false; "isSignal": true; }; "id": { "alias": "id"; "required": false; "isSignal": true; }; "form": { "alias": "form"; "required": false; "isSignal": true; }; "tabIndex": { "alias": "tabIndex"; "required": false; "isSignal": true; }; "testId": { "alias": "testId"; "required": false; "isSignal": true; }; }, { "handleClick": "handleClick"; }, never, ["*", "svgIcon", "*", "*", "*", "*", "*", "*", "svgIcon", "*"], true, never>;
549
+ }
550
+
551
+ declare class SpinnerComponent {
552
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
553
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "acp-spinner", never, {}, {}, never, never, true, never>;
554
+ }
555
+
556
+ type SnackbarType = 'success' | 'warning' | 'info' | 'error';
557
+
558
+ interface TabulatorColumn {
559
+ title: string;
560
+ field: string;
561
+ width?: number | string;
562
+ minWidth?: number;
563
+ maxWidth?: number;
564
+ resizable?: boolean;
565
+ sortable?: boolean;
566
+ headerSort?: boolean;
567
+ editor?: string | boolean;
568
+ formatter?: string;
569
+ formatterParams?: Record<string, any>;
570
+ validator?: string | string[];
571
+ headerFilter?: string | boolean;
572
+ headerFilterParams?: Record<string, any>;
573
+ frozen?: boolean;
574
+ responsive?: number;
575
+ tooltip?: string | boolean;
576
+ cssClass?: string;
577
+ headerCssClass?: string;
578
+ mutator?: string;
579
+ accessor?: string;
580
+ download?: boolean;
581
+ titleDownload?: string;
582
+ visible?: boolean;
583
+ clipboard?: boolean;
584
+ }
585
+ interface TabulatorTheme {
586
+ name: 'default' | 'bootstrap5' | 'semantic-ui';
587
+ cssPath?: string;
588
+ }
589
+ interface TabulatorConfig {
590
+ data?: any[];
591
+ columns?: TabulatorColumn[];
592
+ height?: string | number | false;
593
+ minHeight?: number;
594
+ maxHeight?: number;
595
+ layout?: 'fitData' | 'fitColumns' | 'fitDataFill' | 'fitDataStretch';
596
+ layoutColumnsOnNewData?: boolean;
597
+ responsiveLayout?: boolean | 'hide' | 'collapse';
598
+ responsiveLayoutCollapseStartOpen?: boolean;
599
+ columnMinWidth?: number;
600
+ resizableColumns?: boolean;
601
+ movableColumns?: boolean;
602
+ columnHeaderVertAlign?: 'top' | 'middle' | 'bottom';
603
+ placeholder?: string;
604
+ footerElement?: string;
605
+ tooltips?: boolean | ((cell: any) => string);
606
+ tooltipGenerationMode?: 'load' | 'hover';
607
+ history?: boolean;
608
+ keybindings?: Record<string, string>;
609
+ reactiveData?: boolean;
610
+ autoResize?: boolean;
611
+ tableBuilding?: () => void;
612
+ tableBuilt?: () => void;
613
+ renderStarted?: () => void;
614
+ renderComplete?: () => void;
615
+ htmlImporting?: () => void;
616
+ htmlImported?: () => void;
617
+ dataLoading?: (data: any[]) => void;
618
+ dataLoaded?: (data: any[]) => void;
619
+ dataChanged?: (data: any[]) => void;
620
+ pageLoaded?: (pageno: number) => void;
621
+ dataSorting?: (sorters: any[]) => void;
622
+ dataSorted?: (sorters: any[], rows: any[]) => void;
623
+ dataFiltering?: (filters: any[]) => void;
624
+ dataFiltered?: (filters: any[], rows: any[]) => void;
625
+ validationFailed?: (cell: any, value: any, validators: any[]) => void;
626
+ clipboardCopyStyled?: (clipboard: string) => string;
627
+ clipboardCopyConfig?: Record<string, any>;
628
+ clipboardPasteParser?: string | ((clipboard: string) => any[][]);
629
+ clipboardPasteAction?: 'insert' | 'update' | 'replace';
630
+ printAsHtml?: boolean;
631
+ printFormatter?: (tableHtml: string, table: any) => string;
632
+ printHeader?: string;
633
+ printFooter?: string;
634
+ tabEndNewRow?: boolean | ((row: any) => any);
635
+ }
636
+ interface TabulatorEventHandlers {
637
+ onCellEdited?: (cell: any) => void;
638
+ onRowClick?: (e: Event, row: any) => void;
639
+ onRowSelected?: (row: any) => void;
640
+ onRowDeselected?: (row: any) => void;
641
+ onDataChanged?: (data: any[]) => void;
642
+ onTableReady?: (tabulator: any) => void;
643
+ }
644
+
645
+ declare class CustomTabulatorComponent implements OnChanges, AfterViewInit, OnDestroy {
646
+ data: any[];
647
+ columns: any[];
648
+ height: string | number | false;
649
+ layout: 'fitData' | 'fitColumns' | 'fitDataFill' | 'fitDataStretch';
650
+ dataTree: boolean;
651
+ dataTreeChildField: string;
652
+ dataTreeStartExpanded: boolean;
653
+ dataTreeSelectPropagate: boolean;
654
+ selectable: boolean;
655
+ reactiveData: boolean;
656
+ placeholder: string;
657
+ autoResize: boolean;
658
+ theme: TabulatorTheme;
659
+ options: Record<string, any>;
660
+ cellEdited: EventEmitter<any>;
661
+ rowClick: EventEmitter<any>;
662
+ rowSelected: EventEmitter<any>;
663
+ tableReady: EventEmitter<TabulatorFull>;
664
+ private _tabulator;
665
+ containerId: string;
666
+ ngAfterViewInit(): void;
667
+ ngOnChanges(changes: SimpleChanges): void;
668
+ ngOnDestroy(): void;
669
+ private initializeTable;
670
+ private applyTheme;
671
+ private registerEvents;
672
+ private updateData;
673
+ private updateColumns;
674
+ private destroyTable;
675
+ getInstance(): TabulatorFull;
676
+ redraw(): void;
677
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<CustomTabulatorComponent, never>;
678
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<CustomTabulatorComponent, "acp-tabulator", never, { "data": { "alias": "data"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "height": { "alias": "height"; "required": false; }; "layout": { "alias": "layout"; "required": false; }; "dataTree": { "alias": "dataTree"; "required": false; }; "dataTreeChildField": { "alias": "dataTreeChildField"; "required": false; }; "dataTreeStartExpanded": { "alias": "dataTreeStartExpanded"; "required": false; }; "dataTreeSelectPropagate": { "alias": "dataTreeSelectPropagate"; "required": false; }; "selectable": { "alias": "selectable"; "required": false; }; "reactiveData": { "alias": "reactiveData"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "autoResize": { "alias": "autoResize"; "required": false; }; "theme": { "alias": "theme"; "required": false; }; "options": { "alias": "options"; "required": false; }; }, { "cellEdited": "cellEdited"; "rowClick": "rowClick"; "rowSelected": "rowSelected"; "tableReady": "tableReady"; }, never, never, true, never>;
679
+ }
680
+
681
+ interface DateRangeConfig<T = any> {
682
+ startDate: FieldDefinition<T>;
683
+ endDate: FieldDefinition<T>;
684
+ }
685
+ declare type ControlType = 'textbox' | 'ktextbox' | 'combobox' | 'textboxNum' | 'dropdown' | 'dropdownlist' | 'multiselect' | 'autocomplete' | 'checkbox' | 'radiobutton' | 'inquiryInDialog' | 'timepicker' | 'datepicker' | 'daterange' | 'textarea' | 'slideToggle' | 'slider' | 'switch' | 'buttonToggleGroup';
686
+ declare type FieldType = 'number' | 'string' | 'boolean' | 'date' | 'month' | 'email' | 'password' | 'tel' | 'hidden' | 'image' | 'url' | 'week' | 'search' | 'reset' | 'template' | 'custom' | 'expand';
687
+ declare type ColumnType = 'text' | 'component' | 'html' | 'template';
688
+ declare class FieldDefinition<T = any> {
689
+ value?: T;
690
+ valueLabel?: string;
691
+ defaultValue?: T;
692
+ defaultValueLabel?: string;
693
+ key: string;
694
+ label: string;
695
+ dateRangeConfig?: DateRangeConfig<T>;
696
+ isDefaultSearchField?: boolean;
697
+ required?: boolean;
698
+ disabled?: boolean;
699
+ order?: number;
700
+ icon?: string;
701
+ controlType?: ControlType;
702
+ type?: FieldType;
703
+ editor?: 'numeric' | 'boolean' | '';
704
+ options?: {
705
+ label: string;
706
+ value: T;
707
+ }[];
708
+ valueOptions?: string[];
709
+ valuePrimitive?: boolean;
710
+ textField?: string;
711
+ valueField?: string;
712
+ errorMessage?: string;
713
+ width?: string;
714
+ valueChangeCallback?: (value: T) => void;
715
+ columnType?: ColumnType;
716
+ body?: any;
717
+ constructor(options?: Partial<FieldDefinition<T>>);
718
+ }
719
+
720
+ interface TableContext<T = any> {
721
+ $implicit: T;
722
+ index?: number;
723
+ }
724
+ declare class ColumnDefinition<T = any> extends FieldDefinition<T> {
725
+ index?: number;
726
+ format?: any;
727
+ hasFooter?: boolean;
728
+ hideInOverlay?: boolean;
729
+ optionsAttribut?: string;
730
+ templateOutlet?: TemplateRef<TableContext<T>>;
731
+ constructor(options?: Partial<ColumnDefinition<T>>);
732
+ }
733
+
734
+ interface OptionSearchConfig<T> {
735
+ displayedColumns?: string[];
736
+ displayColumnDefs?: ColumnDefinition[];
737
+ close?: boolean;
738
+ }
739
+
740
+ declare class TableCellIndex {
741
+ row: number;
742
+ column: number;
743
+ constructor(row: number, column: number);
744
+ }
745
+
746
+ interface TableRow {
747
+ colorRow?: string;
748
+ [key: string]: any;
749
+ }
750
+
751
+ declare class Pagination {
752
+ pageIndex: number;
753
+ pageSize: number;
754
+ maxSize: number;
755
+ totalRecords: number;
756
+ pageSizeOptions: number[];
757
+ /**
758
+ * @param pageIndex Current page index (0-based for MatPagination compatibility)
759
+ * @param pageSize Number of records per page
760
+ * @param maxSize Maximum number of pages displayed in the pagination control
761
+ * @param totalRecords Total number of records
762
+ * @param pageSizeOptions Available page size options
763
+ */
764
+ constructor(pageIndex?: number, // MatPagination starts at 0
765
+ pageSize?: number, maxSize?: number, totalRecords?: number, pageSizeOptions?: number[]);
766
+ /**
767
+ * Calculates the total number of pages.
768
+ */
769
+ getTotalPages(): number;
770
+ /**
771
+ * Updates the page size and resets the page index to the first page.
772
+ * @param newPageSize The new page size
773
+ */
774
+ updatePageSize(newPageSize: number): void;
775
+ /**
776
+ * Updates pagination data based on paginator event.
777
+ * @param event MatPaginator event
778
+ */
779
+ updateFromPaginatorEvent(event: any): void;
780
+ }
781
+
782
+ declare class MatDynamicTableComponent<T extends TableRow> implements AfterContentInit, OnChanges, OnInit, OnDestroy {
783
+ private componentRefs;
784
+ private embeddedViews;
785
+ private cdr;
786
+ showExpand: boolean;
787
+ showFooter: boolean;
788
+ locale: string;
789
+ highlightRowIndex: number;
790
+ visibleColumns: string[];
791
+ columnDefinitions: ColumnDefinition<T>[];
792
+ showSelectBox: boolean;
793
+ tableData: T[];
794
+ rowTemplate: TemplateRef<TableContext<T>> | null;
795
+ expandedDetail: TemplateRef<TableContext<T>> | null;
796
+ enablePagination: boolean;
797
+ paginationConfig: Pagination | null;
798
+ isLoadingData: boolean;
799
+ rowSelected: EventEmitter<T[]>;
800
+ copyRow: EventEmitter<T>;
801
+ showExpanded: EventEmitter<T>;
802
+ hideExpanded: EventEmitter<T>;
803
+ pageEvent: EventEmitter<PageEvent>;
804
+ isNormalRow: (_: number, row: T) => boolean;
805
+ isExpandedRow: (_: number, row: T) => boolean;
806
+ dataSource: MatTableDataSource<T, _angular_material_paginator.MatPaginator>;
807
+ selection: SelectionModel<T>;
808
+ expandedElement: T | null;
809
+ columnsToDisplayWithExpand: string[];
810
+ headerRowDefs: QueryList<MatHeaderRowDef>;
811
+ rowDefs: QueryList<MatRowDef<T>>;
812
+ footerRowDefs: QueryList<MatFooterRowDef>;
813
+ columnDefs: QueryList<MatColumnDef>;
814
+ noDataRow: MatNoDataRow;
815
+ table: MatTable<T>;
816
+ rows: QueryList<ViewContainerRef>;
817
+ ngOnInit(): void;
818
+ ngOnChanges(changes: SimpleChanges): void;
819
+ ngAfterContentInit(): void;
820
+ ngOnDestroy(): void;
821
+ private updateTableData;
822
+ private updateColumnsToDisplay;
823
+ private initializeSelection;
824
+ private registerTableContent;
825
+ private initializeTable;
826
+ private cleanupDynamicComponents;
827
+ isAllSelected(): boolean;
828
+ masterToggle(): void;
829
+ checkboxLabel(row?: T): string;
830
+ selectRow(row: T): void;
831
+ onExpand(event: Event, element: T): void;
832
+ getRowColor(element: T): Record<string, string>;
833
+ handlePageEvent(e: PageEvent): void;
834
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<MatDynamicTableComponent<any>, never>;
835
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<MatDynamicTableComponent<any>, "acp-mat-dynamic-table", never, { "showExpand": { "alias": "showExpand"; "required": false; }; "showFooter": { "alias": "showFooter"; "required": false; }; "locale": { "alias": "locale"; "required": false; }; "highlightRowIndex": { "alias": "highlightRowIndex"; "required": false; }; "visibleColumns": { "alias": "visibleColumns"; "required": false; }; "columnDefinitions": { "alias": "columnDefinitions"; "required": false; }; "showSelectBox": { "alias": "showSelectBox"; "required": false; }; "tableData": { "alias": "tableData"; "required": false; }; "rowTemplate": { "alias": "rowTemplate"; "required": false; }; "expandedDetail": { "alias": "expandedDetail"; "required": false; }; "enablePagination": { "alias": "enablePagination"; "required": false; }; "paginationConfig": { "alias": "paginationConfig"; "required": false; }; "isLoadingData": { "alias": "isLoadingData"; "required": false; }; }, { "rowSelected": "rowSelected"; "copyRow": "copyRow"; "showExpanded": "showExpanded"; "hideExpanded": "hideExpanded"; "pageEvent": "pageEvent"; }, ["noDataRow", "headerRowDefs", "rowDefs", "footerRowDefs", "columnDefs", "rows"], never, true, never>;
836
+ }
837
+
838
+ declare class ThemeToggleComponent {
839
+ private themeService;
840
+ darkMode$: Observable<boolean>;
841
+ /** Inserted by Angular inject() migration for backwards compatibility */
842
+ constructor(...args: unknown[]);
843
+ toggleDarkMode(): void;
844
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeToggleComponent, never>;
845
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggleComponent, "acp-theme-toggle", never, {}, {}, never, never, true, never>;
846
+ }
847
+
848
+ declare class ReusableAutocompleteComponent implements OnInit, OnDestroy {
849
+ dataSource: AutocompleteWrapperItem[];
850
+ config: AutocompleteWrapperConfig;
851
+ itemTemplate?: TemplateRef<any>;
852
+ searchFunction?: AutocompleteWrapperSearchFunction;
853
+ notFoundTemplate?: TemplateRef<any>;
854
+ overlayWidth: _angular_core.InputSignal<string>;
855
+ overlayMaxHeight: _angular_core.InputSignal<string>;
856
+ itemSelected: _angular_core.OutputEmitterRef<AutocompleteWrapperItem>;
857
+ searchChanged: _angular_core.OutputEmitterRef<string>;
858
+ searchRequested: _angular_core.OutputEmitterRef<{
859
+ query: string;
860
+ filters: AutocompleteWrapperFilters;
861
+ page: number;
862
+ }>;
863
+ pageChanged: _angular_core.OutputEmitterRef<number>;
864
+ filterChanged: _angular_core.OutputEmitterRef<AutocompleteWrapperFilters>;
865
+ advancedSearchClicked: _angular_core.OutputEmitterRef<void>;
866
+ allResultsClicked: _angular_core.OutputEmitterRef<string>;
867
+ createClicked: _angular_core.OutputEmitterRef<string>;
868
+ searchInput: ElementRef<HTMLInputElement>;
869
+ historyListElement?: ElementRef<HTMLUListElement>;
870
+ resultsListElement?: ElementRef<HTMLUListElement>;
871
+ query: string;
872
+ isLoading: _angular_core.WritableSignal<boolean>;
873
+ overlayOpen: _angular_core.WritableSignal<boolean>;
874
+ selectedIndex: _angular_core.WritableSignal<number>;
875
+ currentPage: _angular_core.WritableSignal<number>;
876
+ filteredItems: _angular_core.WritableSignal<AutocompleteWrapperItem[]>;
877
+ historyList: _angular_core.WritableSignal<AutocompleteWrapperItem[]>;
878
+ totalCount: _angular_core.WritableSignal<number>;
879
+ filters: AutocompleteWrapperFilters;
880
+ isHistoryVisible: _angular_core.Signal<boolean>;
881
+ totalItems: _angular_core.Signal<number>;
882
+ totalPages: _angular_core.Signal<number>;
883
+ currentPageItems: _angular_core.Signal<AutocompleteWrapperItem[]>;
884
+ startItem: _angular_core.Signal<number>;
885
+ endItem: _angular_core.Signal<number>;
886
+ sectionTitle: _angular_core.Signal<string>;
887
+ isNoResults: _angular_core.Signal<boolean>;
888
+ private destroy$;
889
+ private searchSubject;
890
+ private autocompleteService;
891
+ ngOnInit(): void;
892
+ ngOnDestroy(): void;
893
+ private mergeDefaultConfig;
894
+ private setupSearch;
895
+ private performSearch;
896
+ private loadHistory;
897
+ private searchSubjectNext;
898
+ onInput(event: Event): void;
899
+ onKeyDown(event: KeyboardEvent): void;
900
+ onFilterChange(): void;
901
+ updateSearchResults(result: AutocompleteWrapperSearchResult): void;
902
+ showOverlay(): void;
903
+ hideOverlay(): void;
904
+ isType(item: any): item is string;
905
+ selectItem(item: AutocompleteWrapperItem): void;
906
+ clearSearch(): void;
907
+ removeHistoryItem(index: number, event: Event): void;
908
+ clearHistory(): void;
909
+ goToPage(event: Event): void;
910
+ goToFirstPage(): void;
911
+ goToPreviousPage(): void;
912
+ goToNextPage(): void;
913
+ goToLastPage(): void;
914
+ onCreateNew($event: MouseEvent): void;
915
+ onAdvancedSearch(): void;
916
+ onShowAllResults(): void;
917
+ getItemDisplayText(item: AutocompleteWrapperItem): string;
918
+ noResultsText(): string;
919
+ private scrollToSelected;
920
+ getState(): AutocompleteWrapperState;
921
+ setQuery(query: string): void;
922
+ focus(): void;
923
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ReusableAutocompleteComponent, never>;
924
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReusableAutocompleteComponent, "acp-autocomplete-wrapper", never, { "dataSource": { "alias": "dataSource"; "required": false; }; "config": { "alias": "config"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; }; "searchFunction": { "alias": "searchFunction"; "required": false; }; "notFoundTemplate": { "alias": "notFoundTemplate"; "required": false; }; "overlayWidth": { "alias": "overlayWidth"; "required": false; "isSignal": true; }; "overlayMaxHeight": { "alias": "overlayMaxHeight"; "required": false; "isSignal": true; }; }, { "itemSelected": "itemSelected"; "searchChanged": "searchChanged"; "searchRequested": "searchRequested"; "pageChanged": "pageChanged"; "filterChanged": "filterChanged"; "advancedSearchClicked": "advancedSearchClicked"; "allResultsClicked": "allResultsClicked"; "createClicked": "createClicked"; }, never, never, true, never>;
925
+ }
926
+
927
+ declare class ToUpperCaseDirective implements ControlValueAccessor {
928
+ private el;
929
+ private renderer;
930
+ onInput(): void;
931
+ onChange: (_: any) => void;
932
+ onTouched: () => void;
933
+ writeValue(value: any): void;
934
+ registerOnChange(fn: any): void;
935
+ registerOnTouched(fn: any): void;
936
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToUpperCaseDirective, never>;
937
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToUpperCaseDirective, "[acpToUpperCase]", never, {}, {}, never, never, true, never>;
938
+ }
939
+
940
+ declare const DYNAMIC_INPUT: InjectionToken<unknown>;
941
+
942
+ /**
943
+ * Helper function to disable spinner for specific requests
944
+ * @returns HttpContext with spinner disabled
945
+ */
946
+ declare function withoutSpinner(): HttpContext;
947
+ /**
948
+ * Service to track active HTTP requests
949
+ */
950
+ declare class ActiveRequestsTracker {
951
+ get count(): number;
952
+ add(request: HttpRequest<any>): void;
953
+ remove(request: HttpRequest<any>): void;
954
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ActiveRequestsTracker, never>;
955
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ActiveRequestsTracker>;
956
+ }
957
+ /**
958
+ * Interceptor that shows/hides a loading spinner based on active HTTP requests
959
+ */
960
+ declare const spinnerInterceptor: HttpInterceptorFn;
961
+
962
+ declare class GetTotalPipe implements PipeTransform {
963
+ transform(colName: string, dataSource: any[]): any;
964
+ /**
965
+ * Calculate and return the total (sum) of all the column --> the column must be number
966
+ */
967
+ getTotal(colName: string, dataSource: any[]): number;
968
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<GetTotalPipe, never>;
969
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<GetTotalPipe, "getTotal", true>;
970
+ }
971
+
972
+ type StatusGender = 'male' | 'female' | 'neutral';
973
+ interface StatusOptions {
974
+ gender?: StatusGender;
975
+ showIcon?: boolean;
976
+ customActiveText?: string;
977
+ customInactiveText?: string;
978
+ textClass?: string;
979
+ iconClass?: string;
980
+ }
981
+ declare class StatusDisplayPipe implements PipeTransform {
982
+ private sanitizer;
983
+ private transloco;
984
+ transform(isActive: boolean, options?: StatusOptions): SafeHtml;
985
+ private getStatusText;
986
+ private getTranslationKey;
987
+ private getFallbackText;
988
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<StatusDisplayPipe, never>;
989
+ static ɵpipe: _angular_core.ɵɵPipeDeclaration<StatusDisplayPipe, "statusDisplay", true>;
990
+ }
991
+
992
+ export { AUTOCOMPLETE_WRAPPER_CUSTOMER_CONFIG, AUTOCOMPLETE_WRAPPER_DEFAULT_CONFIG, AUTOCOMPLETE_WRAPPER_LOCAL_CONFIG, AUTOCOMPLETE_WRAPPER_PAGINATED_CONFIG, AUTOCOMPLETE_WRAPPER_PRODUCT_CONFIG, AUTOCOMPLETE_WRAPPER_SIMPLE_CONFIG, ActiveRequestsTracker, AdvancedDialogService, AutocompleteWrapperService, ColumnDefinition, CustomTabulatorComponent, DYNAMIC_INPUT, DialogWrapperComponent, FieldDefinition, GetTotalPipe, IconUserComponent, MatDynamicCardComponent, MatDynamicTableComponent, MatInputChipComponent, MatThemeButtonComponent, OverlayService, Pagination, ReusableAutocompleteComponent, SpinnerComponent, StatusDisplayPipe, SvgIconComponent, TableCellIndex, ThemeService, ThemeToggleComponent, ToUpperCaseDirective, createAutocompleteWrapperConfig, spinnerInterceptor, withoutSpinner };
993
+ export type { AutocompleteWrapperActions, AutocompleteWrapperConfig, AutocompleteWrapperEventHandler, AutocompleteWrapperEvents, AutocompleteWrapperFilters, AutocompleteWrapperItem, AutocompleteWrapperItemProperty, AutocompleteWrapperPaginationInfo, AutocompleteWrapperSearchField, AutocompleteWrapperSearchFunction, AutocompleteWrapperSearchMode, AutocompleteWrapperSearchResult, AutocompleteWrapperState, AutocompleteWrapperStockOption, ButtonType, ButtonVariant, ColumnType, ControlType, DateRangeConfig, DialogSize, DialogWrapperConfig, FieldType, MatCustomDialogConfig, MaterialButtonStyle, OptionSearchConfig, ReusableAutocompleteWrapperComponent, SnackbarType, TableContext, TableRow, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme };