@dsivd/prestations-ng 15.0.0-rc4 → 15.0.0
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/CHANGELOG.md +34 -1
- package/UPGRADING_V15.md +62 -1
- package/dsivd-prestations-ng-v15.0.0.tgz +0 -0
- package/esm2020/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.mjs +7 -3
- package/esm2020/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.mjs +8 -4
- package/esm2020/foehn-agenda/foehn-agenda.component.mjs +8 -4
- package/esm2020/foehn-autocomplete/foehn-autocomplete.component.mjs +8 -3
- package/esm2020/foehn-checkables/foehn-checkable-group.component.mjs +2 -1
- package/esm2020/foehn-checkables/foehn-checkbox.component.mjs +3 -3
- package/esm2020/foehn-checkables/foehn-radio.component.mjs +3 -3
- package/esm2020/foehn-checkables/foehn-select.component.mjs +3 -3
- package/esm2020/foehn-date-picker/date-picker-navigation.helper.mjs +69 -19
- package/esm2020/foehn-date-picker/date-picker.helper.mjs +7 -1
- package/esm2020/foehn-date-picker/foehn-date-picker.component.mjs +98 -10
- package/esm2020/foehn-date-picker-button/foehn-date-picker-button.component.mjs +31 -4
- package/esm2020/foehn-input/foehn-input.module.mjs +8 -4
- package/esm2020/foehn-input-date/foehn-input-date.component.mjs +33 -6
- package/esm2020/foehn-status-progress-bar/foehn-status-progress-bar.component.mjs +20 -5
- package/esm2020/sdk-dictionary/default-dictionary.mjs +4 -3
- package/esm2020/sdk-session-info/session-info.service.mjs +5 -6
- package/fesm2015/dsivd-prestations-ng.mjs +3554 -3321
- package/fesm2015/dsivd-prestations-ng.mjs.map +1 -1
- package/fesm2020/dsivd-prestations-ng.mjs +3556 -3323
- package/fesm2020/dsivd-prestations-ng.mjs.map +1 -1
- package/foehn-agenda/foehn-agenda-navigation/foehn-agenda-navigation.component.d.ts +3 -1
- package/foehn-agenda/foehn-agenda-timeslot-panel/foehn-agenda-timeslot-panel.component.d.ts +1 -0
- package/foehn-agenda/foehn-agenda.component.d.ts +3 -1
- package/foehn-autocomplete/foehn-autocomplete.component.d.ts +1 -0
- package/foehn-date-picker/date-picker-navigation.helper.d.ts +6 -0
- package/foehn-date-picker/date-picker.helper.d.ts +1 -0
- package/foehn-date-picker/foehn-date-picker.component.d.ts +14 -3
- package/foehn-date-picker-button/foehn-date-picker-button.component.d.ts +11 -3
- package/foehn-input/foehn-input.module.d.ts +2 -1
- package/foehn-input-date/foehn-input-date.component.d.ts +9 -2
- package/foehn-status-progress-bar/foehn-status-progress-bar.component.d.ts +7 -3
- package/package.json +1 -1
- package/sdk-session-info/session-info.service.d.ts +2 -2
- package/dsivd-prestations-ng-v15.0.0-rc4.tgz +0 -0
|
@@ -17,6 +17,9 @@ export class DatePickerNavigationHelper {
|
|
|
17
17
|
set daysButtonsElemRef(elems) {
|
|
18
18
|
this._daysButtonsElemRef = elems;
|
|
19
19
|
}
|
|
20
|
+
set hostId(id) {
|
|
21
|
+
this._hostId = id;
|
|
22
|
+
}
|
|
20
23
|
static convertElementToFocusedDay(elem) {
|
|
21
24
|
if (!elem) {
|
|
22
25
|
return null;
|
|
@@ -28,6 +31,18 @@ export class DatePickerNavigationHelper {
|
|
|
28
31
|
indexColumn: +elem.getAttribute('data-column-index')
|
|
29
32
|
};
|
|
30
33
|
}
|
|
34
|
+
static focusPreviousMonthButton(hostId) {
|
|
35
|
+
const element = document.getElementById(`${hostId}previous-month`);
|
|
36
|
+
if (element) {
|
|
37
|
+
element.focus();
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
static focusNextMonthButton(hostId) {
|
|
41
|
+
const element = document.getElementById(`${hostId}next-month`);
|
|
42
|
+
if (element) {
|
|
43
|
+
element.focus();
|
|
44
|
+
}
|
|
45
|
+
}
|
|
31
46
|
focusDefaultDay(hasSelectedDay) {
|
|
32
47
|
const daysInWeek = this.getEnabledDaysOfWeek();
|
|
33
48
|
if (hasSelectedDay) {
|
|
@@ -46,36 +61,58 @@ export class DatePickerNavigationHelper {
|
|
|
46
61
|
}
|
|
47
62
|
focusNextDay() {
|
|
48
63
|
const daysInWeek = this.getEnabledDaysOfWeek();
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
64
|
+
if (!!daysInWeek.length) {
|
|
65
|
+
const indexSelected = this.getCurrentFocusedIndex(daysInWeek);
|
|
66
|
+
const nextIndex = indexSelected + 1;
|
|
67
|
+
if (nextIndex >= daysInWeek.length) {
|
|
68
|
+
// Here we change week so we need to listen to new loaded day buttons to focus proper one
|
|
69
|
+
this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
|
|
70
|
+
const newDaysInWeek = this.getEnabledDaysOfWeek();
|
|
71
|
+
if (!newDaysInWeek.length) {
|
|
72
|
+
DatePickerNavigationHelper.focusPreviousMonthButton(this._hostId);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
newDaysInWeek[0].nativeElement.focus();
|
|
76
|
+
});
|
|
77
|
+
this._displayNextMonth.next();
|
|
78
|
+
return;
|
|
79
|
+
}
|
|
80
|
+
daysInWeek[nextIndex].nativeElement.focus();
|
|
57
81
|
}
|
|
58
|
-
daysInWeek[nextIndex].nativeElement.focus();
|
|
59
82
|
}
|
|
60
83
|
focusPreviousDay() {
|
|
61
84
|
const daysInWeek = this.getEnabledDaysOfWeek();
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
85
|
+
if (!!daysInWeek.length) {
|
|
86
|
+
const indexSelected = this.getCurrentFocusedIndex(daysInWeek);
|
|
87
|
+
const previousIndex = indexSelected - 1;
|
|
88
|
+
if (previousIndex < 0) {
|
|
89
|
+
// Here we change week so we need to listen to new loaded day buttons to focus proper one
|
|
90
|
+
this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
|
|
91
|
+
const newDaysInWeek = this.getEnabledDaysOfWeek();
|
|
92
|
+
if (!newDaysInWeek.length) {
|
|
93
|
+
DatePickerNavigationHelper.focusNextMonthButton(this._hostId);
|
|
94
|
+
return;
|
|
95
|
+
}
|
|
96
|
+
newDaysInWeek[newDaysInWeek.length - 1].nativeElement.focus();
|
|
97
|
+
});
|
|
98
|
+
this._displayPreviousMonth.next();
|
|
99
|
+
return;
|
|
100
|
+
}
|
|
101
|
+
daysInWeek[previousIndex].nativeElement.focus();
|
|
70
102
|
}
|
|
71
|
-
daysInWeek[previousIndex].nativeElement.focus();
|
|
72
103
|
}
|
|
73
104
|
focusNextWeekDay() {
|
|
74
105
|
const daysInColumn = this.getAllDaysInColumn(this._currentFocusedElement.indexColumn);
|
|
75
106
|
const nextRowIndex = this._currentFocusedElement.indexRow + 1;
|
|
76
107
|
if (nextRowIndex >= daysInColumn.length ||
|
|
77
108
|
daysInColumn[nextRowIndex].nativeElement.getAttribute('disabled') !== null) {
|
|
109
|
+
// Here we change week so we need to listen to new loaded day buttons to focus proper one
|
|
78
110
|
this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
|
|
111
|
+
const enabledDaysInColumn = this.getEnabledDaysInColumn(this._currentFocusedElement.indexColumn);
|
|
112
|
+
if (!enabledDaysInColumn.length) {
|
|
113
|
+
DatePickerNavigationHelper.focusPreviousMonthButton(this._hostId);
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
79
116
|
const newDaysInColumn = this.getAllDaysInColumn(this._currentFocusedElement.indexColumn);
|
|
80
117
|
let newRowIndex = 0;
|
|
81
118
|
if (newDaysInColumn[newRowIndex].nativeElement.getAttribute('disabled') !== null) {
|
|
@@ -93,7 +130,13 @@ export class DatePickerNavigationHelper {
|
|
|
93
130
|
const previousRowIndex = this._currentFocusedElement.indexRow - 1;
|
|
94
131
|
if (previousRowIndex < 0 ||
|
|
95
132
|
daysInColumn[previousRowIndex].nativeElement.getAttribute('disabled') !== null) {
|
|
133
|
+
// Here we change week so we need to listen to new loaded day buttons to focus proper one
|
|
96
134
|
this._daysButtonsElemRef.changes.pipe(first()).subscribe(() => {
|
|
135
|
+
const enabledDaysInColumn = this.getEnabledDaysInColumn(this._currentFocusedElement.indexColumn);
|
|
136
|
+
if (!enabledDaysInColumn.length) {
|
|
137
|
+
DatePickerNavigationHelper.focusNextMonthButton(this._hostId);
|
|
138
|
+
return;
|
|
139
|
+
}
|
|
97
140
|
const newDaysInColumn = this.getAllDaysInColumn(this._currentFocusedElement.indexColumn);
|
|
98
141
|
let newRowIndex = newDaysInColumn.length - 1;
|
|
99
142
|
if (newDaysInColumn[newRowIndex].nativeElement.getAttribute('disabled') !== null) {
|
|
@@ -113,5 +156,12 @@ export class DatePickerNavigationHelper {
|
|
|
113
156
|
return [...this._daysButtonsElemRef.toArray()].filter(value => +value.nativeElement.getAttribute('data-column-index') ===
|
|
114
157
|
indexColumn);
|
|
115
158
|
}
|
|
159
|
+
getEnabledDaysInColumn(indexColumn) {
|
|
160
|
+
return this.getAllDaysInColumn(indexColumn).filter(value => value.nativeElement.getAttribute('disabled') === null);
|
|
161
|
+
}
|
|
162
|
+
getCurrentFocusedIndex(daysInWeek) {
|
|
163
|
+
return daysInWeek.findIndex(item => item.nativeElement.getAttribute('id') ===
|
|
164
|
+
document.activeElement.getAttribute('id'));
|
|
165
|
+
}
|
|
116
166
|
}
|
|
117
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUlZLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQTZKeEQsQ0FBQztJQTNKRyxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsSUFBYTtRQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsMEJBQTBCLENBQy9FLElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBNEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRU8sTUFBTSxDQUFDLDBCQUEwQixDQUFDLElBQWE7UUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPO1lBQ0gsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSTtZQUNoRCxRQUFRLEVBQUUsQ0FB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Q0FDSixDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLG1CQUFtQixDQUFDO1lBQ3RELFdBQVcsQ0FDbEIsQ0FBQztJQUNOLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVsZW1lbnRSZWYsIFF1ZXJ5TGlzdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9jdXNlZERheSB9IGZyb20gJy4vZm9jdXNlZC1kYXkudHlwZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuZXhwb3J0IGNsYXNzIERhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyIHtcbiAgICBwcml2YXRlIF9jdXJyZW50Rm9jdXNlZEVsZW1lbnQ6IEZvY3VzZWREYXk7XG4gICAgcHJpdmF0ZSBfZGF5c0J1dHRvbnNFbGVtUmVmOiBRdWVyeUxpc3Q8RWxlbWVudFJlZj47XG5cbiAgICBwcml2YXRlIF9kaXNwbGF5TmV4dE1vbnRoID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcbiAgICBwcml2YXRlIF9kaXNwbGF5UHJldmlvdXNNb250aCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBnZXQgZGlzcGxheU5leHRNb250aCgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Rpc3BsYXlOZXh0TW9udGguYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IGRpc3BsYXlQcmV2aW91c01vbnRoKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGguYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc2V0IGN1cnJlbnRGb2N1c2VkRWxlbWVudChlbGVtOiBFbGVtZW50KSB7XG4gICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudCA9IERhdGVQaWNrZXJOYXZpZ2F0aW9uSGVscGVyLmNvbnZlcnRFbGVtZW50VG9Gb2N1c2VkRGF5KFxuICAgICAgICAgICAgZWxlbVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHNldCBkYXlzQnV0dG9uc0VsZW1SZWYoZWxlbXM6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPikge1xuICAgICAgICB0aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYgPSBlbGVtcztcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0RWxlbWVudFRvRm9jdXNlZERheShlbGVtOiBFbGVtZW50KTogRm9jdXNlZERheSB7XG4gICAgICAgIGlmICghZWxlbSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBlbGVtLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSAhPT0gbnVsbCxcbiAgICAgICAgICAgIGluZGV4RGF5OiArZWxlbS5nZXRBdHRyaWJ1dGUoJ2RheS1udW1iZXInKSAtIDEsXG4gICAgICAgICAgICBpbmRleFJvdzogK2VsZW0uZ2V0QXR0cmlidXRlKCdkYXRhLXJvdy1pbmRleCcpLFxuICAgICAgICAgICAgaW5kZXhDb2x1bW46ICtlbGVtLmdldEF0dHJpYnV0ZSgnZGF0YS1jb2x1bW4taW5kZXgnKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZvY3VzRGVmYXVsdERheShoYXNTZWxlY3RlZERheTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICBpZiAoaGFzU2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtc2VsZWN0ZWQnKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1RvZGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtdG9kYXknKSA9PT0gJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGhhc1RvZGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGhhc1RvZGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzTmV4dERheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgY29uc3QgbmV4dEluZGV4ID0gdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4RGF5ICsgMTtcbiAgICAgICAgaWYgKG5leHRJbmRleCA+PSBkYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbldlZWsgPSB0aGlzLmdldEVuYWJsZWREYXlzT2ZXZWVrKCk7XG4gICAgICAgICAgICAgICAgbmV3RGF5c0luV2Vla1swXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlOZXh0TW9udGgubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRheXNJbldlZWtbbmV4dEluZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c0RheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNJbmRleCA9IHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleERheSAtIDE7XG4gICAgICAgIGlmIChwcmV2aW91c0luZGV4IDwgMCkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbldlZWsgPSB0aGlzLmdldEVuYWJsZWREYXlzT2ZXZWVrKCk7XG4gICAgICAgICAgICAgICAgbmV3RGF5c0luV2Vla1tuZXdEYXlzSW5XZWVrLmxlbmd0aCAtIDFdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGgubmV4dCgpO1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICB9XG4gICAgICAgIGRheXNJbldlZWtbcHJldmlvdXNJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzTmV4dFdlZWtEYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5leHRSb3dJbmRleCA9IHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleFJvdyArIDE7XG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIG5leHRSb3dJbmRleCA+PSBkYXlzSW5Db2x1bW4ubGVuZ3RoIHx8XG4gICAgICAgICAgICBkYXlzSW5Db2x1bW5bbmV4dFJvd0luZGV4XS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAnZGlzYWJsZWQnXG4gICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IG5ld0RheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhDb2x1bW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGxldCBuZXdSb3dJbmRleCA9IDA7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Jvd0luZGV4Kys7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmV4dE1vbnRoLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYXlzSW5Db2x1bW5bbmV4dFJvd0luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c1dlZWtEYXkoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IGRheXNJbkNvbHVtbiA9IHRoaXMuZ2V0QWxsRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IHByZXZpb3VzUm93SW5kZXggPSB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhSb3cgLSAxO1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICBwcmV2aW91c1Jvd0luZGV4IDwgMCB8fFxuICAgICAgICAgICAgZGF5c0luQ29sdW1uW3ByZXZpb3VzUm93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICdkaXNhYmxlZCdcbiAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICB0aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYuY2hhbmdlcy5waXBlKGZpcnN0KCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgbmV3RGF5c0luQ29sdW1uID0gdGhpcy5nZXRBbGxEYXlzSW5Db2x1bW4oXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleENvbHVtblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgbGV0IG5ld1Jvd0luZGV4ID0gbmV3RGF5c0luQ29sdW1uLmxlbmd0aCAtIDE7XG4gICAgICAgICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICAgICAgICAgJ2Rpc2FibGVkJ1xuICAgICAgICAgICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgIG5ld1Jvd0luZGV4LS07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB0aGlzLl9kaXNwbGF5UHJldmlvdXNNb250aC5uZXh0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGF5c0luQ29sdW1uW3ByZXZpb3VzUm93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEVuYWJsZWREYXlzT2ZXZWVrKCk6IEVsZW1lbnRSZWZbXSB7XG4gICAgICAgIHJldHVybiBbLi4udGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLnRvQXJyYXkoKV0uZmlsdGVyKFxuICAgICAgICAgICAgdmFsdWUgPT4gdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2Rpc2FibGVkJykgPT09IG51bGxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldEFsbERheXNJbkNvbHVtbihpbmRleENvbHVtbjogbnVtYmVyKTogRWxlbWVudFJlZltdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYudG9BcnJheSgpXS5maWx0ZXIoXG4gICAgICAgICAgICB2YWx1ZSA9PlxuICAgICAgICAgICAgICAgICt2YWx1ZS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGF0YS1jb2x1bW4taW5kZXgnKSA9PT1cbiAgICAgICAgICAgICAgICBpbmRleENvbHVtblxuICAgICAgICApO1xuICAgIH1cbn1cbiJdfQ==
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVzdGF0aW9ucy1uZy9zcmMvZm9laG4tZGF0ZS1waWNrZXIvZGF0ZS1waWNrZXItbmF2aWdhdGlvbi5oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUF2QztRQUtZLHNCQUFpQixHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDeEMsMEJBQXFCLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztJQXVPeEQsQ0FBQztJQXJPRyxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxvQkFBb0I7UUFDcEIsT0FBTyxJQUFJLENBQUMscUJBQXFCLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUkscUJBQXFCLENBQUMsSUFBYTtRQUNuQyxJQUFJLENBQUMsc0JBQXNCLEdBQUcsMEJBQTBCLENBQUMsMEJBQTBCLENBQy9FLElBQUksQ0FDUCxDQUFDO0lBQ04sQ0FBQztJQUVELElBQUksa0JBQWtCLENBQUMsS0FBNEI7UUFDL0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztJQUNyQyxDQUFDO0lBRUQsSUFBSSxNQUFNLENBQUMsRUFBVTtRQUNqQixJQUFJLENBQUMsT0FBTyxHQUFHLEVBQUUsQ0FBQztJQUN0QixDQUFDO0lBRU8sTUFBTSxDQUFDLDBCQUEwQixDQUFDLElBQWE7UUFDbkQsSUFBSSxDQUFDLElBQUksRUFBRTtZQUNQLE9BQU8sSUFBSSxDQUFDO1NBQ2Y7UUFDRCxPQUFPO1lB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LGdCQUFnQixDQUFDLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ3pELENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLG1CQUFtQixDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUMsTUFBTSxDQUNqRCxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FDakUsQ0FBQztJQUNOLENBQUM7SUFFTyxrQkFBa0IsQ0FBQyxXQUFtQjtRQUMxQyxPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxNQUFNLENBQ2pELEtBQUssQ0FBQyxFQUFFLENBQ0osQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLFlBQVksQ0FBQyxtQkFBbUIsQ0FBQztZQUN0RCxXQUFXLENBQ2xCLENBQUM7SUFDTixDQUFDO0lBRU8sc0JBQXNCLENBQUMsV0FBbUI7UUFDOUMsT0FBTyxJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxDQUFDLENBQUMsTUFBTSxDQUM5QyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxLQUFLLElBQUksQ0FDakUsQ0FBQztJQUNOLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxVQUF3QjtRQUNuRCxPQUFPLFVBQVUsQ0FBQyxTQUFTLENBQ3ZCLElBQUksQ0FBQyxFQUFFLENBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDO1lBQ3JDLFFBQVEsQ0FBQyxhQUFhLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUNoRCxDQUFDO0lBQ04sQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRWxlbWVudFJlZiwgUXVlcnlMaXN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb2N1c2VkRGF5IH0gZnJvbSAnLi9mb2N1c2VkLWRheS50eXBlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIge1xuICAgIHByaXZhdGUgX2N1cnJlbnRGb2N1c2VkRWxlbWVudDogRm9jdXNlZERheTtcbiAgICBwcml2YXRlIF9kYXlzQnV0dG9uc0VsZW1SZWY6IFF1ZXJ5TGlzdDxFbGVtZW50UmVmPjtcbiAgICBwcml2YXRlIF9ob3N0SWQ6IHN0cmluZztcblxuICAgIHByaXZhdGUgX2Rpc3BsYXlOZXh0TW9udGggPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICAgIHByaXZhdGUgX2Rpc3BsYXlQcmV2aW91c01vbnRoID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICAgIGdldCBkaXNwbGF5TmV4dE1vbnRoKCk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheU5leHRNb250aC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzcGxheVByZXZpb3VzTW9udGgoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5UHJldmlvdXNNb250aC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBzZXQgY3VycmVudEZvY3VzZWRFbGVtZW50KGVsZW06IEVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50ID0gRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuY29udmVydEVsZW1lbnRUb0ZvY3VzZWREYXkoXG4gICAgICAgICAgICBlbGVtXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgc2V0IGRheXNCdXR0b25zRWxlbVJlZihlbGVtczogUXVlcnlMaXN0PEVsZW1lbnRSZWY+KSB7XG4gICAgICAgIHRoaXMuX2RheXNCdXR0b25zRWxlbVJlZiA9IGVsZW1zO1xuICAgIH1cblxuICAgIHNldCBob3N0SWQoaWQ6IHN0cmluZykge1xuICAgICAgICB0aGlzLl9ob3N0SWQgPSBpZDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBjb252ZXJ0RWxlbWVudFRvRm9jdXNlZERheShlbGVtOiBFbGVtZW50KTogRm9jdXNlZERheSB7XG4gICAgICAgIGlmICghZWxlbSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGw7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIGRpc2FibGVkOiBlbGVtLmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSAhPT0gbnVsbCxcbiAgICAgICAgICAgIGluZGV4RGF5OiArZWxlbS5nZXRBdHRyaWJ1dGUoJ2RheS1udW1iZXInKSAtIDEsXG4gICAgICAgICAgICBpbmRleFJvdzogK2VsZW0uZ2V0QXR0cmlidXRlKCdkYXRhLXJvdy1pbmRleCcpLFxuICAgICAgICAgICAgaW5kZXhDb2x1bW46ICtlbGVtLmdldEF0dHJpYnV0ZSgnZGF0YS1jb2x1bW4taW5kZXgnKVxuICAgICAgICB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGZvY3VzUHJldmlvdXNNb250aEJ1dHRvbihob3N0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7aG9zdElkfXByZXZpb3VzLW1vbnRoYCk7XG4gICAgICAgIGlmIChlbGVtZW50KSB7XG4gICAgICAgICAgICBlbGVtZW50LmZvY3VzKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBmb2N1c05leHRNb250aEJ1dHRvbihob3N0SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuZ2V0RWxlbWVudEJ5SWQoYCR7aG9zdElkfW5leHQtbW9udGhgKTtcbiAgICAgICAgaWYgKGVsZW1lbnQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzRGVmYXVsdERheShoYXNTZWxlY3RlZERheTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5XZWVrID0gdGhpcy5nZXRFbmFibGVkRGF5c09mV2VlaygpO1xuICAgICAgICBpZiAoaGFzU2VsZWN0ZWREYXkpIHtcbiAgICAgICAgICAgIGNvbnN0IHNlbGVjdGVkRGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtc2VsZWN0ZWQnKSA9PT1cbiAgICAgICAgICAgICAgICAgICAgJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKHNlbGVjdGVkRGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIHNlbGVjdGVkRGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGhhc1RvZGF5ID0gZGF5c0luV2Vlay5maWx0ZXIoXG4gICAgICAgICAgICAgICAgdmFsdWUgPT5cbiAgICAgICAgICAgICAgICAgICAgdmFsdWUubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoJ2RhdGEtaXMtdG9kYXknKSA9PT0gJ3RydWUnXG4gICAgICAgICAgICApO1xuICAgICAgICAgICAgaWYgKGhhc1RvZGF5Lmxlbmd0aCkge1xuICAgICAgICAgICAgICAgIGhhc1RvZGF5WzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGZvY3VzTmV4dERheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgaWYgKCEhZGF5c0luV2Vlay5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4U2VsZWN0ZWQgPSB0aGlzLmdldEN1cnJlbnRGb2N1c2VkSW5kZXgoZGF5c0luV2Vlayk7XG4gICAgICAgICAgICBjb25zdCBuZXh0SW5kZXggPSBpbmRleFNlbGVjdGVkICsgMTtcbiAgICAgICAgICAgIGlmIChuZXh0SW5kZXggPj0gZGF5c0luV2Vlay5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAvLyBIZXJlIHdlIGNoYW5nZSB3ZWVrIHNvIHdlIG5lZWQgdG8gbGlzdGVuIHRvIG5ldyBsb2FkZWQgZGF5IGJ1dHRvbnMgdG8gZm9jdXMgcHJvcGVyIG9uZVxuICAgICAgICAgICAgICAgIHRoaXMuX2RheXNCdXR0b25zRWxlbVJlZi5jaGFuZ2VzLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3RGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXdEYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZm9jdXNQcmV2aW91c01vbnRoQnV0dG9uKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuX2hvc3RJZFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5XZWVrWzBdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB0aGlzLl9kaXNwbGF5TmV4dE1vbnRoLm5leHQoKTtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBkYXlzSW5XZWVrW25leHRJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNQcmV2aW91c0RheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgaWYgKCEhZGF5c0luV2Vlay5sZW5ndGgpIHtcbiAgICAgICAgICAgIGNvbnN0IGluZGV4U2VsZWN0ZWQgPSB0aGlzLmdldEN1cnJlbnRGb2N1c2VkSW5kZXgoZGF5c0luV2Vlayk7XG4gICAgICAgICAgICBjb25zdCBwcmV2aW91c0luZGV4ID0gaW5kZXhTZWxlY3RlZCAtIDE7XG4gICAgICAgICAgICBpZiAocHJldmlvdXNJbmRleCA8IDApIHtcbiAgICAgICAgICAgICAgICAvLyBIZXJlIHdlIGNoYW5nZSB3ZWVrIHNvIHdlIG5lZWQgdG8gbGlzdGVuIHRvIG5ldyBsb2FkZWQgZGF5IGJ1dHRvbnMgdG8gZm9jdXMgcHJvcGVyIG9uZVxuICAgICAgICAgICAgICAgIHRoaXMuX2RheXNCdXR0b25zRWxlbVJlZi5jaGFuZ2VzLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbmV3RGF5c0luV2VlayA9IHRoaXMuZ2V0RW5hYmxlZERheXNPZldlZWsoKTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFuZXdEYXlzSW5XZWVrLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZm9jdXNOZXh0TW9udGhCdXR0b24oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5faG9zdElkXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIG5ld0RheXNJbldlZWtbXG4gICAgICAgICAgICAgICAgICAgICAgICBuZXdEYXlzSW5XZWVrLmxlbmd0aCAtIDFcbiAgICAgICAgICAgICAgICAgICAgXS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgdGhpcy5fZGlzcGxheVByZXZpb3VzTW9udGgubmV4dCgpO1xuICAgICAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGRheXNJbldlZWtbcHJldmlvdXNJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZm9jdXNOZXh0V2Vla0RheSgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgZGF5c0luQ29sdW1uID0gdGhpcy5nZXRBbGxEYXlzSW5Db2x1bW4oXG4gICAgICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhDb2x1bW5cbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV4dFJvd0luZGV4ID0gdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Um93ICsgMTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgbmV4dFJvd0luZGV4ID49IGRheXNJbkNvbHVtbi5sZW5ndGggfHxcbiAgICAgICAgICAgIGRheXNJbkNvbHVtbltuZXh0Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKFxuICAgICAgICAgICAgICAgICdkaXNhYmxlZCdcbiAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgKSB7XG4gICAgICAgICAgICAvLyBIZXJlIHdlIGNoYW5nZSB3ZWVrIHNvIHdlIG5lZWQgdG8gbGlzdGVuIHRvIG5ldyBsb2FkZWQgZGF5IGJ1dHRvbnMgdG8gZm9jdXMgcHJvcGVyIG9uZVxuICAgICAgICAgICAgdGhpcy5fZGF5c0J1dHRvbnNFbGVtUmVmLmNoYW5nZXMucGlwZShmaXJzdCgpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGVuYWJsZWREYXlzSW5Db2x1bW4gPSB0aGlzLmdldEVuYWJsZWREYXlzSW5Db2x1bW4oXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleENvbHVtblxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgaWYgKCFlbmFibGVkRGF5c0luQ29sdW1uLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICBEYXRlUGlja2VyTmF2aWdhdGlvbkhlbHBlci5mb2N1c1ByZXZpb3VzTW9udGhCdXR0b24oXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ob3N0SWRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdEYXlzSW5Db2x1bW4gPSB0aGlzLmdldEFsbERheXNJbkNvbHVtbihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBsZXQgbmV3Um93SW5kZXggPSAwO1xuICAgICAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICAgICAgbmV3RGF5c0luQ29sdW1uW25ld1Jvd0luZGV4XS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAgICAgICAgICdkaXNhYmxlZCdcbiAgICAgICAgICAgICAgICAgICAgKSAhPT0gbnVsbFxuICAgICAgICAgICAgICAgICkge1xuICAgICAgICAgICAgICAgICAgICBuZXdSb3dJbmRleCsrO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBuZXdEYXlzSW5Db2x1bW5bbmV3Um93SW5kZXhdLm5hdGl2ZUVsZW1lbnQuZm9jdXMoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgdGhpcy5fZGlzcGxheU5leHRNb250aC5uZXh0KCk7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgZGF5c0luQ29sdW1uW25leHRSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIGZvY3VzUHJldmlvdXNXZWVrRGF5KCk6IHZvaWQge1xuICAgICAgICBjb25zdCBkYXlzSW5Db2x1bW4gPSB0aGlzLmdldEFsbERheXNJbkNvbHVtbihcbiAgICAgICAgICAgIHRoaXMuX2N1cnJlbnRGb2N1c2VkRWxlbWVudC5pbmRleENvbHVtblxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwcmV2aW91c1Jvd0luZGV4ID0gdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Um93IC0gMTtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgcHJldmlvdXNSb3dJbmRleCA8IDAgfHxcbiAgICAgICAgICAgIGRheXNJbkNvbHVtbltwcmV2aW91c1Jvd0luZGV4XS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZShcbiAgICAgICAgICAgICAgICAnZGlzYWJsZWQnXG4gICAgICAgICAgICApICE9PSBudWxsXG4gICAgICAgICkge1xuICAgICAgICAgICAgLy8gSGVyZSB3ZSBjaGFuZ2Ugd2VlayBzbyB3ZSBuZWVkIHRvIGxpc3RlbiB0byBuZXcgbG9hZGVkIGRheSBidXR0b25zIHRvIGZvY3VzIHByb3BlciBvbmVcbiAgICAgICAgICAgIHRoaXMuX2RheXNCdXR0b25zRWxlbVJlZi5jaGFuZ2VzLnBpcGUoZmlyc3QoKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBlbmFibGVkRGF5c0luQ29sdW1uID0gdGhpcy5nZXRFbmFibGVkRGF5c0luQ29sdW1uKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLl9jdXJyZW50Rm9jdXNlZEVsZW1lbnQuaW5kZXhDb2x1bW5cbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIGlmICghZW5hYmxlZERheXNJbkNvbHVtbi5sZW5ndGgpIHtcbiAgICAgICAgICAgICAgICAgICAgRGF0ZVBpY2tlck5hdmlnYXRpb25IZWxwZXIuZm9jdXNOZXh0TW9udGhCdXR0b24oXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLl9ob3N0SWRcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCBuZXdEYXlzSW5Db2x1bW4gPSB0aGlzLmdldEFsbERheXNJbkNvbHVtbihcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5fY3VycmVudEZvY3VzZWRFbGVtZW50LmluZGV4Q29sdW1uXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICBsZXQgbmV3Um93SW5kZXggPSBuZXdEYXlzSW5Db2x1bW4ubGVuZ3RoIC0gMTtcbiAgICAgICAgICAgICAgICBpZiAoXG4gICAgICAgICAgICAgICAgICAgIG5ld0RheXNJbkNvbHVtbltuZXdSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5nZXRBdHRyaWJ1dGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAnZGlzYWJsZWQnXG4gICAgICAgICAgICAgICAgICAgICkgIT09IG51bGxcbiAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgbmV3Um93SW5kZXgtLTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgbmV3RGF5c0luQ29sdW1uW25ld1Jvd0luZGV4XS5uYXRpdmVFbGVtZW50LmZvY3VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHRoaXMuX2Rpc3BsYXlQcmV2aW91c01vbnRoLm5leHQoKTtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICBkYXlzSW5Db2x1bW5bcHJldmlvdXNSb3dJbmRleF0ubmF0aXZlRWxlbWVudC5mb2N1cygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0RW5hYmxlZERheXNPZldlZWsoKTogRWxlbWVudFJlZltdIHtcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLl9kYXlzQnV0dG9uc0VsZW1SZWYudG9BcnJheSgpXS5maWx0ZXIoXG4gICAgICAgICAgICB2YWx1ZSA9PiB2YWx1ZS5uYXRpdmVFbGVtZW50LmdldEF0dHJpYnV0ZSgnZGlzYWJsZWQnKSA9PT0gbnVsbFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0QWxsRGF5c0luQ29sdW1uKGluZGV4Q29sdW1uOiBudW1iZXIpOiBFbGVtZW50UmVmW10ge1xuICAgICAgICByZXR1cm4gWy4uLnRoaXMuX2RheXNCdXR0b25zRWxlbVJlZi50b0FycmF5KCldLmZpbHRlcihcbiAgICAgICAgICAgIHZhbHVlID0+XG4gICAgICAgICAgICAgICAgK3ZhbHVlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkYXRhLWNvbHVtbi1pbmRleCcpID09PVxuICAgICAgICAgICAgICAgIGluZGV4Q29sdW1uXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRFbmFibGVkRGF5c0luQ29sdW1uKGluZGV4Q29sdW1uOiBudW1iZXIpOiBFbGVtZW50UmVmW10ge1xuICAgICAgICByZXR1cm4gdGhpcy5nZXRBbGxEYXlzSW5Db2x1bW4oaW5kZXhDb2x1bW4pLmZpbHRlcihcbiAgICAgICAgICAgIHZhbHVlID0+IHZhbHVlLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdkaXNhYmxlZCcpID09PSBudWxsXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDdXJyZW50Rm9jdXNlZEluZGV4KGRheXNJbldlZWs6IEVsZW1lbnRSZWZbXSk6IG51bWJlciB7XG4gICAgICAgIHJldHVybiBkYXlzSW5XZWVrLmZpbmRJbmRleChcbiAgICAgICAgICAgIGl0ZW0gPT5cbiAgICAgICAgICAgICAgICBpdGVtLm5hdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpZCcpID09PVxuICAgICAgICAgICAgICAgIGRvY3VtZW50LmFjdGl2ZUVsZW1lbnQuZ2V0QXR0cmlidXRlKCdpZCcpXG4gICAgICAgICk7XG4gICAgfVxufVxuIl19
|
|
@@ -16,6 +16,12 @@ export class DatePickerHelper {
|
|
|
16
16
|
get displayedMonthYear() {
|
|
17
17
|
return this._displayedMonthYear.asObservable();
|
|
18
18
|
}
|
|
19
|
+
static getDateAsString(date) {
|
|
20
|
+
if (!!date && date.length === 3) {
|
|
21
|
+
return `${date[0]}-${date[1]}-${date[2]}`;
|
|
22
|
+
}
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
19
25
|
static getWeekday(date) {
|
|
20
26
|
const dayOfWeek = dayjs(date).format('dddd');
|
|
21
27
|
const weekDays = dayjs.weekdays();
|
|
@@ -123,4 +129,4 @@ export class DatePickerHelper {
|
|
|
123
129
|
return weeks;
|
|
124
130
|
}
|
|
125
131
|
}
|
|
126
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2RhdGUtcGlja2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXpCLE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFLYSx1QkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDNUIsK0JBQTBCLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV2QixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDbEMseUJBQW9CLEdBQUcsYUFBYSxDQUFDO1FBRTlDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFZLElBQUksQ0FBQyxDQUFDO1FBeUJuRSxlQUFVLEdBQUcsQ0FBQyxRQUFnQixFQUFvQixFQUFFLENBQ2hELE1BQU0sQ0FBQyxnQkFBZ0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBMEs5RSxDQUFDO0lBbE1HLElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFTyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQVk7UUFDbEMsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FB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eS1tb250aC50eXBlJztcbmltcG9ydCB7IE1vbnRoWWVhciB9IGZyb20gJy4vbW9udGgteWVhci50eXBlJztcbmltcG9ydCBkYXlqcyBmcm9tICdkYXlqcyc7XG5pbXBvcnQgbG9jYWxlRGF0YSBmcm9tICdkYXlqcy9wbHVnaW4vbG9jYWxlRGF0YSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuZGF5anMuZXh0ZW5kKGxvY2FsZURhdGEpO1xuXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckhlbHBlciB7XG4gICAgaW5pdGlhbE1vbnRoOiBzdHJpbmc7XG4gICAgaW5pdGlhbFllYXI6IHN0cmluZztcbiAgICBpbml0aWFsRGF5OiBzdHJpbmc7XG5cbiAgICByZWFkb25seSBZRUFSX1NUUklOR19GT1JNQVQgPSAnWVlZWSc7XG4gICAgcmVhZG9ubHkgTU9OVEhfU1RSSU5HX05VTUJFUl9GT1JNQVQgPSAnTSc7XG4gICAgcmVhZG9ubHkgREFZX1NUUklOR19OVU1CRVJfRk9STUFUID0gJ0QnO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBOQl9EQVlTX0lOX1dFRUsgPSA3O1xuICAgIHByaXZhdGUgcmVhZG9ubHkgREFURV9TVFJJTkdfRk9STUFUID0gJ1lZWVktTU0tREQnO1xuICAgIHByaXZhdGUgcmVhZG9ubHkgREFURV9SRUFEQUJMRV9GT1JNQVQgPSAnRCBNTU1NIFlZWVknO1xuXG4gICAgcHJpdmF0ZSBfZGlzcGxheWVkTW9udGhZZWFyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxNb250aFllYXI+KG51bGwpO1xuXG4gICAgZ2V0IGRpc3BsYXllZE1vbnRoWWVhcigpOiBPYnNlcnZhYmxlPE1vbnRoWWVhcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZGlzcGxheWVkTW9udGhZZWFyLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFdlZWtkYXkoZGF0ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZGF5T2ZXZWVrID0gZGF5anMoZGF0ZSkuZm9ybWF0KCdkZGRkJyk7XG4gICAgICAgIGNvbnN0IHdlZWtEYXlzID0gZGF5anMud2Vla2RheXMoKTtcblxuICAgICAgICByZXR1cm4gd2Vla0RheXMuaW5kZXhPZihkYXlPZldlZWspO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldE51bWJlck9mRGF5c0luTW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuZGF5c0luTW9udGgoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRQcmV2aW91c01vbnRoKHllYXI6IHN0cmluZywgbW9udGg6IHN0cmluZyk6IGRheWpzLkRheWpzIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuc3VidHJhY3QoMSwgJ21vbnRoJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TmV4dE1vbnRoKHllYXI6IHN0cmluZywgbW9udGg6IHN0cmluZyk6IGRheWpzLkRheWpzIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuYWRkKDEsICdtb250aCcpO1xuICAgIH1cblxuICAgIGxvYWRMb2NhbGUgPSAobGFuZ3VhZ2U6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4gPT5cbiAgICAgICAgaW1wb3J0KGBkYXlqcy9sb2NhbGUvJHtsYW5ndWFnZX1gKS50aGVuKCgpID0+IGRheWpzLmxvY2FsZShsYW5ndWFnZSkpO1xuXG4gICAgZ2V0V2Vla0RheXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCB3ZWVrRGF5cyA9IFsuLi5kYXlqcy53ZWVrZGF5cygpXTtcbiAgICAgICAgLy8gd2UgbmVlZCBMdW5kaSBhcyBmaXJzdCBkYXkgb2YgdGhlIHdlZWtcbiAgICAgICAgd2Vla0RheXMucHVzaCh3ZWVrRGF5cy5zaGlmdCgpKTtcblxuICAgICAgICByZXR1cm4gd2Vla0RheXM7XG4gICAgfVxuXG4gICAgZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICBpbml0aWFsWWVhcjogc3RyaW5nLFxuICAgICAgICBpbml0aWFsTW9udGg6IHN0cmluZyxcbiAgICAgICAgaW5pdGlhbERheT86IHN0cmluZ1xuICAgICk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbFllYXIgPSBpbml0aWFsWWVhcjtcbiAgICAgICAgdGhpcy5pbml0aWFsTW9udGggPSBpbml0aWFsTW9udGg7XG4gICAgICAgIHRoaXMuaW5pdGlhbERheSA9IGluaXRpYWxEYXkgPyBpbml0aWFsRGF5IDogJzEnO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aERheXMgPSB0aGlzLmNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aCxcbiAgICAgICAgICAgIGN1cnJlbnRNb250aERheXNcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0Zvck5leHRNb250aChcbiAgICAgICAgICAgIGluaXRpYWxZZWFyLFxuICAgICAgICAgICAgaW5pdGlhbE1vbnRoLFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBkYXlzID0gW1xuICAgICAgICAgICAgLi4ucHJldmlvdXNNb250aERheXMsXG4gICAgICAgICAgICAuLi5jdXJyZW50TW9udGhEYXlzLFxuICAgICAgICAgICAgLi4ubmV4dE1vbnRoRGF5c1xuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX2Rpc3BsYXllZE1vbnRoWWVhci5uZXh0KHtcbiAgICAgICAgICAgIHllYXI6IGN1cnJlbnRNb250aERheXNbMF0uZGF0ZS55ZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIG1vbnRoOiBjdXJyZW50TW9udGhEYXlzWzBdLmRhdGUubW9udGgoKS50b1N0cmluZygpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkV2Vla3NPZk1vbnRoKGRheXMpO1xuICAgIH1cblxuICAgIGdldE5leHRXZWVrc09mTW9udGgoKTogRGF5TW9udGhbXVtdIHtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXROZXh0TW9udGgoXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxZZWFyLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsTW9udGhcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICBuZXh0TW9udGguZm9ybWF0KHRoaXMuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIG5leHRNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1dlZWtzT2ZNb250aCgpOiBEYXlNb250aFtdW10ge1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXRQcmV2aW91c01vbnRoKFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsWWVhcixcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbE1vbnRoXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5ZRUFSX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogRGF5TW9udGhbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5BcnJheShEYXRlUGlja2VySGVscGVyLmdldE51bWJlck9mRGF5c0luTW9udGgoeWVhciwgbW9udGgpKVxuICAgICAgICBdLm1hcCgoZGF5LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKGAke3llYXJ9LSR7bW9udGh9LSR7aW5kZXggKyAxfWApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgIGRhdGVBc1N0cmluZzogZGF0ZS5mb3JtYXQodGhpcy5EQVRFX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICBkYXlPZk1vbnRoOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgaXNDdXJyZW50TW9udGg6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgIHllYXI6IHN0cmluZyxcbiAgICAgICAgbW9udGg6IHN0cmluZyxcbiAgICAgICAgY3VycmVudE1vbnRoRGF5czogRGF5TW9udGhbXVxuICAgICk6IERheU1vbnRoW10ge1xuICAgICAgICBjb25zdCBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNNb250aCh5ZWFyLCBtb250aCk7XG5cbiAgICAgICAgLy8gQ292ZXIgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBiZWluZyBzdW5kYXlcbiAgICAgICAgY29uc3QgdmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoID0gZmlyc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5IC0gMVxuICAgICAgICAgICAgOiA2O1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzTW9udGhMYXN0TW9uZGF5RGF5T2ZNb250aCA9IGRheWpzKFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnRyYWN0KHZpc2libGVOdW1iZXJPZkRheXNGcm9tUHJldmlvdXNNb250aCwgJ2RheScpXG4gICAgICAgICAgICAuZGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBbLi4uQXJyYXkodmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoKV0ubWFwKFxuICAgICAgICAgICAgKGRheSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoXG4gICAgICAgICAgICAgICAgICAgIGAke3ByZXZpb3VzTW9udGgueWVhcigpfS0ke3ByZXZpb3VzTW9udGgubW9udGgoKSArIDF9LSR7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c01vbnRoTGFzdE1vbmRheURheU9mTW9udGggKyBpbmRleFxuICAgICAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogcHJldmlvdXNNb250aExhc3RNb25kYXlEYXlPZk1vbnRoICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudE1vbnRoOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEYXlzRm9yTmV4dE1vbnRoKFxuICAgICAgICB5ZWFyOiBzdHJpbmcsXG4gICAgICAgIG1vbnRoOiBzdHJpbmcsXG4gICAgICAgIGN1cnJlbnRNb250aERheXM6IERheU1vbnRoW11cbiAgICApOiBEYXlNb250aFtdIHtcbiAgICAgICAgY29uc3QgbGFzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgYCR7eWVhcn0tJHttb250aH0tJHtjdXJyZW50TW9udGhEYXlzLmxlbmd0aH1gXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5leHRNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dE1vbnRoKHllYXIsIG1vbnRoKTtcblxuICAgICAgICBjb25zdCB2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCA9IGxhc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyA3IC0gbGFzdERheU9mVGhlTW9udGhXZWVrZGF5XG4gICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5BcnJheSh2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCldLm1hcChcbiAgICAgICAgICAgIChkYXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKFxuICAgICAgICAgICAgICAgICAgICBgJHtuZXh0TW9udGgueWVhcigpfS0ke25leHRNb250aC5tb250aCgpICsgMX0tJHtpbmRleCArIDF9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnRNb250aDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRXZWVrc09mTW9udGgoZGF5czogRGF5TW9udGhbXSk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIGNvbnN0IG5iV2Vla3MgPSBkYXlzLmxlbmd0aCAvIHRoaXMuTkJfREFZU19JTl9XRUVLO1xuICAgICAgICBjb25zdCB3ZWVrcyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmJXZWVrczsgaSsrKSB7XG4gICAgICAgICAgICB3ZWVrcy5wdXNoKFxuICAgICAgICAgICAgICAgIGRheXMuc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgIGkgKiB0aGlzLk5CX0RBWVNfSU5fV0VFSyxcbiAgICAgICAgICAgICAgICAgICAgKGkgKyAxKSAqIHRoaXMuTkJfREFZU19JTl9XRUVLXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3ZWVrcztcbiAgICB9XG59XG4iXX0=
|
|
132
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlc3RhdGlvbnMtbmcvc3JjL2ZvZWhuLWRhdGUtcGlja2VyL2RhdGUtcGlja2VyLmhlbHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxVQUFVLE1BQU0seUJBQXlCLENBQUM7QUFDakQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUVuRCxLQUFLLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0FBRXpCLE1BQU0sT0FBTyxnQkFBZ0I7SUFBN0I7UUFLYSx1QkFBa0IsR0FBRyxNQUFNLENBQUM7UUFDNUIsK0JBQTBCLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLDZCQUF3QixHQUFHLEdBQUcsQ0FBQztRQUV2QixvQkFBZSxHQUFHLENBQUMsQ0FBQztRQUNwQix1QkFBa0IsR0FBRyxZQUFZLENBQUM7UUFDbEMseUJBQW9CLEdBQUcsYUFBYSxDQUFDO1FBRTlDLHdCQUFtQixHQUFHLElBQUksZUFBZSxDQUFZLElBQUksQ0FBQyxDQUFDO1FBZ0NuRSxlQUFVLEdBQUcsQ0FBQyxRQUFnQixFQUFvQixFQUFFLENBQ2hELE1BQU0sQ0FBQyxnQkFBZ0IsUUFBUSxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBMEs5RSxDQUFDO0lBek1HLElBQUksa0JBQWtCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLFlBQVksRUFBRSxDQUFDO0lBQ25ELENBQUM7SUFFRCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQWM7UUFDakMsSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzdCLE9B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LEtBQUssQ0FBQyxJQUFJLENBQ04sSUFBSSxDQUFDLEtBQUssQ0FDTixDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsRUFDeEIsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FDakMsQ0FDSixDQUFDO1NBQ0w7UUFFRCxPQUFPLEtBQUssQ0FBQztJQUNqQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBEYXlNb250aCB9IGZyb20gJy4vZGF5LW1vbnRoLnR5cGUnO1xuaW1wb3J0IHsgTW9udGhZZWFyIH0gZnJvbSAnLi9tb250aC15ZWFyLnR5cGUnO1xuaW1wb3J0IGRheWpzIGZyb20gJ2RheWpzJztcbmltcG9ydCBsb2NhbGVEYXRhIGZyb20gJ2RheWpzL3BsdWdpbi9sb2NhbGVEYXRhJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuXG5kYXlqcy5leHRlbmQobG9jYWxlRGF0YSk7XG5cbmV4cG9ydCBjbGFzcyBEYXRlUGlja2VySGVscGVyIHtcbiAgICBpbml0aWFsTW9udGg6IHN0cmluZztcbiAgICBpbml0aWFsWWVhcjogc3RyaW5nO1xuICAgIGluaXRpYWxEYXk6IHN0cmluZztcblxuICAgIHJlYWRvbmx5IFlFQVJfU1RSSU5HX0ZPUk1BVCA9ICdZWVlZJztcbiAgICByZWFkb25seSBNT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVCA9ICdNJztcbiAgICByZWFkb25seSBEQVlfU1RSSU5HX05VTUJFUl9GT1JNQVQgPSAnRCc7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IE5CX0RBWVNfSU5fV0VFSyA9IDc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBEQVRFX1NUUklOR19GT1JNQVQgPSAnWVlZWS1NTS1ERCc7XG4gICAgcHJpdmF0ZSByZWFkb25seSBEQVRFX1JFQURBQkxFX0ZPUk1BVCA9ICdEIE1NTU0gWVlZWSc7XG5cbiAgICBwcml2YXRlIF9kaXNwbGF5ZWRNb250aFllYXIgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PE1vbnRoWWVhcj4obnVsbCk7XG5cbiAgICBnZXQgZGlzcGxheWVkTW9udGhZZWFyKCk6IE9ic2VydmFibGU8TW9udGhZZWFyPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9kaXNwbGF5ZWRNb250aFllYXIuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgc3RhdGljIGdldERhdGVBc1N0cmluZyhkYXRlOiBudW1iZXJbXSk6IHN0cmluZyB7XG4gICAgICAgIGlmICghIWRhdGUgJiYgZGF0ZS5sZW5ndGggPT09IDMpIHtcbiAgICAgICAgICAgIHJldHVybiBgJHtkYXRlWzBdfS0ke2RhdGVbMV19LSR7ZGF0ZVsyXX1gO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldFdlZWtkYXkoZGF0ZTogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgY29uc3QgZGF5T2ZXZWVrID0gZGF5anMoZGF0ZSkuZm9ybWF0KCdkZGRkJyk7XG4gICAgICAgIGNvbnN0IHdlZWtEYXlzID0gZGF5anMud2Vla2RheXMoKTtcblxuICAgICAgICByZXR1cm4gd2Vla0RheXMuaW5kZXhPZihkYXlPZldlZWspO1xuICAgIH1cblxuICAgIHByaXZhdGUgc3RhdGljIGdldE51bWJlck9mRGF5c0luTW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogbnVtYmVyIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuZGF5c0luTW9udGgoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN0YXRpYyBnZXRQcmV2aW91c01vbnRoKHllYXI6IHN0cmluZywgbW9udGg6IHN0cmluZyk6IGRheWpzLkRheWpzIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuc3VidHJhY3QoMSwgJ21vbnRoJyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBzdGF0aWMgZ2V0TmV4dE1vbnRoKHllYXI6IHN0cmluZywgbW9udGg6IHN0cmluZyk6IGRheWpzLkRheWpzIHtcbiAgICAgICAgcmV0dXJuIGRheWpzKGAke3llYXJ9LSR7bW9udGh9LTAxYCkuYWRkKDEsICdtb250aCcpO1xuICAgIH1cblxuICAgIGxvYWRMb2NhbGUgPSAobGFuZ3VhZ2U6IHN0cmluZyk6IFByb21pc2U8dW5rbm93bj4gPT5cbiAgICAgICAgaW1wb3J0KGBkYXlqcy9sb2NhbGUvJHtsYW5ndWFnZX1gKS50aGVuKCgpID0+IGRheWpzLmxvY2FsZShsYW5ndWFnZSkpO1xuXG4gICAgZ2V0V2Vla0RheXMoKTogc3RyaW5nW10ge1xuICAgICAgICBjb25zdCB3ZWVrRGF5cyA9IFsuLi5kYXlqcy53ZWVrZGF5cygpXTtcbiAgICAgICAgLy8gd2UgbmVlZCBMdW5kaSBhcyBmaXJzdCBkYXkgb2YgdGhlIHdlZWtcbiAgICAgICAgd2Vla0RheXMucHVzaCh3ZWVrRGF5cy5zaGlmdCgpKTtcblxuICAgICAgICByZXR1cm4gd2Vla0RheXM7XG4gICAgfVxuXG4gICAgZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICBpbml0aWFsWWVhcjogc3RyaW5nLFxuICAgICAgICBpbml0aWFsTW9udGg6IHN0cmluZyxcbiAgICAgICAgaW5pdGlhbERheT86IHN0cmluZ1xuICAgICk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIHRoaXMuaW5pdGlhbFllYXIgPSBpbml0aWFsWWVhcjtcbiAgICAgICAgdGhpcy5pbml0aWFsTW9udGggPSBpbml0aWFsTW9udGg7XG4gICAgICAgIHRoaXMuaW5pdGlhbERheSA9IGluaXRpYWxEYXkgPyBpbml0aWFsRGF5IDogJzEnO1xuXG4gICAgICAgIGNvbnN0IGN1cnJlbnRNb250aERheXMgPSB0aGlzLmNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aFxuICAgICAgICApO1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgICAgICBpbml0aWFsWWVhcixcbiAgICAgICAgICAgIGluaXRpYWxNb250aCxcbiAgICAgICAgICAgIGN1cnJlbnRNb250aERheXNcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoRGF5cyA9IHRoaXMuY3JlYXRlRGF5c0Zvck5leHRNb250aChcbiAgICAgICAgICAgIGluaXRpYWxZZWFyLFxuICAgICAgICAgICAgaW5pdGlhbE1vbnRoLFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1xuICAgICAgICApO1xuICAgICAgICBjb25zdCBkYXlzID0gW1xuICAgICAgICAgICAgLi4ucHJldmlvdXNNb250aERheXMsXG4gICAgICAgICAgICAuLi5jdXJyZW50TW9udGhEYXlzLFxuICAgICAgICAgICAgLi4ubmV4dE1vbnRoRGF5c1xuICAgICAgICBdO1xuXG4gICAgICAgIHRoaXMuX2Rpc3BsYXllZE1vbnRoWWVhci5uZXh0KHtcbiAgICAgICAgICAgIHllYXI6IGN1cnJlbnRNb250aERheXNbMF0uZGF0ZS55ZWFyKCkudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIG1vbnRoOiBjdXJyZW50TW9udGhEYXlzWzBdLmRhdGUubW9udGgoKS50b1N0cmluZygpXG4gICAgICAgIH0pO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkV2Vla3NPZk1vbnRoKGRheXMpO1xuICAgIH1cblxuICAgIGdldE5leHRXZWVrc09mTW9udGgoKTogRGF5TW9udGhbXVtdIHtcbiAgICAgICAgY29uc3QgbmV4dE1vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXROZXh0TW9udGgoXG4gICAgICAgICAgICB0aGlzLmluaXRpYWxZZWFyLFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsTW9udGhcbiAgICAgICAgKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5nZXRXZWVrc09mTW9udGgoXG4gICAgICAgICAgICBuZXh0TW9udGguZm9ybWF0KHRoaXMuWUVBUl9TVFJJTkdfRk9STUFUKSxcbiAgICAgICAgICAgIG5leHRNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRQcmV2aW91c1dlZWtzT2ZNb250aCgpOiBEYXlNb250aFtdW10ge1xuICAgICAgICBjb25zdCBwcmV2aW91c01vbnRoID0gRGF0ZVBpY2tlckhlbHBlci5nZXRQcmV2aW91c01vbnRoKFxuICAgICAgICAgICAgdGhpcy5pbml0aWFsWWVhcixcbiAgICAgICAgICAgIHRoaXMuaW5pdGlhbE1vbnRoXG4gICAgICAgICk7XG5cbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0V2Vla3NPZk1vbnRoKFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5ZRUFSX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgcHJldmlvdXNNb250aC5mb3JtYXQodGhpcy5NT05USF9TVFJJTkdfTlVNQkVSX0ZPUk1BVClcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZURheXNGb3JDdXJyZW50TW9udGgoeWVhcjogc3RyaW5nLCBtb250aDogc3RyaW5nKTogRGF5TW9udGhbXSB7XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAgICAuLi5BcnJheShEYXRlUGlja2VySGVscGVyLmdldE51bWJlck9mRGF5c0luTW9udGgoeWVhciwgbW9udGgpKVxuICAgICAgICBdLm1hcCgoZGF5LCBpbmRleCkgPT4ge1xuICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKGAke3llYXJ9LSR7bW9udGh9LSR7aW5kZXggKyAxfWApO1xuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICBkYXRlLFxuICAgICAgICAgICAgICAgIGRhdGVBc1N0cmluZzogZGF0ZS5mb3JtYXQodGhpcy5EQVRFX1NUUklOR19GT1JNQVQpLFxuICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICBkYXlPZk1vbnRoOiBpbmRleCArIDEsXG4gICAgICAgICAgICAgICAgaXNDdXJyZW50TW9udGg6IHRydWVcbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlRGF5c0ZvclByZXZpb3VzTW9udGgoXG4gICAgICAgIHllYXI6IHN0cmluZyxcbiAgICAgICAgbW9udGg6IHN0cmluZyxcbiAgICAgICAgY3VycmVudE1vbnRoRGF5czogRGF5TW9udGhbXVxuICAgICk6IERheU1vbnRoW10ge1xuICAgICAgICBjb25zdCBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKTtcbiAgICAgICAgY29uc3QgcHJldmlvdXNNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0UHJldmlvdXNNb250aCh5ZWFyLCBtb250aCk7XG5cbiAgICAgICAgLy8gQ292ZXIgZmlyc3QgZGF5IG9mIHRoZSBtb250aCBiZWluZyBzdW5kYXlcbiAgICAgICAgY29uc3QgdmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoID0gZmlyc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyBmaXJzdERheU9mVGhlTW9udGhXZWVrZGF5IC0gMVxuICAgICAgICAgICAgOiA2O1xuXG4gICAgICAgIGNvbnN0IHByZXZpb3VzTW9udGhMYXN0TW9uZGF5RGF5T2ZNb250aCA9IGRheWpzKFxuICAgICAgICAgICAgY3VycmVudE1vbnRoRGF5c1swXS5kYXRlQXNTdHJpbmdcbiAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnRyYWN0KHZpc2libGVOdW1iZXJPZkRheXNGcm9tUHJldmlvdXNNb250aCwgJ2RheScpXG4gICAgICAgICAgICAuZGF0ZSgpO1xuXG4gICAgICAgIHJldHVybiBbLi4uQXJyYXkodmlzaWJsZU51bWJlck9mRGF5c0Zyb21QcmV2aW91c01vbnRoKV0ubWFwKFxuICAgICAgICAgICAgKGRheSwgaW5kZXgpID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBkYXRlID0gZGF5anMoXG4gICAgICAgICAgICAgICAgICAgIGAke3ByZXZpb3VzTW9udGgueWVhcigpfS0ke3ByZXZpb3VzTW9udGgubW9udGgoKSArIDF9LSR7XG4gICAgICAgICAgICAgICAgICAgICAgICBwcmV2aW91c01vbnRoTGFzdE1vbmRheURheU9mTW9udGggKyBpbmRleFxuICAgICAgICAgICAgICAgICAgICB9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogcHJldmlvdXNNb250aExhc3RNb25kYXlEYXlPZk1vbnRoICsgaW5kZXgsXG4gICAgICAgICAgICAgICAgICAgIGlzQ3VycmVudE1vbnRoOiBmYWxzZVxuICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICB9XG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVEYXlzRm9yTmV4dE1vbnRoKFxuICAgICAgICB5ZWFyOiBzdHJpbmcsXG4gICAgICAgIG1vbnRoOiBzdHJpbmcsXG4gICAgICAgIGN1cnJlbnRNb250aERheXM6IERheU1vbnRoW11cbiAgICApOiBEYXlNb250aFtdIHtcbiAgICAgICAgY29uc3QgbGFzdERheU9mVGhlTW9udGhXZWVrZGF5ID0gRGF0ZVBpY2tlckhlbHBlci5nZXRXZWVrZGF5KFxuICAgICAgICAgICAgYCR7eWVhcn0tJHttb250aH0tJHtjdXJyZW50TW9udGhEYXlzLmxlbmd0aH1gXG4gICAgICAgICk7XG4gICAgICAgIGNvbnN0IG5leHRNb250aCA9IERhdGVQaWNrZXJIZWxwZXIuZ2V0TmV4dE1vbnRoKHllYXIsIG1vbnRoKTtcblxuICAgICAgICBjb25zdCB2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCA9IGxhc3REYXlPZlRoZU1vbnRoV2Vla2RheVxuICAgICAgICAgICAgPyA3IC0gbGFzdERheU9mVGhlTW9udGhXZWVrZGF5XG4gICAgICAgICAgICA6IDA7XG5cbiAgICAgICAgcmV0dXJuIFsuLi5BcnJheSh2aXNpYmxlTnVtYmVyT2ZEYXlzRnJvbU5leHRNb250aCldLm1hcChcbiAgICAgICAgICAgIChkYXksIGluZGV4KSA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgZGF0ZSA9IGRheWpzKFxuICAgICAgICAgICAgICAgICAgICBgJHtuZXh0TW9udGgueWVhcigpfS0ke25leHRNb250aC5tb250aCgpICsgMX0tJHtpbmRleCArIDF9YFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgZGF0ZSxcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUFzU3RyaW5nOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfU1RSSU5HX0ZPUk1BVCksXG4gICAgICAgICAgICAgICAgICAgIGRhdGVBc1JlYWRhYmxlOiBkYXRlLmZvcm1hdCh0aGlzLkRBVEVfUkVBREFCTEVfRk9STUFUKSxcbiAgICAgICAgICAgICAgICAgICAgZGF5T2ZNb250aDogaW5kZXggKyAxLFxuICAgICAgICAgICAgICAgICAgICBpc0N1cnJlbnRNb250aDogZmFsc2VcbiAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgfVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgYnVpbGRXZWVrc09mTW9udGgoZGF5czogRGF5TW9udGhbXSk6IERheU1vbnRoW11bXSB7XG4gICAgICAgIGNvbnN0IG5iV2Vla3MgPSBkYXlzLmxlbmd0aCAvIHRoaXMuTkJfREFZU19JTl9XRUVLO1xuICAgICAgICBjb25zdCB3ZWVrcyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgbmJXZWVrczsgaSsrKSB7XG4gICAgICAgICAgICB3ZWVrcy5wdXNoKFxuICAgICAgICAgICAgICAgIGRheXMuc2xpY2UoXG4gICAgICAgICAgICAgICAgICAgIGkgKiB0aGlzLk5CX0RBWVNfSU5fV0VFSyxcbiAgICAgICAgICAgICAgICAgICAgKGkgKyAxKSAqIHRoaXMuTkJfREFZU19JTl9XRUVLXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB3ZWVrcztcbiAgICB9XG59XG4iXX0=
|