@annalib/anna-core 4.2.5 → 4.2.7

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.
Files changed (147) hide show
  1. package/annalib-anna-core.d.ts +5 -0
  2. package/esm2020/annalib-anna-core.mjs +5 -0
  3. package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +15 -0
  4. package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +35 -0
  5. package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +15 -0
  6. package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +22 -0
  7. package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +15 -0
  8. package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +21 -0
  9. package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +15 -0
  10. package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +34 -0
  11. package/esm2020/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +27 -0
  12. package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +2 -0
  13. package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +2 -0
  14. package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +3 -0
  15. package/esm2020/lib/anna-core-shared-lib/models/anna-sort.model.mjs +2 -0
  16. package/esm2020/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +30 -0
  17. package/esm2020/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +26 -0
  18. package/esm2020/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +46 -0
  19. package/esm2020/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +25 -0
  20. package/esm2020/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +16 -0
  21. package/esm2020/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +196 -0
  22. package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +440 -0
  23. package/esm2020/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +48 -0
  24. package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +133 -0
  25. package/esm2020/lib/anna-core-shared-lib/services/anna-sort.service.mjs +147 -0
  26. package/esm2020/lib/anna-core.module.mjs +175 -0
  27. package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +100 -0
  28. package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +362 -0
  29. package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +1728 -0
  30. package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +67 -0
  31. package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +357 -0
  32. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +189 -0
  33. package/esm2020/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +2 -0
  34. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +178 -0
  35. package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +2 -0
  36. package/esm2020/public-api.mjs +47 -0
  37. package/fesm2015/annalib-anna-core.mjs +4320 -0
  38. package/fesm2015/annalib-anna-core.mjs.map +1 -0
  39. package/fesm2020/annalib-anna-core.mjs +4317 -0
  40. package/fesm2020/annalib-anna-core.mjs.map +1 -0
  41. package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +8 -0
  42. package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +16 -0
  43. package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +8 -0
  44. package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +11 -0
  45. package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +8 -0
  46. package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +11 -0
  47. package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +8 -0
  48. package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +32 -0
  49. package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +9 -0
  50. package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +16 -0
  51. package/{src/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.ts → lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts} +9 -21
  52. package/{src/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.ts → lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts} +17 -27
  53. package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +6 -0
  54. package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +25 -0
  55. package/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.d.ts +9 -0
  56. package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +9 -0
  57. package/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.d.ts +9 -0
  58. package/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.d.ts +7 -0
  59. package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +27 -0
  60. package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +73 -0
  61. package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +14 -0
  62. package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +21 -0
  63. package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +16 -0
  64. package/lib/anna-core.module.d.ts +35 -0
  65. package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +34 -0
  66. package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +70 -0
  67. package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +271 -0
  68. package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +17 -0
  69. package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +141 -0
  70. package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.d.ts +89 -0
  71. package/{src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.ts → lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts} +0 -0
  72. package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +45 -0
  73. package/{src/lib/anna-generic-table-lib/directives/anna-virtual-table/index.ts → lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts} +0 -0
  74. package/package.json +38 -18
  75. package/{src/public-api.ts → public-api.d.ts} +0 -28
  76. package/.browserslistrc +0 -16
  77. package/karma.conf.js +0 -44
  78. package/ng-package.json +0 -14
  79. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.html +0 -22
  80. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.scss +0 -0
  81. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.spec.ts +0 -25
  82. package/src/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.ts +0 -16
  83. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.html +0 -33
  84. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.scss +0 -0
  85. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.spec.ts +0 -25
  86. package/src/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.ts +0 -28
  87. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.html +0 -20
  88. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.scss +0 -0
  89. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.spec.ts +0 -25
  90. package/src/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.ts +0 -16
  91. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.html +0 -3
  92. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.scss +0 -17
  93. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.spec.ts +0 -24
  94. package/src/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.ts +0 -20
  95. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.html +0 -23
  96. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.scss +0 -0
  97. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.spec.ts +0 -25
  98. package/src/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.ts +0 -16
  99. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.html +0 -15
  100. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.scss +0 -0
  101. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.spec.ts +0 -25
  102. package/src/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.ts +0 -19
  103. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.html +0 -14
  104. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.scss +0 -0
  105. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.spec.ts +0 -25
  106. package/src/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.ts +0 -16
  107. package/src/lib/anna-core-shared-lib/constants/shared.constant.ts +0 -34
  108. package/src/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.ts +0 -19
  109. package/src/lib/anna-core-shared-lib/models/anna-generic-data-type.model.ts +0 -19
  110. package/src/lib/anna-core-shared-lib/models/anna-sort.model.ts +0 -7
  111. package/src/lib/anna-core-shared-lib/models/anna-tooltip.model.ts +0 -44
  112. package/src/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.ts +0 -20
  113. package/src/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.ts +0 -43
  114. package/src/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.ts +0 -19
  115. package/src/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.ts +0 -12
  116. package/src/lib/anna-core-shared-lib/services/anna-date-time-format.service.ts +0 -216
  117. package/src/lib/anna-core-shared-lib/services/anna-filter.service.ts +0 -514
  118. package/src/lib/anna-core-shared-lib/services/anna-generic-table.service.ts +0 -44
  119. package/src/lib/anna-core-shared-lib/services/anna-global-config.service.ts +0 -170
  120. package/src/lib/anna-core-shared-lib/services/anna-sort.service.ts +0 -179
  121. package/src/lib/anna-core.module.ts +0 -110
  122. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.html +0 -46
  123. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.scss +0 -153
  124. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.spec.ts +0 -24
  125. package/src/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.ts +0 -106
  126. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.html +0 -129
  127. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.scss +0 -275
  128. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.spec.ts +0 -24
  129. package/src/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.ts +0 -412
  130. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.html +0 -926
  131. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.scss +0 -628
  132. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.spec.ts +0 -25
  133. package/src/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.ts +0 -2064
  134. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.html +0 -10
  135. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.scss +0 -1
  136. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.spec.ts +0 -24
  137. package/src/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.ts +0 -70
  138. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.html +0 -13
  139. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.scss +0 -88
  140. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.spec.ts +0 -25
  141. package/src/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.ts +0 -460
  142. package/src/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.ts +0 -237
  143. package/src/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.ts +0 -204
  144. package/src/test.ts +0 -27
  145. package/tsconfig.lib.json +0 -19
  146. package/tsconfig.lib.prod.json +0 -10
  147. package/tsconfig.spec.json +0 -17
@@ -1,514 +0,0 @@
1
- // Angular import statements
2
- import { Options } from '@angular-slider/ngx-slider';
3
- import { Injectable } from "@angular/core";
4
-
5
- // Third party import statements
6
- import { min, max, map, sortBy, uniq, cloneDeep, isEqual } from "lodash-es";
7
- import moment from "moment";
8
- import { SortType } from '../models/anna-sort.model';
9
-
10
- // User defined import statements
11
- import { AnnaDateTimeFormatService, NgbDateType } from './anna-date-time-format.service';
12
- import { AnnaSortService } from './anna-sort.service';
13
-
14
- @Injectable({
15
- providedIn: 'root'
16
- })
17
- export class AnnaFilterService {
18
-
19
- tooltipMap = new Map();
20
- tooltipSelectedMap = new Map();
21
- initialValueMap: Map<string, any>;
22
- translateFunc: string;
23
- selectedRadio: string;
24
- subRadioButton: string;
25
-
26
- calendarSet: Set<string>;
27
- sliderSet: Set<string>;
28
- timeSet: Set<string>;
29
-
30
- includeMultiTime: boolean;
31
- includeZeroTime: boolean;
32
- includeTimeRange: boolean;
33
-
34
- appliedFiltersArray: string[] = [];
35
- flightDateRange: { minSelectedDate: any, maxSelectedDate: any };
36
- sliderData: { min: any, max: any };
37
- ngxSliderObj: Options;
38
- sliderCurrencySet = new Set(["booked","cpp","cpm","rcvPreempt","osPreempt","postedAdu","scheduledAdu","audienceDeficit","Rate"]);
39
-
40
- public static bufferSize = 20;
41
- isFilterSortActive: any = null;
42
-
43
- constructor(private dateTimeFormatService: AnnaDateTimeFormatService, private annaSortService: AnnaSortService) {
44
- console.log("AnnaFilterService service created.")
45
- const sliderArr = [
46
- "rcvPreempt",
47
- "osPreempt",
48
- "rcvUnderDly",
49
- "postedAudPercent",
50
- "booked",
51
- "spots",
52
- "grp",
53
- "cpp",
54
- "imps",
55
- "cpm",
56
- "osUnderDly",
57
- "totalWeeks",
58
- "WeekNumber",
59
- "Rate",
60
- "OrderedRatingsOrImpressions",
61
- "PostedRatingsOrImpressions", ,
62
- "postedAudPercent",
63
- "postedAdu",
64
- "scheduledAdu",
65
- "audienceDeficit",
66
- "offeredMGs",
67
- "outstandingPE",
68
- "offeredADUs",
69
- "udDeficitValue",
70
- "bookedValue",
71
- "bookedSpots",
72
- "userADUs",
73
- "buyerChanges",
74
- "userChanges",
75
- "userMG"
76
- ];
77
- const calendarArr = ["period", "AirDate", "flightStartDate", "flightEndDate","date", "startDate", "endDate"];
78
- const timeArr = ["StartTimeForFilter", "EndTimeForFilter",
79
- "start_time_for_filter", "end_time_for_filter", "startEndTimeMulti", "startEndTime"];
80
- this.sliderSet = new Set(sliderArr);
81
- this.calendarSet = new Set(calendarArr);
82
- this.timeSet = new Set(timeArr);
83
- }
84
-
85
- returnMaxAndMinValue(data: any[], key: string, isMin: boolean) {
86
- data = data.filter((obj) => !["", "-", null].includes(obj[key]));
87
- const values = data.map((x) => x[key]);
88
- let valueToReturn = isMin ? min(values) : max(values);
89
- return valueToReturn;
90
- }
91
-
92
- returnMinAndMaxDate(data: any[], key: string) {
93
- data = data.filter((obj) => !["", "-", null].includes(obj[key]));
94
- let DateArr = data.map((obj) => moment(obj[key]));
95
- let minDate = moment.min(DateArr);
96
- let maxDate = moment.max(DateArr);
97
- return [minDate, maxDate];
98
- }
99
-
100
- isTooltipActive(header: string[], sortMap: Map<string, SortType>): boolean {
101
- let set: Set<string> = new Set(this.appliedFiltersArray);
102
- if(header.length == 1){
103
- return ( (sortMap.size > 0 && sortMap.get(header[0]) != "DEFAULT") || set.has(header[0]));
104
- }
105
- return ( (sortMap.size > 0 && sortMap.get(header[0]) != "DEFAULT") || (sortMap.size > 0 && sortMap.get(header[1]) != "DEFAULT") || set.has(header[0]) || set.has(header[1]));
106
-
107
- }
108
-
109
- clearColumnFilter() {
110
- if(this.tooltipSelectedMap.has(this.selectedRadio)){
111
- this.tooltipSelectedMap.delete(this.selectedRadio);
112
- let appliedFilterSet: Set<string> = new Set(this.appliedFiltersArray);
113
- appliedFilterSet.delete(this.selectedRadio);
114
- this.appliedFiltersArray = [...appliedFilterSet];
115
- }
116
-
117
- if(this.annaSortService.columnSortState.has(this.selectedRadio)){
118
- this.annaSortService.columnSortState.set(this.selectedRadio,"DEFAULT");
119
- }
120
-
121
- }
122
-
123
- setOptionValues(minValue: number, maxValue: number) {
124
- return {
125
- floor: minValue,
126
- ceil: maxValue,
127
- disabled: true,
128
- translate: this.normalTranslateFunction
129
- };
130
- }
131
-
132
- percentTranslateFunction = (data: number): string => {
133
- const val = data.toFixed(1) + "%";
134
- return val;
135
- };
136
-
137
- currencyTranslateFunction = (data: number): string => {
138
- if (Math.abs(data) >= 1000) {
139
- let isNegVal = data < 0;
140
- const val = "$" + (Math.abs(data) / 1000).toFixed(1); + "k";
141
- return isNegVal ? "-" + val : val;
142
-
143
- } else {
144
- let isNegVal = data < 0;
145
- let isWholeNum = parseInt(data.toString()) == data;
146
- let val = isWholeNum ? Math.abs(data).toString() : Math.abs(data).toFixed(1);
147
- return isNegVal ? "-$" + val : "$" + val;
148
- }
149
- };
150
-
151
- normalTranslateFunction = (data: number): string => {
152
- if (data >= 1000) {
153
- const val = (data / 1000).toFixed(1) + "k";
154
- return val;
155
- } else if (data != Math.floor(data)) {
156
- return data.toFixed(1).toString();
157
- }
158
- return data.toString();
159
- };
160
-
161
- findUniqueDatesWithData(data: any[]) {
162
- let uniqueDates = uniq(data.map((u) => u["date"]));
163
- let uniqueDatesInNgbDateFormat: NgbDateType[] = [];
164
- uniqueDates.forEach((date: any) => {
165
- uniqueDatesInNgbDateFormat.push(
166
- this.dateTimeFormatService.convertToNgbDateStandardFormat(moment(date, "MM/DD/YY").format("MM/DD/YYYY"))
167
- );
168
- });
169
- return uniqueDatesInNgbDateFormat;
170
- }
171
-
172
- reOrderAppliedFiltersArray(isHierarchialUserFiltered: boolean, date?: any) {
173
- let isFiltered = true;
174
- isFiltered = this.checkIfDataIsFiltered(isFiltered, isHierarchialUserFiltered, date);
175
- this.removeOrChangeLatestFilterIndex(isFiltered);
176
- }
177
-
178
- checkIfDataIsFiltered(isFiltered: boolean, isHierarchialUserFiltered: boolean, date?: any) {
179
- if (this.selectedRadio == "user" && !this.tooltipMap.has("user")) {
180
- isFiltered = cloneDeep(isHierarchialUserFiltered);
181
- } else if (this.selectedRadio == "StartTimeForFilter" || this.selectedRadio == "EndTimeForFilter"
182
- || this.selectedRadio == "start_time_for_filter" || this.selectedRadio == "end_time_for_filter" || this.selectedRadio == "startEndTimeMulti") {
183
- isFiltered = !isEqual(
184
- this.initialValueMap.get(this.selectedRadio),
185
- this.tooltipSelectedMap.get(this.selectedRadio)
186
- ) || !this.includeZeroTime || !this.includeMultiTime;
187
- }
188
- else if (this.selectedRadio == "startEndTime" || this.selectedRadio == "TimeBand") {
189
- isFiltered = !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) || !this.includeZeroTime || !this.includeMultiTime;
190
- }
191
- else if (this.sliderSet.has(this.selectedRadio)) {
192
- isFiltered = !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) && !isEqual(this.tooltipSelectedMap.get(this.selectedRadio), this.sliderData);
193
- if (this.selectedRadio == "postedAdu" && this.subRadioButton == "notRequired") {
194
- isFiltered = true;
195
- }
196
- if (!isFiltered && this.tooltipSelectedMap.has(this.selectedRadio)) {
197
- this.tooltipSelectedMap.delete(this.selectedRadio);
198
- }
199
- } else if (
200
- this.selectedRadio == "startDate" ||
201
- this.selectedRadio == "endDate" ||
202
- this.selectedRadio == "period" ||
203
- this.selectedRadio == "AirDate" ||
204
- this.selectedRadio === "flightStartDate" ||
205
- this.selectedRadio === "flightEndDate" ||
206
- this.selectedRadio == "date"
207
- ) {
208
- isFiltered =
209
- !isEqual(this.initialValueMap.get(this.selectedRadio), this.tooltipSelectedMap.get(this.selectedRadio)) &&
210
- !isEqual(this.tooltipSelectedMap.get(this.selectedRadio), this.flightDateRange);
211
- if (!isFiltered && this.tooltipSelectedMap.has(this.selectedRadio)) {
212
- this.tooltipSelectedMap.delete(this.selectedRadio);
213
- }
214
- } else {
215
- let totalOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden).length;
216
- let selectedOptionsCount = this.tooltipMap.get(this.selectedRadio).filter((x: any) => !x.isHidden && x.isSelected).length;
217
- isFiltered = selectedOptionsCount > 0 && selectedOptionsCount != totalOptionsCount ? true : false;
218
- }
219
- return isFiltered;
220
- }
221
-
222
- removeOrChangeLatestFilterIndex(isFiltered: boolean) {
223
- let set = new Set(this.appliedFiltersArray);
224
-
225
- if (isFiltered && !set.has(this.selectedRadio)) {
226
- set.add(this.selectedRadio);
227
- } else if (isFiltered && set.has(this.selectedRadio)) {
228
- set.delete(this.selectedRadio);
229
- set.add(this.selectedRadio);
230
- } else {
231
- set.delete(this.selectedRadio);
232
- }
233
- this.appliedFiltersArray = [...set];
234
- }
235
-
236
- filterData(originalData: any[], keyToSkip: string) {
237
- let filteredData = [...originalData];
238
-
239
- this.tooltipSelectedMap.forEach((value, key) => {
240
- if (key != keyToSkip) {
241
- if (this.sliderSet.has(key)) {
242
- filteredData = filteredData.filter((obj) => obj[key] >= value.min && obj[key] <= value.max);
243
- }
244
- else if (key === "startDate" || key === "endDate" || key === "AirDate" || key === "flightStartDate" || key === "flightEndDate" || key == "date") {
245
- filteredData = filteredData.filter((obj) => this.isObjectInTheRange(obj, value, key));
246
- } else if (key === "period" ) {
247
- filteredData = filteredData.filter((obj) => this.getDataInTheDateRange(obj, value, key));
248
- }
249
- else if (key === "StartTimeForFilter" || key === "EndTimeForFilter"
250
- || key === "start_time_for_filter" || key === "end_time_for_filter") {
251
- filteredData = filteredData.filter((obj) => this.returnDataForFromAndToTimeRange(obj, value, key));
252
- }
253
- else if (key === "startEndTimeMulti" || key == "startEndTime" || key === "TimeBand") {
254
- filteredData = filteredData.filter((obj) => this.returnDataForStartAndEndTimeRange(obj, value, key));
255
- }
256
- else if (value.length > 0) {
257
- filteredData = filteredData.filter((u) => value.includes(u[key]));
258
- }
259
- }
260
- });
261
- return filteredData;
262
- }
263
-
264
- returnOrdersInTheRange(order: any, range: any, key: any) {
265
- let isDateBetweenTheSelectedRange = moment(order[key]).isBetween(range.minSelectedDate, range.maxSelectedDate);
266
- let isDateSameAsTheMinSelectedDate = moment(order[key]).isSame(range.minSelectedDate);
267
- let isDateSameAsTheMaxSelectedDate = moment(order[key]).isSame(range.maxSelectedDate);
268
- return isDateBetweenTheSelectedRange || isDateSameAsTheMinSelectedDate || isDateSameAsTheMaxSelectedDate;
269
- }
270
-
271
- returnDataForTimeRange(obj: any, selectedData: any) {
272
- let format = "HH:mm:ss";
273
- let selectedStartDate = moment(selectedData.startTime, format);
274
- let selectedEndDate = moment(selectedData.endTime, format);
275
- let startTime = moment(obj.startTime, format);
276
- let endTime = moment(obj.endTime, format);
277
-
278
- let isStartTimeSameAsSelectedStartTime = startTime.isSame(selectedStartDate);
279
- let isStartTimeBetweenSelectedStartAndEndTime = startTime.isBetween(selectedStartDate, selectedEndDate);
280
- let isEndTimeSameAsSelectedEndTime = endTime.isSame(selectedEndDate);
281
- let isEndTimeBetweenSelectedStartAndEndTime = endTime.isBetween(selectedStartDate, selectedEndDate);
282
-
283
- return (
284
- (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeBetweenSelectedStartAndEndTime) ||
285
- (isStartTimeSameAsSelectedStartTime && isEndTimeSameAsSelectedEndTime) ||
286
- (isStartTimeSameAsSelectedStartTime && isEndTimeBetweenSelectedStartAndEndTime) ||
287
- (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeSameAsSelectedEndTime)
288
- );
289
- }
290
-
291
- returnDataForFromAndToTimeRange(obj: any, selectedData: any, key: any) {
292
- let format = "HH:mm:ss";
293
- let selectedFromTime = moment(selectedData.fromTime, format);
294
- let selectedToTime = moment(selectedData.toTime, format);
295
- let objTime = obj[key];
296
-
297
- if (["", "-", null].includes(objTime)) {
298
- return false;
299
- }
300
- if (selectedData.includeMulti && obj[key] == "<multi>") {
301
- return true;
302
- }
303
- if (!selectedData.includeMulti && obj[key] == "<multi>") {
304
- return false;
305
- }
306
- if (selectedData.includeZero && obj[key] == "0") {
307
- return true;
308
- }
309
- if (!selectedData.includeZero && obj[key] == "0") {
310
- return false;
311
- }
312
- if (!selectedData.includeTimeRange) {
313
- return false;
314
- }
315
-
316
-
317
- let momentTime = moment(objTime,format);
318
-
319
- let isObjTimeSameAsSelectedFromTime = momentTime.isSame(selectedFromTime);
320
- let isObjTimeSameAsSelectedToTime = momentTime.isSame(selectedToTime);
321
- let isObjTimeBetweenSelectedFromTimeAndToTime = momentTime.isBetween(selectedFromTime, selectedToTime);
322
-
323
- return (
324
- isObjTimeSameAsSelectedFromTime ||
325
- isObjTimeSameAsSelectedToTime ||
326
- isObjTimeBetweenSelectedFromTimeAndToTime
327
- );
328
- }
329
-
330
- returnDataForStartAndEndTimeRange(obj: any, selectedData:any, key: string) {
331
- let format = "HH:mm:ss";
332
- let selectedFromTime = moment(selectedData.fromTime, format);
333
- let selectedToTime = moment(selectedData.toTime, format);
334
-
335
- if(selectedData.includeMulti && obj[key][0] == "<multi>") {
336
- return true;
337
- }
338
-
339
- if(!selectedData.includeMulti && obj[key][0] == "<multi>") {
340
- return false;
341
- }
342
-
343
- if(selectedData.includeZero && obj[key][0] == "0") {
344
- return true;
345
- }
346
-
347
- if(!selectedData.includeZero && obj[key][0] == "0") {
348
- return false;
349
- }
350
-
351
- if(!selectedData.includeTimeRange) {
352
- return false;
353
- }
354
-
355
- let startTime = moment(obj[key][1], format);
356
- let endTime = moment(obj[key][2], format);
357
-
358
- let isStartTimeSameAsSelectedStartTime = startTime.isSame(selectedFromTime);
359
- let isStartTimeBetweenSelectedStartAndEndTime = startTime.isBetween(selectedFromTime, selectedToTime);
360
- let isEndTimeSameAsSelectedEndTime = endTime.isSame(selectedToTime);
361
- let isEndTimeBetweenSelectedStartAndEndTime = endTime.isBetween(selectedFromTime, selectedToTime);
362
-
363
- return (
364
- (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeBetweenSelectedStartAndEndTime) ||
365
- (isStartTimeSameAsSelectedStartTime && isEndTimeSameAsSelectedEndTime) ||
366
- (isStartTimeSameAsSelectedStartTime && isEndTimeBetweenSelectedStartAndEndTime) ||
367
- (isStartTimeBetweenSelectedStartAndEndTime && isEndTimeSameAsSelectedEndTime)
368
- );
369
-
370
- }
371
-
372
- getDataInTheDateRange(obj: any, value: any, key: any) {
373
- let parsingFormat: string;
374
- if (key === "period") {
375
- parsingFormat = "YYYY-MM-DD";
376
-
377
- let momentStartDate = moment(obj.startDate);
378
- let momentEndDate = moment(obj.endDate);
379
-
380
- let startDateIsBetweenSelDate = momentStartDate.isBetween(
381
- value.fromDate,
382
- value.toDate
383
- );
384
- let endDateIsBetweenSelDate = momentEndDate.isBetween(
385
- value.fromDate,
386
- value.toDate
387
- );
388
-
389
-
390
- let startDateIsSameAsSelStartDate = value.fromDate.isSame(momentStartDate);
391
- let endDateIsSameAsSelEndDate = value.toDate.isSame(momentEndDate);
392
-
393
- return (
394
- (startDateIsBetweenSelDate || startDateIsSameAsSelStartDate) &&
395
- (endDateIsBetweenSelDate || endDateIsSameAsSelEndDate)
396
- );
397
- } else if (key === "AirDate" || key === "flightStartDate" || key === "flightEndDate") {
398
- parsingFormat = "MM/DD/YYYY";
399
- let dateIsBetweenSelDate = moment(obj[key], parsingFormat).isBetween(value.minSelectedDate, value.maxSelectedDate);
400
-
401
- let dateIsSameAsSelStartDate = moment(obj[key], parsingFormat).isSame(value.minSelectedDate);
402
- let dateIsSameAsSelEndDate = moment(obj[key], parsingFormat).isSame(value.maxSelectedDate);
403
-
404
- return dateIsBetweenSelDate || dateIsSameAsSelStartDate || dateIsSameAsSelEndDate;
405
- }
406
- }
407
-
408
-
409
- public initializeTimeFilterData(clonedData: any[], key = "startEndTime") {
410
- let startTimeArr = map(clonedData, "startTime");
411
- let endTimeArr = map(clonedData, "endTime");
412
-
413
- startTimeArr.sort((a: any, b: any) => {
414
- return this.dateTimeFormatService.sortByTimeAscending(a, b);
415
- });
416
-
417
- endTimeArr.sort((a: any, b: any) => {
418
- return this.dateTimeFormatService.sortByTimeDescending(a, b);
419
- });
420
-
421
- let initialStartEndTime = {
422
- startTime: startTimeArr[0],
423
- endTime: endTimeArr[0],
424
- };
425
- this.initialValueMap.set(key, initialStartEndTime);
426
- }
427
-
428
- returnColumnFilterStatus(data: any[], headerName: string | number) {
429
-
430
- if(headerName == "startEndTime"){
431
- let time = data.map(u => u[headerName][0]);
432
- let uniqTime = uniq(time);
433
- return uniqTime.length == 0;
434
- }
435
-
436
- return uniq(data.map((u) => u[headerName])).length > 1 ? false : true;
437
- }
438
-
439
- getFilterOptionsData(data: any[], clonedData: any[]){
440
- let appliedFilterSet = new Set(this.appliedFiltersArray);
441
- if(appliedFilterSet.has(this.selectedRadio)){
442
- return this.filterData(clonedData, this.selectedRadio);
443
- }
444
- else{
445
- return data;
446
- }
447
- }
448
-
449
- reOrderAppliedFiltersState(clonedData: any[], value: any){
450
- let isFiltered = true;
451
- isFiltered = this.checkIfFilterIsApplied(clonedData,value);
452
- this.removeOrChangeLatestFilterIndex(isFiltered);
453
- return isFiltered;
454
- }
455
-
456
- checkIfFilterIsApplied(clonedData: any[],value: any){
457
- let initialValueOfColumn = sortBy(clonedData.map(item => item[this.selectedRadio]));
458
- let currentValueOfColumn = sortBy(this.applyFilter(clonedData,value).map(item => item[this.selectedRadio]));
459
- return !isEqual(initialValueOfColumn, currentValueOfColumn);
460
- }
461
-
462
- applyFilter(data: any[],value: any){
463
- let filteredData = data;
464
- let key = this.selectedRadio;
465
- if (this.sliderSet.has(key)) {
466
- filteredData = filteredData.filter((obj) => obj[key] >= value.min && obj[key] <= value.max);
467
- }
468
- else if (key === "startDate" || key === "endDate" || key === "AirDate" || key === "flightStartDate" || key === "flightEndDate" || key == "date") {
469
- filteredData = filteredData.filter((obj) => this.isObjectInTheRange(obj, value, key));
470
- } else if (key === "period" ) {
471
- filteredData = filteredData.filter((obj) => this.getDataInTheDateRange(obj, value, key));
472
- }
473
- else if (key === "StartTimeForFilter" || key === "EndTimeForFilter"
474
- || key === "start_time_for_filter" || key === "end_time_for_filter") {
475
- filteredData = filteredData.filter((obj) => this.returnDataForFromAndToTimeRange(obj, value, key));
476
- }
477
- else if (key === "startEndTimeMulti" || key == "startEndTime" || key === "TimeBand") {
478
- filteredData = filteredData.filter((obj) => this.returnDataForStartAndEndTimeRange(obj, value, key));
479
- }
480
- else if (value.length > 0) {
481
- filteredData = filteredData.filter((u) => value.includes(u[key]));
482
- }
483
- return filteredData;
484
- }
485
-
486
- isObjectInTheRange(obj: any, value: {fromDate: moment.Moment, toDate: moment.Moment},key:string){
487
- let objVal = obj[key];
488
- let momentDate = moment(objVal);
489
- let isDateSameAsStartOfTheRange = value.fromDate.isSame(objVal);
490
- let isDateSameAsEndOfTheRange = value.toDate.isSame(objVal);
491
- let isDateBetweenTheStartAndEndOfRange = momentDate.isBetween(value.fromDate,value.toDate);
492
- return isDateSameAsStartOfTheRange || isDateSameAsEndOfTheRange || isDateBetweenTheStartAndEndOfRange;
493
- }
494
-
495
- updateStateOfTheCurrentFilterTab(sortMap: Map<string, SortType>){
496
- let activeKey = this.selectedRadio;
497
- let keyArr: string[] = [];
498
- Object.keys(this.isFilterSortActive).forEach(key => {
499
- if(key.includes(activeKey)){
500
- keyArr = key.split(",");
501
- this.isFilterSortActive[key] = this.isTooltipActive(keyArr, sortMap);
502
- }
503
- });
504
-
505
- }
506
-
507
- updateStateOfAllTheKeys(sortMap: Map<string, SortType>){
508
- Object.keys(this.isFilterSortActive).forEach(key => {
509
- let keyArr = key.split(",");
510
- this.isFilterSortActive[key] = this.isTooltipActive(keyArr,sortMap);
511
- })
512
- }
513
-
514
- }
@@ -1,44 +0,0 @@
1
- // Angular import statements
2
- import { Injectable } from "@angular/core";
3
-
4
- // Third party import statements
5
- import { Subject } from "rxjs";
6
-
7
- //sub-entries of anna lib import statement
8
- import { AnnaFilterService } from "./anna-filter.service";
9
- import { AnnaSortService } from "./anna-sort.service";
10
-
11
- @Injectable({
12
- providedIn: "root",
13
- })
14
- export class AnnaGenericTableService {
15
-
16
- virtualScrollSubject = new Subject();
17
- constructor(private annaFilterService: AnnaFilterService,private annaSortService: AnnaSortService){}
18
-
19
- calculateNumberOfSkeletonColumnsForTable(tableHeaders: any[]): number[][] {
20
- let numberOfSkeletonColumns: any[][] = [];
21
- var headersInEachColumn = 0;
22
- tableHeaders.forEach((column) => {
23
- if (column.visible) {
24
- headersInEachColumn = 0;
25
- column.headerInfo.forEach(() => {
26
- headersInEachColumn++;
27
- })
28
- numberOfSkeletonColumns.push(Array(headersInEachColumn).fill(0));
29
- }
30
- })
31
- return numberOfSkeletonColumns;
32
- }
33
-
34
- initColumnFilterAndSorting() {
35
- this.annaFilterService.tooltipSelectedMap = new Map();
36
- this.annaFilterService.selectedRadio = null;
37
- this.annaFilterService.appliedFiltersArray = [];
38
- this.annaFilterService.initialValueMap = new Map();
39
- this.annaSortService.columnSortState = new Map();
40
- this.annaSortService.noSortingAppliedData = [];
41
- }
42
-
43
-
44
- }