@masterteam/components 0.0.70 → 0.0.72

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.
@@ -1,8 +1,10 @@
1
+ import * as _masterteam_components_table from '@masterteam/components/table';
1
2
  import * as _angular_core from '@angular/core';
2
3
  import { TemplateRef } from '@angular/core';
3
4
  import { MTIcon } from '@masterteam/icons';
4
5
  import { ConfirmationConfig, ConfirmationService } from '@masterteam/components/confirmation';
5
- import { TablePageEvent } from 'primeng/table';
6
+ import { Table as Table$1, TablePageEvent } from 'primeng/table';
7
+ import { ControlValueAccessor } from '@angular/forms';
6
8
 
7
9
  /**
8
10
  * Table action confirmation config with optional event
@@ -22,10 +24,22 @@ interface FilterOption {
22
24
  * Configuration for filtering on a specific column.
23
25
  */
24
26
  interface FilterConfig {
25
- type: 'text' | 'select';
26
- label: string;
27
+ type: 'text' | 'select' | 'date' | 'boolean';
28
+ label?: string;
27
29
  options?: FilterOption[];
28
30
  }
31
+ /**
32
+ * Filter value for date range or simple value
33
+ */
34
+ interface FilterValue {
35
+ value?: any;
36
+ from?: Date | null;
37
+ to?: Date | null;
38
+ }
39
+ /**
40
+ * Table filters map
41
+ */
42
+ type TableFilters = Record<string, FilterValue | any>;
29
43
  /**
30
44
  * Column type definition
31
45
  */
@@ -65,6 +79,7 @@ declare class Table {
65
79
  lazyLoad: _angular_core.OutputEmitterRef<any>;
66
80
  columnReorder: _angular_core.OutputEmitterRef<any>;
67
81
  rowReorder: _angular_core.OutputEmitterRef<any>;
82
+ filters: _angular_core.ModelSignal<TableFilters>;
68
83
  data: _angular_core.InputSignal<any[]>;
69
84
  columns: _angular_core.InputSignal<ColumnDef[]>;
70
85
  rowActions: _angular_core.InputSignal<TableAction[]>;
@@ -81,6 +96,8 @@ declare class Table {
81
96
  reorderableColumns: _angular_core.InputSignalWithTransform<boolean, unknown>;
82
97
  reorderableRows: _angular_core.InputSignalWithTransform<boolean, unknown>;
83
98
  dataKey: _angular_core.InputSignal<string | undefined>;
99
+ exportable: _angular_core.InputSignalWithTransform<boolean, unknown>;
100
+ exportFilename: _angular_core.InputSignal<string>;
84
101
  tabs: _angular_core.InputSignal<any[] | undefined>;
85
102
  tabsOptionLabel: _angular_core.InputSignal<string | undefined>;
86
103
  tabsOptionValue: _angular_core.InputSignal<string | undefined>;
@@ -90,6 +107,7 @@ declare class Table {
90
107
  captionStartContent: _angular_core.Signal<TemplateRef<any> | undefined>;
91
108
  captionEndContent: _angular_core.Signal<TemplateRef<any> | undefined>;
92
109
  emptyContent: _angular_core.Signal<TemplateRef<any> | undefined>;
110
+ protected tableRef: _angular_core.Signal<Table$1<any> | undefined>;
93
111
  paginatorPosition: _angular_core.InputSignal<"end" | "start" | "center">;
94
112
  pageSize: _angular_core.ModelSignal<number>;
95
113
  currentPage: _angular_core.ModelSignal<number>;
@@ -97,20 +115,24 @@ declare class Table {
97
115
  filterTerm: _angular_core.ModelSignal<string>;
98
116
  confirmationService: ConfirmationService;
99
117
  protected selectedRows: _angular_core.WritableSignal<Set<any>>;
100
- protected isFilterPanelOpen: _angular_core.WritableSignal<boolean>;
101
- protected pendingFilters: _angular_core.WritableSignal<Record<string, any>>;
102
- protected appliedFilters: _angular_core.WritableSignal<Record<string, any>>;
103
- protected filterableColumns: _angular_core.Signal<ColumnDef[]>;
118
+ protected exportColumns: _angular_core.Signal<{
119
+ field: string;
120
+ header: string;
121
+ key: string;
122
+ label: string;
123
+ type?: _masterteam_components_table.ColumnType;
124
+ customCellTpl?: TemplateRef<any>;
125
+ filterConfig?: _masterteam_components_table.FilterConfig;
126
+ }[]>;
104
127
  protected activeFilterCount: _angular_core.Signal<number>;
105
128
  protected filteredData: _angular_core.Signal<any[]>;
106
129
  protected displayData: _angular_core.Signal<any[]>;
107
130
  protected totalRecords: _angular_core.Signal<number>;
108
131
  protected paginatedData: _angular_core.Signal<any[]>;
109
132
  protected allSelectedOnPage: _angular_core.Signal<boolean>;
110
- toggleFilterPanel(): void;
111
- updatePendingFilter(key: string, value: any): void;
112
- applyFilters(): void;
113
- resetFilters(): void;
133
+ onFilterApplied(filters: TableFilters): void;
134
+ onFilterReset(): void;
135
+ protected matchesFilter(item: any, key: string, filterValue: FilterValue | any): boolean;
114
136
  toggleRow(row: any): void;
115
137
  toggleAllRowsOnPage(): void;
116
138
  getProperty(obj: any, key: string): any;
@@ -125,10 +147,41 @@ declare class Table {
125
147
  onRowReorder(event: any): void;
126
148
  protected updatePagingFromEvent(event: any): void;
127
149
  protected emitLazyLoad(event: any): void;
150
+ exportCSV(): void;
128
151
  rowAction(event: Event, action: TableAction, row: any): void;
129
152
  static ɵfac: _angular_core.ɵɵFactoryDeclaration<Table, never>;
130
- static ɵcmp: _angular_core.ɵɵComponentDeclaration<Table, "mt-table", never, { "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showGridlines": { "alias": "showGridlines"; "required": false; "isSignal": true; }; "stripedRows": { "alias": "stripedRows"; "required": false; "isSignal": true; }; "selectableRows": { "alias": "selectableRows"; "required": false; "isSignal": true; }; "generalSearch": { "alias": "generalSearch"; "required": false; "isSignal": true; }; "showFilters": { "alias": "showFilters"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "updating": { "alias": "updating"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "lazyTotalRecords": { "alias": "lazyTotalRecords"; "required": false; "isSignal": true; }; "reorderableColumns": { "alias": "reorderableColumns"; "required": false; "isSignal": true; }; "reorderableRows": { "alias": "reorderableRows"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "tabsOptionLabel": { "alias": "tabsOptionLabel"; "required": false; "isSignal": true; }; "tabsOptionValue": { "alias": "tabsOptionValue"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "paginatorPosition": { "alias": "paginatorPosition"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "first": { "alias": "first"; "required": false; "isSignal": true; }; "filterTerm": { "alias": "filterTerm"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "cellChange": "cellChange"; "lazyLoad": "lazyLoad"; "columnReorder": "columnReorder"; "rowReorder": "rowReorder"; "activeTab": "activeTabChange"; "onTabChange": "onTabChange"; "pageSize": "pageSizeChange"; "currentPage": "currentPageChange"; "first": "firstChange"; "filterTerm": "filterTermChange"; }, ["captionStartContent", "captionEndContent", "emptyContent"], never, true, never>;
153
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Table, "mt-table", never, { "filters": { "alias": "filters"; "required": false; "isSignal": true; }; "data": { "alias": "data"; "required": true; "isSignal": true; }; "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "rowActions": { "alias": "rowActions"; "required": false; "isSignal": true; }; "size": { "alias": "size"; "required": false; "isSignal": true; }; "showGridlines": { "alias": "showGridlines"; "required": false; "isSignal": true; }; "stripedRows": { "alias": "stripedRows"; "required": false; "isSignal": true; }; "selectableRows": { "alias": "selectableRows"; "required": false; "isSignal": true; }; "generalSearch": { "alias": "generalSearch"; "required": false; "isSignal": true; }; "showFilters": { "alias": "showFilters"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "updating": { "alias": "updating"; "required": false; "isSignal": true; }; "lazy": { "alias": "lazy"; "required": false; "isSignal": true; }; "lazyTotalRecords": { "alias": "lazyTotalRecords"; "required": false; "isSignal": true; }; "reorderableColumns": { "alias": "reorderableColumns"; "required": false; "isSignal": true; }; "reorderableRows": { "alias": "reorderableRows"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "exportable": { "alias": "exportable"; "required": false; "isSignal": true; }; "exportFilename": { "alias": "exportFilename"; "required": false; "isSignal": true; }; "tabs": { "alias": "tabs"; "required": false; "isSignal": true; }; "tabsOptionLabel": { "alias": "tabsOptionLabel"; "required": false; "isSignal": true; }; "tabsOptionValue": { "alias": "tabsOptionValue"; "required": false; "isSignal": true; }; "activeTab": { "alias": "activeTab"; "required": false; "isSignal": true; }; "actions": { "alias": "actions"; "required": false; "isSignal": true; }; "paginatorPosition": { "alias": "paginatorPosition"; "required": false; "isSignal": true; }; "pageSize": { "alias": "pageSize"; "required": false; "isSignal": true; }; "currentPage": { "alias": "currentPage"; "required": false; "isSignal": true; }; "first": { "alias": "first"; "required": false; "isSignal": true; }; "filterTerm": { "alias": "filterTerm"; "required": false; "isSignal": true; }; }, { "selectionChange": "selectionChange"; "cellChange": "cellChange"; "lazyLoad": "lazyLoad"; "columnReorder": "columnReorder"; "rowReorder": "rowReorder"; "filters": "filtersChange"; "activeTab": "activeTabChange"; "onTabChange": "onTabChange"; "pageSize": "pageSizeChange"; "currentPage": "currentPageChange"; "first": "firstChange"; "filterTerm": "filterTermChange"; }, ["captionStartContent", "captionEndContent", "emptyContent"], never, true, never>;
154
+ }
155
+
156
+ declare class TableFilter implements ControlValueAccessor {
157
+ readonly columns: _angular_core.InputSignal<ColumnDef[]>;
158
+ readonly data: _angular_core.InputSignal<any[]>;
159
+ readonly filterApplied: _angular_core.OutputEmitterRef<TableFilters>;
160
+ readonly filterReset: _angular_core.OutputEmitterRef<void>;
161
+ protected pendingFilters: _angular_core.WritableSignal<TableFilters>;
162
+ protected appliedFilters: _angular_core.WritableSignal<TableFilters>;
163
+ protected booleanOptions: {
164
+ label: string;
165
+ value: boolean;
166
+ }[];
167
+ private onChange;
168
+ private onTouched;
169
+ protected filterableColumns: _angular_core.Signal<ColumnDef[]>;
170
+ protected activeFilterCount: _angular_core.Signal<number>;
171
+ protected getFilterType(col: ColumnDef): string;
172
+ protected getFilterValue(key: string): any;
173
+ protected getDateRangeValue(key: string, part: 'from' | 'to'): Date | null;
174
+ protected updateFilter(key: string, value: any): void;
175
+ protected updateDateFilter(key: string, part: 'from' | 'to', value: Date | null): void;
176
+ protected apply(): void;
177
+ protected reset(): void;
178
+ private hasValue;
179
+ writeValue(value: TableFilters | null): void;
180
+ registerOnChange(fn: (value: TableFilters) => void): void;
181
+ registerOnTouched(fn: () => void): void;
182
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<TableFilter, never>;
183
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<TableFilter, "mt-table-filter", never, { "columns": { "alias": "columns"; "required": true; "isSignal": true; }; "data": { "alias": "data"; "required": false; "isSignal": true; }; }, { "filterApplied": "filterApplied"; "filterReset": "filterReset"; }, never, never, true, never>;
131
184
  }
132
185
 
133
- export { Table };
134
- export type { CellChangeEvent, ColumnDef, ColumnType, ColumnTypeForActionCell, FilterConfig, FilterOption, TableAction, TableActionConfirmationConfig };
186
+ export { Table, TableFilter };
187
+ export type { CellChangeEvent, ColumnDef, ColumnType, ColumnTypeForActionCell, FilterConfig, FilterOption, FilterValue, TableAction, TableActionConfirmationConfig, TableFilters };
@@ -0,0 +1,91 @@
1
+ import * as _angular_core from '@angular/core';
2
+ import { Tree as Tree$1 } from 'primeng/tree';
3
+ import { TreeNode, MenuItem } from 'primeng/api';
4
+ export { TreeNode } from 'primeng/api';
5
+ import { MTIcon } from '@masterteam/icons';
6
+ import { Directionality } from '@angular/cdk/bidi';
7
+ import { TranslocoService } from '@jsverse/transloco';
8
+
9
+ /**
10
+ * Defines an action button for tree nodes
11
+ */
12
+ interface TreeAction {
13
+ icon?: MTIcon | undefined;
14
+ severity?: 'info' | 'success' | 'warn' | 'danger' | 'secondary' | 'contrast' | 'help' | 'primary';
15
+ variant?: 'text' | 'outlined' | undefined;
16
+ size?: 'small' | 'large' | undefined;
17
+ label?: string;
18
+ tooltip?: string;
19
+ hidden?: (node: any) => boolean;
20
+ action: (node: any) => void;
21
+ loading?: boolean | ((node: any) => boolean);
22
+ }
23
+ /**
24
+ * Defines a context menu action for tree nodes
25
+ */
26
+ interface TreeContextMenuAction {
27
+ icon?: MTIcon | undefined;
28
+ label: string;
29
+ action: (node: any) => void;
30
+ }
31
+ /**
32
+ * Tree action types - all possible events from tree component
33
+ */
34
+ type TreeActionType = 'selectionChange' | 'nodeSelect' | 'nodeUnselect' | 'nodeExpand' | 'nodeCollapse';
35
+ /**
36
+ * Tree action event interface - unified event structure for all tree actions
37
+ */
38
+ interface TreeActionEvent {
39
+ action: TreeActionType;
40
+ data: any;
41
+ }
42
+
43
+ declare class Tree {
44
+ transloco: TranslocoService;
45
+ dir: Directionality | null;
46
+ readonly primeTree: _angular_core.Signal<Tree$1 | undefined>;
47
+ readonly value: _angular_core.InputSignal<TreeNode<any>[]>;
48
+ readonly selection: _angular_core.ModelSignal<TreeNode<any> | TreeNode<any>[] | null | undefined>;
49
+ readonly selectionMode: _angular_core.InputSignal<"single" | "multiple" | "checkbox" | undefined>;
50
+ readonly nodeIcon: _angular_core.InputSignal<MTIcon | undefined>;
51
+ readonly propagateSelectionUp: _angular_core.InputSignal<boolean>;
52
+ readonly propagateSelectionDown: _angular_core.InputSignal<boolean>;
53
+ readonly loading: _angular_core.InputSignal<boolean>;
54
+ readonly emptyMessage: _angular_core.InputSignal<string>;
55
+ readonly filterPlaceholder: _angular_core.InputSignal<string>;
56
+ readonly dataKey: _angular_core.InputSignal<string>;
57
+ readonly filter: _angular_core.InputSignal<boolean>;
58
+ readonly filterMode: _angular_core.InputSignal<"lenient" | "strict">;
59
+ readonly styleClass: _angular_core.InputSignal<string>;
60
+ readonly style: _angular_core.InputSignal<Record<string, string> | undefined>;
61
+ readonly pInputs: _angular_core.InputSignal<Partial<Tree$1> | undefined>;
62
+ readonly nodeActions: _angular_core.InputSignal<TreeAction[]>;
63
+ readonly nodeContextmenuActions: _angular_core.InputSignal<TreeContextMenuAction[]>;
64
+ readonly contextMenuSelection: _angular_core.ModelSignal<TreeNode<any> | null>;
65
+ readonly contextMenuItems: _angular_core.Signal<MenuItem[]>;
66
+ readonly action: _angular_core.OutputEmitterRef<TreeActionEvent>;
67
+ constructor();
68
+ onSelectionChange(event: TreeNode | TreeNode[] | null): void;
69
+ onNodeSelect(event: {
70
+ node: TreeNode;
71
+ }): void;
72
+ onNodeUnselect(event: {
73
+ node: TreeNode;
74
+ }): void;
75
+ onNodeExpand(event: {
76
+ node: TreeNode;
77
+ }): void;
78
+ onNodeCollapse(event: {
79
+ node: TreeNode;
80
+ }): void;
81
+ onContextMenuSelect(event: TreeNode): void;
82
+ toggleNodeSelection(node: TreeNode, event: MouseEvent): void;
83
+ handleCheckedNodes(): void;
84
+ resolveActionLoading(action: TreeAction, node: any): boolean | undefined;
85
+ nodeAction(action: TreeAction, node: any): void;
86
+ static ɵfac: _angular_core.ɵɵFactoryDeclaration<Tree, never>;
87
+ static ɵcmp: _angular_core.ɵɵComponentDeclaration<Tree, "mt-tree", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "selection": { "alias": "selection"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "nodeIcon": { "alias": "nodeIcon"; "required": false; "isSignal": true; }; "propagateSelectionUp": { "alias": "propagateSelectionUp"; "required": false; "isSignal": true; }; "propagateSelectionDown": { "alias": "propagateSelectionDown"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "filterPlaceholder": { "alias": "filterPlaceholder"; "required": false; "isSignal": true; }; "dataKey": { "alias": "dataKey"; "required": false; "isSignal": true; }; "filter": { "alias": "filter"; "required": false; "isSignal": true; }; "filterMode": { "alias": "filterMode"; "required": false; "isSignal": true; }; "styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "style": { "alias": "style"; "required": false; "isSignal": true; }; "pInputs": { "alias": "pInputs"; "required": false; "isSignal": true; }; "nodeActions": { "alias": "nodeActions"; "required": false; "isSignal": true; }; "nodeContextmenuActions": { "alias": "nodeContextmenuActions"; "required": false; "isSignal": true; }; "contextMenuSelection": { "alias": "contextMenuSelection"; "required": false; "isSignal": true; }; }, { "selection": "selectionChange"; "contextMenuSelection": "contextMenuSelectionChange"; "action": "action"; }, never, never, true, never>;
88
+ }
89
+
90
+ export { Tree };
91
+ export type { TreeAction, TreeActionEvent, TreeActionType, TreeContextMenuAction };