@acontplus/ng-components 1.1.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/index.d.ts CHANGED
@@ -1,14 +1,14 @@
1
1
  import * as _angular_core from '@angular/core';
2
- import { Type, AfterViewInit, OnDestroy, ViewContainerRef, ElementRef, OnChanges, SimpleChanges, TemplateRef, AfterContentInit, OnInit, InjectionToken, PipeTransform } from '@angular/core';
2
+ import { Type, AfterViewInit, OnDestroy, ViewContainerRef, ElementRef, TemplateRef, AfterContentInit, OnChanges, OnInit, SimpleChanges, PipeTransform } from '@angular/core';
3
3
  import { MatDialogRef } from '@angular/material/dialog';
4
4
  import { ScrollStrategy } from '@angular/cdk/overlay';
5
5
  import { MatChipInputEvent, MatChipEditedEvent } from '@angular/material/chips';
6
6
  import { LiveAnnouncer } from '@angular/cdk/a11y';
7
- import { Tabulator } from 'tabulator-tables';
8
7
  import * as _angular_material_paginator from '@angular/material/paginator';
9
8
  import { PageEvent } from '@angular/material/paginator';
10
9
  import { MatTableDataSource, MatHeaderRowDef, MatRowDef, MatFooterRowDef, MatColumnDef, MatTable } from '@angular/material/table';
11
10
  import { SelectionModel } from '@angular/cdk/collections';
11
+ import { Tabulator } from 'tabulator-tables';
12
12
  import * as rxjs from 'rxjs';
13
13
  import { Observable } from 'rxjs';
14
14
  import { ControlValueAccessor } from '@angular/forms';
@@ -30,7 +30,7 @@ import { ComponentType } from '@angular/cdk/portal';
30
30
  * Card content goes here
31
31
  * </acp-dynamic-card>
32
32
  */
33
- declare class DynamicCardComponent {
33
+ declare class DynamicCard {
34
34
  /**
35
35
  * The title text to display in the card header.
36
36
  * @default null
@@ -121,8 +121,8 @@ declare class DynamicCardComponent {
121
121
  * @param event The click event
122
122
  */
123
123
  handleCardClick(event: Event): void;
124
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicCardComponent, never>;
125
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicCardComponent, "acp-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>;
124
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicCard, never>;
125
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicCard, "acp-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>;
126
126
  }
127
127
 
128
128
  type DialogSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'xxl' | 'full';
@@ -163,7 +163,7 @@ interface MatCustomDialogConfig<T = unknown> {
163
163
  exitAnimationDuration?: number | string;
164
164
  }
165
165
  /**
166
- * Configuration interface for opening a dialog inside the custom `DialogWrapperComponent`.
166
+ * Configuration interface for opening a dialog inside the custom `DialogWrapper`.
167
167
  * This interface defines the properties needed to configure the dialog wrapper.
168
168
  *
169
169
  * @interface DialogWrapperConfig
@@ -231,7 +231,7 @@ declare class AdvancedDialogService {
231
231
  * @param matDialogConfig Standard MatDialog configuration (size, position, etc.).
232
232
  * @returns A MatDialogRef instance pointing to the wrapper.
233
233
  */
234
- openInWrapper<T, R = unknown>(wrapperConfig: DialogWrapperConfig<T>, matDialogConfig?: MatCustomDialogConfig<T>): Promise<MatDialogRef<DialogWrapperComponent, R>>;
234
+ openInWrapper<T, R = unknown>(wrapperConfig: DialogWrapperConfig<T>, matDialogConfig?: MatCustomDialogConfig<T>): Promise<MatDialogRef<DialogWrapper, R>>;
235
235
  /**
236
236
  * Helper to open a dialog and only get an observable of the result.
237
237
  */
@@ -258,7 +258,7 @@ declare class OverlayService {
258
258
  static ɵprov: _angular_core.ɵɵInjectableDeclaration<OverlayService>;
259
259
  }
260
260
 
261
- declare class ThemeService {
261
+ declare class ThemeSwitcher {
262
262
  private readonly _darkMode;
263
263
  private readonly platformId;
264
264
  isDarkMode$: rxjs.Observable<boolean>;
@@ -266,8 +266,8 @@ declare class ThemeService {
266
266
  loadMode(): void;
267
267
  toggleDarkMode(): void;
268
268
  private applyTheme;
269
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeService, never>;
270
- static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeService>;
269
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeSwitcher, never>;
270
+ static ɵprov: _angular_core.ɵɵInjectableDeclaration<ThemeSwitcher>;
271
271
  }
272
272
 
273
273
  interface AutocompleteWrapperItem {
@@ -458,8 +458,8 @@ declare class AutocompleteWrapperService {
458
458
  * data: { message: 'This is some data passed to the dialog content component' }
459
459
  * });
460
460
  */
461
- declare class DialogWrapperComponent implements AfterViewInit, OnDestroy {
462
- dialogRef: MatDialogRef<DialogWrapperComponent, any>;
461
+ declare class DialogWrapper implements AfterViewInit, OnDestroy {
462
+ dialogRef: MatDialogRef<DialogWrapper, any>;
463
463
  config: DialogWrapperConfig<unknown>;
464
464
  /**
465
465
  * A template reference that acts as an anchor for dynamic content.
@@ -481,7 +481,7 @@ declare class DialogWrapperComponent implements AfterViewInit, OnDestroy {
481
481
  */
482
482
  private bringToFrontTimeoutId;
483
483
  /**
484
- * Creates an instance of DialogWrapperComponent.
484
+ * Creates an instance of DialogWrapper.
485
485
  *
486
486
  * @param dialogRef Reference to the dialog opened via the Material Dialog service
487
487
  * @param config Configuration for the dialog wrapper, injected from MAT_DIALOG_DATA
@@ -507,26 +507,26 @@ declare class DialogWrapperComponent implements AfterViewInit, OnDestroy {
507
507
  * Called when the dialog header is clicked.
508
508
  */
509
509
  bringToFront(): void;
510
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogWrapperComponent, never>;
511
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogWrapperComponent, "acp-dialog-wrapper", never, {}, {}, never, never, true, never>;
510
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DialogWrapper, never>;
511
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DialogWrapper, "acp-dialog-wrapper", never, {}, {}, never, never, true, never>;
512
512
  }
513
513
 
514
- declare class UserIconComponent {
514
+ declare class UserIcon {
515
515
  size: _angular_core.InputSignal<string>;
516
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserIconComponent, never>;
517
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserIconComponent, "acp-user-icon", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
516
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<UserIcon, never>;
517
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<UserIcon, "acp-user-icon", never, { "size": { "alias": "size"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
518
518
  }
519
519
 
520
- declare class SvgIconComponent {
520
+ declare class SvgIcon {
521
521
  id: _angular_core.InputSignal<string>;
522
522
  width: _angular_core.InputSignal<string>;
523
523
  height: _angular_core.InputSignal<string>;
524
524
  color: _angular_core.InputSignal<string>;
525
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SvgIconComponent, never>;
526
- 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>;
525
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<SvgIcon, never>;
526
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<SvgIcon, "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>;
527
527
  }
528
528
 
529
- declare class InputChipComponent {
529
+ declare class InputChip {
530
530
  chips: _angular_core.InputSignal<string[]>;
531
531
  labelText: _angular_core.InputSignal<string>;
532
532
  placelholder: _angular_core.InputSignal<string>;
@@ -536,14 +536,15 @@ declare class InputChipComponent {
536
536
  add(event: MatChipInputEvent): void;
537
537
  remove(value: string): void;
538
538
  edit(inputRaw: string, event: MatChipEditedEvent): void;
539
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputChipComponent, never>;
540
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputChipComponent, "acp-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>;
539
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<InputChip, never>;
540
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<InputChip, "acp-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>;
541
541
  }
542
542
 
543
- type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark';
544
543
  type ButtonType = 'button' | 'submit' | 'reset';
544
+ type ButtonVariant = 'primary' | 'secondary' | 'success' | 'danger' | 'warning' | 'info' | 'dark';
545
545
  type MaterialButtonStyle = 'text' | 'elevated' | 'outlined' | 'filled' | 'tonal' | 'icon' | 'fab' | 'mini-fab' | 'extended-fab';
546
- declare class ButtonComponent {
546
+
547
+ declare class Button {
547
548
  variant: _angular_core.InputSignal<ButtonVariant>;
548
549
  text: _angular_core.InputSignal<string>;
549
550
  icon: _angular_core.InputSignal<string>;
@@ -562,138 +563,13 @@ declare class ButtonComponent {
562
563
  handleClick: _angular_core.OutputEmitterRef<unknown>;
563
564
  getButtonClasses(): Record<string, boolean>;
564
565
  getDisplayText(): string;
565
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ButtonComponent, never>;
566
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ButtonComponent, "acp-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "matStyle": { "alias": "matStyle"; "required": false; "isSignal": true; }; "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; "extended": { "alias": "extended"; "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, ["*"], true, never>;
567
- }
568
-
569
- declare class SpinnerComponent {
570
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<SpinnerComponent, never>;
571
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<SpinnerComponent, "acp-spinner", never, {}, {}, never, never, true, never>;
566
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Button, never>;
567
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Button, "acp-button", never, { "variant": { "alias": "variant"; "required": false; "isSignal": true; }; "text": { "alias": "text"; "required": false; "isSignal": true; }; "icon": { "alias": "icon"; "required": false; "isSignal": true; }; "disabled": { "alias": "disabled"; "required": false; "isSignal": true; }; "type": { "alias": "type"; "required": false; "isSignal": true; }; "matStyle": { "alias": "matStyle"; "required": false; "isSignal": true; }; "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; "extended": { "alias": "extended"; "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, ["*"], true, never>;
572
568
  }
573
569
 
574
- interface TabulatorColumn {
575
- title: string;
576
- field: string;
577
- width?: number | string;
578
- minWidth?: number;
579
- maxWidth?: number;
580
- resizable?: boolean;
581
- sortable?: boolean;
582
- headerSort?: boolean;
583
- editor?: string | boolean;
584
- formatter?: string;
585
- formatterParams?: Record<string, any>;
586
- validator?: string | string[];
587
- headerFilter?: string | boolean;
588
- headerFilterParams?: Record<string, any>;
589
- frozen?: boolean;
590
- responsive?: number;
591
- tooltip?: string | boolean;
592
- cssClass?: string;
593
- headerCssClass?: string;
594
- mutator?: string;
595
- accessor?: string;
596
- download?: boolean;
597
- titleDownload?: string;
598
- visible?: boolean;
599
- clipboard?: boolean;
600
- }
601
- interface TabulatorTheme {
602
- name: 'default' | 'modern' | 'midnight' | 'simple' | 'site' | 'site-dark';
603
- cssPath?: string;
604
- }
605
- interface TabulatorConfig {
606
- data?: any[];
607
- columns?: TabulatorColumn[];
608
- height?: string | number | false;
609
- minHeight?: number;
610
- maxHeight?: number;
611
- layout?: 'fitData' | 'fitColumns' | 'fitDataFill' | 'fitDataStretch';
612
- layoutColumnsOnNewData?: boolean;
613
- responsiveLayout?: boolean | 'hide' | 'collapse';
614
- responsiveLayoutCollapseStartOpen?: boolean;
615
- columnMinWidth?: number;
616
- resizableColumns?: boolean;
617
- movableColumns?: boolean;
618
- columnHeaderVertAlign?: 'top' | 'middle' | 'bottom';
619
- placeholder?: string;
620
- footerElement?: string;
621
- tooltips?: boolean | ((cell: any) => string);
622
- tooltipGenerationMode?: 'load' | 'hover';
623
- history?: boolean;
624
- keybindings?: Record<string, string>;
625
- reactiveData?: boolean;
626
- autoResize?: boolean;
627
- tableBuilding?: () => void;
628
- tableBuilt?: () => void;
629
- renderStarted?: () => void;
630
- renderComplete?: () => void;
631
- htmlImporting?: () => void;
632
- htmlImported?: () => void;
633
- dataLoading?: (data: any[]) => void;
634
- dataLoaded?: (data: any[]) => void;
635
- dataChanged?: (data: any[]) => void;
636
- pageLoaded?: (pageno: number) => void;
637
- dataSorting?: (sorters: any[]) => void;
638
- dataSorted?: (sorters: any[], rows: any[]) => void;
639
- dataFiltering?: (filters: any[]) => void;
640
- dataFiltered?: (filters: any[], rows: any[]) => void;
641
- validationFailed?: (cell: any, value: any, validators: any[]) => void;
642
- clipboardCopyStyled?: (clipboard: string) => string;
643
- clipboardCopyConfig?: Record<string, any>;
644
- clipboardPasteParser?: string | ((clipboard: string) => any[][]);
645
- clipboardPasteAction?: 'insert' | 'update' | 'replace';
646
- printAsHtml?: boolean;
647
- printFormatter?: (tableHtml: string, table: any) => string;
648
- printHeader?: string;
649
- printFooter?: string;
650
- tabEndNewRow?: boolean | ((row: any) => any);
651
- }
652
- interface TabulatorEventHandlers {
653
- onCellEdited?: (cell: any) => void;
654
- onRowClick?: (e: Event, row: any) => void;
655
- onRowSelected?: (row: any) => void;
656
- onRowDeselected?: (row: any) => void;
657
- onDataChanged?: (data: any[]) => void;
658
- onTableReady?: (tabulator: any) => void;
659
- }
660
-
661
- declare class TabulatorTableComponent implements OnChanges, AfterViewInit, OnDestroy {
662
- readonly data: _angular_core.InputSignal<any[]>;
663
- readonly columns: _angular_core.InputSignal<any[]>;
664
- readonly height: _angular_core.InputSignal<string | number | false>;
665
- readonly layout: _angular_core.InputSignal<"fitData" | "fitColumns" | "fitDataFill" | "fitDataStretch">;
666
- readonly dataTree: _angular_core.InputSignal<boolean>;
667
- readonly dataTreeChildField: _angular_core.InputSignal<string>;
668
- readonly dataTreeStartExpanded: _angular_core.InputSignal<boolean>;
669
- readonly dataTreeSelectPropagate: _angular_core.InputSignal<boolean>;
670
- readonly selectable: _angular_core.InputSignal<boolean>;
671
- readonly reactiveData: _angular_core.InputSignal<boolean>;
672
- readonly placeholder: _angular_core.InputSignal<string>;
673
- readonly autoResize: _angular_core.InputSignal<boolean>;
674
- readonly theme: _angular_core.InputSignal<TabulatorTheme>;
675
- readonly customClass: _angular_core.InputSignal<string>;
676
- readonly options: _angular_core.InputSignal<Record<string, any>>;
677
- readonly cellEdited: _angular_core.OutputEmitterRef<any>;
678
- readonly rowClick: _angular_core.OutputEmitterRef<any>;
679
- readonly rowSelected: _angular_core.OutputEmitterRef<any>;
680
- readonly tableReady: _angular_core.OutputEmitterRef<Tabulator>;
681
- private _tabulator;
682
- containerId: string;
683
- ngAfterViewInit(): void;
684
- ngOnChanges(changes: SimpleChanges): void;
685
- ngOnDestroy(): void;
686
- private initializeTable;
687
- private applyTheme;
688
- private applyCustomClass;
689
- private registerEvents;
690
- private updateData;
691
- private updateColumns;
692
- private destroyTable;
693
- getInstance(): Tabulator;
694
- redraw(): void;
695
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabulatorTableComponent, never>;
696
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabulatorTableComponent, "acp-tabulator", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "dataTree": { "alias": "dataTree"; "required": false; "isSignal": true; }; "dataTreeChildField": { "alias": "dataTreeChildField"; "required": false; "isSignal": true; }; "dataTreeStartExpanded": { "alias": "dataTreeStartExpanded"; "required": false; "isSignal": true; }; "dataTreeSelectPropagate": { "alias": "dataTreeSelectPropagate"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "reactiveData": { "alias": "reactiveData"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "cellEdited": "cellEdited"; "rowClick": "rowClick"; "rowSelected": "rowSelected"; "tableReady": "tableReady"; }, never, never, true, never>;
570
+ declare class Spinner {
571
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Spinner, never>;
572
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Spinner, "acp-spinner", never, {}, {}, never, never, true, never>;
697
573
  }
698
574
 
699
575
  interface DateRangeConfig<T = any> {
@@ -762,7 +638,12 @@ declare class TableCellIndex {
762
638
  }
763
639
 
764
640
  interface TableRow {
765
- colorRow?: string;
641
+ rowStyle?: {
642
+ backgroundColor?: string;
643
+ color?: string;
644
+ [key: string]: any;
645
+ };
646
+ disableSelection?: boolean;
766
647
  [key: string]: any;
767
648
  }
768
649
 
@@ -797,7 +678,7 @@ declare class Pagination {
797
678
  updateFromPaginatorEvent(event: any): void;
798
679
  }
799
680
 
800
- declare class DynamicTableComponent<T extends TableRow> implements AfterContentInit, OnChanges, OnInit, OnDestroy {
681
+ declare class DynamicTable<T extends TableRow> implements AfterContentInit, OnChanges, OnInit, OnDestroy {
801
682
  private componentRefs;
802
683
  private embeddedViews;
803
684
  private cdr;
@@ -808,6 +689,7 @@ declare class DynamicTableComponent<T extends TableRow> implements AfterContentI
808
689
  visibleColumns: string[];
809
690
  columnDefinitions: ColumnDefinition<T>[];
810
691
  readonly showSelectBox: _angular_core.InputSignal<boolean>;
692
+ readonly multipleSelection: _angular_core.InputSignal<boolean>;
811
693
  readonly tableData: _angular_core.InputSignal<T[]>;
812
694
  readonly rowTemplate: _angular_core.InputSignal<TemplateRef<TableContext<T>> | null>;
813
695
  expandedDetail: TemplateRef<TableContext<T>> | null;
@@ -846,19 +728,147 @@ declare class DynamicTableComponent<T extends TableRow> implements AfterContentI
846
728
  checkboxLabel(row?: T): string;
847
729
  selectRow(row: T): void;
848
730
  onExpand(event: Event, element: T): void;
849
- getRowColor(element: T): Record<string, string>;
731
+ getRowStyle(element: T): Record<string, string>;
850
732
  handlePageEvent(e: PageEvent): void;
851
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicTableComponent<any>, never>;
852
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicTableComponent<any>, "acp-dynamic-table", never, { "showExpand": { "alias": "showExpand"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "highlightRowIndex": { "alias": "highlightRowIndex"; "required": false; "isSignal": true; }; "visibleColumns": { "alias": "visibleColumns"; "required": false; }; "columnDefinitions": { "alias": "columnDefinitions"; "required": false; }; "showSelectBox": { "alias": "showSelectBox"; "required": false; "isSignal": true; }; "tableData": { "alias": "tableData"; "required": false; "isSignal": true; }; "rowTemplate": { "alias": "rowTemplate"; "required": false; "isSignal": true; }; "expandedDetail": { "alias": "expandedDetail"; "required": false; }; "enablePagination": { "alias": "enablePagination"; "required": false; "isSignal": true; }; "paginationConfig": { "alias": "paginationConfig"; "required": false; }; "isLoadingData": { "alias": "isLoadingData"; "required": false; "isSignal": true; }; }, { "rowSelected": "rowSelected"; "copyRow": "copyRow"; "showExpanded": "showExpanded"; "hideExpanded": "hideExpanded"; "pageEvent": "pageEvent"; }, ["headerRowDefs", "rowDefs", "footerRowDefs", "columnDefs", "rows"], never, true, never>;
733
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<DynamicTable<any>, never>;
734
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<DynamicTable<any>, "acp-dynamic-table", never, { "showExpand": { "alias": "showExpand"; "required": false; "isSignal": true; }; "showFooter": { "alias": "showFooter"; "required": false; "isSignal": true; }; "locale": { "alias": "locale"; "required": false; "isSignal": true; }; "highlightRowIndex": { "alias": "highlightRowIndex"; "required": false; "isSignal": true; }; "visibleColumns": { "alias": "visibleColumns"; "required": false; }; "columnDefinitions": { "alias": "columnDefinitions"; "required": false; }; "showSelectBox": { "alias": "showSelectBox"; "required": false; "isSignal": true; }; "multipleSelection": { "alias": "multipleSelection"; "required": false; "isSignal": true; }; "tableData": { "alias": "tableData"; "required": false; "isSignal": true; }; "rowTemplate": { "alias": "rowTemplate"; "required": false; "isSignal": true; }; "expandedDetail": { "alias": "expandedDetail"; "required": false; }; "enablePagination": { "alias": "enablePagination"; "required": false; "isSignal": true; }; "paginationConfig": { "alias": "paginationConfig"; "required": false; }; "isLoadingData": { "alias": "isLoadingData"; "required": false; "isSignal": true; }; }, { "rowSelected": "rowSelected"; "copyRow": "copyRow"; "showExpanded": "showExpanded"; "hideExpanded": "hideExpanded"; "pageEvent": "pageEvent"; }, ["headerRowDefs", "rowDefs", "footerRowDefs", "columnDefs", "rows"], never, true, never>;
853
735
  }
854
736
 
855
- declare class ThemeToggleComponent {
737
+ interface TabulatorColumn {
738
+ title: string;
739
+ field: string;
740
+ width?: number | string;
741
+ minWidth?: number;
742
+ maxWidth?: number;
743
+ resizable?: boolean;
744
+ sortable?: boolean;
745
+ headerSort?: boolean;
746
+ editor?: string | boolean;
747
+ formatter?: string;
748
+ formatterParams?: Record<string, any>;
749
+ validator?: string | string[];
750
+ headerFilter?: string | boolean;
751
+ headerFilterParams?: Record<string, any>;
752
+ frozen?: boolean;
753
+ responsive?: number;
754
+ tooltip?: string | boolean;
755
+ cssClass?: string;
756
+ headerCssClass?: string;
757
+ mutator?: string;
758
+ accessor?: string;
759
+ download?: boolean;
760
+ titleDownload?: string;
761
+ visible?: boolean;
762
+ clipboard?: boolean;
763
+ }
764
+ interface TabulatorTheme {
765
+ name: 'default' | 'modern' | 'midnight' | 'simple' | 'site' | 'site-dark';
766
+ cssPath?: string;
767
+ }
768
+ interface TabulatorConfig {
769
+ data?: any[];
770
+ columns?: TabulatorColumn[];
771
+ height?: string | number | false;
772
+ minHeight?: number;
773
+ maxHeight?: number;
774
+ layout?: 'fitData' | 'fitColumns' | 'fitDataFill' | 'fitDataStretch';
775
+ layoutColumnsOnNewData?: boolean;
776
+ responsiveLayout?: boolean | 'hide' | 'collapse';
777
+ responsiveLayoutCollapseStartOpen?: boolean;
778
+ columnMinWidth?: number;
779
+ resizableColumns?: boolean;
780
+ movableColumns?: boolean;
781
+ columnHeaderVertAlign?: 'top' | 'middle' | 'bottom';
782
+ placeholder?: string;
783
+ footerElement?: string;
784
+ tooltips?: boolean | ((cell: any) => string);
785
+ tooltipGenerationMode?: 'load' | 'hover';
786
+ history?: boolean;
787
+ keybindings?: Record<string, string>;
788
+ reactiveData?: boolean;
789
+ autoResize?: boolean;
790
+ tableBuilding?: () => void;
791
+ tableBuilt?: () => void;
792
+ renderStarted?: () => void;
793
+ renderComplete?: () => void;
794
+ htmlImporting?: () => void;
795
+ htmlImported?: () => void;
796
+ dataLoading?: (data: any[]) => void;
797
+ dataLoaded?: (data: any[]) => void;
798
+ dataChanged?: (data: any[]) => void;
799
+ pageLoaded?: (pageno: number) => void;
800
+ dataSorting?: (sorters: any[]) => void;
801
+ dataSorted?: (sorters: any[], rows: any[]) => void;
802
+ dataFiltering?: (filters: any[]) => void;
803
+ dataFiltered?: (filters: any[], rows: any[]) => void;
804
+ validationFailed?: (cell: any, value: any, validators: any[]) => void;
805
+ clipboardCopyStyled?: (clipboard: string) => string;
806
+ clipboardCopyConfig?: Record<string, any>;
807
+ clipboardPasteParser?: string | ((clipboard: string) => any[][]);
808
+ clipboardPasteAction?: 'insert' | 'update' | 'replace';
809
+ printAsHtml?: boolean;
810
+ printFormatter?: (tableHtml: string, table: any) => string;
811
+ printHeader?: string;
812
+ printFooter?: string;
813
+ tabEndNewRow?: boolean | ((row: any) => any);
814
+ }
815
+ interface TabulatorEventHandlers {
816
+ onCellEdited?: (cell: any) => void;
817
+ onRowClick?: (e: Event, row: any) => void;
818
+ onRowSelected?: (row: any) => void;
819
+ onRowDeselected?: (row: any) => void;
820
+ onDataChanged?: (data: any[]) => void;
821
+ onTableReady?: (tabulator: any) => void;
822
+ }
823
+
824
+ declare class TabulatorTable implements OnChanges, AfterViewInit, OnDestroy {
825
+ readonly data: _angular_core.InputSignal<any[]>;
826
+ readonly columns: _angular_core.InputSignal<any[]>;
827
+ readonly height: _angular_core.InputSignal<string | number | false>;
828
+ readonly layout: _angular_core.InputSignal<"fitData" | "fitColumns" | "fitDataFill" | "fitDataStretch">;
829
+ readonly dataTree: _angular_core.InputSignal<boolean>;
830
+ readonly dataTreeChildField: _angular_core.InputSignal<string>;
831
+ readonly dataTreeStartExpanded: _angular_core.InputSignal<boolean>;
832
+ readonly dataTreeSelectPropagate: _angular_core.InputSignal<boolean>;
833
+ readonly selectable: _angular_core.InputSignal<boolean>;
834
+ readonly reactiveData: _angular_core.InputSignal<boolean>;
835
+ readonly placeholder: _angular_core.InputSignal<string>;
836
+ readonly autoResize: _angular_core.InputSignal<boolean>;
837
+ readonly theme: _angular_core.InputSignal<TabulatorTheme>;
838
+ readonly customClass: _angular_core.InputSignal<string>;
839
+ readonly rowFormatter: _angular_core.InputSignal<((row: any) => void | null) | undefined>;
840
+ readonly options: _angular_core.InputSignal<Record<string, any>>;
841
+ readonly cellEdited: _angular_core.OutputEmitterRef<any>;
842
+ readonly rowClick: _angular_core.OutputEmitterRef<any>;
843
+ readonly rowSelected: _angular_core.OutputEmitterRef<any>;
844
+ readonly tableReady: _angular_core.OutputEmitterRef<Tabulator>;
845
+ private _tabulator;
846
+ containerId: string;
847
+ ngAfterViewInit(): void;
848
+ ngOnChanges(changes: SimpleChanges): void;
849
+ ngOnDestroy(): void;
850
+ private initializeTable;
851
+ private applyTheme;
852
+ private applyCustomClass;
853
+ private registerEvents;
854
+ private updateData;
855
+ private updateColumns;
856
+ private destroyTable;
857
+ private updateRowFormatter;
858
+ getInstance(): Tabulator;
859
+ redraw(): void;
860
+ private getRowFormatter;
861
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TabulatorTable, never>;
862
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TabulatorTable, "acp-tabulator-table", never, { "data": { "alias": "data"; "required": false; "isSignal": true; }; "columns": { "alias": "columns"; "required": false; "isSignal": true; }; "height": { "alias": "height"; "required": false; "isSignal": true; }; "layout": { "alias": "layout"; "required": false; "isSignal": true; }; "dataTree": { "alias": "dataTree"; "required": false; "isSignal": true; }; "dataTreeChildField": { "alias": "dataTreeChildField"; "required": false; "isSignal": true; }; "dataTreeStartExpanded": { "alias": "dataTreeStartExpanded"; "required": false; "isSignal": true; }; "dataTreeSelectPropagate": { "alias": "dataTreeSelectPropagate"; "required": false; "isSignal": true; }; "selectable": { "alias": "selectable"; "required": false; "isSignal": true; }; "reactiveData": { "alias": "reactiveData"; "required": false; "isSignal": true; }; "placeholder": { "alias": "placeholder"; "required": false; "isSignal": true; }; "autoResize": { "alias": "autoResize"; "required": false; "isSignal": true; }; "theme": { "alias": "theme"; "required": false; "isSignal": true; }; "customClass": { "alias": "customClass"; "required": false; "isSignal": true; }; "rowFormatter": { "alias": "rowFormatter"; "required": false; "isSignal": true; }; "options": { "alias": "options"; "required": false; "isSignal": true; }; }, { "cellEdited": "cellEdited"; "rowClick": "rowClick"; "rowSelected": "rowSelected"; "tableReady": "tableReady"; }, never, never, true, never>;
863
+ }
864
+
865
+ declare class ThemeToggle {
856
866
  private themeService;
857
867
  darkMode$: Observable<boolean>;
858
868
  constructor();
859
869
  toggleDarkMode(): void;
860
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeToggleComponent, never>;
861
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggleComponent, "acp-theme-toggle", never, {}, {}, never, never, true, never>;
870
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ThemeToggle, never>;
871
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggle, "acp-theme-toggle", never, {}, {}, never, never, true, never>;
862
872
  }
863
873
 
864
874
  declare class ReusableAutocompleteComponent implements OnInit, OnDestroy {
@@ -940,7 +950,7 @@ declare class ReusableAutocompleteComponent implements OnInit, OnDestroy {
940
950
  static ɵcmp: _angular_core.ɵɵComponentDeclaration<ReusableAutocompleteComponent, "acp-autocomplete-wrapper", never, { "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; }; "itemTemplate": { "alias": "itemTemplate"; "required": false; "isSignal": true; }; "searchFunction": { "alias": "searchFunction"; "required": false; "isSignal": true; }; "notFoundTemplate": { "alias": "notFoundTemplate"; "required": false; "isSignal": true; }; "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>;
941
951
  }
942
952
 
943
- declare class ToUpperCaseDirective implements ControlValueAccessor {
953
+ declare class ToUpperCase implements ControlValueAccessor {
944
954
  private el;
945
955
  private renderer;
946
956
  onInput(): void;
@@ -949,12 +959,10 @@ declare class ToUpperCaseDirective implements ControlValueAccessor {
949
959
  writeValue(value: string): void;
950
960
  registerOnChange(fn: (value: string) => void): void;
951
961
  registerOnTouched(fn: () => void): void;
952
- static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToUpperCaseDirective, never>;
953
- static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToUpperCaseDirective, "[acpToUpperCase]", never, {}, {}, never, never, true, never>;
962
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<ToUpperCase, never>;
963
+ static ɵdir: _angular_core.ɵɵDirectiveDeclaration<ToUpperCase, "[acpToUpperCase]", never, {}, {}, never, never, true, never>;
954
964
  }
955
965
 
956
- declare const DYNAMIC_INPUT: InjectionToken<unknown>;
957
-
958
966
  declare class GetTotalPipe implements PipeTransform {
959
967
  transform(colName: string, dataSource: any[]): any;
960
968
  /**
@@ -985,5 +993,5 @@ declare class StatusDisplayPipe implements PipeTransform {
985
993
  static ɵpipe: _angular_core.ɵɵPipeDeclaration<StatusDisplayPipe, "statusDisplay", true>;
986
994
  }
987
995
 
988
- 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, AdvancedDialogService, AutocompleteWrapperService, ButtonComponent, ColumnDefinition, DYNAMIC_INPUT, DialogWrapperComponent, DynamicCardComponent, DynamicTableComponent, FieldDefinition, GetTotalPipe, InputChipComponent, OverlayService, Pagination, ReusableAutocompleteComponent, SpinnerComponent, StatusDisplayPipe, SvgIconComponent, TableCellIndex, TabulatorTableComponent, ThemeService, ThemeToggleComponent, ToUpperCaseDirective, UserIconComponent, createAutocompleteWrapperConfig };
996
+ 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, AdvancedDialogService, AutocompleteWrapperService, Button, ColumnDefinition, DialogWrapper, DynamicCard, DynamicTable, FieldDefinition, GetTotalPipe, InputChip, OverlayService, Pagination, ReusableAutocompleteComponent, Spinner, StatusDisplayPipe, SvgIcon, TableCellIndex, TabulatorTable, ThemeSwitcher, ThemeToggle, ToUpperCase, UserIcon, createAutocompleteWrapperConfig };
989
997
  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, TableContext, TableRow, TabulatorColumn, TabulatorConfig, TabulatorEventHandlers, TabulatorTheme };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@acontplus/ng-components",
3
- "version": "1.1.0",
4
- "description": "Angular Material UI component library with dynamic tables, theming support, dialog wrappers, and comprehensive styling utilities",
3
+ "version": "1.3.0",
4
+ "description": "Comprehensive Angular Material UI component library featuring dynamic Tabulator tables, theme toggle with dark mode, dialog wrappers, autocomplete components, cards, buttons, icons, input chips, spinners, directives, pipes, and SCSS styling utilities.",
5
5
  "peerDependencies": {
6
6
  "@angular/cdk": "^20.2.5",
7
7
  "@angular/common": "^20.3.2",
@@ -33,28 +33,31 @@
33
33
  "angular-material",
34
34
  "material-design",
35
35
  "ui-components",
36
- "dynamic-table",
37
- "tabulator",
36
+ "tabulator-tables",
37
+ "dynamic-tables",
38
+ "data-tables",
38
39
  "cards",
39
- "dialog",
40
- "snackbar",
41
- "theme",
42
- "theming",
40
+ "dialog-wrapper",
41
+ "theme-toggle",
43
42
  "dark-mode",
44
- "overlay",
45
- "autocomplete",
43
+ "theme-switcher",
44
+ "overlay-service",
45
+ "autocomplete-wrapper",
46
46
  "spinner",
47
- "interceptors",
48
- "customer-ui",
49
- "form-controls",
50
- "directives",
51
- "pipes",
52
- "scss",
53
- "styling",
54
- "components",
47
+ "buttons",
48
+ "icons",
49
+ "input-chip",
50
+ "to-uppercase-directive",
51
+ "status-display-pipe",
52
+ "get-total-pipe",
53
+ "pagination",
54
+ "scss-mixins",
55
+ "scss-variables",
56
+ "custom-dialog",
57
+ "mat-table",
55
58
  "typescript",
56
- "frontend",
57
- "library"
59
+ "enterprise",
60
+ "frontend"
58
61
  ],
59
62
  "author": "Ivan Paz <ifer343@gmail.com>",
60
63
  "license": "MIT",