@annalib/anna-core 37.0.27 → 37.0.28

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -271,4 +271,10 @@ export interface IDropdownConfigWithIconForGT {
271
271
  showTooltip: boolean;
272
272
  tooltipData?: string;
273
273
  }
274
+ export interface ICustomizableColumn {
275
+ name: string;
276
+ objectKey: string;
277
+ isFixed: boolean;
278
+ isChecked: boolean;
279
+ }
274
280
  export {};
@@ -16,14 +16,14 @@ export declare class AnnaDateTimeFormatService {
16
16
  addZero(time: any): any;
17
17
  sortByTimeAscending(a: any, b: any): number;
18
18
  sortByTimeDescending(a: any, b: any): number;
19
- compareTime(a: dayjs.Dayjs, b: dayjs.Dayjs, unit: UnitType, isAsc: boolean): 0 | 1 | -1;
19
+ compareTime(a: dayjs.Dayjs, b: dayjs.Dayjs, unit: UnitType, isAsc: boolean): 1 | 0 | -1;
20
20
  convertNgbDateToMoment(ngbDate: NgbDate | NgbDateType): string;
21
21
  compareDate(a: string, b: string, isAsc: boolean): number;
22
22
  static formatTwentyFourHourTimeToHHMMAFormat(value: any, date?: string): string;
23
23
  static formatTwelveHourTimeToHHMMAFormat(timeValue: any, date?: string): string;
24
24
  formatDateAndHHMMATimeToStandardFormat(dateAndTime: any): string;
25
25
  compare(a: number | string, b: number | string, isAsc: boolean): number;
26
- sortDataByBroadcastTimeAsc(firstParamTime: string, secondParamTime: string, broadcastTime: string): 0 | 1 | -1;
26
+ sortDataByBroadcastTimeAsc(firstParamTime: string, secondParamTime: string, broadcastTime: string): 1 | 0 | -1;
27
27
  convertNgbDateToMomentInSpecificFormat(ngbDate: NgbDateType, format: string): string;
28
28
  getBroadcastWeek(startDate: any, format?: string): {
29
29
  start: dayjs.Dayjs;
@@ -0,0 +1,44 @@
1
+ import { ICustomizableColumn, IGtTableHeader } from '../models/anna-non-editable-gt-models';
2
+ import * as i0 from "@angular/core";
3
+ export declare class CustomizableColumnsService {
4
+ /**
5
+ * Applies table preferences by updating customizable columns and table headers visibility
6
+ * @param customizableColumnsList - List of customizable columns to update
7
+ * @param tableHeaders - Table headers to update visibility for
8
+ * @param selectedObjectKeys - Array of selected column object keys from preferences
9
+ */
10
+ applyTablePreferences(customizableColumnsList: ICustomizableColumn[], tableHeaders: IGtTableHeader[], selectedObjectKeys: string[]): void;
11
+ /**
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
15
+ */
16
+ getVisibleObjectKeys(headers: IGtTableHeader[]): Set<string>;
17
+ /**
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
21
+ */
22
+ updateCustomizableColumnsState(customizableColumnsList: ICustomizableColumn[], selectedColumns: string[]): void;
23
+ /**
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
28
+ */
29
+ detectHiddenColumns(previousHeaders: IGtTableHeader[], newHeaders: IGtTableHeader[]): boolean;
30
+ /**
31
+ * Gets the count of fixed columns in the customizable columns list
32
+ * @param customizableColumnsList - List of customizable columns
33
+ * @returns Number of fixed columns
34
+ */
35
+ getFixedColumnsCount(customizableColumnsList: ICustomizableColumn[]): number;
36
+ /**
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)
40
+ */
41
+ getSelectedColumns(customizableColumnsList: ICustomizableColumn[]): string[];
42
+ static ɵfac: i0.ɵɵFactoryDeclaration<CustomizableColumnsService, never>;
43
+ static ɵprov: i0.ɵɵInjectableDeclaration<CustomizableColumnsService>;
44
+ }
@@ -1,8 +1,9 @@
1
1
  import { AfterViewChecked, ChangeDetectorRef, ElementRef, EventEmitter, OnChanges, OnInit, QueryList, SimpleChanges, TemplateRef } from "@angular/core";
2
+ import { NgbModal } from "@ng-bootstrap/ng-bootstrap";
2
3
  import { BehaviorSubject } from "rxjs";
3
4
  import { GtColumnIconEmittedData, RatingSellerGroupHierarchy } from "../../../anna-core-shared-lib/models/anna-generic-data-type.model";
4
5
  import { IWeekCalendar } from "../../../anna-core-shared-lib/models/anna-global-dropdown-config.model";
5
- import { EllipsisWithTableTooltip, IGtGeneralConfig, IGtTableHeader, IHeaderInfo, InnerHTMLTooltipAction, ITimeInputData, ITotalRowInfo } from "../../../anna-core-shared-lib/models/anna-non-editable-gt-models";
6
+ import { EllipsisWithTableTooltip, ICustomizableColumn, IGtGeneralConfig, IGtTableHeader, IHeaderInfo, InnerHTMLTooltipAction, ITimeInputData, ITotalRowInfo } from "../../../anna-core-shared-lib/models/anna-non-editable-gt-models";
6
7
  import { AnnaDateTimeFormatService } from "../../../anna-core-shared-lib/services/anna-date-time-format.service";
7
8
  import { AnnaFilterService } from "../../../anna-core-shared-lib/services/anna-filter.service";
8
9
  import { AnnaSortService } from "../../../anna-core-shared-lib/services/anna-sort.service";
@@ -19,6 +20,7 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
19
20
  private annaSortService;
20
21
  annaDateTimeFormatService: AnnaDateTimeFormatService;
21
22
  annaFilterService: AnnaFilterService;
23
+ modalService: NgbModal;
22
24
  showSkeletonLoading: boolean;
23
25
  tableHeaders: IGtTableHeader[];
24
26
  tableData: any[];
@@ -51,6 +53,8 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
51
53
  tdsHaveRowSpan: boolean;
52
54
  multipleTablesPresent: boolean;
53
55
  showOrHideToggleForTotalRow: boolean;
56
+ enableCustomizableColumns: boolean;
57
+ customizableColumnsList: ICustomizableColumn[];
54
58
  toggleCheckbox: EventEmitter<any>;
55
59
  toggleRowCheckbox: EventEmitter<any>;
56
60
  toggleHeaderCheckbox: EventEmitter<any>;
@@ -98,6 +102,10 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
98
102
  }>;
99
103
  totalRowRadioButtonClicked: EventEmitter<string>;
100
104
  totalRowRadioButtonIconClicked: EventEmitter<string>;
105
+ columnsCustomized: EventEmitter<{
106
+ selectedColumns: string[];
107
+ tableHeaders: IGtTableHeader[];
108
+ }>;
101
109
  acfiRateInputChanged: EventEmitter<{
102
110
  data: any;
103
111
  key: string;
@@ -172,6 +180,9 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
172
180
  open: () => void;
173
181
  close: () => void;
174
182
  };
183
+ customizableColumnsListClone: ICustomizableColumn[];
184
+ customizeColumnsModalReference: any;
185
+ customizeColumnsModal: TemplateRef<any>;
175
186
  statusNoteTooltip: any;
176
187
  statusNoteForTooltip: string;
177
188
  statusNoteForPopup: string;
@@ -190,7 +201,7 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
190
201
  time: string;
191
202
  }[];
192
203
  selectedRowForTimeEdit: any;
193
- constructor(cdRef: ChangeDetectorRef, annaSortService: AnnaSortService, annaDateTimeFormatService: AnnaDateTimeFormatService, annaFilterService: AnnaFilterService);
204
+ constructor(cdRef: ChangeDetectorRef, annaSortService: AnnaSortService, annaDateTimeFormatService: AnnaDateTimeFormatService, annaFilterService: AnnaFilterService, modalService: NgbModal);
194
205
  ngAfterViewChecked(): void;
195
206
  ngOnInit(): void;
196
207
  detectChanges(): void;
@@ -265,7 +276,10 @@ export declare class AnnaNonEditableGenericTableComponent implements OnInit, OnC
265
276
  closeTimeInputTooltip(): void;
266
277
  timeInputTooltipClickedInTableBody(event: ITimeInputData, rowData: any): void;
267
278
  timeSelectedInTableRow(event: string[][]): void;
279
+ openCustomizeColumnsModal(): void;
280
+ selectUnselectCustomizeColumns(column: ICustomizableColumn): void;
281
+ customizeColumns(customize: boolean): void;
268
282
  static ɵfac: i0.ɵɵFactoryDeclaration<AnnaNonEditableGenericTableComponent, never>;
269
- 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; }; }, { "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"; "acfiRateInputChanged": "acfiRateInputChanged"; "acfiRateCopyRequested": "acfiRateCopyRequested"; }, never, never, true, 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>;
270
284
  }
271
285
  export {};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@annalib/anna-core",
3
- "version": "37.0.27",
3
+ "version": "37.0.28",
4
4
  "peerDependencies": {
5
5
  "@angular-slider/ngx-slider": "^19.0.0",
6
6
  "@angular/common": "^19.2.10",
package/public-api.d.ts CHANGED
@@ -22,6 +22,7 @@ export * from "./lib/anna-core-shared-lib/services/anna-persisting-filter.servic
22
22
  export * from "./lib/anna-core-shared-lib/services/anna-regex-patterns.service";
23
23
  export * from "./lib/anna-core-shared-lib/services/anna-sort.service";
24
24
  export * from "./lib/anna-core-shared-lib/services/anna-spinner-loader.service";
25
+ export * from "./lib/anna-core-shared-lib/services/customizable-columns.service";
25
26
  export * from "./lib/anna-core-shared-lib/services/update-station-id.service";
26
27
  export * from "./lib/anna-generic-table-lib/services/gt-table-related-common-functions.service";
27
28
  export * from "./lib/anna-core-shared-lib/models/anna-generic-data-type.model";
@@ -25,3 +25,16 @@
25
25
  #generic-table-conatiner.table-with-show-hide-total-row-toggle .total-row td:nth-of-type(2) {
26
26
  padding-left: 16px !important;
27
27
  }
28
+
29
+ // Apply padding to first column instead of second column for posting-and-ud-tracking-table
30
+ :host.posting-and-ud-tracking-table {
31
+ #generic-table-conatiner.table-with-show-hide-total-row-toggle .total-row {
32
+ td:nth-of-type(1) {
33
+ padding-left: 16px !important;
34
+ }
35
+
36
+ td:nth-of-type(2) {
37
+ padding-left: 8px !important;
38
+ }
39
+ }
40
+ }