mis-crystal-design-system 18.1.5-signal → 18.1.7-signal-1
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/datepicker_v2/tz-dp-container/tz-dp-container.component.d.ts +4 -0
- package/daterangepicker_v2/tz-drp-container/tz-drp-container.component.d.ts +7 -5
- package/esm2022/datepicker_v2/tz-datepicker.directive.mjs +2 -34
- package/esm2022/datepicker_v2/tz-dp-container/tz-dp-container.component.mjs +60 -18
- package/esm2022/daterangepicker_v2/tz-drp-container/tz-drp-container.component.mjs +255 -175
- package/esm2022/drawer/drawer-body/drawer-body.component.mjs +4 -4
- package/esm2022/filter/filter-panel/filter-panel.component.mjs +28 -27
- package/esm2022/input/mis-input.component.mjs +1 -9
- package/esm2022/modal/module-wrapper/module-wrapper.component.mjs +4 -4
- package/esm2022/multi-select-dropdown/multi-select-dropdown.component.mjs +10 -5
- package/esm2022/specificdatepicker/tz-sdp-container/tz-sdp-container.component.mjs +23 -19
- package/esm2022/table/table.component.mjs +15 -3
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs +60 -50
- package/fesm2022/mis-crystal-design-system-datepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs +254 -174
- package/fesm2022/mis-crystal-design-system-daterangepicker_v2.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-drawer.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-drawer.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-filter.mjs +27 -26
- package/fesm2022/mis-crystal-design-system-filter.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-input.mjs +0 -8
- package/fesm2022/mis-crystal-design-system-input.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-modal.mjs +3 -3
- package/fesm2022/mis-crystal-design-system-modal.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs +9 -4
- package/fesm2022/mis-crystal-design-system-multi-select-dropdown.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs +22 -18
- package/fesm2022/mis-crystal-design-system-specificdatepicker.mjs.map +1 -1
- package/fesm2022/mis-crystal-design-system-table.mjs +14 -3
- package/fesm2022/mis-crystal-design-system-table.mjs.map +1 -1
- package/filter/filter-panel/filter-panel.component.d.ts +1 -1
- package/package.json +12 -12
- package/specificdatepicker/tz-sdp-container/tz-sdp-container.component.d.ts +2 -2
|
@@ -6,6 +6,10 @@ export declare class TzDpContainerComponent implements OnInit {
|
|
|
6
6
|
private toast;
|
|
7
7
|
data: IDatePickerData;
|
|
8
8
|
private parseZoneInstance;
|
|
9
|
+
/**
|
|
10
|
+
* Parse date string using configured format with fallback
|
|
11
|
+
*/
|
|
12
|
+
private parseDateWithMultipleFormats;
|
|
9
13
|
private rawWeekDays;
|
|
10
14
|
private readonly weekDaysSignal;
|
|
11
15
|
private readonly currentMonthNumberSignal;
|
|
@@ -3,9 +3,10 @@ import { ICurrentMonth, ICurrentMonthDates, IDatePickerData, IWeekDay, ISelected
|
|
|
3
3
|
import { ToastService } from "mis-crystal-design-system/toast";
|
|
4
4
|
import * as i0 from "@angular/core";
|
|
5
5
|
export declare class TzDrpContainerComponent implements OnInit {
|
|
6
|
+
private injectedData;
|
|
6
7
|
private toast;
|
|
7
8
|
private readonly CUSTOM_RANGE_LABEL;
|
|
8
|
-
data: IDatePickerData
|
|
9
|
+
readonly data: import("@angular/core").WritableSignal<IDatePickerData>;
|
|
9
10
|
private dayjsInstance;
|
|
10
11
|
private rawWeekDays;
|
|
11
12
|
private readonly weekDaysSignal;
|
|
@@ -35,17 +36,17 @@ export declare class TzDrpContainerComponent implements OnInit {
|
|
|
35
36
|
currentMonthNumber: import("@angular/core").Signal<number>;
|
|
36
37
|
currentMonth: import("@angular/core").Signal<ICurrentMonth>;
|
|
37
38
|
currentYearNumber: import("@angular/core").Signal<number>;
|
|
38
|
-
currentMonthDates: import("@angular/core").Signal<ICurrentMonthDates[]>;
|
|
39
39
|
nextMonthNumber: import("@angular/core").Signal<number>;
|
|
40
40
|
nextMonth: import("@angular/core").Signal<ICurrentMonth>;
|
|
41
41
|
nextYearNumber: import("@angular/core").Signal<number>;
|
|
42
|
-
nextMonthDates: import("@angular/core").Signal<ICurrentMonthDates[]>;
|
|
43
42
|
isPreviousMonthDisabled: import("@angular/core").Signal<boolean>;
|
|
44
43
|
isNextMonthDisabled: import("@angular/core").Signal<boolean>;
|
|
45
44
|
selectionStarted: import("@angular/core").Signal<boolean>;
|
|
46
45
|
localSelectedDates: import("@angular/core").Signal<ISelectedDatesConfig>;
|
|
47
46
|
isDatesValid: import("@angular/core").Signal<boolean>;
|
|
48
47
|
selectedItemLabel: import("@angular/core").Signal<string>;
|
|
48
|
+
currentMonthDates: import("@angular/core").Signal<ICurrentMonthDates[]>;
|
|
49
|
+
nextMonthDates: import("@angular/core").Signal<ICurrentMonthDates[]>;
|
|
49
50
|
startHour: import("@angular/core").Signal<number>;
|
|
50
51
|
startMinute: import("@angular/core").Signal<number>;
|
|
51
52
|
startAmPm: import("@angular/core").Signal<string>;
|
|
@@ -54,15 +55,16 @@ export declare class TzDrpContainerComponent implements OnInit {
|
|
|
54
55
|
endAmPm: import("@angular/core").Signal<string>;
|
|
55
56
|
startHour24: import("@angular/core").Signal<number>;
|
|
56
57
|
endHour24: import("@angular/core").Signal<number>;
|
|
57
|
-
constructor(
|
|
58
|
+
constructor(injectedData: IDatePickerData, toast: ToastService);
|
|
58
59
|
ngOnInit(): void;
|
|
59
60
|
retractDayMonth(day: any, month: any, year: any): any;
|
|
60
61
|
closeOnEsc(): void;
|
|
61
|
-
private currentDateInstance;
|
|
62
62
|
private calculateMinMaxDays;
|
|
63
63
|
navigateMonth(direction: "NEXT" | "PREVIOUS"): void;
|
|
64
|
+
private parseDateWithMultipleFormats;
|
|
64
65
|
private generateDates;
|
|
65
66
|
selectDay(from: "LEFT" | "RIGHT", day: ICurrentMonthDates): void;
|
|
67
|
+
private appendCurrentTime;
|
|
66
68
|
selectRange(item: RangeItem): void;
|
|
67
69
|
resetRange(): void;
|
|
68
70
|
applyDates(): void;
|
|
@@ -40,40 +40,8 @@ export class TzDatepickerDirective {
|
|
|
40
40
|
this.close();
|
|
41
41
|
}
|
|
42
42
|
}, { allowSignalWrites: true });
|
|
43
|
-
// Effect to sync selectedDate with input value
|
|
44
|
-
effect(() => {
|
|
45
|
-
const date = this.selectedDate();
|
|
46
|
-
const element = this.element.nativeElement;
|
|
47
|
-
// Clear the value if date is empty/null/undefined
|
|
48
|
-
if (!date) {
|
|
49
|
-
element.value = '';
|
|
50
|
-
if (this.control?.control) {
|
|
51
|
-
this.control.control.setValue('', { emitEvent: false });
|
|
52
|
-
}
|
|
53
|
-
return;
|
|
54
|
-
}
|
|
55
|
-
// Set the value and trigger input event to ensure mis-input updates
|
|
56
|
-
element.value = date;
|
|
57
|
-
element.dispatchEvent(new Event('input', { bubbles: true }));
|
|
58
|
-
if (this.control?.control) {
|
|
59
|
-
this.control.control.setValue(date, { emitEvent: false });
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
ngOnInit() {
|
|
64
|
-
// Handle initial value
|
|
65
|
-
const element = this.element.nativeElement;
|
|
66
|
-
const initialValue = element.value || this.selectedDate();
|
|
67
|
-
if (initialValue) {
|
|
68
|
-
// Set initial value and trigger input event
|
|
69
|
-
element.value = initialValue;
|
|
70
|
-
element.dispatchEvent(new Event('input', { bubbles: true }));
|
|
71
|
-
// Update control if available
|
|
72
|
-
if (this.control?.control) {
|
|
73
|
-
this.control.control.setValue(initialValue, { emitEvent: false });
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
43
|
}
|
|
44
|
+
ngOnInit() { }
|
|
77
45
|
toggleDatePicker() {
|
|
78
46
|
if (this.isOpen()) {
|
|
79
47
|
this.close();
|
|
@@ -190,4 +158,4 @@ export class TzDatepickerDirective {
|
|
|
190
158
|
type: HostListener,
|
|
191
159
|
args: ["keydown.esc"]
|
|
192
160
|
}] }); })();
|
|
193
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotZGF0ZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyX3YyL3R6LWRhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsUUFBUSxFQUFVLFFBQVEsRUFBRSxJQUFJLEVBQW9CLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2SixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7OztBQUtyRixNQUFNLE9BQU8scUJBQXFCO0lBcUJoQyxZQUM4QixPQUFrQixFQUN0QyxPQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0M7UUFIZCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBeEI1QyxzQkFBc0I7UUFDdEIsYUFBUSxHQUFHLEtBQUssRUFBOEIsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwQyxpQkFBWSxHQUFHLEtBQUssQ0FBeUIsRUFBRSxDQUFDLENBQUM7UUFDakQsY0FBUyxHQUFHLEtBQUssQ0FBNkIsUUFBUSxDQUFDLENBQUM7UUFDeEQsY0FBUyxHQUFHLEtBQUssQ0FBOEIsUUFBUSxDQUFDLENBQUM7UUFDekQsWUFBTyxHQUFHLEtBQUssQ0FBUyxDQUFDLENBQUMsQ0FBQztRQUMzQixZQUFPLEdBQUcsS0FBSyxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBQzNCLDhCQUF5QixHQUFHLEtBQUssQ0FBVSxLQUFLLENBQUMsQ0FBQztRQUNsRCxxQkFBZ0IsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDekMsbUJBQWMsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFDdkMsZ0JBQVcsR0FBRyxLQUFLLENBQVUsS0FBSyxDQUFDLENBQUM7UUFFcEMsc0JBQXNCO1FBQ3RCLGVBQVUsR0FBRyxNQUFNLEVBQVUsQ0FBQztRQUd0QixXQUFNLEdBQUcsTUFBTSxDQUFVLEtBQUssQ0FBQyxDQUFDO1FBUXRDLDZDQUE2QztRQUM3QyxNQUFNLENBQUMsR0FBRyxFQUFFO1lBQ1YsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3ZDLElBQUksV0FBVyxFQUFFLENBQUM7Z0JBQ2hCLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUNkLENBQUM7aUJBQU0sQ0FBQztnQkFDTixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDZixDQUFDO1FBQ0gsQ0FBQyxFQUFFLEVBQUMsaUJBQWlCLEVBQUUsSUFBSSxFQUFDLENBQUMsQ0FBQztRQUU5QiwrQ0FBK0M7UUFDL0MsTUFBTSxDQUFDLEdBQUcsRUFBRTtZQUNWLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNqQyxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztZQUUzQyxrREFBa0Q7WUFDbEQsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNWLE9BQU8sQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2dCQUNuQixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7b0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztnQkFDMUQsQ0FBQztnQkFDRCxPQUFPO1lBQ1QsQ0FBQztZQUVELG9FQUFvRTtZQUNwRSxPQUFPLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztZQUNyQixPQUFPLENBQUMsYUFBYSxDQUFDLElBQUksS0FBSyxDQUFDLE9BQU8sRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFFN0QsSUFBSSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sRUFBRSxDQUFDO2dCQUMxQixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDNUQsQ0FBQztRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTix1QkFBdUI7UUFDdkIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUM7UUFDM0MsTUFBTSxZQUFZLEdBQUcsT0FBTyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFMUQsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUNqQiw0Q0FBNEM7WUFDNUMsT0FBTyxDQUFDLEtBQUssR0FBRyxZQUFZLENBQUM7WUFDN0IsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBRTdELDhCQUE4QjtZQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztZQUNwRSxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFHRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDO1lBQ2xCLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ2QsQ0FBQztJQUNILENBQUM7SUFHRCx1QkFBdUI7UUFDckIsSUFBSSxJQUFJLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDZixDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNkLENBQUM7SUFDSCxDQUFDO0lBR0QsVUFBVTtRQUNSLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUM7WUFDbEIsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2YsQ0FBQztJQUNILENBQUM7SUFFTyxJQUFJO1FBQ1YsTUFBTSxRQUFRLEdBQUc7WUFDZixNQUFNLEVBQUUsV0FBVztZQUNuQixPQUFPLEVBQUUsRUFBRTtZQUNYLE9BQU8sRUFBRSxFQUFFO1lBQ1gsZUFBZSxFQUFFLEtBQUs7WUFDdEIsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFO1NBQ25CLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN0QixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPO2FBQ2xDLFFBQVEsRUFBRTthQUNWLG1CQUFtQixDQUFDLElBQUksQ0FBQyxPQUFPLENBQUM7YUFDakMsYUFBYSxDQUNaLGdCQUFnQixDQUNkO1lBQ0UsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDM0IsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDM0IsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7WUFDdkIsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUU7U0FDeEIsRUFDRCxJQUFJLENBQ0wsQ0FDRjthQUNBLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNsQixNQUFNLE1BQU0sR0FBRyxJQUFJLGFBQWEsQ0FBQztZQUMvQixXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ25DLGdCQUFnQjtZQUNoQixjQUFjLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLEVBQUU7WUFDMUQsYUFBYSxFQUFFLGtDQUFrQztTQUNsRCxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzlDLE1BQU0sT0FBTyxHQUFHLElBQUksZUFBZSxDQUNqQyxzQkFBc0IsRUFDdEIsSUFBSSxDQUFDLGdCQUFnQixFQUNyQixRQUFRLENBQUMsTUFBTSxDQUFDO1lBQ2QsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxjQUFjO29CQUN2QixRQUFRLEVBQUU7d0JBQ1IsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUU7d0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRTt3QkFDeEQseUJBQXlCLEVBQUUsSUFBSSxDQUFDLHlCQUF5QixFQUFFO3dCQUMzRCxRQUFRLEVBQUUsUUFBUTt3QkFDbEIsYUFBYSxFQUFFLElBQUksQ0FBQyxhQUFhLEVBQUU7d0JBQ25DLFVBQVUsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7d0JBQ3JDLGdCQUFnQixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsRUFBRTtxQkFDMUM7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDaEMsSUFBSSxDQUFDLFVBQVU7YUFDWixhQUFhLEVBQUU7YUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQ2IsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNkLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNmLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELFNBQVMsQ0FBQyxPQUFlLEVBQUU7UUFDekIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQ1YsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2IsT0FBTztRQUNULENBQUM7UUFFRCxNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQztRQUUzQyx1Q0FBdUM7UUFDdkMsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDckIsT0FBTyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxPQUFPLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRTdELDhCQUE4QjtRQUM5QixJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDMUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1FBQzVELENBQUM7UUFFRCxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDZixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFVBQVUsRUFBRSxPQUFPLEVBQUUsQ0FBQztJQUM3QixDQUFDO3NIQTVMVSxxQkFBcUI7b0VBQXJCLHFCQUFxQjtZQUFyQiwwRkFBQSxzQkFBa0IsSUFBRyw2RkFBckIsNkJBQXlCLElBQUoseUZBQXJCLGdCQUFZLElBQVM7OztpRkFBckIscUJBQXFCO2NBSGpDLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUsZ0JBQWdCO2FBQzNCOztzQkF1QkksSUFBSTs7c0JBQUksUUFBUTttR0F5RG5CLGdCQUFnQjtrQkFEZixZQUFZO21CQUFDLE9BQU87WUFVckIsdUJBQXVCO2tCQUR0QixZQUFZO21CQUFDLGVBQWU7WUFVN0IsVUFBVTtrQkFEVCxZQUFZO21CQUFDLGFBQWEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPdmVybGF5LCBPdmVybGF5Q29uZmlnLCBPdmVybGF5UmVmIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9vdmVybGF5XCI7XG5pbXBvcnQgeyBDb21wb25lbnRQb3J0YWwgfSBmcm9tIFwiQGFuZ3VsYXIvY2RrL3BvcnRhbFwiO1xuaW1wb3J0IHsgRGlyZWN0aXZlLCBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIEluamVjdG9yLCBPbkluaXQsIE9wdGlvbmFsLCBTZWxmLCBWaWV3Q29udGFpbmVyUmVmLCBpbnB1dCwgb3V0cHV0LCBlZmZlY3QsIHNpZ25hbCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBOZ0NvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcbmltcG9ydCB7IHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IGdlblBvc2l0aW9uUGFpcnMgfSBmcm9tIFwibWlzLWNyeXN0YWwtZGVzaWduLXN5c3RlbS91dGlsc1wiO1xuaW1wb3J0IHsgQ09OVEFJTkVSX0RBVEEsIERBVEVfRk9STUFUIH0gZnJvbSBcIi4vZGF0ZXBpY2tlci1jb25zdGFudHNcIjtcbmltcG9ydCB7IElEYXRlUGlja2VyQ29uZmlnLCBJRGF0ZVBpY2tlclRvYXN0VGV4dCB9IGZyb20gXCIuL21vZGVscy9kcC1jb25maWcubW9kZWxcIjtcbmltcG9ydCB7IFR6RHBDb250YWluZXJDb21wb25lbnQgfSBmcm9tIFwiLi90ei1kcC1jb250YWluZXIvdHotZHAtY29udGFpbmVyLmNvbXBvbmVudFwiO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6IFwiaW5wdXRbbWlzVHpEcF1cIlxufSlcbmV4cG9ydCBjbGFzcyBUekRhdGVwaWNrZXJEaXJlY3RpdmUgaW1wbGVtZW50cyBPbkluaXQge1xuICAvLyBTaWduYWwtYmFzZWQgaW5wdXRzXG4gIGRwQ29uZmlnID0gaW5wdXQ8UGFydGlhbDxJRGF0ZVBpY2tlckNvbmZpZz4+KCk7XG4gIHNlbGVjdGVkRGF0ZSA9IGlucHV0PHN0cmluZz4oJycpO1xuICBkYXRlc0Rpc2FibGVkID0gaW5wdXQ8c3RyaW5nW10+KFtdKTtcbiAgZGF0ZU1lc3NhZ2VzID0gaW5wdXQ8SURhdGVQaWNrZXJUb2FzdFRleHRbXT4oW10pO1xuICBwb3NpdGlvblggPSBpbnB1dDxcInN0YXJ0XCIgfCBcImNlbnRlclwiIHwgXCJlbmRcIj4oXCJjZW50ZXJcIik7XG4gIHBvc2l0aW9uWSA9IGlucHV0PFwidG9wXCIgfCBcImNlbnRlclwiIHwgXCJib3R0b21cIj4oXCJib3R0b21cIik7XG4gIG9mZnNldFggPSBpbnB1dDxudW1iZXI+KDApO1xuICBvZmZzZXRZID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgYWxsb3dCb29raW5nT25EaXNhYmxlZERheSA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzYWJsZUJveFNoYWRvdyA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgZGlzYWJsZU92ZXJMYXkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIG9wZW5FbGVtZW50ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBcbiAgLy8gU2lnbmFsLWJhc2VkIG91dHB1dFxuICBkYXRlQ2hhbmdlID0gb3V0cHV0PHN0cmluZz4oKTtcbiAgcHJpdmF0ZSBvdmVybGF5UmVmOiBPdmVybGF5UmVmO1xuXG4gIHByaXZhdGUgaXNPcGVuID0gc2lnbmFsPGJvb2xlYW4+KGZhbHNlKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAU2VsZigpIEBPcHRpb25hbCgpIHByaXZhdGUgY29udHJvbDogTmdDb250cm9sLFxuICAgIHByaXZhdGUgZWxlbWVudDogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIG92ZXJsYXk6IE92ZXJsYXksXG4gICAgcHJpdmF0ZSB2aWV3Q29udGFpbmVyUmVmOiBWaWV3Q29udGFpbmVyUmVmXG4gICkge1xuICAgIC8vIEVmZmVjdCB0byB3YXRjaCBvcGVuRWxlbWVudCBzaWduYWwgY2hhbmdlc1xuICAgIGVmZmVjdCgoKSA9PiB7XG4gICAgICBjb25zdCBvcGVuRWxlbWVudCA9IHRoaXMub3BlbkVsZW1lbnQoKTtcbiAgICAgIGlmIChvcGVuRWxlbWVudCkge1xuICAgICAgICB0aGlzLm9wZW4oKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICAgIH1cbiAgICB9LCB7YWxsb3dTaWduYWxXcml0ZXM6IHRydWV9KTtcblxuICAgIC8vIEVmZmVjdCB0byBzeW5jIHNlbGVjdGVkRGF0ZSB3aXRoIGlucHV0IHZhbHVlXG4gICAgZWZmZWN0KCgpID0+IHtcbiAgICAgIGNvbnN0IGRhdGUgPSB0aGlzLnNlbGVjdGVkRGF0ZSgpO1xuICAgICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgICAgXG4gICAgICAvLyBDbGVhciB0aGUgdmFsdWUgaWYgZGF0ZSBpcyBlbXB0eS9udWxsL3VuZGVmaW5lZFxuICAgICAgaWYgKCFkYXRlKSB7XG4gICAgICAgIGVsZW1lbnQudmFsdWUgPSAnJztcbiAgICAgICAgaWYgKHRoaXMuY29udHJvbD8uY29udHJvbCkge1xuICAgICAgICAgIHRoaXMuY29udHJvbC5jb250cm9sLnNldFZhbHVlKCcnLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICAvLyBTZXQgdGhlIHZhbHVlIGFuZCB0cmlnZ2VyIGlucHV0IGV2ZW50IHRvIGVuc3VyZSBtaXMtaW5wdXQgdXBkYXRlc1xuICAgICAgZWxlbWVudC52YWx1ZSA9IGRhdGU7XG4gICAgICBlbGVtZW50LmRpc3BhdGNoRXZlbnQobmV3IEV2ZW50KCdpbnB1dCcsIHsgYnViYmxlczogdHJ1ZSB9KSk7XG4gICAgICBcbiAgICAgIGlmICh0aGlzLmNvbnRyb2w/LmNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0VmFsdWUoZGF0ZSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSGFuZGxlIGluaXRpYWwgdmFsdWVcbiAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5lbGVtZW50Lm5hdGl2ZUVsZW1lbnQ7XG4gICAgY29uc3QgaW5pdGlhbFZhbHVlID0gZWxlbWVudC52YWx1ZSB8fCB0aGlzLnNlbGVjdGVkRGF0ZSgpO1xuICAgIFxuICAgIGlmIChpbml0aWFsVmFsdWUpIHtcbiAgICAgIC8vIFNldCBpbml0aWFsIHZhbHVlIGFuZCB0cmlnZ2VyIGlucHV0IGV2ZW50XG4gICAgICBlbGVtZW50LnZhbHVlID0gaW5pdGlhbFZhbHVlO1xuICAgICAgZWxlbWVudC5kaXNwYXRjaEV2ZW50KG5ldyBFdmVudCgnaW5wdXQnLCB7IGJ1YmJsZXM6IHRydWUgfSkpO1xuICAgICAgXG4gICAgICAvLyBVcGRhdGUgY29udHJvbCBpZiBhdmFpbGFibGVcbiAgICAgIGlmICh0aGlzLmNvbnRyb2w/LmNvbnRyb2wpIHtcbiAgICAgICAgdGhpcy5jb250cm9sLmNvbnRyb2wuc2V0VmFsdWUoaW5pdGlhbFZhbHVlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG4gIHRvZ2dsZURhdGVQaWNrZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd24uZW50ZXJcIilcbiAgdG9nZ2xlRGF0ZVBpY2tlck9uRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd24uZXNjXCIpXG4gIGNsb3NlT25Fc2MoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW4oKSB7XG4gICAgY29uc3QgZHBDb25maWcgPSB7XG4gICAgICBmb3JtYXQ6IERBVEVfRk9STUFULFxuICAgICAgbWluRGF0ZTogXCJcIixcbiAgICAgIG1heERhdGU6IFwiXCIsXG4gICAgICBzaG93QXBwbHlCdXR0b246IGZhbHNlLFxuICAgICAgLi4udGhpcy5kcENvbmZpZygpXG4gICAgfTtcbiAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudClcbiAgICAgIC53aXRoUG9zaXRpb25zKFxuICAgICAgICBnZW5Qb3NpdGlvblBhaXJzKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBvc2l0aW9uWDogdGhpcy5wb3NpdGlvblgoKSxcbiAgICAgICAgICAgIHBvc2l0aW9uWTogdGhpcy5wb3NpdGlvblkoKSxcbiAgICAgICAgICAgIG9mZnNldFg6IHRoaXMub2Zmc2V0WCgpLFxuICAgICAgICAgICAgb2Zmc2V0WTogdGhpcy5vZmZzZXRZKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiAhdGhpcy5kaXNhYmxlT3ZlckxheSgpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gICAgY29uc3QgdGVtcFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBUekRwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ09OVEFJTkVSX0RBVEEsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICBtZXNzYWdlczogdGhpcy5kYXRlTWVzc2FnZXMoKSxcbiAgICAgICAgICAgICAgZGF0ZTogdGhpcy5jb250cm9sPy5jb250cm9sLnZhbHVlIHx8IHRoaXMuc2VsZWN0ZWREYXRlKCksXG4gICAgICAgICAgICAgIGFsbG93Qm9va2luZ09uRGlzYWJsZWREYXk6IHRoaXMuYWxsb3dCb29raW5nT25EaXNhYmxlZERheSgpLFxuICAgICAgICAgICAgICBkcENvbmZpZzogZHBDb25maWcsXG4gICAgICAgICAgICAgIGRhdGVzRGlzYWJsZWQ6IHRoaXMuZGF0ZXNEaXNhYmxlZCgpLFxuICAgICAgICAgICAgICBkYXRlQ2hhbmdlOiB0aGlzLmFwcGx5RGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICBkaXNhYmxlQm94U2hhZG93OiB0aGlzLmRpc2FibGVCb3hTaGFkb3coKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRlbXBSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFwcGx5RGF0ZShkYXRlOiBzdHJpbmcgPSBcIlwiKSB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIFxuICAgIC8vIFVwZGF0ZSB2YWx1ZSBhbmQgdHJpZ2dlciBpbnB1dCBldmVudFxuICAgIGVsZW1lbnQudmFsdWUgPSBkYXRlO1xuICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICBcbiAgICAvLyBVcGRhdGUgY29udHJvbCBpZiBhdmFpbGFibGVcbiAgICBpZiAodGhpcy5jb250cm9sPy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRWYWx1ZShkYXRlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgfVxufVxuIl19
|
|
161
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHotZGF0ZXBpY2tlci5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9taXMtY29tcG9uZW50cy9kYXRlcGlja2VyX3YyL3R6LWRhdGVwaWNrZXIuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBVyxhQUFhLEVBQWMsTUFBTSxzQkFBc0IsQ0FBQztBQUMxRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFNBQVMsRUFBYyxZQUFZLEVBQUUsUUFBUSxFQUFVLFFBQVEsRUFBRSxJQUFJLEVBQW9CLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2SixPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUVyRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQzs7OztBQUtyRixNQUFNLE9BQU8scUJBQXFCO0lBcUJoQyxZQUM4QixPQUFrQixFQUN0QyxPQUFtQixFQUNuQixPQUFnQixFQUNoQixnQkFBa0M7UUFIZCxZQUFPLEdBQVAsT0FBTyxDQUFXO1FBQ3RDLFlBQU8sR0FBUCxPQUFPLENBQVk7UUFDbkIsWUFBTyxHQUFQLE9BQU8sQ0FBUztRQUNoQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBeEI1QyxzQkFBc0I7UUFDdEIsYUFBUSxHQUFHLEtBQUssRUFBOEIsQ0FBQztRQUMvQyxpQkFBWSxHQUFHLEtBQUssQ0FBUyxFQUFFLENBQUMsQ0FBQztRQUNqQyxrQkFBYSxHQUFHLEtBQUssQ0FBVyxFQUFFLENBQUMsQ0FBQztRQUNwQyxp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QVU7a0JBRFQsWUFBWTttQkFBQyxhQUFhIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT3ZlcmxheSwgT3ZlcmxheUNvbmZpZywgT3ZlcmxheVJlZiB9IGZyb20gXCJAYW5ndWxhci9jZGsvb3ZlcmxheVwiO1xuaW1wb3J0IHsgQ29tcG9uZW50UG9ydGFsIH0gZnJvbSBcIkBhbmd1bGFyL2Nkay9wb3J0YWxcIjtcbmltcG9ydCB7IERpcmVjdGl2ZSwgRWxlbWVudFJlZiwgSG9zdExpc3RlbmVyLCBJbmplY3RvciwgT25Jbml0LCBPcHRpb25hbCwgU2VsZiwgVmlld0NvbnRhaW5lclJlZiwgaW5wdXQsIG91dHB1dCwgZWZmZWN0LCBzaWduYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgTmdDb250cm9sIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBnZW5Qb3NpdGlvblBhaXJzIH0gZnJvbSBcIm1pcy1jcnlzdGFsLWRlc2lnbi1zeXN0ZW0vdXRpbHNcIjtcbmltcG9ydCB7IENPTlRBSU5FUl9EQVRBLCBEQVRFX0ZPUk1BVCB9IGZyb20gXCIuL2RhdGVwaWNrZXItY29uc3RhbnRzXCI7XG5pbXBvcnQgeyBJRGF0ZVBpY2tlckNvbmZpZywgSURhdGVQaWNrZXJUb2FzdFRleHQgfSBmcm9tIFwiLi9tb2RlbHMvZHAtY29uZmlnLm1vZGVsXCI7XG5pbXBvcnQgeyBUekRwQ29udGFpbmVyQ29tcG9uZW50IH0gZnJvbSBcIi4vdHotZHAtY29udGFpbmVyL3R6LWRwLWNvbnRhaW5lci5jb21wb25lbnRcIjtcblxuQERpcmVjdGl2ZSh7XG4gIHNlbGVjdG9yOiBcImlucHV0W21pc1R6RHBdXCJcbn0pXG5leHBvcnQgY2xhc3MgVHpEYXRlcGlja2VyRGlyZWN0aXZlIGltcGxlbWVudHMgT25Jbml0IHtcbiAgLy8gU2lnbmFsLWJhc2VkIGlucHV0c1xuICBkcENvbmZpZyA9IGlucHV0PFBhcnRpYWw8SURhdGVQaWNrZXJDb25maWc+PigpO1xuICBzZWxlY3RlZERhdGUgPSBpbnB1dDxzdHJpbmc+KCcnKTtcbiAgZGF0ZXNEaXNhYmxlZCA9IGlucHV0PHN0cmluZ1tdPihbXSk7XG4gIGRhdGVNZXNzYWdlcyA9IGlucHV0PElEYXRlUGlja2VyVG9hc3RUZXh0W10+KFtdKTtcbiAgcG9zaXRpb25YID0gaW5wdXQ8XCJzdGFydFwiIHwgXCJjZW50ZXJcIiB8IFwiZW5kXCI+KFwiY2VudGVyXCIpO1xuICBwb3NpdGlvblkgPSBpbnB1dDxcInRvcFwiIHwgXCJjZW50ZXJcIiB8IFwiYm90dG9tXCI+KFwiYm90dG9tXCIpO1xuICBvZmZzZXRYID0gaW5wdXQ8bnVtYmVyPigwKTtcbiAgb2Zmc2V0WSA9IGlucHV0PG51bWJlcj4oMCk7XG4gIGFsbG93Qm9va2luZ09uRGlzYWJsZWREYXkgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGRpc2FibGVCb3hTaGFkb3cgPSBpbnB1dDxib29sZWFuPihmYWxzZSk7XG4gIGRpc2FibGVPdmVyTGF5ID0gaW5wdXQ8Ym9vbGVhbj4oZmFsc2UpO1xuICBvcGVuRWxlbWVudCA9IGlucHV0PGJvb2xlYW4+KGZhbHNlKTtcbiAgXG4gIC8vIFNpZ25hbC1iYXNlZCBvdXRwdXRcbiAgZGF0ZUNoYW5nZSA9IG91dHB1dDxzdHJpbmc+KCk7XG4gIHByaXZhdGUgb3ZlcmxheVJlZjogT3ZlcmxheVJlZjtcblxuICBwcml2YXRlIGlzT3BlbiA9IHNpZ25hbDxib29sZWFuPihmYWxzZSk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQFNlbGYoKSBAT3B0aW9uYWwoKSBwcml2YXRlIGNvbnRyb2w6IE5nQ29udHJvbCxcbiAgICBwcml2YXRlIGVsZW1lbnQ6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBvdmVybGF5OiBPdmVybGF5LFxuICAgIHByaXZhdGUgdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZlxuICApIHtcbiAgICAvLyBFZmZlY3QgdG8gd2F0Y2ggb3BlbkVsZW1lbnQgc2lnbmFsIGNoYW5nZXNcbiAgICBlZmZlY3QoKCkgPT4ge1xuICAgICAgY29uc3Qgb3BlbkVsZW1lbnQgPSB0aGlzLm9wZW5FbGVtZW50KCk7XG4gICAgICBpZiAob3BlbkVsZW1lbnQpIHtcbiAgICAgICAgdGhpcy5vcGVuKCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9XG4gICAgfSwge2FsbG93U2lnbmFsV3JpdGVzOiB0cnVlfSk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImNsaWNrXCIpXG4gIHRvZ2dsZURhdGVQaWNrZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd24uZW50ZXJcIilcbiAgdG9nZ2xlRGF0ZVBpY2tlck9uRW50ZXIoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vcGVuKCk7XG4gICAgfVxuICB9XG5cbiAgQEhvc3RMaXN0ZW5lcihcImtleWRvd24uZXNjXCIpXG4gIGNsb3NlT25Fc2MoKSB7XG4gICAgaWYgKHRoaXMuaXNPcGVuKCkpIHtcbiAgICAgIHRoaXMuY2xvc2UoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIG9wZW4oKSB7XG4gICAgY29uc3QgZHBDb25maWcgPSB7XG4gICAgICBmb3JtYXQ6IERBVEVfRk9STUFULFxuICAgICAgbWluRGF0ZTogXCJcIixcbiAgICAgIG1heERhdGU6IFwiXCIsXG4gICAgICBzaG93QXBwbHlCdXR0b246IGZhbHNlLFxuICAgICAgLi4udGhpcy5kcENvbmZpZygpXG4gICAgfTtcbiAgICB0aGlzLmlzT3Blbi5zZXQodHJ1ZSk7XG4gICAgY29uc3QgcG9zaXRpb25TdHJhdGVneSA9IHRoaXMub3ZlcmxheVxuICAgICAgLnBvc2l0aW9uKClcbiAgICAgIC5mbGV4aWJsZUNvbm5lY3RlZFRvKHRoaXMuZWxlbWVudClcbiAgICAgIC53aXRoUG9zaXRpb25zKFxuICAgICAgICBnZW5Qb3NpdGlvblBhaXJzKFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHBvc2l0aW9uWDogdGhpcy5wb3NpdGlvblgoKSxcbiAgICAgICAgICAgIHBvc2l0aW9uWTogdGhpcy5wb3NpdGlvblkoKSxcbiAgICAgICAgICAgIG9mZnNldFg6IHRoaXMub2Zmc2V0WCgpLFxuICAgICAgICAgICAgb2Zmc2V0WTogdGhpcy5vZmZzZXRZKClcbiAgICAgICAgICB9LFxuICAgICAgICAgIHRydWVcbiAgICAgICAgKVxuICAgICAgKVxuICAgICAgLndpdGhQdXNoKHRydWUpO1xuICAgIGNvbnN0IGNvbmZpZyA9IG5ldyBPdmVybGF5Q29uZmlnKHtcbiAgICAgIGhhc0JhY2tkcm9wOiAhdGhpcy5kaXNhYmxlT3ZlckxheSgpLFxuICAgICAgcG9zaXRpb25TdHJhdGVneSxcbiAgICAgIHNjcm9sbFN0cmF0ZWd5OiB0aGlzLm92ZXJsYXkuc2Nyb2xsU3RyYXRlZ2llcy5yZXBvc2l0aW9uKCksXG4gICAgICBiYWNrZHJvcENsYXNzOiBcImNkay1vdmVybGF5LXRyYW5zcGFyZW50LWJhY2tkcm9wXCJcbiAgICB9KTtcbiAgICB0aGlzLm92ZXJsYXlSZWYgPSB0aGlzLm92ZXJsYXkuY3JlYXRlKGNvbmZpZyk7XG4gICAgY29uc3QgdGVtcFJlZiA9IG5ldyBDb21wb25lbnRQb3J0YWwoXG4gICAgICBUekRwQ29udGFpbmVyQ29tcG9uZW50LFxuICAgICAgdGhpcy52aWV3Q29udGFpbmVyUmVmLFxuICAgICAgSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgcHJvdmlkZXJzOiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgcHJvdmlkZTogQ09OVEFJTkVSX0RBVEEsXG4gICAgICAgICAgICB1c2VWYWx1ZToge1xuICAgICAgICAgICAgICBtZXNzYWdlczogdGhpcy5kYXRlTWVzc2FnZXMoKSxcbiAgICAgICAgICAgICAgZGF0ZTogdGhpcy5jb250cm9sPy5jb250cm9sLnZhbHVlIHx8IHRoaXMuc2VsZWN0ZWREYXRlKCksXG4gICAgICAgICAgICAgIGFsbG93Qm9va2luZ09uRGlzYWJsZWREYXk6IHRoaXMuYWxsb3dCb29raW5nT25EaXNhYmxlZERheSgpLFxuICAgICAgICAgICAgICBkcENvbmZpZzogZHBDb25maWcsXG4gICAgICAgICAgICAgIGRhdGVzRGlzYWJsZWQ6IHRoaXMuZGF0ZXNEaXNhYmxlZCgpLFxuICAgICAgICAgICAgICBkYXRlQ2hhbmdlOiB0aGlzLmFwcGx5RGF0ZS5iaW5kKHRoaXMpLFxuICAgICAgICAgICAgICBkaXNhYmxlQm94U2hhZG93OiB0aGlzLmRpc2FibGVCb3hTaGFkb3coKSxcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIF1cbiAgICAgIH0pXG4gICAgKTtcbiAgICB0aGlzLm92ZXJsYXlSZWYuYXR0YWNoKHRlbXBSZWYpO1xuICAgIHRoaXMub3ZlcmxheVJlZlxuICAgICAgLmJhY2tkcm9wQ2xpY2soKVxuICAgICAgLnBpcGUodGFrZSgxKSlcbiAgICAgIC5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICB9KTtcbiAgfVxuXG4gIGFwcGx5RGF0ZShkYXRlOiBzdHJpbmcgPSBcIlwiKSB7XG4gICAgaWYgKCFkYXRlKSB7XG4gICAgICB0aGlzLmNsb3NlKCk7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgZWxlbWVudCA9IHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50O1xuICAgIFxuICAgIC8vIFVwZGF0ZSB2YWx1ZSBhbmQgdHJpZ2dlciBpbnB1dCBldmVudFxuICAgIGVsZW1lbnQudmFsdWUgPSBkYXRlO1xuICAgIGVsZW1lbnQuZGlzcGF0Y2hFdmVudChuZXcgRXZlbnQoJ2lucHV0JywgeyBidWJibGVzOiB0cnVlIH0pKTtcbiAgICBcbiAgICAvLyBVcGRhdGUgY29udHJvbCBpZiBhdmFpbGFibGVcbiAgICBpZiAodGhpcy5jb250cm9sPy5jb250cm9sKSB7XG4gICAgICB0aGlzLmNvbnRyb2wuY29udHJvbC5zZXRWYWx1ZShkYXRlLCB7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgfVxuICAgIFxuICAgIHRoaXMuZGF0ZUNoYW5nZS5lbWl0KGRhdGUpO1xuICAgIHRoaXMuY2xvc2UoKTtcbiAgfVxuXG4gIGNsb3NlKCkge1xuICAgIHRoaXMuaXNPcGVuLnNldChmYWxzZSk7XG4gICAgdGhpcy5vdmVybGF5UmVmPy5kZXRhY2goKTtcbiAgICB0aGlzLm92ZXJsYXlSZWY/LmRpc3Bvc2UoKTtcbiAgfVxufVxuIl19
|