@annalib/anna-core 37.0.28 → 37.0.31

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.
@@ -4,6 +4,7 @@ export interface IGtTableHeader {
4
4
  headerInfo: IHeaderInfo[];
5
5
  visible: boolean;
6
6
  width: string;
7
+ isFixedGroup?: boolean;
7
8
  rowspan?: number;
8
9
  colspan?: number;
9
10
  rowNumber?: number;
@@ -14,6 +15,20 @@ export type TDCellClass = "CENTRE";
14
15
  export interface IHeaderInfo {
15
16
  name: string;
16
17
  objectKey: string;
18
+ isVisible?: boolean;
19
+ visibleOrder?: number;
20
+ defaultShowTooltipIcon?: boolean;
21
+ defaultFilterConfig?: {
22
+ filter?: FILTERTYPE;
23
+ filterSortObjectKeys?: string[];
24
+ isSortRequired?: boolean[];
25
+ isFilterRequired?: boolean[];
26
+ };
27
+ activeFilterSortObjectKeys?: string[];
28
+ activeIsSortRequired?: boolean[];
29
+ activeIsFilterRequired?: boolean[];
30
+ customizeLabel?: string;
31
+ isChecked?: boolean;
17
32
  actionKey?: string;
18
33
  tooltipKey?: string;
19
34
  isDisabledKey?: string;
@@ -1,44 +1,74 @@
1
- import { ICustomizableColumn, IGtTableHeader } from '../models/anna-non-editable-gt-models';
1
+ import { IGtTableHeader } from "../models/anna-non-editable-gt-models";
2
2
  import * as i0 from "@angular/core";
3
3
  export declare class CustomizableColumnsService {
4
4
  /**
5
- * Applies table preferences by updating customizable columns and table headers visibility
6
- * @param customizableColumnsList - List of customizable columns to update
5
+ * Applies table preferences by updating table headers visibility and checked state
7
6
  * @param tableHeaders - Table headers to update visibility for
8
- * @param selectedObjectKeys - Array of selected column object keys from preferences
7
+ * @param selectedColumnNames - Array of selected column object keys from preferences
9
8
  */
10
- applyTablePreferences(customizableColumnsList: ICustomizableColumn[], tableHeaders: IGtTableHeader[], selectedObjectKeys: string[]): void;
9
+ applyColumnPreferences(tableHeaders: IGtTableHeader[], selectedColumnNames: string[]): void;
11
10
  /**
12
- * Extracts all visible object keys from table headers
13
- * @param headers - Table headers to extract visible keys from
14
- * @returns Set of visible object keys
11
+ * Ensures a header carries immutable copies of its default filter/tooltip configuration.
12
+ */
13
+ private ensureHeaderDefaultsAreStored;
14
+ /**
15
+ * Checks if a filter configuration has any filter settings
16
+ * @param config - Filter configuration to check
17
+ * @returns True if configuration has filter settings, false otherwise
18
+ */
19
+ private isFilterConfigPopulated;
20
+ /**
21
+ * Applies filter state for a header group based on visible headers and the selected filter header
22
+ * @param headerGroup - Header group to apply filter state to
23
+ * @param visibleHeaders - Array of visible header info
24
+ * @param firstHeaderWithFilter - Visible header with filter configuration
25
+ */
26
+ private updateGroupFilterState;
27
+ /**
28
+ * Checks if a header's filter config has keys that match visible columns
29
+ * @param header - Header to check
30
+ * @param visibleObjectKeys - Set of visible column keys
31
+ * @returns True if header has filter keys for visible columns, false otherwise
15
32
  */
16
- getVisibleObjectKeys(headers: IGtTableHeader[]): Set<string>;
33
+ private headerHasVisibleColumnKeys;
17
34
  /**
18
- * Updates customizable columns list state based on selected columns
19
- * @param customizableColumnsList - List of customizable columns to update
20
- * @param selectedColumns - Array of selected column object keys
35
+ * Applies filter configuration to header info and updates active filter states
36
+ * @param header - Header info to apply configuration to
37
+ * @param config - Filter configuration to apply (if undefined, clears filter config)
21
38
  */
22
- updateCustomizableColumnsState(customizableColumnsList: ICustomizableColumn[], selectedColumns: string[]): void;
39
+ private applyFilterConfigToHeader;
23
40
  /**
24
- * Detects if any columns were hidden by comparing previous and new visible columns
25
- * @param previousHeaders - Previous table headers
26
- * @param newHeaders - New table headers after customization
27
- * @returns true if any column was hidden, false otherwise
41
+ * Filters the default filter configuration to only include allowed keys
42
+ * @param defaultConfig - Default filter configuration to filter
43
+ * @param visibleColumnKeys - Set of allowed object keys
44
+ * @returns Filtered configuration with only allowed keys, or undefined if no config
28
45
  */
29
- detectHiddenColumns(previousHeaders: IGtTableHeader[], newHeaders: IGtTableHeader[]): boolean;
46
+ private buildFilteredConfig;
47
+ /**
48
+ * Extracts selected (checked) column object keys from table headers
49
+ * @param tableHeaders - Table headers to extract from
50
+ * @returns Array of selected column object keys (only non-fixed columns)
51
+ */
52
+ collectSelectedColumnKeys(tableHeaders: IGtTableHeader[]): string[];
30
53
  /**
31
54
  * Gets the count of fixed columns in the customizable columns list
32
- * @param customizableColumnsList - List of customizable columns
55
+ * @param tableHeaders - Table headers to count fixed columns from
33
56
  * @returns Number of fixed columns
34
57
  */
35
- getFixedColumnsCount(customizableColumnsList: ICustomizableColumn[]): number;
58
+ countFixedColumns(tableHeaders: IGtTableHeader[]): number;
36
59
  /**
37
- * Extracts selected (checked) column object keys from customizable columns list
38
- * @param customizableColumnsList - List of customizable columns
39
- * @returns Array of selected column object keys (only non-fixed columns)
60
+ * Checks if visible columns have changed between previous and new headers
61
+ * @param previousHeaders - Previous table headers to compare
62
+ * @param newHeaders - New table headers to compare
63
+ * @returns True if visible columns have changed, false otherwise
64
+ */
65
+ haveVisibleColumnKeysChanged(previousHeaders: IGtTableHeader[], newHeaders: IGtTableHeader[]): boolean;
66
+ /**
67
+ * Extracts all visible object keys from table headers
68
+ * @param headers - Table headers to extract visible keys from
69
+ * @returns Set of visible object keys
40
70
  */
41
- getSelectedColumns(customizableColumnsList: ICustomizableColumn[]): string[];
71
+ collectVisibleObjectKeys(headers: IGtTableHeader[]): Set<string>;
42
72
  static ɵfac: i0.ɵɵFactoryDeclaration<CustomizableColumnsService, never>;
43
73
  static ɵprov: i0.ɵɵInjectableDeclaration<CustomizableColumnsService>;
44
74
  }
@@ -3,10 +3,11 @@ import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
3
3
  import { BehaviorSubject } from "rxjs";
4
4
  import { GtColumnIconEmittedData, RatingSellerGroupHierarchy } from "../../../anna-core-shared-lib/models/anna-generic-data-type.model";
5
5
  import { IWeekCalendar } from "../../../anna-core-shared-lib/models/anna-global-dropdown-config.model";
6
- import { EllipsisWithTableTooltip, ICustomizableColumn, IGtGeneralConfig, IGtTableHeader, IHeaderInfo, InnerHTMLTooltipAction, ITimeInputData, ITotalRowInfo } from "../../../anna-core-shared-lib/models/anna-non-editable-gt-models";
6
+ import { EllipsisWithTableTooltip, IGtGeneralConfig, IGtTableHeader, IHeaderInfo, InnerHTMLTooltipAction, ITimeInputData, ITotalRowInfo } from "../../../anna-core-shared-lib/models/anna-non-editable-gt-models";
7
7
  import { AnnaDateTimeFormatService } from "../../../anna-core-shared-lib/services/anna-date-time-format.service";
8
8
  import { AnnaFilterService } from "../../../anna-core-shared-lib/services/anna-filter.service";
9
9
  import { AnnaSortService } from "../../../anna-core-shared-lib/services/anna-sort.service";
10
+ import { CustomizableColumnsService } from "../../../anna-core-shared-lib/services/customizable-columns.service";
10
11
  import * as i0 from "@angular/core";
11
12
  interface TableTooltipType {
12
13
  tooltipTableHeader: string[];
@@ -21,6 +22,7 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
21
22
  annaDateTimeFormatService: AnnaDateTimeFormatService;
22
23
  annaFilterService: AnnaFilterService;
23
24
  modalService: NgbModal;
25
+ private customizableColumnsService;
24
26
  showSkeletonLoading: boolean;
25
27
  tableHeaders: IGtTableHeader[];
26
28
  tableData: any[];
@@ -54,7 +56,6 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
54
56
  multipleTablesPresent: boolean;
55
57
  showOrHideToggleForTotalRow: boolean;
56
58
  enableCustomizableColumns: boolean;
57
- customizableColumnsList: ICustomizableColumn[];
58
59
  toggleCheckbox: EventEmitter<any>;
59
60
  toggleRowCheckbox: EventEmitter<any>;
60
61
  toggleHeaderCheckbox: EventEmitter<any>;
@@ -180,7 +181,8 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
180
181
  open: () => void;
181
182
  close: () => void;
182
183
  };
183
- customizableColumnsListClone: ICustomizableColumn[];
184
+ tableHeadersClone: IGtTableHeader[];
185
+ private initialCustomizeSelectedColumns;
184
186
  customizeColumnsModalReference: any;
185
187
  customizeColumnsModal: TemplateRef<any>;
186
188
  statusNoteTooltip: any;
@@ -201,7 +203,7 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
201
203
  time: string;
202
204
  }[];
203
205
  selectedRowForTimeEdit: any;
204
- constructor(cdRef: ChangeDetectorRef, annaSortService: AnnaSortService, annaDateTimeFormatService: AnnaDateTimeFormatService, annaFilterService: AnnaFilterService, modalService: NgbModal);
206
+ constructor(cdRef: ChangeDetectorRef, annaSortService: AnnaSortService, annaDateTimeFormatService: AnnaDateTimeFormatService, annaFilterService: AnnaFilterService, modalService: NgbModal, customizableColumnsService: CustomizableColumnsService);
205
207
  ngAfterViewChecked(): void;
206
208
  ngOnInit(): void;
207
209
  detectChanges(): void;
@@ -277,9 +279,13 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
277
279
  timeInputTooltipClickedInTableBody(event: ITimeInputData, rowData: any): void;
278
280
  timeSelectedInTableRow(event: string[][]): void;
279
281
  openCustomizeColumnsModal(): void;
280
- selectUnselectCustomizeColumns(column: ICustomizableColumn): void;
282
+ selectUnselectCustomizeColumns(objectKey: string): void;
283
+ getSelectedColumnsCount(): number;
284
+ selectAllCustomizeColumns(): void;
285
+ unselectAllCustomizeColumns(): void;
286
+ hasCustomizeSelectionChanged(): boolean;
281
287
  customizeColumns(customize: boolean): void;
282
288
  static ɵfac: i0.ɵɵFactoryDeclaration<AnnaNonEditableGenericTableComponent, never>;
283
- static ɵcmp: i0.ɵɵComponentDeclaration<AnnaNonEditableGenericTableComponent, "anna-core-non-editable-generic-table-lib", never, { "showSkeletonLoading": { "alias": "showSkeletonLoading"; "required": false; }; "tableHeaders": { "alias": "tableHeaders"; "required": true; }; "tableData": { "alias": "tableData"; "required": true; }; "clonedTableData": { "alias": "clonedTableData"; "required": true; }; "gtGeneralConfig": { "alias": "gtGeneralConfig"; "required": true; }; "totalRowInfo": { "alias": "totalRowInfo"; "required": false; }; "gtDimension": { "alias": "gtDimension"; "required": true; }; "extraHeaderRowForAdjustingColumnWidths": { "alias": "extraHeaderRowForAdjustingColumnWidths"; "required": false; }; "tableClass": { "alias": "tableClass"; "required": false; }; "maximumRowsWhichCanBeRenderedWithoutScroll": { "alias": "maximumRowsWhichCanBeRenderedWithoutScroll"; "required": false; }; "fixNumberOfRowsForPopup": { "alias": "fixNumberOfRowsForPopup"; "required": false; }; "fixRowsToRender": { "alias": "fixRowsToRender"; "required": false; }; "includeBorderInTableHeight": { "alias": "includeBorderInTableHeight"; "required": false; }; "downloadInProgress": { "alias": "downloadInProgress"; "required": false; }; "percentDone": { "alias": "percentDone"; "required": false; }; "starredInProgress": { "alias": "starredInProgress"; "required": false; }; "clickableRow": { "alias": "clickableRow"; "required": false; }; "setTableHeightWhenRowSizeIsFixed": { "alias": "setTableHeightWhenRowSizeIsFixed"; "required": false; }; "tableBorderBottomClassRequired": { "alias": "tableBorderBottomClassRequired"; "required": false; }; "hideSomeTds": { "alias": "hideSomeTds"; "required": false; }; "tdsHaveRowSpan": { "alias": "tdsHaveRowSpan"; "required": false; }; "multipleTablesPresent": { "alias": "multipleTablesPresent"; "required": false; }; "showOrHideToggleForTotalRow": { "alias": "showOrHideToggleForTotalRow"; "required": false; }; "enableCustomizableColumns": { "alias": "enableCustomizableColumns"; "required": false; }; "customizableColumnsList": { "alias": "customizableColumnsList"; "required": false; }; }, { "toggleCheckbox": "toggleCheckbox"; "toggleRowCheckbox": "toggleRowCheckbox"; "toggleHeaderCheckbox": "toggleHeaderCheckbox"; "undoIconClicked": "undoIconClicked"; "filterAppliedToTable": "filterAppliedToTable"; "sortingAppliedToTable": "sortingAppliedToTable"; "rowClicked": "rowClicked"; "radioButtonSelected": "radioButtonSelected"; "columnFilterOpened": "columnFilterOpened"; "columnFilterClosed": "columnFilterClosed"; "gtIconClicked": "gtIconClicked"; "gtSVGIconClicked": "gtSVGIconClicked"; "gtTextActionClicked": "gtTextActionClicked"; "gtViewDetailClicked": "gtViewDetailClicked"; "gtInnerHTMLClicked": "gtInnerHTMLClicked"; "downloadSpotDetails": "downloadSpotDetails"; "clickableDataClicked": "clickableDataClicked"; "totalRowIconClicked": "totalRowIconClicked"; "notificationIconHover": "notificationIconHover"; "notificationIconHoverLeave": "notificationIconHoverLeave"; "editableInputEdited": "editableInputEdited"; "radioButtonMessageIconClicked": "radioButtonMessageIconClicked"; "statusNotePopupOpened": "statusNotePopupOpened"; "textPopupOpened": "textPopupOpened"; "digitOnlyInputChanged": "digitOnlyInputChanged"; "singleSelectDropdownValueEmit": "singleSelectDropdownValueEmit"; "timeSelected": "timeSelected"; "totalRowRadioButtonClicked": "totalRowRadioButtonClicked"; "totalRowRadioButtonIconClicked": "totalRowRadioButtonIconClicked"; "columnsCustomized": "columnsCustomized"; "acfiRateInputChanged": "acfiRateInputChanged"; "acfiRateCopyRequested": "acfiRateCopyRequested"; }, never, never, true, never>;
289
+ static ɵcmp: i0.ɵɵComponentDeclaration<AnnaNonEditableGenericTableComponent, "anna-core-non-editable-generic-table-lib", never, { "showSkeletonLoading": { "alias": "showSkeletonLoading"; "required": false; }; "tableHeaders": { "alias": "tableHeaders"; "required": true; }; "tableData": { "alias": "tableData"; "required": true; }; "clonedTableData": { "alias": "clonedTableData"; "required": true; }; "gtGeneralConfig": { "alias": "gtGeneralConfig"; "required": true; }; "totalRowInfo": { "alias": "totalRowInfo"; "required": false; }; "gtDimension": { "alias": "gtDimension"; "required": true; }; "extraHeaderRowForAdjustingColumnWidths": { "alias": "extraHeaderRowForAdjustingColumnWidths"; "required": false; }; "tableClass": { "alias": "tableClass"; "required": false; }; "maximumRowsWhichCanBeRenderedWithoutScroll": { "alias": "maximumRowsWhichCanBeRenderedWithoutScroll"; "required": false; }; "fixNumberOfRowsForPopup": { "alias": "fixNumberOfRowsForPopup"; "required": false; }; "fixRowsToRender": { "alias": "fixRowsToRender"; "required": false; }; "includeBorderInTableHeight": { "alias": "includeBorderInTableHeight"; "required": false; }; "downloadInProgress": { "alias": "downloadInProgress"; "required": false; }; "percentDone": { "alias": "percentDone"; "required": false; }; "starredInProgress": { "alias": "starredInProgress"; "required": false; }; "clickableRow": { "alias": "clickableRow"; "required": false; }; "setTableHeightWhenRowSizeIsFixed": { "alias": "setTableHeightWhenRowSizeIsFixed"; "required": false; }; "tableBorderBottomClassRequired": { "alias": "tableBorderBottomClassRequired"; "required": false; }; "hideSomeTds": { "alias": "hideSomeTds"; "required": false; }; "tdsHaveRowSpan": { "alias": "tdsHaveRowSpan"; "required": false; }; "multipleTablesPresent": { "alias": "multipleTablesPresent"; "required": false; }; "showOrHideToggleForTotalRow": { "alias": "showOrHideToggleForTotalRow"; "required": false; }; "enableCustomizableColumns": { "alias": "enableCustomizableColumns"; "required": false; }; }, { "toggleCheckbox": "toggleCheckbox"; "toggleRowCheckbox": "toggleRowCheckbox"; "toggleHeaderCheckbox": "toggleHeaderCheckbox"; "undoIconClicked": "undoIconClicked"; "filterAppliedToTable": "filterAppliedToTable"; "sortingAppliedToTable": "sortingAppliedToTable"; "rowClicked": "rowClicked"; "radioButtonSelected": "radioButtonSelected"; "columnFilterOpened": "columnFilterOpened"; "columnFilterClosed": "columnFilterClosed"; "gtIconClicked": "gtIconClicked"; "gtSVGIconClicked": "gtSVGIconClicked"; "gtTextActionClicked": "gtTextActionClicked"; "gtViewDetailClicked": "gtViewDetailClicked"; "gtInnerHTMLClicked": "gtInnerHTMLClicked"; "downloadSpotDetails": "downloadSpotDetails"; "clickableDataClicked": "clickableDataClicked"; "totalRowIconClicked": "totalRowIconClicked"; "notificationIconHover": "notificationIconHover"; "notificationIconHoverLeave": "notificationIconHoverLeave"; "editableInputEdited": "editableInputEdited"; "radioButtonMessageIconClicked": "radioButtonMessageIconClicked"; "statusNotePopupOpened": "statusNotePopupOpened"; "textPopupOpened": "textPopupOpened"; "digitOnlyInputChanged": "digitOnlyInputChanged"; "singleSelectDropdownValueEmit": "singleSelectDropdownValueEmit"; "timeSelected": "timeSelected"; "totalRowRadioButtonClicked": "totalRowRadioButtonClicked"; "totalRowRadioButtonIconClicked": "totalRowRadioButtonIconClicked"; "columnsCustomized": "columnsCustomized"; "acfiRateInputChanged": "acfiRateInputChanged"; "acfiRateCopyRequested": "acfiRateCopyRequested"; }, never, never, true, never>;
284
290
  }
285
291
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@annalib/anna-core",
3
- "version": "37.0.28",
3
+ "version": "37.0.31",
4
4
  "peerDependencies": {
5
5
  "@angular-slider/ngx-slider": "^19.0.0",
6
6
  "@angular/common": "^19.2.10",