@annalib/anna-core 20.2.19 → 20.2.21
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/README.md +28 -28
- package/{esm2020 → esm2022}/annalib-anna-core.mjs +4 -4
- package/esm2022/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +14 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +13 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.mjs +11 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +43 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +14 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +22 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +13 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +22 -0
- package/esm2022/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +14 -0
- package/esm2022/lib/anna-core-shared-lib/constants/shared.constant.mjs +44 -0
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.mjs +273 -273
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.mjs +46 -46
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.mjs +39 -39
- package/esm2022/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +2 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +2 -0
- package/esm2022/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +11 -0
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/models/anna-sort.model.mjs +7 -7
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/models/anna-tooltip.model.mjs +30 -30
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.mjs +39 -39
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.mjs +27 -27
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.mjs +22 -22
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.mjs +55 -55
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.mjs +26 -26
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.mjs +17 -17
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-date-time-format.service.mjs +208 -208
- package/esm2022/lib/anna-core-shared-lib/services/anna-filter.service.mjs +1259 -0
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-generic-table.service.mjs +151 -151
- package/esm2022/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +135 -0
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-number-format.service.mjs +53 -53
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-persisting-filter.service.mjs +65 -65
- package/{esm2020 → esm2022}/lib/anna-core-shared-lib/services/anna-sort.service.mjs +178 -178
- package/esm2022/lib/anna-core.module.mjs +226 -0
- package/esm2022/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +160 -0
- package/esm2022/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +371 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +252 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +185 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +312 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +298 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +845 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +64 -0
- package/esm2022/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +352 -0
- package/esm2022/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/anna-fixed-row-size-table-virtual-scroll-strategy.directive.mjs +204 -0
- package/{esm2020 → esm2022}/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.mjs +2 -2
- package/esm2022/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +180 -0
- package/{esm2020 → esm2022}/lib/anna-generic-table-lib/directives/anna-virtual-table/index.mjs +2 -2
- package/{esm2020 → esm2022}/public-api.mjs +58 -58
- package/fesm2022/annalib-anna-core.mjs +6063 -0
- package/fesm2022/annalib-anna-core.mjs.map +1 -0
- package/index.d.ts +5 -5
- package/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.d.ts +8 -8
- package/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.d.ts +8 -8
- package/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.d.ts +5 -5
- package/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.d.ts +17 -17
- package/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.d.ts +8 -8
- package/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.d.ts +11 -11
- package/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.d.ts +8 -8
- package/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.d.ts +12 -12
- package/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.d.ts +8 -8
- package/lib/anna-core-shared-lib/constants/shared.constant.d.ts +42 -41
- package/lib/anna-core-shared-lib/directives/digits-only/digits-only.directive.d.ts +34 -34
- package/lib/anna-core-shared-lib/directives/fixed-rows-popup-table/fixed-rows-popup-table.directive.d.ts +16 -16
- package/lib/anna-core-shared-lib/directives/show-ellipsis-text/show-ellipsis-text.directive.d.ts +10 -10
- package/lib/anna-core-shared-lib/models/anna-generic-data-type.model.d.ts +16 -16
- package/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.d.ts +97 -97
- package/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.d.ts +118 -118
- package/lib/anna-core-shared-lib/models/anna-sort.model.d.ts +11 -11
- package/lib/anna-core-shared-lib/models/anna-tooltip.model.d.ts +25 -25
- package/lib/anna-core-shared-lib/pipes/annaConvertArrayToCommaSeperatedValue.pipe.d.ts +9 -9
- package/lib/anna-core-shared-lib/pipes/annaConvertZeroOrNullOrUndefined.pipe.d.ts +9 -9
- package/lib/anna-core-shared-lib/pipes/annaDateFormatter.pipe.d.ts +8 -8
- package/lib/anna-core-shared-lib/pipes/annaFilterSearchedText.pipe.d.ts +9 -9
- package/lib/anna-core-shared-lib/pipes/annaReplaceChar.pipe.d.ts +9 -9
- package/lib/anna-core-shared-lib/pipes/annaTypeOfData.pipe.d.ts +7 -7
- package/lib/anna-core-shared-lib/services/anna-date-time-format.service.d.ts +28 -28
- package/lib/anna-core-shared-lib/services/anna-filter.service.d.ts +154 -154
- package/lib/anna-core-shared-lib/services/anna-generic-table.service.d.ts +27 -27
- package/lib/anna-core-shared-lib/services/anna-global-config.service.d.ts +21 -21
- package/lib/anna-core-shared-lib/services/anna-number-format.service.d.ts +8 -8
- package/lib/anna-core-shared-lib/services/anna-persisting-filter.service.d.ts +9 -9
- package/lib/anna-core-shared-lib/services/anna-sort.service.d.ts +18 -18
- package/lib/anna-core.module.d.ts +45 -45
- package/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.d.ts +45 -45
- package/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.d.ts +70 -70
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.d.ts +60 -60
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.d.ts +53 -53
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.d.ts +65 -65
- package/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.d.ts +83 -83
- package/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.d.ts +174 -174
- package/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.d.ts +17 -17
- package/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.d.ts +141 -141
- 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 -89
- package/lib/anna-generic-table-lib/directives/anna-fixed-row-size-table-virtual-scroll-strategy/index.d.ts +1 -1
- package/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.d.ts +45 -45
- package/lib/anna-generic-table-lib/directives/anna-virtual-table/index.d.ts +1 -1
- package/package.json +5 -11
- package/public-api.d.ts +42 -42
- package/src/lib/anna-common-scss/_animate.scss +27 -27
- package/src/lib/anna-common-scss/_application-spacing.scss +7 -7
- package/src/lib/anna-common-scss/_bootstrap-tooltip.scss +27 -27
- package/src/lib/anna-common-scss/_button.scss +18 -18
- package/src/lib/anna-common-scss/_colors.scss +107 -107
- package/src/lib/anna-common-scss/_common-order-listing-table.scss +172 -172
- package/src/lib/anna-common-scss/_custom-anna-datepicker.scss +14 -14
- package/src/lib/anna-common-scss/_customDropdown.scss +123 -123
- package/src/lib/anna-common-scss/_dashboard-partials.scss +106 -106
- package/src/lib/anna-common-scss/_date-picker-form.scss +87 -87
- package/src/lib/anna-common-scss/_easy-filter.scss +138 -138
- package/src/lib/anna-common-scss/_edit-filter-popup.scss +70 -70
- package/src/lib/anna-common-scss/_filters.scss +712 -712
- package/src/lib/anna-common-scss/_font.scss +9 -9
- package/src/lib/anna-common-scss/_fonts.scss +86 -86
- package/src/lib/anna-common-scss/_generic-modal.scss +63 -63
- package/src/lib/anna-common-scss/_generic-table-common.scss +198 -198
- package/src/lib/anna-common-scss/_gt-table.scss +425 -425
- package/src/lib/anna-common-scss/_legend.scss +11 -11
- package/src/lib/anna-common-scss/_mat-button-toggle.scss +38 -38
- package/src/lib/anna-common-scss/_mat-menu.scss +17 -17
- package/src/lib/anna-common-scss/_mixins.scss +187 -187
- package/src/lib/anna-common-scss/_modal.scss +37 -37
- package/src/lib/anna-common-scss/_popup-filter-toggle-button.scss +36 -36
- package/src/lib/anna-common-scss/_scrollbar.scss +14 -14
- package/src/lib/anna-common-scss/_sort.scss +30 -30
- package/src/lib/anna-common-scss/_toggle.scss +86 -86
- package/src/lib/anna-common-scss/style.scss +1 -1
- package/src/lib/anna-common-scss/third-party-lib/_angular-material-mat-radio.scss +25 -25
- package/src/lib/anna-common-scss/third-party-lib/_anna-mat-button-toggle-group-size-lg.scss +34 -34
- package/src/lib/anna-common-scss/third-party-lib/_mat-autocomplete.scss +31 -31
- package/esm2020/lib/anna-core-shared-lib/components/anna-buyer-approval-icon-template/anna-buyer-approval-icon-template.component.mjs +0 -14
- package/esm2020/lib/anna-core-shared-lib/components/anna-deleted-order-icon-template/anna-deleted-order-icon-template.component.mjs +0 -13
- package/esm2020/lib/anna-core-shared-lib/components/anna-est-icon-template/anna-est-icon-template.component.mjs +0 -11
- package/esm2020/lib/anna-core-shared-lib/components/anna-icon-column/anna-icon-column.component.mjs +0 -43
- package/esm2020/lib/anna-core-shared-lib/components/anna-live-icon-template/anna-live-icon-template.component.mjs +0 -14
- package/esm2020/lib/anna-core-shared-lib/components/anna-no-data/anna-no-data.component.mjs +0 -22
- package/esm2020/lib/anna-core-shared-lib/components/anna-notify-icon-template/anna-notify-icon-template.component.mjs +0 -13
- package/esm2020/lib/anna-core-shared-lib/components/anna-pay-for-performance-icon-template/anna-pay-for-performance-icon-template.component.mjs +0 -22
- package/esm2020/lib/anna-core-shared-lib/components/anna-rejected-icon-template/anna-rejected-icon-template.component.mjs +0 -14
- package/esm2020/lib/anna-core-shared-lib/constants/shared.constant.mjs +0 -43
- package/esm2020/lib/anna-core-shared-lib/models/anna-generic-data-type.model.mjs +0 -2
- package/esm2020/lib/anna-core-shared-lib/models/anna-global-dropdown-config.model.mjs +0 -2
- package/esm2020/lib/anna-core-shared-lib/models/anna-non-editable-gt-models.mjs +0 -11
- package/esm2020/lib/anna-core-shared-lib/services/anna-filter.service.mjs +0 -1259
- package/esm2020/lib/anna-core-shared-lib/services/anna-global-config.service.mjs +0 -135
- package/esm2020/lib/anna-core.module.mjs +0 -237
- package/esm2020/lib/anna-dropdown-lib/components/anna-calendar-filter/anna-calendar-filter.component.mjs +0 -160
- package/esm2020/lib/anna-dropdown-lib/components/anna-week-calendar-filter/anna-week-calendar-filter.component.mjs +0 -371
- package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-checkbox-filter/anna-column-checkbox-filter.component.mjs +0 -252
- package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-date-range-filter/anna-column-date-range-filter.component.mjs +0 -185
- package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-slider-filter/anna-column-slider-filter.component.mjs +0 -312
- package/esm2020/lib/anna-generic-table-lib/components/anna-column-filters/anna-column-time-filter/anna-column-time-filter.component.mjs +0 -298
- package/esm2020/lib/anna-generic-table-lib/components/anna-non-editable-generic-table/anna-non-editable-generic-table.component.mjs +0 -840
- package/esm2020/lib/anna-generic-table-lib/components/anna-sort/anna-sort.component.mjs +0 -64
- package/esm2020/lib/anna-generic-table-lib/components/anna-table-virtual-scroll-viewport/anna-table-virtual-scroll-viewport.component.mjs +0 -352
- 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 +0 -204
- package/esm2020/lib/anna-generic-table-lib/directives/anna-virtual-table/anna-virtual-table.directive.mjs +0 -180
- package/fesm2015/annalib-anna-core.mjs +0 -6076
- package/fesm2015/annalib-anna-core.mjs.map +0 -1
- package/fesm2020/annalib-anna-core.mjs +0 -6068
- package/fesm2020/annalib-anna-core.mjs.map +0 -1
|
@@ -1,178 +1,178 @@
|
|
|
1
|
-
// Angular import statements
|
|
2
|
-
import { Injectable } from '@angular/core';
|
|
3
|
-
import { Subject } from 'rxjs';
|
|
4
|
-
import { AnnaDateTimeFormatService } from './anna-date-time-format.service';
|
|
5
|
-
import { cloneDeep } from 'lodash-es';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "./anna-date-time-format.service";
|
|
8
|
-
// Third party import statements
|
|
9
|
-
// User defined import statements
|
|
10
|
-
export class AnnaSortService {
|
|
11
|
-
constructor(annaDateTimeFormatService) {
|
|
12
|
-
this.annaDateTimeFormatService = annaDateTimeFormatService;
|
|
13
|
-
this.updateSortTypeSubject = new Subject();
|
|
14
|
-
this.dateSet = new Set([
|
|
15
|
-
'endDate',
|
|
16
|
-
'startDate',
|
|
17
|
-
'end_date',
|
|
18
|
-
'start_date',
|
|
19
|
-
'flightStartDate',
|
|
20
|
-
'flightEndDate',
|
|
21
|
-
'date',
|
|
22
|
-
'GeneratedOn',
|
|
23
|
-
]);
|
|
24
|
-
}
|
|
25
|
-
sortDataForComponentOtherThanLurAndCsrPage(isAsc, data, key) {
|
|
26
|
-
let param1;
|
|
27
|
-
let param2;
|
|
28
|
-
if (this.dateSet.has(key)) {
|
|
29
|
-
data.sort((a, b) => {
|
|
30
|
-
return this.annaDateTimeFormatService.compareDate(a[key], b[key], isAsc);
|
|
31
|
-
});
|
|
32
|
-
}
|
|
33
|
-
else if (key === 'AirDateAndTime' || key === 'Date') {
|
|
34
|
-
data.sort((a, b) => {
|
|
35
|
-
let first, second;
|
|
36
|
-
if (a[key] == '-') {
|
|
37
|
-
return 1;
|
|
38
|
-
}
|
|
39
|
-
if (b[key] == '-') {
|
|
40
|
-
return -1;
|
|
41
|
-
}
|
|
42
|
-
else {
|
|
43
|
-
first = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(a[key]);
|
|
44
|
-
second = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(b[key]);
|
|
45
|
-
let compareDate = this.annaDateTimeFormatService.compareDate(first, second, isAsc);
|
|
46
|
-
return compareDate;
|
|
47
|
-
}
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
else if (key == 'startEndTime' || key == 'TimeBand') {
|
|
51
|
-
data.sort((a, b) => {
|
|
52
|
-
if (isAsc) {
|
|
53
|
-
param1 = a[key][1];
|
|
54
|
-
param2 = b[key][1];
|
|
55
|
-
}
|
|
56
|
-
else {
|
|
57
|
-
param1 = a[key][2];
|
|
58
|
-
param2 = b[key][2];
|
|
59
|
-
}
|
|
60
|
-
let val = isAsc
|
|
61
|
-
? this.annaDateTimeFormatService.sortByTimeAscending(param1, param2)
|
|
62
|
-
: this.annaDateTimeFormatService.sortByTimeDescending(param1, param2);
|
|
63
|
-
return val;
|
|
64
|
-
});
|
|
65
|
-
}
|
|
66
|
-
else {
|
|
67
|
-
let dataWithoutEmptyOrHyphenValues = data.filter((n) => n[key] != '-');
|
|
68
|
-
let rowsWithHyphenOrZeroValues = data.filter((n) => n[key] == '-');
|
|
69
|
-
dataWithoutEmptyOrHyphenValues.sort((a, b) => {
|
|
70
|
-
param1 = a[key];
|
|
71
|
-
param2 = b[key];
|
|
72
|
-
if (param1 !== param2) {
|
|
73
|
-
return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
|
|
74
|
-
}
|
|
75
|
-
return 0;
|
|
76
|
-
});
|
|
77
|
-
data = isAsc
|
|
78
|
-
? [...rowsWithHyphenOrZeroValues, ...dataWithoutEmptyOrHyphenValues]
|
|
79
|
-
: [...dataWithoutEmptyOrHyphenValues, ...rowsWithHyphenOrZeroValues];
|
|
80
|
-
}
|
|
81
|
-
return data;
|
|
82
|
-
}
|
|
83
|
-
sortEnterEditLurAndCsrPage(isAsc, data, key) {
|
|
84
|
-
let param1;
|
|
85
|
-
let param2;
|
|
86
|
-
if (key.includes('_')) {
|
|
87
|
-
let keys = key.split('_');
|
|
88
|
-
let weekNumber = keys[0];
|
|
89
|
-
let sortKey = keys[1];
|
|
90
|
-
if (keys.length > 2) {
|
|
91
|
-
sortKey = keys[2] == true ? 'BookedAurIncludingNoChargeSpots' : 'BookedAurExcludingNoChargeSpots';
|
|
92
|
-
}
|
|
93
|
-
data.sort((a, b) => {
|
|
94
|
-
let aInventoryCodeWeekWiseKey = Object.keys(a.WeekWiseInventoryCodeData).filter((key) => key.split('_')[1] == weekNumber);
|
|
95
|
-
let bInventoryCodeWeekWiseKey = Object.keys(b.WeekWiseInventoryCodeData).filter((key) => key.split('_')[1] == weekNumber);
|
|
96
|
-
param1 = null;
|
|
97
|
-
param2 = null;
|
|
98
|
-
if (aInventoryCodeWeekWiseKey.length > 0) {
|
|
99
|
-
param1 = a.WeekWiseInventoryCodeData[aInventoryCodeWeekWiseKey[0]][sortKey][1];
|
|
100
|
-
}
|
|
101
|
-
if (bInventoryCodeWeekWiseKey.length > 0) {
|
|
102
|
-
param2 = b.WeekWiseInventoryCodeData[bInventoryCodeWeekWiseKey[0]][sortKey][1];
|
|
103
|
-
}
|
|
104
|
-
if (param1 !== param2) {
|
|
105
|
-
return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
|
|
106
|
-
}
|
|
107
|
-
return 0;
|
|
108
|
-
});
|
|
109
|
-
}
|
|
110
|
-
else if (key == 'TimeBand') {
|
|
111
|
-
data.sort((a, b) => {
|
|
112
|
-
if (isAsc) {
|
|
113
|
-
param1 = a[key][1];
|
|
114
|
-
param2 = b[key][1];
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
param1 = a[key][2];
|
|
118
|
-
param2 = b[key][2];
|
|
119
|
-
}
|
|
120
|
-
let val = isAsc
|
|
121
|
-
? this.annaDateTimeFormatService.sortByTimeAscending(param1, param2)
|
|
122
|
-
: this.annaDateTimeFormatService.sortByTimeDescending(param1, param2);
|
|
123
|
-
return val;
|
|
124
|
-
});
|
|
125
|
-
}
|
|
126
|
-
else {
|
|
127
|
-
data.sort((a, b) => {
|
|
128
|
-
param1 = a[key];
|
|
129
|
-
param2 = b[key];
|
|
130
|
-
if (param1 !== param2) {
|
|
131
|
-
return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
|
|
132
|
-
}
|
|
133
|
-
return 0;
|
|
134
|
-
});
|
|
135
|
-
}
|
|
136
|
-
return data;
|
|
137
|
-
}
|
|
138
|
-
checkIfSortingIsApplied(tableData, isLurAndCsrComponent) {
|
|
139
|
-
for (let [key, value] of this.columnSortState.entries()) {
|
|
140
|
-
if (value == 'ASC') {
|
|
141
|
-
tableData = cloneDeep(isLurAndCsrComponent
|
|
142
|
-
? this.sortEnterEditLurAndCsrPage(true, tableData, key)
|
|
143
|
-
: this.sortDataForComponentOtherThanLurAndCsrPage(true, tableData, key));
|
|
144
|
-
}
|
|
145
|
-
else if (value == 'DESC') {
|
|
146
|
-
tableData = cloneDeep(isLurAndCsrComponent
|
|
147
|
-
? this.sortEnterEditLurAndCsrPage(false, tableData, key)
|
|
148
|
-
: this.sortDataForComponentOtherThanLurAndCsrPage(false, tableData, key));
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
return tableData;
|
|
152
|
-
}
|
|
153
|
-
applySorting(key, tempSortOrder, tableData, isLurAndCsrComponent) {
|
|
154
|
-
if (tempSortOrder == 'ASC') {
|
|
155
|
-
tableData = cloneDeep(isLurAndCsrComponent
|
|
156
|
-
? this.sortEnterEditLurAndCsrPage(true, tableData, key)
|
|
157
|
-
: this.sortDataForComponentOtherThanLurAndCsrPage(true, tableData, key));
|
|
158
|
-
}
|
|
159
|
-
else if (tempSortOrder == 'DESC') {
|
|
160
|
-
tableData = cloneDeep(isLurAndCsrComponent
|
|
161
|
-
? this.sortEnterEditLurAndCsrPage(false, tableData, key)
|
|
162
|
-
: this.sortDataForComponentOtherThanLurAndCsrPage(false, tableData, key));
|
|
163
|
-
}
|
|
164
|
-
else if (tempSortOrder == 'DEFAULT') {
|
|
165
|
-
tableData = cloneDeep(this.noSortingAppliedData);
|
|
166
|
-
}
|
|
167
|
-
return tableData;
|
|
168
|
-
}
|
|
169
|
-
}
|
|
170
|
-
|
|
171
|
-
|
|
172
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
173
|
-
type: Injectable,
|
|
174
|
-
args: [{
|
|
175
|
-
providedIn: 'root',
|
|
176
|
-
}]
|
|
177
|
-
}], ctorParameters: function () { return [{ type: i1.AnnaDateTimeFormatService }]; } });
|
|
178
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUV0QyxnQ0FBZ0M7QUFFaEMsaUNBQWlDO0FBS2pDLE1BQU0sT0FBTyxlQUFlO0lBZ0J4QixZQUFvQix5QkFBb0Q7UUFBcEQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQWJ4RSwwQkFBcUIsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDZCxTQUFTO1lBQ1QsV0FBVztZQUNYLFVBQVU7WUFDVixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixNQUFNO1lBQ04sYUFBYTtTQUNoQixDQUFDLENBQUM7SUFFd0UsQ0FBQztJQUU1RSwwQ0FBMEMsQ0FBQyxLQUFjLEVBQUUsSUFBVyxFQUFFLEdBQVc7UUFDL0UsSUFBSSxNQUF1QixDQUFDO1FBQzVCLElBQUksTUFBdUIsQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUMs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QUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOzs2R0F4TFEsZUFBZTtpSEFBZixlQUFlLGNBRlosTUFBTTs0RkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFNvcnRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2FubmEtc29ydC5tb2RlbCc7XHJcbmltcG9ydCB7IEFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UgfSBmcm9tICcuL2FubmEtZGF0ZS10aW1lLWZvcm1hdC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY2xvbmVEZWVwIH0gZnJvbSAnbG9kYXNoLWVzJztcclxuXHJcbi8vIFRoaXJkIHBhcnR5IGltcG9ydCBzdGF0ZW1lbnRzXHJcblxyXG4vLyBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcclxuXHJcbkBJbmplY3RhYmxlKHtcclxuICAgIHByb3ZpZGVkSW46ICdyb290JyxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFubmFTb3J0U2VydmljZSB7XHJcbiAgICBjb2x1bW5Tb3J0U3RhdGU6IE1hcDxzdHJpbmcsIFNvcnRUeXBlPjtcclxuICAgIG5vU29ydGluZ0FwcGxpZWREYXRhOiBhbnlbXTtcclxuICAgIHVwZGF0ZVNvcnRUeXBlU3ViamVjdDogU3ViamVjdDxzdHJpbmc+ID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgICBkYXRlU2V0ID0gbmV3IFNldChbXHJcbiAgICAgICAgJ2VuZERhdGUnLFxyXG4gICAgICAgICdzdGFydERhdGUnLFxyXG4gICAgICAgICdlbmRfZGF0ZScsXHJcbiAgICAgICAgJ3N0YXJ0X2RhdGUnLFxyXG4gICAgICAgICdmbGlnaHRTdGFydERhdGUnLFxyXG4gICAgICAgICdmbGlnaHRFbmREYXRlJyxcclxuICAgICAgICAnZGF0ZScsXHJcbiAgICAgICAgJ0dlbmVyYXRlZE9uJyxcclxuICAgIF0pO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZTogQW5uYURhdGVUaW1lRm9ybWF0U2VydmljZSkge31cclxuXHJcbiAgICBzb3J0RGF0YUZvckNvbXBvbmVudE90aGVyVGhhbkx1ckFuZENzclBhZ2UoaXNBc2M6IGJvb2xlYW4sIGRhdGE6IGFueVtdLCBrZXk6IHN0cmluZykge1xyXG4gICAgICAgIGxldCBwYXJhbTE6IHN0cmluZyB8IG51bWJlcjtcclxuICAgICAgICBsZXQgcGFyYW0yOiBzdHJpbmcgfCBudW1iZXI7XHJcblxyXG4gICAgICAgIGlmICh0aGlzLmRhdGVTZXQuaGFzKGtleSkpIHtcclxuICAgICAgICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmVEYXRlKGFba2V5XSwgYltrZXldLCBpc0FzYyk7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnQWlyRGF0ZUFuZFRpbWUnIHx8IGtleSA9PT0gJ0RhdGUnKSB7XHJcbiAgICAgICAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0LCBzZWNvbmQ7XHJcbiAgICAgICAgICAgICAgICBpZiAoYVtrZXldID09ICctJykge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiAxO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIGlmIChiW2tleV0gPT0gJy0nKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xyXG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICBmaXJzdCA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5mb3JtYXREYXRlQW5kSEhNTUFUaW1lVG9TdGFuZGFyZEZvcm1hdChhW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIHNlY29uZCA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5mb3JtYXREYXRlQW5kSEhNTUFUaW1lVG9TdGFuZGFyZEZvcm1hdChiW2tleV0pO1xyXG4gICAgICAgICAgICAgICAgICAgIGxldCBjb21wYXJlRGF0ZSA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlRGF0ZShmaXJzdCwgc2Vjb25kLCBpc0FzYyk7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBhcmVEYXRlO1xyXG4gICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PSAnc3RhcnRFbmRUaW1lJyB8fCBrZXkgPT0gJ1RpbWVCYW5kJykge1xyXG4gICAgICAgICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0FzYykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsxXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMV07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsyXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMl07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsID0gaXNBc2NcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lQXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKVxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVEZXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGxldCBkYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXMgPSBkYXRhLmZpbHRlcigobikgPT4gbltrZXldICE9ICctJyk7XHJcbiAgICAgICAgICAgIGxldCByb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlcyA9IGRhdGEuZmlsdGVyKChuKSA9PiBuW2tleV0gPT0gJy0nKTtcclxuXHJcbiAgICAgICAgICAgIGRhdGFXaXRob3V0RW1wdHlPckh5cGhlblZhbHVlcy5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV07XHJcbiAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV07XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XHJcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5jb21wYXJlKHBhcmFtMSwgcGFyYW0yLCBpc0FzYyk7XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIDA7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICAgICAgZGF0YSA9IGlzQXNjXHJcbiAgICAgICAgICAgICAgICA/IFsuLi5yb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlcywgLi4uZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzXVxyXG4gICAgICAgICAgICAgICAgOiBbLi4uZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzLCAuLi5yb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlc107XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gZGF0YTtcclxuICAgIH1cclxuXHJcbiAgICBzb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZShpc0FzYzogYm9vbGVhbiwgZGF0YTogYW55W10sIGtleTogYW55KSB7XHJcbiAgICAgICAgbGV0IHBhcmFtMTogc3RyaW5nIHwgbnVtYmVyO1xyXG4gICAgICAgIGxldCBwYXJhbTI6IHN0cmluZyB8IG51bWJlcjtcclxuXHJcbiAgICAgICAgaWYgKGtleS5pbmNsdWRlcygnXycpKSB7XHJcbiAgICAgICAgICAgIGxldCBrZXlzID0ga2V5LnNwbGl0KCdfJyk7XHJcbiAgICAgICAgICAgIGxldCB3ZWVrTnVtYmVyID0ga2V5c1swXTtcclxuICAgICAgICAgICAgbGV0IHNvcnRLZXkgPSBrZXlzWzFdO1xyXG5cclxuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMikge1xyXG4gICAgICAgICAgICAgICAgc29ydEtleSA9IGtleXNbMl0gPT0gdHJ1ZSA/ICdCb29rZWRBdXJJbmNsdWRpbmdOb0NoYXJnZVNwb3RzJyA6ICdCb29rZWRBdXJFeGNsdWRpbmdOb0NoYXJnZVNwb3RzJztcclxuICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBsZXQgYUludmVudG9yeUNvZGVXZWVrV2lzZUtleSA9IE9iamVjdC5rZXlzKGEuV2Vla1dpc2VJbnZlbnRvcnlDb2RlRGF0YSkuZmlsdGVyKFxyXG4gICAgICAgICAgICAgICAgICAgIChrZXkpID0+IGtleS5zcGxpdCgnXycpWzFdID09IHdlZWtOdW1iZXIsXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICAgICAgbGV0IGJJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkgPSBPYmplY3Qua2V5cyhiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGEpLmZpbHRlcihcclxuICAgICAgICAgICAgICAgICAgICAoa2V5KSA9PiBrZXkuc3BsaXQoJ18nKVsxXSA9PSB3ZWVrTnVtYmVyLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuXHJcbiAgICAgICAgICAgICAgICBwYXJhbTEgPSBudWxsO1xyXG4gICAgICAgICAgICAgICAgcGFyYW0yID0gbnVsbDtcclxuICAgICAgICAgICAgICAgIGlmIChhSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5Lmxlbmd0aCA+IDApIHtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTEgPSBhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYUludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XHJcbiAgICAgICAgICAgICAgICB9XHJcblxyXG4gICAgICAgICAgICAgICAgaWYgKGJJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkubGVuZ3RoID4gMCkge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMiA9IGIuV2Vla1dpc2VJbnZlbnRvcnlDb2RlRGF0YVtiSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5WzBdXVtzb3J0S2V5XVsxXTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICBpZiAocGFyYW0xICE9PSBwYXJhbTIpIHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmNvbXBhcmUocGFyYW0xLCBwYXJhbTIsIGlzQXNjKTtcclxuICAgICAgICAgICAgICAgIH1cclxuXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gMDtcclxuICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgfSBlbHNlIGlmIChrZXkgPT0gJ1RpbWVCYW5kJykge1xyXG4gICAgICAgICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcclxuICAgICAgICAgICAgICAgIGlmIChpc0FzYykge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsxXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMV07XHJcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMSA9IGFba2V5XVsyXTtcclxuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMl07XHJcbiAgICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgICBsZXQgdmFsID0gaXNBc2NcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lQXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKVxyXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVEZXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKTtcclxuICAgICAgICAgICAgICAgIHJldHVybiB2YWw7XHJcbiAgICAgICAgICAgIH0pO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xyXG4gICAgICAgICAgICAgICAgcGFyYW0xID0gYVtrZXldO1xyXG4gICAgICAgICAgICAgICAgcGFyYW0yID0gYltrZXldO1xyXG5cclxuICAgICAgICAgICAgICAgIGlmIChwYXJhbTEgIT09IHBhcmFtMikge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xyXG4gICAgICAgICAgICAgICAgfVxyXG5cclxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xyXG4gICAgICAgICAgICB9KTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBkYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGNoZWNrSWZTb3J0aW5nSXNBcHBsaWVkKHRhYmxlRGF0YTogYW55W10sIGlzTHVyQW5kQ3NyQ29tcG9uZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgZm9yIChsZXQgW2tleSwgdmFsdWVdIG9mIHRoaXMuY29sdW1uU29ydFN0YXRlLmVudHJpZXMoKSkge1xyXG4gICAgICAgICAgICBpZiAodmFsdWUgPT0gJ0FTQycpIHtcclxuICAgICAgICAgICAgICAgIHRhYmxlRGF0YSA9IGNsb25lRGVlcChcclxuICAgICAgICAgICAgICAgICAgICBpc0x1ckFuZENzckNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UodHJ1ZSwgdGFibGVEYXRhLCBrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDogdGhpcy5zb3J0RGF0YUZvckNvbXBvbmVudE90aGVyVGhhbkx1ckFuZENzclBhZ2UodHJ1ZSwgdGFibGVEYXRhLCBrZXkpLFxyXG4gICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSAnREVTQycpIHtcclxuICAgICAgICAgICAgICAgIHRhYmxlRGF0YSA9IGNsb25lRGVlcChcclxuICAgICAgICAgICAgICAgICAgICBpc0x1ckFuZENzckNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UoZmFsc2UsIHRhYmxlRGF0YSwga2V5KVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKGZhbHNlLCB0YWJsZURhdGEsIGtleSksXHJcbiAgICAgICAgICAgICAgICApO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gdGFibGVEYXRhO1xyXG4gICAgfVxyXG5cclxuICAgIGFwcGx5U29ydGluZyhrZXk6IHN0cmluZywgdGVtcFNvcnRPcmRlcjogU29ydFR5cGUsIHRhYmxlRGF0YTogYW55W10sIGlzTHVyQW5kQ3NyQ29tcG9uZW50OiBib29sZWFuKSB7XHJcbiAgICAgICAgaWYgKHRlbXBTb3J0T3JkZXIgPT0gJ0FTQycpIHtcclxuICAgICAgICAgICAgdGFibGVEYXRhID0gY2xvbmVEZWVwKFxyXG4gICAgICAgICAgICAgICAgaXNMdXJBbmRDc3JDb21wb25lbnRcclxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UodHJ1ZSwgdGFibGVEYXRhLCBrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZSh0cnVlLCB0YWJsZURhdGEsIGtleSksXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfSBlbHNlIGlmICh0ZW1wU29ydE9yZGVyID09ICdERVNDJykge1xyXG4gICAgICAgICAgICB0YWJsZURhdGEgPSBjbG9uZURlZXAoXHJcbiAgICAgICAgICAgICAgICBpc0x1ckFuZENzckNvbXBvbmVudFxyXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5zb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZShmYWxzZSwgdGFibGVEYXRhLCBrZXkpXHJcbiAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShmYWxzZSwgdGFibGVEYXRhLCBrZXkpLFxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgIH0gZWxzZSBpZiAodGVtcFNvcnRPcmRlciA9PSAnREVGQVVMVCcpIHtcclxuICAgICAgICAgICAgdGFibGVEYXRhID0gY2xvbmVEZWVwKHRoaXMubm9Tb3J0aW5nQXBwbGllZERhdGEpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIHRhYmxlRGF0YTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
1
|
+
// Angular import statements
|
|
2
|
+
import { Injectable } from '@angular/core';
|
|
3
|
+
import { Subject } from 'rxjs';
|
|
4
|
+
import { AnnaDateTimeFormatService } from './anna-date-time-format.service';
|
|
5
|
+
import { cloneDeep } from 'lodash-es';
|
|
6
|
+
import * as i0 from "@angular/core";
|
|
7
|
+
import * as i1 from "./anna-date-time-format.service";
|
|
8
|
+
// Third party import statements
|
|
9
|
+
// User defined import statements
|
|
10
|
+
export class AnnaSortService {
|
|
11
|
+
constructor(annaDateTimeFormatService) {
|
|
12
|
+
this.annaDateTimeFormatService = annaDateTimeFormatService;
|
|
13
|
+
this.updateSortTypeSubject = new Subject();
|
|
14
|
+
this.dateSet = new Set([
|
|
15
|
+
'endDate',
|
|
16
|
+
'startDate',
|
|
17
|
+
'end_date',
|
|
18
|
+
'start_date',
|
|
19
|
+
'flightStartDate',
|
|
20
|
+
'flightEndDate',
|
|
21
|
+
'date',
|
|
22
|
+
'GeneratedOn',
|
|
23
|
+
]);
|
|
24
|
+
}
|
|
25
|
+
sortDataForComponentOtherThanLurAndCsrPage(isAsc, data, key) {
|
|
26
|
+
let param1;
|
|
27
|
+
let param2;
|
|
28
|
+
if (this.dateSet.has(key)) {
|
|
29
|
+
data.sort((a, b) => {
|
|
30
|
+
return this.annaDateTimeFormatService.compareDate(a[key], b[key], isAsc);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
else if (key === 'AirDateAndTime' || key === 'Date') {
|
|
34
|
+
data.sort((a, b) => {
|
|
35
|
+
let first, second;
|
|
36
|
+
if (a[key] == '-') {
|
|
37
|
+
return 1;
|
|
38
|
+
}
|
|
39
|
+
if (b[key] == '-') {
|
|
40
|
+
return -1;
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
first = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(a[key]);
|
|
44
|
+
second = this.annaDateTimeFormatService.formatDateAndHHMMATimeToStandardFormat(b[key]);
|
|
45
|
+
let compareDate = this.annaDateTimeFormatService.compareDate(first, second, isAsc);
|
|
46
|
+
return compareDate;
|
|
47
|
+
}
|
|
48
|
+
});
|
|
49
|
+
}
|
|
50
|
+
else if (key == 'startEndTime' || key == 'TimeBand') {
|
|
51
|
+
data.sort((a, b) => {
|
|
52
|
+
if (isAsc) {
|
|
53
|
+
param1 = a[key][1];
|
|
54
|
+
param2 = b[key][1];
|
|
55
|
+
}
|
|
56
|
+
else {
|
|
57
|
+
param1 = a[key][2];
|
|
58
|
+
param2 = b[key][2];
|
|
59
|
+
}
|
|
60
|
+
let val = isAsc
|
|
61
|
+
? this.annaDateTimeFormatService.sortByTimeAscending(param1, param2)
|
|
62
|
+
: this.annaDateTimeFormatService.sortByTimeDescending(param1, param2);
|
|
63
|
+
return val;
|
|
64
|
+
});
|
|
65
|
+
}
|
|
66
|
+
else {
|
|
67
|
+
let dataWithoutEmptyOrHyphenValues = data.filter((n) => n[key] != '-');
|
|
68
|
+
let rowsWithHyphenOrZeroValues = data.filter((n) => n[key] == '-');
|
|
69
|
+
dataWithoutEmptyOrHyphenValues.sort((a, b) => {
|
|
70
|
+
param1 = a[key];
|
|
71
|
+
param2 = b[key];
|
|
72
|
+
if (param1 !== param2) {
|
|
73
|
+
return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
|
|
74
|
+
}
|
|
75
|
+
return 0;
|
|
76
|
+
});
|
|
77
|
+
data = isAsc
|
|
78
|
+
? [...rowsWithHyphenOrZeroValues, ...dataWithoutEmptyOrHyphenValues]
|
|
79
|
+
: [...dataWithoutEmptyOrHyphenValues, ...rowsWithHyphenOrZeroValues];
|
|
80
|
+
}
|
|
81
|
+
return data;
|
|
82
|
+
}
|
|
83
|
+
sortEnterEditLurAndCsrPage(isAsc, data, key) {
|
|
84
|
+
let param1;
|
|
85
|
+
let param2;
|
|
86
|
+
if (key.includes('_')) {
|
|
87
|
+
let keys = key.split('_');
|
|
88
|
+
let weekNumber = keys[0];
|
|
89
|
+
let sortKey = keys[1];
|
|
90
|
+
if (keys.length > 2) {
|
|
91
|
+
sortKey = keys[2] == true ? 'BookedAurIncludingNoChargeSpots' : 'BookedAurExcludingNoChargeSpots';
|
|
92
|
+
}
|
|
93
|
+
data.sort((a, b) => {
|
|
94
|
+
let aInventoryCodeWeekWiseKey = Object.keys(a.WeekWiseInventoryCodeData).filter((key) => key.split('_')[1] == weekNumber);
|
|
95
|
+
let bInventoryCodeWeekWiseKey = Object.keys(b.WeekWiseInventoryCodeData).filter((key) => key.split('_')[1] == weekNumber);
|
|
96
|
+
param1 = null;
|
|
97
|
+
param2 = null;
|
|
98
|
+
if (aInventoryCodeWeekWiseKey.length > 0) {
|
|
99
|
+
param1 = a.WeekWiseInventoryCodeData[aInventoryCodeWeekWiseKey[0]][sortKey][1];
|
|
100
|
+
}
|
|
101
|
+
if (bInventoryCodeWeekWiseKey.length > 0) {
|
|
102
|
+
param2 = b.WeekWiseInventoryCodeData[bInventoryCodeWeekWiseKey[0]][sortKey][1];
|
|
103
|
+
}
|
|
104
|
+
if (param1 !== param2) {
|
|
105
|
+
return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
|
|
106
|
+
}
|
|
107
|
+
return 0;
|
|
108
|
+
});
|
|
109
|
+
}
|
|
110
|
+
else if (key == 'TimeBand') {
|
|
111
|
+
data.sort((a, b) => {
|
|
112
|
+
if (isAsc) {
|
|
113
|
+
param1 = a[key][1];
|
|
114
|
+
param2 = b[key][1];
|
|
115
|
+
}
|
|
116
|
+
else {
|
|
117
|
+
param1 = a[key][2];
|
|
118
|
+
param2 = b[key][2];
|
|
119
|
+
}
|
|
120
|
+
let val = isAsc
|
|
121
|
+
? this.annaDateTimeFormatService.sortByTimeAscending(param1, param2)
|
|
122
|
+
: this.annaDateTimeFormatService.sortByTimeDescending(param1, param2);
|
|
123
|
+
return val;
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
else {
|
|
127
|
+
data.sort((a, b) => {
|
|
128
|
+
param1 = a[key];
|
|
129
|
+
param2 = b[key];
|
|
130
|
+
if (param1 !== param2) {
|
|
131
|
+
return this.annaDateTimeFormatService.compare(param1, param2, isAsc);
|
|
132
|
+
}
|
|
133
|
+
return 0;
|
|
134
|
+
});
|
|
135
|
+
}
|
|
136
|
+
return data;
|
|
137
|
+
}
|
|
138
|
+
checkIfSortingIsApplied(tableData, isLurAndCsrComponent) {
|
|
139
|
+
for (let [key, value] of this.columnSortState.entries()) {
|
|
140
|
+
if (value == 'ASC') {
|
|
141
|
+
tableData = cloneDeep(isLurAndCsrComponent
|
|
142
|
+
? this.sortEnterEditLurAndCsrPage(true, tableData, key)
|
|
143
|
+
: this.sortDataForComponentOtherThanLurAndCsrPage(true, tableData, key));
|
|
144
|
+
}
|
|
145
|
+
else if (value == 'DESC') {
|
|
146
|
+
tableData = cloneDeep(isLurAndCsrComponent
|
|
147
|
+
? this.sortEnterEditLurAndCsrPage(false, tableData, key)
|
|
148
|
+
: this.sortDataForComponentOtherThanLurAndCsrPage(false, tableData, key));
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
return tableData;
|
|
152
|
+
}
|
|
153
|
+
applySorting(key, tempSortOrder, tableData, isLurAndCsrComponent) {
|
|
154
|
+
if (tempSortOrder == 'ASC') {
|
|
155
|
+
tableData = cloneDeep(isLurAndCsrComponent
|
|
156
|
+
? this.sortEnterEditLurAndCsrPage(true, tableData, key)
|
|
157
|
+
: this.sortDataForComponentOtherThanLurAndCsrPage(true, tableData, key));
|
|
158
|
+
}
|
|
159
|
+
else if (tempSortOrder == 'DESC') {
|
|
160
|
+
tableData = cloneDeep(isLurAndCsrComponent
|
|
161
|
+
? this.sortEnterEditLurAndCsrPage(false, tableData, key)
|
|
162
|
+
: this.sortDataForComponentOtherThanLurAndCsrPage(false, tableData, key));
|
|
163
|
+
}
|
|
164
|
+
else if (tempSortOrder == 'DEFAULT') {
|
|
165
|
+
tableData = cloneDeep(this.noSortingAppliedData);
|
|
166
|
+
}
|
|
167
|
+
return tableData;
|
|
168
|
+
}
|
|
169
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaSortService, deps: [{ token: i1.AnnaDateTimeFormatService }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
170
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaSortService, providedIn: 'root' }); }
|
|
171
|
+
}
|
|
172
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: AnnaSortService, decorators: [{
|
|
173
|
+
type: Injectable,
|
|
174
|
+
args: [{
|
|
175
|
+
providedIn: 'root',
|
|
176
|
+
}]
|
|
177
|
+
}], ctorParameters: function () { return [{ type: i1.AnnaDateTimeFormatService }]; } });
|
|
178
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYW5uYS1zb3J0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9hbm5hLWNvcmUvc3JjL2xpYi9hbm5hLWNvcmUtc2hhcmVkLWxpYi9zZXJ2aWNlcy9hbm5hLXNvcnQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0QkFBNEI7QUFDNUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBRS9CLE9BQU8sRUFBRSx5QkFBeUIsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxXQUFXLENBQUM7OztBQUV0QyxnQ0FBZ0M7QUFFaEMsaUNBQWlDO0FBS2pDLE1BQU0sT0FBTyxlQUFlO0lBZ0J4QixZQUFvQix5QkFBb0Q7UUFBcEQsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQWJ4RSwwQkFBcUIsR0FBb0IsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV2RCxZQUFPLEdBQUcsSUFBSSxHQUFHLENBQUM7WUFDZCxTQUFTO1lBQ1QsV0FBVztZQUNYLFVBQVU7WUFDVixZQUFZO1lBQ1osaUJBQWlCO1lBQ2pCLGVBQWU7WUFDZixNQUFNO1lBQ04sYUFBYTtTQUNoQixDQUFDLENBQUM7SUFFd0UsQ0FBQztJQUU1RSwwQ0FBMEMsQ0FBQyxLQUFjLEVBQUUsSUFBVyxFQUFFLEdBQVc7UUFDL0UsSUFBSSxNQUF1QixDQUFDO1FBQzVCLElBQUksTUFBdUIsQ0FBQztRQUU1QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2YsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFDN0UsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNLElBQUksR0FBRyxLQUFLLGdCQUFnQixJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7WUFDbkQsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDZixJQUFJLEtBQUssRUFBRSxNQUFNLENBQUM7Z0JBQ2xCLElBQUksQ0FBQyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEdBQUcsRUFBRTtvQkFDZixPQUFPLENBQUMsQ0FBQztpQkFDWjtnQkFFRCxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLEVBQUU7b0JBQ2YsT0FBTyxDQUFDLENBQUMsQ0FBQztpQkFDYjtxQkFBTTtvQkFDSCxLQUFLLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN0RixNQUFNLEdBQUcsSUFBSSxDQUFDLHlCQUF5QixDQUFDLHNDQUFzQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO29CQUN2RixJQUFJLFdBQVcsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7b0JBQ25GLE9BQU8sV0FBVyxDQUFDO2lCQUN0QjtZQUNMLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTSxJQUFJLEdBQUcsSUFBSSxjQUFjLElBQUksR0FBRyxJQUFJLFVBQVUsRUFBRTtZQUNuRCxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFO2dCQUNmLElBQUksS0FBSyxFQUFFO29CQUNQLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25CLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RCO3FCQUFNO29CQUNILE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQ25CLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ3RCO2dCQUNELElBQUksR0FBRyxHQUFHLEtBQUs7b0JBQ1gsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDO29CQUNwRSxDQUFDLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG9CQUFvQixDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztnQkFDMUUsT0FBTyxHQUFHLENBQUM7WUFDZixDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLDhCQUE4QixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUN2RSxJQUFJLDBCQUEwQixHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQztZQUVuRSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pDLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ2hCLE1BQU0sR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBRWhCLElBQUksTUFBTSxLQUFLLE1BQU0sRUFBRTtvQkFDbkIsT0FBTyxJQUFJLENBQUMseUJBQXlCLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsS0FBSyxDQUFDLENBQUM7aUJBQ3hFO2dCQUVELE9BQU8sQ0FBQyxDQUFDO1lBQ2IsQ0FBQyxDQUFDLENBQUM7WUFFSCxJQUFJLEdBQUcsS0FBSztnQkFDUixDQUFDLENBQUMsQ0FBQyxHQUFHLDBCQUEwQixFQUFFLEdBQUcsOEJBQThCLENBQUM7Z0JBQ3BFLENBQUMsQ0FBQyxDQUFDLEdBQUcsOEJBQThCLEVBQUUsR0FBRywwQkFBMEIsQ0FBQyxDQUFDO1NBQzVFO1FBRUQsT0FBTyxJQUFJLENBQUM7SUFDaEIsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQWMsRUFBRSxJQUFXLEVBQUUsR0FBUTtRQUM1RCxJQUFJLE1BQXVCLENBQUM7UUFDNUIsSUFBSSxNQUF1QixDQUFDO1FBRTVCLElBQUksR0FBRyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNuQixJQUFJLElBQUksR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQzFCLElBQUksVUFBVSxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN6QixJQUFJLE9BQU8sR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFFdEIsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtnQkFDakIsT0FBTyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLGlDQUFpQyxDQUFDLENBQUMsQ0FBQyxpQ0FBaUMsQ0FBQzthQUNyRztZQUVELElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUU7Z0JBQ2YsSUFBSSx5QkFBeUIsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLE1BQU0sQ0FDM0UsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUMzQyxDQUFDO2dCQUNGLElBQUkseUJBQXlCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMseUJBQXlCLENBQUMsQ0FBQyxNQUFNLENBQzNFLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FDM0MsQ0FBQztnQkFFRixNQUFNLEdBQUcsSUFBSSxDQUFDO2dCQUNkLE1BQU0sR0FBRyxJQUFJLENBQUM7Z0JBQ2QsSUFBSSx5QkFBeUIsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO29CQUN0QyxNQUFNLEdBQUcsQ0FBQyxDQUFDLHlCQUF5QixDQUFDLHlCQUF5QixDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7aUJBQ2xGO2dCQUVELElBQUkseUJBQXlCLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtvQkFDdEMsTUFBTSxHQUFHLENBQUMsQ0FBQyx5QkFBeUIsQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUNsRjtnQkFFRCxJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7b0JBQ25CLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUN4RTtnQkFFRCxPQUFPLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDO1NBQ047YUFBTSxJQUFJLEdBQUcsSUFBSSxVQUFVLEVBQUU7WUFDMUIsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDZixJQUFJLEtBQUssRUFBRTtvQkFDUCxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuQixNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0QjtxQkFBTTtvQkFDSCxNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO29CQUNuQixNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2lCQUN0QjtnQkFDRCxJQUFJLEdBQUcsR0FBRyxLQUFLO29CQUNYLENBQUMsQ0FBQyxJQUFJLENBQUMseUJBQXlCLENBQUMsbUJBQW1CLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQztvQkFDcEUsQ0FBQyxDQUFDLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBQzFFLE9BQU8sR0FBRyxDQUFDO1lBQ2YsQ0FBQyxDQUFDLENBQUM7U0FDTjthQUFNO1lBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDZixNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNoQixNQUFNLEdBQUcsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVoQixJQUFJLE1BQU0sS0FBSyxNQUFNLEVBQUU7b0JBQ25CLE9BQU8sSUFBSSxDQUFDLHlCQUF5QixDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO2lCQUN4RTtnQkFFRCxPQUFPLENBQUMsQ0FBQztZQUNiLENBQUMsQ0FBQyxDQUFDO1NBQ047UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQsdUJBQXVCLENBQUMsU0FBZ0IsRUFBRSxvQkFBNkI7UUFDbkUsS0FBSyxJQUFJLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDckQsSUFBSSxLQUFLLElBQUksS0FBSyxFQUFFO2dCQUNoQixTQUFTLEdBQUcsU0FBUyxDQUNqQixvQkFBb0I7b0JBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUM7b0JBQ3ZELENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsSUFBSSxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FDOUUsQ0FBQzthQUNMO2lCQUFNLElBQUksS0FBSyxJQUFJLE1BQU0sRUFBRTtnQkFDeEIsU0FBUyxHQUFHLFNBQVMsQ0FDakIsb0JBQW9CO29CQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDO29CQUN4RCxDQUFDLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLEtBQUssRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQy9FLENBQUM7YUFDTDtTQUNKO1FBRUQsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQztJQUVELFlBQVksQ0FBQyxHQUFXLEVBQUUsYUFBdUIsRUFBRSxTQUFnQixFQUFFLG9CQUE2QjtRQUM5RixJQUFJLGFBQWEsSUFBSSxLQUFLLEVBQUU7WUFDeEIsU0FBUyxHQUFHLFNBQVMsQ0FDakIsb0JBQW9CO2dCQUNoQixDQUFDLENBQUMsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDO2dCQUN2RCxDQUFDLENBQUMsSUFBSSxDQUFDLDBDQUEwQyxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUUsR0FBRyxDQUFDLENBQzlFLENBQUM7U0FDTDthQUFNLElBQUksYUFBYSxJQUFJLE1BQU0sRUFBRTtZQUNoQyxTQUFTLEdBQUcsU0FBUyxDQUNqQixvQkFBb0I7Z0JBQ2hCLENBQUMsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUM7Z0JBQ3hELENBQUMsQ0FBQyxJQUFJLENBQUMsMENBQTBDLENBQUMsS0FBSyxFQUFFLFNBQVMsRUFBRSxHQUFHLENBQUMsQ0FDL0UsQ0FBQztTQUNMO2FBQU0sSUFBSSxhQUFhLElBQUksU0FBUyxFQUFFO1lBQ25DLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7U0FDcEQ7UUFFRCxPQUFPLFNBQVMsQ0FBQztJQUNyQixDQUFDOytHQXhMUSxlQUFlO21IQUFmLGVBQWUsY0FGWixNQUFNOzs0RkFFVCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXIgaW1wb3J0IHN0YXRlbWVudHNcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFNvcnRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2FubmEtc29ydC5tb2RlbCc7XG5pbXBvcnQgeyBBbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlIH0gZnJvbSAnLi9hbm5hLWRhdGUtdGltZS1mb3JtYXQuc2VydmljZSc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gtZXMnO1xuXG4vLyBUaGlyZCBwYXJ0eSBpbXBvcnQgc3RhdGVtZW50c1xuXG4vLyBVc2VyIGRlZmluZWQgaW1wb3J0IHN0YXRlbWVudHNcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQW5uYVNvcnRTZXJ2aWNlIHtcbiAgICBjb2x1bW5Tb3J0U3RhdGU6IE1hcDxzdHJpbmcsIFNvcnRUeXBlPjtcbiAgICBub1NvcnRpbmdBcHBsaWVkRGF0YTogYW55W107XG4gICAgdXBkYXRlU29ydFR5cGVTdWJqZWN0OiBTdWJqZWN0PHN0cmluZz4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgZGF0ZVNldCA9IG5ldyBTZXQoW1xuICAgICAgICAnZW5kRGF0ZScsXG4gICAgICAgICdzdGFydERhdGUnLFxuICAgICAgICAnZW5kX2RhdGUnLFxuICAgICAgICAnc3RhcnRfZGF0ZScsXG4gICAgICAgICdmbGlnaHRTdGFydERhdGUnLFxuICAgICAgICAnZmxpZ2h0RW5kRGF0ZScsXG4gICAgICAgICdkYXRlJyxcbiAgICAgICAgJ0dlbmVyYXRlZE9uJyxcbiAgICBdKTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZTogQW5uYURhdGVUaW1lRm9ybWF0U2VydmljZSkge31cblxuICAgIHNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShpc0FzYzogYm9vbGVhbiwgZGF0YTogYW55W10sIGtleTogc3RyaW5nKSB7XG4gICAgICAgIGxldCBwYXJhbTE6IHN0cmluZyB8IG51bWJlcjtcbiAgICAgICAgbGV0IHBhcmFtMjogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgICAgIGlmICh0aGlzLmRhdGVTZXQuaGFzKGtleSkpIHtcbiAgICAgICAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZURhdGUoYVtrZXldLCBiW2tleV0sIGlzQXNjKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ0FpckRhdGVBbmRUaW1lJyB8fCBrZXkgPT09ICdEYXRlJykge1xuICAgICAgICAgICAgZGF0YS5zb3J0KChhLCBiKSA9PiB7XG4gICAgICAgICAgICAgICAgbGV0IGZpcnN0LCBzZWNvbmQ7XG4gICAgICAgICAgICAgICAgaWYgKGFba2V5XSA9PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIDE7XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJba2V5XSA9PSAnLScpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIC0xO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIGZpcnN0ID0gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLmZvcm1hdERhdGVBbmRISE1NQVRpbWVUb1N0YW5kYXJkRm9ybWF0KGFba2V5XSk7XG4gICAgICAgICAgICAgICAgICAgIHNlY29uZCA9IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5mb3JtYXREYXRlQW5kSEhNTUFUaW1lVG9TdGFuZGFyZEZvcm1hdChiW2tleV0pO1xuICAgICAgICAgICAgICAgICAgICBsZXQgY29tcGFyZURhdGUgPSB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZURhdGUoZmlyc3QsIHNlY29uZCwgaXNBc2MpO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gY29tcGFyZURhdGU7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICdzdGFydEVuZFRpbWUnIHx8IGtleSA9PSAnVGltZUJhbmQnKSB7XG4gICAgICAgICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoaXNBc2MpIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW0xID0gYVtrZXldWzFdO1xuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMV07XG4gICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgcGFyYW0xID0gYVtrZXldWzJdO1xuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiW2tleV1bMl07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIGxldCB2YWwgPSBpc0FzY1xuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lQXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuYW5uYURhdGVUaW1lRm9ybWF0U2VydmljZS5zb3J0QnlUaW1lRGVzY2VuZGluZyhwYXJhbTEsIHBhcmFtMik7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHZhbDtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgbGV0IGRhdGFXaXRob3V0RW1wdHlPckh5cGhlblZhbHVlcyA9IGRhdGEuZmlsdGVyKChuKSA9PiBuW2tleV0gIT0gJy0nKTtcbiAgICAgICAgICAgIGxldCByb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlcyA9IGRhdGEuZmlsdGVyKChuKSA9PiBuW2tleV0gPT0gJy0nKTtcblxuICAgICAgICAgICAgZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV07XG4gICAgICAgICAgICAgICAgcGFyYW0yID0gYltrZXldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIGRhdGEgPSBpc0FzY1xuICAgICAgICAgICAgICAgID8gWy4uLnJvd3NXaXRoSHlwaGVuT3JaZXJvVmFsdWVzLCAuLi5kYXRhV2l0aG91dEVtcHR5T3JIeXBoZW5WYWx1ZXNdXG4gICAgICAgICAgICAgICAgOiBbLi4uZGF0YVdpdGhvdXRFbXB0eU9ySHlwaGVuVmFsdWVzLCAuLi5yb3dzV2l0aEh5cGhlbk9yWmVyb1ZhbHVlc107XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBzb3J0RW50ZXJFZGl0THVyQW5kQ3NyUGFnZShpc0FzYzogYm9vbGVhbiwgZGF0YTogYW55W10sIGtleTogYW55KSB7XG4gICAgICAgIGxldCBwYXJhbTE6IHN0cmluZyB8IG51bWJlcjtcbiAgICAgICAgbGV0IHBhcmFtMjogc3RyaW5nIHwgbnVtYmVyO1xuXG4gICAgICAgIGlmIChrZXkuaW5jbHVkZXMoJ18nKSkge1xuICAgICAgICAgICAgbGV0IGtleXMgPSBrZXkuc3BsaXQoJ18nKTtcbiAgICAgICAgICAgIGxldCB3ZWVrTnVtYmVyID0ga2V5c1swXTtcbiAgICAgICAgICAgIGxldCBzb3J0S2V5ID0ga2V5c1sxXTtcblxuICAgICAgICAgICAgaWYgKGtleXMubGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIHNvcnRLZXkgPSBrZXlzWzJdID09IHRydWUgPyAnQm9va2VkQXVySW5jbHVkaW5nTm9DaGFyZ2VTcG90cycgOiAnQm9va2VkQXVyRXhjbHVkaW5nTm9DaGFyZ2VTcG90cyc7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIGxldCBhSW52ZW50b3J5Q29kZVdlZWtXaXNlS2V5ID0gT2JqZWN0LmtleXMoYS5XZWVrV2lzZUludmVudG9yeUNvZGVEYXRhKS5maWx0ZXIoXG4gICAgICAgICAgICAgICAgICAgIChrZXkpID0+IGtleS5zcGxpdCgnXycpWzFdID09IHdlZWtOdW1iZXIsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBsZXQgYkludmVudG9yeUNvZGVXZWVrV2lzZUtleSA9IE9iamVjdC5rZXlzKGIuV2Vla1dpc2VJbnZlbnRvcnlDb2RlRGF0YSkuZmlsdGVyKFxuICAgICAgICAgICAgICAgICAgICAoa2V5KSA9PiBrZXkuc3BsaXQoJ18nKVsxXSA9PSB3ZWVrTnVtYmVyLFxuICAgICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgICBwYXJhbTEgPSBudWxsO1xuICAgICAgICAgICAgICAgIHBhcmFtMiA9IG51bGw7XG4gICAgICAgICAgICAgICAgaWYgKGFJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbTEgPSBhLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYUludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKGJJbnZlbnRvcnlDb2RlV2Vla1dpc2VLZXkubGVuZ3RoID4gMCkge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbTIgPSBiLldlZWtXaXNlSW52ZW50b3J5Q29kZURhdGFbYkludmVudG9yeUNvZGVXZWVrV2lzZUtleVswXV1bc29ydEtleV1bMV07XG4gICAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSBpZiAoa2V5ID09ICdUaW1lQmFuZCcpIHtcbiAgICAgICAgICAgIGRhdGEuc29ydCgoYSwgYikgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChpc0FzYykge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV1bMV07XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMiA9IGJba2V5XVsxXTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV1bMl07XG4gICAgICAgICAgICAgICAgICAgIHBhcmFtMiA9IGJba2V5XVsyXTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbGV0IHZhbCA9IGlzQXNjXG4gICAgICAgICAgICAgICAgICAgID8gdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVBc2NlbmRpbmcocGFyYW0xLCBwYXJhbTIpXG4gICAgICAgICAgICAgICAgICAgIDogdGhpcy5hbm5hRGF0ZVRpbWVGb3JtYXRTZXJ2aWNlLnNvcnRCeVRpbWVEZXNjZW5kaW5nKHBhcmFtMSwgcGFyYW0yKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gdmFsO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBkYXRhLnNvcnQoKGEsIGIpID0+IHtcbiAgICAgICAgICAgICAgICBwYXJhbTEgPSBhW2tleV07XG4gICAgICAgICAgICAgICAgcGFyYW0yID0gYltrZXldO1xuXG4gICAgICAgICAgICAgICAgaWYgKHBhcmFtMSAhPT0gcGFyYW0yKSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLmFubmFEYXRlVGltZUZvcm1hdFNlcnZpY2UuY29tcGFyZShwYXJhbTEsIHBhcmFtMiwgaXNBc2MpO1xuICAgICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICAgIHJldHVybiAwO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gZGF0YTtcbiAgICB9XG5cbiAgICBjaGVja0lmU29ydGluZ0lzQXBwbGllZCh0YWJsZURhdGE6IGFueVtdLCBpc0x1ckFuZENzckNvbXBvbmVudDogYm9vbGVhbikge1xuICAgICAgICBmb3IgKGxldCBba2V5LCB2YWx1ZV0gb2YgdGhpcy5jb2x1bW5Tb3J0U3RhdGUuZW50cmllcygpKSB7XG4gICAgICAgICAgICBpZiAodmFsdWUgPT0gJ0FTQycpIHtcbiAgICAgICAgICAgICAgICB0YWJsZURhdGEgPSBjbG9uZURlZXAoXG4gICAgICAgICAgICAgICAgICAgIGlzTHVyQW5kQ3NyQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UodHJ1ZSwgdGFibGVEYXRhLCBrZXkpXG4gICAgICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKHRydWUsIHRhYmxlRGF0YSwga2V5KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIGlmICh2YWx1ZSA9PSAnREVTQycpIHtcbiAgICAgICAgICAgICAgICB0YWJsZURhdGEgPSBjbG9uZURlZXAoXG4gICAgICAgICAgICAgICAgICAgIGlzTHVyQW5kQ3NyQ29tcG9uZW50XG4gICAgICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UoZmFsc2UsIHRhYmxlRGF0YSwga2V5KVxuICAgICAgICAgICAgICAgICAgICAgICAgOiB0aGlzLnNvcnREYXRhRm9yQ29tcG9uZW50T3RoZXJUaGFuTHVyQW5kQ3NyUGFnZShmYWxzZSwgdGFibGVEYXRhLCBrZXkpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFibGVEYXRhO1xuICAgIH1cblxuICAgIGFwcGx5U29ydGluZyhrZXk6IHN0cmluZywgdGVtcFNvcnRPcmRlcjogU29ydFR5cGUsIHRhYmxlRGF0YTogYW55W10sIGlzTHVyQW5kQ3NyQ29tcG9uZW50OiBib29sZWFuKSB7XG4gICAgICAgIGlmICh0ZW1wU29ydE9yZGVyID09ICdBU0MnKSB7XG4gICAgICAgICAgICB0YWJsZURhdGEgPSBjbG9uZURlZXAoXG4gICAgICAgICAgICAgICAgaXNMdXJBbmRDc3JDb21wb25lbnRcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLnNvcnRFbnRlckVkaXRMdXJBbmRDc3JQYWdlKHRydWUsIHRhYmxlRGF0YSwga2V5KVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKHRydWUsIHRhYmxlRGF0YSwga2V5KSxcbiAgICAgICAgICAgICk7XG4gICAgICAgIH0gZWxzZSBpZiAodGVtcFNvcnRPcmRlciA9PSAnREVTQycpIHtcbiAgICAgICAgICAgIHRhYmxlRGF0YSA9IGNsb25lRGVlcChcbiAgICAgICAgICAgICAgICBpc0x1ckFuZENzckNvbXBvbmVudFxuICAgICAgICAgICAgICAgICAgICA/IHRoaXMuc29ydEVudGVyRWRpdEx1ckFuZENzclBhZ2UoZmFsc2UsIHRhYmxlRGF0YSwga2V5KVxuICAgICAgICAgICAgICAgICAgICA6IHRoaXMuc29ydERhdGFGb3JDb21wb25lbnRPdGhlclRoYW5MdXJBbmRDc3JQYWdlKGZhbHNlLCB0YWJsZURhdGEsIGtleSksXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2UgaWYgKHRlbXBTb3J0T3JkZXIgPT0gJ0RFRkFVTFQnKSB7XG4gICAgICAgICAgICB0YWJsZURhdGEgPSBjbG9uZURlZXAodGhpcy5ub1NvcnRpbmdBcHBsaWVkRGF0YSk7XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdGFibGVEYXRhO1xuICAgIH1cbn1cbiJdfQ==
|