@annalib/anna-core 38.0.2 → 38.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/fesm2022/annalib-anna-core.mjs +513 -185
- package/fesm2022/annalib-anna-core.mjs.map +1 -1
- package/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +15 -0
- package/lib/anna-core-shared-lib/services/customizable-columns.service.d.ts +76 -0
- package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +16 -6
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
- package/src/lib/anna-common-scss/_show-hide-total-row.scss +13 -0
|
@@ -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;
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
import { 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 table headers visibility and checked state
|
|
6
|
+
* @param tableHeaders - Table headers to update visibility for
|
|
7
|
+
* @param selectedColumnNames - Array of selected column object keys from preferences
|
|
8
|
+
*/
|
|
9
|
+
applyColumnPreferences(tableHeaders: IGtTableHeader[], selectedColumnNames: string[]): void;
|
|
10
|
+
/**
|
|
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
|
|
32
|
+
*/
|
|
33
|
+
private headerHasVisibleColumnKeys;
|
|
34
|
+
/**
|
|
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)
|
|
38
|
+
*/
|
|
39
|
+
private applyFilterConfigToHeader;
|
|
40
|
+
/**
|
|
41
|
+
* Keeps filter metadata in sync with the columns that remain visible.
|
|
42
|
+
* @param defaultConfig - Original filter configuration attached to the header
|
|
43
|
+
* @param visibleColumnKeys - Set of column object keys currently rendered
|
|
44
|
+
* @param visibleHeaderCount - Number of headers still visible within the group
|
|
45
|
+
* @param firstVisibleHeaderIndex - Index of the first visible header inside the group
|
|
46
|
+
* @returns Filter configuration aligned with the current visibility state
|
|
47
|
+
*/
|
|
48
|
+
private buildFilteredConfig;
|
|
49
|
+
/**
|
|
50
|
+
* Extracts selected (checked) column object keys from table headers
|
|
51
|
+
* @param tableHeaders - Table headers to extract from
|
|
52
|
+
* @returns Array of selected column object keys (only non-fixed columns)
|
|
53
|
+
*/
|
|
54
|
+
collectSelectedColumnKeys(tableHeaders: IGtTableHeader[]): string[];
|
|
55
|
+
/**
|
|
56
|
+
* Gets the count of fixed columns in the customizable columns list
|
|
57
|
+
* @param tableHeaders - Table headers to count fixed columns from
|
|
58
|
+
* @returns Number of fixed columns
|
|
59
|
+
*/
|
|
60
|
+
countFixedColumns(tableHeaders: IGtTableHeader[]): number;
|
|
61
|
+
/**
|
|
62
|
+
* Checks if visible columns have changed between previous and new headers
|
|
63
|
+
* @param previousHeaders - Previous table headers to compare
|
|
64
|
+
* @param newHeaders - New table headers to compare
|
|
65
|
+
* @returns True if visible columns have changed, false otherwise
|
|
66
|
+
*/
|
|
67
|
+
haveVisibleColumnKeysChanged(previousHeaders: IGtTableHeader[], newHeaders: IGtTableHeader[]): boolean;
|
|
68
|
+
/**
|
|
69
|
+
* Extracts all visible object keys from table headers
|
|
70
|
+
* @param headers - Table headers to extract visible keys from
|
|
71
|
+
* @returns Set of visible object keys
|
|
72
|
+
*/
|
|
73
|
+
collectVisibleObjectKeys(headers: IGtTableHeader[]): Set<string>;
|
|
74
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<CustomizableColumnsService, never>;
|
|
75
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<CustomizableColumnsService>;
|
|
76
|
+
}
|
|
@@ -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,
|
|
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
|
-
|
|
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,17 @@ 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(
|
|
282
|
+
selectUnselectCustomizeColumns(objectKey: string): void;
|
|
283
|
+
getSelectedColumnsCount(): number;
|
|
284
|
+
private getCustomizableColumnsCount;
|
|
285
|
+
private getSelectedCustomizableColumnsCount;
|
|
286
|
+
isSelectAllDisabled(): boolean;
|
|
287
|
+
isUnselectAllDisabled(): boolean;
|
|
288
|
+
selectAllCustomizeColumns(): void;
|
|
289
|
+
unselectAllCustomizeColumns(): void;
|
|
290
|
+
hasCustomizeSelectionChanged(): boolean;
|
|
281
291
|
customizeColumns(customize: boolean): void;
|
|
282
292
|
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; };
|
|
293
|
+
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
294
|
}
|
|
285
295
|
export {};
|
package/package.json
CHANGED
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
|
+
}
|