@one-paragon/angular-utilities 2.0.15 → 2.0.17

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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@one-paragon/angular-utilities",
3
- "version": "2.0.15",
3
+ "version": "2.0.17",
4
4
  "peerDependencies": {
5
5
  "@angular/common": "19.0.0",
6
6
  "@angular/core": "19.0.0",
@@ -1,17 +1,19 @@
1
- import { Injector } from "@angular/core";
1
+ import { Predicate } from "@angular/core";
2
+ import { Dictionary } from "../interfaces/dictionary";
3
+ import { StylerStyle } from "../../utilities/directives/styler";
4
+ export interface TableBuilderSettings<T = any> {
5
+ headerSettings?: Partial<TableWrapperHeaderSettings>;
6
+ footerSettings?: Partial<TableWrapperFooterSettings>;
7
+ columnHeaderSettings?: Partial<TableColumnHeaderSettings>;
8
+ columnFooterSettings?: Partial<TableColumnFooterSettings>;
9
+ tableSettings?: Partial<TableSettings<T>>;
10
+ }
2
11
  export declare class GeneralTableSettings implements TableBuilderSettings {
3
12
  headerSettings: TableWrapperHeaderSettings;
4
13
  footerSettings: TableWrapperFooterSettings;
5
14
  columnHeaderSettings: TableColumnHeaderSettings;
6
- tableSettings: TableSettings;
7
- injector?: Injector;
8
- }
9
- export interface TableBuilderSettings {
10
- headerSettings?: Partial<TableWrapperHeaderSettings>;
11
- footerSettings?: Partial<TableWrapperFooterSettings>;
12
- columnHeaderSettings?: Partial<TableColumnHeaderSettings>;
13
- tableSettings?: Partial<TableSettings>;
14
- injector?: Injector;
15
+ columnFooterSettings: TableColumnFooterSettings;
16
+ tableSettings: TableSettings<any>;
15
17
  }
16
18
  export declare class TableWrapperHeaderSettings {
17
19
  hideExport: boolean;
@@ -27,10 +29,18 @@ export declare class TableWrapperFooterSettings {
27
29
  collapse: boolean;
28
30
  }
29
31
  export declare class TableColumnHeaderSettings {
32
+ stickyHeaderRow: boolean;
30
33
  noFilters: boolean;
31
34
  noHeader: boolean;
32
35
  }
33
- export declare class TableSettings {
36
+ export declare class TableColumnFooterSettings {
37
+ stickyFooterRow: boolean;
38
+ }
39
+ export declare class TableSettings<T = any> {
40
+ tableId?: string | undefined;
41
+ trackBy?: string | undefined;
42
+ includeIndexColumn: boolean;
43
+ includeSelectionColumn: boolean;
34
44
  usePaginator: boolean | undefined;
35
45
  useVirtualScroll: boolean | undefined;
36
46
  paginatorSettings: Partial<PaginatorOptions> | undefined;
@@ -38,6 +48,8 @@ export declare class TableSettings {
38
48
  rowHeight: TbSize | undefined;
39
49
  groupHeaderHeight?: TbSize;
40
50
  minColumnWidth: TbSize | undefined;
51
+ rowClasses: Dictionary<Predicate<T> | true> | undefined;
52
+ rowStyles: StylerStyle<T> | undefined;
41
53
  }
42
54
  export declare class PersistedTableSettings {
43
55
  constructor(tableSettings?: NonFunctionProperties<PersistedTableSettings>);
@@ -63,6 +75,8 @@ export declare class NotPersistedTableSettings {
63
75
  rowHeight?: TbSize | undefined;
64
76
  headerHeight?: TbSize;
65
77
  minColumnWidth?: TbSize | undefined;
78
+ rowClasses?: Dictionary<Predicate<any> | true> | undefined;
79
+ rowStyles?: StylerStyle | undefined;
66
80
  }
67
81
  export declare class VirtualScrollOptions {
68
82
  rowHeight: TbSize;
@@ -1,17 +1,22 @@
1
1
  import { Observable } from 'rxjs';
2
2
  import { MetaData, ReportDef } from '../interfaces/report-def';
3
3
  import { TableBuilderSettings } from './table-builder-general-settings';
4
- import { Signal } from '@angular/core';
4
+ import { Injector, Signal } from '@angular/core';
5
5
  export declare class TableBuilder<T = any> {
6
- metaData$: Observable<MetaData<T>[]>;
7
- data$: Observable<T[]>;
8
- settings$: Observable<TableBuilderSettings>;
9
- constructor(data: TableBuilderArgs<T[]>, metaData?: TableBuilderArgs<MetaData<T, any>[]>, settings?: TableBuilderArgs<TableBuilderSettings>);
10
- getData$(): Observable<any[]>;
6
+ #private;
7
+ private data;
8
+ private metaData?;
9
+ private settings;
10
+ $metaData: Signal<MetaData<T>[] | undefined>;
11
+ $settings: Signal<TableBuilderSettings<any> | undefined>;
12
+ metaNeedsPrep: boolean;
13
+ dataIsObservable: boolean;
14
+ settingsIsObservable: boolean;
15
+ $initialized: import("@angular/core").WritableSignal<boolean>;
16
+ constructor(data: TableBuilderArgs<T[]>, metaData?: TableBuilderArgs<MetaData<T, any>[]> | undefined, settings?: TableBuilderArgs<TableBuilderSettings<T>>);
17
+ prep(injector: Injector): void;
18
+ $data: Signal<T[]>;
11
19
  createMetaData(obj: any): MetaData[];
12
- coerceToObservable<T>(arg: TableBuilderArgs<T>, settings: Observable<TableBuilderSettings>): Observable<T>;
13
- coerceSettingsToObservable(settings: TableBuilderArgs<TableBuilderSettings>): Observable<TableBuilderSettings>;
14
- assertInjector(s: TableBuilderSettings): void;
15
20
  }
16
21
  export declare const CreateTableBuilder: (reportDef$: Observable<ReportDef>) => TableBuilder;
17
22
  type TableBuilderArgs<T> = T | Observable<T> | Signal<T>;
@@ -30,6 +30,7 @@ export declare class TableStore extends ComponentStore<TableState> {
30
30
  $preSort: Signal<Sort[]>;
31
31
  $selectSorted: Signal<Sort[]>;
32
32
  selectSorted$: Observable<Sort[]>;
33
+ $getSorts: Signal<Sort[]>;
33
34
  sort$: Observable<Sort[]>;
34
35
  $getUserDefinedTableWidth: Signal<number | undefined>;
35
36
  getUserDefinedTableWidth$: Observable<number | undefined>;
@@ -42,6 +43,7 @@ export declare class TableStore extends ComponentStore<TableState> {
42
43
  $groupByKeys: Signal<string[]>;
43
44
  groupByKeys$: Observable<string[]>;
44
45
  expandedGroups$: Observable<GroupedData[]>;
46
+ $expandGroups: Signal<GroupedData[]>;
45
47
  $getIsExpanded: (columnKey: string, groupHeaderKey: string) => Signal<boolean>;
46
48
  $currentPage: Signal<number>;
47
49
  $pageSize: Signal<number>;
@@ -57,7 +59,7 @@ export declare class TableStore extends ComponentStore<TableState> {
57
59
  readonly resetPart: (observableOrValue: "Sorting" | "Filters" | "Group By" | "Hidden Columns" | "Column Widths" | "Column Order" | "Row Height" | "Header Height" | "Page Size" | "Show All" | Observable<"Sorting" | "Filters" | "Group By" | "Hidden Columns" | "Column Widths" | "Column Order" | "Row Height" | "Header Height" | "Page Size" | "Show All">) => import("rxjs").Subscription;
58
60
  readonly updateStateFromPersistedState: (observableOrValue: PersistedTableState | Observable<PersistedTableState>) => import("rxjs").Subscription;
59
61
  private updateStateFunc;
60
- readonly setTableSettings: (observableOrValue: TableBuilderSettings | Observable<TableBuilderSettings>) => import("rxjs").Subscription;
62
+ readonly setTableSettings: (observableOrValue: TableBuilderSettings<any> | Observable<TableBuilderSettings<any>>) => import("rxjs").Subscription;
61
63
  readonly setMetaData: (observableOrValue: MetaData[] | Observable<MetaData[]>) => import("rxjs").Subscription;
62
64
  readonly showColumn: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
63
65
  readonly hideColumn: (observableOrValue: string | Observable<string>) => import("rxjs").Subscription;
@@ -6,7 +6,7 @@ import { Dictionary } from '@ngrx/entity';
6
6
  import * as i0 from "@angular/core";
7
7
  export declare class ColumnBuilderComponent {
8
8
  FieldType: typeof FieldType;
9
- private transformCreator;
9
+ private config;
10
10
  private table;
11
11
  private state;
12
12
  private templateService;
@@ -12,7 +12,7 @@ export declare class GenericTableComponent {
12
12
  protected state: TableStore;
13
13
  private dataStore;
14
14
  private viewContainer;
15
- private transformCreator;
15
+ private config;
16
16
  private _injector;
17
17
  smallFooter: number;
18
18
  $headerRow: import("@angular/core").Signal<MatHeaderRowDef | undefined>;
@@ -41,6 +41,7 @@ export declare class GenericTableComponent {
41
41
  drop(event: CdkDragDrop<string[]>): void;
42
42
  $usePaginator: import("@angular/core").Signal<boolean>;
43
43
  $useVirtualScroll: import("@angular/core").Signal<boolean>;
44
+ $virtualStart: import("@angular/core").Signal<number>;
44
45
  $offsetIndex: import("@angular/core").Signal<number>;
45
46
  isGroupHeader(_: number, row: {
46
47
  isGroupHeader: boolean;
@@ -67,6 +68,8 @@ export declare class GenericTableComponent {
67
68
  $groupHeaderHeight: import("@angular/core").Signal<string | undefined>;
68
69
  $footerHeight: import("@angular/core").Signal<string | undefined>;
69
70
  $stickyFooter: import("@angular/core").Signal<boolean | undefined>;
71
+ $rowStyles: import("@angular/core").Signal<import("../../../utilities").StylerStyle>;
72
+ $rowClasses: import("@angular/core").Signal<Dictionary<true | import("@angular/core").Predicate<any>>>;
70
73
  static ɵfac: i0.ɵɵFactoryDeclaration<GenericTableComponent, never>;
71
74
  static ɵcmp: i0.ɵɵComponentDeclaration<GenericTableComponent, "tb-generic-table", never, { "$displayDataLength": { "alias": "displayDataLength"; "required": true; "isSignal": true; }; "$data": { "alias": "data"; "required": true; "isSignal": true; }; "$rows": { "alias": "rows"; "required": false; "isSignal": true; }; "$columnInfos": { "alias": "columnInfos"; "required": true; "isSignal": true; }; "$dataSource": { "alias": "dataSource"; "required": true; "isSignal": true; }; "$trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; }, { "selection$": "selection"; }, never, never, true, never>;
72
75
  }
@@ -15,7 +15,7 @@ export declare class ResetMenuComponent {
15
15
  $widthsSet: import("@angular/core").Signal<number>;
16
16
  $rowHeightSet: import("@angular/core").Signal<number | undefined>;
17
17
  headerHeightSet: import("@angular/core").Signal<number | undefined>;
18
- pageSizeSet: import("@angular/core").Signal<number | undefined>;
18
+ pageSizeSet: import("@angular/core").Signal<boolean | 0 | undefined>;
19
19
  showAllSet: import("@angular/core").Signal<boolean | undefined>;
20
20
  $set: import("@angular/core").Signal<("Sorting" | "Filters" | "Group By" | "Hidden Columns" | "Column Widths" | "Column Order" | "Row Height" | "Header Height" | "Page Size" | "Show All")[]>;
21
21
  resetable: readonly ["Sorting", "Filters", "Group By", "Hidden Columns", "Column Widths", "Column Order", "Row Height", "Header Height", "Page Size", "Show All"];
@@ -1,30 +1,45 @@
1
1
  import { CdkVirtualScrollViewport, VirtualScrollStrategy } from '@angular/cdk/scrolling';
2
- import { Observable, Subject } from 'rxjs';
2
+ import { Subject } from 'rxjs';
3
3
  import { VirtualScrollContainer } from './table-container/virtual-scroll-container';
4
4
  import { Signal } from '@angular/core';
5
+ import { DataStore } from '../classes/data-store';
5
6
  export declare class TableVirtualScrollStrategy implements VirtualScrollStrategy {
6
7
  #private;
7
- scrolledIndexChange: Observable<number>;
8
- private dataLength;
8
+ constructor(scrollContainer: VirtualScrollContainer, dataStore: DataStore);
9
+ private dataStore;
9
10
  private readonly indexChange;
10
- private viewport?;
11
+ scrolledIndexChange: import("rxjs").Observable<number>;
12
+ private viewport;
13
+ private $dataLength;
14
+ $dataLengthChange: import("@angular/core").WritableSignal<{
15
+ curr: number;
16
+ previous: number;
17
+ }>;
11
18
  $rowHeight: Signal<number>;
12
19
  $rowHeightChange: import("@angular/core").WritableSignal<{
13
20
  curr: number;
14
21
  previous: number;
15
22
  }>;
16
23
  $headerHeight: Signal<number>;
17
- constructor(scrollContainer: VirtualScrollContainer);
18
- attach(viewport: CdkVirtualScrollViewport): void;
19
- contentScrolled$: Subject<void>;
24
+ $headerHeightChange: import("@angular/core").WritableSignal<{
25
+ curr: number;
26
+ previous: number;
27
+ }>;
28
+ contentScrolled$: Subject<number>;
20
29
  sub: import("../../rxjs").Subscriber;
21
30
  onContentScrolled(): void;
31
+ $currentRange: import("@angular/core").WritableSignal<{
32
+ start: number;
33
+ end: number;
34
+ }>;
35
+ private updateContent;
36
+ update(trigger: ScrollStrategyTrigger, viewport: CdkVirtualScrollViewport, needsScroll?: boolean): void;
37
+ attach(viewport: CdkVirtualScrollViewport): void;
22
38
  onDataLengthChanged(): void;
23
- setDataLength(length: number): void;
24
39
  detach(): void;
25
40
  onContentRendered(): void;
26
41
  onRenderedOffsetChanged(): void;
27
42
  scrollToIndex(index: number, behavior: ScrollBehavior): void;
28
- private updateContent;
29
- update(trigger: string): void;
30
43
  }
44
+ type ScrollStrategyTrigger = 'scroll' | 'data length' | 'header height' | 'row height';
45
+ export {};
@@ -1,9 +1,9 @@
1
- import { Predicate, TemplateRef, OnDestroy, Injector, ElementRef } from '@angular/core';
2
- import { BehaviorSubject, Observable } from 'rxjs';
1
+ import { Predicate, TemplateRef, Injector, ElementRef } from '@angular/core';
3
2
  import { TableBuilder } from '../../classes/table-builder';
4
3
  import { MatRowDef } from '@angular/material/table';
5
4
  import { CustomCellDirective, TableCustomFilterDirective, TableFilterDirective } from '../../directives';
6
5
  import { TableStore } from '../../classes/table-store';
6
+ import { GroupedData } from '../../classes/TableState';
7
7
  import { CustomFilter, FilterInfo } from '../../classes/filter-info';
8
8
  import { TableWrapperDirective } from '../../directives/table-wrapper.directive';
9
9
  import { TableBuilderStateStore } from '../../ngrx/tableBuilderStateStore';
@@ -14,7 +14,7 @@ import { GenericTableComponent } from '../generic-table/generic-table.component'
14
14
  import { SelectionChange } from '@angular/cdk/collections';
15
15
  import { MatMenu } from '@angular/material/menu';
16
16
  import * as i0 from "@angular/core";
17
- export declare class TableContainerComponent<T = any> implements OnDestroy {
17
+ export declare class TableContainerComponent<T = any> {
18
18
  #private;
19
19
  state: TableStore;
20
20
  private dataStore;
@@ -33,27 +33,24 @@ export declare class TableContainerComponent<T = any> implements OnDestroy {
33
33
  $menu: import("@angular/core").Signal<MatMenu>;
34
34
  menuInjector: Injector;
35
35
  $tableBuilder: import("@angular/core").InputSignal<TableBuilder<T>>;
36
- $tableId: import("@angular/core").InputSignal<string | undefined>;
37
- $trackBy: import("@angular/core").InputSignal<string | undefined>;
38
- $inputFilters: import("@angular/core").ModelSignal<(FilterInfo<any, any> | CustomFilter<any> | Predicate<T>)[]>;
39
- predicateInputFilters$: Observable<((...args: any[]) => any)[]>;
36
+ $tableIdInput: import("@angular/core").InputSignal<string | undefined>;
37
+ $trackByInput: import("@angular/core").InputSignal<string | undefined>;
38
+ $inputFilters: import("@angular/core").InputSignal<(Predicate<T> | CustomFilter<T> | FilterInfo<any, T>)[]>;
40
39
  $filterInfoInputs: import("@angular/core").Signal<(FilterInfo<any, any> | CustomFilter<any>)[]>;
41
- $indexColumn: import("@angular/core").InputSignal<boolean>;
42
- $selectionColumn: import("@angular/core").InputSignal<boolean>;
43
- $isSticky: import("@angular/core").InputSignal<boolean>;
44
- $stickyFooter: import("@angular/core").InputSignal<boolean>;
40
+ $indexColumnInput: import("@angular/core").InputSignal<boolean>;
41
+ $selectionColumnInput: import("@angular/core").InputSignal<boolean>;
42
+ $stickyHeaderInput: import("@angular/core").InputSignal<boolean>;
43
+ $stickyFooterInput: import("@angular/core").InputSignal<boolean>;
45
44
  $groupHeaderTemplate: import("@angular/core").InputSignal<TemplateRef<any> | undefined>;
46
45
  $groupHeaderHeight: import("@angular/core").InputSignal<number | undefined>;
47
46
  $pageSize: import("@angular/core").InputSignal<number | undefined>;
48
- $props: import("@angular/core").Signal<TableProps>;
49
47
  selection$: import("@angular/core").OutputEmitterRef<SelectionChange<T>>;
50
48
  onStateReset$: import("@angular/core").OutputEmitterRef<null>;
51
49
  onSaveState$: import("@angular/core").OutputEmitterRef<null>;
52
- _state$: Observable<import("../../classes/TableState").PersistedTableState>;
53
50
  state$: import("@angular/core").OutputRef<import("../../classes/TableState").PersistedTableState>;
54
- _data$: BehaviorSubject<T[]>;
55
- data$: import("@angular/core").OutputRef<T[]>;
56
51
  $data: import("@angular/core").Signal<T[]>;
52
+ data$: import("@angular/core").OutputRef<T[]>;
53
+ private $displayData;
57
54
  clearSelections(): void;
58
55
  firstPage(): void;
59
56
  lastPage(): void;
@@ -67,18 +64,40 @@ export declare class TableContainerComponent<T = any> implements OnDestroy {
67
64
  protected $collapsedFooter: import("@angular/core").Signal<boolean>;
68
65
  protected $collapsedHeader: import("@angular/core").Signal<boolean>;
69
66
  protected $displayDataLength: import("@angular/core").Signal<number>;
67
+ $tableBuilderSettings: import("@angular/core").Signal<import("../../classes/table-builder-general-settings").TableBuilderSettings<any> | undefined>;
68
+ $trackBy: import("@angular/core").Signal<string | undefined>;
69
+ $tableId: import("@angular/core").Signal<string | undefined>;
70
+ $includeSelectionColumn: import("@angular/core").Signal<boolean>;
71
+ $includeIndexColumn: import("@angular/core").Signal<boolean>;
72
+ $stickyHeader: import("@angular/core").Signal<boolean>;
73
+ $stickyFooter: import("@angular/core").Signal<boolean>;
74
+ $props: import("@angular/core").Signal<TableProps>;
70
75
  private $persistedState;
71
76
  private $allFilterDirectives;
72
- private allNotSavableFilterDirectivesFilters$;
73
- private tableBuilderMetaData$;
74
77
  private $tableBuilderMetaData;
75
78
  private $allMetaDatas;
76
- private $displayData;
77
- ngOnDestroy(): void;
78
- private initializeData;
79
+ private $preds;
80
+ private $predicateFiltersState;
81
+ private $savableFiltersState;
82
+ private $allFilterStatesTimeStamped;
83
+ private $sortStateTimeStamped;
84
+ private $allData;
85
+ private $allDataTimeStamped;
86
+ private $allTimeStamped;
87
+ private $sortedAndFilteredData;
88
+ $timestampedGroups: import("@angular/core").Signal<{
89
+ value: string[];
90
+ timestamp: number;
91
+ }>;
92
+ $timestampedExpanded: import("@angular/core").Signal<{
93
+ value: GroupedData[];
94
+ timestamp: number;
95
+ }>;
96
+ private $dataAndGroupsTimestamped;
97
+ private $filteredSortedAndGrouped;
79
98
  private $isInitializationState;
80
99
  static headerId: string;
81
100
  headerId: string;
82
101
  static ɵfac: i0.ɵɵFactoryDeclaration<TableContainerComponent<any>, never>;
83
- static ɵcmp: i0.ɵɵComponentDeclaration<TableContainerComponent<any>, "tb-table-container", never, { "$tableBuilder": { "alias": "tableBuilder"; "required": true; "isSignal": true; }; "$tableId": { "alias": "tableId"; "required": false; "isSignal": true; }; "$trackBy": { "alias": "trackBy"; "required": false; "isSignal": true; }; "$inputFilters": { "alias": "inputFilters"; "required": false; "isSignal": true; }; "$indexColumn": { "alias": "indexColumn"; "required": false; "isSignal": true; }; "$selectionColumn": { "alias": "selectionColumn"; "required": false; "isSignal": true; }; "$isSticky": { "alias": "isSticky"; "required": false; "isSignal": true; }; "$stickyFooter": { "alias": "stickyFooter"; "required": false; "isSignal": true; }; "$groupHeaderTemplate": { "alias": "groupHeaderTemplate"; "required": false; "isSignal": true; }; "$groupHeaderHeight": { "alias": "groupHeaderHeight"; "required": false; "isSignal": true; }; "$pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, { "$inputFilters": "inputFiltersChange"; "selection$": "selection"; "onStateReset$": "onStateReset"; "onSaveState$": "onSaveState"; "state$": "state"; "data$": "data"; }, ["$filterDirectives", "$customFilterDirectives", "_$customRows", "$customCells"], ["[before]", ".tb-header-title"], true, never>;
102
+ static ɵcmp: i0.ɵɵComponentDeclaration<TableContainerComponent<any>, "tb-table-container", never, { "$tableBuilder": { "alias": "tableBuilder"; "required": true; "isSignal": true; }; "$tableIdInput": { "alias": "tableId"; "required": false; "isSignal": true; }; "$trackByInput": { "alias": "trackBy"; "required": false; "isSignal": true; }; "$inputFilters": { "alias": "inputFilters"; "required": false; "isSignal": true; }; "$indexColumnInput": { "alias": "indexColumn"; "required": false; "isSignal": true; }; "$selectionColumnInput": { "alias": "selectionColumn"; "required": false; "isSignal": true; }; "$stickyHeaderInput": { "alias": "stickyHeader"; "required": false; "isSignal": true; }; "$stickyFooterInput": { "alias": "stickyFooter"; "required": false; "isSignal": true; }; "$groupHeaderTemplate": { "alias": "groupHeaderTemplate"; "required": false; "isSignal": true; }; "$groupHeaderHeight": { "alias": "groupHeaderHeight"; "required": false; "isSignal": true; }; "$pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; }, { "selection$": "selection"; "onStateReset$": "onStateReset"; "onSaveState$": "onSaveState"; "state$": "state"; "data$": "data"; }, ["$filterDirectives", "$customFilterDirectives", "_$customRows", "$customCells"], ["[before]", ".tb-header-title"], true, never>;
84
103
  }
@@ -1,6 +1,7 @@
1
- import { Observable } from "rxjs";
1
+ import { Observable, Timestamp } from "rxjs";
2
2
  import { SortState } from "./sort-state.helpers";
3
3
  import { FilterPredicateState } from "./filter-state.helpers";
4
4
  import { MetaData } from "../../../interfaces/report-def";
5
- export declare const sortAndFilterData: <T>(data: Observable<T[]>, sortState: Observable<SortState>, filterState: Observable<FilterPredicateState<T>>) => Observable<T[]>;
5
+ export declare const _sortAndFilterData: <T>(data: Observable<T[]>, sortState: Observable<SortState>, filterState: Observable<FilterPredicateState<T>>) => Observable<T[]>;
6
+ export declare const sortAndFilterData: <T>(data: Timestamp<T[]>, filters: Timestamp<FilterPredicateState<T>>, sort: Timestamp<SortState>, firstRun: boolean, resultData: T[]) => T[];
6
7
  export declare const createDataCleaners: <T>(metadatas: MetaData<T>[], mutate?: boolean) => (data: T) => T;
@@ -1,10 +1,18 @@
1
1
  import { Timestamp } from "rxjs";
2
2
  import { Group, GroupedData } from "../../../classes/TableState";
3
- export declare function updateGroupByState({ groupedData }: GroupByState, [data, groups, expandedGroups]: [Timestamp<any[]>, Timestamp<string[]>, Timestamp<GroupedData[]>], index: number): {
3
+ export declare function updateGroupByState<T = any>(groupedData: any[], { data, groups, expanded }: {
4
+ data: Timestamp<T[]>;
5
+ groups: Timestamp<string[]>;
6
+ expanded: Timestamp<GroupedData[]>;
7
+ }, firstRun: boolean): {
4
8
  displayData: any[];
5
9
  groupedData: any[];
6
10
  };
7
- interface GroupByState {
11
+ export declare function _updateGroupByState({ groupedData }: GroupByState, [data, groups, expanded]: [Timestamp<any[]>, Timestamp<string[]>, Timestamp<GroupedData[]>], index: number): {
12
+ displayData: any[];
13
+ groupedData: any[];
14
+ };
15
+ export interface GroupByState {
8
16
  displayData: any[];
9
17
  groupedData: any[];
10
18
  }
@@ -14,4 +22,3 @@ export declare const initialGroupByState: {
14
22
  };
15
23
  export declare const getAllGroupHeaderNames: (data: any[]) => import("lodash").Dictionary<Group[]>;
16
24
  export declare const getAllGroupHeaderNamesByKeys: (data: any[], keys: string[]) => import("lodash").Dictionary<Group[]>;
17
- export {};
@@ -1,6 +1,5 @@
1
1
  import { ElementRef, OnDestroy } from '@angular/core';
2
2
  import { CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
3
- import { Subject } from 'rxjs';
4
3
  import { TableVirtualScrollStrategy } from '../scroll-strategy';
5
4
  import { VirtualScrollOptions } from '../../classes/table-builder-general-settings';
6
5
  import * as i0 from "@angular/core";
@@ -20,16 +19,12 @@ export declare class VirtualScrollContainer implements OnDestroy {
20
19
  viewPort$: import("rxjs").Observable<CdkVirtualScrollViewport>;
21
20
  $scrolledIndexChange: import("@angular/core").Signal<number | undefined>;
22
21
  $renderedRange: import("@angular/core").Signal<import("@angular/cdk/collections").ListRange | undefined>;
23
- $virtualScrollOptions: import("@angular/core").Signal<VirtualScrollOptions>;
22
+ $virtualScrollOptions: import("@angular/core").Signal<VirtualScrollOptions | undefined>;
23
+ $optionsSet: import("@angular/core").Signal<boolean>;
24
24
  $dataLength: import("@angular/core").Signal<number>;
25
25
  constructor();
26
- setViewportEffect: import("@angular/core").EffectRef;
27
- subscriber: import("../../../rxjs").Subscriber;
28
- $offset: import("@angular/core").Signal<number>;
29
26
  ngOnDestroy(): void;
30
- setSize(el: ElementRef<HTMLElement>): void;
31
- calcDynamic$: Subject<ElementRef<any>>;
32
- $calcDynamic: import("@angular/core").Signal<ElementRef<any> | undefined>;
27
+ setSize(el: ElementRef<HTMLElement>, trigger: SetSizeTrigger): void;
33
28
  calcDynamic(el: ElementRef<HTMLElement>): void;
34
29
  setHeight(height: number, el: ElementRef<HTMLElement>): void;
35
30
  resizeHandler: () => void;
@@ -41,3 +36,5 @@ export declare class VirtualScrollContainer implements OnDestroy {
41
36
  static ɵfac: i0.ɵɵFactoryDeclaration<VirtualScrollContainer, never>;
42
37
  static ɵcmp: i0.ɵɵComponentDeclaration<VirtualScrollContainer, "tb-virtual-scroll-container", never, {}, {}, ["genericTable"], ["*"], true, never>;
43
38
  }
39
+ type SetSizeTrigger = 'initial' | 'rendered range' | 'resize';
40
+ export {};
@@ -1,7 +1,7 @@
1
1
  import { TableCustomFilterDirective, TableFilterDirective } from "./tb-filter.directive";
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class TableWrapperDirective {
4
- $registrations: import("@angular/core").WritableSignal<(TableCustomFilterDirective | TableFilterDirective)[]>;
4
+ $registrations: import("@angular/core").WritableSignal<(TableFilterDirective | TableCustomFilterDirective)[]>;
5
5
  register(filter: TableCustomFilterDirective | TableFilterDirective): void;
6
6
  static ɵfac: i0.ɵɵFactoryDeclaration<TableWrapperDirective, never>;
7
7
  static ɵdir: i0.ɵɵDirectiveDeclaration<TableWrapperDirective, "[tbWrapper]", never, {}, {}, never, never, true, never>;
@@ -1,4 +1,4 @@
1
- import { Predicate, SimpleChanges } from "@angular/core";
1
+ import { Predicate, Signal, SimpleChanges } from "@angular/core";
2
2
  import { Observable, ReplaySubject } from "rxjs";
3
3
  import { CustomFilter, FilterInfo } from "../classes/filter-info";
4
4
  import { FilterType } from "../enums/filterTypes";
@@ -8,6 +8,7 @@ import { TableWrapperDirective } from "./table-wrapper.directive";
8
8
  import * as i0 from "@angular/core";
9
9
  export declare abstract class TableCustomFilterDirective {
10
10
  abstract filter$: Observable<CustomFilter>;
11
+ abstract $filter: Signal<CustomFilter | undefined>;
11
12
  filterId: string;
12
13
  savable: boolean;
13
14
  abstract active: boolean;
@@ -21,6 +22,7 @@ export declare class TableFilterDirective {
21
22
  constructor();
22
23
  reset(): void;
23
24
  filter$: ReplaySubject<FilterInfo<any, any>>;
25
+ $filter: Signal<FilterInfo<any, any> | undefined>;
24
26
  filterType: FilterType;
25
27
  key: string;
26
28
  fieldType: FieldType;
@@ -48,6 +50,7 @@ export declare class TableFilterStringContainsDirective extends TableFilterDirec
48
50
  }
49
51
  export declare abstract class TableCustomFilterDirectiveBase<T = any> extends TableCustomFilterDirective {
50
52
  filter$: ReplaySubject<CustomFilter<any>>;
53
+ $filter: Signal<CustomFilter<any> | undefined>;
51
54
  filter: CustomFilter;
52
55
  _predicate: Predicate<T>;
53
56
  set predicate(val: Predicate<T>);
@@ -1,6 +1,5 @@
1
1
  import { Sort } from "@angular/material/sort";
2
2
  import { Predicate } from "@angular/core";
3
- export type direc = 'asc' | 'desc' | boolean;
4
3
  export declare function sortData<T>(data: T[], sorted: Sort[]): T[];
5
4
  export declare function filterData<T>(data: T[], filters: Predicate<T>[], resetAll?: boolean): T[];
6
5
  export declare const tbNoShowSymbol: unique symbol;
@@ -118,11 +118,11 @@ export interface Additional<T = any> {
118
118
  dateFormat?: string;
119
119
  dateTimeOptions?: DateTimeOptions;
120
120
  filterOptions?: FilterOptions;
121
- styles?: StylerStyle;
121
+ styles?: StylerStyle<T>;
122
122
  columnPartStyles?: {
123
123
  header?: Dictionary<string>;
124
- body?: StylerStyle;
125
- innerBody?: StylerStyle;
124
+ body?: StylerStyle<T>;
125
+ innerBody?: StylerStyle<T>;
126
126
  footer?: Dictionary<string>;
127
127
  };
128
128
  columnPartClasses?: {
@@ -1,15 +1,7 @@
1
1
  import { PipeTransform } from '@angular/core';
2
2
  import { MetaData } from '../interfaces/report-def';
3
- import * as i0 from "@angular/core";
3
+ import { TableBuilderConfig } from '../classes/TableBuilderConfig';
4
4
  export declare function isPipe(o: any): o is PipeTransform;
5
- export declare class TransformCreator {
6
- private datePipe;
7
- private currencyPipe;
8
- private phonePipe;
9
- private config;
10
- createTransformer(metaData: MetaData<any, any>, noIcons?: boolean, forItem?: boolean): ((value: any, ...args: any[]) => any);
11
- createItemTransformer: <T = any, AdditionalFields extends string[] = []>(metaData: MetaData<T, AdditionalFields>, noIcons?: boolean, mutate?: boolean) => (t: T) => void;
12
- createItemTransformers: <T = any, AdditionalFields extends string[] = []>(metaDatas: MetaData<T, AdditionalFields>[], noIcons?: boolean, mutate?: boolean) => (t: T) => T;
13
- static ɵfac: i0.ɵɵFactoryDeclaration<TransformCreator, never>;
14
- static ɵprov: i0.ɵɵInjectableDeclaration<TransformCreator>;
15
- }
5
+ export declare function createTransformer(metaData: MetaData<any, any>, config: TableBuilderConfig, noIcons?: boolean, forItem?: boolean): ((value: any, ...args: any[]) => any);
6
+ export declare function createItemTransformer<T = any, AdditionalFields extends string[] = []>(metaData: MetaData<T, AdditionalFields>, config: TableBuilderConfig, noIcons?: boolean, mutate?: boolean): (t: T) => void;
7
+ export declare function createItemTransformers<T = any, AdditionalFields extends string[] = []>(metaDatas: MetaData<T, AdditionalFields>[], config: TableBuilderConfig, noIcons?: boolean, mutate?: boolean): (t: T) => T;
@@ -1,21 +1,14 @@
1
1
  import { ModuleWithProviders } from '@angular/core';
2
2
  import { TableBuilderConfig } from './classes/TableBuilderConfig';
3
3
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/material/dialog";
6
- import * as i3 from "@angular/material/core";
7
- import * as i4 from "@angular/router";
8
- import * as i5 from "./components/table-container/table-container";
9
- import * as i6 from "./components/generic-table/generic-table.component";
10
- import * as i7 from "./directives/custom-cell-directive";
11
- import * as i8 from "./components/filter/filter.component";
12
- import * as i9 from "./directives/tb-filter.directive";
13
- import * as i10 from "./directives/table-wrapper.directive";
14
- import * as i11 from "./directives/resize-column.directive";
15
- import * as i12 from "../utilities/module";
4
+ import * as i1 from "./components/table-container/table-container";
5
+ import * as i2 from "./directives/custom-cell-directive";
6
+ import * as i3 from "./directives/tb-filter.directive";
7
+ import * as i4 from "./directives/table-wrapper.directive";
8
+ import * as i5 from "../utilities/module";
16
9
  export declare class TableBuilderModule {
17
10
  static forRoot(config: TableBuilderConfig): ModuleWithProviders<TableBuilderModule>;
18
11
  static ɵfac: i0.ɵɵFactoryDeclaration<TableBuilderModule, never>;
19
- static ɵmod: i0.ɵɵNgModuleDeclaration<TableBuilderModule, never, [typeof i1.CommonModule, typeof i2.MatDialogModule, typeof i3.MatNativeDateModule, typeof i4.RouterModule, typeof i5.TableContainerComponent, typeof i6.GenericTableComponent, typeof i5.TableContainerComponent, typeof i7.CustomCellDirective, typeof i8.FilterComponent, typeof i9.MatSlideToggleTbFilterDirective, typeof i9.MatRadioButtonTbFilterDirective, typeof i9.MatOptionTbFilterDirective, typeof i9.MatCheckboxTbFilterDirective, typeof i9.MatButtonToggleFilterDirective, typeof i9.TableFilterDirective, typeof i9.TableFilterStringContainsDirective, typeof i10.TableWrapperDirective, typeof i11.ResizeColumnDirective, typeof i12.UtilitiesModule], [typeof i6.GenericTableComponent, typeof i5.TableContainerComponent, typeof i7.CustomCellDirective, typeof i8.FilterComponent, typeof i9.MatSlideToggleTbFilterDirective, typeof i9.MatRadioButtonTbFilterDirective, typeof i9.MatOptionTbFilterDirective, typeof i9.MatCheckboxTbFilterDirective, typeof i9.MatButtonToggleFilterDirective, typeof i9.TableFilterDirective, typeof i9.TableFilterStringContainsDirective, typeof i10.TableWrapperDirective, typeof i11.ResizeColumnDirective, typeof i12.UtilitiesModule]>;
12
+ static ɵmod: i0.ɵɵNgModuleDeclaration<TableBuilderModule, never, [typeof i1.TableContainerComponent, typeof i2.CustomCellDirective, typeof i3.TableFilterDirective, typeof i3.TableFilterStringContainsDirective, typeof i4.TableWrapperDirective], [typeof i1.TableContainerComponent, typeof i2.CustomCellDirective, typeof i3.TableFilterStringContainsDirective, typeof i4.TableWrapperDirective, typeof i5.UtilitiesModule]>;
20
13
  static ɵinj: i0.ɵɵInjectorDeclaration<TableBuilderModule>;
21
14
  }
@@ -6,11 +6,11 @@ export declare class StylerDirective {
6
6
  private renderer;
7
7
  $stylesApplied: import("@angular/core").WritableSignal<Dictionary<string>>;
8
8
  $element: import("@angular/core").InputSignal<any>;
9
- $styler: import("@angular/core").InputSignal<StylerStyle>;
9
+ $styler: import("@angular/core").InputSignal<StylerStyle<any>>;
10
10
  static ɵfac: i0.ɵɵFactoryDeclaration<StylerDirective, never>;
11
11
  static ɵdir: i0.ɵɵDirectiveDeclaration<StylerDirective, "[styler]", never, { "$element": { "alias": "element"; "required": true; "isSignal": true; }; "$styler": { "alias": "styler"; "required": true; "isSignal": true; }; }, {}, never, never, true, never>;
12
12
  }
13
- export type StylerStyle = Dictionary<string | {
14
- condition?: ((t: any) => boolean) | true;
15
- value: ((t: any) => string) | string;
13
+ export type StylerStyle<T = any> = Dictionary<string | {
14
+ condition?: ((t: T) => boolean) | true;
15
+ value: ((t: T) => string) | string;
16
16
  }>;
@@ -5,3 +5,4 @@ export declare class PhoneNumberPipe implements PipeTransform {
5
5
  static ɵfac: i0.ɵɵFactoryDeclaration<PhoneNumberPipe, never>;
6
6
  static ɵpipe: i0.ɵɵPipeDeclaration<PhoneNumberPipe, "phone", true>;
7
7
  }
8
+ export declare function phoneFormatter(phoneNum: string): string;