eru-grid 0.0.26 → 0.0.28
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/fesm2022/eru-grid.mjs +733 -242
- package/fesm2022/eru-grid.mjs.map +1 -1
- package/package.json +7 -2
- package/types/eru-grid.d.ts +157 -40
package/package.json
CHANGED
|
@@ -1,9 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "eru-grid",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.28",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^21.1.2",
|
|
6
|
-
"@angular/core": "^21.1.2"
|
|
6
|
+
"@angular/core": "^21.1.2",
|
|
7
|
+
"@angular/cdk": "^21.1.2",
|
|
8
|
+
"@angular/material": "^21.1.2",
|
|
9
|
+
"@angular/forms": "^21.1.2",
|
|
10
|
+
"@angular/router": "^21.1.2",
|
|
11
|
+
"rxjs": "~7.8.0"
|
|
7
12
|
},
|
|
8
13
|
"dependencies": {
|
|
9
14
|
"tslib": "^2.3.0"
|
package/types/eru-grid.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as eru_grid from 'eru-grid';
|
|
2
2
|
import * as _angular_core from '@angular/core';
|
|
3
|
-
import { OnInit, AfterViewInit, OnDestroy, QueryList, ElementRef,
|
|
3
|
+
import { OnInit, AfterViewInit, OnDestroy, QueryList, ElementRef, TemplateRef, EventEmitter, ChangeDetectorRef, Provider } from '@angular/core';
|
|
4
4
|
import { FixedSizeVirtualScrollStrategy, CdkVirtualScrollViewport } from '@angular/cdk/scrolling';
|
|
5
5
|
import { MatDatepicker } from '@angular/material/datepicker';
|
|
6
6
|
|
|
@@ -60,12 +60,18 @@ interface GridFeatures {
|
|
|
60
60
|
freezeField?: string;
|
|
61
61
|
freezeHeader?: boolean;
|
|
62
62
|
freezeGrandTotal?: boolean;
|
|
63
|
+
sortable?: boolean;
|
|
64
|
+
sortBar?: boolean;
|
|
63
65
|
replaceZeroValue?: string;
|
|
64
66
|
gridHeight?: number;
|
|
65
67
|
allowSelection?: boolean;
|
|
66
68
|
actionColumn?: boolean;
|
|
67
69
|
actionColumnPosition?: 'before' | 'after';
|
|
68
70
|
designMode?: boolean;
|
|
71
|
+
groupBar?: boolean;
|
|
72
|
+
headerRowHeight?: number;
|
|
73
|
+
dataRowHeight?: number;
|
|
74
|
+
cursorOnHover?: string;
|
|
69
75
|
}
|
|
70
76
|
interface GridStyles {
|
|
71
77
|
subTotalStyle?: 'bold' | 'italic' | 'highlighted';
|
|
@@ -74,12 +80,16 @@ interface GridStyles {
|
|
|
74
80
|
interface GridTokens {
|
|
75
81
|
[key: string]: string;
|
|
76
82
|
}
|
|
83
|
+
type GridPreset = 'default' | 'modern' | 'compact' | 'bold' | 'financial' | 'elevated' | 'custom';
|
|
84
|
+
declare const PRESET_MANAGED_FIELDS: (keyof GridFeatures)[];
|
|
85
|
+
declare const PRESET_CONFIG_DEFAULTS: Record<Exclude<GridPreset, 'custom'>, Partial<GridFeatures>>;
|
|
77
86
|
interface GridConfiguration {
|
|
78
87
|
mode: GridMode;
|
|
79
88
|
config: GridFeatures;
|
|
80
89
|
fields: Field[];
|
|
81
90
|
styles?: GridStyles;
|
|
82
91
|
tokens?: GridTokens;
|
|
92
|
+
preset?: GridPreset;
|
|
83
93
|
pivot?: PivotConfiguration;
|
|
84
94
|
data?: any[];
|
|
85
95
|
columnConstraints?: {
|
|
@@ -110,6 +120,8 @@ interface Field {
|
|
|
110
120
|
num_val?: number;
|
|
111
121
|
num_val_check?: 'MAX' | 'MIN';
|
|
112
122
|
seperator?: 'thousands' | 'millions' | 'none';
|
|
123
|
+
dynamic_number?: boolean;
|
|
124
|
+
display_number_as?: 'lacs' | 'mn';
|
|
113
125
|
isLeaf?: boolean;
|
|
114
126
|
parentPath?: string[];
|
|
115
127
|
children?: Field[];
|
|
@@ -119,6 +131,8 @@ interface Field {
|
|
|
119
131
|
showSubtotals?: boolean;
|
|
120
132
|
aggregationFunction?: AggregationFunction;
|
|
121
133
|
enableDrilldown?: boolean;
|
|
134
|
+
open_status?: any[];
|
|
135
|
+
close_status?: any[];
|
|
122
136
|
}
|
|
123
137
|
type DataTypes = 'number' | 'textbox' | 'currency' | 'date' | 'datetime' | 'duration' | 'dropdown_single_select' | 'dropdown_multi_select' | 'location' | 'email' | 'people' | 'checkbox' | 'phone' | 'priority' | 'status' | 'progress' | 'attachment' | 'tag' | 'rating' | 'website';
|
|
124
138
|
type AggregationFunction = 'sum' | 'count' | 'avg' | 'min' | 'max';
|
|
@@ -228,6 +242,23 @@ interface CellValueChange {
|
|
|
228
242
|
rowId: string;
|
|
229
243
|
row: any;
|
|
230
244
|
}
|
|
245
|
+
/**
|
|
246
|
+
* Template context injected into a custom boardCardTemplate on EruGridComponent.
|
|
247
|
+
*
|
|
248
|
+
* Usage in a consumer app:
|
|
249
|
+
* <ng-template #myCard let-row let-columns="columns" let-group="group">
|
|
250
|
+
* <mat-card>{{ row?.entity_id }} — {{ group.title }}</mat-card>
|
|
251
|
+
* </ng-template>
|
|
252
|
+
* <eru-grid [boardCardTemplate]="myCard" [gridConfig]="cfg"></eru-grid>
|
|
253
|
+
*/
|
|
254
|
+
interface BoardCardContext {
|
|
255
|
+
/** Row data for this card ($implicit — bind with let-row) */
|
|
256
|
+
$implicit: Row;
|
|
257
|
+
/** Visible columns configured for the board view */
|
|
258
|
+
columns: Field[];
|
|
259
|
+
/** The Kanban column (group) this card belongs to */
|
|
260
|
+
group: RowGroup;
|
|
261
|
+
}
|
|
231
262
|
|
|
232
263
|
declare class PivotTransformService {
|
|
233
264
|
private columnGroupState;
|
|
@@ -522,12 +553,18 @@ declare class EruGridStore {
|
|
|
522
553
|
private readonly _columnResize;
|
|
523
554
|
private readonly _columnReorder;
|
|
524
555
|
private readonly _cellValueChange;
|
|
556
|
+
private readonly _sortColumns;
|
|
525
557
|
private readonly _dataRequest;
|
|
526
558
|
private readonly _requestQueue;
|
|
527
559
|
readonly columns: _angular_core.Signal<Field[]>;
|
|
528
560
|
readonly groups: _angular_core.Signal<RowGroup[]>;
|
|
529
561
|
readonly rows: _angular_core.Signal<Row[]>;
|
|
530
562
|
readonly groupRows: _angular_core.Signal<Map<string, Row[]>>;
|
|
563
|
+
/** Reactive summary: array of { groupId, count } for each group currently in the store. */
|
|
564
|
+
readonly groupRowsSummary: _angular_core.Signal<{
|
|
565
|
+
groupId: string;
|
|
566
|
+
count: number;
|
|
567
|
+
}[]>;
|
|
531
568
|
readonly selectedRowIds: _angular_core.Signal<Set<string>>;
|
|
532
569
|
readonly configuration: _angular_core.Signal<GridConfiguration>;
|
|
533
570
|
readonly isLoading: _angular_core.Signal<boolean>;
|
|
@@ -542,6 +579,7 @@ declare class EruGridStore {
|
|
|
542
579
|
readonly columnResize: _angular_core.Signal<ColumnResize | null>;
|
|
543
580
|
readonly columnReorder: _angular_core.Signal<ColumnReorder | null>;
|
|
544
581
|
readonly cellValueChange: _angular_core.Signal<CellValueChange | null>;
|
|
582
|
+
readonly sortColumns: _angular_core.Signal<string[]>;
|
|
545
583
|
readonly dataRequest: _angular_core.Signal<RowDataRequest | null>;
|
|
546
584
|
readonly dynamicDataRequest: _angular_core.Signal<string[] | null>;
|
|
547
585
|
readonly dynamicData: _angular_core.Signal<Map<string, any> | null>;
|
|
@@ -611,7 +649,7 @@ declare class EruGridStore {
|
|
|
611
649
|
setError(error: string | null): void;
|
|
612
650
|
isRowSelected(rowId: string): boolean;
|
|
613
651
|
isGroupSelected(groupId: string): boolean;
|
|
614
|
-
getRowsForGroup(groupId: string): Row[];
|
|
652
|
+
getRowsForGroup(groupId: string | null | undefined): Row[];
|
|
615
653
|
setGridMode(mode: GridMode): void;
|
|
616
654
|
updateGridConfiguration(updates: Partial<GridConfiguration>): void;
|
|
617
655
|
setPivotConfiguration(pivotConfig: PivotConfiguration): void;
|
|
@@ -706,6 +744,28 @@ declare class EruGridStore {
|
|
|
706
744
|
* Get the row grand total for table mode
|
|
707
745
|
*/
|
|
708
746
|
getRowGrandTotal(): RowGrandTotal | null;
|
|
747
|
+
/**
|
|
748
|
+
* Set sort direction for a column.
|
|
749
|
+
* If the column already has the requested direction, it is removed (toggle off).
|
|
750
|
+
* Otherwise, any existing sort on that column is replaced with the new direction.
|
|
751
|
+
*/
|
|
752
|
+
setSortDirection(fieldName: string, direction: 'asc' | 'desc'): void;
|
|
753
|
+
/**
|
|
754
|
+
* Get the field name used for grouping, or null if no grouping
|
|
755
|
+
*/
|
|
756
|
+
getGroupByField(): string | null;
|
|
757
|
+
/**
|
|
758
|
+
* Clear all sort columns
|
|
759
|
+
*/
|
|
760
|
+
clearSort(): void;
|
|
761
|
+
/**
|
|
762
|
+
* Get the sort direction for a specific field: 'asc' | 'desc' | null
|
|
763
|
+
*/
|
|
764
|
+
getSortDirection(fieldName: string): 'asc' | 'desc' | null;
|
|
765
|
+
/**
|
|
766
|
+
* Get the sort priority (1-based) for a field, or null if not sorted
|
|
767
|
+
*/
|
|
768
|
+
getSortPriority(fieldName: string): number | null;
|
|
709
769
|
/**
|
|
710
770
|
* Set the dynamic data request
|
|
711
771
|
*/
|
|
@@ -779,6 +839,9 @@ declare class EruGridService {
|
|
|
779
839
|
private eruGridStore;
|
|
780
840
|
private themeService;
|
|
781
841
|
private columnConstraintsService;
|
|
842
|
+
private _loadBoardFn;
|
|
843
|
+
/** Called once by EruGridComponent to register its loadBoardAll trigger. */
|
|
844
|
+
registerLoadBoard(fn: () => void): void;
|
|
782
845
|
constructor(eruGridStore: EruGridStore, themeService: ThemeService, columnConstraintsService: ColumnConstraintsService);
|
|
783
846
|
set_table_configuration(data: GridConfiguration): void;
|
|
784
847
|
get columns(): _angular_core.Signal<Field[]>;
|
|
@@ -825,6 +888,7 @@ declare class EruGridService {
|
|
|
825
888
|
get configuration(): _angular_core.Signal<GridConfiguration>;
|
|
826
889
|
get isLoading(): _angular_core.Signal<boolean>;
|
|
827
890
|
get error(): _angular_core.Signal<string | null>;
|
|
891
|
+
get sortColumns(): _angular_core.Signal<string[]>;
|
|
828
892
|
/**
|
|
829
893
|
* Check if a specific feature is enabled
|
|
830
894
|
*/
|
|
@@ -855,6 +919,8 @@ declare class EruGridComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
855
919
|
gridService: EruGridService;
|
|
856
920
|
gridStore: EruGridStore;
|
|
857
921
|
private elementRef;
|
|
922
|
+
private breakpointObserver;
|
|
923
|
+
readonly isSmViewport: _angular_core.WritableSignal<boolean>;
|
|
858
924
|
private containerHeight;
|
|
859
925
|
private resizeObserver;
|
|
860
926
|
private groupIntersectionObserver;
|
|
@@ -866,6 +932,42 @@ declare class EruGridComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
866
932
|
headerScrollers?: QueryList<ElementRef<HTMLDivElement>>;
|
|
867
933
|
gtScroller: ElementRef<HTMLDivElement>;
|
|
868
934
|
gridConfig: GridConfiguration | undefined;
|
|
935
|
+
/**
|
|
936
|
+
* Optional custom template for board-mode cards.
|
|
937
|
+
* When provided, EruGridComponent renders this template for each card instead of the built-in card.
|
|
938
|
+
* The shared EruGridStore is used regardless — state (rows, groups, selection) is preserved
|
|
939
|
+
* across table / pivot / board mode switches.
|
|
940
|
+
*
|
|
941
|
+
* Template context: BoardCardContext
|
|
942
|
+
* - $implicit → Row (bind with let-row)
|
|
943
|
+
* - columns → Field[] (bind with let-columns="columns")
|
|
944
|
+
* - group → RowGroup (bind with let-group="group")
|
|
945
|
+
*
|
|
946
|
+
* Example:
|
|
947
|
+
* <ng-template #myCard let-row let-columns="columns" let-group="group">
|
|
948
|
+
* <mat-card>{{ row?.entity_id }} in {{ group.title }}</mat-card>
|
|
949
|
+
* </ng-template>
|
|
950
|
+
* <eru-grid [boardCardTemplate]="myCard" [gridConfig]="cfg"></eru-grid>
|
|
951
|
+
*/
|
|
952
|
+
boardCardTemplate?: TemplateRef<BoardCardContext>;
|
|
953
|
+
/**
|
|
954
|
+
* Height in pixels of each board card slot.
|
|
955
|
+
* Must match the fixed height of the card rendered by boardCardTemplate (or the default card).
|
|
956
|
+
* CDK virtual scroll uses this to position items — mismatches cause overlap or gaps.
|
|
957
|
+
* Default: 208 (matches the built-in default card height).
|
|
958
|
+
*/
|
|
959
|
+
boardCardHeight: number;
|
|
960
|
+
/**
|
|
961
|
+
* Fires when a user clicks a row (table mode) or card (board mode).
|
|
962
|
+
* Consumers can subscribe to drive navigation, side-panel detail views,
|
|
963
|
+
* or trigger configured studio actions on row selection.
|
|
964
|
+
*/
|
|
965
|
+
rowSelect: EventEmitter<{
|
|
966
|
+
row: Row;
|
|
967
|
+
mode: "table" | "board";
|
|
968
|
+
group?: RowGroup;
|
|
969
|
+
}>;
|
|
970
|
+
emitRowSelect(row: Row, mode: 'table' | 'board', group?: RowGroup): void;
|
|
869
971
|
initialMinHeight: number;
|
|
870
972
|
initialTotalWidth: number;
|
|
871
973
|
viewport: CdkVirtualScrollViewport;
|
|
@@ -882,6 +984,7 @@ declare class EruGridComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
882
984
|
currentPivotScrollIndex: _angular_core.WritableSignal<number>;
|
|
883
985
|
firstDataRowIndex: _angular_core.WritableSignal<number>;
|
|
884
986
|
private ngZone;
|
|
987
|
+
private rowSignalsCache;
|
|
885
988
|
groupContentHeightsMap: _angular_core.Signal<Map<string, number>>;
|
|
886
989
|
private _virtualRowspanCache;
|
|
887
990
|
mode: _angular_core.Signal<eru_grid.GridMode>;
|
|
@@ -893,6 +996,12 @@ declare class EruGridComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
893
996
|
maxDepth: _angular_core.Signal<number>;
|
|
894
997
|
subTotalStyle: _angular_core.Signal<"bold" | "italic" | "highlighted">;
|
|
895
998
|
grandTotalStyle: _angular_core.Signal<"bold" | "italic" | "highlighted">;
|
|
999
|
+
isSortable: _angular_core.Signal<boolean>;
|
|
1000
|
+
showSortBar: _angular_core.Signal<boolean>;
|
|
1001
|
+
showGroupBar: _angular_core.Signal<boolean>;
|
|
1002
|
+
headerRowHeight: _angular_core.Signal<number>;
|
|
1003
|
+
dataRowHeight: _angular_core.Signal<number>;
|
|
1004
|
+
cursorOnHover: _angular_core.Signal<string>;
|
|
896
1005
|
freezeHeader: _angular_core.Signal<boolean>;
|
|
897
1006
|
freezeGrandTotal: _angular_core.Signal<boolean>;
|
|
898
1007
|
grandTotalPosition: _angular_core.Signal<"before" | "after">;
|
|
@@ -1002,7 +1111,7 @@ declare class EruGridComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1002
1111
|
trackByRowFn(index: number, row: any): string;
|
|
1003
1112
|
trackByGroupFn(index: number, group: RowGroup): string;
|
|
1004
1113
|
getRowsForGroup(groupId: string): Row[];
|
|
1005
|
-
getRowsForGroupSignal(groupId: string):
|
|
1114
|
+
getRowsForGroupSignal(groupId: string | null | undefined): any;
|
|
1006
1115
|
trackByHeaderFn(index: number, header: any): string;
|
|
1007
1116
|
hasNestedHeaders(): boolean;
|
|
1008
1117
|
getHeaderRows(): any[][];
|
|
@@ -1018,6 +1127,24 @@ declare class EruGridComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1018
1127
|
toggleRowSelection(event: Event, row: any): void;
|
|
1019
1128
|
toggleGroupSelection(event: Event, groupId: string): void;
|
|
1020
1129
|
onActionClick(event: Event, row: any): void;
|
|
1130
|
+
onSortColumn(event: Event, column: Field, direction: 'asc' | 'desc'): void;
|
|
1131
|
+
getSortDirection(fieldName: string): 'asc' | 'desc' | null;
|
|
1132
|
+
getSortPriority(fieldName: string): number | null;
|
|
1133
|
+
/** Get column label from a sort entry (field name or -fieldName) */
|
|
1134
|
+
getColumnLabel(entry: string): string;
|
|
1135
|
+
/** Extract field name from sort entry */
|
|
1136
|
+
getFieldName(entry: string): string;
|
|
1137
|
+
/** Toggle direction of an existing sort chip (asc ↔ desc) */
|
|
1138
|
+
onBoardSortChipToggle(event: Event, entry: string): void;
|
|
1139
|
+
/** Remove a sort chip */
|
|
1140
|
+
onBoardSortChipRemove(event: Event, entry: string): void;
|
|
1141
|
+
/** Add a field from dropdown — defaults to asc */
|
|
1142
|
+
onBoardSortFieldSelect(column: Field): void;
|
|
1143
|
+
onBoardSortClear(): void;
|
|
1144
|
+
/** Get the field name used for grouping */
|
|
1145
|
+
groupByField: _angular_core.Signal<string | null>;
|
|
1146
|
+
/** Toggle sort direction on the group field (asc ↔ desc, never remove) */
|
|
1147
|
+
onGroupSortToggle(event: Event, direction: 'asc' | 'desc'): void;
|
|
1021
1148
|
/**
|
|
1022
1149
|
* Check if action column is enabled
|
|
1023
1150
|
* @returns true if actionColumn is enabled, false otherwise (default: false)
|
|
@@ -1144,11 +1271,19 @@ declare class EruGridComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
1144
1271
|
readonly BOARD_CARD_ITEM_HEIGHT = 208;
|
|
1145
1272
|
readonly isBoardMode: _angular_core.Signal<boolean>;
|
|
1146
1273
|
readonly visibleBoardFields: _angular_core.Signal<Field[]>;
|
|
1274
|
+
readonly visibleColumns: _angular_core.Signal<Field[]>;
|
|
1275
|
+
readonly hiddenColumns: _angular_core.Signal<Field[]>;
|
|
1276
|
+
readonly hasHiddenColumns: _angular_core.Signal<boolean>;
|
|
1277
|
+
readonly expandedRows: _angular_core.WritableSignal<Set<string>>;
|
|
1278
|
+
rowExpandKey(row: any, index: number): string;
|
|
1279
|
+
isRowExpanded(row: any, index: number): boolean;
|
|
1280
|
+
toggleRowExpand(row: any, index: number, event?: Event): void;
|
|
1281
|
+
rowDetailColspan(): number;
|
|
1147
1282
|
onBoardScrolledIndexChange(firstVisibleIndex: number, group: RowGroup): void;
|
|
1148
1283
|
requestBoardRowsForGroup(group: RowGroup): void;
|
|
1149
1284
|
loadBoardAll(): void;
|
|
1150
1285
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<EruGridComponent, never>;
|
|
1151
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EruGridComponent, "eru-grid", never, { "gridConfig": { "alias": "gridConfig"; "required": false; }; }, {}, never, never, true, never>;
|
|
1286
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<EruGridComponent, "eru-grid", never, { "gridConfig": { "alias": "gridConfig"; "required": false; }; "boardCardTemplate": { "alias": "boardCardTemplate"; "required": false; }; "boardCardHeight": { "alias": "boardCardHeight"; "required": false; }; }, { "rowSelect": "rowSelect"; }, never, never, true, never>;
|
|
1152
1287
|
}
|
|
1153
1288
|
interface GroupItem {
|
|
1154
1289
|
type: 'header' | 'row' | 'table-header' | 'row-place-holder' | 'ghost-loading';
|
|
@@ -1176,6 +1311,8 @@ declare class AttachmentComponent implements OnInit {
|
|
|
1176
1311
|
isActive: _angular_core.InputSignal<boolean>;
|
|
1177
1312
|
isDrillable: _angular_core.InputSignal<boolean>;
|
|
1178
1313
|
columnWidth: _angular_core.InputSignal<number>;
|
|
1314
|
+
eruGridStore: _angular_core.InputSignal<EruGridStore | null>;
|
|
1315
|
+
private pendingViewRequests;
|
|
1179
1316
|
valueChange: EventEmitter<string[] | null>;
|
|
1180
1317
|
blur: EventEmitter<string[] | null>;
|
|
1181
1318
|
focus: EventEmitter<void>;
|
|
@@ -1208,11 +1345,12 @@ declare class AttachmentComponent implements OnInit {
|
|
|
1208
1345
|
processFile(file: File): void;
|
|
1209
1346
|
uploadFile(base64String: string, fileName: string): void;
|
|
1210
1347
|
viewFile(file: string, event?: Event): void;
|
|
1348
|
+
private openBase64InNewTab;
|
|
1211
1349
|
deleteFile(file: string, event?: Event): void;
|
|
1212
1350
|
trackByFile(index: number, file: string): string;
|
|
1213
1351
|
getFileName(file: string): string;
|
|
1214
1352
|
static ɵfac: _angular_core.ɵɵFactoryDeclaration<AttachmentComponent, never>;
|
|
1215
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AttachmentComponent, "eru-attachment", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "isEditable": { "alias": "isEditable"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "isDrillable": { "alias": "isDrillable"; "required": false; "isSignal": true; }; "columnWidth": { "alias": "columnWidth"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "blur": "blur"; "focus": "focus"; "drilldownClick": "drilldownClick"; "editModeChange": "editModeChange"; "fileAdded": "fileAdded"; "fileDeleted": "fileDeleted"; "fileViewed": "fileViewed"; }, never, never, true, never>;
|
|
1353
|
+
static ɵcmp: _angular_core.ɵɵComponentDeclaration<AttachmentComponent, "eru-attachment", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "isEditable": { "alias": "isEditable"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "isDrillable": { "alias": "isDrillable"; "required": false; "isSignal": true; }; "columnWidth": { "alias": "columnWidth"; "required": false; "isSignal": true; }; "eruGridStore": { "alias": "eruGridStore"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "blur": "blur"; "focus": "focus"; "drilldownClick": "drilldownClick"; "editModeChange": "editModeChange"; "fileAdded": "fileAdded"; "fileDeleted": "fileDeleted"; "fileViewed": "fileViewed"; }, never, never, true, never>;
|
|
1216
1354
|
}
|
|
1217
1355
|
|
|
1218
1356
|
declare class CheckboxComponent {
|
|
@@ -1801,6 +1939,18 @@ declare class StatusComponent implements OnInit {
|
|
|
1801
1939
|
editModeChange: EventEmitter<boolean>;
|
|
1802
1940
|
currentValue: _angular_core.WritableSignal<string | null>;
|
|
1803
1941
|
searchText: _angular_core.WritableSignal<string>;
|
|
1942
|
+
groupedOptions: _angular_core.Signal<{
|
|
1943
|
+
open: {
|
|
1944
|
+
value: any;
|
|
1945
|
+
label: any;
|
|
1946
|
+
color: any;
|
|
1947
|
+
}[];
|
|
1948
|
+
close: {
|
|
1949
|
+
value: any;
|
|
1950
|
+
label: any;
|
|
1951
|
+
color: any;
|
|
1952
|
+
}[];
|
|
1953
|
+
}>;
|
|
1804
1954
|
filteredOptions: _angular_core.Signal<{
|
|
1805
1955
|
value: any;
|
|
1806
1956
|
label: any;
|
|
@@ -2037,39 +2187,6 @@ declare class WebsiteComponent implements OnInit {
|
|
|
2037
2187
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<WebsiteComponent, "eru-website", never, { "value": { "alias": "value"; "required": false; "isSignal": true; }; "config": { "alias": "config"; "required": false; "isSignal": true; }; "isEditable": { "alias": "isEditable"; "required": false; "isSignal": true; }; "isActive": { "alias": "isActive"; "required": false; "isSignal": true; }; "isDrillable": { "alias": "isDrillable"; "required": false; "isSignal": true; }; "columnWidth": { "alias": "columnWidth"; "required": false; "isSignal": true; }; "fieldSize": { "alias": "fieldSize"; "required": false; "isSignal": true; }; "eruGridStore": { "alias": "eruGridStore"; "required": false; "isSignal": true; }; "externalError": { "alias": "externalError"; "required": false; "isSignal": true; }; }, { "valueChange": "valueChange"; "blur": "blur"; "focus": "focus"; "drilldownClick": "drilldownClick"; "validationError": "validationError"; "editModeChange": "editModeChange"; }, never, never, true, never>;
|
|
2038
2188
|
}
|
|
2039
2189
|
|
|
2040
|
-
/** Height of each card item (card + bottom padding) — must match CSS .card-container height */
|
|
2041
|
-
declare const BOARD_CARD_ITEM_HEIGHT = 208;
|
|
2042
|
-
declare class BoardViewComponent implements OnInit, AfterViewInit {
|
|
2043
|
-
gridStore: EruGridStore;
|
|
2044
|
-
/** Pixel height of each card item, used by cdk-virtual-scroll-viewport [itemSize] */
|
|
2045
|
-
readonly cardItemHeight = 208;
|
|
2046
|
-
set gridConfig(config: any);
|
|
2047
|
-
groups: Signal<RowGroup[]>;
|
|
2048
|
-
columns: Signal<Field[]>;
|
|
2049
|
-
visibleFields: Signal<Field[]>;
|
|
2050
|
-
set_table_group(data: RowGroup[]): void;
|
|
2051
|
-
setRowGrandTotal(grandTotal: any): void;
|
|
2052
|
-
ngOnInit(): void;
|
|
2053
|
-
ngAfterViewInit(): void;
|
|
2054
|
-
private groupRowsSignals;
|
|
2055
|
-
getRowsForGroupSignal(groupId: string): Signal<Row[]>;
|
|
2056
|
-
trackByRowFn(index: number, row: Row): string;
|
|
2057
|
-
/**
|
|
2058
|
-
* CDK virtual scroll pagination trigger.
|
|
2059
|
-
* Fired whenever the first visible item index changes.
|
|
2060
|
-
* Loads the next page when the user scrolls within `threshold` items of the end.
|
|
2061
|
-
*/
|
|
2062
|
-
onScrolledIndexChange(firstVisibleIndex: number, group: RowGroup): void;
|
|
2063
|
-
onBoardScroll(_event: Event): void;
|
|
2064
|
-
loadMoreAll(): void;
|
|
2065
|
-
requestRowsForGroup(group: RowGroup): void;
|
|
2066
|
-
addRowsForGroup(groupId: string, rows: Row[], hasMore: boolean): void;
|
|
2067
|
-
onCardClick(_row: Row): void;
|
|
2068
|
-
onActionClick(event: Event, row: Row): void;
|
|
2069
|
-
static ɵfac: _angular_core.ɵɵFactoryDeclaration<BoardViewComponent, never>;
|
|
2070
|
-
static ɵcmp: _angular_core.ɵɵComponentDeclaration<BoardViewComponent, "board-view", never, { "gridConfig": { "alias": "gridConfig"; "required": false; }; }, {}, never, never, true, never>;
|
|
2071
|
-
}
|
|
2072
|
-
|
|
2073
2190
|
declare class ThemeToggleComponent {
|
|
2074
2191
|
private themeService;
|
|
2075
2192
|
availableThemes: {
|
|
@@ -2085,5 +2202,5 @@ declare class ThemeToggleComponent {
|
|
|
2085
2202
|
static ɵcmp: _angular_core.ɵɵComponentDeclaration<ThemeToggleComponent, "eru-theme-toggle", never, {}, {}, never, never, true, never>;
|
|
2086
2203
|
}
|
|
2087
2204
|
|
|
2088
|
-
export { AttachmentComponent,
|
|
2089
|
-
export type { ActionClick, AggregationFunction, AttachmentConfig, CellValueChange, ColumnReorder, ColumnResize, ColumnWidthConstraints, CurrencyValidationResult, DataTypes, Drilldown, DurationValue, EmailValidationResult, Field, GridConfiguration, GridFeatures, GridMode, GridStyles, GridTokens, GroupItem$1 as GroupItem, LocationConfig, LocationValidationResult, NumberValidationResult, PeopleOption, PivotColumnGroupState, PivotColumnHeader, PivotConfiguration, PivotHeaderStructure, PivotMetadata, PivotResult, PivotRow, RatingConfig, Row, RowDataRequest, RowDataResponse, RowGrandTotal, RowGroup, TextareaValidationResult, TextboxValidationResult, Theme, WebsiteValidationResult };
|
|
2205
|
+
export { AttachmentComponent, CheckboxComponent, ColumnConstraintsService, CurrencyComponent, CustomVirtualScrollStrategy, DateComponent, DatetimeComponent, DurationComponent, EmailComponent, EruGridComponent, EruGridService, EruGridStore, LocationComponent, MATERIAL_MODULES, MATERIAL_PROVIDERS, NumberComponent, PRESET_CONFIG_DEFAULTS, PRESET_MANAGED_FIELDS, PeopleComponent, PhoneComponent, PriorityComponent, ProgressComponent, RatingComponent, SelectComponent, StatusComponent, TagComponent, TextareaComponent, TextboxComponent, ThemeService, ThemeToggleComponent, WebsiteComponent };
|
|
2206
|
+
export type { ActionClick, AggregationFunction, AttachmentConfig, BoardCardContext, CellValueChange, ColumnReorder, ColumnResize, ColumnWidthConstraints, CurrencyValidationResult, DataTypes, Drilldown, DurationValue, EmailValidationResult, Field, GridConfiguration, GridFeatures, GridMode, GridPreset, GridStyles, GridTokens, GroupItem$1 as GroupItem, LocationConfig, LocationValidationResult, NumberValidationResult, PeopleOption, PivotColumnGroupState, PivotColumnHeader, PivotConfiguration, PivotHeaderStructure, PivotMetadata, PivotResult, PivotRow, RatingConfig, Row, RowDataRequest, RowDataResponse, RowGrandTotal, RowGroup, TextareaValidationResult, TextboxValidationResult, Theme, WebsiteValidationResult };
|