ms-data-grid 0.0.127 → 0.0.129
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/esm2022/lib/data-grid/data-grid.component.mjs +334 -791
- package/esm2022/lib/directives/cell-render-init.directive.mjs +8 -28
- package/fesm2022/ms-data-grid.mjs +412 -1030
- package/fesm2022/ms-data-grid.mjs.map +1 -1
- package/lib/data-grid/data-grid.component.d.ts +30 -87
- package/lib/directives/cell-render-init.directive.d.ts +3 -7
- package/package.json +1 -1
- package/esm2022/lib/services/row-action.service.mjs +0 -145
- package/lib/services/row-action.service.d.ts +0 -21
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import { OnInit, OnChanges, SimpleChanges, ElementRef, AfterViewInit, ChangeDetectorRef, EventEmitter, NgZone, Renderer2, AfterViewChecked, TemplateRef, QueryList, Injector } from '@angular/core';
|
|
2
2
|
import { SplitColumnsService } from '../services/split-columns.service';
|
|
3
|
-
import { RowActionService } from '../services/row-action.service';
|
|
4
3
|
import { CommonService } from '../services/common.service';
|
|
5
4
|
import { CdkDrag, CdkDragDrop, CdkDragEnter, CdkDragExit, CdkDragMove, CdkDragSortEvent } from '@angular/cdk/drag-drop';
|
|
6
5
|
import { CdkDropList } from '@angular/cdk/drag-drop';
|
|
@@ -10,8 +9,16 @@ import { ExportService } from '../services/export.service';
|
|
|
10
9
|
import { CellHostDirective } from '../directives/cellHost.directive';
|
|
11
10
|
import { DatePipe } from '@angular/common';
|
|
12
11
|
import { FormatCurrencyPipe } from '../pipes/format-currency.pipe';
|
|
13
|
-
import 'bootstrap/dist/js/bootstrap.bundle.min.js';
|
|
14
12
|
import * as i0 from "@angular/core";
|
|
13
|
+
export declare enum RowAnimationType {
|
|
14
|
+
None = "none",
|
|
15
|
+
Spread = "spreadAnimation",
|
|
16
|
+
Bounce = "bounceAnimation",
|
|
17
|
+
SlideUp = "slideUpFromBottom",
|
|
18
|
+
Flip = "flipAnimation",
|
|
19
|
+
Skew = "skewAnimation",
|
|
20
|
+
SlideRight = "slideFromRight"
|
|
21
|
+
}
|
|
15
22
|
export interface DataGridConfig {
|
|
16
23
|
fontFaimly: string;
|
|
17
24
|
bodyTextFontsSize: number;
|
|
@@ -25,15 +32,6 @@ export interface DataGridConfig {
|
|
|
25
32
|
rowShadingEnabled: boolean;
|
|
26
33
|
activeFilters: boolean;
|
|
27
34
|
}
|
|
28
|
-
export declare enum RowAnimationType {
|
|
29
|
-
None = "none",
|
|
30
|
-
Spread = "spreadAnimation",
|
|
31
|
-
Bounce = "bounceAnimation",
|
|
32
|
-
SlideUp = "slideUpFromBottom",
|
|
33
|
-
Flip = "flipAnimation",
|
|
34
|
-
Skew = "skewAnimation",
|
|
35
|
-
SlideRight = "slideFromRight"
|
|
36
|
-
}
|
|
37
35
|
export declare const sortingAnimation: import("@angular/animations").AnimationTriggerMetadata;
|
|
38
36
|
export declare class DataGridComponent implements OnChanges, AfterViewInit, OnInit, AfterViewChecked {
|
|
39
37
|
private columnService;
|
|
@@ -47,7 +45,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
47
45
|
private exportService;
|
|
48
46
|
private datePipe;
|
|
49
47
|
private formatCurrency;
|
|
50
|
-
private actionValidator;
|
|
51
48
|
rowAnimation: RowAnimationType;
|
|
52
49
|
paginationConfig: any;
|
|
53
50
|
dataSet: any[];
|
|
@@ -95,7 +92,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
95
92
|
tableSearch: string;
|
|
96
93
|
actions: any[];
|
|
97
94
|
config: any;
|
|
98
|
-
selectedTab: string;
|
|
99
95
|
showTaskbar: boolean;
|
|
100
96
|
tableName: boolean;
|
|
101
97
|
listingType: string | boolean;
|
|
@@ -119,8 +115,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
119
115
|
nestedTablerowFontsize: number;
|
|
120
116
|
nestedTableHeaderRowHeight: number;
|
|
121
117
|
nestedTablerowHeight: number;
|
|
122
|
-
packageData: boolean;
|
|
123
|
-
showUnLink: any;
|
|
124
118
|
gridType: string;
|
|
125
119
|
currencySymbol: string;
|
|
126
120
|
currencyFormat: string;
|
|
@@ -145,11 +139,12 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
145
139
|
enableCut: boolean;
|
|
146
140
|
tabs: string[];
|
|
147
141
|
showCheckboxes: boolean;
|
|
148
|
-
|
|
142
|
+
consumerFont: string | null;
|
|
143
|
+
defaultConfig: DataGridConfig | null;
|
|
149
144
|
resetAllFilters: {
|
|
150
145
|
resetAll: boolean;
|
|
151
146
|
};
|
|
152
|
-
|
|
147
|
+
pageSizeOptions: number[];
|
|
153
148
|
columnThreedotsMunuConfig: {
|
|
154
149
|
showPinleft: boolean;
|
|
155
150
|
showPinright: boolean;
|
|
@@ -162,8 +157,8 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
162
157
|
showChoseColumns: boolean;
|
|
163
158
|
showResetColumns: boolean;
|
|
164
159
|
};
|
|
165
|
-
validateIcon: boolean;
|
|
166
160
|
cellHosts: QueryList<CellHostDirective>;
|
|
161
|
+
globalSearchInput: ElementRef<HTMLInputElement>;
|
|
167
162
|
changeLayout: EventEmitter<any>;
|
|
168
163
|
customCellEvent: EventEmitter<any>;
|
|
169
164
|
filterOptions: EventEmitter<any>;
|
|
@@ -171,7 +166,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
171
166
|
tablePresetConfig: EventEmitter<any>;
|
|
172
167
|
sortingOrderOptions: EventEmitter<any>;
|
|
173
168
|
createUpdateConfigListing: EventEmitter<any>;
|
|
174
|
-
storePresetName: string;
|
|
175
169
|
isFullScreen: boolean;
|
|
176
170
|
activeTab: string | null;
|
|
177
171
|
groupedColumns: any[];
|
|
@@ -189,6 +183,7 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
189
183
|
filterColumnsList: any[];
|
|
190
184
|
groupBoxPadding: number;
|
|
191
185
|
presetName: string;
|
|
186
|
+
storePresetName: string;
|
|
192
187
|
presetFilter: boolean;
|
|
193
188
|
searchTextPresetTable: string;
|
|
194
189
|
addFilterColumnInput: string;
|
|
@@ -201,18 +196,16 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
201
196
|
editinDropdownSearch: string;
|
|
202
197
|
isThreeDotsFilterOpen: boolean;
|
|
203
198
|
confirmDelete: boolean;
|
|
204
|
-
private originalActions;
|
|
205
199
|
fontFamilies: string[];
|
|
206
200
|
fontSizes: string[];
|
|
207
201
|
hasScroll: boolean;
|
|
208
|
-
constructor(columnService: SplitColumnsService, cdr: ChangeDetectorRef, commonSevice: CommonService, elementRef: ElementRef, ngZone: NgZone, copyService: CopyServiceService, renderer: Renderer2, sanitizer: DomSanitizer, exportService: ExportService, datePipe: DatePipe, formatCurrency: FormatCurrencyPipe
|
|
202
|
+
constructor(columnService: SplitColumnsService, cdr: ChangeDetectorRef, commonSevice: CommonService, elementRef: ElementRef, ngZone: NgZone, copyService: CopyServiceService, renderer: Renderer2, sanitizer: DomSanitizer, exportService: ExportService, datePipe: DatePipe, formatCurrency: FormatCurrencyPipe);
|
|
209
203
|
cellText: any;
|
|
210
204
|
nestedHeader: ElementRef;
|
|
211
205
|
ngAfterViewInit(): Promise<void>;
|
|
212
206
|
private injector;
|
|
213
207
|
createCellInjector(row: any, col: any): Injector;
|
|
214
208
|
private renderCustomCells;
|
|
215
|
-
shouldRestoreScroll: boolean;
|
|
216
209
|
ngAfterViewChecked(): void;
|
|
217
210
|
ngOnInit(): void;
|
|
218
211
|
dataSetLoading: boolean;
|
|
@@ -236,7 +229,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
236
229
|
leftPinnedHeader: ElementRef<HTMLDivElement>;
|
|
237
230
|
centerPinnedHeader: ElementRef<HTMLDivElement>;
|
|
238
231
|
rightPinnedHeader: ElementRef<HTMLDivElement>;
|
|
239
|
-
globalSearchInput: ElementRef<HTMLInputElement>;
|
|
240
232
|
columnsGroupedBox: ElementRef<HTMLDivElement>;
|
|
241
233
|
centerFakeScrollbar: ElementRef<HTMLDivElement>;
|
|
242
234
|
updateColumnWidthsAndGroups(columns?: any): Promise<void>;
|
|
@@ -248,25 +240,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
248
240
|
isNestedValueArray(obj: any, field: string): boolean;
|
|
249
241
|
onResizeGroup(event: MouseEvent, col: any, isRightPinned?: boolean): void;
|
|
250
242
|
private updateColumnWidthInSourceByField;
|
|
251
|
-
get createUpdateColumnConfig(): {
|
|
252
|
-
columns: any[];
|
|
253
|
-
filters: any[];
|
|
254
|
-
no_of_records: any;
|
|
255
|
-
table_config: {
|
|
256
|
-
rowShadingEnabled: boolean;
|
|
257
|
-
showVerticalBorder: boolean;
|
|
258
|
-
fontFaimly: string;
|
|
259
|
-
headerTextFontsSize: number;
|
|
260
|
-
selectedTableLayout: any;
|
|
261
|
-
bodyTextFontsSize: number;
|
|
262
|
-
globalSearch: string;
|
|
263
|
-
filterNames: string;
|
|
264
|
-
totalCount: number;
|
|
265
|
-
activeFilters: boolean;
|
|
266
|
-
oddRowsBackgroundColor: string;
|
|
267
|
-
};
|
|
268
|
-
type: string;
|
|
269
|
-
};
|
|
270
243
|
cleanColumns(columns: any[]): any[];
|
|
271
244
|
onResizeColumn(event: MouseEvent, col: any): void;
|
|
272
245
|
onResizeGroupBox(event: MouseEvent): void;
|
|
@@ -281,10 +254,11 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
281
254
|
closeFilterDropdowns(event: MouseEvent): void;
|
|
282
255
|
private hasParentWithClass;
|
|
283
256
|
isMenueHidden: boolean;
|
|
284
|
-
|
|
257
|
+
clickedOnSortIcon: boolean;
|
|
258
|
+
openThreeDotsMenu(event: MouseEvent, child: any, clickedOnSortIcon?: boolean): void;
|
|
285
259
|
sortAsc(col: any): void;
|
|
286
260
|
sortDesc(col: any): void;
|
|
287
|
-
resetSort(col
|
|
261
|
+
resetSort(col?: any): void;
|
|
288
262
|
updateColumnPinInSourceByField(column: any, pinned: 'left' | 'right' | null, isNestedTable?: any, columns?: any): Promise<void>;
|
|
289
263
|
private getVisibleLeafColumns;
|
|
290
264
|
autosizeColumn(cols: any | any[]): void;
|
|
@@ -427,8 +401,8 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
427
401
|
firstValue: any;
|
|
428
402
|
firstCondition: string;
|
|
429
403
|
secondValue: any;
|
|
430
|
-
secondCondition:
|
|
431
|
-
condition: string
|
|
404
|
+
secondCondition: null;
|
|
405
|
+
condition: string;
|
|
432
406
|
resetTextFilterChanges(): void;
|
|
433
407
|
toggleAllValusSelectionInDropdownFilter(column: any): void;
|
|
434
408
|
selectedFilterOptions: any[];
|
|
@@ -436,13 +410,12 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
436
410
|
toggleSelectionInFilter(option: any): void;
|
|
437
411
|
resetFilterChanges(): void;
|
|
438
412
|
applyDropdownFilter(): void;
|
|
439
|
-
private findColumn;
|
|
440
413
|
isFilterAppliedOnColumn(column: any): boolean;
|
|
441
414
|
toggleSelectAllSideFilters(col: any, event: Event): void;
|
|
442
415
|
isAllSideFilterOptionsSelected(col: any): boolean;
|
|
443
416
|
onOptionToggle(col: any, option: any): void;
|
|
444
417
|
resetSideFilter(col: any): void;
|
|
445
|
-
clearAllFilters(
|
|
418
|
+
clearAllFilters(): void;
|
|
446
419
|
applySideFilter(column: any): void;
|
|
447
420
|
removeSideFilter(column: any): void;
|
|
448
421
|
collapseAllExpandedCells(): void;
|
|
@@ -454,7 +427,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
454
427
|
setActiveCell(row: any, column: any): void;
|
|
455
428
|
isActiveCell(row: any, col: any): boolean;
|
|
456
429
|
textAreadInput: ElementRef<HTMLTextAreaElement>;
|
|
457
|
-
menuReady: boolean;
|
|
458
430
|
enableEdit(row: any, column: any, clickedFromDetailsBox?: boolean, cellContainer?: HTMLElement): void;
|
|
459
431
|
disableEdit(row: any, column: any, control?: any): void;
|
|
460
432
|
emailRegex: RegExp;
|
|
@@ -463,18 +435,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
463
435
|
checkRowEditAndEmitValue(row: any, column: any, value?: any): void;
|
|
464
436
|
isEditing(row: any, col: any): boolean;
|
|
465
437
|
setNestedValue(obj: any, column: any, option: any, calledFromInput?: boolean): void;
|
|
466
|
-
arrayTempMap: Map<string, any[]>;
|
|
467
|
-
private arrayKey;
|
|
468
|
-
getArrayOptionId(option: any): any;
|
|
469
|
-
getArrayOptionLabel(option: any): string;
|
|
470
|
-
getArrayTemp(row: any, col: any): any[];
|
|
471
|
-
isArraySelected(row: any, col: any, option: any): boolean;
|
|
472
|
-
toggleArrayTemp(row: any, col: any, option: any): void;
|
|
473
|
-
commitArray(row: any, col: any): void;
|
|
474
|
-
onArrayBlur(row: any, col: any): void;
|
|
475
|
-
cleanupArray(row: any, col: any): void;
|
|
476
|
-
displayArrayValues(ids: any[], col?: any): string;
|
|
477
|
-
displayArrayLabels(row: any, col: any): string;
|
|
478
438
|
goToPage(page: any): void;
|
|
479
439
|
onPageSizeChange(): void;
|
|
480
440
|
actionPreset(data: any, type: any): void;
|
|
@@ -484,7 +444,8 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
484
444
|
id: string;
|
|
485
445
|
is_temp: boolean;
|
|
486
446
|
};
|
|
487
|
-
|
|
447
|
+
activeIndex: number | null | undefined;
|
|
448
|
+
selectFilter(data: any, index?: any): Promise<void>;
|
|
488
449
|
savePreset(control?: any): void;
|
|
489
450
|
getFilterHeaders(filters: any[], columns: any[]): string;
|
|
490
451
|
toggleRowShading(): void;
|
|
@@ -620,6 +581,7 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
620
581
|
hasAnyDefaultView(): boolean;
|
|
621
582
|
get isTablePresetNotChanged(): any;
|
|
622
583
|
onActionButtonClick(button: string): void;
|
|
584
|
+
createCustomColumn(): void;
|
|
623
585
|
setActiveTab(tab: string | null): void;
|
|
624
586
|
getBackgroundColor(row: any, isEven: boolean, section: 'left' | 'center' | 'right'): string | undefined;
|
|
625
587
|
hasHorizontalScrollbar(): boolean;
|
|
@@ -640,30 +602,11 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
|
|
|
640
602
|
selectGroupRow(e: Event, row: any): void;
|
|
641
603
|
getGroupCheckedState(row: any): boolean | undefined;
|
|
642
604
|
getCellTitle(row: any, col: any): string;
|
|
643
|
-
|
|
644
|
-
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
/**
|
|
649
|
-
* Capitalizes the first letter of each word in a string
|
|
650
|
-
* Handles: spaced words, camelCase, snake_case, kebab-case, and compound words
|
|
651
|
-
*/
|
|
652
|
-
private capitalizeStatus;
|
|
653
|
-
gridContext: {
|
|
654
|
-
applyFilter: (col: any) => void;
|
|
655
|
-
clearFilter: (col: any) => void;
|
|
656
|
-
};
|
|
657
|
-
private closeAllFilterMenus;
|
|
658
|
-
private emitFilters;
|
|
659
|
-
applyFilterOnColumn(col: any): void;
|
|
660
|
-
removeFilterFromColumn(col: any): void;
|
|
661
|
-
private replaceColumnQuery;
|
|
662
|
-
getFormatedDate(val: any): string;
|
|
663
|
-
/**
|
|
664
|
-
* Closes all expanded detail rows
|
|
665
|
-
*/
|
|
666
|
-
closeAllExpandedRows(): void;
|
|
605
|
+
activeFilterType: string;
|
|
606
|
+
activeFilter(type: string): void;
|
|
607
|
+
duplicateFilter(): void;
|
|
608
|
+
renameFilter(filter: any): void;
|
|
609
|
+
deleteFilter(filter: any): void;
|
|
667
610
|
static ɵfac: i0.ɵɵFactoryDeclaration<DataGridComponent, never>;
|
|
668
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent, "data-grid", never, { "rowAnimation": { "alias": "rowAnimation"; "required": false; }; "paginationConfig": { "alias": "paginationConfig"; "required": false; }; "dataSet": { "alias": "dataSet"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "headerRowHeight": { "alias": "headerRowHeight"; "required": false; }; "showVerticalBorder": { "alias": "showVerticalBorder"; "required": false; }; "evenRowsBackgroundColor": { "alias": "evenRowsBackgroundColor"; "required": false; }; "oddRowsBackgroundColor": { "alias": "oddRowsBackgroundColor"; "required": false; }; "headerBackgroundColor": { "alias": "headerBackgroundColor"; "required": false; }; "checkboxesBackgroundColor": { "alias": "checkboxesBackgroundColor"; "required": false; }; "showColumnsGrouping": { "alias": "showColumnsGrouping"; "required": false; }; "rowHoverColor": { "alias": "rowHoverColor"; "required": false; }; "leftPinnedBackgroundColor": { "alias": "leftPinnedBackgroundColor"; "required": false; }; "bodyBackgroundColor": { "alias": "bodyBackgroundColor"; "required": false; }; "rightPinnedBackgroundColor": { "alias": "rightPinnedBackgroundColor"; "required": false; }; "sidemenuBackgroundColor": { "alias": "sidemenuBackgroundColor"; "required": false; }; "bodyTextColor": { "alias": "bodyTextColor"; "required": false; }; "headerTextColor": { "alias": "headerTextColor"; "required": false; }; "checkboxesColor": { "alias": "checkboxesColor"; "required": false; }; "headerTextFontsSize": { "alias": "headerTextFontsSize"; "required": false; }; "bodyTextFontsSize": { "alias": "bodyTextFontsSize"; "required": false; }; "headerFontWeight": { "alias": "headerFontWeight"; "required": false; }; "bodyFontWeight": { "alias": "bodyFontWeight"; "required": false; }; "checkedRowBackgroundColor": { "alias": "checkedRowBackgroundColor"; "required": false; }; "dropdownsBackgroundColor": { "alias": "dropdownsBackgroundColor"; "required": false; }; "footerRowBackgroundColor": { "alias": "footerRowBackgroundColor"; "required": false; }; "footerRowHeight": { "alias": "footerRowHeight"; "required": false; }; "topGroupedBadgesBackgroundColor": { "alias": "topGroupedBadgesBackgroundColor"; "required": false; }; "showRowsGrouping": { "alias": "showRowsGrouping"; "required": false; }; "showFilterRow": { "alias": "showFilterRow"; "required": false; }; "fontFaimly": { "alias": "fontFaimly"; "required": false; }; "showSideMenu": { "alias": "showSideMenu"; "required": false; }; "footerPadding": { "alias": "footerPadding"; "required": false; }; "topFilterRowHeight": { "alias": "topFilterRowHeight"; "required": false; }; "rowShadingEnabled": { "alias": "rowShadingEnabled"; "required": false; }; "showSerialNumber": { "alias": "showSerialNumber"; "required": false; }; "singleSpaAssetsPath": { "alias": "singleSpaAssetsPath"; "required": false; }; "filtersConfig": { "alias": "filtersConfig"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "verticalScrollbarWidth": { "alias": "verticalScrollbarWidth"; "required": false; }; "horizintalScrollbarWidth": { "alias": "horizintalScrollbarWidth"; "required": false; }; "showCellDetailsBox": { "alias": "showCellDetailsBox"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "tableSearch": { "alias": "tableSearch"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "config": { "alias": "config"; "required": false; }; "
|
|
611
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<DataGridComponent, "data-grid", never, { "rowAnimation": { "alias": "rowAnimation"; "required": false; }; "paginationConfig": { "alias": "paginationConfig"; "required": false; }; "dataSet": { "alias": "dataSet"; "required": false; }; "columns": { "alias": "columns"; "required": false; }; "rowHeight": { "alias": "rowHeight"; "required": false; }; "headerRowHeight": { "alias": "headerRowHeight"; "required": false; }; "showVerticalBorder": { "alias": "showVerticalBorder"; "required": false; }; "evenRowsBackgroundColor": { "alias": "evenRowsBackgroundColor"; "required": false; }; "oddRowsBackgroundColor": { "alias": "oddRowsBackgroundColor"; "required": false; }; "headerBackgroundColor": { "alias": "headerBackgroundColor"; "required": false; }; "checkboxesBackgroundColor": { "alias": "checkboxesBackgroundColor"; "required": false; }; "showColumnsGrouping": { "alias": "showColumnsGrouping"; "required": false; }; "rowHoverColor": { "alias": "rowHoverColor"; "required": false; }; "leftPinnedBackgroundColor": { "alias": "leftPinnedBackgroundColor"; "required": false; }; "bodyBackgroundColor": { "alias": "bodyBackgroundColor"; "required": false; }; "rightPinnedBackgroundColor": { "alias": "rightPinnedBackgroundColor"; "required": false; }; "sidemenuBackgroundColor": { "alias": "sidemenuBackgroundColor"; "required": false; }; "bodyTextColor": { "alias": "bodyTextColor"; "required": false; }; "headerTextColor": { "alias": "headerTextColor"; "required": false; }; "checkboxesColor": { "alias": "checkboxesColor"; "required": false; }; "headerTextFontsSize": { "alias": "headerTextFontsSize"; "required": false; }; "bodyTextFontsSize": { "alias": "bodyTextFontsSize"; "required": false; }; "headerFontWeight": { "alias": "headerFontWeight"; "required": false; }; "bodyFontWeight": { "alias": "bodyFontWeight"; "required": false; }; "checkedRowBackgroundColor": { "alias": "checkedRowBackgroundColor"; "required": false; }; "dropdownsBackgroundColor": { "alias": "dropdownsBackgroundColor"; "required": false; }; "footerRowBackgroundColor": { "alias": "footerRowBackgroundColor"; "required": false; }; "footerRowHeight": { "alias": "footerRowHeight"; "required": false; }; "topGroupedBadgesBackgroundColor": { "alias": "topGroupedBadgesBackgroundColor"; "required": false; }; "showRowsGrouping": { "alias": "showRowsGrouping"; "required": false; }; "showFilterRow": { "alias": "showFilterRow"; "required": false; }; "fontFaimly": { "alias": "fontFaimly"; "required": false; }; "showSideMenu": { "alias": "showSideMenu"; "required": false; }; "footerPadding": { "alias": "footerPadding"; "required": false; }; "topFilterRowHeight": { "alias": "topFilterRowHeight"; "required": false; }; "rowShadingEnabled": { "alias": "rowShadingEnabled"; "required": false; }; "showSerialNumber": { "alias": "showSerialNumber"; "required": false; }; "singleSpaAssetsPath": { "alias": "singleSpaAssetsPath"; "required": false; }; "filtersConfig": { "alias": "filtersConfig"; "required": false; }; "loading": { "alias": "loading"; "required": false; }; "verticalScrollbarWidth": { "alias": "verticalScrollbarWidth"; "required": false; }; "horizintalScrollbarWidth": { "alias": "horizintalScrollbarWidth"; "required": false; }; "showCellDetailsBox": { "alias": "showCellDetailsBox"; "required": false; }; "dateFormat": { "alias": "dateFormat"; "required": false; }; "tableSearch": { "alias": "tableSearch"; "required": false; }; "actions": { "alias": "actions"; "required": false; }; "config": { "alias": "config"; "required": false; }; "showTaskbar": { "alias": "showTaskbar"; "required": false; }; "tableName": { "alias": "tableName"; "required": false; }; "listingType": { "alias": "listingType"; "required": false; }; "checkboxState": { "alias": "checkboxState"; "required": false; }; "taskbarActions": { "alias": "taskbarActions"; "required": false; }; "sortingConfig": { "alias": "sortingConfig"; "required": false; }; "tableFilterViewId": { "alias": "tableFilterViewId"; "required": false; }; "selectedTableLayout": { "alias": "selectedTableLayout"; "required": false; }; "closeDropdown": { "alias": "closeDropdown"; "required": false; }; "globalSearchText": { "alias": "globalSearchText"; "required": false; }; "nestedTablerowFontsize": { "alias": "nestedTablerowFontsize"; "required": false; }; "nestedTableHeaderRowHeight": { "alias": "nestedTableHeaderRowHeight"; "required": false; }; "nestedTablerowHeight": { "alias": "nestedTablerowHeight"; "required": false; }; "gridType": { "alias": "gridType"; "required": false; }; "currencySymbol": { "alias": "currencySymbol"; "required": false; }; "currencyFormat": { "alias": "currencyFormat"; "required": false; }; "leftPinnedBoxshadow": { "alias": "leftPinnedBoxshadow"; "required": false; }; "rightPinnedBoxshadow": { "alias": "rightPinnedBoxshadow"; "required": false; }; "selectedRowsBackgroundColor": { "alias": "selectedRowsBackgroundColor"; "required": false; }; "nestedTableHeaderBackgroundColor": { "alias": "nestedTableHeaderBackgroundColor"; "required": false; }; "nestedTableRowBackgroundColor": { "alias": "nestedTableRowBackgroundColor"; "required": false; }; "tableView": { "alias": "tableView"; "required": false; }; "buttons": { "alias": "buttons"; "required": false; }; "keepMultipleExpandedDetails": { "alias": "keepMultipleExpandedDetails"; "required": false; }; "showTotalAmountRow": { "alias": "showTotalAmountRow"; "required": false; }; "enableGlobalSearch": { "alias": "enableGlobalSearch"; "required": false; }; "tableType": { "alias": "tableType"; "required": false; }; "enableExport": { "alias": "enableExport"; "required": false; }; "showFullScreenButton": { "alias": "showFullScreenButton"; "required": false; }; "enableCut": { "alias": "enableCut"; "required": false; }; "tabs": { "alias": "tabs"; "required": false; }; "showCheckboxes": { "alias": "showCheckboxes"; "required": false; }; "consumerFont": { "alias": "consumerFont"; "required": false; }; "defaultConfig": { "alias": "defaultConfig"; "required": false; }; "resetAllFilters": { "alias": "resetAllFilters"; "required": false; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "columnThreedotsMunuConfig": { "alias": "columnThreedotsMunuConfig"; "required": false; }; }, { "changeLayout": "changeLayout"; "customCellEvent": "customCellEvent"; "filterOptions": "filterOptions"; "genericEvent": "genericEvent"; "tablePresetConfig": "tablePresetConfig"; "sortingOrderOptions": "sortingOrderOptions"; "createUpdateConfigListing": "createUpdateConfigListing"; }, never, never, false, never>;
|
|
669
612
|
}
|
|
@@ -1,22 +1,18 @@
|
|
|
1
|
-
import { OnInit, ViewContainerRef, Injector,
|
|
1
|
+
import { OnInit, ViewContainerRef, Injector, Type, EventEmitter } from '@angular/core';
|
|
2
2
|
import * as i0 from "@angular/core";
|
|
3
|
-
export declare class CellRenderInitDirective implements OnInit
|
|
3
|
+
export declare class CellRenderInitDirective implements OnInit {
|
|
4
4
|
private vcr;
|
|
5
5
|
private injector;
|
|
6
6
|
componentType: Type<any>;
|
|
7
7
|
rowData: any;
|
|
8
8
|
colData: any;
|
|
9
9
|
cellValue: any;
|
|
10
|
-
context: any;
|
|
11
10
|
cellEvent: EventEmitter<{
|
|
12
11
|
eventName: string;
|
|
13
12
|
data: any;
|
|
14
13
|
}>;
|
|
15
14
|
constructor(vcr: ViewContainerRef, injector: Injector);
|
|
16
|
-
componentRef: ComponentRef<any>;
|
|
17
15
|
ngOnInit(): void;
|
|
18
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
19
|
-
ngOnDestroy(): void;
|
|
20
16
|
static ɵfac: i0.ɵɵFactoryDeclaration<CellRenderInitDirective, never>;
|
|
21
|
-
static ɵdir: i0.ɵɵDirectiveDeclaration<CellRenderInitDirective, "[cellRenderInit]", never, { "componentType": { "alias": "cellRenderInit"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "colData": { "alias": "colData"; "required": false; }; "cellValue": { "alias": "cellValue"; "required": false; };
|
|
17
|
+
static ɵdir: i0.ɵɵDirectiveDeclaration<CellRenderInitDirective, "[cellRenderInit]", never, { "componentType": { "alias": "cellRenderInit"; "required": false; }; "rowData": { "alias": "rowData"; "required": false; }; "colData": { "alias": "colData"; "required": false; }; "cellValue": { "alias": "cellValue"; "required": false; }; }, { "cellEvent": "cellEvent"; }, never, never, false, never>;
|
|
22
18
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ms-data-grid",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.129",
|
|
4
4
|
"description": "A powerful, customizable Angular data grid component with advanced features like sorting, filtering, pagination, column pinning, and taskbar actions. Perfect for enterprise applications.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"angular",
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import * as i0 from "@angular/core";
|
|
3
|
-
export class RowActionService {
|
|
4
|
-
constructor() {
|
|
5
|
-
this.STATUS_SETS = {
|
|
6
|
-
EDIT_BLOCKED: [
|
|
7
|
-
'expired', 'closed', 'Assigning Stop', 'Evaluation Start',
|
|
8
|
-
'Evaluation Stop', 'Completed', 'approved', 'rejected',
|
|
9
|
-
'partially', 'accepted'
|
|
10
|
-
],
|
|
11
|
-
ARCHIVE_BLOCKED: [
|
|
12
|
-
'approved', 'partially', 'Assigning Start',
|
|
13
|
-
'Completed', 'Evaluation Start'
|
|
14
|
-
],
|
|
15
|
-
DISPOSED: ['scrap', 'trashed', 'disposed'],
|
|
16
|
-
SEPARATED: ['termination', 'resignation', 'retirement', 'separated'],
|
|
17
|
-
UNAVAILABLE: ['unavailable', 'unAvailable']
|
|
18
|
-
};
|
|
19
|
-
this.ACTION_ALIASES = {
|
|
20
|
-
accept: 'view',
|
|
21
|
-
achive: 'unactive'
|
|
22
|
-
};
|
|
23
|
-
this.rules = {
|
|
24
|
-
assigningstart: (r) => r.status === 'To be start Assigning' && !r.isDeleted,
|
|
25
|
-
assigningstop: (r) => r.status === 'Assigning Start' && !r.isDeleted,
|
|
26
|
-
evaluationstart: (r) => r.status === 'Assigning Stop' && !r.isDeleted,
|
|
27
|
-
completed: (r) => r.status === 'Evaluation Start' && !r.isDeleted,
|
|
28
|
-
archive: (r) => this.canArchiveOrDelete(r),
|
|
29
|
-
unactive: (r) => this.canArchiveOrDelete(r),
|
|
30
|
-
delete: (r) => this.canArchiveOrDelete(r),
|
|
31
|
-
unarchive: (r) => r.isDeleted && r.availStatus !== 'disposed',
|
|
32
|
-
active: (r) => r.isDeleted && r.availStatus !== 'disposed',
|
|
33
|
-
link: (r) => !this.STATUS_SETS.UNAVAILABLE.includes(r.status) &&
|
|
34
|
-
!r.isDeleted &&
|
|
35
|
-
r.availStatus !== 'disposed' &&
|
|
36
|
-
r.status !== 'linked',
|
|
37
|
-
unlink: (r, ctx) => ctx.showUnLink === true && r.status === 'linked',
|
|
38
|
-
rejoin: (r) => this.STATUS_SETS.SEPARATED.includes(r.accountStatus),
|
|
39
|
-
settlementinfo: (r) => this.STATUS_SETS.SEPARATED.includes(r.accountStatus),
|
|
40
|
-
assign: (r) => r.status !== 'assigned',
|
|
41
|
-
edit: (r, ctx) => this.canEdit(r, ctx),
|
|
42
|
-
trash: (r) => !this.STATUS_SETS.DISPOSED.includes(r.availStatus),
|
|
43
|
-
scrap: (r) => !this.STATUS_SETS.DISPOSED.includes(r.availStatus),
|
|
44
|
-
retain: (r) => !this.STATUS_SETS.DISPOSED.includes(r.availStatus),
|
|
45
|
-
defaultgrade: (r) => r.isCustomGrade !== 'Active',
|
|
46
|
-
subscribe: (r, ctx) => !r.assignedToIds.includes(ctx.currentUserId),
|
|
47
|
-
unsubscribe: (r, ctx) => r.assignedToIds.includes(ctx.currentUserId),
|
|
48
|
-
changestatus: (r) => !r.isDeleted,
|
|
49
|
-
download: (r) => r.offerLetter !== null,
|
|
50
|
-
view: (r) => r.offerLetter !== null
|
|
51
|
-
};
|
|
52
|
-
}
|
|
53
|
-
normalizeRow(element) {
|
|
54
|
-
return {
|
|
55
|
-
isDeleted: element.is_deleted === true || element.is_deleted === 'true',
|
|
56
|
-
status: element.status || '',
|
|
57
|
-
availStatus: element.availStatus || '',
|
|
58
|
-
accountStatus: (element.account_status || '').toLowerCase(),
|
|
59
|
-
assigneeCount: element.assignee?.length ?? 0,
|
|
60
|
-
assignedToIds: element.assigned_to?.map((x) => x.id) ?? [],
|
|
61
|
-
settlementCompleted: element.settlement_completed === true,
|
|
62
|
-
finalSettlementCompleted: element.final_settlement_completed === true,
|
|
63
|
-
storeEdit: element.store_edit !== false,
|
|
64
|
-
isOwner: element.is_owner ?? true,
|
|
65
|
-
isCustomGrade: element.is_custom_grade || '',
|
|
66
|
-
parent: element.parent,
|
|
67
|
-
offerLetter: element.offer_letter,
|
|
68
|
-
typename: element.__typename || ''
|
|
69
|
-
};
|
|
70
|
-
}
|
|
71
|
-
normalizeAction(action, ctx) {
|
|
72
|
-
let normalized = this.ACTION_ALIASES[action] || action;
|
|
73
|
-
if (ctx.packageData) {
|
|
74
|
-
if (action === 'unarchive')
|
|
75
|
-
return 'active';
|
|
76
|
-
if (action === 'archive')
|
|
77
|
-
return 'unactive';
|
|
78
|
-
}
|
|
79
|
-
return normalized.toLowerCase();
|
|
80
|
-
}
|
|
81
|
-
canArchiveOrDelete(r) {
|
|
82
|
-
return (!r.isDeleted &&
|
|
83
|
-
!r.settlementCompleted &&
|
|
84
|
-
!r.finalSettlementCompleted &&
|
|
85
|
-
r.availStatus !== 'reserved' &&
|
|
86
|
-
r.assigneeCount === 0 &&
|
|
87
|
-
r.availStatus !== 'disposed' &&
|
|
88
|
-
r.availStatus !== 'maintenance' &&
|
|
89
|
-
r.availStatus !== 'assigned' &&
|
|
90
|
-
!this.STATUS_SETS.ARCHIVE_BLOCKED.includes(r.status) &&
|
|
91
|
-
r.parent !== null);
|
|
92
|
-
}
|
|
93
|
-
canEdit(r, ctx) {
|
|
94
|
-
const isBlocked = this.STATUS_SETS.EDIT_BLOCKED.includes(r.status) ||
|
|
95
|
-
r.isDeleted ||
|
|
96
|
-
!r.storeEdit ||
|
|
97
|
-
r.availStatus === 'disposed' ||
|
|
98
|
-
r.settlementCompleted ||
|
|
99
|
-
r.finalSettlementCompleted;
|
|
100
|
-
if (isBlocked)
|
|
101
|
-
return false;
|
|
102
|
-
if (ctx.tableType === 'BusinessExpenseListing') {
|
|
103
|
-
return true;
|
|
104
|
-
}
|
|
105
|
-
return r.status !== 'accepted' && r.isOwner;
|
|
106
|
-
}
|
|
107
|
-
isActionValid(action, element, ctx = {}) {
|
|
108
|
-
const row = this.normalizeRow(element);
|
|
109
|
-
const normalizedAction = this.normalizeAction(action, ctx);
|
|
110
|
-
const rule = this.rules[normalizedAction];
|
|
111
|
-
if (rule) {
|
|
112
|
-
return rule(row, ctx);
|
|
113
|
-
}
|
|
114
|
-
return row.availStatus !== 'disposed' || row.typename === 'Alert';
|
|
115
|
-
}
|
|
116
|
-
getValidActions(actions, element, ctx = {}) {
|
|
117
|
-
if (!actions?.length)
|
|
118
|
-
return [];
|
|
119
|
-
let validActions = actions.filter(action => this.isActionValid(action, element, ctx));
|
|
120
|
-
if (ctx.tableType === 'recruitmentListing') {
|
|
121
|
-
validActions = this.applyRecruitmentFilters(validActions, element);
|
|
122
|
-
}
|
|
123
|
-
return validActions;
|
|
124
|
-
}
|
|
125
|
-
applyRecruitmentFilters(actions, element) {
|
|
126
|
-
let filtered = [...actions];
|
|
127
|
-
if (element?.status === 'hired' && !element?.is_deleted) {
|
|
128
|
-
filtered = filtered.filter(action => !['changestatus', 'unarchive', 'archive', 'edit'].includes(action));
|
|
129
|
-
}
|
|
130
|
-
if (element?.is_deleted) {
|
|
131
|
-
filtered = filtered.filter(action => action !== 'changestatus');
|
|
132
|
-
}
|
|
133
|
-
if (element?.offer_letter === null) {
|
|
134
|
-
filtered = filtered.filter(action => !['download', 'view'].includes(action));
|
|
135
|
-
}
|
|
136
|
-
return filtered;
|
|
137
|
-
}
|
|
138
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowActionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
139
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowActionService, providedIn: 'root' }); }
|
|
140
|
-
}
|
|
141
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: RowActionService, decorators: [{
|
|
142
|
-
type: Injectable,
|
|
143
|
-
args: [{ providedIn: 'root' }]
|
|
144
|
-
}] });
|
|
145
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicm93LWFjdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZGF0YS1ncmlkL3NyYy9saWIvc2VydmljZXMvcm93LWFjdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBNkIzQyxNQUFNLE9BQU8sZ0JBQWdCO0lBRDdCO1FBR21CLGdCQUFXLEdBQUc7WUFDN0IsWUFBWSxFQUFFO2dCQUNaLFNBQVMsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsa0JBQWtCO2dCQUN6RCxpQkFBaUIsRUFBRSxXQUFXLEVBQUUsVUFBVSxFQUFFLFVBQVU7Z0JBQ3RELFdBQVcsRUFBRSxVQUFVO2FBQ3hCO1lBQ0QsZUFBZSxFQUFFO2dCQUNmLFVBQVUsRUFBRSxXQUFXLEVBQUUsaUJBQWlCO2dCQUMxQyxXQUFXLEVBQUUsa0JBQWtCO2FBQ2hDO1lBQ0QsUUFBUSxFQUFFLENBQUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxVQUFVLENBQUM7WUFDMUMsU0FBUyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxZQUFZLEVBQUUsV0FBVyxDQUFDO1lBQ3BFLFdBQVcsRUFBRSxDQUFDLGFBQWEsRUFBRSxhQUFhLENBQUM7U0FDbkMsQ0FBQztRQUVNLG1CQUFjLEdBQTJCO1lBQ3hELE1BQU0sRUFBRSxNQUFNO1lBQ2QsTUFBTSxFQUFFLFVBQVU7U0FDbkIsQ0FBQztRQUVlLFVBQUssR0FBK0I7WUFDbkQsY0FBYyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLHVCQUF1QixJQUFJLENBQUMsQ0FBQyxDQUFDLFNBQVM7WUFDM0UsYUFBYSxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLGlCQUFpQixJQUFJLENBQUMsQ0FBQyxDQUFDLFNB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SyxvQkFBb0IsRUFBRTtZQUMxQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUFpQixFQUFFLE9BQVk7UUFDN0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLElBQUksT0FBTyxFQUFFLE1BQU0sS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFO1lBQ3ZELFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2xDLENBQUMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ25FLENBQUM7U0FDSDtRQUVELElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRTtZQUN2QixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksT0FBTyxFQUFFLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDbEMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDbEMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3ZDLENBQUM7U0FDSDtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBNUtVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQWN0aW9uQ29udGV4dCB7XG4gIHRhYmxlVHlwZT86IHN0cmluZztcbiAgcGFja2FnZURhdGE/OiBib29sZWFuO1xuICBzaG93VW5MaW5rPzogYm9vbGVhbjtcbiAgY3VycmVudFVzZXJJZD86IHN0cmluZyB8IG51bWJlcjtcbn1cblxuaW50ZXJmYWNlIE5vcm1hbGl6ZWRSb3cge1xuICBpc0RlbGV0ZWQ6IGJvb2xlYW47XG4gIHN0YXR1czogc3RyaW5nO1xuICBhdmFpbFN0YXR1czogc3RyaW5nO1xuICBhY2NvdW50U3RhdHVzOiBzdHJpbmc7XG4gIGFzc2lnbmVlQ291bnQ6IG51bWJlcjtcbiAgYXNzaWduZWRUb0lkczogKHN0cmluZyB8IG51bWJlcilbXTtcbiAgc2V0dGxlbWVudENvbXBsZXRlZDogYm9vbGVhbjtcbiAgZmluYWxTZXR0bGVtZW50Q29tcGxldGVkOiBib29sZWFuO1xuICBzdG9yZUVkaXQ6IGJvb2xlYW47XG4gIGlzT3duZXI6IGJvb2xlYW47XG4gIGlzQ3VzdG9tR3JhZGU6IHN0cmluZztcbiAgcGFyZW50OiBhbnk7XG4gIG9mZmVyTGV0dGVyOiBhbnk7XG4gIHR5cGVuYW1lOiBzdHJpbmc7XG59XG5cbnR5cGUgQWN0aW9uUnVsZSA9IChyb3c6IE5vcm1hbGl6ZWRSb3csIGN0eDogQWN0aW9uQ29udGV4dCkgPT4gYm9vbGVhbjtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBSb3dBY3Rpb25TZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IFNUQVRVU19TRVRTID0ge1xuICAgIEVESVRfQkxPQ0tFRDogW1xuICAgICAgJ2V4cGlyZWQnLCAnY2xvc2VkJywgJ0Fzc2lnbmluZyBTdG9wJywgJ0V2YWx1YXRpb24gU3RhcnQnLFxuICAgICAgJ0V2YWx1YXRpb24gU3RvcCcsICdDb21wbGV0ZWQnLCAnYXBwcm92ZWQnLCAncmVqZWN0ZWQnLFxuICAgICAgJ3BhcnRpYWxseScsICdhY2NlcHRlZCdcbiAgICBdLFxuICAgIEFSQ0hJVkVfQkxPQ0tFRDogW1xuICAgICAgJ2FwcHJvdmVkJywgJ3BhcnRpYWxseScsICdBc3NpZ25pbmcgU3RhcnQnLFxuICAgICAgJ0NvbXBsZXRlZCcsICdFdmFsdWF0aW9uIFN0YXJ0J1xuICAgIF0sXG4gICAgRElTUE9TRUQ6IFsnc2NyYXAnLCAndHJhc2hlZCcsICdkaXNwb3NlZCddLFxuICAgIFNFUEFSQVRFRDogWyd0ZXJtaW5hdGlvbicsICdyZXNpZ25hdGlvbicsICdyZXRpcmVtZW50JywgJ3NlcGFyYXRlZCddLFxuICAgIFVOQVZBSUxBQkxFOiBbJ3VuYXZhaWxhYmxlJywgJ3VuQXZhaWxhYmxlJ11cbiAgfSBhcyBjb25zdDtcblxuICBwcml2YXRlIHJlYWRvbmx5IEFDVElPTl9BTElBU0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAgIGFjY2VwdDogJ3ZpZXcnLFxuICAgIGFjaGl2ZTogJ3VuYWN0aXZlJ1xuICB9O1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgcnVsZXM6IFJlY29yZDxzdHJpbmcsIEFjdGlvblJ1bGU+ID0ge1xuICAgIGFzc2lnbmluZ3N0YXJ0OiAocikgPT4gci5zdGF0dXMgPT09ICdUbyBiZSBzdGFydCBBc3NpZ25pbmcnICYmICFyLmlzRGVsZXRlZCxcbiAgICBhc3NpZ25pbmdzdG9wOiAocikgPT4gci5zdGF0dXMgPT09ICdBc3NpZ25pbmcgU3RhcnQnICYmICFyLmlzRGVsZXRlZCxcbiAgICBldmFsdWF0aW9uc3RhcnQ6IChyKSA9PiByLnN0YXR1cyA9PT0gJ0Fzc2lnbmluZyBTdG9wJyAmJiAhci5pc0RlbGV0ZWQsXG4gICAgY29tcGxldGVkOiAocikgPT4gci5zdGF0dXMgPT09ICdFdmFsdWF0aW9uIFN0YXJ0JyAmJiAhci5pc0RlbGV0ZWQsXG5cbiAgICBhcmNoaXZlOiAocikgPT4gdGhpcy5jYW5BcmNoaXZlT3JEZWxldGUociksXG4gICAgdW5hY3RpdmU6IChyKSA9PiB0aGlzLmNhbkFyY2hpdmVPckRlbGV0ZShyKSxcbiAgICBkZWxldGU6IChyKSA9PiB0aGlzLmNhbkFyY2hpdmVPckRlbGV0ZShyKSxcblxuICAgIHVuYXJjaGl2ZTogKHIpID0+IHIuaXNEZWxldGVkICYmIHIuYXZhaWxTdGF0dXMgIT09ICdkaXNwb3NlZCcsXG4gICAgYWN0aXZlOiAocikgPT4gci5pc0RlbGV0ZWQgJiYgci5hdmFpbFN0YXR1cyAhPT0gJ2Rpc3Bvc2VkJyxcblxuICAgIGxpbms6IChyKSA9PiBcbiAgICAgICF0aGlzLlNUQVRVU19TRVRTLlVOQVZBSUxBQkxFLmluY2x1ZGVzKChyLnN0YXR1cyBhcyBhbnkpKSAmJlxuICAgICAgIXIuaXNEZWxldGVkICYmXG4gICAgICByLmF2YWlsU3RhdHVzICE9PSAnZGlzcG9zZWQnICYmXG4gICAgICByLnN0YXR1cyAhPT0gJ2xpbmtlZCcsXG4gICAgdW5saW5rOiAociwgY3R4KSA9PiBjdHguc2hvd1VuTGluayA9PT0gdHJ1ZSAmJiByLnN0YXR1cyA9PT0gJ2xpbmtlZCcsXG5cbiAgICByZWpvaW46IChyKSA9PiB0aGlzLlNUQVRVU19TRVRTLlNFUEFSQVRFRC5pbmNsdWRlcygoci5hY2NvdW50U3RhdHVzIGFzIGFueSkpLFxuICAgIHNldHRsZW1lbnRpbmZvOiAocikgPT4gdGhpcy5TVEFUVVNfU0VUUy5TRVBBUkFURUQuaW5jbHVkZXMoKHIuYWNjb3VudFN0YXR1cyBhcyBhbnkpKSxcblxuICAgIGFzc2lnbjogKHIpID0+IHIuc3RhdHVzICE9PSAnYXNzaWduZWQnLFxuICAgIGVkaXQ6IChyLCBjdHgpID0+IHRoaXMuY2FuRWRpdChyLCBjdHgpLFxuXG4gICAgdHJhc2g6IChyKSA9PiAhdGhpcy5TVEFUVVNfU0VUUy5ESVNQT1NFRC5pbmNsdWRlcygoci5hdmFpbFN0YXR1cyBhcyBhbnkpKSxcbiAgICBzY3JhcDogKHIpID0+ICF0aGlzLlNUQVRVU19TRVRTLkRJU1BPU0VELmluY2x1ZGVzKChyLmF2YWlsU3RhdHVzIGFzIGFueSkpLFxuICAgIHJldGFpbjogKHIpID0+ICF0aGlzLlNUQVRVU19TRVRTLkRJU1BPU0VELmluY2x1ZGVzKChyLmF2YWlsU3RhdHVzIGFzIGFueSkpLFxuXG4gICAgZGVmYXVsdGdyYWRlOiAocikgPT4gci5pc0N1c3RvbUdyYWRlICE9PSAnQWN0aXZlJyxcblxuICAgIHN1YnNjcmliZTogKHIsIGN0eCkgPT4gIXIuYXNzaWduZWRUb0lkcy5pbmNsdWRlcygoY3R4LmN1cnJlbnRVc2VySWQgYXMgYW55KSksXG4gICAgdW5zdWJzY3JpYmU6IChyLCBjdHgpID0+IHIuYXNzaWduZWRUb0lkcy5pbmNsdWRlcygoY3R4LmN1cnJlbnRVc2VySWQgYXMgYW55KSksXG5cbiAgICBjaGFuZ2VzdGF0dXM6IChyKSA9PiAhci5pc0RlbGV0ZWQsXG5cbiAgICBkb3dubG9hZDogKHIpID0+IHIub2ZmZXJMZXR0ZXIgIT09IG51bGwsXG4gICAgdmlldzogKHIpID0+IHIub2ZmZXJMZXR0ZXIgIT09IG51bGxcbiAgfTtcblxuICBwcml2YXRlIG5vcm1hbGl6ZVJvdyhlbGVtZW50OiBhbnkpOiBOb3JtYWxpemVkUm93IHtcbiAgICByZXR1cm4ge1xuICAgICAgaXNEZWxldGVkOiBlbGVtZW50LmlzX2RlbGV0ZWQgPT09IHRydWUgfHwgZWxlbWVudC5pc19kZWxldGVkID09PSAndHJ1ZScsXG4gICAgICBzdGF0dXM6IGVsZW1lbnQuc3RhdHVzIHx8ICcnLFxuICAgICAgYXZhaWxTdGF0dXM6IGVsZW1lbnQuYXZhaWxTdGF0dXMgfHwgJycsXG4gICAgICBhY2NvdW50U3RhdHVzOiAoZWxlbWVudC5hY2NvdW50X3N0YXR1cyB8fCAnJykudG9Mb3dlckNhc2UoKSxcbiAgICAgIGFzc2lnbmVlQ291bnQ6IGVsZW1lbnQuYXNzaWduZWU/Lmxlbmd0aCA/PyAwLFxuICAgICAgYXNzaWduZWRUb0lkczogZWxlbWVudC5hc3NpZ25lZF90bz8ubWFwKCh4OiBhbnkpID0+IHguaWQpID8/IFtdLFxuICAgICAgc2V0dGxlbWVudENvbXBsZXRlZDogZWxlbWVudC5zZXR0bGVtZW50X2NvbXBsZXRlZCA9PT0gdHJ1ZSxcbiAgICAgIGZpbmFsU2V0dGxlbWVudENvbXBsZXRlZDogZWxlbWVudC5maW5hbF9zZXR0bGVtZW50X2NvbXBsZXRlZCA9PT0gdHJ1ZSxcbiAgICAgIHN0b3JlRWRpdDogZWxlbWVudC5zdG9yZV9lZGl0ICE9PSBmYWxzZSxcbiAgICAgIGlzT3duZXI6IGVsZW1lbnQuaXNfb3duZXIgPz8gdHJ1ZSxcbiAgICAgIGlzQ3VzdG9tR3JhZGU6IGVsZW1lbnQuaXNfY3VzdG9tX2dyYWRlIHx8ICcnLFxuICAgICAgcGFyZW50OiBlbGVtZW50LnBhcmVudCxcbiAgICAgIG9mZmVyTGV0dGVyOiBlbGVtZW50Lm9mZmVyX2xldHRlcixcbiAgICAgIHR5cGVuYW1lOiBlbGVtZW50Ll9fdHlwZW5hbWUgfHwgJydcbiAgICB9O1xuICB9XG5cbiAgcHJpdmF0ZSBub3JtYWxpemVBY3Rpb24oYWN0aW9uOiBzdHJpbmcsIGN0eDogQWN0aW9uQ29udGV4dCk6IHN0cmluZyB7XG4gICAgbGV0IG5vcm1hbGl6ZWQgPSB0aGlzLkFDVElPTl9BTElBU0VTW2FjdGlvbl0gfHwgYWN0aW9uO1xuXG4gICAgaWYgKGN0eC5wYWNrYWdlRGF0YSkge1xuICAgICAgaWYgKGFjdGlvbiA9PT0gJ3VuYXJjaGl2ZScpIHJldHVybiAnYWN0aXZlJztcbiAgICAgIGlmIChhY3Rpb24gPT09ICdhcmNoaXZlJykgcmV0dXJuICd1bmFjdGl2ZSc7XG4gICAgfVxuXG4gICAgcmV0dXJuIG5vcm1hbGl6ZWQudG9Mb3dlckNhc2UoKTtcbiAgfVxuXG4gIHByaXZhdGUgY2FuQXJjaGl2ZU9yRGVsZXRlKHI6IE5vcm1hbGl6ZWRSb3cpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKFxuICAgICAgIXIuaXNEZWxldGVkICYmXG4gICAgICAhci5zZXR0bGVtZW50Q29tcGxldGVkICYmXG4gICAgICAhci5maW5hbFNldHRsZW1lbnRDb21wbGV0ZWQgJiZcbiAgICAgIHIuYXZhaWxTdGF0dXMgIT09ICdyZXNlcnZlZCcgJiZcbiAgICAgIHIuYXNzaWduZWVDb3VudCA9PT0gMCAmJlxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ2Rpc3Bvc2VkJyAmJlxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ21haW50ZW5hbmNlJyAmJlxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ2Fzc2lnbmVkJyAmJlxuICAgICAgIXRoaXMuU1RBVFVTX1NFVFMuQVJDSElWRV9CTE9DS0VELmluY2x1ZGVzKChyLnN0YXR1cyBhcyBhbnkpKSAmJlxuICAgICAgci5wYXJlbnQgIT09IG51bGxcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjYW5FZGl0KHI6IE5vcm1hbGl6ZWRSb3csIGN0eDogQWN0aW9uQ29udGV4dCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IGlzQmxvY2tlZCA9IFxuICAgICAgdGhpcy5TVEFUVVNfU0VUUy5FRElUX0JMT0NLRUQuaW5jbHVkZXMoKHIuc3RhdHVzIGFzIGFueSkpIHx8XG4gICAgICByLmlzRGVsZXRlZCB8fFxuICAgICAgIXIuc3RvcmVFZGl0IHx8XG4gICAgICByLmF2YWlsU3RhdHVzID09PSAnZGlzcG9zZWQnIHx8XG4gICAgICByLnNldHRsZW1lbnRDb21wbGV0ZWQgfHxcbiAgICAgIHIuZmluYWxTZXR0bGVtZW50Q29tcGxldGVkO1xuXG4gICAgaWYgKGlzQmxvY2tlZCkgcmV0dXJuIGZhbHNlO1xuXG4gICAgaWYgKGN0eC50YWJsZVR5cGUgPT09ICdCdXNpbmVzc0V4cGVuc2VMaXN0aW5nJykge1xuICAgICAgcmV0dXJuIHRydWU7XG4gICAgfVxuXG4gICAgcmV0dXJuIHIuc3RhdHVzICE9PSAnYWNjZXB0ZWQnICYmIHIuaXNPd25lcjtcbiAgfVxuXG4gIGlzQWN0aW9uVmFsaWQoYWN0aW9uOiBzdHJpbmcsIGVsZW1lbnQ6IGFueSwgY3R4OiBBY3Rpb25Db250ZXh0ID0ge30pOiBib29sZWFuIHtcbiAgICBjb25zdCByb3cgPSB0aGlzLm5vcm1hbGl6ZVJvdyhlbGVtZW50KTtcbiAgICBjb25zdCBub3JtYWxpemVkQWN0aW9uID0gdGhpcy5ub3JtYWxpemVBY3Rpb24oYWN0aW9uLCBjdHgpO1xuICAgIGNvbnN0IHJ1bGUgPSB0aGlzLnJ1bGVzW25vcm1hbGl6ZWRBY3Rpb25dO1xuXG4gICAgaWYgKHJ1bGUpIHtcbiAgICAgIHJldHVybiBydWxlKHJvdywgY3R4KTtcbiAgICB9XG5cbiAgICByZXR1cm4gcm93LmF2YWlsU3RhdHVzICE9PSAnZGlzcG9zZWQnIHx8IHJvdy50eXBlbmFtZSA9PT0gJ0FsZXJ0JztcbiAgfVxuXG4gIGdldFZhbGlkQWN0aW9ucyhhY3Rpb25zOiBzdHJpbmdbXSwgZWxlbWVudDogYW55LCBjdHg6IEFjdGlvbkNvbnRleHQgPSB7fSk6IHN0cmluZ1tdIHtcbiAgICBpZiAoIWFjdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIFtdO1xuICAgIFxuICAgIGxldCB2YWxpZEFjdGlvbnMgPSBhY3Rpb25zLmZpbHRlcihhY3Rpb24gPT4gXG4gICAgICB0aGlzLmlzQWN0aW9uVmFsaWQoYWN0aW9uLCBlbGVtZW50LCBjdHgpXG4gICAgKTtcblxuICAgIGlmIChjdHgudGFibGVUeXBlID09PSAncmVjcnVpdG1lbnRMaXN0aW5nJykge1xuICAgICAgdmFsaWRBY3Rpb25zID0gdGhpcy5hcHBseVJlY3J1aXRtZW50RmlsdGVycyh2YWxpZEFjdGlvbnMsIGVsZW1lbnQpO1xuICAgIH1cblxuICAgIHJldHVybiB2YWxpZEFjdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIGFwcGx5UmVjcnVpdG1lbnRGaWx0ZXJzKGFjdGlvbnM6IHN0cmluZ1tdLCBlbGVtZW50OiBhbnkpOiBzdHJpbmdbXSB7XG4gICAgbGV0IGZpbHRlcmVkID0gWy4uLmFjdGlvbnNdO1xuXG4gICAgaWYgKGVsZW1lbnQ/LnN0YXR1cyA9PT0gJ2hpcmVkJyAmJiAhZWxlbWVudD8uaXNfZGVsZXRlZCkge1xuICAgICAgZmlsdGVyZWQgPSBmaWx0ZXJlZC5maWx0ZXIoYWN0aW9uID0+IFxuICAgICAgICAhWydjaGFuZ2VzdGF0dXMnLCAndW5hcmNoaXZlJywgJ2FyY2hpdmUnLCAnZWRpdCddLmluY2x1ZGVzKGFjdGlvbilcbiAgICAgICk7XG4gICAgfVxuXG4gICAgaWYgKGVsZW1lbnQ/LmlzX2RlbGV0ZWQpIHtcbiAgICAgIGZpbHRlcmVkID0gZmlsdGVyZWQuZmlsdGVyKGFjdGlvbiA9PiBhY3Rpb24gIT09ICdjaGFuZ2VzdGF0dXMnKTtcbiAgICB9XG5cbiAgICBpZiAoZWxlbWVudD8ub2ZmZXJfbGV0dGVyID09PSBudWxsKSB7XG4gICAgICBmaWx0ZXJlZCA9IGZpbHRlcmVkLmZpbHRlcihhY3Rpb24gPT4gXG4gICAgICAgICFbJ2Rvd25sb2FkJywgJ3ZpZXcnXS5pbmNsdWRlcyhhY3Rpb24pXG4gICAgICApO1xuICAgIH1cblxuICAgIHJldHVybiBmaWx0ZXJlZDtcbiAgfVxufSJdfQ==
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import * as i0 from "@angular/core";
|
|
2
|
-
export interface ActionContext {
|
|
3
|
-
tableType?: string;
|
|
4
|
-
packageData?: boolean;
|
|
5
|
-
showUnLink?: boolean;
|
|
6
|
-
currentUserId?: string | number;
|
|
7
|
-
}
|
|
8
|
-
export declare class RowActionService {
|
|
9
|
-
private readonly STATUS_SETS;
|
|
10
|
-
private readonly ACTION_ALIASES;
|
|
11
|
-
private readonly rules;
|
|
12
|
-
private normalizeRow;
|
|
13
|
-
private normalizeAction;
|
|
14
|
-
private canArchiveOrDelete;
|
|
15
|
-
private canEdit;
|
|
16
|
-
isActionValid(action: string, element: any, ctx?: ActionContext): boolean;
|
|
17
|
-
getValidActions(actions: string[], element: any, ctx?: ActionContext): string[];
|
|
18
|
-
private applyRecruitmentFilters;
|
|
19
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<RowActionService, never>;
|
|
20
|
-
static ɵprov: i0.ɵɵInjectableDeclaration<RowActionService>;
|
|
21
|
-
}
|