@coreui/angular-pro 4.2.0-next.3 → 4.2.0-next.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/esm2020/lib/calendar/calendar/calendar.component.mjs +22 -14
- package/esm2020/lib/date-picker/date-picker.component.mjs +3 -3
- package/esm2020/lib/date-range-picker/date-range-picker/date-range-picker.component.mjs +26 -17
- package/esm2020/lib/date-range-picker/date-range-picker.module.mjs +3 -9
- package/fesm2015/coreui-angular-pro.mjs +53 -67
- package/fesm2015/coreui-angular-pro.mjs.map +1 -1
- package/fesm2020/coreui-angular-pro.mjs +50 -63
- package/fesm2020/coreui-angular-pro.mjs.map +1 -1
- package/lib/date-range-picker/date-range-picker/date-range-picker.component.d.ts +5 -6
- package/lib/date-range-picker/date-range-picker.module.d.ts +9 -11
- package/package.json +1 -1
- package/esm2020/lib/date-range-picker/end-date.directive.mjs +0 -17
- package/esm2020/lib/date-range-picker/start-date.directive.mjs +0 -17
- package/lib/date-range-picker/end-date.directive.d.ts +0 -8
- package/lib/date-range-picker/start-date.directive.d.ts +0 -8
|
@@ -94,6 +94,9 @@ export class CalendarComponent {
|
|
|
94
94
|
set startDate(value) {
|
|
95
95
|
this._startDate = !!value ? tryDate(value, 'startDate') : null;
|
|
96
96
|
this.calendarService.update({ startDate: this._startDate });
|
|
97
|
+
if (!this.range || !this._startDate || (this.endDate && this._startDate > this.endDate)) {
|
|
98
|
+
this.endDate = null;
|
|
99
|
+
}
|
|
97
100
|
}
|
|
98
101
|
get startDate() {
|
|
99
102
|
return this._startDate;
|
|
@@ -104,10 +107,11 @@ export class CalendarComponent {
|
|
|
104
107
|
*/
|
|
105
108
|
set endDate(value) {
|
|
106
109
|
this._endDate = !!value ? tryDate(value, 'endDate') : null;
|
|
110
|
+
this._endDate = this.range ? this._endDate : null;
|
|
107
111
|
this.calendarService.update({ endDate: this._endDate });
|
|
108
112
|
}
|
|
109
113
|
get endDate() {
|
|
110
|
-
return this._endDate;
|
|
114
|
+
return this.range ? this._endDate : null;
|
|
111
115
|
}
|
|
112
116
|
/**
|
|
113
117
|
* Sets the day of start week.
|
|
@@ -247,17 +251,20 @@ export class CalendarComponent {
|
|
|
247
251
|
for (const key of keys) {
|
|
248
252
|
if (key in this) {
|
|
249
253
|
// @ts-ignore
|
|
250
|
-
this[key]
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
254
|
+
if (this[key] !== state[key]) {
|
|
255
|
+
// @ts-ignore
|
|
256
|
+
this[key] = state[key];
|
|
257
|
+
if (key === 'startDate') {
|
|
258
|
+
setTimeout(() => {
|
|
259
|
+
this.startDateChange.emit(this._startDate);
|
|
260
|
+
});
|
|
261
|
+
continue;
|
|
262
|
+
}
|
|
263
|
+
if (key === 'endDate') {
|
|
264
|
+
setTimeout(() => {
|
|
265
|
+
this.endDateChange.emit(this._endDate);
|
|
266
|
+
});
|
|
267
|
+
}
|
|
261
268
|
}
|
|
262
269
|
}
|
|
263
270
|
}
|
|
@@ -306,7 +313,8 @@ export class CalendarComponent {
|
|
|
306
313
|
* @type void
|
|
307
314
|
*/
|
|
308
315
|
clearDates() {
|
|
309
|
-
this.calendarService.update({
|
|
316
|
+
this.calendarService.update({ endDate: null });
|
|
317
|
+
this.calendarService.update({ startDate: null });
|
|
310
318
|
}
|
|
311
319
|
}
|
|
312
320
|
CalendarComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: CalendarComponent, deps: [{ token: i1.CalendarService }], target: i0.ɵɵFactoryTarget.Component });
|
|
@@ -363,4 +371,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
363
371
|
type: ViewChildren,
|
|
364
372
|
args: [CalendarMonthComponent]
|
|
365
373
|
}] } });
|
|
366
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUVOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxlQUFlLEVBQW9ELE1BQU0scUJBQXFCLENBQUM7QUFDeEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFVcEYsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUNVLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXFCbEMsa0JBQWEsR0FBUyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBYzFDLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFtQnZCLGVBQVUsR0FBa0IsU0FBUyxDQUFDO1FBY3RDLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQWNqRCxlQUFVLEdBQWdCLElBQUksQ0FBQztRQWMvQixhQUFRLEdBQWtCLElBQUksQ0FBQztRQXNCdkIsb0JBQWUsR0FBVyxDQUFDLENBQUM7UUFjNUIsWUFBTyxHQUFXLFNBQVMsQ0FBQztRQWE1QixhQUFRLEdBQWdCLElBQUks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O2dCQWVGLFNBQVM7c0JBRFosS0FBSztnQkFlRixPQUFPO3NCQURWLEtBQUs7Z0JBd0JGLGNBQWM7c0JBRGpCLEtBQUs7Z0JBY0YsTUFBTTtzQkFEVCxLQUFLO2dCQWNGLE9BQU87c0JBRFYsS0FBSztnQkFjRixPQUFPO3NCQURWLEtBQUs7Z0JBZUYsVUFBVTtzQkFEYixLQUFLO2dCQWVGLFlBQVk7c0JBRGYsS0FBSztnQkFpQkYsS0FBSztzQkFEUixLQUFLO2dCQWdCRixJQUFJO3NCQURQLEtBQUs7Z0JBZ0JGLGFBQWE7c0JBRGhCLEtBQUs7Z0JBV0YsVUFBVTtzQkFEYixLQUFLO2dCQUtJLGlCQUFpQjtzQkFBMUIsTUFBTTtnQkFDRyxrQkFBa0I7c0JBQTNCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxlQUFlO3NCQUF4QixNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU07Z0JBZUgsV0FBVztzQkFEZCxXQUFXO3VCQUFDLE9BQU87Z0JBT2tCLGNBQWM7c0JBQW5ELFlBQVk7dUJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBDb21wb25lbnQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIEhvc3RCaW5kaW5nLFxyXG4gIElucHV0LFxyXG4gIE9uRGVzdHJveSxcclxuICBPbkluaXQsXHJcbiAgT3V0cHV0LFxyXG4gIFF1ZXJ5TGlzdCxcclxuICBWaWV3Q2hpbGRyZW5cclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQm9vbGVhbklucHV0LCBjb2VyY2VCb29sZWFuUHJvcGVydHksIGNvZXJjZU51bWJlclByb3BlcnR5IH0gZnJvbSAnQGFuZ3VsYXIvY2RrL2NvZXJjaW9uJztcclxuXHJcbmltcG9ydCB7IHRyeURhdGUgfSBmcm9tICcuLi9jYWxlbmRhci51dGlscyc7XHJcblxyXG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UsIERhdGVGaWx0ZXJUeXBlLCBEYXlGb3JtYXRUeXBlLCBXZWVrZGF5Rm9ybWF0VHlwZSB9IGZyb20gJy4uL2NhbGVuZGFyLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDYWxlbmRhck1vbnRoQ29tcG9uZW50IH0gZnJvbSAnLi4vY2FsZW5kYXItbW9udGgvY2FsZW5kYXItbW9udGguY29tcG9uZW50JztcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2MtY2FsZW5kYXInLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vY2FsZW5kYXIuY29tcG9uZW50LnNjc3MnXSxcclxuICBleHBvcnRBczogJ2NDYWxlbmRhcicsXHJcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJTZXJ2aWNlXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ2FsZW5kYXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcblxyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9uYXZpZ2F0aW9uOiBCb29sZWFuSW5wdXQ7XHJcbiAgc3RhdGljIG5nQWNjZXB0SW5wdXRUeXBlX25hdlllYXJGaXJzdDogQm9vbGVhbklucHV0O1xyXG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yYW5nZTogQm9vbGVhbklucHV0O1xyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2VcclxuICApIHtcclxuICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmliZSgpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRGVmYXVsdCBkYXRlIG9mIHRoZSBjb21wb25lbnRcclxuICAgKiBAdHlwZSAgKERhdGUgfCBzdHJpbmcpXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgY2FsZW5kYXJEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVtYmVyIHwgdW5kZWZpbmVkKSB7XHJcbiAgICBjb25zdCBfdmFsdWUgPSBuZXcgRGF0ZSh0cnlEYXRlKCh2YWx1ZSA/PyB0aGlzLnN0YXJ0RGF0ZSA/PyBuZXcgRGF0ZSgpKSwgJ2NhbGVuZGFyRGF0ZScpKTtcclxuICAgIGlmICh0aGlzLl9jYWxlbmRhckRhdGUuZ2V0VGltZSgpICE9PSBfdmFsdWUuZ2V0VGltZSgpKSB7XHJcbiAgICAgIHRoaXMuX2NhbGVuZGFyRGF0ZSA9IG5ldyBEYXRlKF92YWx1ZS5zZXREYXRlKDEpKTtcclxuICAgICAgdGhpcy5jYWxlbmRhckRhdGVDaGFuZ2UuZW1pdChfdmFsdWUpO1xyXG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBjYWxlbmRhckRhdGU6IF92YWx1ZSB9KTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IGNhbGVuZGFyRGF0ZSgpOiBEYXRlIHtcclxuICAgIHJldHVybiB0aGlzLl9jYWxlbmRhckRhdGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2NhbGVuZGFyRGF0ZTogRGF0ZSA9IHRyeURhdGUobmV3IERhdGUoKSk7XHJcblxyXG4gIC8qKlxyXG4gICAqIFRoZSBudW1iZXIgb2YgY2FsZW5kYXJzIHRoYXQgcmVuZGVyIG9uIGRlc2t0b3AgZGV2aWNlcy5cclxuICAgKiBAdHlwZSBudW1iZXJcclxuICAgKiBkZWZhdWx0IDFcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBjYWxlbmRhcnModmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fY2FsZW5kYXJzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xyXG4gIH1cclxuICBnZXQgY2FsZW5kYXJzKCk6IG51bWJlciB7XHJcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJzO1xyXG4gIH1cclxuICBwcml2YXRlIF9jYWxlbmRhcnM6IG51bWJlciA9IDE7XHJcblxyXG4gIGdldCBjYWxlbmRhcnNBcnJheSgpIHtcclxuICAgIHJldHVybiBBcnJheS5mcm9tKHsgbGVuZ3RoOiB0aGlzLmNhbGVuZGFycyB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNldCB0aGUgZm9ybWF0IG9mIGRheSBuYW1lLlxyXG4gICAqIEBkZWZhdWx0ICdudW1lcmljJ1xyXG4gICAqIEB0eXBlIERheUZvcm1hdFR5cGVcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBkYXlGb3JtYXQodmFsdWU6IERheUZvcm1hdFR5cGUpIHtcclxuICAgIHRoaXMuX2RheUZvcm1hdCA9IHZhbHVlO1xyXG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZGF5Rm9ybWF0OiB0aGlzLl9kYXlGb3JtYXQgfSk7XHJcbiAgfVxyXG4gIGdldCBkYXlGb3JtYXQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fZGF5Rm9ybWF0O1xyXG4gIH1cclxuICBwcml2YXRlIF9kYXlGb3JtYXQ6IERheUZvcm1hdFR5cGUgPSAnbnVtZXJpYyc7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXHJcbiAgICogQHR5cGUgIChEYXRlW10gfCBEYXRlW11bXSlcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBkaXNhYmxlZERhdGVzKHZhbHVlOiBEYXRlW10gfCBEYXRlW11bXSkge1xyXG4gICAgdGhpcy5fZGlzYWJsZWREYXRlcyA9IHZhbHVlO1xyXG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZGlzYWJsZWREYXRlczogdGhpcy5fZGlzYWJsZWREYXRlcyB9KTtcclxuICB9XHJcbiAgZ2V0IGRpc2FibGVkRGF0ZXMoKTogRGF0ZVtdIHwgRGF0ZVtdW10ge1xyXG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XHJcbiAgfVxyXG4gIHByaXZhdGUgX2Rpc2FibGVkRGF0ZXM6IChEYXRlW10gfCBEYXRlW11bXSkgPSBbXTtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbCBzZWxlY3RlZCBkYXRlLlxyXG4gICAqIEB0eXBlICAoRGF0ZSB8IG51bGwpXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgc3RhcnREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fc3RhcnREYXRlID0gISF2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdzdGFydERhdGUnKSA6IG51bGw7XHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzdGFydERhdGU6IHRoaXMuX3N0YXJ0RGF0ZSB9KTtcclxuICB9XHJcbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9zdGFydERhdGU7XHJcbiAgfVxyXG4gIF9zdGFydERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbCBzZWxlY3RlZCB0byBkYXRlIChyYW5nZSkuXHJcbiAgICogQHR5cGUgIChEYXRlIHwgbnVsbClcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBlbmREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fZW5kRGF0ZSA9ICEhdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnZW5kRGF0ZScpIDogbnVsbDtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGVuZERhdGU6IHRoaXMuX2VuZERhdGUgfSk7XHJcbiAgfVxyXG4gIGdldCBlbmREYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX2VuZERhdGU7XHJcbiAgfVxyXG4gIF9lbmREYXRlOiAoRGF0ZSB8IG51bGwpID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGF5IG9mIHN0YXJ0IHdlZWsuXHJcbiAgICogLSAwIC0gU3VuZGF5LFxyXG4gICAqIC0gMSAtIE1vbmRheSxcclxuICAgKiAtIDIgLSBUdWVzZGF5LFxyXG4gICAqIC0gMyAtIFdlZG5lc2RheSxcclxuICAgKiAtIDQgLSBUaHVyc2RheSxcclxuICAgKiAtIDUgLSBGcmlkYXksXHJcbiAgICogLSA2IC0gU2F0dXJkYXksXHJcbiAgICpcclxuICAgKiBAdHlwZSBudW1iZXJcclxuICAgKiBAZGVmYXVsdCAxXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgZmlyc3REYXlPZldlZWsodmFsdWU6IG51bWJlcikge1xyXG4gICAgdGhpcy5fZmlyc3REYXlPZldlZWsgPSBjb2VyY2VOdW1iZXJQcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBmaXJzdERheU9mV2VlaygpOiBudW1iZXIge1xyXG4gICAgcmV0dXJuIHRoaXMuX2ZpcnN0RGF5T2ZXZWVrO1xyXG4gIH1cclxuICBwcml2YXRlIF9maXJzdERheU9mV2VlazogbnVtYmVyID0gMTtcclxuXHJcbiAgLyoqXHJcbiAgICogU2V0cyB0aGUgZGVmYXVsdCBsb2NhbGUgZm9yIGNvbXBvbmVudHMuIElmIG5vdCBzZXQsIGl0IGlzIGluaGVyaXRlZCBmcm9tIHRoZSBicm93c2VyLlxyXG4gICAqIEBkZWZhdWx0ICdkZWZhdWx0J1xyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IGxvY2FsZSh2YWx1ZTogc3RyaW5nKSB7XHJcbiAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGxvY2FsZTogdmFsdWUgfSk7XHJcbiAgfVxyXG4gIGdldCBsb2NhbGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fbG9jYWxlO1xyXG4gIH1cclxuICBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcclxuXHJcbiAgLyoqXHJcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fbWF4RGF0ZSA9ICEhdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnbWF4RGF0ZScpIDogbnVsbDtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IG1heERhdGU6IHRoaXMuX21heERhdGUgfSk7XHJcbiAgfVxyXG4gIGdldCBtYXhEYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX21heERhdGU7XHJcbiAgfVxyXG4gIHByaXZhdGUgX21heERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgLyoqXHJcbiAgICogTWluIHNlbGVjdGFibGUgZGF0ZS5cclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCBtaW5EYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xyXG4gICAgdGhpcy5fbWluRGF0ZSA9IHZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ21pbkRhdGUnKSA6IG51bGw7XHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBtaW5EYXRlOiB0aGlzLl9taW5EYXRlIH0pO1xyXG4gIH1cclxuICBnZXQgbWluRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLl9taW5EYXRlO1xyXG4gIH1cclxuICBwcml2YXRlIF9taW5EYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIC8qKlxyXG4gICAqIFNob3cgbmF2aWdhdGlvbi5cclxuICAgKiBAdHlwZSBib29sZWFuXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgbmF2aWdhdGlvbih2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbmF2aWdhdGlvbiA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XHJcbiAgfVxyXG4gIGdldCBuYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hdmlnYXRpb247XHJcbiAgfVxyXG4gIHByaXZhdGUgX25hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICAvKipcclxuICAgKiBSZW9yZGVyIHllYXItbW9udGggbmF2aWdhdGlvbiwgYW5kIHJlbmRlciB5ZWFyIGZpcnN0LlxyXG4gICAqIEB0eXBlIGJvb2xlYW5cclxuICAgKiBAZGVmYXVsdCBmYWxzZVxyXG4gICAqL1xyXG4gIEBJbnB1dCgpXHJcbiAgc2V0IG5hdlllYXJGaXJzdCh2YWx1ZTogYm9vbGVhbikge1xyXG4gICAgdGhpcy5fbmF2WWVhckZpcnN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IG5hdlllYXJGaXJzdDogdGhpcy5fbmF2WWVhckZpcnN0IH0pO1xyXG4gIH1cclxuICBnZXQgbmF2WWVhckZpcnN0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX25hdlllYXJGaXJzdDtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgX25hdlllYXJGaXJzdDogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBBbGxvdyByYW5nZSBzZWxlY3Rpb24uXHJcbiAgICogQHR5cGUgYm9vbGVhblxyXG4gICAqIEBkZWZhdWx0IGZhbHNlXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgcmFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JhbmdlID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHJhbmdlOiB0aGlzLl9yYW5nZSB9KTtcclxuICB9XHJcbiAgZ2V0IHJhbmdlKCk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3JhbmdlO1xyXG4gIH1cclxuICBwcml2YXRlIF9yYW5nZTogYm9vbGVhbiA9IGZhbHNlO1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgY2FsZW5kYXIgdmlldy5cclxuICAgKiBAdHlwZSAnZGF5cycgfCAnbW9udGhzJyB8ICd5ZWFycydcclxuICAgKiBAZGVmYXVsdCAnZGF5cydcclxuICAgKi9cclxuICBASW5wdXQoKVxyXG4gIHNldCB2aWV3KHZhbHVlKSB7XHJcbiAgICB0aGlzLl92aWV3ID0gdmFsdWU7XHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyB2aWV3OiB2YWx1ZSB9KTtcclxuICB9XHJcbiAgZ2V0IHZpZXcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5fdmlldztcclxuICB9XHJcbiAgcHJpdmF0ZSBfdmlldzogJ2RheXMnIHwgJ21vbnRocycgfCAneWVhcnMnID0gJ2RheXMnO1xyXG5cclxuICAvKipcclxuICAgKiBTZXQgbGVuZ3RoIG9yIGZvcm1hdCBvZiBkYXkgbmFtZS5cclxuICAgKiBAdHlwZSBudW1iZXIgfCAnbG9uZycgfCAnbmFycm93JyB8ICdzaG9ydCdcclxuICAgKiBAZGVmYXVsdCAnc2hvcnQnXHJcbiAgICovXHJcbiAgQElucHV0KClcclxuICBzZXQgd2Vla2RheUZvcm1hdCh2YWx1ZTogV2Vla2RheUZvcm1hdFR5cGUpIHtcclxuICAgIHRoaXMuX3dlZWtkYXlGb3JtYXQgPSB2YWx1ZTtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHdlZWtkYXlGb3JtYXQ6IHRoaXMuX3dlZWtkYXlGb3JtYXQgfSk7XHJcbiAgfVxyXG4gIGdldCB3ZWVrZGF5Rm9ybWF0KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuX3dlZWtkYXlGb3JtYXQ7XHJcbiAgfVxyXG4gIHByaXZhdGUgX3dlZWtkYXlGb3JtYXQ6IFdlZWtkYXlGb3JtYXRUeXBlID0gJ3Nob3J0JztcclxuXHJcbiAgQElucHV0KClcclxuICBzZXQgZGF0ZUZpbHRlcih2YWx1ZTogRGF0ZUZpbHRlclR5cGUgfCB1bmRlZmluZWQpIHtcclxuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRhdGVGaWx0ZXI6IHZhbHVlIH0pO1xyXG4gIH1cclxuXHJcbiAgQE91dHB1dCgpIGNhbGVuZGFyQ2VsbEhvdmVyOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcclxuICBAT3V0cHV0KCkgY2FsZW5kYXJEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XHJcbiAgQE91dHB1dCgpIGVuZERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xyXG4gIEBPdXRwdXQoKSBzdGFydERhdGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xyXG4gIEBPdXRwdXQoKSB2aWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICAvLyB1c2VkIHdpdGggY2FsZW5kYXJTZXJ2aWNlXHJcbiAgc2V0IGhvdmVyRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcclxuICAgIHRoaXMuX2hvdmVyRGF0ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5jYWxlbmRhckNlbGxIb3Zlci5lbWl0KHZhbHVlKTtcclxuICB9XHJcbiAgZ2V0IGhvdmVyRGF0ZSgpOiBEYXRlIHwgbnVsbCB7XHJcbiAgICByZXR1cm4gdGhpcy5faG92ZXJEYXRlO1xyXG4gIH1cclxuICBwcml2YXRlIF9ob3ZlckRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcclxuXHJcbiAgcHJpdmF0ZSBjYWxlbmRhclN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xyXG5cclxuICBASG9zdEJpbmRpbmcoJ2NsYXNzJylcclxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgICdjYWxlbmRhcnMnOiB0cnVlXHJcbiAgICB9O1xyXG4gIH1cclxuXHJcbiAgQFZpZXdDaGlsZHJlbihDYWxlbmRhck1vbnRoQ29tcG9uZW50KSBjYWxlbmRhck1vbnRocyE6IFF1ZXJ5TGlzdDxDYWxlbmRhck1vbnRoQ29tcG9uZW50PjtcclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBsb2NhbGU6IHRoaXMubG9jYWxlLCB2aWV3OiB0aGlzLnZpZXcsIHJhbmdlOiB0aGlzLnJhbmdlIH0pO1xyXG4gIH1cclxuXHJcbiAgY2FsZW5kYXJTdGF0ZVN1YnNjcmliZShzdWJzY3JpYmU6IGJvb2xlYW4gPSB0cnVlKTogdm9pZCB7XHJcbiAgICBpZiAoc3Vic2NyaWJlKSB7XHJcbiAgICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmlwdGlvbiA9XHJcbiAgICAgICAgdGhpcy5jYWxlbmRhclNlcnZpY2UuY2FsZW5kYXJTdGF0ZSQuc3Vic2NyaWJlKHN0YXRlID0+IHtcclxuICAgICAgICAgIGNvbnN0IGtleXMgPSBPYmplY3Qua2V5cyhzdGF0ZSk7XHJcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XHJcbiAgICAgICAgICAgIGlmIChrZXkgaW4gdGhpcykge1xyXG4gICAgICAgICAgICAgIC8vIEB0cy1pZ25vcmVcclxuICAgICAgICAgICAgICB0aGlzW2tleV0gPSBzdGF0ZVtrZXldO1xyXG4gICAgICAgICAgICAgIGlmIChrZXkgPT09ICdzdGFydERhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5zdGFydERhdGVDaGFuZ2UuZW1pdCh0aGlzLl9zdGFydERhdGUpO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgICAgICBjb250aW51ZTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ2VuZERhdGUnKSB7XHJcbiAgICAgICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5lbmREYXRlQ2hhbmdlLmVtaXQodGhpcy5fZW5kRGF0ZSk7XHJcbiAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XHJcbiAgfVxyXG5cclxuICBzZXRDYWxlbmRhclBhZ2UoeWVhcnM6IG51bWJlciwgbW9udGhzID0gMCwgc2V0TW9udGg/OiBudW1iZXIpIHtcclxuICAgIGNvbnN0IHllYXIgPSB0aGlzLmNhbGVuZGFyRGF0ZS5nZXRGdWxsWWVhcigpO1xyXG4gICAgY29uc3QgbW9udGggPSB0aGlzLmNhbGVuZGFyRGF0ZS5nZXRNb250aCgpO1xyXG4gICAgY29uc3QgZCA9IG5ldyBEYXRlKHllYXIsIG1vbnRoLCAxKTtcclxuXHJcbiAgICB5ZWFycyAmJiBkLnNldEZ1bGxZZWFyKGQuZ2V0RnVsbFllYXIoKSArIHllYXJzKTtcclxuICAgIG1vbnRocyAmJiBkLnNldE1vbnRoKGQuZ2V0TW9udGgoKSArIG1vbnRocyk7XHJcbiAgICB0eXBlb2Ygc2V0TW9udGggPT09ICdudW1iZXInICYmIGQuc2V0TW9udGgoc2V0TW9udGgpO1xyXG5cclxuICAgIHRoaXMuY2FsZW5kYXJEYXRlID0gZDtcclxuICB9XHJcblxyXG4gIGhhbmRsZU5hdmlnYXRpb25DbGljayhkaXJlY3Rpb246ICdwcmV2JyB8ICduZXh0JywgeWVhcnMgPSBmYWxzZSkge1xyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ3ByZXYnKSB7XHJcbiAgICAgIGlmICh5ZWFycykge1xyXG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKHRoaXMudmlldyA9PT0gJ3llYXJzJyA/IC0xMCA6IC0xKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmICh0aGlzLnZpZXcgIT09ICdkYXlzJykge1xyXG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKC0xKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKDAsIC0xKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgaWYgKGRpcmVjdGlvbiA9PT0gJ25leHQnKSB7XHJcbiAgICAgIGlmICh5ZWFycykge1xyXG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKHRoaXMudmlldyA9PT0gJ3llYXJzJyA/IDEwIDogMSk7XHJcbiAgICAgICAgcmV0dXJuO1xyXG4gICAgICB9XHJcblxyXG4gICAgICBpZiAodGhpcy52aWV3ICE9PSAnZGF5cycpIHtcclxuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgxKTtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKDAsIDEpO1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBDbGVhciBzdGFydERhdGUgYW5kIGVuZERhdGVcclxuICAgKiBAdHlwZSB2b2lkXHJcbiAgICovXHJcbiAgcHVibGljIGNsZWFyRGF0ZXMoKSB7XHJcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzdGFydERhdGU6IG51bGwsIGVuZERhdGU6IG51bGwgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhbGVuZGFyIG9mIGNhbGVuZGFyc0FycmF5OyBsZXQgaT1pbmRleDtcIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cInZpZXcgfCBjYWxlbmRhckNsYXNzVmlld1wiPlxyXG4gICAgPGMtY2FsZW5kYXItbmF2aWdhdGlvblxyXG4gICAgICBbYWRkTW9udGhzXT1cImlcIlxyXG4gICAgICBbbmF2aWdhdGlvbl09XCJuYXZpZ2F0aW9uXCJcclxuICAgICAgKG5hdmlnYXRpb25DbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJGV2ZW50LmRpcmVjdGlvbiwgJGV2ZW50LnllYXJzKVwiXHJcbiAgICA+PC9jLWNhbGVuZGFyLW5hdmlnYXRpb24+XHJcblxyXG4gICAgPGMtY2FsZW5kYXItbW9udGhcclxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcclxuICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCJcclxuICAgICAgW3dlZWtkYXlGb3JtYXRdPVwid2Vla2RheUZvcm1hdFwiXHJcbiAgICA+PC9jLWNhbGVuZGFyLW1vbnRoPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
374
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FsZW5kYXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9jYWxlbmRhci9jYWxlbmRhci9jYWxlbmRhci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2NhbGVuZGFyL2NhbGVuZGFyL2NhbGVuZGFyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLFdBQVcsRUFDWCxLQUFLLEVBR0wsTUFBTSxFQUVOLFlBQVksRUFDYixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWdCLHFCQUFxQixFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFFbEcsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRTVDLE9BQU8sRUFBRSxlQUFlLEVBQW9ELE1BQU0scUJBQXFCLENBQUM7QUFDeEcsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sNENBQTRDLENBQUM7Ozs7Ozs7QUFVcEYsTUFBTSxPQUFPLGlCQUFpQjtJQU01QixZQUNVLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXFCbEMsa0JBQWEsR0FBUyxPQUFPLENBQUMsSUFBSSxJQUFJLEVBQUUsQ0FBQyxDQUFDO1FBYzFDLGVBQVUsR0FBVyxDQUFDLENBQUM7UUFtQnZCLGVBQVUsR0FBa0IsU0FBUyxDQUFDO1FBY3RDLG1CQUFjLEdBQXdCLEVBQUUsQ0FBQztRQWlCakQsZUFBVSxHQUFnQixJQUFJLENBQUM7UUFlL0IsYUFBUSxHQUFrQixJQUFJLENBQUM7UUFzQnZCLG9CQUFlLEdBQVcsQ0FBQyxDQUFDO1FBYzVCLFlBQU8sR0FBVyxTQUFTLENBQUM7UUFhNUIsYUFBUSxHQUFnQixJQUFJ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QUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIEhvc3RCaW5kaW5nLFxuICBJbnB1dCxcbiAgT25EZXN0cm95LFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgUXVlcnlMaXN0LFxuICBWaWV3Q2hpbGRyZW5cbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCb29sZWFuSW5wdXQsIGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSwgY29lcmNlTnVtYmVyUHJvcGVydHkgfSBmcm9tICdAYW5ndWxhci9jZGsvY29lcmNpb24nO1xuXG5pbXBvcnQgeyB0cnlEYXRlIH0gZnJvbSAnLi4vY2FsZW5kYXIudXRpbHMnO1xuXG5pbXBvcnQgeyBDYWxlbmRhclNlcnZpY2UsIERhdGVGaWx0ZXJUeXBlLCBEYXlGb3JtYXRUeXBlLCBXZWVrZGF5Rm9ybWF0VHlwZSB9IGZyb20gJy4uL2NhbGVuZGFyLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ2FsZW5kYXJNb250aENvbXBvbmVudCB9IGZyb20gJy4uL2NhbGVuZGFyLW1vbnRoL2NhbGVuZGFyLW1vbnRoLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1jYWxlbmRhcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9jYWxlbmRhci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhbGVuZGFyLmNvbXBvbmVudC5zY3NzJ10sXG4gIGV4cG9ydEFzOiAnY0NhbGVuZGFyJyxcbiAgcHJvdmlkZXJzOiBbQ2FsZW5kYXJTZXJ2aWNlXVxufSlcbmV4cG9ydCBjbGFzcyBDYWxlbmRhckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcblxuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbmF2aWdhdGlvbjogQm9vbGVhbklucHV0O1xuICBzdGF0aWMgbmdBY2NlcHRJbnB1dFR5cGVfbmF2WWVhckZpcnN0OiBCb29sZWFuSW5wdXQ7XG4gIHN0YXRpYyBuZ0FjY2VwdElucHV0VHlwZV9yYW5nZTogQm9vbGVhbklucHV0O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgY2FsZW5kYXJTZXJ2aWNlOiBDYWxlbmRhclNlcnZpY2VcbiAgKSB7XG4gICAgdGhpcy5jYWxlbmRhclN0YXRlU3Vic2NyaWJlKCk7XG4gIH1cblxuICAvKipcbiAgICogRGVmYXVsdCBkYXRlIG9mIHRoZSBjb21wb25lbnRcbiAgICogQHR5cGUgIChEYXRlIHwgc3RyaW5nKVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFyRGF0ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bWJlciB8IHVuZGVmaW5lZCkge1xuICAgIGNvbnN0IF92YWx1ZSA9IG5ldyBEYXRlKHRyeURhdGUoKHZhbHVlID8/IHRoaXMuc3RhcnREYXRlID8/IG5ldyBEYXRlKCkpLCAnY2FsZW5kYXJEYXRlJykpO1xuICAgIGlmICh0aGlzLl9jYWxlbmRhckRhdGUuZ2V0VGltZSgpICE9PSBfdmFsdWUuZ2V0VGltZSgpKSB7XG4gICAgICB0aGlzLl9jYWxlbmRhckRhdGUgPSBuZXcgRGF0ZShfdmFsdWUuc2V0RGF0ZSgxKSk7XG4gICAgICB0aGlzLmNhbGVuZGFyRGF0ZUNoYW5nZS5lbWl0KF92YWx1ZSk7XG4gICAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBjYWxlbmRhckRhdGU6IF92YWx1ZSB9KTtcbiAgICB9XG4gIH1cbiAgZ2V0IGNhbGVuZGFyRGF0ZSgpOiBEYXRlIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJEYXRlO1xuICB9XG4gIHByaXZhdGUgX2NhbGVuZGFyRGF0ZTogRGF0ZSA9IHRyeURhdGUobmV3IERhdGUoKSk7XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgY2FsZW5kYXJzIHRoYXQgcmVuZGVyIG9uIGRlc2t0b3AgZGV2aWNlcy5cbiAgICogQHR5cGUgbnVtYmVyXG4gICAqIGRlZmF1bHQgMVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGNhbGVuZGFycyh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5fY2FsZW5kYXJzID0gY29lcmNlTnVtYmVyUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCBjYWxlbmRhcnMoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fY2FsZW5kYXJzO1xuICB9XG4gIHByaXZhdGUgX2NhbGVuZGFyczogbnVtYmVyID0gMTtcblxuICBnZXQgY2FsZW5kYXJzQXJyYXkoKSB7XG4gICAgcmV0dXJuIEFycmF5LmZyb20oeyBsZW5ndGg6IHRoaXMuY2FsZW5kYXJzIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldCB0aGUgZm9ybWF0IG9mIGRheSBuYW1lLlxuICAgKiBAZGVmYXVsdCAnbnVtZXJpYydcbiAgICogQHR5cGUgRGF5Rm9ybWF0VHlwZVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGRheUZvcm1hdCh2YWx1ZTogRGF5Rm9ybWF0VHlwZSkge1xuICAgIHRoaXMuX2RheUZvcm1hdCA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IGRheUZvcm1hdDogdGhpcy5fZGF5Rm9ybWF0IH0pO1xuICB9XG4gIGdldCBkYXlGb3JtYXQoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2RheUZvcm1hdDtcbiAgfVxuICBwcml2YXRlIF9kYXlGb3JtYXQ6IERheUZvcm1hdFR5cGUgPSAnbnVtZXJpYyc7XG5cbiAgLyoqXG4gICAqIFNwZWNpZnkgdGhlIGxpc3Qgb2YgZGF0ZXMgdGhhdCBjYW5ub3QgYmUgc2VsZWN0ZWQuXG4gICAqIEB0eXBlICAoRGF0ZVtdIHwgRGF0ZVtdW10pXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZGlzYWJsZWREYXRlcyh2YWx1ZTogRGF0ZVtdIHwgRGF0ZVtdW10pIHtcbiAgICB0aGlzLl9kaXNhYmxlZERhdGVzID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZGlzYWJsZWREYXRlczogdGhpcy5fZGlzYWJsZWREYXRlcyB9KTtcbiAgfVxuICBnZXQgZGlzYWJsZWREYXRlcygpOiBEYXRlW10gfCBEYXRlW11bXSB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkRGF0ZXM7XG4gIH1cbiAgcHJpdmF0ZSBfZGlzYWJsZWREYXRlczogKERhdGVbXSB8IERhdGVbXVtdKSA9IFtdO1xuXG4gIC8qKlxuICAgKiBJbml0aWFsIHNlbGVjdGVkIGRhdGUuXG4gICAqIEB0eXBlICAoRGF0ZSB8IG51bGwpXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgc3RhcnREYXRlKHZhbHVlOiBEYXRlIHwgbnVtYmVyIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX3N0YXJ0RGF0ZSA9ICEhdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnc3RhcnREYXRlJykgOiBudWxsO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHN0YXJ0RGF0ZTogdGhpcy5fc3RhcnREYXRlIH0pO1xuICAgIGlmICghdGhpcy5yYW5nZSB8fCAhdGhpcy5fc3RhcnREYXRlIHx8ICh0aGlzLmVuZERhdGUgJiYgdGhpcy5fc3RhcnREYXRlID4gdGhpcy5lbmREYXRlKSkge1xuICAgICAgdGhpcy5lbmREYXRlID0gbnVsbDtcbiAgICB9XG4gIH1cbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fc3RhcnREYXRlO1xuICB9XG4gIF9zdGFydERhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogSW5pdGlhbCBzZWxlY3RlZCB0byBkYXRlIChyYW5nZSkuXG4gICAqIEB0eXBlICAoRGF0ZSB8IG51bGwpXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgZW5kRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bWJlciB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9lbmREYXRlID0gISF2YWx1ZSA/IHRyeURhdGUodmFsdWUsICdlbmREYXRlJykgOiBudWxsO1xuICAgIHRoaXMuX2VuZERhdGUgPSB0aGlzLnJhbmdlID8gdGhpcy5fZW5kRGF0ZSA6IG51bGw7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZW5kRGF0ZTogdGhpcy5fZW5kRGF0ZSB9KTtcbiAgfVxuICBnZXQgZW5kRGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5yYW5nZSA/IHRoaXMuX2VuZERhdGUgOiBudWxsO1xuICB9XG4gIF9lbmREYXRlOiAoRGF0ZSB8IG51bGwpID0gbnVsbDtcblxuICAvKipcbiAgICogU2V0cyB0aGUgZGF5IG9mIHN0YXJ0IHdlZWsuXG4gICAqIC0gMCAtIFN1bmRheSxcbiAgICogLSAxIC0gTW9uZGF5LFxuICAgKiAtIDIgLSBUdWVzZGF5LFxuICAgKiAtIDMgLSBXZWRuZXNkYXksXG4gICAqIC0gNCAtIFRodXJzZGF5LFxuICAgKiAtIDUgLSBGcmlkYXksXG4gICAqIC0gNiAtIFNhdHVyZGF5LFxuICAgKlxuICAgKiBAdHlwZSBudW1iZXJcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgQElucHV0KClcbiAgc2V0IGZpcnN0RGF5T2ZXZWVrKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9maXJzdERheU9mV2VlayA9IGNvZXJjZU51bWJlclByb3BlcnR5KHZhbHVlKTtcbiAgfVxuICBnZXQgZmlyc3REYXlPZldlZWsoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fZmlyc3REYXlPZldlZWs7XG4gIH1cbiAgcHJpdmF0ZSBfZmlyc3REYXlPZldlZWs6IG51bWJlciA9IDE7XG5cbiAgLyoqXG4gICAqIFNldHMgdGhlIGRlZmF1bHQgbG9jYWxlIGZvciBjb21wb25lbnRzLiBJZiBub3Qgc2V0LCBpdCBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgYnJvd3Nlci5cbiAgICogQGRlZmF1bHQgJ2RlZmF1bHQnXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbG9jYWxlKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9sb2NhbGUgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBsb2NhbGU6IHZhbHVlIH0pO1xuICB9XG4gIGdldCBsb2NhbGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuX2xvY2FsZTtcbiAgfVxuICBwcml2YXRlIF9sb2NhbGU6IHN0cmluZyA9ICdkZWZhdWx0JztcblxuICAvKipcbiAgICogTWF4IHNlbGVjdGFibGUgZGF0ZS5cbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCBtYXhEYXRlKHZhbHVlOiBEYXRlIHwgc3RyaW5nIHwgbnVsbCB8IHVuZGVmaW5lZCkge1xuICAgIHRoaXMuX21heERhdGUgPSAhIXZhbHVlID8gdHJ5RGF0ZSh2YWx1ZSwgJ21heERhdGUnKSA6IG51bGw7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgbWF4RGF0ZTogdGhpcy5fbWF4RGF0ZSB9KTtcbiAgfVxuICBnZXQgbWF4RGF0ZSgpIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4RGF0ZTtcbiAgfVxuICBwcml2YXRlIF9tYXhEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgLyoqXG4gICAqIE1pbiBzZWxlY3RhYmxlIGRhdGUuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbWluRGF0ZSh2YWx1ZTogRGF0ZSB8IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLl9taW5EYXRlID0gdmFsdWUgPyB0cnlEYXRlKHZhbHVlLCAnbWluRGF0ZScpIDogbnVsbDtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBtaW5EYXRlOiB0aGlzLl9taW5EYXRlIH0pO1xuICB9XG4gIGdldCBtaW5EYXRlKCkge1xuICAgIHJldHVybiB0aGlzLl9taW5EYXRlO1xuICB9XG4gIHByaXZhdGUgX21pbkRhdGU6IERhdGUgfCBudWxsID0gbnVsbDtcblxuICAvKipcbiAgICogU2hvdyBuYXZpZ2F0aW9uLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbmF2aWdhdGlvbih2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX25hdmlnYXRpb24gPSBjb2VyY2VCb29sZWFuUHJvcGVydHkodmFsdWUpO1xuICB9XG4gIGdldCBuYXZpZ2F0aW9uKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9uYXZpZ2F0aW9uO1xuICB9XG4gIHByaXZhdGUgX25hdmlnYXRpb246IGJvb2xlYW4gPSB0cnVlO1xuXG4gIC8qKlxuICAgKiBSZW9yZGVyIHllYXItbW9udGggbmF2aWdhdGlvbiwgYW5kIHJlbmRlciB5ZWFyIGZpcnN0LlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgbmF2WWVhckZpcnN0KHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fbmF2WWVhckZpcnN0ID0gY29lcmNlQm9vbGVhblByb3BlcnR5KHZhbHVlKTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBuYXZZZWFyRmlyc3Q6IHRoaXMuX25hdlllYXJGaXJzdCB9KTtcbiAgfVxuICBnZXQgbmF2WWVhckZpcnN0KCkge1xuICAgIHJldHVybiB0aGlzLl9uYXZZZWFyRmlyc3Q7XG4gIH1cblxuICBwcml2YXRlIF9uYXZZZWFyRmlyc3Q6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogQWxsb3cgcmFuZ2Ugc2VsZWN0aW9uLlxuICAgKiBAdHlwZSBib29sZWFuXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgcmFuZ2UodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yYW5nZSA9IGNvZXJjZUJvb2xlYW5Qcm9wZXJ0eSh2YWx1ZSk7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgcmFuZ2U6IHRoaXMuX3JhbmdlIH0pO1xuICB9XG4gIGdldCByYW5nZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmFuZ2U7XG4gIH1cbiAgcHJpdmF0ZSBfcmFuZ2U6IGJvb2xlYW4gPSBmYWxzZTtcblxuICAvKipcbiAgICogU2V0IGNhbGVuZGFyIHZpZXcuXG4gICAqIEB0eXBlICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJ1xuICAgKiBAZGVmYXVsdCAnZGF5cydcbiAgICovXG4gIEBJbnB1dCgpXG4gIHNldCB2aWV3KHZhbHVlKSB7XG4gICAgdGhpcy5fdmlldyA9IHZhbHVlO1xuICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLnVwZGF0ZSh7IHZpZXc6IHZhbHVlIH0pO1xuICB9XG4gIGdldCB2aWV3KCkge1xuICAgIHJldHVybiB0aGlzLl92aWV3O1xuICB9XG4gIHByaXZhdGUgX3ZpZXc6ICdkYXlzJyB8ICdtb250aHMnIHwgJ3llYXJzJyA9ICdkYXlzJztcblxuICAvKipcbiAgICogU2V0IGxlbmd0aCBvciBmb3JtYXQgb2YgZGF5IG5hbWUuXG4gICAqIEB0eXBlIG51bWJlciB8ICdsb25nJyB8ICduYXJyb3cnIHwgJ3Nob3J0J1xuICAgKiBAZGVmYXVsdCAnc2hvcnQnXG4gICAqL1xuICBASW5wdXQoKVxuICBzZXQgd2Vla2RheUZvcm1hdCh2YWx1ZTogV2Vla2RheUZvcm1hdFR5cGUpIHtcbiAgICB0aGlzLl93ZWVrZGF5Rm9ybWF0ID0gdmFsdWU7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgd2Vla2RheUZvcm1hdDogdGhpcy5fd2Vla2RheUZvcm1hdCB9KTtcbiAgfVxuICBnZXQgd2Vla2RheUZvcm1hdCgpIHtcbiAgICByZXR1cm4gdGhpcy5fd2Vla2RheUZvcm1hdDtcbiAgfVxuICBwcml2YXRlIF93ZWVrZGF5Rm9ybWF0OiBXZWVrZGF5Rm9ybWF0VHlwZSA9ICdzaG9ydCc7XG5cbiAgQElucHV0KClcbiAgc2V0IGRhdGVGaWx0ZXIodmFsdWU6IERhdGVGaWx0ZXJUeXBlIHwgdW5kZWZpbmVkKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZGF0ZUZpbHRlcjogdmFsdWUgfSk7XG4gIH1cblxuICBAT3V0cHV0KCkgY2FsZW5kYXJDZWxsSG92ZXI6IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPigpO1xuICBAT3V0cHV0KCkgY2FsZW5kYXJEYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZT4gPSBuZXcgRXZlbnRFbWl0dGVyPERhdGU+KCk7XG4gIEBPdXRwdXQoKSBlbmREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcbiAgQE91dHB1dCgpIHN0YXJ0RGF0ZUNoYW5nZTogRXZlbnRFbWl0dGVyPERhdGUgfCBudWxsPiA9IG5ldyBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+KCk7XG4gIEBPdXRwdXQoKSB2aWV3Q2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuXG4gIC8vIHVzZWQgd2l0aCBjYWxlbmRhclNlcnZpY2VcbiAgc2V0IGhvdmVyRGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwpIHtcbiAgICB0aGlzLl9ob3ZlckRhdGUgPSB2YWx1ZTtcbiAgICB0aGlzLmNhbGVuZGFyQ2VsbEhvdmVyLmVtaXQodmFsdWUpO1xuICB9XG4gIGdldCBob3ZlckRhdGUoKTogRGF0ZSB8IG51bGwge1xuICAgIHJldHVybiB0aGlzLl9ob3ZlckRhdGU7XG4gIH1cbiAgcHJpdmF0ZSBfaG92ZXJEYXRlOiBEYXRlIHwgbnVsbCA9IG51bGw7XG5cbiAgcHJpdmF0ZSBjYWxlbmRhclN0YXRlU3Vic2NyaXB0aW9uITogU3Vic2NyaXB0aW9uO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MnKVxuICBnZXQgaG9zdENsYXNzZXMoKTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2NhbGVuZGFycyc6IHRydWVcbiAgICB9O1xuICB9XG5cbiAgQFZpZXdDaGlsZHJlbihDYWxlbmRhck1vbnRoQ29tcG9uZW50KSBjYWxlbmRhck1vbnRocyE6IFF1ZXJ5TGlzdDxDYWxlbmRhck1vbnRoQ29tcG9uZW50PjtcblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLmNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgbG9jYWxlOiB0aGlzLmxvY2FsZSwgdmlldzogdGhpcy52aWV3LCByYW5nZTogdGhpcy5yYW5nZSB9KTtcbiAgfVxuXG4gIGNhbGVuZGFyU3RhdGVTdWJzY3JpYmUoc3Vic2NyaWJlOiBib29sZWFuID0gdHJ1ZSk6IHZvaWQge1xuICAgIGlmIChzdWJzY3JpYmUpIHtcbiAgICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmlwdGlvbiA9XG4gICAgICAgIHRoaXMuY2FsZW5kYXJTZXJ2aWNlLmNhbGVuZGFyU3RhdGUkLnN1YnNjcmliZShzdGF0ZSA9PiB7XG4gICAgICAgICAgY29uc3Qga2V5cyA9IE9iamVjdC5rZXlzKHN0YXRlKTtcbiAgICAgICAgICBmb3IgKGNvbnN0IGtleSBvZiBrZXlzKSB7XG4gICAgICAgICAgICBpZiAoa2V5IGluIHRoaXMpIHtcbiAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICBpZiAodGhpc1trZXldICE9PSBzdGF0ZVtrZXldKSB7XG4gICAgICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgICAgIHRoaXNba2V5XSA9IHN0YXRlW2tleV07XG4gICAgICAgICAgICAgICAgaWYgKGtleSA9PT0gJ3N0YXJ0RGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0YXJ0RGF0ZUNoYW5nZS5lbWl0KHRoaXMuX3N0YXJ0RGF0ZSk7XG4gICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgIGNvbnRpbnVlO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBpZiAoa2V5ID09PSAnZW5kRGF0ZScpIHtcbiAgICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLmVuZERhdGVDaGFuZ2UuZW1pdCh0aGlzLl9lbmREYXRlKTtcbiAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMuY2FsZW5kYXJTdGF0ZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICB9XG5cbiAgc2V0Q2FsZW5kYXJQYWdlKHllYXJzOiBudW1iZXIsIG1vbnRocyA9IDAsIHNldE1vbnRoPzogbnVtYmVyKSB7XG4gICAgY29uc3QgeWVhciA9IHRoaXMuY2FsZW5kYXJEYXRlLmdldEZ1bGxZZWFyKCk7XG4gICAgY29uc3QgbW9udGggPSB0aGlzLmNhbGVuZGFyRGF0ZS5nZXRNb250aCgpO1xuICAgIGNvbnN0IGQgPSBuZXcgRGF0ZSh5ZWFyLCBtb250aCwgMSk7XG5cbiAgICB5ZWFycyAmJiBkLnNldEZ1bGxZZWFyKGQuZ2V0RnVsbFllYXIoKSArIHllYXJzKTtcbiAgICBtb250aHMgJiYgZC5zZXRNb250aChkLmdldE1vbnRoKCkgKyBtb250aHMpO1xuICAgIHR5cGVvZiBzZXRNb250aCA9PT0gJ251bWJlcicgJiYgZC5zZXRNb250aChzZXRNb250aCk7XG5cbiAgICB0aGlzLmNhbGVuZGFyRGF0ZSA9IGQ7XG4gIH1cblxuICBoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soZGlyZWN0aW9uOiAncHJldicgfCAnbmV4dCcsIHllYXJzID0gZmFsc2UpIHtcbiAgICBpZiAoZGlyZWN0aW9uID09PSAncHJldicpIHtcbiAgICAgIGlmICh5ZWFycykge1xuICAgICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSh0aGlzLnZpZXcgPT09ICd5ZWFycycgPyAtMTAgOiAtMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudmlldyAhPT0gJ2RheXMnKSB7XG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKC0xKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICB0aGlzLnNldENhbGVuZGFyUGFnZSgwLCAtMSk7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIGlmIChkaXJlY3Rpb24gPT09ICduZXh0Jykge1xuICAgICAgaWYgKHllYXJzKSB7XG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKHRoaXMudmlldyA9PT0gJ3llYXJzJyA/IDEwIDogMSk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgaWYgKHRoaXMudmlldyAhPT0gJ2RheXMnKSB7XG4gICAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKDEpO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIHRoaXMuc2V0Q2FsZW5kYXJQYWdlKDAsIDEpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBDbGVhciBzdGFydERhdGUgYW5kIGVuZERhdGVcbiAgICogQHR5cGUgdm9pZFxuICAgKi9cbiAgcHVibGljIGNsZWFyRGF0ZXMoKSB7XG4gICAgdGhpcy5jYWxlbmRhclNlcnZpY2UudXBkYXRlKHsgZW5kRGF0ZTogbnVsbCB9KTtcbiAgICB0aGlzLmNhbGVuZGFyU2VydmljZS51cGRhdGUoeyBzdGFydERhdGU6IG51bGwgfSk7XG4gIH1cbn1cbiIsIjxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGNhbGVuZGFyIG9mIGNhbGVuZGFyc0FycmF5OyBsZXQgaT1pbmRleDtcIj5cclxuICA8ZGl2IFtuZ0NsYXNzXT1cInZpZXcgfCBjYWxlbmRhckNsYXNzVmlld1wiPlxyXG4gICAgPGMtY2FsZW5kYXItbmF2aWdhdGlvblxyXG4gICAgICBbYWRkTW9udGhzXT1cImlcIlxyXG4gICAgICBbbmF2aWdhdGlvbl09XCJuYXZpZ2F0aW9uXCJcclxuICAgICAgKG5hdmlnYXRpb25DbGljayk9XCJoYW5kbGVOYXZpZ2F0aW9uQ2xpY2soJGV2ZW50LmRpcmVjdGlvbiwgJGV2ZW50LnllYXJzKVwiXHJcbiAgICA+PC9jLWNhbGVuZGFyLW5hdmlnYXRpb24+XHJcblxyXG4gICAgPGMtY2FsZW5kYXItbW9udGhcclxuICAgICAgW2FkZE1vbnRoc109XCJpXCJcclxuICAgICAgW2ZpcnN0RGF5T2ZXZWVrXT1cImZpcnN0RGF5T2ZXZWVrXCJcclxuICAgICAgW3dlZWtkYXlGb3JtYXRdPVwid2Vla2RheUZvcm1hdFwiXHJcbiAgICA+PC9jLWNhbGVuZGFyLW1vbnRoPlxyXG4gIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuIl19
|
|
@@ -34,10 +34,10 @@ export class DatePickerComponent extends DateRangePickerComponent {
|
|
|
34
34
|
}
|
|
35
35
|
}
|
|
36
36
|
DatePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DatePickerComponent, deps: [{ token: i1.BreakpointObserver }], target: i0.ɵɵFactoryTarget.Component });
|
|
37
|
-
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DatePickerComponent, selector: "c-date-picker", inputs: { placeholder: "placeholder", date: "date" }, outputs: { startDateChange: "dateChange" }, exportAs: ["cDatePicker"], usesInheritance: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"date-picker picker\" [visible]=\"visible\">\
|
|
37
|
+
DatePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: DatePickerComponent, selector: "c-date-picker", inputs: { placeholder: "placeholder", date: "date" }, outputs: { startDateChange: "dateChange" }, exportAs: ["cDatePicker"], usesInheritance: true, ngImport: i0, template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"date-picker picker\" [visible]=\"visible\">\n <c-input-group [caret]=\"false\"\n [disabled]=\"disabled ?? dropdown.visible\"\n [sizing]=\"size ?? ''\"\n cDropdownToggle\n class=\"picker-input-group\"\n >\n <input (change)=\"handleStartDateInputChange($event)\"\n [formControl]=\"startDateInput\"\n [ngClass]=\"{hover: !!inputStartHoverValue}\"\n [placeholder]=\"startDatePlaceholder ?? placeholder[0]\"\n cFormControl\n #startDateElementRef\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [attr.disabled]=\"disabled ? '' : null\"\n pattern=\"[1-9]*\"\n [readonly]=\"inputReadOnly ?? null\"\n >\n <span *ngIf=\"range && separator !== false\" cInputGroupText>\n <span class=\"picker-input-group-icon date-picker-arrow-icon\"></span>\n </span>\n <input (change)=\"handleEndDateInputChange($event)\"\n *ngIf=\"range\"\n [formControl]=\"endDateInput\"\n [ngClass]=\"{hover: !!inputEndHoverValue}\"\n [placeholder]=\"endDatePlaceholder ?? placeholder[1]\"\n cFormControl\n #endDateElementRef\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [attr.disabled]=\"disabled ? '' : null\"\n pattern=\"[1-9]*\"\n [readonly]=\"(inputReadOnly || !startDate) ?? null\"\n >\n <span *ngIf=\"indicator || cleaner\" cInputGroupText>\n <span *ngIf=\"indicator\" class=\"picker-input-group-indicator\">\n <span class=\"picker-input-group-icon date-picker-input-icon\"></span>\n </span>\n <span (click)=\"!disabled && handleClear($event)\" *ngIf=\"cleaner && startDate &&!disabled\" class=\"picker-input-group-cleaner\" role=\"button\">\n <span class=\"picker-input-group-icon date-picker-cleaner-icon\"></span>\n </span>\n </span>\n\n </c-input-group>\n <div cDropdownMenu>\n <div class=\"date-picker-body\">\n <ng-template [ngIf]=\"!isMobile\">\n <div *ngIf=\"ranges\" class=\"date-picker-ranges\">\n <button (click)=\"setCustomRange(customRange)\"\n *ngFor=\"let customRange of customRanges\"\n [color]=\"rangesButtonsColor\"\n [size]=\"rangesButtonsSize\"\n [variant]=\"rangesButtonsVariant\"\n cButton>\n {{getCustomRangeKey(customRange)}}\n </button>\n </div>\n </ng-template>\n <c-calendar\n (calendarCellHover)=\"handleCalendarCellHover($event)\"\n (calendarDateChange)=\"handleCalendarDateChange($event)\"\n (endDateChange)=\"handleEndDateChange($event)\"\n (startDateChange)=\"handleStartDateChange($event)\"\n [calendarDate]=\"calendarDate\"\n [calendars]=\"isMobile ? 1 : calendars\"\n [dateFilter]=\"dateFilter\"\n [disabledDates]=\"disabledDates\"\n [endDate]=\"endDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [locale]=\"locale\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [navigation]=\"navigation\"\n [range]=\"range\"\n [startDate]=\"startDate\"\n [navYearFirst]=\"navYearFirst\"\n [dayFormat]=\"dayFormat\"\n [weekdayFormat]=\"weekdayFormat\"\n class=\"date-picker-calendars\"\n ></c-calendar>\n <div *ngIf=\"false && timepicker\" class=\"date-picker-timepickers\">\n <!-- todo-->\n <c-time-picker\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!startDate\"\n [time]=\"startDate ?? undefined\"\n (timeChange)=\"handleStartTimeChange($event)\"\n ></c-time-picker>\n <c-time-picker\n *ngIf=\"range\"\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!endDate\"\n [time]=\"endDate ?? undefined\"\n (timeChange)=\"handleEndTimeChange($event)\"\n ></c-time-picker>\n </div>\n </div>\n <div *ngIf=\"templates?.datePickerFooter\" class=\"picker-footer\">\n <ng-container *ngTemplateOutlet=\"templates?.datePickerFooter; context: {$implicit: dropdown}\"></ng-container>\n </div>\n </div>\n <ng-content></ng-content>\n</c-dropdown>\n", styles: [""], 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: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.PatternValidator, selector: "[pattern][formControlName],[pattern][formControl],[pattern][ngModel]", inputs: ["pattern"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i4.ButtonDirective, selector: "[cButton]", inputs: ["active", "color", "disabled", "shape", "size", "type", "variant"], exportAs: ["cButton"] }, { kind: "component", type: i5.CalendarComponent, selector: "c-calendar", inputs: ["calendarDate", "calendars", "dayFormat", "disabledDates", "startDate", "endDate", "firstDayOfWeek", "locale", "maxDate", "minDate", "navigation", "navYearFirst", "range", "view", "weekdayFormat", "dateFilter"], outputs: ["calendarCellHover", "calendarDateChange", "endDateChange", "startDateChange", "viewChange"], exportAs: ["cCalendar"] }, { kind: "directive", type: i6.FormControlDirective, selector: "input[cFormControl], textarea[cFormControl]", inputs: ["sizing", "valid", "type", "plaintext"] }, { kind: "component", type: i7.InputGroupComponent, selector: "c-input-group", inputs: ["sizing"] }, { kind: "directive", type: i8.InputGroupTextDirective, selector: "[cInputGroupText]" }, { kind: "component", type: i9.DropdownComponent, selector: "c-dropdown", inputs: ["alignment", "autoClose", "dark", "direction", "placement", "popper", "popperOptions", "variant", "visible"], outputs: ["visibleChange"], exportAs: ["cDropdown"] }, { kind: "directive", type: i9.DropdownToggleDirective, selector: "[cDropdownToggle]", inputs: ["dropdownComponent", "disabled", "caret", "split"], exportAs: ["cDropdownToggle"] }, { kind: "directive", type: i10.DropdownMenuDirective, selector: "[cDropdownMenu]", inputs: ["alignment", "visible", "dark"], exportAs: ["cDropdownMenu"] }, { kind: "component", type: i11.TimePickerComponent, selector: "c-time-picker", inputs: ["cleaner", "dateTimeFormatOptions", "disabled", "filterHours", "filterMinutes", "filterSeconds", "indicator", "inputReadOnly", "locale", "placeholder", "seconds", "size", "time", "variant", "visible"], outputs: ["timeChange"], exportAs: ["cTimePicker"] }] });
|
|
38
38
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: DatePickerComponent, decorators: [{
|
|
39
39
|
type: Component,
|
|
40
|
-
args: [{ selector: 'c-date-picker', exportAs: 'cDatePicker', template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"date-picker picker\" [visible]=\"visible\">\
|
|
40
|
+
args: [{ selector: 'c-date-picker', exportAs: 'cDatePicker', template: "<c-dropdown #dropdown=\"cDropdown\" [autoClose]=\"'outside'\" class=\"date-picker picker\" [visible]=\"visible\">\n <c-input-group [caret]=\"false\"\n [disabled]=\"disabled ?? dropdown.visible\"\n [sizing]=\"size ?? ''\"\n cDropdownToggle\n class=\"picker-input-group\"\n >\n <input (change)=\"handleStartDateInputChange($event)\"\n [formControl]=\"startDateInput\"\n [ngClass]=\"{hover: !!inputStartHoverValue}\"\n [placeholder]=\"startDatePlaceholder ?? placeholder[0]\"\n cFormControl\n #startDateElementRef\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [attr.disabled]=\"disabled ? '' : null\"\n pattern=\"[1-9]*\"\n [readonly]=\"inputReadOnly ?? null\"\n >\n <span *ngIf=\"range && separator !== false\" cInputGroupText>\n <span class=\"picker-input-group-icon date-picker-arrow-icon\"></span>\n </span>\n <input (change)=\"handleEndDateInputChange($event)\"\n *ngIf=\"range\"\n [formControl]=\"endDateInput\"\n [ngClass]=\"{hover: !!inputEndHoverValue}\"\n [placeholder]=\"endDatePlaceholder ?? placeholder[1]\"\n cFormControl\n #endDateElementRef\n [attr.tabindex]=\"disabled ? -1 : 0\"\n [attr.disabled]=\"disabled ? '' : null\"\n pattern=\"[1-9]*\"\n [readonly]=\"(inputReadOnly || !startDate) ?? null\"\n >\n <span *ngIf=\"indicator || cleaner\" cInputGroupText>\n <span *ngIf=\"indicator\" class=\"picker-input-group-indicator\">\n <span class=\"picker-input-group-icon date-picker-input-icon\"></span>\n </span>\n <span (click)=\"!disabled && handleClear($event)\" *ngIf=\"cleaner && startDate &&!disabled\" class=\"picker-input-group-cleaner\" role=\"button\">\n <span class=\"picker-input-group-icon date-picker-cleaner-icon\"></span>\n </span>\n </span>\n\n </c-input-group>\n <div cDropdownMenu>\n <div class=\"date-picker-body\">\n <ng-template [ngIf]=\"!isMobile\">\n <div *ngIf=\"ranges\" class=\"date-picker-ranges\">\n <button (click)=\"setCustomRange(customRange)\"\n *ngFor=\"let customRange of customRanges\"\n [color]=\"rangesButtonsColor\"\n [size]=\"rangesButtonsSize\"\n [variant]=\"rangesButtonsVariant\"\n cButton>\n {{getCustomRangeKey(customRange)}}\n </button>\n </div>\n </ng-template>\n <c-calendar\n (calendarCellHover)=\"handleCalendarCellHover($event)\"\n (calendarDateChange)=\"handleCalendarDateChange($event)\"\n (endDateChange)=\"handleEndDateChange($event)\"\n (startDateChange)=\"handleStartDateChange($event)\"\n [calendarDate]=\"calendarDate\"\n [calendars]=\"isMobile ? 1 : calendars\"\n [dateFilter]=\"dateFilter\"\n [disabledDates]=\"disabledDates\"\n [endDate]=\"endDate\"\n [firstDayOfWeek]=\"firstDayOfWeek\"\n [locale]=\"locale\"\n [maxDate]=\"maxDate\"\n [minDate]=\"minDate\"\n [navigation]=\"navigation\"\n [range]=\"range\"\n [startDate]=\"startDate\"\n [navYearFirst]=\"navYearFirst\"\n [dayFormat]=\"dayFormat\"\n [weekdayFormat]=\"weekdayFormat\"\n class=\"date-picker-calendars\"\n ></c-calendar>\n <div *ngIf=\"false && timepicker\" class=\"date-picker-timepickers\">\n <!-- todo-->\n <c-time-picker\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!startDate\"\n [time]=\"startDate ?? undefined\"\n (timeChange)=\"handleStartTimeChange($event)\"\n ></c-time-picker>\n <c-time-picker\n *ngIf=\"range\"\n variant=\"select\"\n [locale]=\"locale\"\n [disabled]=\"!endDate\"\n [time]=\"endDate ?? undefined\"\n (timeChange)=\"handleEndTimeChange($event)\"\n ></c-time-picker>\n </div>\n </div>\n <div *ngIf=\"templates?.datePickerFooter\" class=\"picker-footer\">\n <ng-container *ngTemplateOutlet=\"templates?.datePickerFooter; context: {$implicit: dropdown}\"></ng-container>\n </div>\n </div>\n <ng-content></ng-content>\n</c-dropdown>\n" }]
|
|
41
41
|
}], ctorParameters: function () { return [{ type: i1.BreakpointObserver }]; }, propDecorators: { placeholder: [{
|
|
42
42
|
type: Input
|
|
43
43
|
}], date: [{
|
|
@@ -46,4 +46,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
|
|
|
46
46
|
type: Output,
|
|
47
47
|
args: ['dateChange']
|
|
48
48
|
}] } });
|
|
49
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
49
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29yZXVpLWFuZ3VsYXIvc3JjL2xpYi9kYXRlLXBpY2tlci9kYXRlLXBpY2tlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb3JldWktYW5ndWxhci9zcmMvbGliL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyL2RhdGUtcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFdkUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFRaEUsTUFBTSxPQUFPLG1CQUFvQixTQUFRLHdCQUF3QjtJQUUvRCxZQUNFLGtCQUFzQztRQUV0QyxLQUFLLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQVdWLFlBQU8sR0FBRyxJQUFJLENBQUM7UUFFZixnQkFBVyxHQUFXLGFBQWEsQ0FBQztRQVd0RCxhQUFhO1FBQ2tCLG9CQUFlLEdBQThCLElBQUksWUFBWSxFQUFlLENBQUM7SUF4QjVHLENBQUM7SUFFRCxJQUFvQixLQUFLO1FBQ3ZCLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztJQUVELElBQW9CLFNBQVM7UUFDM0IsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBTUQsSUFDSSxJQUFJLENBQUMsS0FBOEI7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksSUFBSTtRQUNOLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQztJQUN4QixDQUFDOztnSEEzQlUsbUJBQW1CO29HQUFuQixtQkFBbUIseU1DVmhDLDZ4SUF3R0E7MkZEOUZhLG1CQUFtQjtrQkFOL0IsU0FBUzsrQkFDRSxlQUFlLFlBR2YsYUFBYTt5R0FvQkwsV0FBVztzQkFBNUIsS0FBSztnQkFHRixJQUFJO3NCQURQLEtBQUs7Z0JBVXlCLGVBQWU7c0JBQTdDLE1BQU07dUJBQUMsWUFBWSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcmVha3BvaW50T2JzZXJ2ZXIgfSBmcm9tICdAYW5ndWxhci9jZGsvbGF5b3V0JztcbmltcG9ydCB7IERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCB9IGZyb20gJy4uL2RhdGUtcmFuZ2UtcGlja2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYy1kYXRlLXBpY2tlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi4vZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIvZGF0ZS1yYW5nZS1waWNrZXIuY29tcG9uZW50LnNjc3MnXSxcbiAgZXhwb3J0QXM6ICdjRGF0ZVBpY2tlcidcbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckNvbXBvbmVudCBleHRlbmRzIERhdGVSYW5nZVBpY2tlckNvbXBvbmVudCB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgYnJlYWtwb2ludE9ic2VydmVyOiBCcmVha3BvaW50T2JzZXJ2ZXJcbiAgKSB7XG4gICAgc3VwZXIoYnJlYWtwb2ludE9ic2VydmVyKTtcbiAgfVxuXG4gIHB1YmxpYyBvdmVycmlkZSBnZXQgcmFuZ2UoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIGZhbHNlO1xuICB9XG5cbiAgcHVibGljIG92ZXJyaWRlIGdldCBjYWxlbmRhcnMoKSB7XG4gICAgcmV0dXJuIDE7XG4gIH1cblxuICBvdmVycmlkZSByZWFkb25seSBlbmREYXRlID0gbnVsbDtcblxuICBASW5wdXQoKSBvdmVycmlkZSBwbGFjZWhvbGRlcjogc3RyaW5nID0gJ1NlbGVjdCBkYXRlJztcblxuICBASW5wdXQoKVxuICBzZXQgZGF0ZSh2YWx1ZTogRGF0ZSB8IG51bGwgfCB1bmRlZmluZWQpIHtcbiAgICB0aGlzLnN0YXJ0RGF0ZSA9IHZhbHVlO1xuICB9XG5cbiAgZ2V0IGRhdGUoKSB7XG4gICAgcmV0dXJuIHRoaXMuc3RhcnREYXRlO1xuICB9XG5cbiAgLy8gQHRzLWlnbm9yZVxuICBAT3V0cHV0KCdkYXRlQ2hhbmdlJykgb3ZlcnJpZGUgc3RhcnREYXRlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8RGF0ZSB8IG51bGw+ID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlIHwgbnVsbD4oKTtcblxufVxuIiwiPGMtZHJvcGRvd24gI2Ryb3Bkb3duPVwiY0Ryb3Bkb3duXCIgW2F1dG9DbG9zZV09XCInb3V0c2lkZSdcIiBjbGFzcz1cImRhdGUtcGlja2VyIHBpY2tlclwiIFt2aXNpYmxlXT1cInZpc2libGVcIj5cbiAgPGMtaW5wdXQtZ3JvdXAgW2NhcmV0XT1cImZhbHNlXCJcbiAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkID8/IGRyb3Bkb3duLnZpc2libGVcIlxuICAgICAgICAgICAgICAgICBbc2l6aW5nXT1cInNpemUgPz8gJydcIlxuICAgICAgICAgICAgICAgICBjRHJvcGRvd25Ub2dnbGVcbiAgICAgICAgICAgICAgICAgY2xhc3M9XCJwaWNrZXItaW5wdXQtZ3JvdXBcIlxuICA+XG4gICAgPGlucHV0IChjaGFuZ2UpPVwiaGFuZGxlU3RhcnREYXRlSW5wdXRDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzdGFydERhdGVJbnB1dFwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cIntob3ZlcjogISFpbnB1dFN0YXJ0SG92ZXJWYWx1ZX1cIlxuICAgICAgICAgICBbcGxhY2Vob2xkZXJdPVwic3RhcnREYXRlUGxhY2Vob2xkZXIgPz8gcGxhY2Vob2xkZXJbMF1cIlxuICAgICAgICAgICBjRm9ybUNvbnRyb2xcbiAgICAgICAgICAgI3N0YXJ0RGF0ZUVsZW1lbnRSZWZcbiAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMS05XSpcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwiaW5wdXRSZWFkT25seSA/PyBudWxsXCJcbiAgICA+XG4gICAgPHNwYW4gKm5nSWY9XCJyYW5nZSAmJiBzZXBhcmF0b3IgIT09IGZhbHNlXCIgY0lucHV0R3JvdXBUZXh0PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBpY2tlci1pbnB1dC1ncm91cC1pY29uIGRhdGUtcGlja2VyLWFycm93LWljb25cIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPGlucHV0IChjaGFuZ2UpPVwiaGFuZGxlRW5kRGF0ZUlucHV0Q2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAqbmdJZj1cInJhbmdlXCJcbiAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImVuZERhdGVJbnB1dFwiXG4gICAgICAgICAgIFtuZ0NsYXNzXT1cIntob3ZlcjogISFpbnB1dEVuZEhvdmVyVmFsdWV9XCJcbiAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cImVuZERhdGVQbGFjZWhvbGRlciA/PyBwbGFjZWhvbGRlclsxXVwiXG4gICAgICAgICAgIGNGb3JtQ29udHJvbFxuICAgICAgICAgICAjZW5kRGF0ZUVsZW1lbnRSZWZcbiAgICAgICAgICAgW2F0dHIudGFiaW5kZXhdPVwiZGlzYWJsZWQgPyAtMSA6IDBcIlxuICAgICAgICAgICBbYXR0ci5kaXNhYmxlZF09XCJkaXNhYmxlZCA/ICcnIDogbnVsbFwiXG4gICAgICAgICAgIHBhdHRlcm49XCJbMS05XSpcIlxuICAgICAgICAgICBbcmVhZG9ubHldPVwiKGlucHV0UmVhZE9ubHkgfHwgIXN0YXJ0RGF0ZSkgPz8gbnVsbFwiXG4gICAgPlxuICAgIDxzcGFuICpuZ0lmPVwiaW5kaWNhdG9yIHx8IGNsZWFuZXJcIiBjSW5wdXRHcm91cFRleHQ+XG4gICAgICA8c3BhbiAqbmdJZj1cImluZGljYXRvclwiIGNsYXNzPVwicGlja2VyLWlucHV0LWdyb3VwLWluZGljYXRvclwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cInBpY2tlci1pbnB1dC1ncm91cC1pY29uIGRhdGUtcGlja2VyLWlucHV0LWljb25cIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgICA8c3BhbiAoY2xpY2spPVwiIWRpc2FibGVkICYmIGhhbmRsZUNsZWFyKCRldmVudClcIiAqbmdJZj1cImNsZWFuZXIgJiYgc3RhcnREYXRlICYmIWRpc2FibGVkXCIgY2xhc3M9XCJwaWNrZXItaW5wdXQtZ3JvdXAtY2xlYW5lclwiIHJvbGU9XCJidXR0b25cIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJwaWNrZXItaW5wdXQtZ3JvdXAtaWNvbiBkYXRlLXBpY2tlci1jbGVhbmVyLWljb25cIj48L3NwYW4+XG4gICAgICA8L3NwYW4+XG4gICAgPC9zcGFuPlxuXG4gIDwvYy1pbnB1dC1ncm91cD5cbiAgPGRpdiBjRHJvcGRvd25NZW51PlxuICAgIDxkaXYgY2xhc3M9XCJkYXRlLXBpY2tlci1ib2R5XCI+XG4gICAgICA8bmctdGVtcGxhdGUgW25nSWZdPVwiIWlzTW9iaWxlXCI+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJyYW5nZXNcIiBjbGFzcz1cImRhdGUtcGlja2VyLXJhbmdlc1wiPlxuICAgICAgICAgIDxidXR0b24gKGNsaWNrKT1cInNldEN1c3RvbVJhbmdlKGN1c3RvbVJhbmdlKVwiXG4gICAgICAgICAgICAgICAgICAqbmdGb3I9XCJsZXQgY3VzdG9tUmFuZ2Ugb2YgY3VzdG9tUmFuZ2VzXCJcbiAgICAgICAgICAgICAgICAgIFtjb2xvcl09XCJyYW5nZXNCdXR0b25zQ29sb3JcIlxuICAgICAgICAgICAgICAgICAgW3NpemVdPVwicmFuZ2VzQnV0dG9uc1NpemVcIlxuICAgICAgICAgICAgICAgICAgW3ZhcmlhbnRdPVwicmFuZ2VzQnV0dG9uc1ZhcmlhbnRcIlxuICAgICAgICAgICAgICAgICAgY0J1dHRvbj5cbiAgICAgICAgICAgIHt7Z2V0Q3VzdG9tUmFuZ2VLZXkoY3VzdG9tUmFuZ2UpfX1cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgPGMtY2FsZW5kYXJcbiAgICAgICAgKGNhbGVuZGFyQ2VsbEhvdmVyKT1cImhhbmRsZUNhbGVuZGFyQ2VsbEhvdmVyKCRldmVudClcIlxuICAgICAgICAoY2FsZW5kYXJEYXRlQ2hhbmdlKT1cImhhbmRsZUNhbGVuZGFyRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKGVuZERhdGVDaGFuZ2UpPVwiaGFuZGxlRW5kRGF0ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgKHN0YXJ0RGF0ZUNoYW5nZSk9XCJoYW5kbGVTdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiXG4gICAgICAgIFtjYWxlbmRhckRhdGVdPVwiY2FsZW5kYXJEYXRlXCJcbiAgICAgICAgW2NhbGVuZGFyc109XCJpc01vYmlsZSA/IDEgOiBjYWxlbmRhcnNcIlxuICAgICAgICBbZGF0ZUZpbHRlcl09XCJkYXRlRmlsdGVyXCJcbiAgICAgICAgW2Rpc2FibGVkRGF0ZXNdPVwiZGlzYWJsZWREYXRlc1wiXG4gICAgICAgIFtlbmREYXRlXT1cImVuZERhdGVcIlxuICAgICAgICBbZmlyc3REYXlPZldlZWtdPVwiZmlyc3REYXlPZldlZWtcIlxuICAgICAgICBbbG9jYWxlXT1cImxvY2FsZVwiXG4gICAgICAgIFttYXhEYXRlXT1cIm1heERhdGVcIlxuICAgICAgICBbbWluRGF0ZV09XCJtaW5EYXRlXCJcbiAgICAgICAgW25hdmlnYXRpb25dPVwibmF2aWdhdGlvblwiXG4gICAgICAgIFtyYW5nZV09XCJyYW5nZVwiXG4gICAgICAgIFtzdGFydERhdGVdPVwic3RhcnREYXRlXCJcbiAgICAgICAgW25hdlllYXJGaXJzdF09XCJuYXZZZWFyRmlyc3RcIlxuICAgICAgICBbZGF5Rm9ybWF0XT1cImRheUZvcm1hdFwiXG4gICAgICAgIFt3ZWVrZGF5Rm9ybWF0XT1cIndlZWtkYXlGb3JtYXRcIlxuICAgICAgICBjbGFzcz1cImRhdGUtcGlja2VyLWNhbGVuZGFyc1wiXG4gICAgICA+PC9jLWNhbGVuZGFyPlxuICAgICAgPGRpdiAqbmdJZj1cImZhbHNlICYmIHRpbWVwaWNrZXJcIiBjbGFzcz1cImRhdGUtcGlja2VyLXRpbWVwaWNrZXJzXCI+XG4gICAgICAgIDwhLS0gdG9kby0tPlxuICAgICAgICA8Yy10aW1lLXBpY2tlclxuICAgICAgICAgIHZhcmlhbnQ9XCJzZWxlY3RcIlxuICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIXN0YXJ0RGF0ZVwiXG4gICAgICAgICAgW3RpbWVdPVwic3RhcnREYXRlID8/IHVuZGVmaW5lZFwiXG4gICAgICAgICAgKHRpbWVDaGFuZ2UpPVwiaGFuZGxlU3RhcnRUaW1lQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9jLXRpbWUtcGlja2VyPlxuICAgICAgICA8Yy10aW1lLXBpY2tlclxuICAgICAgICAgICpuZ0lmPVwicmFuZ2VcIlxuICAgICAgICAgIHZhcmlhbnQ9XCJzZWxlY3RcIlxuICAgICAgICAgIFtsb2NhbGVdPVwibG9jYWxlXCJcbiAgICAgICAgICBbZGlzYWJsZWRdPVwiIWVuZERhdGVcIlxuICAgICAgICAgIFt0aW1lXT1cImVuZERhdGUgPz8gdW5kZWZpbmVkXCJcbiAgICAgICAgICAodGltZUNoYW5nZSk9XCJoYW5kbGVFbmRUaW1lQ2hhbmdlKCRldmVudClcIlxuICAgICAgICA+PC9jLXRpbWUtcGlja2VyPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gICAgPGRpdiAqbmdJZj1cInRlbXBsYXRlcz8uZGF0ZVBpY2tlckZvb3RlclwiIGNsYXNzPVwicGlja2VyLWZvb3RlclwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdUZW1wbGF0ZU91dGxldD1cInRlbXBsYXRlcz8uZGF0ZVBpY2tlckZvb3RlcjsgY29udGV4dDogeyRpbXBsaWNpdDogZHJvcGRvd259XCI+PC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8bmctY29udGVudD48L25nLWNvbnRlbnQ+XG48L2MtZHJvcGRvd24+XG4iXX0=
|