cats-data-grid 2.0.4 → 2.0.6
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/README.md +63 -63
- package/assets/images/check-white.svg +3 -3
- package/assets/images/gripper.svg +8 -0
- package/assets/images/minus-blue.svg +3 -3
- package/assets/images/pin.svg +4 -4
- package/assets/images/sort_down.svg +6 -6
- package/assets/images/sort_up.svg +6 -6
- package/assets/images/t-arrow-down.svg +4 -4
- package/assets/images/t-arrow-up.svg +4 -4
- package/assets/images/t-choose-column.svg +3 -3
- package/assets/images/t-data-pipeline.svg +13 -13
- package/assets/images/t-filter-applied.svg +4 -4
- package/assets/images/t-filter.svg +3 -3
- package/assets/images/t-gripper.svg +8 -8
- package/assets/images/t-group-by-name.svg +3 -3
- package/assets/images/t-more-vertical.svg +5 -5
- package/assets/images/t-move.svg +15 -15
- package/assets/images/t-x.svg +4 -4
- package/fesm2022/cats-data-grid.mjs +1580 -196
- package/fesm2022/cats-data-grid.mjs.map +1 -1
- package/index.d.ts +401 -13
- package/package.json +1 -1
- package/styles/_index.scss +3 -3
- package/styles/base/_fonts.scss +74 -74
- package/styles/base/_index.scss +1 -1
- package/styles/base/_reset.scss +60 -60
- package/styles/component/_form.scss +371 -340
- package/styles/component/_index.scss +1 -1
- package/styles/sass-utils/_function.scss +14 -14
- package/styles/sass-utils/_index.scss +3 -3
- package/styles/sass-utils/_mixin.scss +87 -87
- package/styles/sass-utils/_variable.scss +77 -77
package/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
|
-
import { OnChanges, OnInit, EventEmitter, Renderer2, NgZone, ChangeDetectorRef, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { OnChanges, OnInit, ElementRef, EventEmitter, Renderer2, NgZone, ChangeDetectorRef, SimpleChanges, DoCheck, AfterViewInit, OnDestroy } from '@angular/core';
|
|
3
3
|
|
|
4
4
|
declare class CatsDataGridService {
|
|
5
5
|
constructor();
|
|
@@ -34,6 +34,9 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
34
34
|
private renderer;
|
|
35
35
|
private zone;
|
|
36
36
|
private cd;
|
|
37
|
+
pinMenu: ElementRef;
|
|
38
|
+
colActionMenu: ElementRef;
|
|
39
|
+
table: ElementRef;
|
|
37
40
|
tableOptions: any;
|
|
38
41
|
totalRecords: number;
|
|
39
42
|
sortingRequired: boolean;
|
|
@@ -45,6 +48,10 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
45
48
|
selectedRowEmpty: boolean;
|
|
46
49
|
filterRequired: boolean;
|
|
47
50
|
threeDotsMenuRequired: boolean;
|
|
51
|
+
settingsRequired: boolean;
|
|
52
|
+
settingsClicked: boolean;
|
|
53
|
+
resetPage: boolean;
|
|
54
|
+
rowId: any;
|
|
48
55
|
showDropdown: boolean;
|
|
49
56
|
height: number;
|
|
50
57
|
groupByRequired: boolean;
|
|
@@ -52,8 +59,10 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
52
59
|
onCheckboxSelection: EventEmitter<any>;
|
|
53
60
|
onScrollEmitter: EventEmitter<any>;
|
|
54
61
|
filter: EventEmitter<any>;
|
|
62
|
+
onHideSettings: EventEmitter<any>;
|
|
55
63
|
activeFilterIndex: number | null;
|
|
56
64
|
originalRowData: any[];
|
|
65
|
+
activeAll: boolean;
|
|
57
66
|
pageDetails: any;
|
|
58
67
|
recordsToShow: any;
|
|
59
68
|
sortingColumnIndex: number;
|
|
@@ -80,6 +89,7 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
80
89
|
columnDraggable: any[];
|
|
81
90
|
activeGroups: any[];
|
|
82
91
|
groupBy: string[];
|
|
92
|
+
groupByField: string;
|
|
83
93
|
dragGroupIndex: number | null;
|
|
84
94
|
dateConfig: DateConfig;
|
|
85
95
|
filterOptions: {
|
|
@@ -96,12 +106,24 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
96
106
|
private removeMouseUp;
|
|
97
107
|
private rafId;
|
|
98
108
|
appliedFilters: ColumnFilter[];
|
|
109
|
+
rowGripFieldName: string;
|
|
110
|
+
pageNumber: number;
|
|
111
|
+
pageSize: number;
|
|
99
112
|
appliedFiltersEvent: EventEmitter<ColumnFilter[]>;
|
|
100
113
|
activeGroupsEvent: EventEmitter<any[]>;
|
|
101
114
|
dynamicGroupingFiltering: boolean;
|
|
115
|
+
atLeastOneColumnChecked: boolean;
|
|
116
|
+
draggedRowData: any;
|
|
117
|
+
firstCol: any;
|
|
118
|
+
isRowSelected: boolean;
|
|
119
|
+
onRowClicked: EventEmitter<any>;
|
|
120
|
+
onCellClicked: EventEmitter<any>;
|
|
102
121
|
constructor(renderer: Renderer2, zone: NgZone, cd: ChangeDetectorRef);
|
|
103
122
|
ngOnInit(): void;
|
|
104
123
|
ngOnChanges(changes: SimpleChanges): void;
|
|
124
|
+
getColumnDetail(colDefs: any, groupByField: any): any;
|
|
125
|
+
activeAllSelection(event: Event): void;
|
|
126
|
+
changeActiveColSelection(event: Event, col: any): void;
|
|
105
127
|
/**
|
|
106
128
|
* @description Prepares and normalizes column definitions for filtering and menu behavior
|
|
107
129
|
* @author Anand Pandey
|
|
@@ -136,6 +158,7 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
136
158
|
* @returns void
|
|
137
159
|
*/
|
|
138
160
|
applyAllFilters(): void;
|
|
161
|
+
evaluateFieldValue(row: any, field: string): any;
|
|
139
162
|
resetFilter(col: any): void;
|
|
140
163
|
removeActiveFilter(col: any): void;
|
|
141
164
|
/**
|
|
@@ -253,7 +276,7 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
253
276
|
* @returns {void}
|
|
254
277
|
*/
|
|
255
278
|
pinColumn(col: any, index: number, direction: string): void;
|
|
256
|
-
showPinActions(): void;
|
|
279
|
+
showPinActions(event: MouseEvent): void;
|
|
257
280
|
hidePinActions(): void;
|
|
258
281
|
/**
|
|
259
282
|
* @description Updates the horizontal left and right offsets of pinned columns by assigning cumulative widths to each pinned column and resetting non-pinned columns.
|
|
@@ -442,8 +465,18 @@ declare class CatsDataGridComponent implements OnChanges, OnInit {
|
|
|
442
465
|
disableColumnDrag(event: MouseEvent, index: number): void;
|
|
443
466
|
dateTimeSelected(date: any): void;
|
|
444
467
|
convertToNumber(value: number | string): number;
|
|
468
|
+
hideSettings(): void;
|
|
469
|
+
dragRow(e: Event, row: any): void;
|
|
470
|
+
allowRowDrop(e: Event): void;
|
|
471
|
+
dropRow(targetRow: any): void;
|
|
472
|
+
moveRow(from: number, to: number): void;
|
|
473
|
+
clearAllFilter(): void;
|
|
474
|
+
onBtFirstClick(): void;
|
|
475
|
+
onBtLastClick(): void;
|
|
476
|
+
onRowClick(row: any): void;
|
|
477
|
+
onCellClick(row: any, col: any): void;
|
|
445
478
|
static ɵfac: i0.ɵɵFactoryDeclaration<CatsDataGridComponent, never>;
|
|
446
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<CatsDataGridComponent, "cats-data-grid", never, { "tableOptions": { "alias": "tableOptions"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "sortingRequired": { "alias": "sortingRequired"; "required": false; }; "checkBoxSelection": { "alias": "checkBoxSelection"; "required": false; }; "checkboxSelectionType": { "alias": "checkboxSelectionType"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "colDefs": { "alias": "colDefs"; "required": false; }; "paginationRequired": { "alias": "paginationRequired"; "required": false; }; "selectedRowEmpty": { "alias": "selectedRowEmpty"; "required": false; }; "filterRequired": { "alias": "filterRequired"; "required": false; }; "threeDotsMenuRequired": { "alias": "threeDotsMenuRequired"; "required": false; }; "height": { "alias": "height"; "required": false; }; "groupByRequired": { "alias": "groupByRequired"; "required": false; }; "pageSizeList": { "alias": "pageSizeList"; "required": false; }; "appliedFilters": { "alias": "appliedFilters"; "required": false; }; "dynamicGroupingFiltering": { "alias": "dynamicGroupingFiltering"; "required": false; }; }, { "onPaginationChange": "onPaginationChange"; "onCheckboxSelection": "onCheckboxSelection"; "onScrollEmitter": "onScrollEmitter"; "filter": "filter"; "appliedFiltersEvent": "appliedFiltersEvent"; "activeGroupsEvent": "activeGroupsEvent"; }, never, never, true, never>;
|
|
479
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CatsDataGridComponent, "cats-data-grid", never, { "tableOptions": { "alias": "tableOptions"; "required": false; }; "totalRecords": { "alias": "totalRecords"; "required": false; }; "sortingRequired": { "alias": "sortingRequired"; "required": false; }; "checkBoxSelection": { "alias": "checkBoxSelection"; "required": false; }; "checkboxSelectionType": { "alias": "checkboxSelectionType"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "colDefs": { "alias": "colDefs"; "required": false; }; "paginationRequired": { "alias": "paginationRequired"; "required": false; }; "selectedRowEmpty": { "alias": "selectedRowEmpty"; "required": false; }; "filterRequired": { "alias": "filterRequired"; "required": false; }; "threeDotsMenuRequired": { "alias": "threeDotsMenuRequired"; "required": false; }; "settingsRequired": { "alias": "settingsRequired"; "required": false; }; "settingsClicked": { "alias": "settingsClicked"; "required": false; }; "resetPage": { "alias": "resetPage"; "required": false; }; "rowId": { "alias": "rowId"; "required": false; }; "height": { "alias": "height"; "required": false; }; "groupByRequired": { "alias": "groupByRequired"; "required": false; }; "pageSizeList": { "alias": "pageSizeList"; "required": false; }; "groupByField": { "alias": "groupByField"; "required": false; }; "appliedFilters": { "alias": "appliedFilters"; "required": false; }; "rowGripFieldName": { "alias": "rowGripFieldName"; "required": false; }; "pageNumber": { "alias": "pageNumber"; "required": false; }; "pageSize": { "alias": "pageSize"; "required": false; }; "dynamicGroupingFiltering": { "alias": "dynamicGroupingFiltering"; "required": false; }; }, { "onPaginationChange": "onPaginationChange"; "onCheckboxSelection": "onCheckboxSelection"; "onScrollEmitter": "onScrollEmitter"; "filter": "filter"; "onHideSettings": "onHideSettings"; "appliedFiltersEvent": "appliedFiltersEvent"; "activeGroupsEvent": "activeGroupsEvent"; "onRowClicked": "onRowClicked"; "onCellClicked": "onCellClicked"; }, never, never, true, never>;
|
|
447
480
|
}
|
|
448
481
|
|
|
449
482
|
declare class CommonRendererComponent {
|
|
@@ -452,7 +485,12 @@ declare class CommonRendererComponent {
|
|
|
452
485
|
private static _activeTagId;
|
|
453
486
|
activeRowId: i0.WritableSignal<number | null>;
|
|
454
487
|
activeTagId: i0.WritableSignal<string | null>;
|
|
488
|
+
clickTimer: any;
|
|
489
|
+
clickDelay: number;
|
|
455
490
|
maxVisible: number;
|
|
491
|
+
data: any;
|
|
492
|
+
paramsVal: any;
|
|
493
|
+
tagClasses: any;
|
|
456
494
|
cellInit(params: any, data: any): void;
|
|
457
495
|
/**
|
|
458
496
|
* @description Returns the renderer type defined in cellRendererParams.
|
|
@@ -512,6 +550,8 @@ declare class CommonRendererComponent {
|
|
|
512
550
|
* @returns {void}
|
|
513
551
|
*/
|
|
514
552
|
onActionClick(action: any): void;
|
|
553
|
+
linkSingleClick(): void;
|
|
554
|
+
linkDoubleClick(): void;
|
|
515
555
|
/**
|
|
516
556
|
* @description Closes the action menu when clicking outside the component.
|
|
517
557
|
* @author Anand Pandey
|
|
@@ -524,19 +564,13 @@ declare class CommonRendererComponent {
|
|
|
524
564
|
* @author Anand Pandey
|
|
525
565
|
* @returns {string[]}
|
|
526
566
|
*/
|
|
527
|
-
get allTags():
|
|
528
|
-
tagValue: any;
|
|
529
|
-
class: any;
|
|
530
|
-
}[];
|
|
567
|
+
get allTags(): any;
|
|
531
568
|
/**
|
|
532
569
|
* @description Returns the subset of tags that should be visibly displayed in the UI based on maxVisible count.
|
|
533
570
|
* @author Anand Pandey
|
|
534
571
|
* @returns {string[]}
|
|
535
572
|
*/
|
|
536
|
-
get visibleTags():
|
|
537
|
-
tagValue: any;
|
|
538
|
-
class: any;
|
|
539
|
-
}[];
|
|
573
|
+
get visibleTags(): any;
|
|
540
574
|
/**
|
|
541
575
|
* @description Returns the count of tags hidden behind the "+" more indicator.
|
|
542
576
|
* @author Anand Pandey
|
|
@@ -563,9 +597,363 @@ declare class CommonRendererComponent {
|
|
|
563
597
|
* @returns {void}
|
|
564
598
|
*/
|
|
565
599
|
closeDropdown(event: MouseEvent): void;
|
|
600
|
+
/**
|
|
601
|
+
* @description Returns normalized link values derived from the cell `value`.
|
|
602
|
+
* Uses the configured `linkKey` from `cellParams` to extract display data
|
|
603
|
+
* @author Anand Pandey
|
|
604
|
+
* @returns {Array<{ linkValue: string; class: string }>} Normalized link values
|
|
605
|
+
*/
|
|
606
|
+
get linkVal(): any;
|
|
607
|
+
/**
|
|
608
|
+
* @description Normalizes the component `value` into a consistent array structure.
|
|
609
|
+
* @author Anand Pandey
|
|
610
|
+
* @param {string} key Key in `cellParams` used to determine which field to read from object values
|
|
611
|
+
* @param {string} valueProp Property name assigned to the normalized output value
|
|
612
|
+
* @returns {Array<{ [key: string]: string; class: string }>} Array of normalized value objects
|
|
613
|
+
*/
|
|
614
|
+
transformValue(key: string, valueProp: any): {
|
|
615
|
+
[valueProp]: any;
|
|
616
|
+
class: any;
|
|
617
|
+
}[];
|
|
618
|
+
parseColValue(row: any, col: any): any;
|
|
566
619
|
static ɵfac: i0.ɵɵFactoryDeclaration<CommonRendererComponent, never>;
|
|
567
620
|
static ɵcmp: i0.ɵɵComponentDeclaration<CommonRendererComponent, "lib-common-renderer", never, {}, {}, never, never, true, never>;
|
|
568
621
|
}
|
|
569
622
|
|
|
570
|
-
|
|
571
|
-
|
|
623
|
+
interface CatsTreeTableColumn {
|
|
624
|
+
field: string;
|
|
625
|
+
header?: string;
|
|
626
|
+
width?: number;
|
|
627
|
+
minWidth?: number;
|
|
628
|
+
maxWidth?: number;
|
|
629
|
+
class?: string;
|
|
630
|
+
colId?: string;
|
|
631
|
+
sortable?: boolean;
|
|
632
|
+
filterable?: boolean;
|
|
633
|
+
filterType?: 'text' | 'number' | 'date' | 'set';
|
|
634
|
+
leftPinned?: boolean;
|
|
635
|
+
rightPinned?: boolean;
|
|
636
|
+
leftOffset?: number;
|
|
637
|
+
rightOffset?: number;
|
|
638
|
+
active?: boolean;
|
|
639
|
+
filters?: TreeFilterCondition[];
|
|
640
|
+
options?: any[];
|
|
641
|
+
filteredOptions?: any[];
|
|
642
|
+
selectedValues?: Set<any>;
|
|
643
|
+
cellRenderer?: any;
|
|
644
|
+
cellRendererParams?: any;
|
|
645
|
+
}
|
|
646
|
+
interface TreeFilterCondition {
|
|
647
|
+
filterOperation: string;
|
|
648
|
+
filterValue: any;
|
|
649
|
+
}
|
|
650
|
+
interface CatsTreeRowOptions {
|
|
651
|
+
showCheckbox?: boolean;
|
|
652
|
+
showToggle?: boolean;
|
|
653
|
+
showNodeIcon?: boolean;
|
|
654
|
+
showLink?: boolean;
|
|
655
|
+
disabled?: boolean;
|
|
656
|
+
}
|
|
657
|
+
interface CatsTreeExpandEvent<T = any> {
|
|
658
|
+
node: T;
|
|
659
|
+
level: number;
|
|
660
|
+
path: T[];
|
|
661
|
+
expanded: boolean;
|
|
662
|
+
}
|
|
663
|
+
interface CatsTreeSelectionChangeEvent<T = any> {
|
|
664
|
+
node: T;
|
|
665
|
+
level: number;
|
|
666
|
+
path: T[];
|
|
667
|
+
checked: boolean;
|
|
668
|
+
selectedNodes: T[];
|
|
669
|
+
}
|
|
670
|
+
interface CatsTreeLinkClickEvent<T = any> {
|
|
671
|
+
node: T;
|
|
672
|
+
level: number;
|
|
673
|
+
path: T[];
|
|
674
|
+
url: string | null;
|
|
675
|
+
}
|
|
676
|
+
type RowKind = 'node' | 'loading' | 'no-data';
|
|
677
|
+
interface RowView<T = any> {
|
|
678
|
+
kind: RowKind;
|
|
679
|
+
level: number;
|
|
680
|
+
path: T[];
|
|
681
|
+
node: T;
|
|
682
|
+
trackKey: string | number;
|
|
683
|
+
}
|
|
684
|
+
declare class CommonTreeTableComponent<T = any> implements OnChanges, DoCheck, AfterViewInit, OnDestroy {
|
|
685
|
+
private renderer;
|
|
686
|
+
private zone;
|
|
687
|
+
private cd;
|
|
688
|
+
tableAreaRef: ElementRef<HTMLElement>;
|
|
689
|
+
pinMenu?: ElementRef<HTMLElement>;
|
|
690
|
+
data: T[];
|
|
691
|
+
columns: CatsTreeTableColumn[];
|
|
692
|
+
idField: string;
|
|
693
|
+
labelField: string;
|
|
694
|
+
childrenField: string;
|
|
695
|
+
treeColumnField?: string;
|
|
696
|
+
indentPx: number;
|
|
697
|
+
showHeader: boolean;
|
|
698
|
+
expandIcon: string;
|
|
699
|
+
collapseIcon: string;
|
|
700
|
+
iconBasePath: string;
|
|
701
|
+
showCheckbox: boolean;
|
|
702
|
+
showNodeIcon: boolean;
|
|
703
|
+
noDataText: string;
|
|
704
|
+
loadingText: string;
|
|
705
|
+
emitExpandAlways: boolean;
|
|
706
|
+
sortingRequired: boolean;
|
|
707
|
+
filterRequired: boolean;
|
|
708
|
+
threeDotsMenuRequired: boolean;
|
|
709
|
+
settingsRequired: boolean;
|
|
710
|
+
settingsClicked: boolean;
|
|
711
|
+
checkBoxSelection: boolean;
|
|
712
|
+
checkboxSelectionType: 'multiple' | 'single';
|
|
713
|
+
isExpandable: (node: T, level: number, path: T[]) => boolean;
|
|
714
|
+
rowOptionsResolver: (node: T, level: number, path: T[]) => CatsTreeRowOptions;
|
|
715
|
+
nodeIconResolver: (node: T, level: number, path: T[]) => string | null;
|
|
716
|
+
linkResolver: (node: T, level: number, path: T[]) => string | null;
|
|
717
|
+
nodeToggle: EventEmitter<CatsTreeExpandEvent<T>>;
|
|
718
|
+
selectionChange: EventEmitter<CatsTreeSelectionChangeEvent<T>>;
|
|
719
|
+
linkClick: EventEmitter<CatsTreeLinkClickEvent<T>>;
|
|
720
|
+
onHideSettings: EventEmitter<any>;
|
|
721
|
+
protected rows: RowView<T>[];
|
|
722
|
+
sortingColumnIndex: number | null;
|
|
723
|
+
sortingType: {
|
|
724
|
+
[key: number]: string;
|
|
725
|
+
};
|
|
726
|
+
filteredData: T[];
|
|
727
|
+
originalRowData: T[];
|
|
728
|
+
activeFilters: Map<string, any>;
|
|
729
|
+
appliedFilters: any[];
|
|
730
|
+
menuVisible: boolean[];
|
|
731
|
+
dragOverIndex: number | null;
|
|
732
|
+
draggedIndex: number | null;
|
|
733
|
+
activeFilterIndex: number | null;
|
|
734
|
+
resizingColumnIndex: number | null;
|
|
735
|
+
startX: number;
|
|
736
|
+
startWidth: number;
|
|
737
|
+
isResizing: boolean;
|
|
738
|
+
showMoveIcon: {
|
|
739
|
+
[key: number]: boolean;
|
|
740
|
+
};
|
|
741
|
+
showPin: boolean;
|
|
742
|
+
pinActionClicked: Record<string, string>;
|
|
743
|
+
columnDraggable: boolean[];
|
|
744
|
+
showPageSizeList: boolean;
|
|
745
|
+
activeAll: boolean;
|
|
746
|
+
atLeastOneColumnChecked: boolean;
|
|
747
|
+
selectedRow: T[];
|
|
748
|
+
originalColumns: CatsTreeTableColumn[];
|
|
749
|
+
private removeMouseMove;
|
|
750
|
+
private removeMouseUp;
|
|
751
|
+
private rafId;
|
|
752
|
+
private removeDragOver;
|
|
753
|
+
private removeDrop;
|
|
754
|
+
filterOptions: {
|
|
755
|
+
label: string;
|
|
756
|
+
value: string;
|
|
757
|
+
}[];
|
|
758
|
+
numberFilterOptions: {
|
|
759
|
+
label: string;
|
|
760
|
+
value: string;
|
|
761
|
+
}[];
|
|
762
|
+
private expandedKeys;
|
|
763
|
+
private selectedKeys;
|
|
764
|
+
private fallbackKey;
|
|
765
|
+
private fallbackSeq;
|
|
766
|
+
private resolvedTreeColumnField?;
|
|
767
|
+
constructor(renderer: Renderer2, zone: NgZone, cd: ChangeDetectorRef);
|
|
768
|
+
ngAfterViewInit(): void;
|
|
769
|
+
ngOnDestroy(): void;
|
|
770
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
771
|
+
ngDoCheck(): void;
|
|
772
|
+
protected get treeColumn(): CatsTreeTableColumn;
|
|
773
|
+
/**
|
|
774
|
+
* Initialize column properties for filtering, sorting, and customization
|
|
775
|
+
*/
|
|
776
|
+
private initializeColumns;
|
|
777
|
+
/**
|
|
778
|
+
* Extract unique values from data for set filter
|
|
779
|
+
*/
|
|
780
|
+
private extractUniqueValues;
|
|
781
|
+
/**
|
|
782
|
+
* Sort data based on column and sorting type
|
|
783
|
+
*/
|
|
784
|
+
protected onSortingRowData(sortingColumnIndex: number, col: CatsTreeTableColumn): void;
|
|
785
|
+
/**
|
|
786
|
+
* Sort from the three-dots menu with an explicit direction (matches `cats-data-grid` UX).
|
|
787
|
+
*/
|
|
788
|
+
protected onSort(col: CatsTreeTableColumn, type: string, sortingColumIndex: number): void;
|
|
789
|
+
/**
|
|
790
|
+
* Apply sorting to the row data
|
|
791
|
+
*/
|
|
792
|
+
private applySort;
|
|
793
|
+
/**
|
|
794
|
+
* Apply all active filters
|
|
795
|
+
*/
|
|
796
|
+
applyAllFilters(): void;
|
|
797
|
+
/**
|
|
798
|
+
* Evaluate text filter condition
|
|
799
|
+
*/
|
|
800
|
+
private evaluateTextFilterCondition;
|
|
801
|
+
/**
|
|
802
|
+
* Toggle column filter visibility
|
|
803
|
+
*/
|
|
804
|
+
protected toggleFilter(col: CatsTreeTableColumn, index: number, event: MouseEvent): void;
|
|
805
|
+
/**
|
|
806
|
+
* Reset filter for a column
|
|
807
|
+
*/
|
|
808
|
+
protected resetFilter(col: CatsTreeTableColumn): void;
|
|
809
|
+
/**
|
|
810
|
+
* Start column resize
|
|
811
|
+
*/
|
|
812
|
+
protected startResize(event: MouseEvent, index: number): void;
|
|
813
|
+
/**
|
|
814
|
+
* Handle mouse move during resize
|
|
815
|
+
*/
|
|
816
|
+
private onMouseMove;
|
|
817
|
+
/**
|
|
818
|
+
* Stop column resize
|
|
819
|
+
*/
|
|
820
|
+
private stopResize;
|
|
821
|
+
/**
|
|
822
|
+
* Handle column drag start
|
|
823
|
+
*/
|
|
824
|
+
protected onDragStart(event: DragEvent, index: number): void;
|
|
825
|
+
/**
|
|
826
|
+
* Handle column drag over
|
|
827
|
+
*/
|
|
828
|
+
protected onDragOver(event: DragEvent, index: number): void;
|
|
829
|
+
/**
|
|
830
|
+
* Handle column drop
|
|
831
|
+
*/
|
|
832
|
+
protected onDrop(event: DragEvent, index: number): void;
|
|
833
|
+
/**
|
|
834
|
+
* Handle drag end
|
|
835
|
+
*/
|
|
836
|
+
protected onDragEnd(): void;
|
|
837
|
+
/**
|
|
838
|
+
* Pin column to left or right
|
|
839
|
+
*/
|
|
840
|
+
protected pinColumn(col: CatsTreeTableColumn, index: number, direction: string): void;
|
|
841
|
+
protected showPinActions(event: MouseEvent): void;
|
|
842
|
+
protected hidePinActions(): void;
|
|
843
|
+
/**
|
|
844
|
+
* Update pinned column offsets
|
|
845
|
+
*/
|
|
846
|
+
protected updatePinnedOffsets(): void;
|
|
847
|
+
/**
|
|
848
|
+
* Filter set options based on search text
|
|
849
|
+
*/
|
|
850
|
+
protected filterSetOptions(col: CatsTreeTableColumn, event: any): void;
|
|
851
|
+
/**
|
|
852
|
+
* Toggle set filter option
|
|
853
|
+
*/
|
|
854
|
+
protected toggleSetOption(col: CatsTreeTableColumn, option: any, event: any): void;
|
|
855
|
+
/**
|
|
856
|
+
* Toggle select all in set filter
|
|
857
|
+
*/
|
|
858
|
+
protected toggleSelectAllSetFilter(col: CatsTreeTableColumn, event: any): void;
|
|
859
|
+
/**
|
|
860
|
+
* Get column style
|
|
861
|
+
*/
|
|
862
|
+
protected getStyle(col: CatsTreeTableColumn): any;
|
|
863
|
+
/**
|
|
864
|
+
* Toggle column visibility
|
|
865
|
+
*/
|
|
866
|
+
protected changeActiveColSelection(event: Event, col: CatsTreeTableColumn): void;
|
|
867
|
+
/**
|
|
868
|
+
* Compute minimum table width based on active column widths
|
|
869
|
+
*/
|
|
870
|
+
protected getTableMinWidth(): number;
|
|
871
|
+
/**
|
|
872
|
+
* Select/deselect all columns
|
|
873
|
+
*/
|
|
874
|
+
protected activeAllSelection(event: Event): void;
|
|
875
|
+
/**
|
|
876
|
+
* Hide settings
|
|
877
|
+
*/
|
|
878
|
+
protected hideSettings(): void;
|
|
879
|
+
/**
|
|
880
|
+
* Close all menus
|
|
881
|
+
*/
|
|
882
|
+
protected onClickOutside(): void;
|
|
883
|
+
/**
|
|
884
|
+
* Open column menu
|
|
885
|
+
*/
|
|
886
|
+
protected openMenu(event: MouseEvent, col: CatsTreeTableColumn, index: number): void;
|
|
887
|
+
/**
|
|
888
|
+
* On header checkbox change
|
|
889
|
+
*/
|
|
890
|
+
protected onHeaderCheckboxChange(event: any): void;
|
|
891
|
+
/**
|
|
892
|
+
* On row checkbox change
|
|
893
|
+
*/
|
|
894
|
+
protected onRowCheckboxChange(event: any, node: T): void;
|
|
895
|
+
/**
|
|
896
|
+
* Check if all rows are selected
|
|
897
|
+
*/
|
|
898
|
+
protected checkAllSelected(): boolean;
|
|
899
|
+
/**
|
|
900
|
+
* Check if some rows are selected (indeterminate state)
|
|
901
|
+
*/
|
|
902
|
+
protected checkIndeterminate(): boolean;
|
|
903
|
+
/**
|
|
904
|
+
* Check if row is selected
|
|
905
|
+
*/
|
|
906
|
+
protected isRowSelected(node: T): boolean;
|
|
907
|
+
protected toggle(node: T, level: number, path: T[]): void;
|
|
908
|
+
protected isExpanded(node: T): boolean;
|
|
909
|
+
protected onCheckboxChange(node: T, level: number, path: T[], checked: boolean): void;
|
|
910
|
+
protected isChecked(node: T): boolean;
|
|
911
|
+
protected onLinkClicked(e: MouseEvent, node: T, level: number, path: T[]): void;
|
|
912
|
+
protected resolveIconSrc(icon: string | null): string | null;
|
|
913
|
+
protected getValue(node: T, fieldPath: string): any;
|
|
914
|
+
protected isNodeRow(row: RowView<T>): boolean;
|
|
915
|
+
protected rowOptions(row: RowView<T>): CatsTreeRowOptions;
|
|
916
|
+
protected showToggleFor(row: RowView<T>): boolean;
|
|
917
|
+
protected showCheckboxFor(row: RowView<T>): boolean;
|
|
918
|
+
protected showNodeIconFor(row: RowView<T>): boolean;
|
|
919
|
+
protected showLinkFor(row: RowView<T>): boolean;
|
|
920
|
+
protected isDisabledRow(row: RowView<T>): boolean;
|
|
921
|
+
protected labelFor(row: RowView<T>): any;
|
|
922
|
+
protected toggleIconFor(row: RowView<T>): string;
|
|
923
|
+
protected nodeIconFor(row: RowView<T>): string | null;
|
|
924
|
+
protected linkUrlFor(row: RowView<T>): string | null;
|
|
925
|
+
private getChildren;
|
|
926
|
+
private rebuildRows;
|
|
927
|
+
private walk;
|
|
928
|
+
private getNodeKey;
|
|
929
|
+
private getSelectedNodes;
|
|
930
|
+
/**
|
|
931
|
+
* Autosize column to fit content
|
|
932
|
+
*/
|
|
933
|
+
protected autosizeColumn(col: CatsTreeTableColumn, index: number): void;
|
|
934
|
+
/**
|
|
935
|
+
* Autosize all columns
|
|
936
|
+
*/
|
|
937
|
+
protected autosizeAllColumns(): void;
|
|
938
|
+
/**
|
|
939
|
+
* Group by column
|
|
940
|
+
*/
|
|
941
|
+
protected groupByColumn(col: CatsTreeTableColumn, index: number): void;
|
|
942
|
+
/**
|
|
943
|
+
* Show column chooser
|
|
944
|
+
*/
|
|
945
|
+
protected showColumnChooser(colIdx: number): void;
|
|
946
|
+
/**
|
|
947
|
+
* Reset columns to original state
|
|
948
|
+
*/
|
|
949
|
+
protected resetColumns(): void;
|
|
950
|
+
/**
|
|
951
|
+
* Save column state
|
|
952
|
+
*/
|
|
953
|
+
private saveColumnState;
|
|
954
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CommonTreeTableComponent<any>, never>;
|
|
955
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<CommonTreeTableComponent<any>, "cats-tree-table", never, { "data": { "alias": "data"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "idField": { "alias": "idField"; "required": false; }; "labelField": { "alias": "labelField"; "required": false; }; "childrenField": { "alias": "childrenField"; "required": false; }; "treeColumnField": { "alias": "treeColumnField"; "required": false; }; "indentPx": { "alias": "indentPx"; "required": false; }; "showHeader": { "alias": "showHeader"; "required": false; }; "expandIcon": { "alias": "expandIcon"; "required": false; }; "collapseIcon": { "alias": "collapseIcon"; "required": false; }; "iconBasePath": { "alias": "iconBasePath"; "required": false; }; "showCheckbox": { "alias": "showCheckbox"; "required": false; }; "showNodeIcon": { "alias": "showNodeIcon"; "required": false; }; "noDataText": { "alias": "noDataText"; "required": false; }; "loadingText": { "alias": "loadingText"; "required": false; }; "emitExpandAlways": { "alias": "emitExpandAlways"; "required": false; }; "sortingRequired": { "alias": "sortingRequired"; "required": false; }; "filterRequired": { "alias": "filterRequired"; "required": false; }; "threeDotsMenuRequired": { "alias": "threeDotsMenuRequired"; "required": false; }; "settingsRequired": { "alias": "settingsRequired"; "required": false; }; "settingsClicked": { "alias": "settingsClicked"; "required": false; }; "checkBoxSelection": { "alias": "checkBoxSelection"; "required": false; }; "checkboxSelectionType": { "alias": "checkboxSelectionType"; "required": false; }; "isExpandable": { "alias": "isExpandable"; "required": false; }; "rowOptionsResolver": { "alias": "rowOptionsResolver"; "required": false; }; "nodeIconResolver": { "alias": "nodeIconResolver"; "required": false; }; "linkResolver": { "alias": "linkResolver"; "required": false; }; }, { "nodeToggle": "nodeToggle"; "selectionChange": "selectionChange"; "linkClick": "linkClick"; "onHideSettings": "onHideSettings"; }, never, never, true, never>;
|
|
956
|
+
}
|
|
957
|
+
|
|
958
|
+
export { CatsDataGridComponent, CatsDataGridService, ColDefs, CommonRendererComponent, CommonTreeTableComponent };
|
|
959
|
+
export type { CatsTreeExpandEvent, CatsTreeLinkClickEvent, CatsTreeRowOptions, CatsTreeSelectionChangeEvent, CatsTreeTableColumn, ColumnFilter, FilterCondition, TreeFilterCondition };
|
package/package.json
CHANGED
package/styles/_index.scss
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
|
-
@forward "sass-utils";
|
|
2
|
-
@forward "component";
|
|
3
|
-
@forward "base";
|
|
1
|
+
@forward "sass-utils";
|
|
2
|
+
@forward "component";
|
|
3
|
+
@forward "base";
|
package/styles/base/_fonts.scss
CHANGED
|
@@ -1,74 +1,74 @@
|
|
|
1
|
-
// @use url("https://fonts.googleapis.com/css2?family=Rethink+Sans:ital,wght@0,400..800;1,400..800&display=swap");
|
|
2
|
-
|
|
3
|
-
@use "../sass-utils" as *;
|
|
4
|
-
|
|
5
|
-
:root {
|
|
6
|
-
--fs-6: 6px;
|
|
7
|
-
--fs-12: 12px;
|
|
8
|
-
--fs-14: 14px;
|
|
9
|
-
--fs-16: 16px;
|
|
10
|
-
--fs-18: 18px;
|
|
11
|
-
--fs-20: 20px;
|
|
12
|
-
--fs-24: 24px;
|
|
13
|
-
--fs-28: 28px;
|
|
14
|
-
--fs-30: 30px;
|
|
15
|
-
--fs-32: 32px;
|
|
16
|
-
--fs-42: 42px;
|
|
17
|
-
--fs-48: 48px;
|
|
18
|
-
--img-w: 28px;
|
|
19
|
-
--scale: 1;
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
@include width-range($tablet, $mediumDesktop) {
|
|
23
|
-
:root {
|
|
24
|
-
--scale: 1.5;
|
|
25
|
-
--fs-6: calc(6px / var(--scale));
|
|
26
|
-
--fs-12: calc(12px / var(--scale));
|
|
27
|
-
--fs-14: calc(14px / var(--scale));
|
|
28
|
-
--fs-16: calc(16px / var(--scale));
|
|
29
|
-
--fs-18: calc(18px / var(--scale));
|
|
30
|
-
--fs-20: calc(20px / var(--scale));
|
|
31
|
-
--fs-24: calc(24px / var(--scale));
|
|
32
|
-
--fs-28: calc(28px / var(--scale));
|
|
33
|
-
--fs-30: calc(30px / var(--scale));
|
|
34
|
-
--fs-32: calc(32px / var(--scale));
|
|
35
|
-
--fs-42: calc(42px / var(--scale));
|
|
36
|
-
--fs-48: calc(48px / var(--scale));
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
@include width-range($largeDesktop, $extraLargeDesktop) {
|
|
41
|
-
:root {
|
|
42
|
-
--scale: 1.33;
|
|
43
|
-
--fs-6: calc(6px / var(--scale));
|
|
44
|
-
--fs-12: calc(12px / var(--scale));
|
|
45
|
-
--fs-14: calc(14px / var(--scale));
|
|
46
|
-
--fs-16: calc(16px / var(--scale));
|
|
47
|
-
--fs-18: calc(18px / var(--scale));
|
|
48
|
-
--fs-20: calc(20px / var(--scale));
|
|
49
|
-
--fs-24: calc(24px / var(--scale));
|
|
50
|
-
--fs-28: calc(28px / var(--scale));
|
|
51
|
-
--fs-30: calc(30px / var(--scale));
|
|
52
|
-
--fs-32: calc(32px / var(--scale));
|
|
53
|
-
--fs-42: calc(42px / var(--scale));
|
|
54
|
-
--fs-48: calc(48px / var(--scale));
|
|
55
|
-
}
|
|
56
|
-
}
|
|
57
|
-
|
|
58
|
-
@include width-range($xxlargeDesktop, $ultraWideDesktop) {
|
|
59
|
-
:root {
|
|
60
|
-
--scale: 1.25;
|
|
61
|
-
--fs-6: calc(6px / var(--scale));
|
|
62
|
-
--fs-12: calc(12px / var(--scale));
|
|
63
|
-
--fs-14: calc(14px / var(--scale));
|
|
64
|
-
--fs-16: calc(16px / var(--scale));
|
|
65
|
-
--fs-18: calc(18px / var(--scale));
|
|
66
|
-
--fs-20: calc(20px / var(--scale));
|
|
67
|
-
--fs-24: calc(24px / var(--scale));
|
|
68
|
-
--fs-28: calc(28px / var(--scale));
|
|
69
|
-
--fs-30: calc(30px / var(--scale));
|
|
70
|
-
--fs-32: calc(32px / var(--scale));
|
|
71
|
-
--fs-42: calc(42px / var(--scale));
|
|
72
|
-
--fs-48: calc(48px / var(--scale));
|
|
73
|
-
}
|
|
74
|
-
}
|
|
1
|
+
// @use url("https://fonts.googleapis.com/css2?family=Rethink+Sans:ital,wght@0,400..800;1,400..800&display=swap");
|
|
2
|
+
|
|
3
|
+
@use "../sass-utils" as *;
|
|
4
|
+
|
|
5
|
+
:root {
|
|
6
|
+
--fs-6: 6px;
|
|
7
|
+
--fs-12: 12px;
|
|
8
|
+
--fs-14: 14px;
|
|
9
|
+
--fs-16: 16px;
|
|
10
|
+
--fs-18: 18px;
|
|
11
|
+
--fs-20: 20px;
|
|
12
|
+
--fs-24: 24px;
|
|
13
|
+
--fs-28: 28px;
|
|
14
|
+
--fs-30: 30px;
|
|
15
|
+
--fs-32: 32px;
|
|
16
|
+
--fs-42: 42px;
|
|
17
|
+
--fs-48: 48px;
|
|
18
|
+
--img-w: 28px;
|
|
19
|
+
--scale: 1;
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
@include width-range($tablet, $mediumDesktop) {
|
|
23
|
+
:root {
|
|
24
|
+
--scale: 1.5;
|
|
25
|
+
--fs-6: calc(6px / var(--scale));
|
|
26
|
+
--fs-12: calc(12px / var(--scale));
|
|
27
|
+
--fs-14: calc(14px / var(--scale));
|
|
28
|
+
--fs-16: calc(16px / var(--scale));
|
|
29
|
+
--fs-18: calc(18px / var(--scale));
|
|
30
|
+
--fs-20: calc(20px / var(--scale));
|
|
31
|
+
--fs-24: calc(24px / var(--scale));
|
|
32
|
+
--fs-28: calc(28px / var(--scale));
|
|
33
|
+
--fs-30: calc(30px / var(--scale));
|
|
34
|
+
--fs-32: calc(32px / var(--scale));
|
|
35
|
+
--fs-42: calc(42px / var(--scale));
|
|
36
|
+
--fs-48: calc(48px / var(--scale));
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
@include width-range($largeDesktop, $extraLargeDesktop) {
|
|
41
|
+
:root {
|
|
42
|
+
--scale: 1.33;
|
|
43
|
+
--fs-6: calc(6px / var(--scale));
|
|
44
|
+
--fs-12: calc(12px / var(--scale));
|
|
45
|
+
--fs-14: calc(14px / var(--scale));
|
|
46
|
+
--fs-16: calc(16px / var(--scale));
|
|
47
|
+
--fs-18: calc(18px / var(--scale));
|
|
48
|
+
--fs-20: calc(20px / var(--scale));
|
|
49
|
+
--fs-24: calc(24px / var(--scale));
|
|
50
|
+
--fs-28: calc(28px / var(--scale));
|
|
51
|
+
--fs-30: calc(30px / var(--scale));
|
|
52
|
+
--fs-32: calc(32px / var(--scale));
|
|
53
|
+
--fs-42: calc(42px / var(--scale));
|
|
54
|
+
--fs-48: calc(48px / var(--scale));
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
@include width-range($xxlargeDesktop, $ultraWideDesktop) {
|
|
59
|
+
:root {
|
|
60
|
+
--scale: 1.25;
|
|
61
|
+
--fs-6: calc(6px / var(--scale));
|
|
62
|
+
--fs-12: calc(12px / var(--scale));
|
|
63
|
+
--fs-14: calc(14px / var(--scale));
|
|
64
|
+
--fs-16: calc(16px / var(--scale));
|
|
65
|
+
--fs-18: calc(18px / var(--scale));
|
|
66
|
+
--fs-20: calc(20px / var(--scale));
|
|
67
|
+
--fs-24: calc(24px / var(--scale));
|
|
68
|
+
--fs-28: calc(28px / var(--scale));
|
|
69
|
+
--fs-30: calc(30px / var(--scale));
|
|
70
|
+
--fs-32: calc(32px / var(--scale));
|
|
71
|
+
--fs-42: calc(42px / var(--scale));
|
|
72
|
+
--fs-48: calc(48px / var(--scale));
|
|
73
|
+
}
|
|
74
|
+
}
|