@skyux/datetime 8.0.0-alpha.0 → 8.0.0-alpha.10
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/documentation.json +1212 -1153
- package/esm2020/index.mjs +3 -2
- package/esm2020/lib/modules/date-pipe/date-pipe.module.mjs +4 -4
- package/esm2020/lib/modules/date-pipe/date.pipe.mjs +3 -3
- package/esm2020/lib/modules/date-pipe/fuzzy-date.pipe.mjs +3 -3
- package/esm2020/lib/modules/date-range-picker/date-range-picker-end-date-resource-key.pipe.mjs +3 -3
- package/esm2020/lib/modules/date-range-picker/date-range-picker-start-date-resource-key.pipe.mjs +3 -3
- package/esm2020/lib/modules/date-range-picker/date-range-picker.component.mjs +71 -71
- package/esm2020/lib/modules/date-range-picker/date-range-picker.module.mjs +4 -4
- package/esm2020/lib/modules/date-range-picker/date-range.service.mjs +3 -3
- package/esm2020/lib/modules/datepicker/datepicker-adapter.service.mjs +3 -3
- package/esm2020/lib/modules/datepicker/datepicker-calendar-inner.component.mjs +4 -4
- package/esm2020/lib/modules/datepicker/datepicker-calendar.component.mjs +11 -11
- package/esm2020/lib/modules/datepicker/datepicker-config.service.mjs +3 -3
- package/esm2020/lib/modules/datepicker/datepicker-input-fuzzy.directive.mjs +61 -61
- package/esm2020/lib/modules/datepicker/datepicker-input.directive.mjs +63 -63
- package/esm2020/lib/modules/datepicker/datepicker.component.mjs +62 -48
- package/esm2020/lib/modules/datepicker/datepicker.module.mjs +4 -4
- package/esm2020/lib/modules/datepicker/datepicker.service.mjs +3 -3
- package/esm2020/lib/modules/datepicker/daypicker-button.component.mjs +3 -3
- package/esm2020/lib/modules/datepicker/daypicker-cell.component.mjs +3 -3
- package/esm2020/lib/modules/datepicker/daypicker.component.mjs +10 -10
- package/esm2020/lib/modules/datepicker/fuzzy-date.service.mjs +3 -3
- package/esm2020/lib/modules/datepicker/monthpicker.component.mjs +3 -3
- package/esm2020/lib/modules/datepicker/yearpicker.component.mjs +3 -3
- package/esm2020/lib/modules/shared/sky-datetime-resources.module.mjs +4 -4
- package/esm2020/lib/modules/timepicker/timepicker-time-format-type.mjs +2 -0
- package/esm2020/lib/modules/timepicker/timepicker-time-output.mjs +2 -0
- package/esm2020/lib/modules/timepicker/timepicker.component.mjs +63 -49
- package/esm2020/lib/modules/timepicker/timepicker.directive.mjs +29 -29
- package/esm2020/lib/modules/timepicker/timepicker.module.mjs +4 -4
- package/fesm2015/skyux-datetime.mjs +422 -394
- package/fesm2015/skyux-datetime.mjs.map +1 -1
- package/fesm2020/skyux-datetime.mjs +423 -395
- package/fesm2020/skyux-datetime.mjs.map +1 -1
- package/index.d.ts +2 -1
- package/lib/modules/date-range-picker/types/date-range-calculator-date-range-function.d.ts +1 -1
- package/lib/modules/date-range-picker/types/date-range-calculator-validate-function.d.ts +1 -1
- package/lib/modules/datepicker/datepicker-calendar-inner.component.d.ts +2 -2
- package/lib/modules/datepicker/datepicker.component.d.ts +3 -3
- package/lib/modules/timepicker/timepicker-time-format-type.d.ts +1 -0
- package/lib/modules/timepicker/timepicker.component.d.ts +7 -6
- package/lib/modules/timepicker/timepicker.directive.d.ts +3 -2
- package/package.json +13 -13
- package/esm2020/lib/modules/timepicker/timepicker.interface.mjs +0 -2
- /package/lib/modules/timepicker/{timepicker.interface.d.ts → timepicker-time-output.d.ts} +0 -0
@@ -11,6 +11,12 @@ import * as i4 from "./daypicker-cell.component";
|
|
11
11
|
* @internal
|
12
12
|
*/
|
13
13
|
export class SkyDayPickerComponent {
|
14
|
+
set customDates(value) {
|
15
|
+
/* istanbul ignore else */
|
16
|
+
if (value) {
|
17
|
+
__classPrivateFieldGet(this, _SkyDayPickerComponent_instances, "m", _SkyDayPickerComponent_applyCustomDates).call(this, value, this.rows);
|
18
|
+
}
|
19
|
+
}
|
14
20
|
constructor(datepicker) {
|
15
21
|
_SkyDayPickerComponent_instances.add(this);
|
16
22
|
this.calendarDateRangeChange = new EventEmitter();
|
@@ -27,12 +33,6 @@ export class SkyDayPickerComponent {
|
|
27
33
|
_SkyDayPickerComponent_ngUnsubscribe.set(this, new Subject());
|
28
34
|
this.datepicker = datepicker;
|
29
35
|
}
|
30
|
-
set customDates(value) {
|
31
|
-
/* istanbul ignore else */
|
32
|
-
if (value) {
|
33
|
-
__classPrivateFieldGet(this, _SkyDayPickerComponent_instances, "m", _SkyDayPickerComponent_applyCustomDates).call(this, value, this.rows);
|
34
|
-
}
|
35
|
-
}
|
36
36
|
ngOnInit() {
|
37
37
|
this.datepicker.stepDay = { months: 1 };
|
38
38
|
__classPrivateFieldSet(this, _SkyDayPickerComponent_initialDate, this.datepicker.activeDate.getDate(), "f");
|
@@ -201,9 +201,9 @@ _SkyDayPickerComponent_daysInMonth = new WeakMap(), _SkyDayPickerComponent_initi
|
|
201
201
|
}
|
202
202
|
return undefined;
|
203
203
|
};
|
204
|
-
SkyDayPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
205
|
-
SkyDayPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
206
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
204
|
+
SkyDayPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDayPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
|
205
|
+
SkyDayPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyDayPickerComponent, selector: "sky-daypicker", inputs: { customDates: "customDates", isWaiting: "isWaiting" }, outputs: { calendarDateRangeChange: "calendarDateRangeChange" }, ngImport: i0, template: "<div *ngIf=\"datepicker.datepickerMode === 'day'\" class=\"sky-daypicker-wrapper\">\n <table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n >\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\" scope=\"col\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th scope=\"col\" [attr.colspan]=\"5\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled':\n datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\" scope=\"col\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let label of labels\"\n class=\"sky-datepicker-center sky-datepicker-weekdays\"\n >\n <small [attr.aria-label]=\"label.full\">\n <b>{{ label.abbr }}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n <!-- Wait indicator for async custom date stream -->\n <sky-wait [isWaiting]=\"isWaiting\"> </sky-wait>\n <ng-template ngFor [ngForOf]=\"rows\" let-row=\"$implicit\" let-index=\"index\">\n <tr role=\"row\">\n <td\n *ngFor=\"let date of row\"\n class=\"sky-datepicker-center\"\n role=\"gridcell\"\n [id]=\"date.uid\"\n >\n <sky-daypicker-cell\n [activeDateHasChanged]=\"activeDateHasChanged\"\n [date]=\"date\"\n >\n </sky-daypicker-cell>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }, { kind: "component", type: i3.λ14, selector: "sky-wait", inputs: ["ariaLabel", "isWaiting", "isFullPage", "isNonBlocking"] }, { kind: "component", type: i4.SkyDayPickerCellComponent, selector: "sky-daypicker-cell", inputs: ["activeDateHasChanged", "date"] }] });
|
206
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDayPickerComponent, decorators: [{
|
207
207
|
type: Component,
|
208
208
|
args: [{ selector: 'sky-daypicker', template: "<div *ngIf=\"datepicker.datepickerMode === 'day'\" class=\"sky-daypicker-wrapper\">\n <table\n class=\"sky-daypicker-table\"\n role=\"grid\"\n [attr.aria-labelledby]=\"datepicker.datepickerId + '-title'\"\n >\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\" scope=\"col\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th scope=\"col\" [attr.colspan]=\"5\">\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled':\n datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\" scope=\"col\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n aria-hidden=\"true\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n <tr>\n <th\n scope=\"col\"\n *ngFor=\"let label of labels\"\n class=\"sky-datepicker-center sky-datepicker-weekdays\"\n >\n <small [attr.aria-label]=\"label.full\">\n <b>{{ label.abbr }}</b>\n </small>\n </th>\n </tr>\n </thead>\n <tbody>\n <!-- Wait indicator for async custom date stream -->\n <sky-wait [isWaiting]=\"isWaiting\"> </sky-wait>\n <ng-template ngFor [ngForOf]=\"rows\" let-row=\"$implicit\" let-index=\"index\">\n <tr role=\"row\">\n <td\n *ngFor=\"let date of row\"\n class=\"sky-datepicker-center\"\n role=\"gridcell\"\n [id]=\"date.uid\"\n >\n <sky-daypicker-cell\n [activeDateHasChanged]=\"activeDateHasChanged\"\n [date]=\"date\"\n >\n </sky-daypicker-cell>\n </td>\n </tr>\n </ng-template>\n </tbody>\n </table>\n</div>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"] }]
|
209
209
|
}], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }]; }, propDecorators: { customDates: [{
|
@@ -213,4 +213,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.4", ngImpor
|
|
213
213
|
}], isWaiting: [{
|
214
214
|
type: Input
|
215
215
|
}] } });
|
216
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9kYXlwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlcGlja2VyL2RheXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBaUIvQjs7R0FFRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUErQmhDLFlBQW1CLFVBQStDOztRQXJCM0QsNEJBQXVCLEdBQUcsSUFBSSxZQUFZLEVBRTlDLENBQUM7UUFHRyxjQUFTLEdBQXdCLEtBQUssQ0FBQztRQUV2Qyx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsV0FBTSxHQUFVLEVBQUUsQ0FBQztRQUNuQixVQUFLLEdBQUcsRUFBRSxDQUFDO1FBQ1gsU0FBSSxHQUFvQyxFQUFFLENBQUM7UUFDM0MsZ0JBQVcsR0FBYSxFQUFFLENBQUM7UUFJbEMsNkNBQThCO1lBQzVCLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRTtTQUMvQyxFQUFDO1FBQ0YscURBQWlDO1FBQ2pDLCtDQUFpQixJQUFJLE9BQU8sRUFBUSxFQUFDO1FBR25DLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lB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YSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsZUFBZTswSEFNZCxXQUFXO3NCQURyQixLQUFLO2dCQVNDLHVCQUF1QjtzQkFEN0IsTUFBTTtnQkFNQSxTQUFTO3NCQURmLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uRGVzdHJveSxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhckNoYW5nZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1jYWxlbmRhci1jaGFuZ2UnO1xuaW1wb3J0IHsgU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGVwaWNrZXItY2FsZW5kYXItaW5uZXIuY29tcG9uZW50JztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDdXN0b21EYXRlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWN1c3RvbS1kYXRlJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJEYXRlIH0gZnJvbSAnLi9kYXRlcGlja2VyLWRhdGUnO1xuXG4vKipcbiAqIEhlbHBlciBpbnRlcmZhY2UgdG8gY29tcGFyZSBkYXRlIHJhbmdlcy5cbiAqIEBpbnRlcm5hbFxuICovXG5pbnRlcmZhY2UgU2t5RGF0ZVJhbmdlIHtcbiAgZW5kRGF0ZTogRGF0ZTtcblxuICBzdGFydERhdGU6IERhdGU7XG59XG5cbi8qKlxuICogQGludGVybmFsXG4gKi9cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NreS1kYXlwaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJ2RheXBpY2tlci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RheXBpY2tlci5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBTa3lEYXlQaWNrZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3ksIE9uSW5pdCB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZXQgY3VzdG9tRGF0ZXModmFsdWU6IFNreURhdGVwaWNrZXJDdXN0b21EYXRlW10gfCB1bmRlZmluZWQpIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy4jYXBwbHlDdXN0b21EYXRlcyh2YWx1ZSwgdGhpcy5yb3dzKTtcbiAgICB9XG4gIH1cblxuICBAT3V0cHV0KClcbiAgcHVibGljIGNhbGVuZGFyRGF0ZVJhbmdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxcbiAgICBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2UgfCB1bmRlZmluZWRcbiAgPigpO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBpc1dhaXRpbmc6IGJvb2xlYW4gfCB1bmRlZmluZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgYWN0aXZlRGF0ZUhhc0NoYW5nZWQgPSBmYWxzZTtcbiAgcHVibGljIGxhYmVsczogYW55W10gPSBbXTtcbiAgcHVibGljIHRpdGxlID0gJyc7XG4gIHB1YmxpYyByb3dzOiBBcnJheTxBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4+ID0gW107XG4gIHB1YmxpYyB3ZWVrTnVtYmVyczogbnVtYmVyW10gPSBbXTtcbiAgcHVibGljIGRhdGVwaWNrZXI6IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50O1xuICBwdWJsaWMgQ1VSUkVOVF9USEVNRV9URU1QTEFURTogYW55O1xuXG4gICNkYXlzSW5Nb250aDogQXJyYXk8bnVtYmVyPiA9IFtcbiAgICAzMSwgMjgsIDMxLCAzMCwgMzEsIDMwLCAzMSwgMzEsIDMwLCAzMSwgMzAsIDMxLFxuICBdO1xuICAjaW5pdGlhbERhdGU6IG51bWJlciB8IHVuZGVmaW5lZDtcbiAgI25nVW5zdWJzY3JpYmUgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihkYXRlcGlja2VyOiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudCkge1xuICAgIHRoaXMuZGF0ZXBpY2tlciA9IGRhdGVwaWNrZXI7XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5kYXRlcGlja2VyLnN0ZXBEYXkgPSB7IG1vbnRoczogMSB9O1xuICAgIHRoaXMuI2luaXRpYWxEYXRlID0gdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RGF0ZSgpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldFJlZnJlc2hWaWV3SGFuZGxlcigoKSA9PiB7XG4gICAgICB0aGlzLiNyZWZyZXNoRGF5VmlldygpO1xuICAgIH0sICdkYXknKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRDb21wYXJlSGFuZGxlcih0aGlzLiNjb21wYXJlRGF5cywgJ2RheScpO1xuXG4gICAgdGhpcy5kYXRlcGlja2VyLnNldEtleWRvd25IYW5kbGVyKChrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpID0+IHtcbiAgICAgIHRoaXMuI2tleWRvd25EYXlzKGtleSwgZXZlbnQpO1xuICAgIH0sICdkYXknKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5yZWZyZXNoVmlldygpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUubmV4dCgpO1xuICAgIHRoaXMuI25nVW5zdWJzY3JpYmUuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByb3RlY3RlZCBnZXREYXRlcyhzdGFydERhdGU6IERhdGUsIG46IG51bWJlcik6IERhdGVbXSB7XG4gICAgY29uc3QgZGF0ZXM6IERhdGVbXSA9IG5ldyBBcnJheShuKTtcbiAgICBsZXQgY3VycmVudCA9IG5ldyBEYXRlKHN0YXJ0RGF0ZS5nZXRUaW1lKCkpO1xuICAgIGxldCBpID0gMDtcbiAgICBsZXQgZGF0ZTogRGF0ZTtcbiAgICB3aGlsZSAoaSA8IG4pIHtcbiAgICAgIGRhdGUgPSBuZXcgRGF0ZShjdXJyZW50LmdldFRpbWUoKSk7XG4gICAgICBkYXRlID0gdGhpcy5kYXRlcGlja2VyLmZpeFRpbWVab25lKGRhdGUpO1xuICAgICAgZGF0ZXNbaSsrXSA9IGRhdGU7XG4gICAgICBjdXJyZW50ID0gbmV3IERhdGUoXG4gICAgICAgIGN1cnJlbnQuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgY3VycmVudC5nZXRNb250aCgpLFxuICAgICAgICBjdXJyZW50LmdldERhdGUoKSArIDFcbiAgICAgICk7XG4gICAgfVxuICAgIHJldHVybiBkYXRlcztcbiAgfVxuXG4gICNjb21wYXJlRGF5cyhkYXRlMTogRGF0ZSwgZGF0ZTI6IERhdGUpOiBudW1iZXIge1xuICAgIGNvbnN0IGQxID0gbmV3IERhdGUoZGF0ZTEuZ2V0RnVsbFllYXIoKSwgZGF0ZTEuZ2V0TW9udGgoKSwgZGF0ZTEuZ2V0RGF0ZSgpKTtcbiAgICBjb25zdCBkMiA9IG5ldyBEYXRlKGRhdGUyLmdldEZ1bGxZZWFyKCksIGRhdGUyLmdldE1vbnRoKCksIGRhdGUyLmdldERhdGUoKSk7XG4gICAgcmV0dXJuIGQxLmdldFRpbWUoKSAtIGQyLmdldFRpbWUoKTtcbiAgfVxuXG4gICNyZWZyZXNoRGF5VmlldygpIHtcbiAgICBjb25zdCB5ZWFyID0gdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKTtcbiAgICBjb25zdCBtb250aCA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKCk7XG4gICAgY29uc3QgZmlyc3REYXlPZk1vbnRoID0gbmV3IERhdGUoeWVhciwgbW9udGgsIDEpO1xuICAgIGNvbnN0IGRpZmZlcmVuY2UgPSB0aGlzLmRhdGVwaWNrZXIuc3RhcnRpbmdEYXkgLSBmaXJzdERheU9mTW9udGguZ2V0RGF5KCk7XG4gICAgY29uc3QgbnVtRGlzcGxheWVkRnJvbVByZXZpb3VzTW9udGggPVxuICAgICAgZGlmZmVyZW5jZSA+IDAgPyA3IC0gZGlmZmVyZW5jZSA6IC1kaWZmZXJlbmNlO1xuICAgIGNvbnN0IGZpcnN0RGF0ZSA9IG5ldyBEYXRlKGZpcnN0RGF5T2ZNb250aC5nZXRUaW1lKCkpO1xuXG4gICAgaWYgKHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKSAhPT0gdGhpcy4jaW5pdGlhbERhdGUpIHtcbiAgICAgIHRoaXMuYWN0aXZlRGF0ZUhhc0NoYW5nZWQgPSB0cnVlO1xuICAgIH1cblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKG51bURpc3BsYXllZEZyb21QcmV2aW91c01vbnRoID4gMCkge1xuICAgICAgZmlyc3REYXRlLnNldERhdGUoLW51bURpc3BsYXllZEZyb21QcmV2aW91c01vbnRoICsgMSk7XG4gICAgfVxuXG4gICAgLy8gNDIgaXMgdGhlIG51bWJlciBvZiBkYXlzIG9uIGEgc2l4LXdlZWsgY2FsZW5kYXJcbiAgICBjb25zdCBkYXlzOiBEYXRlW10gPSB0aGlzLmdldERhdGVzKGZpcnN0RGF0ZSwgNDIpO1xuICAgIGNvbnN0IHBpY2tlckRhdGVzOiBBcnJheTxTa3lEYXRlcGlja2VyRGF0ZT4gPSBbXTtcbiAgICBmb3IgKGxldCBpID0gMDsgaSA8IDQyOyBpKyspIHtcbiAgICAgIGNvbnN0IF9kYXRlT2JqZWN0ID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZURhdGVPYmplY3QoXG4gICAgICAgIGRheXNbaV0sXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5mb3JtYXREYXksXG4gICAgICAgIGRheXNbaV0uZ2V0TW9udGgoKSAhPT0gbW9udGgsXG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLScgKyBpXG4gICAgICApO1xuICAgICAgcGlja2VyRGF0ZXNbaV0gPSBfZGF0ZU9iamVjdDtcbiAgICB9XG5cbiAgICB0aGlzLmxhYmVscyA9IFtdO1xuICAgIGZvciAobGV0IGogPSAwOyBqIDwgNzsgaisrKSB7XG4gICAgICB0aGlzLmxhYmVsc1tqXSA9IHt9O1xuICAgICAgdGhpcy5sYWJlbHNbal0uYWJiciA9IHRoaXMuZGF0ZXBpY2tlci5kYXRlRmlsdGVyKFxuICAgICAgICBwaWNrZXJEYXRlc1tqXS5kYXRlLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0RGF5SGVhZGVyXG4gICAgICApO1xuICAgICAgdGhpcy5sYWJlbHNbal0uZnVsbCA9IHRoaXMuZGF0ZXBpY2tlci5kYXRlRmlsdGVyKFxuICAgICAgICBwaWNrZXJEYXRlc1tqXS5kYXRlLFxuICAgICAgICAnRUVFRSdcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy50aXRsZSA9IHRoaXMuZGF0ZXBpY2tlci5kYXRlRmlsdGVyKFxuICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUsXG4gICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0RGF5VGl0bGVcbiAgICApO1xuXG4gICAgY29uc3Qgb2xkRGF0ZVJhbmdlID0gdGhpcy4jZ2V0RGF0ZVJhbmdlKHRoaXMucm93cyk7XG4gICAgdGhpcy5yb3dzID0gdGhpcy5kYXRlcGlja2VyLmNyZWF0ZUNhbGVuZGFyUm93cyhwaWNrZXJEYXRlcywgNyk7XG4gICAgY29uc3QgbmV3RGF0ZVJhbmdlID0gdGhpcy4jZ2V0RGF0ZVJhbmdlKHRoaXMucm93cyk7XG5cbiAgICBpZiAoIXRoaXMuI2RhdGVSYW5nZVJvd3NBcmVFcXVhbChvbGREYXRlUmFuZ2UsIG5ld0RhdGVSYW5nZSkpIHtcbiAgICAgIC8vIFNhZmV0eSBjaGVja1xuICAgICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICAgIGlmIChuZXdEYXRlUmFuZ2UpIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRhdGVSYW5nZUNoYW5nZS5uZXh0KHtcbiAgICAgICAgICBzdGFydERhdGU6IG5ld0RhdGVSYW5nZS5zdGFydERhdGUsXG4gICAgICAgICAgZW5kRGF0ZTogbmV3RGF0ZVJhbmdlLmVuZERhdGUsXG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5jYWxlbmRhckRhdGVSYW5nZUNoYW5nZS5uZXh0KHVuZGVmaW5lZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgI2tleWRvd25EYXlzKGtleTogc3RyaW5nLCBldmVudDogS2V5Ym9hcmRFdmVudCkge1xuICAgIGxldCBkYXRlID0gdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RGF0ZSgpO1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgLyogc2FuaXR5IGNoZWNrICovXG4gICAgaWYgKGtleSA9PT0gJ2xlZnQnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIDE7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICd1cCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlIC0gNztcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3JpZ2h0Jykge1xuICAgICAgZGF0ZSA9IGRhdGUgKyAxO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZG93bicpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgNztcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ3BhZ2V1cCcgfHwga2V5ID09PSAncGFnZWRvd24nKSB7XG4gICAgICBjb25zdCBtb250aCA9XG4gICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKCkgKyAoa2V5ID09PSAncGFnZXVwJyA/IC0xIDogMSk7XG4gICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXRNb250aChtb250aCwgMSk7XG4gICAgICBkYXRlID0gTWF0aC5taW4oXG4gICAgICAgIHRoaXMuI2dldERheXNJbk1vbnRoKFxuICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCksXG4gICAgICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKVxuICAgICAgICApLFxuICAgICAgICBkYXRlXG4gICAgICApO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnaG9tZScpIHtcbiAgICAgIGRhdGUgPSAxO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAnZW5kJykge1xuICAgICAgZGF0ZSA9IHRoaXMuI2dldERheXNJbk1vbnRoKFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRNb250aCgpXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5zZXREYXRlKGRhdGUpO1xuICB9XG5cbiAgI2dldERheXNJbk1vbnRoKHllYXI6IG51bWJlciwgbW9udGg6IG51bWJlcikge1xuICAgIHJldHVybiBtb250aCA9PT0gMSAmJlxuICAgICAgeWVhciAlIDQgPT09IDAgJiZcbiAgICAgICh5ZWFyICUgNDAwID09PSAwIHx8IHllYXIgJSAxMDAgIT09IDApXG4gICAgICA/IDI5XG4gICAgICA6IHRoaXMuI2RheXNJbk1vbnRoW21vbnRoXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBcHBsaWVzIGN1c3RvbSBkYXRlIHByb3BlcnRpZXMgdG8gdGhlIGV4aXN0aW5nIGRhdGVzIGRpc3BsYXllZCBpbiB0aGUgY2FsZW5kYXIuXG4gICAqL1xuICAjYXBwbHlDdXN0b21EYXRlcyhcbiAgICBjdXN0b21EYXRlczogU2t5RGF0ZXBpY2tlckN1c3RvbURhdGVbXSxcbiAgICBkYXRlUm93czogU2t5RGF0ZXBpY2tlckRhdGVbXVtdXG4gICk6IHZvaWQge1xuICAgIGxldCBkYXRlOiBTa3lEYXRlcGlja2VyRGF0ZTtcbiAgICBsZXQgbmV3RGF0ZTogU2t5RGF0ZXBpY2tlckRhdGU7XG4gICAgbGV0IGRhdGVJbmRleDogbnVtYmVyO1xuXG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAoY3VzdG9tRGF0ZXMgJiYgZGF0ZVJvd3MpIHtcbiAgICAgIGN1c3RvbURhdGVzLmZvckVhY2goKGN1c3RvbURhdGUpID0+IHtcbiAgICAgICAgZGF0ZUluZGV4ID0gLTE7XG4gICAgICAgIGRhdGVSb3dzLmZvckVhY2goKHJvdykgPT4ge1xuICAgICAgICAgIGlmIChkYXRlSW5kZXggPT09IC0xKSB7XG4gICAgICAgICAgICBkYXRlSW5kZXggPSByb3cuZmluZEluZGV4KChkKSA9PiB7XG4gICAgICAgICAgICAgIHJldHVybiBkLmRhdGUuZ2V0VGltZSgpID09PSBjdXN0b21EYXRlLmRhdGUuZ2V0VGltZSgpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICBpZiAoZGF0ZUluZGV4ID4gLTEpIHtcbiAgICAgICAgICAgICAgZGF0ZSA9IHJvd1tkYXRlSW5kZXhdO1xuICAgICAgICAgICAgICAvLyBSZXBsYWNlIHRoZSBkYXRlIHdpdGggYSBuZXcgaW5zdGFuY2Ugc28gdGhlIGRpc3BsYXkgZ2V0cyB1cGRhdGVkLlxuICAgICAgICAgICAgICBuZXdEYXRlID0ge1xuICAgICAgICAgICAgICAgIGN1cnJlbnQ6IGRhdGUuY3VycmVudCxcbiAgICAgICAgICAgICAgICBkYXRlOiBkYXRlLmRhdGUsXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQ6ICEhZGF0ZS5kaXNhYmxlZCB8fCAhIWN1c3RvbURhdGUuZGlzYWJsZWQsXG4gICAgICAgICAgICAgICAga2V5RGF0ZTogISFjdXN0b21EYXRlLmtleURhdGUgfHwgISFkYXRlLmtleURhdGUsXG4gICAgICAgICAgICAgICAga2V5RGF0ZVRleHQ6IGN1c3RvbURhdGUua2V5RGF0ZVRleHQgfHwgZGF0ZS5rZXlEYXRlVGV4dCxcbiAgICAgICAgICAgICAgICBsYWJlbDogZGF0ZS5sYWJlbCxcbiAgICAgICAgICAgICAgICBzZWNvbmRhcnk6IGRhdGUuc2Vjb25kYXJ5LFxuICAgICAgICAgICAgICAgIHNlbGVjdGVkOiBkYXRlLnNlbGVjdGVkLFxuICAgICAgICAgICAgICAgIHVpZDogZGF0ZS51aWQsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIHJvd1tkYXRlSW5kZXhdID0gbmV3RGF0ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgI2RhdGVSYW5nZVJvd3NBcmVFcXVhbChcbiAgICByYW5nZUE/OiBTa3lEYXRlUmFuZ2UsXG4gICAgcmFuZ2VCPzogU2t5RGF0ZVJhbmdlXG4gICk6IGJvb2xlYW4gfCB1bmRlZmluZWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBpZiAqL1xuICAgIGlmICghcmFuZ2VBICYmICFyYW5nZUIpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSBpZiAocmFuZ2VBICYmIHJhbmdlQikge1xuICAgICAgcmV0dXJuIChcbiAgICAgICAgdGhpcy4jY29tcGFyZURheXMocmFuZ2VBLnN0YXJ0RGF0ZSwgcmFuZ2VCLnN0YXJ0RGF0ZSkgPT09IDAgJiZcbiAgICAgICAgdGhpcy4jY29tcGFyZURheXMocmFuZ2VBLmVuZERhdGUsIHJhbmdlQi5lbmREYXRlKSA9PT0gMFxuICAgICAgKTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gICNnZXREYXRlUmFuZ2UoXG4gICAgcm93czogQXJyYXk8QXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+PlxuICApOiBTa3lEYXRlUmFuZ2UgfCB1bmRlZmluZWQge1xuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKHJvd3MgJiYgcm93cy5sZW5ndGggPiAwKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBzdGFydERhdGU6IHJvd3NbMF1bMF0uZGF0ZSxcbiAgICAgICAgZW5kRGF0ZTogcm93c1tyb3dzLmxlbmd0aCAtIDFdW3Jvd3Nbcm93cy5sZW5ndGggLSAxXS5sZW5ndGggLSAxXS5kYXRlLFxuICAgICAgfTtcbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgfVxufVxuIiwiPGRpdiAqbmdJZj1cImRhdGVwaWNrZXIuZGF0ZXBpY2tlck1vZGUgPT09ICdkYXknXCIgY2xhc3M9XCJza3ktZGF5cGlja2VyLXdyYXBwZXJcIj5cbiAgPHRhYmxlXG4gICAgY2xhc3M9XCJza3ktZGF5cGlja2VyLXRhYmxlXCJcbiAgICByb2xlPVwiZ3JpZFwiXG4gICAgW2F0dHIuYXJpYS1sYWJlbGxlZGJ5XT1cImRhdGVwaWNrZXIuZGF0ZXBpY2tlcklkICsgJy10aXRsZSdcIlxuICA+XG4gICAgPHRoZWFkPlxuICAgICAgPHRyPlxuICAgICAgICA8dGggY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1oZWFkZXItbGVmdFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4tc20gc2t5LWRhdGVwaWNrZXItYnRuLXByZXZpb3VzXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLm1vdmVDYWxlbmRhcigkZXZlbnQsIC0xKVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2hldnJvbi1kZWZhdWx0XCJcbiAgICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tbGVmdFwiXG4gICAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNoZXZyb24tbW9kZXJuXCJcbiAgICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tbGVmdFwiXG4gICAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBzY29wZT1cImNvbFwiIFthdHRyLmNvbHNwYW5dPVwiNVwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFtpZF09XCJkYXRlcGlja2VyLmRhdGVwaWNrZXJJZCArICctdGl0bGUnXCJcbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLXNtIHNreS1kYXRlcGlja2VyLWNhbGVuZGFyLXRpdGxlXCJcbiAgICAgICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLnRvZ2dsZU1vZGVDYWxlbmRhcigkZXZlbnQpXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkYXRlcGlja2VyLmRhdGVwaWNrZXJNb2RlID09PSBkYXRlcGlja2VyLm1heE1vZGVcIlxuICAgICAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgICAgICAnc2t5LWJ0bi1kaXNhYmxlZCc6XG4gICAgICAgICAgICAgICAgZGF0ZXBpY2tlci5kYXRlcGlja2VyTW9kZSA9PT0gZGF0ZXBpY2tlci5tYXhNb2RlXG4gICAgICAgICAgICB9XCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3Ryb25nPnt7IHRpdGxlIH19PC9zdHJvbmc+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGg+XG4gICAgICAgIDx0aCBjbGFzcz1cInNreS1kYXRlcGlja2VyLWhlYWRlci1yaWdodFwiIHNjb3BlPVwiY29sXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInNreS1idG4gc2t5LWJ0bi1kZWZhdWx0IHNreS1idG4tc20gc2t5LWRhdGVwaWNrZXItYnRuLW5leHRcIlxuICAgICAgICAgICAgKGNsaWNrKT1cImRhdGVwaWNrZXIubW92ZUNhbGVuZGFyKCRldmVudCwgMSlcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNoZXZyb24tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIGljb249XCJjaGV2cm9uLXJpZ2h0XCJcbiAgICAgICAgICAgID48L3NreS1pY29uPlxuICAgICAgICAgICAgPHNreS1pY29uXG4gICAgICAgICAgICAgIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2hldnJvbi1tb2Rlcm5cIlxuICAgICAgICAgICAgICBpY29uPVwiY2hldnJvbi1yaWdodFwiXG4gICAgICAgICAgICAgIGljb25UeXBlPVwic2t5dXhcIlxuICAgICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgICAgPHRyPlxuICAgICAgICA8dGhcbiAgICAgICAgICBzY29wZT1cImNvbFwiXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGxhYmVsIG9mIGxhYmVsc1wiXG4gICAgICAgICAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jZW50ZXIgc2t5LWRhdGVwaWNrZXItd2Vla2RheXNcIlxuICAgICAgICA+XG4gICAgICAgICAgPHNtYWxsIFthdHRyLmFyaWEtbGFiZWxdPVwibGFiZWwuZnVsbFwiPlxuICAgICAgICAgICAgPGI+e3sgbGFiZWwuYWJiciB9fTwvYj5cbiAgICAgICAgICA8L3NtYWxsPlxuICAgICAgICA8L3RoPlxuICAgICAgPC90cj5cbiAgICA8L3RoZWFkPlxuICAgIDx0Ym9keT5cbiAgICAgIDwhLS0gV2FpdCBpbmRpY2F0b3IgZm9yIGFzeW5jIGN1c3RvbSBkYXRlIHN0cmVhbSAtLT5cbiAgICAgIDxza3ktd2FpdCBbaXNXYWl0aW5nXT1cImlzV2FpdGluZ1wiPiA8L3NreS13YWl0PlxuICAgICAgPG5nLXRlbXBsYXRlIG5nRm9yIFtuZ0Zvck9mXT1cInJvd3NcIiBsZXQtcm93PVwiJGltcGxpY2l0XCIgbGV0LWluZGV4PVwiaW5kZXhcIj5cbiAgICAgICAgPHRyIHJvbGU9XCJyb3dcIj5cbiAgICAgICAgICA8dGRcbiAgICAgICAgICAgICpuZ0Zvcj1cImxldCBkYXRlIG9mIHJvd1wiXG4gICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNlbnRlclwiXG4gICAgICAgICAgICByb2xlPVwiZ3JpZGNlbGxcIlxuICAgICAgICAgICAgW2lkXT1cImRhdGUudWlkXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2t5LWRheXBpY2tlci1jZWxsXG4gICAgICAgICAgICAgIFthY3RpdmVEYXRlSGFzQ2hhbmdlZF09XCJhY3RpdmVEYXRlSGFzQ2hhbmdlZFwiXG4gICAgICAgICAgICAgIFtkYXRlXT1cImRhdGVcIlxuICAgICAgICAgICAgPlxuICAgICAgICAgICAgPC9za3ktZGF5cGlja2VyLWNlbGw+XG4gICAgICAgICAgPC90ZD5cbiAgICAgICAgPC90cj5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgPC90Ym9keT5cbiAgPC90YWJsZT5cbjwvZGl2PlxuIl19
|
216
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF5cGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvZGF0ZXBpY2tlci9kYXlwaWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy9kYXRlcGlja2VyL2RheXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBQ1AsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7O0FBaUIvQjs7R0FFRztBQU1ILE1BQU0sT0FBTyxxQkFBcUI7SUFDaEMsSUFDVyxXQUFXLENBQUMsS0FBNEM7UUFDakUsMEJBQTBCO1FBQzFCLElBQUksS0FBSyxFQUFFO1lBQ1QsdUJBQUEsSUFBSSxpRkFBa0IsTUFBdEIsSUFBSSxFQUFtQixLQUFLLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQXdCRCxZQUFtQixVQUErQzs7UUFyQjNELDRCQUF1QixHQUFHLElBQUksWUFBWSxFQUU5QyxDQUFDO1FBR0csY0FBUyxHQUF3QixLQUFLLENBQUM7UUFFdkMseUJBQW9CLEdBQUcsS0FBSyxDQUFDO1FBQzdCLFdBQU0sR0FBVSxFQUFFLENBQUM7UUFDbkIsVUFBSyxHQUFHLEVBQUUsQ0FBQztRQUNYLFNBQUksR0FBb0MsRUFBRSxDQUFDO1FBQzNDLGdCQUFXLEdBQWEsRUFBRSxDQUFDO1FBSWxDLDZDQUE4QjtZQUM1QixFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUU7U0FDL0MsRUFBQztRQUNGLHFEQUFpQztRQUNqQywrQ0FBaUIsSUFBSSxPQUFPLEVBQVEsRUFBQztRQUduQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRU0sUUFBUTtRQUNiLElBQUksQ0FBQyxVQUFVLENBQUMsT0FBTyxHQUFHLEVBQUUsTUFBTSxFQUFFLENBQUMsRUFBRSxDQUFDO1FBQ3hDLHVCQUFBLElBQUksc0NBQWdCLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE9BQU8sRUFBRSxNQUFBLENBQUM7UUFFekQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxxQkFBcUIsQ0FBQyxHQUFHLEVBQUU7WUFDekMsdUJBQUEsSUFBSSwrRUFBZ0IsTUFBcEIsSUFBSSxDQUFrQixDQUFDO1FBQ3pCLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUVWLElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsdUJBQUEsSUFBSSw0RUFBYSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRTVELElBQUksQ0FBQyxVQUFVLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxHQUFXLEVBQUUsS0FBb0IsRUFBRSxFQUFFO1lBQ3RFLHVCQUFBLElBQUksNEVBQWEsTUFBakIsSUFBSSxFQUFjLEdBQUcsRUFBRSxLQUFLLENBQUMsQ0FBQztRQUNoQyxDQUFDLEVBQUUsS0FBSyxDQUFDLENBQUM7UUFFVixJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFTSxXQUFXO1FBQ2hCLHVCQUFBLElBQUksNENBQWUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUMzQix1QkFBQSxJQUFJLDRDQUFlLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakMsQ0FBQztJQUVTLFFBQVEsQ0FBQyxTQUFlLEVBQUUsQ0FBUztRQUMzQyxNQUFNLEtBQUssR0FBVyxJQUFJLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztRQUM1QyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDVixJQUFJLElBQVUsQ0FBQztRQUNmLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNaLElBQUksR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztZQUNuQyxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDO1lBQ2xCLE9BQU8sR0FBRyxJQUFJLElBQUksQ0FDaEIsT0FBTyxDQUFDLFdBQVcsRUFBRSxFQUNyQixPQUFPLENBQUMsUUFBUSxFQUFFLEVBQ2xCLE9BQU8sQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDLENBQ3RCLENBQUM7U0FDSDtRQUNELE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQzs7aVNBRVksS0FBVyxFQUFFLEtBQVc7SUFDbkMsTUFBTSxFQUFFLEdBQUcsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRSxFQUFFLEtBQUssQ0FBQyxRQUFRLEVBQUUsRUFBRSxLQUFLLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM1RSxNQUFNLEVBQUUsR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLEVBQUUsS0FBSyxDQUFDLFFBQVEsRUFBRSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzVFLE9BQU8sRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQztBQUNyQyxDQUFDO0lBR0MsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDdEQsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDcEQsTUFBTSxlQUFlLEdBQUcsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNqRCxNQUFNLFVBQVUsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFdBQVcsR0FBRyxlQUFlLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDMUUsTUFBTSw2QkFBNkIsR0FDakMsVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxVQUFVLENBQUM7SUFDaEQsTUFBTSxTQUFTLEdBQUcsSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFdEQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxPQUFPLEVBQUUsS0FBSyx1QkFBQSxJQUFJLDBDQUFhLEVBQUU7UUFDOUQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztLQUNsQztJQUVELDBCQUEwQjtJQUMxQixrQkFBa0I7SUFDbEIsSUFBSSw2QkFBNkIsR0FBRyxDQUFDLEVBQUU7UUFDckMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLDZCQUE2QixHQUFHLENBQUMsQ0FBQyxDQUFDO0tBQ3ZEO0lBRUQsa0RBQWtEO0lBQ2xELE1BQU0sSUFBSSxHQUFXLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELE1BQU0sV0FBVyxHQUE2QixFQUFFLENBQUM7SUFDakQsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMzQixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLGdCQUFnQixDQUNsRCxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQ1AsSUFBSSxDQUFDLFVBQVUsQ0FBQyxTQUFTLEVBQ3pCLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxLQUFLLEVBQzVCLElBQUksQ0FBQyxVQUFVLENBQUMsWUFBWSxHQUFHLEdBQUcsR0FBRyxDQUFDLENBQ3ZDLENBQUM7UUFDRixXQUFXLENBQUMsQ0FBQyxDQUFDLEdBQUcsV0FBVyxDQUFDO0tBQzlCO0lBRUQsSUFBSSxDQUFDLE1BQU0sR0FBRyxFQUFFLENBQUM7SUFDakIsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEVBQUUsRUFBRTtRQUMxQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FDOUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDbkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxlQUFlLENBQ2hDLENBQUM7UUFDRixJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FDOUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksRUFDbkIsTUFBTSxDQUNQLENBQUM7S0FDSDtJQUVELElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQ3JDLElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxFQUMxQixJQUFJLENBQUMsVUFBVSxDQUFDLGNBQWMsQ0FDL0IsQ0FBQztJQUVGLE1BQU0sWUFBWSxHQUFHLHVCQUFBLElBQUksNkVBQWMsTUFBbEIsSUFBSSxFQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQy9ELE1BQU0sWUFBWSxHQUFHLHVCQUFBLElBQUksNkVBQWMsTUFBbEIsSUFBSSxFQUFlLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVuRCxJQUFJLENBQUMsdUJBQUEsSUFBSSxzRkFBdUIsTUFBM0IsSUFBSSxFQUF3QixZQUFZLEVBQUUsWUFBWSxDQUFDLEVBQUU7UUFDNUQsZUFBZTtRQUNmLDBCQUEwQjtRQUMxQixJQUFJLFlBQVksRUFBRTtZQUNoQixJQUFJLENBQUMsdUJBQXVCLENBQUMsSUFBSSxDQUFDO2dCQUNoQyxTQUFTLEVBQUUsWUFBWSxDQUFDLFNBQVM7Z0JBQ2pDLE9BQU8sRUFBRSxZQUFZLENBQUMsT0FBTzthQUM5QixDQUFDLENBQUM7U0FDSjthQUFNO1lBQ0wsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM5QztLQUNGO0FBQ0gsQ0FBQyxtRkFFWSxHQUFXLEVBQUUsS0FBb0I7SUFDNUMsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDaEQsMEJBQTBCO0lBQzFCLGtCQUFrQjtJQUNsQixJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7UUFDbEIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7S0FDakI7U0FBTSxJQUFJLEdBQUcsS0FBSyxJQUFJLEVBQUU7UUFDdkIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7S0FDakI7U0FBTSxJQUFJLEdBQUcsS0FBSyxPQUFPLEVBQUU7UUFDMUIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7S0FDakI7U0FBTSxJQUFJLEdBQUcsS0FBSyxNQUFNLEVBQUU7UUFDekIsSUFBSSxHQUFHLElBQUksR0FBRyxDQUFDLENBQUM7S0FDakI7U0FBTSxJQUFJLEdBQUcsS0FBSyxRQUFRLElBQUksR0FBRyxLQUFLLFVBQVUsRUFBRTtRQUNqRCxNQUFNLEtBQUssR0FDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLEdBQUcsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0RSxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQzlDLElBQUksR0FBRyxJQUFJLENBQUMsR0FBRyxDQUNiLHVCQUFBLElBQUksK0VBQWdCLE1BQXBCLElBQUksRUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQ3RDLEVBQ0QsSUFBSSxDQUNMLENBQUM7S0FDSDtTQUFNLElBQUksR0FBRyxLQUFLLE1BQU0sRUFBRTtRQUN6QixJQUFJLEdBQUcsQ0FBQyxDQUFDO0tBQ1Y7U0FBTSxJQUFJLEdBQUcsS0FBSyxLQUFLLEVBQUU7UUFDeEIsSUFBSSxHQUFHLHVCQUFBLElBQUksK0VBQWdCLE1BQXBCLElBQUksRUFDVCxJQUFJLENBQUMsVUFBVSxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUUsRUFDeEMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLENBQ3RDLENBQUM7S0FDSDtJQUNELElBQUksQ0FBQyxVQUFVLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztBQUMzQyxDQUFDLHlGQUVlLElBQVksRUFBRSxLQUFhO0lBQ3pDLE9BQU8sS0FBSyxLQUFLLENBQUM7UUFDaEIsSUFBSSxHQUFHLENBQUMsS0FBSyxDQUFDO1FBQ2QsQ0FBQyxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsSUFBSSxJQUFJLEdBQUcsR0FBRyxLQUFLLENBQUMsQ0FBQztRQUN0QyxDQUFDLENBQUMsRUFBRTtRQUNKLENBQUMsQ0FBQyx1QkFBQSxJQUFJLDBDQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDL0IsQ0FBQyw2RkFNQyxXQUFzQyxFQUN0QyxRQUErQjtJQUUvQixJQUFJLElBQXVCLENBQUM7SUFDNUIsSUFBSSxPQUEwQixDQUFDO0lBQy9CLElBQUksU0FBaUIsQ0FBQztJQUV0QiwwQkFBMEI7SUFDMUIsSUFBSSxXQUFXLElBQUksUUFBUSxFQUFFO1FBQzNCLFdBQVcsQ0FBQyxPQUFPLENBQUMsQ0FBQyxVQUFVLEVBQUUsRUFBRTtZQUNqQyxTQUFTLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDZixRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7Z0JBQ3ZCLElBQUksU0FBUyxLQUFLLENBQUMsQ0FBQyxFQUFFO29CQUNwQixTQUFTLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO3dCQUM5QixPQUFPLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEtBQUssVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztvQkFDeEQsQ0FBQyxDQUFDLENBQUM7b0JBQ0gsSUFBSSxTQUFTLEdBQUcsQ0FBQyxDQUFDLEVBQUU7d0JBQ2xCLElBQUksR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLENBQUM7d0JBQ3RCLG9FQUFvRTt3QkFDcEUsT0FBTyxHQUFHOzRCQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTzs0QkFDckIsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJOzRCQUNmLFFBQVEsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVE7NEJBQ2xELE9BQU8sRUFBRSxDQUFDLENBQUMsVUFBVSxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU87NEJBQy9DLFdBQVcsRUFBRSxVQUFVLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxXQUFXOzRCQUN2RCxLQUFLLEVBQUUsSUFBSSxDQUFDLEtBQUs7NEJBQ2pCLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzs0QkFDekIsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFROzRCQUN2QixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7eUJBQ2QsQ0FBQzt3QkFDRixHQUFHLENBQUMsU0FBUyxDQUFDLEdBQUcsT0FBTyxDQUFDO3FCQUMxQjtpQkFDRjtZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQyxDQUFDLENBQUM7S0FDSjtBQUNILENBQUMsdUdBR0MsTUFBcUIsRUFDckIsTUFBcUI7SUFFckIsd0JBQXdCO0lBQ3hCLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxNQUFNLEVBQUU7UUFDdEIsT0FBTyxJQUFJLENBQUM7S0FDYjtTQUFNLElBQUksTUFBTSxJQUFJLE1BQU0sRUFBRTtRQUMzQixPQUFPLENBQ0wsdUJBQUEsSUFBSSw0RUFBYSxNQUFqQixJQUFJLEVBQWMsTUFBTSxDQUFDLFNBQVMsRUFBRSxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUMzRCx1QkFBQSxJQUFJLDRFQUFhLE1BQWpCLElBQUksRUFBYyxNQUFNLENBQUMsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQ3hELENBQUM7S0FDSDtTQUFNO1FBQ0wsT0FBTyxLQUFLLENBQUM7S0FDZDtBQUNILENBQUMscUZBR0MsSUFBcUM7SUFFckMsMEJBQTBCO0lBQzFCLElBQUksSUFBSSxJQUFJLElBQUksQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1FBQzNCLE9BQU87WUFDTCxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUk7WUFDMUIsT0FBTyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJO1NBQ3RFLENBQUM7S0FDSDtJQUNELE9BQU8sU0FBUyxDQUFDO0FBQ25CLENBQUM7a0hBclFVLHFCQUFxQjtzR0FBckIscUJBQXFCLHNMQ2xDbEMsMnZHQWtHQTsyRkRoRWEscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGVBQWU7MEhBTWQsV0FBVztzQkFEckIsS0FBSztnQkFTQyx1QkFBdUI7c0JBRDdCLE1BQU07Z0JBTUEsU0FBUztzQkFEZixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkRlc3Ryb3ksXG4gIE9uSW5pdCxcbiAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuXG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ2FsZW5kYXJDaGFuZ2UgfSBmcm9tICcuL2RhdGVwaWNrZXItY2FsZW5kYXItY2hhbmdlJztcbmltcG9ydCB7IFNreURhdGVwaWNrZXJDYWxlbmRhcklubmVyQ29tcG9uZW50IH0gZnJvbSAnLi9kYXRlcGlja2VyLWNhbGVuZGFyLWlubmVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1jdXN0b20tZGF0ZSc7XG5pbXBvcnQgeyBTa3lEYXRlcGlja2VyRGF0ZSB9IGZyb20gJy4vZGF0ZXBpY2tlci1kYXRlJztcblxuLyoqXG4gKiBIZWxwZXIgaW50ZXJmYWNlIHRvIGNvbXBhcmUgZGF0ZSByYW5nZXMuXG4gKiBAaW50ZXJuYWxcbiAqL1xuaW50ZXJmYWNlIFNreURhdGVSYW5nZSB7XG4gIGVuZERhdGU6IERhdGU7XG5cbiAgc3RhcnREYXRlOiBEYXRlO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbFxuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdza3ktZGF5cGlja2VyJyxcbiAgdGVtcGxhdGVVcmw6ICdkYXlwaWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXlwaWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2t5RGF5UGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95LCBPbkluaXQge1xuICBASW5wdXQoKVxuICBwdWJsaWMgc2V0IGN1c3RvbURhdGVzKHZhbHVlOiBTa3lEYXRlcGlja2VyQ3VzdG9tRGF0ZVtdIHwgdW5kZWZpbmVkKSB7XG4gICAgLyogaXN0YW5idWwgaWdub3JlIGVsc2UgKi9cbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHRoaXMuI2FwcGx5Q3VzdG9tRGF0ZXModmFsdWUsIHRoaXMucm93cyk7XG4gICAgfVxuICB9XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBjYWxlbmRhckRhdGVSYW5nZUNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8XG4gICAgU2t5RGF0ZXBpY2tlckNhbGVuZGFyQ2hhbmdlIHwgdW5kZWZpbmVkXG4gID4oKTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgaXNXYWl0aW5nOiBib29sZWFuIHwgdW5kZWZpbmVkID0gZmFsc2U7XG5cbiAgcHVibGljIGFjdGl2ZURhdGVIYXNDaGFuZ2VkID0gZmFsc2U7XG4gIHB1YmxpYyBsYWJlbHM6IGFueVtdID0gW107XG4gIHB1YmxpYyB0aXRsZSA9ICcnO1xuICBwdWJsaWMgcm93czogQXJyYXk8QXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+PiA9IFtdO1xuICBwdWJsaWMgd2Vla051bWJlcnM6IG51bWJlcltdID0gW107XG4gIHB1YmxpYyBkYXRlcGlja2VyOiBTa3lEYXRlcGlja2VyQ2FsZW5kYXJJbm5lckNvbXBvbmVudDtcbiAgcHVibGljIENVUlJFTlRfVEhFTUVfVEVNUExBVEU6IGFueTtcblxuICAjZGF5c0luTW9udGg6IEFycmF5PG51bWJlcj4gPSBbXG4gICAgMzEsIDI4LCAzMSwgMzAsIDMxLCAzMCwgMzEsIDMxLCAzMCwgMzEsIDMwLCAzMSxcbiAgXTtcbiAgI2luaXRpYWxEYXRlOiBudW1iZXIgfCB1bmRlZmluZWQ7XG4gICNuZ1Vuc3Vic2NyaWJlID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoZGF0ZXBpY2tlcjogU2t5RGF0ZXBpY2tlckNhbGVuZGFySW5uZXJDb21wb25lbnQpIHtcbiAgICB0aGlzLmRhdGVwaWNrZXIgPSBkYXRlcGlja2VyO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZGF0ZXBpY2tlci5zdGVwRGF5ID0geyBtb250aHM6IDEgfTtcbiAgICB0aGlzLiNpbml0aWFsRGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRSZWZyZXNoVmlld0hhbmRsZXIoKCkgPT4ge1xuICAgICAgdGhpcy4jcmVmcmVzaERheVZpZXcoKTtcbiAgICB9LCAnZGF5Jyk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIuc2V0Q29tcGFyZUhhbmRsZXIodGhpcy4jY29tcGFyZURheXMsICdkYXknKTtcblxuICAgIHRoaXMuZGF0ZXBpY2tlci5zZXRLZXlkb3duSGFuZGxlcigoa2V5OiBzdHJpbmcsIGV2ZW50OiBLZXlib2FyZEV2ZW50KSA9PiB7XG4gICAgICB0aGlzLiNrZXlkb3duRGF5cyhrZXksIGV2ZW50KTtcbiAgICB9LCAnZGF5Jyk7XG5cbiAgICB0aGlzLmRhdGVwaWNrZXIucmVmcmVzaFZpZXcoKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLm5leHQoKTtcbiAgICB0aGlzLiNuZ1Vuc3Vic2NyaWJlLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwcm90ZWN0ZWQgZ2V0RGF0ZXMoc3RhcnREYXRlOiBEYXRlLCBuOiBudW1iZXIpOiBEYXRlW10ge1xuICAgIGNvbnN0IGRhdGVzOiBEYXRlW10gPSBuZXcgQXJyYXkobik7XG4gICAgbGV0IGN1cnJlbnQgPSBuZXcgRGF0ZShzdGFydERhdGUuZ2V0VGltZSgpKTtcbiAgICBsZXQgaSA9IDA7XG4gICAgbGV0IGRhdGU6IERhdGU7XG4gICAgd2hpbGUgKGkgPCBuKSB7XG4gICAgICBkYXRlID0gbmV3IERhdGUoY3VycmVudC5nZXRUaW1lKCkpO1xuICAgICAgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5maXhUaW1lWm9uZShkYXRlKTtcbiAgICAgIGRhdGVzW2krK10gPSBkYXRlO1xuICAgICAgY3VycmVudCA9IG5ldyBEYXRlKFxuICAgICAgICBjdXJyZW50LmdldEZ1bGxZZWFyKCksXG4gICAgICAgIGN1cnJlbnQuZ2V0TW9udGgoKSxcbiAgICAgICAgY3VycmVudC5nZXREYXRlKCkgKyAxXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZGF0ZXM7XG4gIH1cblxuICAjY29tcGFyZURheXMoZGF0ZTE6IERhdGUsIGRhdGUyOiBEYXRlKTogbnVtYmVyIHtcbiAgICBjb25zdCBkMSA9IG5ldyBEYXRlKGRhdGUxLmdldEZ1bGxZZWFyKCksIGRhdGUxLmdldE1vbnRoKCksIGRhdGUxLmdldERhdGUoKSk7XG4gICAgY29uc3QgZDIgPSBuZXcgRGF0ZShkYXRlMi5nZXRGdWxsWWVhcigpLCBkYXRlMi5nZXRNb250aCgpLCBkYXRlMi5nZXREYXRlKCkpO1xuICAgIHJldHVybiBkMS5nZXRUaW1lKCkgLSBkMi5nZXRUaW1lKCk7XG4gIH1cblxuICAjcmVmcmVzaERheVZpZXcoKSB7XG4gICAgY29uc3QgeWVhciA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRNb250aCgpO1xuICAgIGNvbnN0IGZpcnN0RGF5T2ZNb250aCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcbiAgICBjb25zdCBkaWZmZXJlbmNlID0gdGhpcy5kYXRlcGlja2VyLnN0YXJ0aW5nRGF5IC0gZmlyc3REYXlPZk1vbnRoLmdldERheSgpO1xuICAgIGNvbnN0IG51bURpc3BsYXllZEZyb21QcmV2aW91c01vbnRoID1cbiAgICAgIGRpZmZlcmVuY2UgPiAwID8gNyAtIGRpZmZlcmVuY2UgOiAtZGlmZmVyZW5jZTtcbiAgICBjb25zdCBmaXJzdERhdGUgPSBuZXcgRGF0ZShmaXJzdERheU9mTW9udGguZ2V0VGltZSgpKTtcblxuICAgIGlmICh0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXREYXRlKCkgIT09IHRoaXMuI2luaXRpYWxEYXRlKSB7XG4gICAgICB0aGlzLmFjdGl2ZURhdGVIYXNDaGFuZ2VkID0gdHJ1ZTtcbiAgICB9XG5cbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChudW1EaXNwbGF5ZWRGcm9tUHJldmlvdXNNb250aCA+IDApIHtcbiAgICAgIGZpcnN0RGF0ZS5zZXREYXRlKC1udW1EaXNwbGF5ZWRGcm9tUHJldmlvdXNNb250aCArIDEpO1xuICAgIH1cblxuICAgIC8vIDQyIGlzIHRoZSBudW1iZXIgb2YgZGF5cyBvbiBhIHNpeC13ZWVrIGNhbGVuZGFyXG4gICAgY29uc3QgZGF5czogRGF0ZVtdID0gdGhpcy5nZXREYXRlcyhmaXJzdERhdGUsIDQyKTtcbiAgICBjb25zdCBwaWNrZXJEYXRlczogQXJyYXk8U2t5RGF0ZXBpY2tlckRhdGU+ID0gW107XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCA0MjsgaSsrKSB7XG4gICAgICBjb25zdCBfZGF0ZU9iamVjdCA9IHRoaXMuZGF0ZXBpY2tlci5jcmVhdGVEYXRlT2JqZWN0KFxuICAgICAgICBkYXlzW2ldLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZm9ybWF0RGF5LFxuICAgICAgICBkYXlzW2ldLmdldE1vbnRoKCkgIT09IG1vbnRoLFxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuZGF0ZXBpY2tlcklkICsgJy0nICsgaVxuICAgICAgKTtcbiAgICAgIHBpY2tlckRhdGVzW2ldID0gX2RhdGVPYmplY3Q7XG4gICAgfVxuXG4gICAgdGhpcy5sYWJlbHMgPSBbXTtcbiAgICBmb3IgKGxldCBqID0gMDsgaiA8IDc7IGorKykge1xuICAgICAgdGhpcy5sYWJlbHNbal0gPSB7fTtcbiAgICAgIHRoaXMubGFiZWxzW2pdLmFiYnIgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgICAgcGlja2VyRGF0ZXNbal0uZGF0ZSxcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdERheUhlYWRlclxuICAgICAgKTtcbiAgICAgIHRoaXMubGFiZWxzW2pdLmZ1bGwgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgICAgcGlja2VyRGF0ZXNbal0uZGF0ZSxcbiAgICAgICAgJ0VFRUUnXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMudGl0bGUgPSB0aGlzLmRhdGVwaWNrZXIuZGF0ZUZpbHRlcihcbiAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLFxuICAgICAgdGhpcy5kYXRlcGlja2VyLmZvcm1hdERheVRpdGxlXG4gICAgKTtcblxuICAgIGNvbnN0IG9sZERhdGVSYW5nZSA9IHRoaXMuI2dldERhdGVSYW5nZSh0aGlzLnJvd3MpO1xuICAgIHRoaXMucm93cyA9IHRoaXMuZGF0ZXBpY2tlci5jcmVhdGVDYWxlbmRhclJvd3MocGlja2VyRGF0ZXMsIDcpO1xuICAgIGNvbnN0IG5ld0RhdGVSYW5nZSA9IHRoaXMuI2dldERhdGVSYW5nZSh0aGlzLnJvd3MpO1xuXG4gICAgaWYgKCF0aGlzLiNkYXRlUmFuZ2VSb3dzQXJlRXF1YWwob2xkRGF0ZVJhbmdlLCBuZXdEYXRlUmFuZ2UpKSB7XG4gICAgICAvLyBTYWZldHkgY2hlY2tcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgICBpZiAobmV3RGF0ZVJhbmdlKSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UubmV4dCh7XG4gICAgICAgICAgc3RhcnREYXRlOiBuZXdEYXRlUmFuZ2Uuc3RhcnREYXRlLFxuICAgICAgICAgIGVuZERhdGU6IG5ld0RhdGVSYW5nZS5lbmREYXRlLFxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuY2FsZW5kYXJEYXRlUmFuZ2VDaGFuZ2UubmV4dCh1bmRlZmluZWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gICNrZXlkb3duRGF5cyhrZXk6IHN0cmluZywgZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcbiAgICBsZXQgZGF0ZSA9IHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldERhdGUoKTtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIC8qIHNhbml0eSBjaGVjayAqL1xuICAgIGlmIChrZXkgPT09ICdsZWZ0Jykge1xuICAgICAgZGF0ZSA9IGRhdGUgLSAxO1xuICAgIH0gZWxzZSBpZiAoa2V5ID09PSAndXAnKSB7XG4gICAgICBkYXRlID0gZGF0ZSAtIDc7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdyaWdodCcpIHtcbiAgICAgIGRhdGUgPSBkYXRlICsgMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2Rvd24nKSB7XG4gICAgICBkYXRlID0gZGF0ZSArIDc7XG4gICAgfSBlbHNlIGlmIChrZXkgPT09ICdwYWdldXAnIHx8IGtleSA9PT0gJ3BhZ2Vkb3duJykge1xuICAgICAgY29uc3QgbW9udGggPVxuICAgICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRNb250aCgpICsgKGtleSA9PT0gJ3BhZ2V1cCcgPyAtMSA6IDEpO1xuICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuc2V0TW9udGgobW9udGgsIDEpO1xuICAgICAgZGF0ZSA9IE1hdGgubWluKFxuICAgICAgICB0aGlzLiNnZXREYXlzSW5Nb250aChcbiAgICAgICAgICB0aGlzLmRhdGVwaWNrZXIuYWN0aXZlRGF0ZS5nZXRGdWxsWWVhcigpLFxuICAgICAgICAgIHRoaXMuZGF0ZXBpY2tlci5hY3RpdmVEYXRlLmdldE1vbnRoKClcbiAgICAgICAgKSxcbiAgICAgICAgZGF0ZVxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2hvbWUnKSB7XG4gICAgICBkYXRlID0gMTtcbiAgICB9IGVsc2UgaWYgKGtleSA9PT0gJ2VuZCcpIHtcbiAgICAgIGRhdGUgPSB0aGlzLiNnZXREYXlzSW5Nb250aChcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0RnVsbFllYXIoKSxcbiAgICAgICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuZ2V0TW9udGgoKVxuICAgICAgKTtcbiAgICB9XG4gICAgdGhpcy5kYXRlcGlja2VyLmFjdGl2ZURhdGUuc2V0RGF0ZShkYXRlKTtcbiAgfVxuXG4gICNnZXREYXlzSW5Nb250aCh5ZWFyOiBudW1iZXIsIG1vbnRoOiBudW1iZXIpIHtcbiAgICByZXR1cm4gbW9udGggPT09IDEgJiZcbiAgICAgIHllYXIgJSA0ID09PSAwICYmXG4gICAgICAoeWVhciAlIDQwMCA9PT0gMCB8fCB5ZWFyICUgMTAwICE9PSAwKVxuICAgICAgPyAyOVxuICAgICAgOiB0aGlzLiNkYXlzSW5Nb250aFttb250aF07XG4gIH1cblxuICAvKipcbiAgICogQXBwbGllcyBjdXN0b20gZGF0ZSBwcm9wZXJ0aWVzIHRvIHRoZSBleGlzdGluZyBkYXRlcyBkaXNwbGF5ZWQgaW4gdGhlIGNhbGVuZGFyLlxuICAgKi9cbiAgI2FwcGx5Q3VzdG9tRGF0ZXMoXG4gICAgY3VzdG9tRGF0ZXM6IFNreURhdGVwaWNrZXJDdXN0b21EYXRlW10sXG4gICAgZGF0ZVJvd3M6IFNreURhdGVwaWNrZXJEYXRlW11bXVxuICApOiB2b2lkIHtcbiAgICBsZXQgZGF0ZTogU2t5RGF0ZXBpY2tlckRhdGU7XG4gICAgbGV0IG5ld0RhdGU6IFNreURhdGVwaWNrZXJEYXRlO1xuICAgIGxldCBkYXRlSW5kZXg6IG51bWJlcjtcblxuICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBlbHNlICovXG4gICAgaWYgKGN1c3RvbURhdGVzICYmIGRhdGVSb3dzKSB7XG4gICAgICBjdXN0b21EYXRlcy5mb3JFYWNoKChjdXN0b21EYXRlKSA9PiB7XG4gICAgICAgIGRhdGVJbmRleCA9IC0xO1xuICAgICAgICBkYXRlUm93cy5mb3JFYWNoKChyb3cpID0+IHtcbiAgICAgICAgICBpZiAoZGF0ZUluZGV4ID09PSAtMSkge1xuICAgICAgICAgICAgZGF0ZUluZGV4ID0gcm93LmZpbmRJbmRleCgoZCkgPT4ge1xuICAgICAgICAgICAgICByZXR1cm4gZC5kYXRlLmdldFRpbWUoKSA9PT0gY3VzdG9tRGF0ZS5kYXRlLmdldFRpbWUoKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgaWYgKGRhdGVJbmRleCA+IC0xKSB7XG4gICAgICAgICAgICAgIGRhdGUgPSByb3dbZGF0ZUluZGV4XTtcbiAgICAgICAgICAgICAgLy8gUmVwbGFjZSB0aGUgZGF0ZSB3aXRoIGEgbmV3IGluc3RhbmNlIHNvIHRoZSBkaXNwbGF5IGdldHMgdXBkYXRlZC5cbiAgICAgICAgICAgICAgbmV3RGF0ZSA9IHtcbiAgICAgICAgICAgICAgICBjdXJyZW50OiBkYXRlLmN1cnJlbnQsXG4gICAgICAgICAgICAgICAgZGF0ZTogZGF0ZS5kYXRlLFxuICAgICAgICAgICAgICAgIGRpc2FibGVkOiAhIWRhdGUuZGlzYWJsZWQgfHwgISFjdXN0b21EYXRlLmRpc2FibGVkLFxuICAgICAgICAgICAgICAgIGtleURhdGU6ICEhY3VzdG9tRGF0ZS5rZXlEYXRlIHx8ICEhZGF0ZS5rZXlEYXRlLFxuICAgICAgICAgICAgICAgIGtleURhdGVUZXh0OiBjdXN0b21EYXRlLmtleURhdGVUZXh0IHx8IGRhdGUua2V5RGF0ZVRleHQsXG4gICAgICAgICAgICAgICAgbGFiZWw6IGRhdGUubGFiZWwsXG4gICAgICAgICAgICAgICAgc2Vjb25kYXJ5OiBkYXRlLnNlY29uZGFyeSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogZGF0ZS5zZWxlY3RlZCxcbiAgICAgICAgICAgICAgICB1aWQ6IGRhdGUudWlkLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICByb3dbZGF0ZUluZGV4XSA9IG5ld0RhdGU7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gICNkYXRlUmFuZ2VSb3dzQXJlRXF1YWwoXG4gICAgcmFuZ2VBPzogU2t5RGF0ZVJhbmdlLFxuICAgIHJhbmdlQj86IFNreURhdGVSYW5nZVxuICApOiBib29sZWFuIHwgdW5kZWZpbmVkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgaWYgKi9cbiAgICBpZiAoIXJhbmdlQSAmJiAhcmFuZ2VCKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHJhbmdlQSAmJiByYW5nZUIpIHtcbiAgICAgIHJldHVybiAoXG4gICAgICAgIHRoaXMuI2NvbXBhcmVEYXlzKHJhbmdlQS5zdGFydERhdGUsIHJhbmdlQi5zdGFydERhdGUpID09PSAwICYmXG4gICAgICAgIHRoaXMuI2NvbXBhcmVEYXlzKHJhbmdlQS5lbmREYXRlLCByYW5nZUIuZW5kRGF0ZSkgPT09IDBcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cblxuICAjZ2V0RGF0ZVJhbmdlKFxuICAgIHJvd3M6IEFycmF5PEFycmF5PFNreURhdGVwaWNrZXJEYXRlPj5cbiAgKTogU2t5RGF0ZVJhbmdlIHwgdW5kZWZpbmVkIHtcbiAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgZWxzZSAqL1xuICAgIGlmIChyb3dzICYmIHJvd3MubGVuZ3RoID4gMCkge1xuICAgICAgcmV0dXJuIHtcbiAgICAgICAgc3RhcnREYXRlOiByb3dzWzBdWzBdLmRhdGUsXG4gICAgICAgIGVuZERhdGU6IHJvd3Nbcm93cy5sZW5ndGggLSAxXVtyb3dzW3Jvd3MubGVuZ3RoIC0gMV0ubGVuZ3RoIC0gMV0uZGF0ZSxcbiAgICAgIH07XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG4gIH1cbn1cbiIsIjxkaXYgKm5nSWY9XCJkYXRlcGlja2VyLmRhdGVwaWNrZXJNb2RlID09PSAnZGF5J1wiIGNsYXNzPVwic2t5LWRheXBpY2tlci13cmFwcGVyXCI+XG4gIDx0YWJsZVxuICAgIGNsYXNzPVwic2t5LWRheXBpY2tlci10YWJsZVwiXG4gICAgcm9sZT1cImdyaWRcIlxuICAgIFthdHRyLmFyaWEtbGFiZWxsZWRieV09XCJkYXRlcGlja2VyLmRhdGVwaWNrZXJJZCArICctdGl0bGUnXCJcbiAgPlxuICAgIDx0aGVhZD5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItaGVhZGVyLWxlZnRcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLXNtIHNreS1kYXRlcGlja2VyLWJ0bi1wcmV2aW91c1wiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci5tb3ZlQ2FsZW5kYXIoJGV2ZW50LCAtMSlcIlxuICAgICAgICAgICAgdGFiaW5kZXg9XCItMVwiXG4gICAgICAgICAgICBhcmlhLWhpZGRlbj1cInRydWVcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNoZXZyb24tZGVmYXVsdFwiXG4gICAgICAgICAgICAgIGljb249XCJjaGV2cm9uLWxlZnRcIlxuICAgICAgICAgICAgPjwvc2t5LWljb24+XG4gICAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jaGV2cm9uLW1vZGVyblwiXG4gICAgICAgICAgICAgIGljb249XCJjaGV2cm9uLWxlZnRcIlxuICAgICAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgICAgID48L3NreS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggc2NvcGU9XCJjb2xcIiBbYXR0ci5jb2xzcGFuXT1cIjVcIj5cbiAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICBbaWRdPVwiZGF0ZXBpY2tlci5kYXRlcGlja2VySWQgKyAnLXRpdGxlJ1wiXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGNsYXNzPVwic2t5LWJ0biBza3ktYnRuLWRlZmF1bHQgc2t5LWJ0bi1zbSBza3ktZGF0ZXBpY2tlci1jYWxlbmRhci10aXRsZVwiXG4gICAgICAgICAgICAoY2xpY2spPVwiZGF0ZXBpY2tlci50b2dnbGVNb2RlQ2FsZW5kYXIoJGV2ZW50KVwiXG4gICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGF0ZXBpY2tlci5kYXRlcGlja2VyTW9kZSA9PT0gZGF0ZXBpY2tlci5tYXhNb2RlXCJcbiAgICAgICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICAgICAgJ3NreS1idG4tZGlzYWJsZWQnOlxuICAgICAgICAgICAgICAgIGRhdGVwaWNrZXIuZGF0ZXBpY2tlck1vZGUgPT09IGRhdGVwaWNrZXIubWF4TW9kZVxuICAgICAgICAgICAgfVwiXG4gICAgICAgICAgICB0YWJpbmRleD1cIi0xXCJcbiAgICAgICAgICAgIGFyaWEtaGlkZGVuPVwidHJ1ZVwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHN0cm9uZz57eyB0aXRsZSB9fTwvc3Ryb25nPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RoPlxuICAgICAgICA8dGggY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1oZWFkZXItcmlnaHRcIiBzY29wZT1cImNvbFwiPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktYnRuIHNreS1idG4tZGVmYXVsdCBza3ktYnRuLXNtIHNreS1kYXRlcGlja2VyLWJ0bi1uZXh0XCJcbiAgICAgICAgICAgIChjbGljayk9XCJkYXRlcGlja2VyLm1vdmVDYWxlbmRhcigkZXZlbnQsIDEpXCJcbiAgICAgICAgICAgIHRhYmluZGV4PVwiLTFcIlxuICAgICAgICAgICAgYXJpYS1oaWRkZW49XCJ0cnVlXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c2t5LWljb25cbiAgICAgICAgICAgICAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jaGV2cm9uLWRlZmF1bHRcIlxuICAgICAgICAgICAgICBpY29uPVwiY2hldnJvbi1yaWdodFwiXG4gICAgICAgICAgICA+PC9za3ktaWNvbj5cbiAgICAgICAgICAgIDxza3ktaWNvblxuICAgICAgICAgICAgICBjbGFzcz1cInNreS1kYXRlcGlja2VyLWNoZXZyb24tbW9kZXJuXCJcbiAgICAgICAgICAgICAgaWNvbj1cImNoZXZyb24tcmlnaHRcIlxuICAgICAgICAgICAgICBpY29uVHlwZT1cInNreXV4XCJcbiAgICAgICAgICAgID48L3NreS1pY29uPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICA8L3RoPlxuICAgICAgPC90cj5cbiAgICAgIDx0cj5cbiAgICAgICAgPHRoXG4gICAgICAgICAgc2NvcGU9XCJjb2xcIlxuICAgICAgICAgICpuZ0Zvcj1cImxldCBsYWJlbCBvZiBsYWJlbHNcIlxuICAgICAgICAgIGNsYXNzPVwic2t5LWRhdGVwaWNrZXItY2VudGVyIHNreS1kYXRlcGlja2VyLXdlZWtkYXlzXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxzbWFsbCBbYXR0ci5hcmlhLWxhYmVsXT1cImxhYmVsLmZ1bGxcIj5cbiAgICAgICAgICAgIDxiPnt7IGxhYmVsLmFiYnIgfX08L2I+XG4gICAgICAgICAgPC9zbWFsbD5cbiAgICAgICAgPC90aD5cbiAgICAgIDwvdHI+XG4gICAgPC90aGVhZD5cbiAgICA8dGJvZHk+XG4gICAgICA8IS0tIFdhaXQgaW5kaWNhdG9yIGZvciBhc3luYyBjdXN0b20gZGF0ZSBzdHJlYW0gLS0+XG4gICAgICA8c2t5LXdhaXQgW2lzV2FpdGluZ109XCJpc1dhaXRpbmdcIj4gPC9za3ktd2FpdD5cbiAgICAgIDxuZy10ZW1wbGF0ZSBuZ0ZvciBbbmdGb3JPZl09XCJyb3dzXCIgbGV0LXJvdz1cIiRpbXBsaWNpdFwiIGxldC1pbmRleD1cImluZGV4XCI+XG4gICAgICAgIDx0ciByb2xlPVwicm93XCI+XG4gICAgICAgICAgPHRkXG4gICAgICAgICAgICAqbmdGb3I9XCJsZXQgZGF0ZSBvZiByb3dcIlxuICAgICAgICAgICAgY2xhc3M9XCJza3ktZGF0ZXBpY2tlci1jZW50ZXJcIlxuICAgICAgICAgICAgcm9sZT1cImdyaWRjZWxsXCJcbiAgICAgICAgICAgIFtpZF09XCJkYXRlLnVpZFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPHNreS1kYXlwaWNrZXItY2VsbFxuICAgICAgICAgICAgICBbYWN0aXZlRGF0ZUhhc0NoYW5nZWRdPVwiYWN0aXZlRGF0ZUhhc0NoYW5nZWRcIlxuICAgICAgICAgICAgICBbZGF0ZV09XCJkYXRlXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgIDwvc2t5LWRheXBpY2tlci1jZWxsPlxuICAgICAgICAgIDwvdGQ+XG4gICAgICAgIDwvdHI+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG48L2Rpdj5cbiJdfQ==
|
@@ -381,9 +381,9 @@ _SkyFuzzyDateService_currentLocale = new WeakMap(), _SkyFuzzyDateService_ngUnsub
|
|
381
381
|
}
|
382
382
|
return true;
|
383
383
|
};
|
384
|
-
SkyFuzzyDateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
385
|
-
SkyFuzzyDateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1
|
386
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
384
|
+
SkyFuzzyDateService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyFuzzyDateService, deps: [{ token: i1.SkyAppLocaleProvider }], target: i0.ɵɵFactoryTarget.Injectable });
|
385
|
+
SkyFuzzyDateService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyFuzzyDateService, providedIn: 'root' });
|
386
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyFuzzyDateService, decorators: [{
|
387
387
|
type: Injectable,
|
388
388
|
args: [{
|
389
389
|
providedIn: 'root',
|
@@ -72,9 +72,9 @@ _SkyMonthPickerComponent_instances = new WeakSet(), _SkyMonthPickerComponent_com
|
|
72
72
|
}
|
73
73
|
this.datepicker.activeDate.setMonth(date);
|
74
74
|
};
|
75
|
-
SkyMonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
76
|
-
SkyMonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
77
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
75
|
+
SkyMonthPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyMonthPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
|
76
|
+
SkyMonthPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyMonthPickerComponent, selector: "sky-monthpicker", ngImport: i0, template: "<table *ngIf=\"datepicker.datepickerMode === 'month'\" role=\"grid\">\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th\n [attr.colspan]=\"\n datepicker.monthColLimit - 2 <= 0 ? 1 : datepicker.monthColLimit - 2\n \"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows\">\n <td\n *ngFor=\"let date of row\"\n class=\"text-center\"\n role=\"gridcell\"\n id=\"{{ date.uid }}\"\n >\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }] });
|
77
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyMonthPickerComponent, decorators: [{
|
78
78
|
type: Component,
|
79
79
|
args: [{ selector: 'sky-monthpicker', template: "<table *ngIf=\"datepicker.datepickerMode === 'month'\" role=\"grid\">\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th\n [attr.colspan]=\"\n datepicker.monthColLimit - 2 <= 0 ? 1 : datepicker.monthColLimit - 2\n \"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows\">\n <td\n *ngFor=\"let date of row\"\n class=\"text-center\"\n role=\"gridcell\"\n id=\"{{ date.uid }}\"\n >\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"] }]
|
80
80
|
}], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }]; } });
|
@@ -78,9 +78,9 @@ _SkyYearPickerComponent_instances = new WeakSet(), _SkyYearPickerComponent_compa
|
|
78
78
|
}
|
79
79
|
this.datepicker.activeDate.setFullYear(date);
|
80
80
|
};
|
81
|
-
SkyYearPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
82
|
-
SkyYearPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
81
|
+
SkyYearPickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyYearPickerComponent, deps: [{ token: i1.SkyDatepickerCalendarInnerComponent }], target: i0.ɵɵFactoryTarget.Component });
|
82
|
+
SkyYearPickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.1", type: SkyYearPickerComponent, selector: "sky-yearpicker", ngImport: i0, template: "<table *ngIf=\"datepicker.datepickerMode === 'year'\" role=\"grid\">\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th\n [attr.colspan]=\"\n datepicker.yearColLimit - 2 <= 0 ? 1 : datepicker.yearColLimit - 2\n \"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n role=\"heading\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows\">\n <td *ngFor=\"let date of row\" class=\"sky-datepicker-row\" role=\"gridcell\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.λ4, selector: "sky-icon", inputs: ["icon", "iconType", "size", "fixedWidth", "variant"] }] });
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyYearPickerComponent, decorators: [{
|
84
84
|
type: Component,
|
85
85
|
args: [{ selector: 'sky-yearpicker', template: "<table *ngIf=\"datepicker.datepickerMode === 'year'\" role=\"grid\">\n <thead>\n <tr>\n <th class=\"sky-datepicker-header-left\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-previous\"\n (click)=\"datepicker.moveCalendar($event, -1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-left\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-left\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n <th\n [attr.colspan]=\"\n datepicker.yearColLimit - 2 <= 0 ? 1 : datepicker.yearColLimit - 2\n \"\n >\n <button\n [id]=\"datepicker.datepickerId + '-title'\"\n role=\"heading\"\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-calendar-title\"\n (click)=\"datepicker.toggleModeCalendar($event)\"\n [disabled]=\"datepicker.datepickerMode === datepicker.maxMode\"\n [ngClass]=\"{\n 'sky-btn-disabled': datepicker.datepickerMode === datepicker.maxMode\n }\"\n tabindex=\"-1\"\n >\n <strong>{{ title }}</strong>\n </button>\n </th>\n <th class=\"sky-datepicker-header-right\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-btn-sm sky-datepicker-btn-next\"\n (click)=\"datepicker.moveCalendar($event, 1)\"\n tabindex=\"-1\"\n >\n <sky-icon\n class=\"sky-datepicker-chevron-default\"\n icon=\"chevron-right\"\n ></sky-icon>\n <sky-icon\n class=\"sky-datepicker-chevron-modern\"\n icon=\"chevron-right\"\n iconType=\"skyux\"\n ></sky-icon>\n </button>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr *ngFor=\"let row of rows\">\n <td *ngFor=\"let date of row\" class=\"sky-datepicker-row\" role=\"gridcell\">\n <button\n type=\"button\"\n class=\"sky-btn sky-btn-default sky-datepicker-btn-date\"\n [ngClass]=\"{\n 'sky-datepicker-btn-selected': date.selected,\n 'sky-btn-disabled': date.disabled,\n 'sky-btn-active': datepicker.isActive(date)\n }\"\n [disabled]=\"date.disabled\"\n (click)=\"datepicker.selectCalendar($event, date.date)\"\n tabindex=\"-1\"\n >\n <span [ngClass]=\"{ 'sky-datepicker-current': date.current }\">{{\n date.label\n }}</span>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host-context(.sky-theme-modern) :host:focus{outline:none}.sky-theme-modern :host:focus{outline:none}\n"] }]
|
86
86
|
}], ctorParameters: function () { return [{ type: i1.SkyDatepickerCalendarInnerComponent }]; } });
|
@@ -106,16 +106,16 @@ export class SkyDatetimeResourcesProvider {
|
|
106
106
|
*/
|
107
107
|
export class SkyDatetimeResourcesModule {
|
108
108
|
}
|
109
|
-
SkyDatetimeResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1
|
110
|
-
SkyDatetimeResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1
|
111
|
-
SkyDatetimeResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1
|
109
|
+
SkyDatetimeResourcesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatetimeResourcesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
110
|
+
SkyDatetimeResourcesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.1", ngImport: i0, type: SkyDatetimeResourcesModule, exports: [SkyI18nModule] });
|
111
|
+
SkyDatetimeResourcesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatetimeResourcesModule, providers: [
|
112
112
|
{
|
113
113
|
provide: SKY_LIB_RESOURCES_PROVIDERS,
|
114
114
|
useClass: SkyDatetimeResourcesProvider,
|
115
115
|
multi: true,
|
116
116
|
},
|
117
117
|
], imports: [SkyI18nModule] });
|
118
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1
|
118
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.1", ngImport: i0, type: SkyDatetimeResourcesModule, decorators: [{
|
119
119
|
type: NgModule,
|
120
120
|
args: [{
|
121
121
|
exports: [SkyI18nModule],
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci10aW1lLWZvcm1hdC10eXBlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21wb25lbnRzL2RhdGV0aW1lL3NyYy9saWIvbW9kdWxlcy90aW1lcGlja2VyL3RpbWVwaWNrZXItdGltZS1mb3JtYXQtdHlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgU2t5VGltZXBpY2tlclRpbWVGb3JtYXRUeXBlID0gJ2hoJyB8ICdISCc7XG4iXX0=
|
@@ -0,0 +1,2 @@
|
|
1
|
+
export {};
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGltZXBpY2tlci10aW1lLW91dHB1dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tcG9uZW50cy9kYXRldGltZS9zcmMvbGliL21vZHVsZXMvdGltZXBpY2tlci90aW1lcGlja2VyLXRpbWUtb3V0cHV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgaW50ZXJmYWNlIFNreVRpbWVwaWNrZXJUaW1lT3V0cHV0IHtcbiAgLyoqXG4gICAqIFRoZSBob3VyLlxuICAgKi9cbiAgaG91cjogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbWludXRlLlxuICAgKi9cbiAgbWludXRlOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBtZXJpZGlhbiAoYEFNYCBvciBgUE1gKS5cbiAgICovXG4gIG1lcmlkaWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWUgem9uZS5cbiAgICovXG4gIHRpbWV6b25lOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIGluIFtpc284NjAxIGZvcm1hdF0oaHR0cHM6Ly93d3cuaXNvLm9yZy9pc28tODYwMS1kYXRlLWFuZC10aW1lLWZvcm1hdC5odG1sKS5cbiAgICovXG4gIGlzbzg2MDE6IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBkYXRlIGluIHRoZSBjdXJyZW50IGxvY2FsIHRpbWUgZm9ybWF0LlxuICAgKi9cbiAgbG9jYWw6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHRpbWUgZm9ybWF0IHN0cmluZy5cbiAgICovXG4gIGN1c3RvbUZvcm1hdDogc3RyaW5nO1xufVxuIl19
|