ms-data-grid 0.0.119 → 0.0.121

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,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[];
@@ -118,8 +115,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
118
115
  nestedTablerowFontsize: number;
119
116
  nestedTableHeaderRowHeight: number;
120
117
  nestedTablerowHeight: number;
121
- packageData: boolean;
122
- showUnLink: any;
123
118
  gridType: string;
124
119
  currencySymbol: string;
125
120
  currencyFormat: string;
@@ -144,11 +139,12 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
144
139
  enableCut: boolean;
145
140
  tabs: string[];
146
141
  showCheckboxes: boolean;
147
- pageSizeOptions: number[];
142
+ consumerFont: string | null;
143
+ defaultConfig: DataGridConfig | null;
148
144
  resetAllFilters: {
149
145
  resetAll: boolean;
150
146
  };
151
- defaultConfig: DataGridConfig | null;
147
+ pageSizeOptions: number[];
152
148
  columnThreedotsMunuConfig: {
153
149
  showPinleft: boolean;
154
150
  showPinright: boolean;
@@ -161,8 +157,8 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
161
157
  showChoseColumns: boolean;
162
158
  showResetColumns: boolean;
163
159
  };
164
- validateIcon: boolean;
165
160
  cellHosts: QueryList<CellHostDirective>;
161
+ globalSearchInput: ElementRef<HTMLInputElement>;
166
162
  changeLayout: EventEmitter<any>;
167
163
  customCellEvent: EventEmitter<any>;
168
164
  filterOptions: EventEmitter<any>;
@@ -170,7 +166,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
170
166
  tablePresetConfig: EventEmitter<any>;
171
167
  sortingOrderOptions: EventEmitter<any>;
172
168
  createUpdateConfigListing: EventEmitter<any>;
173
- storePresetName: string;
174
169
  isFullScreen: boolean;
175
170
  activeTab: string | null;
176
171
  groupedColumns: any[];
@@ -188,6 +183,7 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
188
183
  filterColumnsList: any[];
189
184
  groupBoxPadding: number;
190
185
  presetName: string;
186
+ storePresetName: string;
191
187
  presetFilter: boolean;
192
188
  searchTextPresetTable: string;
193
189
  addFilterColumnInput: string;
@@ -203,14 +199,13 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
203
199
  fontFamilies: string[];
204
200
  fontSizes: string[];
205
201
  hasScroll: boolean;
206
- constructor(columnService: SplitColumnsService, cdr: ChangeDetectorRef, commonSevice: CommonService, elementRef: ElementRef, ngZone: NgZone, copyService: CopyServiceService, renderer: Renderer2, sanitizer: DomSanitizer, exportService: ExportService, datePipe: DatePipe, formatCurrency: FormatCurrencyPipe, actionValidator: RowActionService);
202
+ constructor(columnService: SplitColumnsService, cdr: ChangeDetectorRef, commonSevice: CommonService, elementRef: ElementRef, ngZone: NgZone, copyService: CopyServiceService, renderer: Renderer2, sanitizer: DomSanitizer, exportService: ExportService, datePipe: DatePipe, formatCurrency: FormatCurrencyPipe);
207
203
  cellText: any;
208
204
  nestedHeader: ElementRef;
209
205
  ngAfterViewInit(): Promise<void>;
210
206
  private injector;
211
207
  createCellInjector(row: any, col: any): Injector;
212
208
  private renderCustomCells;
213
- shouldRestoreScroll: boolean;
214
209
  ngAfterViewChecked(): void;
215
210
  ngOnInit(): void;
216
211
  dataSetLoading: boolean;
@@ -234,7 +229,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
234
229
  leftPinnedHeader: ElementRef<HTMLDivElement>;
235
230
  centerPinnedHeader: ElementRef<HTMLDivElement>;
236
231
  rightPinnedHeader: ElementRef<HTMLDivElement>;
237
- globalSearchInput: ElementRef<HTMLInputElement>;
238
232
  columnsGroupedBox: ElementRef<HTMLDivElement>;
239
233
  centerFakeScrollbar: ElementRef<HTMLDivElement>;
240
234
  updateColumnWidthsAndGroups(columns?: any): Promise<void>;
@@ -246,25 +240,6 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
246
240
  isNestedValueArray(obj: any, field: string): boolean;
247
241
  onResizeGroup(event: MouseEvent, col: any, isRightPinned?: boolean): void;
248
242
  private updateColumnWidthInSourceByField;
249
- get createUpdateColumnConfig(): {
250
- columns: any[];
251
- filters: any[];
252
- no_of_records: any;
253
- table_config: {
254
- rowShadingEnabled: boolean;
255
- showVerticalBorder: boolean;
256
- fontFaimly: string;
257
- headerTextFontsSize: number;
258
- selectedTableLayout: any;
259
- bodyTextFontsSize: number;
260
- globalSearch: string;
261
- filterNames: string;
262
- totalCount: number;
263
- activeFilters: boolean;
264
- oddRowsBackgroundColor: string;
265
- };
266
- type: string;
267
- };
268
243
  cleanColumns(columns: any[]): any[];
269
244
  onResizeColumn(event: MouseEvent, col: any): void;
270
245
  onResizeGroupBox(event: MouseEvent): void;
@@ -279,10 +254,11 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
279
254
  closeFilterDropdowns(event: MouseEvent): void;
280
255
  private hasParentWithClass;
281
256
  isMenueHidden: boolean;
282
- openThreeDotsMenu(event: MouseEvent, child: any, keepOriginalPosition?: boolean): void;
257
+ clickedOnSortIcon: boolean;
258
+ openThreeDotsMenu(event: MouseEvent, child: any, clickedOnSortIcon?: boolean): void;
283
259
  sortAsc(col: any): void;
284
260
  sortDesc(col: any): void;
285
- resetSort(col: any): void;
261
+ resetSort(col?: any): void;
286
262
  updateColumnPinInSourceByField(column: any, pinned: 'left' | 'right' | null, isNestedTable?: any, columns?: any): Promise<void>;
287
263
  private getVisibleLeafColumns;
288
264
  autosizeColumn(cols: any | any[]): void;
@@ -425,8 +401,8 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
425
401
  firstValue: any;
426
402
  firstCondition: string;
427
403
  secondValue: any;
428
- secondCondition: string | null;
429
- condition: string | null;
404
+ secondCondition: null;
405
+ condition: string;
430
406
  resetTextFilterChanges(): void;
431
407
  toggleAllValusSelectionInDropdownFilter(column: any): void;
432
408
  selectedFilterOptions: any[];
@@ -434,13 +410,12 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
434
410
  toggleSelectionInFilter(option: any): void;
435
411
  resetFilterChanges(): void;
436
412
  applyDropdownFilter(): void;
437
- private findColumn;
438
413
  isFilterAppliedOnColumn(column: any): boolean;
439
414
  toggleSelectAllSideFilters(col: any, event: Event): void;
440
415
  isAllSideFilterOptionsSelected(col: any): boolean;
441
416
  onOptionToggle(col: any, option: any): void;
442
417
  resetSideFilter(col: any): void;
443
- clearAllFilters(shouldUpdateConfigListing?: boolean): void;
418
+ clearAllFilters(): void;
444
419
  applySideFilter(column: any): void;
445
420
  removeSideFilter(column: any): void;
446
421
  collapseAllExpandedCells(): void;
@@ -469,7 +444,8 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
469
444
  id: string;
470
445
  is_temp: boolean;
471
446
  };
472
- selectFilter(data: any): Promise<void>;
447
+ activeIndex: number | null | undefined;
448
+ selectFilter(data: any, index?: any): Promise<void>;
473
449
  savePreset(control?: any): void;
474
450
  getFilterHeaders(filters: any[], columns: any[]): string;
475
451
  toggleRowShading(): void;
@@ -605,6 +581,7 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
605
581
  hasAnyDefaultView(): boolean;
606
582
  get isTablePresetNotChanged(): any;
607
583
  onActionButtonClick(button: string): void;
584
+ createCustomColumn(): void;
608
585
  setActiveTab(tab: string | null): void;
609
586
  getBackgroundColor(row: any, isEven: boolean, section: 'left' | 'center' | 'right'): string | undefined;
610
587
  hasHorizontalScrollbar(): boolean;
@@ -625,30 +602,11 @@ export declare class DataGridComponent implements OnChanges, AfterViewInit, OnIn
625
602
  selectGroupRow(e: Event, row: any): void;
626
603
  getGroupCheckedState(row: any): boolean | undefined;
627
604
  getCellTitle(row: any, col: any): string;
628
- finishEdit(event: any): void;
629
- getDynamicRight(col: any, section: string, colIndex: number, subColIndex: number): number | null;
630
- blurInput(event: Event, row: any, col: any): void;
631
- getValidActions(element: any): string[];
632
- private isStatusField;
633
- /**
634
- * Capitalizes the first letter of each word in a string
635
- * Handles: spaced words, camelCase, snake_case, kebab-case, and compound words
636
- */
637
- private capitalizeStatus;
638
- gridContext: {
639
- applyFilter: (col: any) => void;
640
- clearFilter: (col: any) => void;
641
- };
642
- private closeAllFilterMenus;
643
- private emitFilters;
644
- applyFilterOnColumn(col: any): void;
645
- removeFilterFromColumn(col: any): void;
646
- private replaceColumnQuery;
647
- getFormatedDate(val: any): string;
648
- /**
649
- * Closes all expanded detail rows
650
- */
651
- closeAllExpandedRows(): void;
605
+ activeFilterType: string;
606
+ activeFilter(type: string): void;
607
+ duplicateFilter(): void;
608
+ renameFilter(filter: any): void;
609
+ deleteFilter(filter: any): void;
652
610
  static ɵfac: i0.ɵɵFactoryDeclaration<DataGridComponent, never>;
653
- 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; }; "packageData": { "alias": "packageData"; "required": false; }; "showUnLink": { "alias": "showUnLink"; "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; }; "pageSizeOptions": { "alias": "pageSizeOptions"; "required": false; }; "resetAllFilters": { "alias": "resetAllFilters"; "required": false; }; "defaultConfig": { "alias": "defaultConfig"; "required": false; }; "columnThreedotsMunuConfig": { "alias": "columnThreedotsMunuConfig"; "required": false; }; "validateIcon": { "alias": "validateIcon"; "required": false; }; }, { "changeLayout": "changeLayout"; "customCellEvent": "customCellEvent"; "filterOptions": "filterOptions"; "genericEvent": "genericEvent"; "tablePresetConfig": "tablePresetConfig"; "sortingOrderOptions": "sortingOrderOptions"; "createUpdateConfigListing": "createUpdateConfigListing"; }, never, never, false, never>;
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>;
654
612
  }
@@ -1,22 +1,18 @@
1
- import { OnInit, ViewContainerRef, Injector, ComponentRef, Type, EventEmitter, OnDestroy, SimpleChanges, OnChanges } from '@angular/core';
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, OnChanges, OnDestroy {
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; }; "context": { "alias": "context"; "required": false; }; }, { "cellEvent": "cellEvent"; }, never, never, false, never>;
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.119",
3
+ "version": "0.0.121",
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",
@@ -48,4 +48,4 @@
48
48
  "default": "./fesm2022/ms-data-grid.mjs"
49
49
  }
50
50
  }
51
- }
51
+ }
@@ -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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SyxvQkFBb0IsRUFBRTtZQUMxQyxZQUFZLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQztTQUNwRTtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3RCLENBQUM7SUFFTyx1QkFBdUIsQ0FBQyxPQUFpQixFQUFFLE9BQVk7UUFDN0QsSUFBSSxRQUFRLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLElBQUksT0FBTyxFQUFFLE1BQU0sS0FBSyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsVUFBVSxFQUFFO1lBQ3ZELFFBQVEsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQ2xDLENBQUMsQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ25FLENBQUM7U0FDSDtRQUVELElBQUksT0FBTyxFQUFFLFVBQVUsRUFBRTtZQUN2QixRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sS0FBSyxjQUFjLENBQUMsQ0FBQztTQUNqRTtRQUVELElBQUksT0FBTyxFQUFFLFlBQVksS0FBSyxJQUFJLEVBQUU7WUFDbEMsUUFBUSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FDbEMsQ0FBQyxDQUFDLFVBQVUsRUFBRSxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ3ZDLENBQUM7U0FDSDtRQUVELE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7K0dBNUtVLGdCQUFnQjttSEFBaEIsZ0JBQWdCLGNBREgsTUFBTTs7NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIEFjdGlvbkNvbnRleHQge1xyXG4gIHRhYmxlVHlwZT86IHN0cmluZztcclxuICBwYWNrYWdlRGF0YT86IGJvb2xlYW47XHJcbiAgc2hvd1VuTGluaz86IGJvb2xlYW47XHJcbiAgY3VycmVudFVzZXJJZD86IHN0cmluZyB8IG51bWJlcjtcclxufVxyXG5cclxuaW50ZXJmYWNlIE5vcm1hbGl6ZWRSb3cge1xyXG4gIGlzRGVsZXRlZDogYm9vbGVhbjtcclxuICBzdGF0dXM6IHN0cmluZztcclxuICBhdmFpbFN0YXR1czogc3RyaW5nO1xyXG4gIGFjY291bnRTdGF0dXM6IHN0cmluZztcclxuICBhc3NpZ25lZUNvdW50OiBudW1iZXI7XHJcbiAgYXNzaWduZWRUb0lkczogKHN0cmluZyB8IG51bWJlcilbXTtcclxuICBzZXR0bGVtZW50Q29tcGxldGVkOiBib29sZWFuO1xyXG4gIGZpbmFsU2V0dGxlbWVudENvbXBsZXRlZDogYm9vbGVhbjtcclxuICBzdG9yZUVkaXQ6IGJvb2xlYW47XHJcbiAgaXNPd25lcjogYm9vbGVhbjtcclxuICBpc0N1c3RvbUdyYWRlOiBzdHJpbmc7XHJcbiAgcGFyZW50OiBhbnk7XHJcbiAgb2ZmZXJMZXR0ZXI6IGFueTtcclxuICB0eXBlbmFtZTogc3RyaW5nO1xyXG59XHJcblxyXG50eXBlIEFjdGlvblJ1bGUgPSAocm93OiBOb3JtYWxpemVkUm93LCBjdHg6IEFjdGlvbkNvbnRleHQpID0+IGJvb2xlYW47XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUm93QWN0aW9uU2VydmljZSB7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgU1RBVFVTX1NFVFMgPSB7XHJcbiAgICBFRElUX0JMT0NLRUQ6IFtcclxuICAgICAgJ2V4cGlyZWQnLCAnY2xvc2VkJywgJ0Fzc2lnbmluZyBTdG9wJywgJ0V2YWx1YXRpb24gU3RhcnQnLFxyXG4gICAgICAnRXZhbHVhdGlvbiBTdG9wJywgJ0NvbXBsZXRlZCcsICdhcHByb3ZlZCcsICdyZWplY3RlZCcsXHJcbiAgICAgICdwYXJ0aWFsbHknLCAnYWNjZXB0ZWQnXHJcbiAgICBdLFxyXG4gICAgQVJDSElWRV9CTE9DS0VEOiBbXHJcbiAgICAgICdhcHByb3ZlZCcsICdwYXJ0aWFsbHknLCAnQXNzaWduaW5nIFN0YXJ0JyxcclxuICAgICAgJ0NvbXBsZXRlZCcsICdFdmFsdWF0aW9uIFN0YXJ0J1xyXG4gICAgXSxcclxuICAgIERJU1BPU0VEOiBbJ3NjcmFwJywgJ3RyYXNoZWQnLCAnZGlzcG9zZWQnXSxcclxuICAgIFNFUEFSQVRFRDogWyd0ZXJtaW5hdGlvbicsICdyZXNpZ25hdGlvbicsICdyZXRpcmVtZW50JywgJ3NlcGFyYXRlZCddLFxyXG4gICAgVU5BVkFJTEFCTEU6IFsndW5hdmFpbGFibGUnLCAndW5BdmFpbGFibGUnXVxyXG4gIH0gYXMgY29uc3Q7XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgQUNUSU9OX0FMSUFTRVM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XHJcbiAgICBhY2NlcHQ6ICd2aWV3JyxcclxuICAgIGFjaGl2ZTogJ3VuYWN0aXZlJ1xyXG4gIH07XHJcblxyXG4gIHByaXZhdGUgcmVhZG9ubHkgcnVsZXM6IFJlY29yZDxzdHJpbmcsIEFjdGlvblJ1bGU+ID0ge1xyXG4gICAgYXNzaWduaW5nc3RhcnQ6IChyKSA9PiByLnN0YXR1cyA9PT0gJ1RvIGJlIHN0YXJ0IEFzc2lnbmluZycgJiYgIXIuaXNEZWxldGVkLFxyXG4gICAgYXNzaWduaW5nc3RvcDogKHIpID0+IHIuc3RhdHVzID09PSAnQXNzaWduaW5nIFN0YXJ0JyAmJiAhci5pc0RlbGV0ZWQsXHJcbiAgICBldmFsdWF0aW9uc3RhcnQ6IChyKSA9PiByLnN0YXR1cyA9PT0gJ0Fzc2lnbmluZyBTdG9wJyAmJiAhci5pc0RlbGV0ZWQsXHJcbiAgICBjb21wbGV0ZWQ6IChyKSA9PiByLnN0YXR1cyA9PT0gJ0V2YWx1YXRpb24gU3RhcnQnICYmICFyLmlzRGVsZXRlZCxcclxuXHJcbiAgICBhcmNoaXZlOiAocikgPT4gdGhpcy5jYW5BcmNoaXZlT3JEZWxldGUociksXHJcbiAgICB1bmFjdGl2ZTogKHIpID0+IHRoaXMuY2FuQXJjaGl2ZU9yRGVsZXRlKHIpLFxyXG4gICAgZGVsZXRlOiAocikgPT4gdGhpcy5jYW5BcmNoaXZlT3JEZWxldGUociksXHJcblxyXG4gICAgdW5hcmNoaXZlOiAocikgPT4gci5pc0RlbGV0ZWQgJiYgci5hdmFpbFN0YXR1cyAhPT0gJ2Rpc3Bvc2VkJyxcclxuICAgIGFjdGl2ZTogKHIpID0+IHIuaXNEZWxldGVkICYmIHIuYXZhaWxTdGF0dXMgIT09ICdkaXNwb3NlZCcsXHJcblxyXG4gICAgbGluazogKHIpID0+IFxyXG4gICAgICAhdGhpcy5TVEFUVVNfU0VUUy5VTkFWQUlMQUJMRS5pbmNsdWRlcygoci5zdGF0dXMgYXMgYW55KSkgJiZcclxuICAgICAgIXIuaXNEZWxldGVkICYmXHJcbiAgICAgIHIuYXZhaWxTdGF0dXMgIT09ICdkaXNwb3NlZCcgJiZcclxuICAgICAgci5zdGF0dXMgIT09ICdsaW5rZWQnLFxyXG4gICAgdW5saW5rOiAociwgY3R4KSA9PiBjdHguc2hvd1VuTGluayA9PT0gdHJ1ZSAmJiByLnN0YXR1cyA9PT0gJ2xpbmtlZCcsXHJcblxyXG4gICAgcmVqb2luOiAocikgPT4gdGhpcy5TVEFUVVNfU0VUUy5TRVBBUkFURUQuaW5jbHVkZXMoKHIuYWNjb3VudFN0YXR1cyBhcyBhbnkpKSxcclxuICAgIHNldHRsZW1lbnRpbmZvOiAocikgPT4gdGhpcy5TVEFUVVNfU0VUUy5TRVBBUkFURUQuaW5jbHVkZXMoKHIuYWNjb3VudFN0YXR1cyBhcyBhbnkpKSxcclxuXHJcbiAgICBhc3NpZ246IChyKSA9PiByLnN0YXR1cyAhPT0gJ2Fzc2lnbmVkJyxcclxuICAgIGVkaXQ6IChyLCBjdHgpID0+IHRoaXMuY2FuRWRpdChyLCBjdHgpLFxyXG5cclxuICAgIHRyYXNoOiAocikgPT4gIXRoaXMuU1RBVFVTX1NFVFMuRElTUE9TRUQuaW5jbHVkZXMoKHIuYXZhaWxTdGF0dXMgYXMgYW55KSksXHJcbiAgICBzY3JhcDogKHIpID0+ICF0aGlzLlNUQVRVU19TRVRTLkRJU1BPU0VELmluY2x1ZGVzKChyLmF2YWlsU3RhdHVzIGFzIGFueSkpLFxyXG4gICAgcmV0YWluOiAocikgPT4gIXRoaXMuU1RBVFVTX1NFVFMuRElTUE9TRUQuaW5jbHVkZXMoKHIuYXZhaWxTdGF0dXMgYXMgYW55KSksXHJcblxyXG4gICAgZGVmYXVsdGdyYWRlOiAocikgPT4gci5pc0N1c3RvbUdyYWRlICE9PSAnQWN0aXZlJyxcclxuXHJcbiAgICBzdWJzY3JpYmU6IChyLCBjdHgpID0+ICFyLmFzc2lnbmVkVG9JZHMuaW5jbHVkZXMoKGN0eC5jdXJyZW50VXNlcklkIGFzIGFueSkpLFxyXG4gICAgdW5zdWJzY3JpYmU6IChyLCBjdHgpID0+IHIuYXNzaWduZWRUb0lkcy5pbmNsdWRlcygoY3R4LmN1cnJlbnRVc2VySWQgYXMgYW55KSksXHJcblxyXG4gICAgY2hhbmdlc3RhdHVzOiAocikgPT4gIXIuaXNEZWxldGVkLFxyXG5cclxuICAgIGRvd25sb2FkOiAocikgPT4gci5vZmZlckxldHRlciAhPT0gbnVsbCxcclxuICAgIHZpZXc6IChyKSA9PiByLm9mZmVyTGV0dGVyICE9PSBudWxsXHJcbiAgfTtcclxuXHJcbiAgcHJpdmF0ZSBub3JtYWxpemVSb3coZWxlbWVudDogYW55KTogTm9ybWFsaXplZFJvdyB7XHJcbiAgICByZXR1cm4ge1xyXG4gICAgICBpc0RlbGV0ZWQ6IGVsZW1lbnQuaXNfZGVsZXRlZCA9PT0gdHJ1ZSB8fCBlbGVtZW50LmlzX2RlbGV0ZWQgPT09ICd0cnVlJyxcclxuICAgICAgc3RhdHVzOiBlbGVtZW50LnN0YXR1cyB8fCAnJyxcclxuICAgICAgYXZhaWxTdGF0dXM6IGVsZW1lbnQuYXZhaWxTdGF0dXMgfHwgJycsXHJcbiAgICAgIGFjY291bnRTdGF0dXM6IChlbGVtZW50LmFjY291bnRfc3RhdHVzIHx8ICcnKS50b0xvd2VyQ2FzZSgpLFxyXG4gICAgICBhc3NpZ25lZUNvdW50OiBlbGVtZW50LmFzc2lnbmVlPy5sZW5ndGggPz8gMCxcclxuICAgICAgYXNzaWduZWRUb0lkczogZWxlbWVudC5hc3NpZ25lZF90bz8ubWFwKCh4OiBhbnkpID0+IHguaWQpID8/IFtdLFxyXG4gICAgICBzZXR0bGVtZW50Q29tcGxldGVkOiBlbGVtZW50LnNldHRsZW1lbnRfY29tcGxldGVkID09PSB0cnVlLFxyXG4gICAgICBmaW5hbFNldHRsZW1lbnRDb21wbGV0ZWQ6IGVsZW1lbnQuZmluYWxfc2V0dGxlbWVudF9jb21wbGV0ZWQgPT09IHRydWUsXHJcbiAgICAgIHN0b3JlRWRpdDogZWxlbWVudC5zdG9yZV9lZGl0ICE9PSBmYWxzZSxcclxuICAgICAgaXNPd25lcjogZWxlbWVudC5pc19vd25lciA/PyB0cnVlLFxyXG4gICAgICBpc0N1c3RvbUdyYWRlOiBlbGVtZW50LmlzX2N1c3RvbV9ncmFkZSB8fCAnJyxcclxuICAgICAgcGFyZW50OiBlbGVtZW50LnBhcmVudCxcclxuICAgICAgb2ZmZXJMZXR0ZXI6IGVsZW1lbnQub2ZmZXJfbGV0dGVyLFxyXG4gICAgICB0eXBlbmFtZTogZWxlbWVudC5fX3R5cGVuYW1lIHx8ICcnXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBub3JtYWxpemVBY3Rpb24oYWN0aW9uOiBzdHJpbmcsIGN0eDogQWN0aW9uQ29udGV4dCk6IHN0cmluZyB7XHJcbiAgICBsZXQgbm9ybWFsaXplZCA9IHRoaXMuQUNUSU9OX0FMSUFTRVNbYWN0aW9uXSB8fCBhY3Rpb247XHJcblxyXG4gICAgaWYgKGN0eC5wYWNrYWdlRGF0YSkge1xyXG4gICAgICBpZiAoYWN0aW9uID09PSAndW5hcmNoaXZlJykgcmV0dXJuICdhY3RpdmUnO1xyXG4gICAgICBpZiAoYWN0aW9uID09PSAnYXJjaGl2ZScpIHJldHVybiAndW5hY3RpdmUnO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiBub3JtYWxpemVkLnRvTG93ZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGNhbkFyY2hpdmVPckRlbGV0ZShyOiBOb3JtYWxpemVkUm93KTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gKFxyXG4gICAgICAhci5pc0RlbGV0ZWQgJiZcclxuICAgICAgIXIuc2V0dGxlbWVudENvbXBsZXRlZCAmJlxyXG4gICAgICAhci5maW5hbFNldHRsZW1lbnRDb21wbGV0ZWQgJiZcclxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ3Jlc2VydmVkJyAmJlxyXG4gICAgICByLmFzc2lnbmVlQ291bnQgPT09IDAgJiZcclxuICAgICAgci5hdmFpbFN0YXR1cyAhPT0gJ2Rpc3Bvc2VkJyAmJlxyXG4gICAgICByLmF2YWlsU3RhdHVzICE9PSAnbWFpbnRlbmFuY2UnICYmXHJcbiAgICAgIHIuYXZhaWxTdGF0dXMgIT09ICdhc3NpZ25lZCcgJiZcclxuICAgICAgIXRoaXMuU1RBVFVTX1NFVFMuQVJDSElWRV9CTE9DS0VELmluY2x1ZGVzKChyLnN0YXR1cyBhcyBhbnkpKSAmJlxyXG4gICAgICByLnBhcmVudCAhPT0gbnVsbFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgY2FuRWRpdChyOiBOb3JtYWxpemVkUm93LCBjdHg6IEFjdGlvbkNvbnRleHQpOiBib29sZWFuIHtcclxuICAgIGNvbnN0IGlzQmxvY2tlZCA9IFxyXG4gICAgICB0aGlzLlNUQVRVU19TRVRTLkVESVRfQkxPQ0tFRC5pbmNsdWRlcygoci5zdGF0dXMgYXMgYW55KSkgfHxcclxuICAgICAgci5pc0RlbGV0ZWQgfHxcclxuICAgICAgIXIuc3RvcmVFZGl0IHx8XHJcbiAgICAgIHIuYXZhaWxTdGF0dXMgPT09ICdkaXNwb3NlZCcgfHxcclxuICAgICAgci5zZXR0bGVtZW50Q29tcGxldGVkIHx8XHJcbiAgICAgIHIuZmluYWxTZXR0bGVtZW50Q29tcGxldGVkO1xyXG5cclxuICAgIGlmIChpc0Jsb2NrZWQpIHJldHVybiBmYWxzZTtcclxuXHJcbiAgICBpZiAoY3R4LnRhYmxlVHlwZSA9PT0gJ0J1c2luZXNzRXhwZW5zZUxpc3RpbmcnKSB7XHJcbiAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiByLnN0YXR1cyAhPT0gJ2FjY2VwdGVkJyAmJiByLmlzT3duZXI7XHJcbiAgfVxyXG5cclxuICBpc0FjdGlvblZhbGlkKGFjdGlvbjogc3RyaW5nLCBlbGVtZW50OiBhbnksIGN0eDogQWN0aW9uQ29udGV4dCA9IHt9KTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCByb3cgPSB0aGlzLm5vcm1hbGl6ZVJvdyhlbGVtZW50KTtcclxuICAgIGNvbnN0IG5vcm1hbGl6ZWRBY3Rpb24gPSB0aGlzLm5vcm1hbGl6ZUFjdGlvbihhY3Rpb24sIGN0eCk7XHJcbiAgICBjb25zdCBydWxlID0gdGhpcy5ydWxlc1tub3JtYWxpemVkQWN0aW9uXTtcclxuXHJcbiAgICBpZiAocnVsZSkge1xyXG4gICAgICByZXR1cm4gcnVsZShyb3csIGN0eCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHJvdy5hdmFpbFN0YXR1cyAhPT0gJ2Rpc3Bvc2VkJyB8fCByb3cudHlwZW5hbWUgPT09ICdBbGVydCc7XHJcbiAgfVxyXG5cclxuICBnZXRWYWxpZEFjdGlvbnMoYWN0aW9uczogc3RyaW5nW10sIGVsZW1lbnQ6IGFueSwgY3R4OiBBY3Rpb25Db250ZXh0ID0ge30pOiBzdHJpbmdbXSB7XHJcbiAgICBpZiAoIWFjdGlvbnM/Lmxlbmd0aCkgcmV0dXJuIFtdO1xyXG4gICAgXHJcbiAgICBsZXQgdmFsaWRBY3Rpb25zID0gYWN0aW9ucy5maWx0ZXIoYWN0aW9uID0+IFxyXG4gICAgICB0aGlzLmlzQWN0aW9uVmFsaWQoYWN0aW9uLCBlbGVtZW50LCBjdHgpXHJcbiAgICApO1xyXG5cclxuICAgIGlmIChjdHgudGFibGVUeXBlID09PSAncmVjcnVpdG1lbnRMaXN0aW5nJykge1xyXG4gICAgICB2YWxpZEFjdGlvbnMgPSB0aGlzLmFwcGx5UmVjcnVpdG1lbnRGaWx0ZXJzKHZhbGlkQWN0aW9ucywgZWxlbWVudCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHZhbGlkQWN0aW9ucztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYXBwbHlSZWNydWl0bWVudEZpbHRlcnMoYWN0aW9uczogc3RyaW5nW10sIGVsZW1lbnQ6IGFueSk6IHN0cmluZ1tdIHtcclxuICAgIGxldCBmaWx0ZXJlZCA9IFsuLi5hY3Rpb25zXTtcclxuXHJcbiAgICBpZiAoZWxlbWVudD8uc3RhdHVzID09PSAnaGlyZWQnICYmICFlbGVtZW50Py5pc19kZWxldGVkKSB7XHJcbiAgICAgIGZpbHRlcmVkID0gZmlsdGVyZWQuZmlsdGVyKGFjdGlvbiA9PiBcclxuICAgICAgICAhWydjaGFuZ2VzdGF0dXMnLCAndW5hcmNoaXZlJywgJ2FyY2hpdmUnLCAnZWRpdCddLmluY2x1ZGVzKGFjdGlvbilcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoZWxlbWVudD8uaXNfZGVsZXRlZCkge1xyXG4gICAgICBmaWx0ZXJlZCA9IGZpbHRlcmVkLmZpbHRlcihhY3Rpb24gPT4gYWN0aW9uICE9PSAnY2hhbmdlc3RhdHVzJyk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGVsZW1lbnQ/Lm9mZmVyX2xldHRlciA9PT0gbnVsbCkge1xyXG4gICAgICBmaWx0ZXJlZCA9IGZpbHRlcmVkLmZpbHRlcihhY3Rpb24gPT4gXHJcbiAgICAgICAgIVsnZG93bmxvYWQnLCAndmlldyddLmluY2x1ZGVzKGFjdGlvbilcclxuICAgICAgKTtcclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gZmlsdGVyZWQ7XHJcbiAgfVxyXG59Il19
@@ -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
- }