@colijnit/sharedcomponents 260.1.11 → 260.1.13
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/bundles/colijnit-sharedcomponents.umd.js +116 -12
- package/bundles/colijnit-sharedcomponents.umd.js.map +1 -1
- package/colijnit-sharedcomponents.metadata.json +1 -1
- package/esm2015/lib/components/date-planning/component/agenda/agenda-header.component.js +83 -18
- package/esm2015/lib/components/date-planning/component/agenda/view-select.component.js +37 -4
- package/esm2015/lib/components/date-planning/component/calendar/calendar-view.component.js +2 -2
- package/esm2015/lib/components/date-planning/component/calendar/calendar.component.js +2 -2
- package/esm2015/lib/components/date-planning/date-planning.component.js +3 -3
- package/esm2015/lib/components/send-method-dialog/send-method-dialog.component.js +4 -1
- package/esm2015/lib/enum/calendar-view.enum.js +3 -1
- package/esm2015/lib/enum/icon.enum.js +1 -1
- package/esm2015/lib/model/icon-svg.js +1 -1
- package/esm2015/lib/res/dictionary/dictionaries.js +1 -7
- package/esm2015/lib/utils/calendar.utils.js +73 -1
- package/fesm2015/colijnit-sharedcomponents.js +199 -30
- package/fesm2015/colijnit-sharedcomponents.js.map +1 -1
- package/lib/components/date-planning/component/agenda/view-select.component.d.ts +2 -0
- package/lib/enum/calendar-view.enum.d.ts +2 -0
- package/lib/res/dictionary/dictionaries.d.ts +0 -31885
- package/lib/utils/calendar.utils.d.ts +3 -0
- package/package.json +1 -1
- package/358.645812766f7a400d0d38.js +0 -1
- package/3rdpartylicenses.txt +0 -2017
- package/7.3142e473803d1a7f9729.js +0 -1
- package/977.bd6291f9ee6f6ddf91f1.js +0 -1
- package/favicon.ico +0 -0
- package/index.html +0 -12
- package/main.0245847a0061efd03ea1.js +0 -1
- package/polyfills.907fe9d1887c5de17993.js +0 -1
- package/runtime.023dce2502cba6970a33.js +0 -1
- package/styles.1eab293def3e726bfaa4.css +0 -1
|
@@ -29,6 +29,70 @@ export class CalendarUtils {
|
|
|
29
29
|
return datesByTheHour;
|
|
30
30
|
}
|
|
31
31
|
static GetDaysOfWeek(date) {
|
|
32
|
+
let day = date ? new Date(date) : new Date();
|
|
33
|
+
day = CalendarUtils.getMonday(day);
|
|
34
|
+
const daysOfWeek = [];
|
|
35
|
+
let options;
|
|
36
|
+
let month;
|
|
37
|
+
for (let i = 0; i < 7; i++) {
|
|
38
|
+
const dayPerWeek = new Weekday();
|
|
39
|
+
const dayHours = CalendarUtils.GetDayHours(day);
|
|
40
|
+
dayPerWeek.newMonth = day.getMonth() !== month;
|
|
41
|
+
dayPerWeek.weekdaySelected = day.getDay() === date.getDay();
|
|
42
|
+
dayPerWeek.weekdayDay = day.getDate();
|
|
43
|
+
options = { weekday: "short" };
|
|
44
|
+
dayPerWeek.weekdayShort = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
45
|
+
options = { weekday: "long" };
|
|
46
|
+
dayPerWeek.weekdayLong = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
47
|
+
options = { month: "short" };
|
|
48
|
+
dayPerWeek.weekdayMonthShort = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
49
|
+
options = { month: "long" };
|
|
50
|
+
dayPerWeek.weekdayMonthLong = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
51
|
+
dayPerWeek.weekdayYear = day.getFullYear();
|
|
52
|
+
dayPerWeek.date = new Date(day);
|
|
53
|
+
dayPerWeek.datesByTheHour = dayHours;
|
|
54
|
+
daysOfWeek.push(dayPerWeek);
|
|
55
|
+
month = day.getMonth();
|
|
56
|
+
day = new Date(day);
|
|
57
|
+
day.setDate(day.getDate() + 1);
|
|
58
|
+
}
|
|
59
|
+
const week = new Week();
|
|
60
|
+
week.weekDays = daysOfWeek;
|
|
61
|
+
return week;
|
|
62
|
+
}
|
|
63
|
+
static GetWorkDaysOfWeek(date) {
|
|
64
|
+
let day = date ? new Date(date) : new Date();
|
|
65
|
+
day = CalendarUtils.getMonday(day);
|
|
66
|
+
const daysOfWeek = [];
|
|
67
|
+
let options;
|
|
68
|
+
let month;
|
|
69
|
+
for (let i = 0; i < 5; i++) {
|
|
70
|
+
const dayPerWeek = new Weekday();
|
|
71
|
+
const dayHours = CalendarUtils.GetDayHours(day);
|
|
72
|
+
dayPerWeek.newMonth = day.getMonth() !== month;
|
|
73
|
+
dayPerWeek.weekdaySelected = day.getDay() === date.getDay();
|
|
74
|
+
dayPerWeek.weekdayDay = day.getDate();
|
|
75
|
+
options = { weekday: "short" };
|
|
76
|
+
dayPerWeek.weekdayShort = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
77
|
+
options = { weekday: "long" };
|
|
78
|
+
dayPerWeek.weekdayLong = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
79
|
+
options = { month: "short" };
|
|
80
|
+
dayPerWeek.weekdayMonthShort = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
81
|
+
options = { month: "long" };
|
|
82
|
+
dayPerWeek.weekdayMonthLong = day.toLocaleDateString(CalendarUtils.Locale, options);
|
|
83
|
+
dayPerWeek.weekdayYear = day.getFullYear();
|
|
84
|
+
dayPerWeek.date = new Date(day);
|
|
85
|
+
dayPerWeek.datesByTheHour = dayHours;
|
|
86
|
+
daysOfWeek.push(dayPerWeek);
|
|
87
|
+
month = day.getMonth();
|
|
88
|
+
day = new Date(day);
|
|
89
|
+
day.setDate(day.getDate() + 1);
|
|
90
|
+
}
|
|
91
|
+
const week = new Week();
|
|
92
|
+
week.weekDays = daysOfWeek;
|
|
93
|
+
return week;
|
|
94
|
+
}
|
|
95
|
+
static GetThreeDays(date) {
|
|
32
96
|
let day;
|
|
33
97
|
if (!date) {
|
|
34
98
|
day = new Date();
|
|
@@ -98,10 +162,18 @@ export class CalendarUtils {
|
|
|
98
162
|
week.weekDays = daysAround;
|
|
99
163
|
return week;
|
|
100
164
|
}
|
|
165
|
+
static getMonday(date) {
|
|
166
|
+
const d = new Date(date);
|
|
167
|
+
const day = d.getDay(); // 0 (Sun) - 6 (Sat)
|
|
168
|
+
const diff = (day === 0 ? -6 : 1) - day;
|
|
169
|
+
d.setDate(d.getDate() + diff);
|
|
170
|
+
d.setHours(0, 0, 0, 0);
|
|
171
|
+
return d;
|
|
172
|
+
}
|
|
101
173
|
}
|
|
102
174
|
CalendarUtils.Locale = undefined;
|
|
103
175
|
CalendarUtils.Now = new Date();
|
|
104
176
|
CalendarUtils.ctorParameters = () => [
|
|
105
177
|
{ type: LanguageCode, decorators: [{ type: Inject, args: [LOCALE_ID,] }] }
|
|
106
178
|
];
|
|
107
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvdXRpbHMvY2FsZW5kYXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFekMsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFDd0MsT0FBcUI7UUFBckIsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUV6RCxhQUFhLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLHFDQUFxQztJQUNyQyxJQUFJO0lBQ0osRUFBRTtJQUNGLDRDQUE0QztJQUM1Qyx5Q0FBeUM7SUFDekMsSUFBSTtJQUVHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBUztRQUMvQixNQUFNLGNBQWMsR0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLE9BQU8sR0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdCLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFD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QU8sQ0FBQyxDQUFDO1lBRS9FLE9BQU8sR0FBRyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUUsQ0FBQztZQUM3QixVQUFVLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLGtCQUFrQixDQUFDLGFBQWEsQ0FBQyxNQUFNLEVBQUUsT0FBTyxDQUFDLENBQUM7WUFDckYsT0FBTyxHQUFHLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxDQUFDO1lBQzVCLFVBQVUsQ0FBQyxnQkFBZ0IsR0FBRyxHQUFHLENBQUMsa0JBQWtCLENBQUMsYUFBYSxDQUFDLE1BQU0sRUFBRSxPQUFPLENBQUMsQ0FBQztZQUNwRixVQUFVLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUUzQyxVQUFVLENBQUMsSUFBSSxHQUFHLElBQUksSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ2hDLFVBQVUsQ0FBQyxjQUFjLEdBQUcsUUFBUSxDQUFDO1lBQ3JDLFVBQVUsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7WUFFNUIsdUJBQXVCO1lBQ3ZCLEdBQUcsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1NBQ2hDO1FBRUQsTUFBTSxJQUFJLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztRQUMzQixPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7O0FBL0dlLG9CQUFNLEdBQWlCLFNBQVMsQ0FBQztBQUVqQyxpQkFBRyxHQUFTLElBQUksSUFBSSxFQUFFLENBQUM7O1lBTmpDLFlBQVksdUJBU1gsTUFBTSxTQUFDLFNBQVMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RhdGVVdGlsc30gZnJvbSBcIi4vZGF0ZS11dGlsc1wiO1xyXG5pbXBvcnQge1dlZWtkYXl9IGZyb20gXCIuLi9tb2RlbC93ZWVrZGF5Lm1vZGVsXCI7XHJcbmltcG9ydCB7SW5qZWN0LCBMT0NBTEVfSUR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7TGFuZ3VhZ2VDb2RlfSBmcm9tIFwiLi4vZW51bS9sYW5ndWFnZS1jb2RlLmVudW1cIjtcclxuaW1wb3J0IHtXZWVrfSBmcm9tIFwiLi4vbW9kZWwvd2Vlay5tb2RlbFwiO1xyXG5cclxuZXhwb3J0IGNsYXNzIENhbGVuZGFyVXRpbHMge1xyXG4gICAgcHVibGljIHN0YXRpYyBMb2NhbGU6IExhbmd1YWdlQ29kZSA9IHVuZGVmaW5lZDtcclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIE5vdzogRGF0ZSA9IG5ldyBEYXRlKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgQEluamVjdChMT0NBTEVfSUQpIHByaXZhdGUgcmVhZG9ubHkgX2xvY2FsZTogTGFuZ3VhZ2VDb2RlXHJcbiAgICApIHtcclxuICAgICAgICBDYWxlbmRhclV0aWxzLkxvY2FsZSA9IF9sb2NhbGU7XHJcbiAgICB9XHJcblxyXG4gICAgLy8gcHVibGljIHN0YXRpYyBHZXRDdXJyZW50WWVhcigpOiBudW1iZXIge1xyXG4gICAgLy8gICAgIHJldHVybiB0aGlzLk5vdy5nZXRGdWxsWWVhcigpO1xyXG4gICAgLy8gfVxyXG4gICAgLy9cclxuICAgIC8vIHB1YmxpYyBzdGF0aWMgR2V0Q3VycmVudE1vbnRoKCk6IG51bWJlciB7XHJcbiAgICAvLyAgICAgcmV0dXJuIHRoaXMuTm93LmdldFVUQ01vbnRoKCkgKyAxO1xyXG4gICAgLy8gfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0RGF5SG91cnMoZGF5OiBEYXRlKTogRGF0ZVtdIHtcclxuICAgICAgICBjb25zdCBkYXRlc0J5VGhlSG91cjogRGF0ZVtdID0gW107XHJcbiAgICAgICAgaWYgKGRheSkge1xyXG4gICAgICAgICAgICBsZXQgbmV3RGF0ZTogRGF0ZSA9IG5ldyBEYXRlKGRheSk7XHJcbiAgICAgICAgICAgIG5ld0RhdGUuc2V0SG91cnMoMCwgMCwgMCwgMCk7XHJcbiAgICAgICAgICAgIGRhdGVzQnlUaGVIb3VyLnB1c2gobmV3RGF0ZSk7XHJcbiAgICAgICAgICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCAyMzsgaSsrKSB7XHJcbiAgICAgICAgICAgICAgICBuZXdEYXRlID0gbmV3IERhdGUobmV3RGF0ZSk7XHJcbiAgICAgICAgICAgICAgICBuZXdEYXRlLnNldEhvdXJzKG5ld0RhdGUuZ2V0SG91cnMoKSArIDEpO1xyXG4gICAgICAgICAgICAgICAgZGF0ZXNCeVRoZUhvdXIucHVzaChuZXdEYXRlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gZGF0ZXNCeVRoZUhvdXI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBHZXREYXlzT2ZXZWVrKGRhdGU6IERhdGUpOiBXZWVrIHtcclxuICAgICAgbGV0IGRheTtcclxuICAgICAgaWYoIWRhdGUpIHtcclxuICAgICAgIGRheSA9IG5ldyBEYXRlKCk7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgZGF5ID0gZGF0ZTtcclxuICAgICAgfVxyXG4gICAgICAgIGNvbnN0IGRheXNPZldlZWs6IFdlZWtkYXlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBvcHRpb25zOiBhbnk7XHJcbiAgICAgICAgbGV0IG1vbnRoOiBudW1iZXI7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IDM7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkYXlQZXJXZWVrOiBXZWVrZGF5ID0gbmV3IFdlZWtkYXkoKTtcclxuICAgICAgICAgICAgY29uc3QgZGF5SG91cnM6IERhdGVbXSA9IENhbGVuZGFyVXRpbHMuR2V0RGF5SG91cnMoZGF5KTtcclxuICAgICAgICAgICAgZGF5UGVyV2Vlay5uZXdNb250aCA9IGRheS5nZXRNb250aCgpICE9PSBtb250aDtcclxuICAgICAgICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5U2VsZWN0ZWQgPSBkYXkuZ2V0RGF5KCkgPT09IGRhdGUuZ2V0RGF5KCk7XHJcbiAgICAgICAgICAgIGRheVBlcldlZWsud2Vla2RheURheSA9IGRheS5nZXREYXRlKCk7XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IHdlZWtkYXk6IFwic2hvcnRcIiB9O1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLndlZWtkYXlTaG9ydCA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICBvcHRpb25zID0geyB3ZWVrZGF5OiBcImxvbmdcIiB9O1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLndlZWtkYXlMb25nID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgICAgICBvcHRpb25zID0geyBtb250aDogXCJzaG9ydFwiIH07XHJcbiAgICAgICAgICAgIGRheVBlcldlZWsud2Vla2RheU1vbnRoU2hvcnQgPSBkYXkudG9Mb2NhbGVEYXRlU3RyaW5nKENhbGVuZGFyVXRpbHMuTG9jYWxlLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgbW9udGg6IFwibG9uZ1wiIH07XHJcbiAgICAgICAgICAgIGRheVBlcldlZWsud2Vla2RheU1vbnRoTG9uZyA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLndlZWtkYXlZZWFyID0gZGF5LmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLmRhdGUgPSBuZXcgRGF0ZShkYXkpO1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLmRhdGVzQnlUaGVIb3VyID0gZGF5SG91cnM7XHJcbiAgICAgICAgICAgIGRheXNPZldlZWsucHVzaChkYXlQZXJXZWVrKTtcclxuICAgICAgICAgICAgbW9udGggPSBkYXkuZ2V0TW9udGgoKTtcclxuICAgICAgICAgICAgZGF5ID0gbmV3IERhdGUoZGF5KTtcclxuICAgICAgICAgICAgZGF5LnNldERhdGUoZGF5LmdldERhdGUoKSArIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB3ZWVrOiBXZWVrID0gbmV3IFdlZWsoKTtcclxuICAgICAgICB3ZWVrLndlZWtEYXlzID0gZGF5c09mV2VlaztcclxuICAgICAgICByZXR1cm4gd2VlaztcclxuICAgIH1cclxuICBwdWJsaWMgc3RhdGljIEdldERheXNBcm91bmQoZGF0ZTogRGF0ZSk6IFdlZWsge1xyXG4gICAgY29uc3QgZGF5c0Fyb3VuZDogV2Vla2RheVtdID0gW107XHJcbiAgICBjb25zdCBjdXJyZW50RGF0ZSA9IGRhdGUgPyBuZXcgRGF0ZShkYXRlKSA6IG5ldyBEYXRlKCk7XHJcbiAgICBjdXJyZW50RGF0ZS5zZXRIb3VycygwLCAwLCAwLCAwKTtcclxuXHJcbiAgICAvLyBHZXQgdGhlIGN1cnJlbnQgZGF5IGFuZCBnbyB0d28gZGF5cyBiYWNrXHJcbiAgICBsZXQgZGF5ID0gbmV3IERhdGUoY3VycmVudERhdGUpO1xyXG4gICAgZGF5LnNldERhdGUoZGF5LmdldERhdGUoKSAtIDIpO1xyXG5cclxuICAgIC8vIExvb3AgdG8gZ2V0IHRoZSB0d28gZGF5cyBiZWZvcmUgYW5kIGZvdXIgZGF5cyBhZnRlciB0aGUgY3VycmVudCBkYXlcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgNzsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRheVBlcldlZWs6IFdlZWtkYXkgPSBuZXcgV2Vla2RheSgpO1xyXG4gICAgICBjb25zdCBkYXlIb3VyczogRGF0ZVtdID0gQ2FsZW5kYXJVdGlscy5HZXREYXlIb3VycyhkYXkpO1xyXG5cclxuICAgICAgZGF5UGVyV2Vlay5uZXdNb250aCA9IGRheS5nZXRNb250aCgpICE9PSBjdXJyZW50RGF0ZS5nZXRNb250aCgpO1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlTZWxlY3RlZCA9IGRheS5nZXREYXRlKCkgPT09IGN1cnJlbnREYXRlLmdldERhdGUoKTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5RGF5ID0gZGF5LmdldERhdGUoKTtcclxuXHJcbiAgICAgIGxldCBvcHRpb25zOiBhbnkgPSB7IHdlZWtkYXk6IFwic2hvcnRcIiB9O1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlTaG9ydCA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICBvcHRpb25zID0geyB3ZWVrZGF5OiBcImxvbmdcIiB9O1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlMb25nID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcblxyXG4gICAgICBvcHRpb25zID0geyBtb250aDogXCJzaG9ydFwiIH07XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheU1vbnRoU2hvcnQgPSBkYXkudG9Mb2NhbGVEYXRlU3RyaW5nKENhbGVuZGFyVXRpbHMuTG9jYWxlLCBvcHRpb25zKTtcclxuICAgICAgb3B0aW9ucyA9IHsgbW9udGg6IFwibG9uZ1wiIH07XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheU1vbnRoTG9uZyA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlZZWFyID0gZGF5LmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgICBkYXlQZXJXZWVrLmRhdGUgPSBuZXcgRGF0ZShkYXkpO1xyXG4gICAgICBkYXlQZXJXZWVrLmRhdGVzQnlUaGVIb3VyID0gZGF5SG91cnM7XHJcbiAgICAgIGRheXNBcm91bmQucHVzaChkYXlQZXJXZWVrKTtcclxuXHJcbiAgICAgIC8vIE1vdmUgdG8gdGhlIG5leHQgZGF5XHJcbiAgICAgIGRheS5zZXREYXRlKGRheS5nZXREYXRlKCkgKyAxKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB3ZWVrOiBXZWVrID0gbmV3IFdlZWsoKTtcclxuICAgIHdlZWsud2Vla0RheXMgPSBkYXlzQXJvdW5kO1xyXG4gICAgcmV0dXJuIHdlZWs7XHJcbiAgfVxyXG59XHJcbiJdfQ==
|
|
179
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIudXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9zaGFyZWRjb21wb25lbnRzL3NyYy9saWIvdXRpbHMvY2FsZW5kYXIudXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFDLE9BQU8sRUFBQyxNQUFNLHdCQUF3QixDQUFDO0FBQy9DLE9BQU8sRUFBQyxNQUFNLEVBQUUsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ2hELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSw0QkFBNEIsQ0FBQztBQUN4RCxPQUFPLEVBQUMsSUFBSSxFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFekMsTUFBTSxPQUFPLGFBQWE7SUFLdEIsWUFDd0MsT0FBcUI7UUFBckIsWUFBTyxHQUFQLE9BQU8sQ0FBYztRQUV6RCxhQUFhLENBQUMsTUFBTSxHQUFHLE9BQU8sQ0FBQztJQUNuQyxDQUFDO0lBRUQsMkNBQTJDO0lBQzNDLHFDQUFxQztJQUNyQyxJQUFJO0lBQ0osRUFBRTtJQUNGLDRDQUE0QztJQUM1Qyx5Q0FBeUM7SUFDekMsSUFBSTtJQUVHLE1BQU0sQ0FBQyxXQUFXLENBQUMsR0FBUztRQUMvQixNQUFNLGNBQWMsR0FBVyxFQUFFLENBQUM7UUFDbEMsSUFBSSxHQUFHLEVBQUU7WUFDTCxJQUFJLE9BQU8sR0FBUyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztZQUNsQyxPQUFPLENBQUMsUUFBUSxDQUFDLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQzdCLGNBQWMsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDN0IsS0FBSyxJQUFJLENBQUMsR0FBVyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtnQkFDakMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFD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QUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUU1Qix1QkFBdUI7WUFDdkIsR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7U0FDaEM7UUFFRCxNQUFNLElBQUksR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQzlCLElBQUksQ0FBQyxRQUFRLEdBQUcsVUFBVSxDQUFDO1FBQzNCLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztJQUVPLE1BQU0sQ0FBQyxTQUFTLENBQUMsSUFBVTtRQUNqQyxNQUFNLENBQUMsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN6QixNQUFNLEdBQUcsR0FBRyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxvQkFBb0I7UUFDNUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxDQUFDO1FBQzlCLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdkIsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDOztBQTdMZSxvQkFBTSxHQUFpQixTQUFTLENBQUM7QUFFakMsaUJBQUcsR0FBUyxJQUFJLElBQUksRUFBRSxDQUFDOztZQU5qQyxZQUFZLHVCQVNYLE1BQU0sU0FBQyxTQUFTIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtEYXRlVXRpbHN9IGZyb20gXCIuL2RhdGUtdXRpbHNcIjtcclxuaW1wb3J0IHtXZWVrZGF5fSBmcm9tIFwiLi4vbW9kZWwvd2Vla2RheS5tb2RlbFwiO1xyXG5pbXBvcnQge0luamVjdCwgTE9DQUxFX0lEfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQge0xhbmd1YWdlQ29kZX0gZnJvbSBcIi4uL2VudW0vbGFuZ3VhZ2UtY29kZS5lbnVtXCI7XHJcbmltcG9ydCB7V2Vla30gZnJvbSBcIi4uL21vZGVsL3dlZWsubW9kZWxcIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBDYWxlbmRhclV0aWxzIHtcclxuICAgIHB1YmxpYyBzdGF0aWMgTG9jYWxlOiBMYW5ndWFnZUNvZGUgPSB1bmRlZmluZWQ7XHJcblxyXG4gICAgcHVibGljIHN0YXRpYyBOb3c6IERhdGUgPSBuZXcgRGF0ZSgpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIEBJbmplY3QoTE9DQUxFX0lEKSBwcml2YXRlIHJlYWRvbmx5IF9sb2NhbGU6IExhbmd1YWdlQ29kZVxyXG4gICAgKSB7XHJcbiAgICAgICAgQ2FsZW5kYXJVdGlscy5Mb2NhbGUgPSBfbG9jYWxlO1xyXG4gICAgfVxyXG5cclxuICAgIC8vIHB1YmxpYyBzdGF0aWMgR2V0Q3VycmVudFllYXIoKTogbnVtYmVyIHtcclxuICAgIC8vICAgICByZXR1cm4gdGhpcy5Ob3cuZ2V0RnVsbFllYXIoKTtcclxuICAgIC8vIH1cclxuICAgIC8vXHJcbiAgICAvLyBwdWJsaWMgc3RhdGljIEdldEN1cnJlbnRNb250aCgpOiBudW1iZXIge1xyXG4gICAgLy8gICAgIHJldHVybiB0aGlzLk5vdy5nZXRVVENNb250aCgpICsgMTtcclxuICAgIC8vIH1cclxuXHJcbiAgICBwdWJsaWMgc3RhdGljIEdldERheUhvdXJzKGRheTogRGF0ZSk6IERhdGVbXSB7XHJcbiAgICAgICAgY29uc3QgZGF0ZXNCeVRoZUhvdXI6IERhdGVbXSA9IFtdO1xyXG4gICAgICAgIGlmIChkYXkpIHtcclxuICAgICAgICAgICAgbGV0IG5ld0RhdGU6IERhdGUgPSBuZXcgRGF0ZShkYXkpO1xyXG4gICAgICAgICAgICBuZXdEYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgICAgICAgICBkYXRlc0J5VGhlSG91ci5wdXNoKG5ld0RhdGUpO1xyXG4gICAgICAgICAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgMjM7IGkrKykge1xyXG4gICAgICAgICAgICAgICAgbmV3RGF0ZSA9IG5ldyBEYXRlKG5ld0RhdGUpO1xyXG4gICAgICAgICAgICAgICAgbmV3RGF0ZS5zZXRIb3VycyhuZXdEYXRlLmdldEhvdXJzKCkgKyAxKTtcclxuICAgICAgICAgICAgICAgIGRhdGVzQnlUaGVIb3VyLnB1c2gobmV3RGF0ZSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIGRhdGVzQnlUaGVIb3VyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBzdGF0aWMgR2V0RGF5c09mV2VlayhkYXRlOiBEYXRlKTogV2VlayB7XHJcbiAgICAgIGxldCBkYXkgPSBkYXRlID8gbmV3IERhdGUoZGF0ZSkgOiBuZXcgRGF0ZSgpO1xyXG4gICAgICBkYXkgPSBDYWxlbmRhclV0aWxzLmdldE1vbmRheShkYXkpO1xyXG4gICAgICAgIGNvbnN0IGRheXNPZldlZWs6IFdlZWtkYXlbXSA9IFtdO1xyXG4gICAgICAgIGxldCBvcHRpb25zOiBhbnk7XHJcbiAgICAgICAgbGV0IG1vbnRoOiBudW1iZXI7XHJcbiAgICAgICAgZm9yIChsZXQgaTogbnVtYmVyID0gMDsgaSA8IDc7IGkrKykge1xyXG4gICAgICAgICAgICBjb25zdCBkYXlQZXJXZWVrOiBXZWVrZGF5ID0gbmV3IFdlZWtkYXkoKTtcclxuICAgICAgICAgICAgY29uc3QgZGF5SG91cnM6IERhdGVbXSA9IENhbGVuZGFyVXRpbHMuR2V0RGF5SG91cnMoZGF5KTtcclxuICAgICAgICAgICAgZGF5UGVyV2Vlay5uZXdNb250aCA9IGRheS5nZXRNb250aCgpICE9PSBtb250aDtcclxuICAgICAgICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5U2VsZWN0ZWQgPSBkYXkuZ2V0RGF5KCkgPT09IGRhdGUuZ2V0RGF5KCk7XHJcbiAgICAgICAgICAgIGRheVBlcldlZWsud2Vla2RheURheSA9IGRheS5nZXREYXRlKCk7XHJcbiAgICAgICAgICAgIG9wdGlvbnMgPSB7IHdlZWtkYXk6IFwic2hvcnRcIiB9O1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLndlZWtkYXlTaG9ydCA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICBvcHRpb25zID0geyB3ZWVrZGF5OiBcImxvbmdcIiB9O1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLndlZWtkYXlMb25nID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcblxyXG4gICAgICAgICAgICBvcHRpb25zID0geyBtb250aDogXCJzaG9ydFwiIH07XHJcbiAgICAgICAgICAgIGRheVBlcldlZWsud2Vla2RheU1vbnRoU2hvcnQgPSBkYXkudG9Mb2NhbGVEYXRlU3RyaW5nKENhbGVuZGFyVXRpbHMuTG9jYWxlLCBvcHRpb25zKTtcclxuICAgICAgICAgICAgb3B0aW9ucyA9IHsgbW9udGg6IFwibG9uZ1wiIH07XHJcbiAgICAgICAgICAgIGRheVBlcldlZWsud2Vla2RheU1vbnRoTG9uZyA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLndlZWtkYXlZZWFyID0gZGF5LmdldEZ1bGxZZWFyKCk7XHJcblxyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLmRhdGUgPSBuZXcgRGF0ZShkYXkpO1xyXG4gICAgICAgICAgICBkYXlQZXJXZWVrLmRhdGVzQnlUaGVIb3VyID0gZGF5SG91cnM7XHJcbiAgICAgICAgICAgIGRheXNPZldlZWsucHVzaChkYXlQZXJXZWVrKTtcclxuICAgICAgICAgICAgbW9udGggPSBkYXkuZ2V0TW9udGgoKTtcclxuICAgICAgICAgICAgZGF5ID0gbmV3IERhdGUoZGF5KTtcclxuICAgICAgICAgICAgZGF5LnNldERhdGUoZGF5LmdldERhdGUoKSArIDEpO1xyXG4gICAgICAgIH1cclxuICAgICAgICBjb25zdCB3ZWVrOiBXZWVrID0gbmV3IFdlZWsoKTtcclxuICAgICAgICB3ZWVrLndlZWtEYXlzID0gZGF5c09mV2VlaztcclxuICAgICAgICByZXR1cm4gd2VlaztcclxuICAgIH1cclxuXHJcbiAgcHVibGljIHN0YXRpYyBHZXRXb3JrRGF5c09mV2VlayhkYXRlOiBEYXRlKTogV2VlayB7XHJcbiAgICBsZXQgZGF5ID0gZGF0ZSA/IG5ldyBEYXRlKGRhdGUpIDogbmV3IERhdGUoKTtcclxuICAgIGRheSA9IENhbGVuZGFyVXRpbHMuZ2V0TW9uZGF5KGRheSk7XHJcbiAgICBjb25zdCBkYXlzT2ZXZWVrOiBXZWVrZGF5W10gPSBbXTtcclxuICAgIGxldCBvcHRpb25zOiBhbnk7XHJcbiAgICBsZXQgbW9udGg6IG51bWJlcjtcclxuICAgIGZvciAobGV0IGk6IG51bWJlciA9IDA7IGkgPCA1OyBpKyspIHtcclxuICAgICAgY29uc3QgZGF5UGVyV2VlazogV2Vla2RheSA9IG5ldyBXZWVrZGF5KCk7XHJcbiAgICAgIGNvbnN0IGRheUhvdXJzOiBEYXRlW10gPSBDYWxlbmRhclV0aWxzLkdldERheUhvdXJzKGRheSk7XHJcbiAgICAgIGRheVBlcldlZWsubmV3TW9udGggPSBkYXkuZ2V0TW9udGgoKSAhPT0gbW9udGg7XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheVNlbGVjdGVkID0gZGF5LmdldERheSgpID09PSBkYXRlLmdldERheSgpO1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlEYXkgPSBkYXkuZ2V0RGF0ZSgpO1xyXG4gICAgICBvcHRpb25zID0geyB3ZWVrZGF5OiBcInNob3J0XCIgfTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5U2hvcnQgPSBkYXkudG9Mb2NhbGVEYXRlU3RyaW5nKENhbGVuZGFyVXRpbHMuTG9jYWxlLCBvcHRpb25zKTtcclxuICAgICAgb3B0aW9ucyA9IHsgd2Vla2RheTogXCJsb25nXCIgfTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5TG9uZyA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG5cclxuICAgICAgb3B0aW9ucyA9IHsgbW9udGg6IFwic2hvcnRcIiB9O1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlNb250aFNob3J0ID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgIG9wdGlvbnMgPSB7IG1vbnRoOiBcImxvbmdcIiB9O1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlNb250aExvbmcgPSBkYXkudG9Mb2NhbGVEYXRlU3RyaW5nKENhbGVuZGFyVXRpbHMuTG9jYWxlLCBvcHRpb25zKTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5WWVhciA9IGRheS5nZXRGdWxsWWVhcigpO1xyXG5cclxuICAgICAgZGF5UGVyV2Vlay5kYXRlID0gbmV3IERhdGUoZGF5KTtcclxuICAgICAgZGF5UGVyV2Vlay5kYXRlc0J5VGhlSG91ciA9IGRheUhvdXJzO1xyXG4gICAgICBkYXlzT2ZXZWVrLnB1c2goZGF5UGVyV2Vlayk7XHJcbiAgICAgIG1vbnRoID0gZGF5LmdldE1vbnRoKCk7XHJcbiAgICAgIGRheSA9IG5ldyBEYXRlKGRheSk7XHJcbiAgICAgIGRheS5zZXREYXRlKGRheS5nZXREYXRlKCkgKyAxKTtcclxuICAgIH1cclxuICAgIGNvbnN0IHdlZWs6IFdlZWsgPSBuZXcgV2VlaygpO1xyXG4gICAgd2Vlay53ZWVrRGF5cyA9IGRheXNPZldlZWs7XHJcbiAgICByZXR1cm4gd2VlaztcclxuICB9XHJcbiAgcHVibGljIHN0YXRpYyBHZXRUaHJlZURheXMoZGF0ZTogRGF0ZSk6IFdlZWsge1xyXG4gICAgbGV0IGRheTtcclxuICAgIGlmKCFkYXRlKSB7XHJcbiAgICAgIGRheSA9IG5ldyBEYXRlKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBkYXkgPSBkYXRlO1xyXG4gICAgfVxyXG4gICAgY29uc3QgZGF5c09mV2VlazogV2Vla2RheVtdID0gW107XHJcbiAgICBsZXQgb3B0aW9uczogYW55O1xyXG4gICAgbGV0IG1vbnRoOiBudW1iZXI7XHJcbiAgICBmb3IgKGxldCBpOiBudW1iZXIgPSAwOyBpIDwgMzsgaSsrKSB7XHJcbiAgICAgIGNvbnN0IGRheVBlcldlZWs6IFdlZWtkYXkgPSBuZXcgV2Vla2RheSgpO1xyXG4gICAgICBjb25zdCBkYXlIb3VyczogRGF0ZVtdID0gQ2FsZW5kYXJVdGlscy5HZXREYXlIb3VycyhkYXkpO1xyXG4gICAgICBkYXlQZXJXZWVrLm5ld01vbnRoID0gZGF5LmdldE1vbnRoKCkgIT09IG1vbnRoO1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlTZWxlY3RlZCA9IGRheS5nZXREYXkoKSA9PT0gZGF0ZS5nZXREYXkoKTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5RGF5ID0gZGF5LmdldERhdGUoKTtcclxuICAgICAgb3B0aW9ucyA9IHsgd2Vla2RheTogXCJzaG9ydFwiIH07XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheVNob3J0ID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgIG9wdGlvbnMgPSB7IHdlZWtkYXk6IFwibG9uZ1wiIH07XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheUxvbmcgPSBkYXkudG9Mb2NhbGVEYXRlU3RyaW5nKENhbGVuZGFyVXRpbHMuTG9jYWxlLCBvcHRpb25zKTtcclxuXHJcbiAgICAgIG9wdGlvbnMgPSB7IG1vbnRoOiBcInNob3J0XCIgfTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5TW9udGhTaG9ydCA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICBvcHRpb25zID0geyBtb250aDogXCJsb25nXCIgfTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5TW9udGhMb25nID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheVllYXIgPSBkYXkuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICAgIGRheVBlcldlZWsuZGF0ZSA9IG5ldyBEYXRlKGRheSk7XHJcbiAgICAgIGRheVBlcldlZWsuZGF0ZXNCeVRoZUhvdXIgPSBkYXlIb3VycztcclxuICAgICAgZGF5c09mV2Vlay5wdXNoKGRheVBlcldlZWspO1xyXG4gICAgICBtb250aCA9IGRheS5nZXRNb250aCgpO1xyXG4gICAgICBkYXkgPSBuZXcgRGF0ZShkYXkpO1xyXG4gICAgICBkYXkuc2V0RGF0ZShkYXkuZ2V0RGF0ZSgpICsgMSk7XHJcbiAgICB9XHJcbiAgICBjb25zdCB3ZWVrOiBXZWVrID0gbmV3IFdlZWsoKTtcclxuICAgIHdlZWsud2Vla0RheXMgPSBkYXlzT2ZXZWVrO1xyXG4gICAgcmV0dXJuIHdlZWs7XHJcbiAgfVxyXG4gIHB1YmxpYyBzdGF0aWMgR2V0RGF5c0Fyb3VuZChkYXRlOiBEYXRlKTogV2VlayB7XHJcbiAgICBjb25zdCBkYXlzQXJvdW5kOiBXZWVrZGF5W10gPSBbXTtcclxuICAgIGNvbnN0IGN1cnJlbnREYXRlID0gZGF0ZSA/IG5ldyBEYXRlKGRhdGUpIDogbmV3IERhdGUoKTtcclxuICAgIGN1cnJlbnREYXRlLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG5cclxuICAgIC8vIEdldCB0aGUgY3VycmVudCBkYXkgYW5kIGdvIHR3byBkYXlzIGJhY2tcclxuICAgIGxldCBkYXkgPSBuZXcgRGF0ZShjdXJyZW50RGF0ZSk7XHJcbiAgICBkYXkuc2V0RGF0ZShkYXkuZ2V0RGF0ZSgpIC0gMik7XHJcblxyXG4gICAgLy8gTG9vcCB0byBnZXQgdGhlIHR3byBkYXlzIGJlZm9yZSBhbmQgZm91ciBkYXlzIGFmdGVyIHRoZSBjdXJyZW50IGRheVxyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA3OyBpKyspIHtcclxuICAgICAgY29uc3QgZGF5UGVyV2VlazogV2Vla2RheSA9IG5ldyBXZWVrZGF5KCk7XHJcbiAgICAgIGNvbnN0IGRheUhvdXJzOiBEYXRlW10gPSBDYWxlbmRhclV0aWxzLkdldERheUhvdXJzKGRheSk7XHJcblxyXG4gICAgICBkYXlQZXJXZWVrLm5ld01vbnRoID0gZGF5LmdldE1vbnRoKCkgIT09IGN1cnJlbnREYXRlLmdldE1vbnRoKCk7XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheVNlbGVjdGVkID0gZGF5LmdldERhdGUoKSA9PT0gY3VycmVudERhdGUuZ2V0RGF0ZSgpO1xyXG4gICAgICBkYXlQZXJXZWVrLndlZWtkYXlEYXkgPSBkYXkuZ2V0RGF0ZSgpO1xyXG5cclxuICAgICAgbGV0IG9wdGlvbnM6IGFueSA9IHsgd2Vla2RheTogXCJzaG9ydFwiIH07XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheVNob3J0ID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgIG9wdGlvbnMgPSB7IHdlZWtkYXk6IFwibG9uZ1wiIH07XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheUxvbmcgPSBkYXkudG9Mb2NhbGVEYXRlU3RyaW5nKENhbGVuZGFyVXRpbHMuTG9jYWxlLCBvcHRpb25zKTtcclxuXHJcbiAgICAgIG9wdGlvbnMgPSB7IG1vbnRoOiBcInNob3J0XCIgfTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5TW9udGhTaG9ydCA9IGRheS50b0xvY2FsZURhdGVTdHJpbmcoQ2FsZW5kYXJVdGlscy5Mb2NhbGUsIG9wdGlvbnMpO1xyXG4gICAgICBvcHRpb25zID0geyBtb250aDogXCJsb25nXCIgfTtcclxuICAgICAgZGF5UGVyV2Vlay53ZWVrZGF5TW9udGhMb25nID0gZGF5LnRvTG9jYWxlRGF0ZVN0cmluZyhDYWxlbmRhclV0aWxzLkxvY2FsZSwgb3B0aW9ucyk7XHJcbiAgICAgIGRheVBlcldlZWsud2Vla2RheVllYXIgPSBkYXkuZ2V0RnVsbFllYXIoKTtcclxuXHJcbiAgICAgIGRheVBlcldlZWsuZGF0ZSA9IG5ldyBEYXRlKGRheSk7XHJcbiAgICAgIGRheVBlcldlZWsuZGF0ZXNCeVRoZUhvdXIgPSBkYXlIb3VycztcclxuICAgICAgZGF5c0Fyb3VuZC5wdXNoKGRheVBlcldlZWspO1xyXG5cclxuICAgICAgLy8gTW92ZSB0byB0aGUgbmV4dCBkYXlcclxuICAgICAgZGF5LnNldERhdGUoZGF5LmdldERhdGUoKSArIDEpO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IHdlZWs6IFdlZWsgPSBuZXcgV2VlaygpO1xyXG4gICAgd2Vlay53ZWVrRGF5cyA9IGRheXNBcm91bmQ7XHJcbiAgICByZXR1cm4gd2VlaztcclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3RhdGljIGdldE1vbmRheShkYXRlOiBEYXRlKTogRGF0ZSB7XHJcbiAgICBjb25zdCBkID0gbmV3IERhdGUoZGF0ZSk7XHJcbiAgICBjb25zdCBkYXkgPSBkLmdldERheSgpOyAvLyAwIChTdW4pIC0gNiAoU2F0KVxyXG4gICAgY29uc3QgZGlmZiA9IChkYXkgPT09IDAgPyAtNiA6IDEpIC0gZGF5O1xyXG4gICAgZC5zZXREYXRlKGQuZ2V0RGF0ZSgpICsgZGlmZik7XHJcbiAgICBkLnNldEhvdXJzKDAsIDAsIDAsIDApO1xyXG4gICAgcmV0dXJuIGQ7XHJcbiAgfVxyXG5cclxufVxyXG4iXX0=
|