@masterteam/components 0.0.70 → 0.0.71
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/assets/common.css +1 -1
- package/assets/i18n/ar.json +4 -1
- package/assets/i18n/en.json +4 -1
- package/fesm2022/masterteam-components-table.mjs +236 -70
- package/fesm2022/masterteam-components-table.mjs.map +1 -1
- package/fesm2022/masterteam-components-tree.mjs +146 -0
- package/fesm2022/masterteam-components-tree.mjs.map +1 -0
- package/package.json +5 -1
- package/types/masterteam-components-table.d.ts +67 -14
- package/types/masterteam-components-tree.d.ts +91 -0
|
@@ -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
|
|
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
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
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
|
-
|
|
111
|
-
|
|
112
|
-
|
|
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 };
|