@ptsecurity/mosaic 15.9.2 → 15.9.4
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/calendar-header.component.d.ts +11 -5
- package/datepicker/datepicker-input.directive.d.ts +10 -0
- package/esm2020/core/version.mjs +2 -2
- package/esm2020/datepicker/calendar-header.component.mjs +40 -10
- package/esm2020/datepicker/datepicker-input.directive.mjs +103 -23
- package/esm2020/tree-select/tree-select.component.mjs +4 -4
- package/fesm2015/ptsecurity-mosaic-core.mjs +1 -1
- package/fesm2015/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs +141 -31
- package/fesm2015/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs +3 -3
- package/fesm2015/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs +1 -1
- package/fesm2020/ptsecurity-mosaic-core.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs +141 -31
- package/fesm2020/ptsecurity-mosaic-datepicker.mjs.map +1 -1
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs +3 -3
- package/fesm2020/ptsecurity-mosaic-tree-select.mjs.map +1 -1
- package/package.json +4 -4
@@ -1,13 +1,16 @@
|
|
1
1
|
import { AfterContentInit, EventEmitter } from '@angular/core';
|
2
2
|
import { DateAdapter } from '@ptsecurity/mosaic/core';
|
3
3
|
import * as i0 from "@angular/core";
|
4
|
+
export declare type MonthName = {
|
5
|
+
name: string;
|
6
|
+
nameShort: string;
|
7
|
+
value: number;
|
8
|
+
disabled: boolean;
|
9
|
+
};
|
4
10
|
/** Default header for McCalendar */
|
5
11
|
export declare class McCalendarHeader<D> implements AfterContentInit {
|
6
12
|
private readonly adapter;
|
7
|
-
monthNames:
|
8
|
-
name: string;
|
9
|
-
value: number;
|
10
|
-
}[];
|
13
|
+
monthNames: MonthName[];
|
11
14
|
selectedMonth: number;
|
12
15
|
years: {
|
13
16
|
name: number;
|
@@ -27,6 +30,7 @@ export declare class McCalendarHeader<D> implements AfterContentInit {
|
|
27
30
|
set minDate(value: D | null);
|
28
31
|
private _minDate;
|
29
32
|
get previousDisabled(): boolean;
|
33
|
+
get currentDisabled(): boolean;
|
30
34
|
get nextDisabled(): boolean;
|
31
35
|
/** Emits when any date is activated. */
|
32
36
|
readonly activeDateChange: EventEmitter<D>;
|
@@ -45,7 +49,9 @@ export declare class McCalendarHeader<D> implements AfterContentInit {
|
|
45
49
|
selectNextMonth(): void;
|
46
50
|
private compareDate;
|
47
51
|
private updateSelectedValues;
|
48
|
-
private
|
52
|
+
private updateSelectionOptions;
|
53
|
+
private updateYearsOptions;
|
54
|
+
private updateMonthOptions;
|
49
55
|
static ɵfac: i0.ɵɵFactoryDeclaration<McCalendarHeader<any>, never>;
|
50
56
|
static ɵcmp: i0.ɵɵComponentDeclaration<McCalendarHeader<any>, "mc-calendar-header", ["mcCalendarHeader"], { "activeDate": "activeDate"; "maxDate": "maxDate"; "minDate": "minDate"; }, { "activeDateChange": "activeDateChange"; "monthSelected": "monthSelected"; "yearSelected": "yearSelected"; }, never, never, false, never>;
|
51
57
|
}
|
@@ -143,6 +143,16 @@ export declare class McDatepickerInput<D> implements McFormFieldControl<D>, Cont
|
|
143
143
|
private getDefaultValue;
|
144
144
|
private getTimeStringFromDate;
|
145
145
|
private getDateEditMetrics;
|
146
|
+
private isMaxMonth;
|
147
|
+
private isMinMonth;
|
148
|
+
private isMaxYear;
|
149
|
+
private isMinYear;
|
150
|
+
private getMaxDate;
|
151
|
+
private getMinDate;
|
152
|
+
private getMaxMonth;
|
153
|
+
private getMinMonth;
|
154
|
+
private getMaxYear;
|
155
|
+
private getMinYear;
|
146
156
|
private incrementDate;
|
147
157
|
private getLastDayFor;
|
148
158
|
private decrementDate;
|
package/esm2020/core/version.mjs
CHANGED
@@ -1,3 +1,3 @@
|
|
1
1
|
import { Version } from '@angular/core';
|
2
|
-
export const VERSION = new Version('15.9.
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
2
|
+
export const VERSION = new Version('15.9.4+sha-f55638c');
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9jb3JlL3ZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUd4QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFZlcnNpb24gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuXG5leHBvcnQgY29uc3QgVkVSU0lPTiA9IG5ldyBWZXJzaW9uKCcxNS45LjQrc2hhLWY1NTYzOGMnKTtcbiJdfQ==
|
@@ -21,8 +21,9 @@ export class McCalendarHeader {
|
|
21
21
|
this.activeDateChange = new EventEmitter();
|
22
22
|
this.monthSelected = new EventEmitter();
|
23
23
|
this.yearSelected = new EventEmitter();
|
24
|
-
this.monthNames = this.adapter.getMonthNames('long')
|
25
|
-
|
24
|
+
this.monthNames = this.adapter.getMonthNames('long').map((name, i) => {
|
25
|
+
return { name, nameShort: this.adapter.getMonthNames('short')[i], value: i, disabled: false };
|
26
|
+
});
|
26
27
|
}
|
27
28
|
get activeDate() {
|
28
29
|
return this._activeDate;
|
@@ -30,6 +31,7 @@ export class McCalendarHeader {
|
|
30
31
|
set activeDate(value) {
|
31
32
|
this._activeDate = value;
|
32
33
|
this.updateSelectedValues();
|
34
|
+
this.updateSelectionOptions();
|
33
35
|
}
|
34
36
|
get maxDate() {
|
35
37
|
return this._maxDate;
|
@@ -39,7 +41,7 @@ export class McCalendarHeader {
|
|
39
41
|
return;
|
40
42
|
}
|
41
43
|
this._maxDate = value;
|
42
|
-
this.
|
44
|
+
this.updateYearsOptions();
|
43
45
|
}
|
44
46
|
get minDate() {
|
45
47
|
return this._minDate;
|
@@ -49,16 +51,20 @@ export class McCalendarHeader {
|
|
49
51
|
return;
|
50
52
|
}
|
51
53
|
this._minDate = value;
|
52
|
-
this.
|
54
|
+
this.updateYearsOptions();
|
53
55
|
}
|
54
56
|
get previousDisabled() {
|
55
|
-
return this.compareDate(this.activeDate, this.minDate)
|
57
|
+
return this.compareDate(this.activeDate, this.minDate) <= 0;
|
58
|
+
}
|
59
|
+
get currentDisabled() {
|
60
|
+
const today = this.adapter.today();
|
61
|
+
return this.compareDate(today, this.minDate) < 0 || this.compareDate(today, this.maxDate) > 0;
|
56
62
|
}
|
57
63
|
get nextDisabled() {
|
58
64
|
return this.compareDate(this.activeDate, this.maxDate) >= 0;
|
59
65
|
}
|
60
66
|
ngAfterContentInit() {
|
61
|
-
this.
|
67
|
+
this.updateSelectionOptions();
|
62
68
|
this.updateSelectedValues();
|
63
69
|
}
|
64
70
|
/** Handles when a new month is selected. */
|
@@ -77,6 +83,7 @@ export class McCalendarHeader {
|
|
77
83
|
this.activeDate = this.adapter.createDate(year, month, Math.min(this.adapter.getDate(this.activeDate), daysInMonth));
|
78
84
|
this.yearSelected.emit(this.activeDate);
|
79
85
|
this.activeDateChange.emit(this.activeDate);
|
86
|
+
this.updateMonthOptions();
|
80
87
|
}
|
81
88
|
selectCurrentDate() {
|
82
89
|
this.activeDate = this.adapter.today();
|
@@ -103,7 +110,11 @@ export class McCalendarHeader {
|
|
103
110
|
this.selectedYear = this.years.find(({ name }) => name === year)
|
104
111
|
|| { name: year, value: this.adapter.getYearName(this.activeDate) };
|
105
112
|
}
|
106
|
-
|
113
|
+
updateSelectionOptions() {
|
114
|
+
this.updateYearsOptions();
|
115
|
+
this.updateMonthOptions();
|
116
|
+
}
|
117
|
+
updateYearsOptions() {
|
107
118
|
const minYear = this.adapter.getYear(this.minDate);
|
108
119
|
const maxYear = this.adapter.getYear(this.maxDate);
|
109
120
|
this.years = [];
|
@@ -111,14 +122,33 @@ export class McCalendarHeader {
|
|
111
122
|
this.years.push({ name: key, value: this.adapter.getYearName(this.adapter.createDate(key)) });
|
112
123
|
}
|
113
124
|
}
|
125
|
+
updateMonthOptions() {
|
126
|
+
if (!this._activeDate) {
|
127
|
+
return;
|
128
|
+
}
|
129
|
+
const minYear = this.adapter.getYear(this.minDate);
|
130
|
+
const minMonth = this.adapter.getMonth(this.minDate);
|
131
|
+
const maxYear = this.adapter.getYear(this.maxDate);
|
132
|
+
const maxMonth = this.adapter.getMonth(this.maxDate);
|
133
|
+
const currentYear = this.adapter.getYear(this._activeDate);
|
134
|
+
if (currentYear === minYear && currentYear === maxYear) {
|
135
|
+
this.monthNames.forEach((month) => (month.disabled = month.value < minMonth || month.value > maxMonth));
|
136
|
+
}
|
137
|
+
else if (currentYear === minYear) {
|
138
|
+
this.monthNames.forEach((month) => (month.disabled = month.value < minMonth));
|
139
|
+
}
|
140
|
+
else if (currentYear === maxYear) {
|
141
|
+
this.monthNames.forEach((month) => (month.disabled = month.value > maxMonth));
|
142
|
+
}
|
143
|
+
}
|
114
144
|
}
|
115
145
|
/** @nocollapse */ McCalendarHeader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCalendarHeader, deps: [{ token: i1.DateAdapter }], target: i0.ɵɵFactoryTarget.Component });
|
116
|
-
/** @nocollapse */ McCalendarHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McCalendarHeader, selector: "mc-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "mc-calendar-header" }, exportAs: ["mcCalendarHeader"], ngImport: i0, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value.name)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ this.selectedYear.value }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year.value }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i3.McButtonCssStyler, selector: "[mc-button]" }, { kind: "directive", type: i4.McValidateDirective, selector: " input[mcInput], input[mcInputPassword], input[mcTimepicker], input[mcDatepicker], textarea[mcTextarea], mc-select, mc-tree-select, mc-tag-list ", exportAs: ["McValidate"] }, { kind: "component", type: i5.McSelect, selector: "mc-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["mcSelect"] }, { kind: "directive", type: i5.McSelectMatcher, selector: "mc-select-matcher, [mc-select-matcher]" }, { kind: "directive", type: i5.McOptionTooltip, selector: "mc-option" }, { kind: "component", type: i1.McOption, selector: "mc-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["mcOption"] }, { kind: "component", type: i6.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i6.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
146
|
+
/** @nocollapse */ McCalendarHeader.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.9", type: McCalendarHeader, selector: "mc-calendar-header", inputs: { activeDate: "activeDate", maxDate: "maxDate", minDate: "minDate" }, outputs: { activeDateChange: "activeDateChange", monthSelected: "monthSelected", yearSelected: "yearSelected" }, host: { classAttribute: "mc-calendar-header" }, exportAs: ["mcCalendarHeader"], ngImport: i0, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [disabled]=\"month.disabled\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value.name)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ this.selectedYear.value }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year.value }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [disabled]=\"currentDisabled\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.McButton, selector: "[mc-button]", inputs: ["color", "tabIndex", "disabled"] }, { kind: "directive", type: i3.McButtonCssStyler, selector: "[mc-button]" }, { kind: "directive", type: i4.McValidateDirective, selector: " input[mcInput], input[mcInputPassword], input[mcTimepicker], input[mcDatepicker], textarea[mcTextarea], mc-select, mc-tree-select, mc-tag-list ", exportAs: ["McValidate"] }, { kind: "component", type: i5.McSelect, selector: "mc-select", inputs: ["disabled", "tabIndex", "hiddenItemsText", "panelClass", "backdropClass", "errorStateMatcher", "sortComparator", "hasBackdrop", "placeholder", "required", "multiple", "compareWith", "value", "id", "hiddenItemsTextFormatter"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["mcSelect"] }, { kind: "directive", type: i5.McSelectMatcher, selector: "mc-select-matcher, [mc-select-matcher]" }, { kind: "directive", type: i5.McOptionTooltip, selector: "mc-option" }, { kind: "component", type: i1.McOption, selector: "mc-option", inputs: ["value", "showCheckbox", "disabled"], outputs: ["onSelectionChange"], exportAs: ["mcOption"] }, { kind: "component", type: i6.McIcon, selector: "[mc-icon]", inputs: ["color"] }, { kind: "directive", type: i6.McIconCSSStyler, selector: "[mc-icon]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush, encapsulation: i0.ViewEncapsulation.None });
|
117
147
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: McCalendarHeader, decorators: [{
|
118
148
|
type: Component,
|
119
149
|
args: [{ selector: 'mc-calendar-header', exportAs: 'mcCalendarHeader', host: {
|
120
150
|
class: 'mc-calendar-header'
|
121
|
-
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value.name)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ this.selectedYear.value }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year.value }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"] }]
|
151
|
+
}, encapsulation: ViewEncapsulation.None, changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"mc-calendar-header__select-group\">\n <mc-select\n class=\"mc-calendar-header__select\"\n #monthSelect=\"mcSelect\"\n [value]=\"selectedMonth\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onMonthSelected($event.value)\">\n\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"monthSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ monthSelect.triggerValue }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let month of monthNames\"\n [mcTooltipDisabled]=\"true\"\n [disabled]=\"month.disabled\"\n [value]=\"month.value\">\n {{ month.name }}\n </mc-option>\n </mc-select>\n\n <mc-select\n #yearSelect=\"mcSelect\"\n [value]=\"selectedYear\"\n [panelClass]=\"'mc-calendar-select-panel'\"\n (selectionChange)=\"onYearSelected($event.value.name)\">\n <button class=\"mc-button_transparent layout-padding-right-xs\"\n mc-button\n mc-select-matcher\n [class.mc-active]=\"yearSelect.panelOpen\"\n [tabindex]=\"-1\">\n {{ this.selectedYear.value }}\n\n <i class=\"layout-padding-left-3xs\" mc-icon=\"mc-angle-down-S_16\"></i>\n </button>\n\n <mc-option *ngFor=\"let year of years\"\n [mcTooltipDisabled]=\"true\"\n [value]=\"year\">\n {{ year.value }}\n </mc-option>\n </mc-select>\n</div>\n\n<div class=\"mc-calendar-header__button-group\">\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__previous-button\"\n [tabindex]=\"-1\"\n [disabled]=\"previousDisabled\"\n (click)=\"selectPreviousMonth()\">\n\n <i mc-icon=\"mc-angle-left-L_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent\"\n [disabled]=\"currentDisabled\"\n [tabindex]=\"-1\"\n (click)=\"selectCurrentDate()\">\n\n <i mc-icon=\"mc-circle-8_16\"></i>\n </button>\n\n <button mc-button\n class=\"mc-button_transparent mc-calendar-header__next-button\"\n [tabindex]=\"-1\"\n [disabled]=\"nextDisabled\"\n (click)=\"selectNextMonth()\">\n\n <i mc-icon=\"mc-angle-right-L_16\"></i>\n </button>\n</div>\n", styles: [".mc-calendar-header{display:flex;flex-direction:row;justify-content:space-between;padding:var(--mc-datepicker-calendar-size-padding-top, 16px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px) var(--mc-datepicker-calendar-size-padding-blocks, 12px) var(--mc-datepicker-calendar-size-padding-horizontal, 8px)}.mc-calendar-header__previous-button:after{border-left-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-prev-icon-transform, translateX(2px) rotate(-45deg))}.mc-calendar-header__next-button:after{border-right-width:var(--mc-datepicker-calendar-size-icon-border-width, 2px);transform:var(--mc-datepicker-calendar-size-icon-nex-icon-transform, translateX(-2px) rotate(45deg))}.mc-calendar-header__select{width:auto!important}.mc-calendar-header__button-group,.mc-calendar-header__select-group{display:flex;flex-direction:row}.mc-calendar-select-panel{margin-top:2px;min-width:98%!important}.mc-calendar-select-panel .mc-select__content{max-height:384px;overflow-x:hidden;scrollbar-gutter:stable}.mc-calendar-select-panel .mc-select__content .mc-option{min-width:65px}\n"] }]
|
122
152
|
}], ctorParameters: function () { return [{ type: i1.DateAdapter }]; }, propDecorators: { activeDate: [{
|
123
153
|
type: Input
|
124
154
|
}], maxDate: [{
|
@@ -132,4 +162,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImpor
|
|
132
162
|
}], yearSelected: [{
|
133
163
|
type: Output
|
134
164
|
}] } });
|
135
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9kYXRlcGlja2VyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvZGF0ZXBpY2tlci9jYWxlbmRhci1oZWFkZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUd0RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDNUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBRTVCLG9DQUFvQztBQVlwQyxNQUFNLE9BQU8sZ0JBQWdCO0lBZ0V6QixZQUE2QixPQUF1QjtRQUF2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQTVEcEQsVUFBSyxHQUFzQyxFQUFFLENBQUM7UUE2QjlDLDRDQUE0QztRQUNwQyxhQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBZXZELGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFVOUQsd0NBQXdDO1FBQ3JCLHFCQUFnQixHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFDekMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBQ3RDLGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUdwRCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQzth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QVEsQ0FBQyxDQUFDO1FBRXBELElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO1FBRWhCLEtBQUssSUFBSSxHQUFHLEdBQVcsT0FBTyxFQUFFLEdBQUcsSUFBSSxPQUFPLEVBQUUsR0FBRyxFQUFFLEVBQUU7WUFDbkQsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQztTQUNqRztJQUNMLENBQUM7O2dJQTVKUSxnQkFBZ0I7b0hBQWhCLGdCQUFnQix5VUMzQjdCLHcvRUEyRUE7MkZEaERhLGdCQUFnQjtrQkFYNUIsU0FBUzsrQkFDSSxvQkFBb0IsWUFDcEIsa0JBQWtCLFFBR3RCO3dCQUNGLEtBQUssRUFBRSxvQkFBb0I7cUJBQzlCLGlCQUNjLGlCQUFpQixDQUFDLElBQUksbUJBQ3BCLHVCQUF1QixDQUFDLE1BQU07a0dBVTNDLFVBQVU7c0JBRGIsS0FBSztnQkFjRixPQUFPO3NCQURWLEtBQUs7Z0JBaUJGLE9BQU87c0JBRFYsS0FBSztnQkF3QmEsZ0JBQWdCO3NCQUFsQyxNQUFNO2dCQUNZLGFBQWE7c0JBQS9CLE1BQU07Z0JBQ1ksWUFBWTtzQkFBOUIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgQWZ0ZXJDb250ZW50SW5pdCxcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBDb21wb25lbnQsXG4gICAgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LFxuICAgIE91dHB1dCxcbiAgICBWaWV3RW5jYXBzdWxhdGlvblxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVBZGFwdGVyIH0gZnJvbSAnQHB0c2VjdXJpdHkvbW9zYWljL2NvcmUnO1xuXG5cbmNvbnN0IGRlZmF1bHRNaW5ZZWFyID0gMTkwMDtcbmNvbnN0IGRlZmF1bHRNYXhZZWFyID0gMjA5OTtcblxuLyoqIERlZmF1bHQgaGVhZGVyIGZvciBNY0NhbGVuZGFyICovXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ21jLWNhbGVuZGFyLWhlYWRlcicsXG4gICAgZXhwb3J0QXM6ICdtY0NhbGVuZGFySGVhZGVyJyxcbiAgICB0ZW1wbGF0ZVVybDogJ2NhbGVuZGFyLWhlYWRlci5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnY2FsZW5kYXItaGVhZGVyLnNjc3MnXSxcbiAgICBob3N0OiB7XG4gICAgICAgIGNsYXNzOiAnbWMtY2FsZW5kYXItaGVhZGVyJ1xuICAgIH0sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaFxufSlcbmV4cG9ydCBjbGFzcyBNY0NhbGVuZGFySGVhZGVyPEQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgbW9udGhOYW1lczogeyBuYW1lOiBzdHJpbmc7IHZhbHVlOiBudW1iZXIgfVtdO1xuICAgIHNlbGVjdGVkTW9udGg6IG51bWJlcjtcblxuICAgIHllYXJzOiB7IG5hbWU6IG51bWJlcjsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcbiAgICBzZWxlY3RlZFllYXI6IHsgbmFtZTogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH07XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBhY3RpdmVEYXRlKCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgYWN0aXZlRGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVEYXRlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX2FjdGl2ZURhdGU6IEQ7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBtYXhEYXRlKCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21heERhdGU7XG4gICAgfVxuXG4gICAgc2V0IG1heERhdGUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5fbWF4RGF0ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlWWVhcnNBcnJheSgpO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1tYWdpYy1udW1iZXJzXG4gICAgcHJpdmF0ZSBfbWF4RGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKGRlZmF1bHRNYXhZZWFyLCAxMSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBtaW5EYXRlKCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuXG4gICAgc2V0IG1pbkRhdGUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5fbWluRGF0ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlWWVhcnNBcnJheSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgX21pbkRhdGUgPSB0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZShkZWZhdWx0TWluWWVhciwgMSk7XG5cbiAgICBnZXQgcHJldmlvdXNEaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZURhdGUodGhpcy5hY3RpdmVEYXRlLCB0aGlzLm1pbkRhdGUhKSA8IDA7XG4gICAgfVxuXG4gICAgZ2V0IG5leHREaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuY29tcGFyZURhdGUodGhpcy5hY3RpdmVEYXRlLCB0aGlzLm1heERhdGUhKSA+PSAwO1xuICAgIH1cblxuICAgIC8qKiBFbWl0cyB3aGVuIGFueSBkYXRlIGlzIGFjdGl2YXRlZC4gKi9cbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgYWN0aXZlRGF0ZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8RD4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgbW9udGhTZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RD4oKTtcbiAgICBAT3V0cHV0KCkgcmVhZG9ubHkgeWVhclNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBhZGFwdGVyOiBEYXRlQWRhcHRlcjxEPikge1xuICAgICAgICB0aGlzLm1vbnRoTmFtZXMgPSB0aGlzLmFkYXB0ZXIuZ2V0TW9udGhOYW1lcygnbG9uZycpXG4gICAgICAgICAgICAubWFwKChuYW1lLCBpKSA9PiAoeyBuYW1lLCB2YWx1ZTogaSB9KSk7XG4gICAgfVxuXG4gICAgbmdBZnRlckNvbnRlbnRJbml0KCk6IHZvaWQge1xuICAgICAgICB0aGlzLnVwZGF0ZVllYXJzQXJyYXkoKTtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHdoZW4gYSBuZXcgbW9udGggaXMgc2VsZWN0ZWQuICovXG4gICAgb25Nb250aFNlbGVjdGVkKG1vbnRoOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgeWVhciA9IHRoaXMuYWRhcHRlci5nZXRZZWFyKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWREYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoeWVhciwgbW9udGgpO1xuICAgICAgICBjb25zdCBkYXlzSW5Nb250aCA9IHRoaXMuYWRhcHRlci5nZXROdW1EYXlzSW5Nb250aChub3JtYWxpemVkRGF0ZSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoXG4gICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgbW9udGgsXG4gICAgICAgICAgICBNYXRoLm1pbih0aGlzLmFkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmFjdGl2ZURhdGUpLCBkYXlzSW5Nb250aClcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLm1vbnRoU2VsZWN0ZWQuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIC8qKiBIYW5kbGVzIHdoZW4gYSBuZXcgeWVhciBpcyBzZWxlY3RlZC4gKi9cbiAgICBvblllYXJTZWxlY3RlZCh5ZWFyOiBudW1iZXIpIHtcbiAgICAgICAgY29uc3QgbW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TW9udGgodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgodGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoeWVhciwgbW9udGgpKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZShcbiAgICAgICAgICAgICAgICB5ZWFyLFxuICAgICAgICAgICAgICAgIG1vbnRoLFxuICAgICAgICAgICAgICAgIE1hdGgubWluKHRoaXMuYWRhcHRlci5nZXREYXRlKHRoaXMuYWN0aXZlRGF0ZSksIGRheXNJbk1vbnRoKVxuICAgICAgICAgICAgKTtcblxuICAgICAgICB0aGlzLnllYXJTZWxlY3RlZC5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgc2VsZWN0Q3VycmVudERhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuYWRhcHRlci50b2RheSgpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgdXNlciBjbGlja3Mgb24gdGhlIHByZXZpb3VzIGJ1dHRvbi4gKi9cbiAgICBzZWxlY3RQcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5hY3RpdmVEYXRlLCAtMSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB1c2VyIGNsaWNrcyBvbiB0aGUgbmV4dCBidXR0b24uICovXG4gICAgc2VsZWN0TmV4dE1vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcGFyZURhdGUoZmlyc3Q6IEQsIHNlY29uZDogRCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaXJzdCA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKFxuICAgICAgICAgICAgdGhpcy5hZGFwdGVyLmdldFllYXIoZmlyc3QpLFxuICAgICAgICAgICAgdGhpcy5hZGFwdGVyLmdldE1vbnRoKGZpcnN0KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTZWNvbmQgPSB0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZShcbiAgICAgICAgICAgIHRoaXMuYWRhcHRlci5nZXRZZWFyKHNlY29uZCksXG4gICAgICAgICAgICB0aGlzLmFkYXB0ZXIuZ2V0TW9udGgoc2Vjb25kKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuY29tcGFyZURhdGUobm9ybWFsaXplZEZpcnN0LCBub3JtYWxpemVkU2Vjb25kKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkVmFsdWVzKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGggPSB0aGlzLm1vbnRoTmFtZXNbdGhpcy5hZGFwdGVyLmdldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSldLnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhciA9IHRoaXMueWVhcnMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IHllYXIpXG4gICAgICAgICAgICB8fCB7IG5hbWU6IHllYXIsIHZhbHVlOiB0aGlzLmFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5hY3RpdmVEYXRlKSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlWWVhcnNBcnJheSgpIHtcbiAgICAgICAgY29uc3QgbWluWWVhciA9IHRoaXMuYWRhcHRlci5nZXRZZWFyKHRoaXMubWluRGF0ZSEpO1xuICAgICAgICBjb25zdCBtYXhZZWFyID0gdGhpcy5hZGFwdGVyLmdldFllYXIodGhpcy5tYXhEYXRlISk7XG5cbiAgICAgICAgdGhpcy55ZWFycyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGtleTogbnVtYmVyID0gbWluWWVhcjsga2V5IDw9IG1heFllYXI7IGtleSsrKSB7XG4gICAgICAgICAgICB0aGlzLnllYXJzLnB1c2goeyBuYW1lOiBrZXksIHZhbHVlOiB0aGlzLmFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoa2V5KSkgfSk7XG4gICAgICAgIH1cbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwibWMtY2FsZW5kYXItaGVhZGVyX19zZWxlY3QtZ3JvdXBcIj5cbiAgICA8bWMtc2VsZWN0XG4gICAgICAgIGNsYXNzPVwibWMtY2FsZW5kYXItaGVhZGVyX19zZWxlY3RcIlxuICAgICAgICAjbW9udGhTZWxlY3Q9XCJtY1NlbGVjdFwiXG4gICAgICAgIFt2YWx1ZV09XCJzZWxlY3RlZE1vbnRoXCJcbiAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ21jLWNhbGVuZGFyLXNlbGVjdC1wYW5lbCdcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uTW9udGhTZWxlY3RlZCgkZXZlbnQudmFsdWUpXCI+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1jLWJ1dHRvbl90cmFuc3BhcmVudCBsYXlvdXQtcGFkZGluZy1yaWdodC14c1wiXG4gICAgICAgICAgICAgICAgbWMtYnV0dG9uXG4gICAgICAgICAgICAgICAgbWMtc2VsZWN0LW1hdGNoZXJcbiAgICAgICAgICAgICAgICBbY2xhc3MubWMtYWN0aXZlXT1cIm1vbnRoU2VsZWN0LnBhbmVsT3BlblwiXG4gICAgICAgICAgICAgICAgW3RhYmluZGV4XT1cIi0xXCI+XG4gICAgICAgICAgICB7eyBtb250aFNlbGVjdC50cmlnZ2VyVmFsdWUgfX1cblxuICAgICAgICAgICAgPGkgY2xhc3M9XCJsYXlvdXQtcGFkZGluZy1sZWZ0LTN4c1wiIG1jLWljb249XCJtYy1hbmdsZS1kb3duLVNfMTZcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxtYy1vcHRpb24gKm5nRm9yPVwibGV0IG1vbnRoIG9mIG1vbnRoTmFtZXNcIlxuICAgICAgICAgICAgICAgICAgIFttY1Rvb2x0aXBEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwibW9udGgudmFsdWVcIj5cbiAgICAgICAgICAgIHt7IG1vbnRoLm5hbWUgfX1cbiAgICAgICAgPC9tYy1vcHRpb24+XG4gICAgPC9tYy1zZWxlY3Q+XG5cbiAgICA8bWMtc2VsZWN0XG4gICAgICAgICN5ZWFyU2VsZWN0PVwibWNTZWxlY3RcIlxuICAgICAgICBbdmFsdWVdPVwic2VsZWN0ZWRZZWFyXCJcbiAgICAgICAgW3BhbmVsQ2xhc3NdPVwiJ21jLWNhbGVuZGFyLXNlbGVjdC1wYW5lbCdcIlxuICAgICAgICAoc2VsZWN0aW9uQ2hhbmdlKT1cIm9uWWVhclNlbGVjdGVkKCRldmVudC52YWx1ZS5uYW1lKVwiPlxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWMtYnV0dG9uX3RyYW5zcGFyZW50IGxheW91dC1wYWRkaW5nLXJpZ2h0LXhzXCJcbiAgICAgICAgICAgICAgICBtYy1idXR0b25cbiAgICAgICAgICAgICAgICBtYy1zZWxlY3QtbWF0Y2hlclxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYy1hY3RpdmVdPVwieWVhclNlbGVjdC5wYW5lbE9wZW5cIlxuICAgICAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiPlxuICAgICAgICAgICAge3sgdGhpcy5zZWxlY3RlZFllYXIudmFsdWUgfX1cblxuICAgICAgICAgICAgPGkgY2xhc3M9XCJsYXlvdXQtcGFkZGluZy1sZWZ0LTN4c1wiIG1jLWljb249XCJtYy1hbmdsZS1kb3duLVNfMTZcIj48L2k+XG4gICAgICAgIDwvYnV0dG9uPlxuXG4gICAgICAgIDxtYy1vcHRpb24gKm5nRm9yPVwibGV0IHllYXIgb2YgeWVhcnNcIlxuICAgICAgICAgICAgICAgICAgIFttY1Rvb2x0aXBEaXNhYmxlZF09XCJ0cnVlXCJcbiAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwieWVhclwiPlxuICAgICAgICAgICAge3sgeWVhci52YWx1ZSB9fVxuICAgICAgICA8L21jLW9wdGlvbj5cbiAgICA8L21jLXNlbGVjdD5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibWMtY2FsZW5kYXItaGVhZGVyX19idXR0b24tZ3JvdXBcIj5cbiAgICA8YnV0dG9uIG1jLWJ1dHRvblxuICAgICAgICAgICAgY2xhc3M9XCJtYy1idXR0b25fdHJhbnNwYXJlbnQgbWMtY2FsZW5kYXItaGVhZGVyX19wcmV2aW91cy1idXR0b25cIlxuICAgICAgICAgICAgW3RhYmluZGV4XT1cIi0xXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJwcmV2aW91c0Rpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RQcmV2aW91c01vbnRoKClcIj5cblxuICAgICAgICA8aSBtYy1pY29uPVwibWMtYW5nbGUtbGVmdC1MXzE2XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuXG4gICAgPGJ1dHRvbiBtYy1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWMtYnV0dG9uX3RyYW5zcGFyZW50XCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Q3VycmVudERhdGUoKVwiPlxuXG4gICAgICAgIDxpIG1jLWljb249XCJtYy1jaXJjbGUtOF8xNlwiPjwvaT5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gbWMtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1jLWJ1dHRvbl90cmFuc3BhcmVudCBtYy1jYWxlbmRhci1oZWFkZXJfX25leHQtYnV0dG9uXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibmV4dERpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3ROZXh0TW9udGgoKVwiPlxuXG4gICAgICAgIDxpIG1jLWljb249XCJtYy1hbmdsZS1yaWdodC1MXzE2XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXItaGVhZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL21vc2FpYy9kYXRlcGlja2VyL2NhbGVuZGFyLWhlYWRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi9wYWNrYWdlcy9tb3NhaWMvZGF0ZXBpY2tlci9jYWxlbmRhci1oZWFkZXIuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBRUgsdUJBQXVCLEVBQ3ZCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixpQkFBaUIsRUFDcEIsTUFBTSxlQUFlLENBQUM7QUFDdkIsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQUd0RCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUM7QUFDNUIsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDO0FBUzVCLG9DQUFvQztBQVlwQyxNQUFNLE9BQU8sZ0JBQWdCO0lBdUV6QixZQUE2QixPQUF1QjtRQUF2QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQW5FcEQsVUFBSyxHQUFzQyxFQUFFLENBQUM7UUE4QjlDLDRDQUE0QztRQUNwQyxhQUFRLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBZXZELGFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFnQjlELHdDQUF3QztRQUNyQixxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBQ3pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQUssQ0FBQztRQUN0QyxpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFLLENBQUM7UUFHcEQsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUU7WUFDakUsT0FBTyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDbEcsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBcEVELElBQ0ksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBRUQsSUFBSSxVQUFVLENBQUMsS0FBUTtRQUNuQixJQUFJLENBQUMsV0FBVyxHQUFHLEtBQUssQ0FBQztRQUV6QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1QixJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBSUQsSUFDSSxPQUFPO1FBQ1AsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3pCLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxLQUFlO1FBQ3ZCLElBQUksQ0FBQyxLQUFLLEVBQUU7WUFBRSxPQUFPO1NBQUU7UUFFdkIsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFFdEIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDOUIsQ0FBQztJQUtELElBQ0ksT0FBTztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsSUFBSSxPQUFPLENBQUMsS0FBZTtRQUN2QixJQUFJLENBQUMsS0FBSyxFQUFFO1lBQUUsT0FBTztTQUFFO1FBRXZCLElBQUksQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBRXRCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFJRCxJQUFJLGdCQUFnQjtRQUNoQixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDZixNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRW5DLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3BHLENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDWixPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsT0FBUSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFhRCxrQkFBa0I7UUFDZCxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNoQyxDQUFDO0lBRUQsNENBQTRDO0lBQzVDLGVBQWUsQ0FBQyxLQUFhO1FBQ3pCLE1BQU0sSUFBSSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNuRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFDNUQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxjQUFjLENBQUMsQ0FBQztRQUVuRSxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUNyQyxJQUFJLEVBQ0osS0FBSyxFQUNMLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxDQUMvRCxDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCwyQ0FBMkM7SUFDM0MsY0FBYyxDQUFDLElBQVk7UUFDdkIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3JELE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFFekYsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FDakMsSUFBSSxFQUNKLEtBQUssRUFDTCxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsRUFBRSxXQUFXLENBQUMsQ0FDL0QsQ0FBQztRQUVOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUU1QyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM5QixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXZDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxrREFBa0Q7SUFDbEQsbUJBQW1CO1FBQ2YsSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV0RSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsOENBQThDO0lBQzlDLGVBQWU7UUFDWCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUVyRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQVEsRUFBRSxNQUFTO1FBQ25DLE1BQU0sZUFBZSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUMzQyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFDM0IsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQy9CLENBQUM7UUFFRixNQUFNLGdCQUFnQixHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUM1QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsRUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQ2hDLENBQUM7UUFFRixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLGVBQWUsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFTyxvQkFBb0I7UUFDeEIsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUVuRixNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLEVBQUUsSUFBSSxFQUFFLEVBQUUsRUFBRSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUM7ZUFDekQsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQztJQUM1RSxDQUFDO0lBRU8sc0JBQXNCO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzlCLENBQUM7SUFFTyxrQkFBa0I7UUFDdEIsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQVEsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsQ0FBQztRQUVwRCxJQUFJLENBQUMsS0FBSyxHQUFHLEVBQUUsQ0FBQztRQUVoQixLQUFLLElBQUksR0FBRyxHQUFXLE9BQU8sRUFBRSxHQUFHLElBQUksT0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ25ELElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDakc7SUFDTCxDQUFDO0lBRU8sa0JBQWtCO1FBQ3RCLElBQUksQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFO1lBQ25CLE9BQU87U0FDVjtRQUVELE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsQ0FBQztRQUNwRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsT0FBUSxDQUFDLENBQUM7UUFFdEQsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE9BQVEsQ0FBQyxDQUFDO1FBQ3BELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFRLENBQUMsQ0FBQztRQUV0RCxNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFM0QsSUFBSSxXQUFXLEtBQUssT0FBTyxJQUFJLFdBQVcsS0FBSyxPQUFPLEVBQUU7WUFDcEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsSUFBSSxLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDM0c7YUFBTSxJQUFJLFdBQVcsS0FBSyxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7YUFBTSxJQUFJLFdBQVcsS0FBSyxPQUFPLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxHQUFHLFFBQVEsQ0FBQyxDQUFDLENBQUM7U0FDakY7SUFDTCxDQUFDOztnSUFqTVEsZ0JBQWdCO29IQUFoQixnQkFBZ0IseVVDbEM3QixzbEZBNkVBOzJGRDNDYSxnQkFBZ0I7a0JBWDVCLFNBQVM7K0JBQ0ksb0JBQW9CLFlBQ3BCLGtCQUFrQixRQUd0Qjt3QkFDRixLQUFLLEVBQUUsb0JBQW9CO3FCQUM5QixpQkFDYyxpQkFBaUIsQ0FBQyxJQUFJLG1CQUNwQix1QkFBdUIsQ0FBQyxNQUFNO2tHQVUzQyxVQUFVO3NCQURiLEtBQUs7Z0JBZUYsT0FBTztzQkFEVixLQUFLO2dCQWlCRixPQUFPO3NCQURWLEtBQUs7Z0JBOEJhLGdCQUFnQjtzQkFBbEMsTUFBTTtnQkFDWSxhQUFhO3NCQUEvQixNQUFNO2dCQUNZLFlBQVk7c0JBQTlCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyQ29udGVudEluaXQsXG4gICAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gICAgQ29tcG9uZW50LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBJbnB1dCxcbiAgICBPdXRwdXQsXG4gICAgVmlld0VuY2Fwc3VsYXRpb25cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEYXRlQWRhcHRlciB9IGZyb20gJ0BwdHNlY3VyaXR5L21vc2FpYy9jb3JlJztcblxuXG5jb25zdCBkZWZhdWx0TWluWWVhciA9IDE5MDA7XG5jb25zdCBkZWZhdWx0TWF4WWVhciA9IDIwOTk7XG5cbmV4cG9ydCB0eXBlIE1vbnRoTmFtZSA9IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgbmFtZVNob3J0OiBzdHJpbmc7XG4gICAgdmFsdWU6IG51bWJlcjtcbiAgICBkaXNhYmxlZDogYm9vbGVhbjtcbn07XG5cbi8qKiBEZWZhdWx0IGhlYWRlciBmb3IgTWNDYWxlbmRhciAqL1xuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdtYy1jYWxlbmRhci1oZWFkZXInLFxuICAgIGV4cG9ydEFzOiAnbWNDYWxlbmRhckhlYWRlcicsXG4gICAgdGVtcGxhdGVVcmw6ICdjYWxlbmRhci1oZWFkZXIuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJ2NhbGVuZGFyLWhlYWRlci5zY3NzJ10sXG4gICAgaG9zdDoge1xuICAgICAgICBjbGFzczogJ21jLWNhbGVuZGFyLWhlYWRlcidcbiAgICB9LFxuICAgIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2hcbn0pXG5leHBvcnQgY2xhc3MgTWNDYWxlbmRhckhlYWRlcjxEPiBpbXBsZW1lbnRzIEFmdGVyQ29udGVudEluaXQge1xuICAgIG1vbnRoTmFtZXM6IE1vbnRoTmFtZVtdO1xuICAgIHNlbGVjdGVkTW9udGg6IG51bWJlcjtcblxuICAgIHllYXJzOiB7IG5hbWU6IG51bWJlcjsgdmFsdWU6IHN0cmluZyB9W10gPSBbXTtcbiAgICBzZWxlY3RlZFllYXI6IHsgbmFtZTogbnVtYmVyOyB2YWx1ZTogc3RyaW5nIH07XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBhY3RpdmVEYXRlKCk6IEQge1xuICAgICAgICByZXR1cm4gdGhpcy5fYWN0aXZlRGF0ZTtcbiAgICB9XG5cbiAgICBzZXQgYWN0aXZlRGF0ZSh2YWx1ZTogRCkge1xuICAgICAgICB0aGlzLl9hY3RpdmVEYXRlID0gdmFsdWU7XG5cbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xuICAgICAgICB0aGlzLnVwZGF0ZVNlbGVjdGlvbk9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIF9hY3RpdmVEYXRlOiBEO1xuXG4gICAgQElucHV0KClcbiAgICBnZXQgbWF4RGF0ZSgpOiBEIHwgbnVsbCB7XG4gICAgICAgIHJldHVybiB0aGlzLl9tYXhEYXRlO1xuICAgIH1cblxuICAgIHNldCBtYXhEYXRlKHZhbHVlOiBEIHwgbnVsbCkge1xuICAgICAgICBpZiAoIXZhbHVlKSB7IHJldHVybjsgfVxuXG4gICAgICAgIHRoaXMuX21heERhdGUgPSB2YWx1ZTtcblxuICAgICAgICB0aGlzLnVwZGF0ZVllYXJzT3B0aW9ucygpO1xuICAgIH1cblxuICAgIC8vIHRzbGludDpkaXNhYmxlLW5leHQtbGluZTpuby1tYWdpYy1udW1iZXJzXG4gICAgcHJpdmF0ZSBfbWF4RGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKGRlZmF1bHRNYXhZZWFyLCAxMSk7XG5cbiAgICBASW5wdXQoKVxuICAgIGdldCBtaW5EYXRlKCk6IEQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX21pbkRhdGU7XG4gICAgfVxuXG4gICAgc2V0IG1pbkRhdGUodmFsdWU6IEQgfCBudWxsKSB7XG4gICAgICAgIGlmICghdmFsdWUpIHsgcmV0dXJuOyB9XG5cbiAgICAgICAgdGhpcy5fbWluRGF0ZSA9IHZhbHVlO1xuXG4gICAgICAgIHRoaXMudXBkYXRlWWVhcnNPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBfbWluRGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKGRlZmF1bHRNaW5ZZWFyLCAxKTtcblxuICAgIGdldCBwcmV2aW91c0Rpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlRGF0ZSh0aGlzLmFjdGl2ZURhdGUsIHRoaXMubWluRGF0ZSEpIDw9IDA7XG4gICAgfVxuXG4gICAgZ2V0IGN1cnJlbnREaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICAgICAgY29uc3QgdG9kYXkgPSB0aGlzLmFkYXB0ZXIudG9kYXkoKTtcblxuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlRGF0ZSh0b2RheSwgdGhpcy5taW5EYXRlISkgPCAwIHx8IHRoaXMuY29tcGFyZURhdGUodG9kYXksIHRoaXMubWF4RGF0ZSEpID4gMDtcbiAgICB9XG5cbiAgICBnZXQgbmV4dERpc2FibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21wYXJlRGF0ZSh0aGlzLmFjdGl2ZURhdGUsIHRoaXMubWF4RGF0ZSEpID49IDA7XG4gICAgfVxuXG4gICAgLyoqIEVtaXRzIHdoZW4gYW55IGRhdGUgaXMgYWN0aXZhdGVkLiAqL1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBhY3RpdmVEYXRlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSBtb250aFNlbGVjdGVkID0gbmV3IEV2ZW50RW1pdHRlcjxEPigpO1xuICAgIEBPdXRwdXQoKSByZWFkb25seSB5ZWFyU2VsZWN0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPEQ+KCk7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGFkYXB0ZXI6IERhdGVBZGFwdGVyPEQ+KSB7XG4gICAgICAgIHRoaXMubW9udGhOYW1lcyA9IHRoaXMuYWRhcHRlci5nZXRNb250aE5hbWVzKCdsb25nJykubWFwKChuYW1lLCBpKSA9PiB7XG4gICAgICAgICAgICByZXR1cm4geyBuYW1lLCBuYW1lU2hvcnQ6IHRoaXMuYWRhcHRlci5nZXRNb250aE5hbWVzKCdzaG9ydCcpW2ldLCB2YWx1ZTogaSwgZGlzYWJsZWQ6IGZhbHNlIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJDb250ZW50SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy51cGRhdGVTZWxlY3Rpb25PcHRpb25zKCk7XG4gICAgICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB3aGVuIGEgbmV3IG1vbnRoIGlzIHNlbGVjdGVkLiAqL1xuICAgIG9uTW9udGhTZWxlY3RlZChtb250aDogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IHllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICBjb25zdCBub3JtYWxpemVkRGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKHllYXIsIG1vbnRoKTtcbiAgICAgICAgY29uc3QgZGF5c0luTW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TnVtRGF5c0luTW9udGgobm9ybWFsaXplZERhdGUpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKFxuICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgIG1vbnRoLFxuICAgICAgICAgICAgTWF0aC5taW4odGhpcy5hZGFwdGVyLmdldERhdGUodGhpcy5hY3RpdmVEYXRlKSwgZGF5c0luTW9udGgpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5tb250aFNlbGVjdGVkLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB3aGVuIGEgbmV3IHllYXIgaXMgc2VsZWN0ZWQuICovXG4gICAgb25ZZWFyU2VsZWN0ZWQoeWVhcjogbnVtYmVyKSB7XG4gICAgICAgIGNvbnN0IG1vbnRoID0gdGhpcy5hZGFwdGVyLmdldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgICAgIGNvbnN0IGRheXNJbk1vbnRoID0gdGhpcy5hZGFwdGVyLmdldE51bURheXNJbk1vbnRoKHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKHllYXIsIG1vbnRoKSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlID0gdGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoXG4gICAgICAgICAgICAgICAgeWVhcixcbiAgICAgICAgICAgICAgICBtb250aCxcbiAgICAgICAgICAgICAgICBNYXRoLm1pbih0aGlzLmFkYXB0ZXIuZ2V0RGF0ZSh0aGlzLmFjdGl2ZURhdGUpLCBkYXlzSW5Nb250aClcbiAgICAgICAgICAgICk7XG5cbiAgICAgICAgdGhpcy55ZWFyU2VsZWN0ZWQuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuXG4gICAgICAgIHRoaXMudXBkYXRlTW9udGhPcHRpb25zKCk7XG4gICAgfVxuXG4gICAgc2VsZWN0Q3VycmVudERhdGUoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZSA9IHRoaXMuYWRhcHRlci50b2RheSgpO1xuXG4gICAgICAgIHRoaXMuYWN0aXZlRGF0ZUNoYW5nZS5lbWl0KHRoaXMuYWN0aXZlRGF0ZSk7XG4gICAgfVxuXG4gICAgLyoqIEhhbmRsZXMgdXNlciBjbGlja3Mgb24gdGhlIHByZXZpb3VzIGJ1dHRvbi4gKi9cbiAgICBzZWxlY3RQcmV2aW91c01vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5hY3RpdmVEYXRlLCAtMSk7XG5cbiAgICAgICAgdGhpcy5hY3RpdmVEYXRlQ2hhbmdlLmVtaXQodGhpcy5hY3RpdmVEYXRlKTtcbiAgICB9XG5cbiAgICAvKiogSGFuZGxlcyB1c2VyIGNsaWNrcyBvbiB0aGUgbmV4dCBidXR0b24uICovXG4gICAgc2VsZWN0TmV4dE1vbnRoKCk6IHZvaWQge1xuICAgICAgICB0aGlzLmFjdGl2ZURhdGUgPSB0aGlzLmFkYXB0ZXIuYWRkQ2FsZW5kYXJNb250aHModGhpcy5hY3RpdmVEYXRlLCAxKTtcblxuICAgICAgICB0aGlzLmFjdGl2ZURhdGVDaGFuZ2UuZW1pdCh0aGlzLmFjdGl2ZURhdGUpO1xuICAgIH1cblxuICAgIHByaXZhdGUgY29tcGFyZURhdGUoZmlyc3Q6IEQsIHNlY29uZDogRCk6IG51bWJlciB7XG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRGaXJzdCA9IHRoaXMuYWRhcHRlci5jcmVhdGVEYXRlKFxuICAgICAgICAgICAgdGhpcy5hZGFwdGVyLmdldFllYXIoZmlyc3QpLFxuICAgICAgICAgICAgdGhpcy5hZGFwdGVyLmdldE1vbnRoKGZpcnN0KVxuICAgICAgICApO1xuXG4gICAgICAgIGNvbnN0IG5vcm1hbGl6ZWRTZWNvbmQgPSB0aGlzLmFkYXB0ZXIuY3JlYXRlRGF0ZShcbiAgICAgICAgICAgIHRoaXMuYWRhcHRlci5nZXRZZWFyKHNlY29uZCksXG4gICAgICAgICAgICB0aGlzLmFkYXB0ZXIuZ2V0TW9udGgoc2Vjb25kKVxuICAgICAgICApO1xuXG4gICAgICAgIHJldHVybiB0aGlzLmFkYXB0ZXIuY29tcGFyZURhdGUobm9ybWFsaXplZEZpcnN0LCBub3JtYWxpemVkU2Vjb25kKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVNlbGVjdGVkVmFsdWVzKCkge1xuICAgICAgICB0aGlzLnNlbGVjdGVkTW9udGggPSB0aGlzLm1vbnRoTmFtZXNbdGhpcy5hZGFwdGVyLmdldE1vbnRoKHRoaXMuYWN0aXZlRGF0ZSldLnZhbHVlO1xuXG4gICAgICAgIGNvbnN0IHllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLmFjdGl2ZURhdGUpO1xuICAgICAgICB0aGlzLnNlbGVjdGVkWWVhciA9IHRoaXMueWVhcnMuZmluZCgoeyBuYW1lIH0pID0+IG5hbWUgPT09IHllYXIpXG4gICAgICAgICAgICB8fCB7IG5hbWU6IHllYXIsIHZhbHVlOiB0aGlzLmFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5hY3RpdmVEYXRlKSB9O1xuICAgIH1cblxuICAgIHByaXZhdGUgdXBkYXRlU2VsZWN0aW9uT3B0aW9ucygpIHtcbiAgICAgICAgdGhpcy51cGRhdGVZZWFyc09wdGlvbnMoKTtcbiAgICAgICAgdGhpcy51cGRhdGVNb250aE9wdGlvbnMoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZVllYXJzT3B0aW9ucygpIHtcbiAgICAgICAgY29uc3QgbWluWWVhciA9IHRoaXMuYWRhcHRlci5nZXRZZWFyKHRoaXMubWluRGF0ZSEpO1xuICAgICAgICBjb25zdCBtYXhZZWFyID0gdGhpcy5hZGFwdGVyLmdldFllYXIodGhpcy5tYXhEYXRlISk7XG5cbiAgICAgICAgdGhpcy55ZWFycyA9IFtdO1xuXG4gICAgICAgIGZvciAobGV0IGtleTogbnVtYmVyID0gbWluWWVhcjsga2V5IDw9IG1heFllYXI7IGtleSsrKSB7XG4gICAgICAgICAgICB0aGlzLnllYXJzLnB1c2goeyBuYW1lOiBrZXksIHZhbHVlOiB0aGlzLmFkYXB0ZXIuZ2V0WWVhck5hbWUodGhpcy5hZGFwdGVyLmNyZWF0ZURhdGUoa2V5KSkgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIHVwZGF0ZU1vbnRoT3B0aW9ucygpIHtcbiAgICAgICAgaWYgKCF0aGlzLl9hY3RpdmVEYXRlKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cblxuICAgICAgICBjb25zdCBtaW5ZZWFyID0gdGhpcy5hZGFwdGVyLmdldFllYXIodGhpcy5taW5EYXRlISk7XG4gICAgICAgIGNvbnN0IG1pbk1vbnRoID0gdGhpcy5hZGFwdGVyLmdldE1vbnRoKHRoaXMubWluRGF0ZSEpO1xuXG4gICAgICAgIGNvbnN0IG1heFllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLm1heERhdGUhKTtcbiAgICAgICAgY29uc3QgbWF4TW9udGggPSB0aGlzLmFkYXB0ZXIuZ2V0TW9udGgodGhpcy5tYXhEYXRlISk7XG5cbiAgICAgICAgY29uc3QgY3VycmVudFllYXIgPSB0aGlzLmFkYXB0ZXIuZ2V0WWVhcih0aGlzLl9hY3RpdmVEYXRlKTtcblxuICAgICAgICBpZiAoY3VycmVudFllYXIgPT09IG1pblllYXIgJiYgY3VycmVudFllYXIgPT09IG1heFllYXIpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGhOYW1lcy5mb3JFYWNoKChtb250aCkgPT4gKG1vbnRoLmRpc2FibGVkID0gbW9udGgudmFsdWUgPCBtaW5Nb250aCB8fCBtb250aC52YWx1ZSA+IG1heE1vbnRoKSk7XG4gICAgICAgIH0gZWxzZSBpZiAoY3VycmVudFllYXIgPT09IG1pblllYXIpIHtcbiAgICAgICAgICAgIHRoaXMubW9udGhOYW1lcy5mb3JFYWNoKChtb250aCkgPT4gKG1vbnRoLmRpc2FibGVkID0gbW9udGgudmFsdWUgPCBtaW5Nb250aCkpO1xuICAgICAgICB9IGVsc2UgaWYgKGN1cnJlbnRZZWFyID09PSBtYXhZZWFyKSB7XG4gICAgICAgICAgICB0aGlzLm1vbnRoTmFtZXMuZm9yRWFjaCgobW9udGgpID0+IChtb250aC5kaXNhYmxlZCA9IG1vbnRoLnZhbHVlID4gbWF4TW9udGgpKTtcbiAgICAgICAgfVxuICAgIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJtYy1jYWxlbmRhci1oZWFkZXJfX3NlbGVjdC1ncm91cFwiPlxuICAgIDxtYy1zZWxlY3RcbiAgICAgICAgY2xhc3M9XCJtYy1jYWxlbmRhci1oZWFkZXJfX3NlbGVjdFwiXG4gICAgICAgICNtb250aFNlbGVjdD1cIm1jU2VsZWN0XCJcbiAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkTW9udGhcIlxuICAgICAgICBbcGFuZWxDbGFzc109XCInbWMtY2FsZW5kYXItc2VsZWN0LXBhbmVsJ1wiXG4gICAgICAgIChzZWxlY3Rpb25DaGFuZ2UpPVwib25Nb250aFNlbGVjdGVkKCRldmVudC52YWx1ZSlcIj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwibWMtYnV0dG9uX3RyYW5zcGFyZW50IGxheW91dC1wYWRkaW5nLXJpZ2h0LXhzXCJcbiAgICAgICAgICAgICAgICBtYy1idXR0b25cbiAgICAgICAgICAgICAgICBtYy1zZWxlY3QtbWF0Y2hlclxuICAgICAgICAgICAgICAgIFtjbGFzcy5tYy1hY3RpdmVdPVwibW9udGhTZWxlY3QucGFuZWxPcGVuXCJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIj5cbiAgICAgICAgICAgIHt7IG1vbnRoU2VsZWN0LnRyaWdnZXJWYWx1ZSB9fVxuXG4gICAgICAgICAgICA8aSBjbGFzcz1cImxheW91dC1wYWRkaW5nLWxlZnQtM3hzXCIgbWMtaWNvbj1cIm1jLWFuZ2xlLWRvd24tU18xNlwiPjwvaT5cbiAgICAgICAgPC9idXR0b24+XG5cbiAgICAgICAgPG1jLW9wdGlvbiAqbmdGb3I9XCJsZXQgbW9udGggb2YgbW9udGhOYW1lc1wiXG4gICAgICAgICAgICAgICAgICAgW21jVG9vbHRpcERpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJtb250aC5kaXNhYmxlZFwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cIm1vbnRoLnZhbHVlXCI+XG4gICAgICAgICAgICB7eyBtb250aC5uYW1lIH19XG4gICAgICAgIDwvbWMtb3B0aW9uPlxuICAgIDwvbWMtc2VsZWN0PlxuXG4gICAgPG1jLXNlbGVjdFxuICAgICAgICAjeWVhclNlbGVjdD1cIm1jU2VsZWN0XCJcbiAgICAgICAgW3ZhbHVlXT1cInNlbGVjdGVkWWVhclwiXG4gICAgICAgIFtwYW5lbENsYXNzXT1cIidtYy1jYWxlbmRhci1zZWxlY3QtcGFuZWwnXCJcbiAgICAgICAgKHNlbGVjdGlvbkNoYW5nZSk9XCJvblllYXJTZWxlY3RlZCgkZXZlbnQudmFsdWUubmFtZSlcIj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cIm1jLWJ1dHRvbl90cmFuc3BhcmVudCBsYXlvdXQtcGFkZGluZy1yaWdodC14c1wiXG4gICAgICAgICAgICAgICAgbWMtYnV0dG9uXG4gICAgICAgICAgICAgICAgbWMtc2VsZWN0LW1hdGNoZXJcbiAgICAgICAgICAgICAgICBbY2xhc3MubWMtYWN0aXZlXT1cInllYXJTZWxlY3QucGFuZWxPcGVuXCJcbiAgICAgICAgICAgICAgICBbdGFiaW5kZXhdPVwiLTFcIj5cbiAgICAgICAgICAgIHt7IHRoaXMuc2VsZWN0ZWRZZWFyLnZhbHVlIH19XG5cbiAgICAgICAgICAgIDxpIGNsYXNzPVwibGF5b3V0LXBhZGRpbmctbGVmdC0zeHNcIiBtYy1pY29uPVwibWMtYW5nbGUtZG93bi1TXzE2XCI+PC9pPlxuICAgICAgICA8L2J1dHRvbj5cblxuICAgICAgICA8bWMtb3B0aW9uICpuZ0Zvcj1cImxldCB5ZWFyIG9mIHllYXJzXCJcbiAgICAgICAgICAgICAgICAgICBbbWNUb29sdGlwRGlzYWJsZWRdPVwidHJ1ZVwiXG4gICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cInllYXJcIj5cbiAgICAgICAgICAgIHt7IHllYXIudmFsdWUgfX1cbiAgICAgICAgPC9tYy1vcHRpb24+XG4gICAgPC9tYy1zZWxlY3Q+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1jLWNhbGVuZGFyLWhlYWRlcl9fYnV0dG9uLWdyb3VwXCI+XG4gICAgPGJ1dHRvbiBtYy1idXR0b25cbiAgICAgICAgICAgIGNsYXNzPVwibWMtYnV0dG9uX3RyYW5zcGFyZW50IG1jLWNhbGVuZGFyLWhlYWRlcl9fcHJldmlvdXMtYnV0dG9uXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwicHJldmlvdXNEaXNhYmxlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0UHJldmlvdXNNb250aCgpXCI+XG5cbiAgICAgICAgPGkgbWMtaWNvbj1cIm1jLWFuZ2xlLWxlZnQtTF8xNlwiPjwvaT5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gbWMtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1jLWJ1dHRvbl90cmFuc3BhcmVudFwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiY3VycmVudERpc2FibGVkXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICAoY2xpY2spPVwic2VsZWN0Q3VycmVudERhdGUoKVwiPlxuXG4gICAgICAgIDxpIG1jLWljb249XCJtYy1jaXJjbGUtOF8xNlwiPjwvaT5cbiAgICA8L2J1dHRvbj5cblxuICAgIDxidXR0b24gbWMtYnV0dG9uXG4gICAgICAgICAgICBjbGFzcz1cIm1jLWJ1dHRvbl90cmFuc3BhcmVudCBtYy1jYWxlbmRhci1oZWFkZXJfX25leHQtYnV0dG9uXCJcbiAgICAgICAgICAgIFt0YWJpbmRleF09XCItMVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwibmV4dERpc2FibGVkXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3ROZXh0TW9udGgoKVwiPlxuXG4gICAgICAgIDxpIG1jLWljb249XCJtYy1hbmdsZS1yaWdodC1MXzE2XCI+PC9pPlxuICAgIDwvYnV0dG9uPlxuPC9kaXY+XG4iXX0=
|