UNPKG

@yoyoboot/l-52abp-ng

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 9.1.13.

126 lines 16 kB
import { Component, EventEmitter, forwardRef, Input, Output } from '@angular/core'; import { DatePickerBase } from '../date-picker-base'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import * as moment from 'moment'; import * as i0 from "@angular/core"; import * as i1 from "ng-zorro-antd/date-picker"; import * as i2 from "@angular/forms"; export class RangePickerComponent extends DatePickerBase { constructor() { super(); /** * 展示的日期格式,见nzFormat特别说明 */ this.nzFormat = 'yyyy-MM-dd'; /** * 点击确定按钮的回调 */ this.nzOnOk = new EventEmitter(); /** * 时间发生变化的回调 */ this.ngModelChange = new EventEmitter(); /** * 待选日期发生变化的回调 */ this.nzOnCalendarChange = new EventEmitter(); } /** * 点击确定按钮的回调 * @param event 数据 */ onNzOk(event) { if (Array.isArray(event) && moment.isDate(event[0] && moment.isDate(event[1]))) { this.nzOnOk.emit(event.map(o => { return moment(o); })); } else { this.nzOnOk.emit(undefined); } } /** * 时间发生变化的回调 * @param event 数据 */ onNgModelChangeChange(event) { if (Array.isArray(event) && event.length === 2) { this.ngModelChange.emit(event.map(o => { return moment(o); })); } else { this.ngModelChange.emit(undefined); } } /** * 待选日期发生变化的回调 * @param event 数据 */ onNzOnCalendarChange(event) { if (Array.isArray(event) && event.length === 2) { this.nzOnCalendarChange.emit(event.map(o => { return moment(o); })); } else { this.nzOnCalendarChange.emit(undefined); } } registerOnChange(fn) { this.ngModelChange.emit = fn; } registerOnTouched(fn) { } setDisabledState(isDisabled) { this.nzDisabled = isDisabled; } writeValue(obj) { if (obj && Array.isArray(obj) && obj.length === 2 && moment.isMoment(obj[0]) && moment.isMoment(obj[1])) { this.value = [obj[0].toDate(), obj[1].toDate()]; } else { this.value = obj; } } } RangePickerComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RangePickerComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); RangePickerComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.13", type: RangePickerComponent, selector: "l-range-picker", inputs: { ngModel: "ngModel", nzDisabledTime: "nzDisabledTime", nzFormat: "nzFormat", nzRanges: "nzRanges", nzRenderExtraFooter: "nzRenderExtraFooter", nzShowTime: "nzShowTime", nzPlaceHolder: "nzPlaceHolder" }, outputs: { nzOnOk: "nzOnOk", ngModelChange: "ngModelChange", nzOnCalendarChange: "nzOnCalendarChange" }, providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RangePickerComponent), multi: true, }], usesInheritance: true, ngImport: i0, template: "<nz-range-picker\n [nzAllowClear]='nzAllowClear'\n [nzAutoFocus]='nzAutoFocus'\n [nzDateRender]='nzDateRender'\n [nzDisabled]='nzDisabled'\n [nzDisabledDate]='nzDisabledDate'\n [nzLocale]='nzLocale'\n [nzPopupStyle]='nzPopupStyle'\n [nzDropdownClassName]='nzDropdownClassName'\n [nzSize]='nzSize'\n [nzDisabledTime]='nzDisabledTime'\n [nzFormat]='nzFormat'\n [nzRenderExtraFooter]='nzRenderExtraFooter'\n [nzShowTime]='nzShowTime'\n [nzPlaceHolder]='nzPlaceHolder'\n [nzRanges]='nzRanges'\n [(ngModel)]='value'\n (nzOnOk)='onNzOk($event)'\n (ngModelChange)='onNgModelChangeChange($event)'\n (nzOnCalendarChange)='onNzOnCalendarChange($event)'\n (nzOnOpenChange)='onNzOnOpenChange($event)'\n>\n</nz-range-picker>\n", components: [{ type: i1.NzDatePickerComponent, selector: "nz-date-picker,nz-week-picker,nz-month-picker,nz-year-picker,nz-range-picker", inputs: ["nzAllowClear", "nzAutoFocus", "nzDisabled", "nzBorderless", "nzInputReadOnly", "nzInline", "nzPlaceHolder", "nzPopupStyle", "nzSize", "nzShowToday", "nzMode", "nzShowNow", "nzDefaultPickerValue", "nzSeparator", "nzSuffixIcon", "nzBackdrop", "nzId", "nzShowTime", "nzFormat", "nzLocale", "nzOpen", "nzDisabledDate", "nzDropdownClassName", "nzDateRender", "nzDisabledTime", "nzRenderExtraFooter", "nzRanges"], outputs: ["nzOnPanelChange", "nzOnCalendarChange", "nzOnOk", "nzOnOpenChange"], exportAs: ["nzDatePicker"] }], directives: [{ type: i1.NzRangePickerComponent, selector: "nz-range-picker", exportAs: ["nzRangePicker"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.13", ngImport: i0, type: RangePickerComponent, decorators: [{ type: Component, args: [{ selector: 'l-range-picker', templateUrl: './range-picker.component.html', styles: [], providers: [{ provide: NG_VALUE_ACCESSOR, useExisting: forwardRef(() => RangePickerComponent), multi: true, }], }] }], ctorParameters: function () { return []; }, propDecorators: { ngModel: [{ type: Input }], nzDisabledTime: [{ type: Input }], nzFormat: [{ type: Input }], nzRanges: [{ type: Input }], nzRenderExtraFooter: [{ type: Input }], nzShowTime: [{ type: Input }], nzPlaceHolder: [{ type: Input }], nzOnOk: [{ type: Output }], ngModelChange: [{ type: Output }], nzOnCalendarChange: [{ type: Output }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UtcGlja2VyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2wtNTJhYnAtbmcvc3JjL25nLXpvcnJvL2RhdGUtcGlja2VyL3JhbmdlLXBpY2tlci9yYW5nZS1waWNrZXIuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbC01MmFicC1uZy9zcmMvbmctem9ycm8vZGF0ZS1waWNrZXIvcmFuZ2UtcGlja2VyL3JhbmdlLXBpY2tlci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxNQUFNLGVBQWUsQ0FBQztBQUNoRyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDckQsT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sS0FBSyxNQUFNLE1BQU0sUUFBUSxDQUFDOzs7O0FBYWpDLE1BQU0sT0FBTyxvQkFDWCxTQUFRLGNBQWM7SUE0RHRCO1FBQ0UsS0FBSyxFQUFFLENBQUM7UUEzQ1Y7O1dBRUc7UUFDTSxhQUFRLEdBQUcsWUFBWSxDQUFDO1FBdUJqQzs7V0FFRztRQUNPLFdBQU0sR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztRQUV2RDs7V0FFRztRQUNPLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQW1CLENBQUM7UUFFOUQ7O1dBRUc7UUFDTyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBbUIsQ0FBQztJQUtuRSxDQUFDO0lBR0Q7OztPQUdHO0lBQ0gsTUFBTSxDQUFDLEtBQXFCO1FBQzFCLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDOUUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDN0IsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNMO2FBQU07WUFDTCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztTQUM3QjtJQUVILENBQUM7SUFFRDs7O09BR0c7SUFDSCxxQkFBcUIsQ0FBQyxLQUFhO1FBQ2pDLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxLQUFLLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUM5QyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNwQyxPQUFPLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQixDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ0w7YUFBTTtZQUNMLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3BDO0lBQ0gsQ0FBQztJQUVEOzs7T0FHRztJQUNILG9CQUFvQixDQUFDLEtBQWE7UUFDaEMsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxJQUFJLEtBQUssQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzlDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRTtnQkFDekMsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDbkIsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNMO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0gsQ0FBQztJQUdELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLEdBQUcsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxFQUFPO0lBQ3pCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxVQUFtQjtRQUNsQyxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBRUQsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxHQUFHLElBQUksS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDdkcsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNqRDthQUFNO1lBQ0wsSUFBSSxDQUFDLEtBQUssR0FBRyxHQUFHLENBQUM7U0FDbEI7SUFDSCxDQUFDOztrSEEvSFUsb0JBQW9CO3NHQUFwQixvQkFBb0Isc1dBTnBCLENBQUM7WUFDVixPQUFPLEVBQUUsaUJBQWlCO1lBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsb0JBQW9CLENBQUM7WUFDbkQsS0FBSyxFQUFFLElBQUk7U0FDWixDQUFDLGlEQ2RKLCt0QkF1QkE7NEZEUGEsb0JBQW9CO2tCQVZoQyxTQUFTO21CQUFDO29CQUNULFFBQVEsRUFBRSxnQkFBZ0I7b0JBQzFCLFdBQVcsRUFBRSwrQkFBK0I7b0JBQzVDLE1BQU0sRUFBRSxFQUFFO29CQUNWLFNBQVMsRUFBRSxDQUFDOzRCQUNWLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLHFCQUFxQixDQUFDOzRCQUNuRCxLQUFLLEVBQUUsSUFBSTt5QkFDWixDQUFDO2lCQUNIOzBFQWFVLE9BQU87c0JBQWYsS0FBSztnQkFLRyxjQUFjO3NCQUF0QixLQUFLO2dCQUtHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBS0csUUFBUTtzQkFBaEIsS0FBSztnQkFLRyxtQkFBbUI7c0JBQTNCLEtBQUs7Z0JBTUcsVUFBVTtzQkFBbEIsS0FBSztnQkFLRyxhQUFhO3NCQUFyQixLQUFLO2dCQUtJLE1BQU07c0JBQWYsTUFBTTtnQkFLRyxhQUFhO3NCQUF0QixNQUFNO2dCQUtHLGtCQUFrQjtzQkFBM0IsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0ZVBpY2tlckJhc2UgfSBmcm9tICcuLi9kYXRlLXBpY2tlci1iYXNlJztcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBOR19WQUxVRV9BQ0NFU1NPUiB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCAqIGFzIG1vbWVudCBmcm9tICdtb21lbnQnO1xuaW1wb3J0IHsgQ29tcGF0aWJsZURhdGUgfSBmcm9tICduZy16b3Jyby1hbnRkL2RhdGUtcGlja2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbC1yYW5nZS1waWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2UtcGlja2VyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVzOiBbXSxcbiAgcHJvdmlkZXJzOiBbe1xuICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IFJhbmdlUGlja2VyQ29tcG9uZW50KSxcbiAgICBtdWx0aTogdHJ1ZSxcbiAgfV0sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlUGlja2VyQ29tcG9uZW50XG4gIGV4dGVuZHMgRGF0ZVBpY2tlckJhc2VcbiAgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XG5cbiAgLyoqXG4gICAqIOWGhemDqOeUqOeahOWAvFxuICAgKi9cbiAgdmFsdWU6IERhdGVbXTtcblxuICAvKipcbiAgICog5pel5pyfIE1vbWVudFxuICAgKi9cbiAgQElucHV0KCkgbmdNb2RlbDogbW9tZW50Lk1vbWVudFtdO1xuXG4gIC8qKlxuICAgKiDkuI3lj6/pgInmi6nnmoTml7bpl7RcbiAgICovXG4gIEBJbnB1dCgpIG56RGlzYWJsZWRUaW1lOiAoY3VycmVudDogRGF0ZSkgPT4geyBuekRpc2FibGVkSG91cnMsIG56RGlzYWJsZWRNaW51dGVzLCBuekRpc2FibGVkU2Vjb25kcyB9O1xuXG4gIC8qKlxuICAgKiDlsZXnpLrnmoTml6XmnJ/moLzlvI/vvIzop4FuekZvcm1hdOeJueWIq+ivtOaYjlxuICAgKi9cbiAgQElucHV0KCkgbnpGb3JtYXQgPSAneXl5eS1NTS1kZCc7XG5cbiAgLyoqXG4gICAqIOmihOiuvuaXtumXtOiMg+WbtOW/q+aNt+mAieaLqVxuICAgKi9cbiAgQElucHV0KCkgbnpSYW5nZXM6IHsgW2tleTogc3RyaW5nXTogRGF0ZVtdIH0gfCB7IFtrZXk6IHN0cmluZ106ICgpID0+IERhdGVbXSB9O1xuXG4gIC8qKlxuICAgKiDlnKjpnaLmnb/kuK3mt7vliqDpop3lpJbnmoTpobXohJpcbiAgICovXG4gIEBJbnB1dCgpIG56UmVuZGVyRXh0cmFGb290ZXI6IFRlbXBsYXRlUmVmPGFueT4gfCBzdHJpbmcgfCAoKCkgPT4gVGVtcGxhdGVSZWY8YW55PiB8IHN0cmluZyk7XG5cblxuICAvKipcbiAgICog5aKe5Yqg5pe26Ze06YCJ5oup5Yqf6IO9XG4gICAqL1xuICBASW5wdXQoKSBuelNob3dUaW1lOiBvYmplY3QgfCBib29sZWFuO1xuXG4gIC8qKlxuICAgKiDovpPlhaXmoYbmj5DnpLrmloflrZdcbiAgICovXG4gIEBJbnB1dCgpIG56UGxhY2VIb2xkZXI6IHN0cmluZztcblxuICAvKipcbiAgICog54K55Ye756Gu5a6a5oyJ6ZKu55qE5Zue6LCDXG4gICAqL1xuICBAT3V0cHV0KCkgbnpPbk9rID0gbmV3IEV2ZW50RW1pdHRlcjxtb21lbnQuTW9tZW50W10+KCk7XG5cbiAgLyoqXG4gICAqIOaXtumXtOWPkeeUn+WPmOWMlueahOWbnuiwg1xuICAgKi9cbiAgQE91dHB1dCgpIG5nTW9kZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPG1vbWVudC5Nb21lbnRbXT4oKTtcblxuICAvKipcbiAgICog5b6F6YCJ5pel5pyf5Y+R55Sf5Y+Y5YyW55qE5Zue6LCDXG4gICAqL1xuICBAT3V0cHV0KCkgbnpPbkNhbGVuZGFyQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxtb21lbnQuTW9tZW50W10+KCk7XG5cblxuICBjb25zdHJ1Y3RvcigpIHtcbiAgICBzdXBlcigpO1xuICB9XG5cblxuICAvKipcbiAgICog54K55Ye756Gu5a6a5oyJ6ZKu55qE5Zue6LCDXG4gICAqIEBwYXJhbSBldmVudCDmlbDmja5cbiAgICovXG4gIG9uTnpPayhldmVudDogQ29tcGF0aWJsZURhdGUpIHtcbiAgICBpZiAoQXJyYXkuaXNBcnJheShldmVudCkgJiYgbW9tZW50LmlzRGF0ZShldmVudFswXSAmJiBtb21lbnQuaXNEYXRlKGV2ZW50WzFdKSkpIHtcbiAgICAgIHRoaXMubnpPbk9rLmVtaXQoZXZlbnQubWFwKG8gPT4ge1xuICAgICAgICByZXR1cm4gbW9tZW50KG8pO1xuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm56T25Pay5lbWl0KHVuZGVmaW5lZCk7XG4gICAgfVxuXG4gIH1cblxuICAvKipcbiAgICog5pe26Ze05Y+R55Sf5Y+Y5YyW55qE5Zue6LCDXG4gICAqIEBwYXJhbSBldmVudCDmlbDmja5cbiAgICovXG4gIG9uTmdNb2RlbENoYW5nZUNoYW5nZShldmVudDogRGF0ZVtdKSB7XG4gICAgaWYgKEFycmF5LmlzQXJyYXkoZXZlbnQpICYmIGV2ZW50Lmxlbmd0aCA9PT0gMikge1xuICAgICAgdGhpcy5uZ01vZGVsQ2hhbmdlLmVtaXQoZXZlbnQubWFwKG8gPT4ge1xuICAgICAgICByZXR1cm4gbW9tZW50KG8pO1xuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCh1bmRlZmluZWQpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiDlvoXpgInml6XmnJ/lj5HnlJ/lj5jljJbnmoTlm57osINcbiAgICogQHBhcmFtIGV2ZW50IOaVsOaNrlxuICAgKi9cbiAgb25Oek9uQ2FsZW5kYXJDaGFuZ2UoZXZlbnQ6IERhdGVbXSkge1xuICAgIGlmIChBcnJheS5pc0FycmF5KGV2ZW50KSAmJiBldmVudC5sZW5ndGggPT09IDIpIHtcbiAgICAgIHRoaXMubnpPbkNhbGVuZGFyQ2hhbmdlLmVtaXQoZXZlbnQubWFwKG8gPT4ge1xuICAgICAgICByZXR1cm4gbW9tZW50KG8pO1xuICAgICAgfSkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm56T25DYWxlbmRhckNoYW5nZS5lbWl0KHVuZGVmaW5lZCk7XG4gICAgfVxuICB9XG5cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm5nTW9kZWxDaGFuZ2UuZW1pdCA9IGZuO1xuICB9XG5cbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xuICB9XG5cbiAgc2V0RGlzYWJsZWRTdGF0ZShpc0Rpc2FibGVkOiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5uekRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpOiB2b2lkIHtcbiAgICBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSAmJiBvYmoubGVuZ3RoID09PSAyICYmIG1vbWVudC5pc01vbWVudChvYmpbMF0pICYmIG1vbWVudC5pc01vbWVudChvYmpbMV0pKSB7XG4gICAgICB0aGlzLnZhbHVlID0gW29ialswXS50b0RhdGUoKSwgb2JqWzFdLnRvRGF0ZSgpXTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy52YWx1ZSA9IG9iajtcbiAgICB9XG4gIH1cblxufVxuIiwiPG56LXJhbmdlLXBpY2tlclxuICBbbnpBbGxvd0NsZWFyXT0nbnpBbGxvd0NsZWFyJ1xuICBbbnpBdXRvRm9jdXNdPSduekF1dG9Gb2N1cydcbiAgW256RGF0ZVJlbmRlcl09J256RGF0ZVJlbmRlcidcbiAgW256RGlzYWJsZWRdPSduekRpc2FibGVkJ1xuICBbbnpEaXNhYmxlZERhdGVdPSduekRpc2FibGVkRGF0ZSdcbiAgW256TG9jYWxlXT0nbnpMb2NhbGUnXG4gIFtuelBvcHVwU3R5bGVdPSduelBvcHVwU3R5bGUnXG4gIFtuekRyb3Bkb3duQ2xhc3NOYW1lXT0nbnpEcm9wZG93bkNsYXNzTmFtZSdcbiAgW256U2l6ZV09J256U2l6ZSdcbiAgW256RGlzYWJsZWRUaW1lXT0nbnpEaXNhYmxlZFRpbWUnXG4gIFtuekZvcm1hdF09J256Rm9ybWF0J1xuICBbbnpSZW5kZXJFeHRyYUZvb3Rlcl09J256UmVuZGVyRXh0cmFGb290ZXInXG4gIFtuelNob3dUaW1lXT0nbnpTaG93VGltZSdcbiAgW256UGxhY2VIb2xkZXJdPSduelBsYWNlSG9sZGVyJ1xuICBbbnpSYW5nZXNdPSduelJhbmdlcydcbiAgWyhuZ01vZGVsKV09J3ZhbHVlJ1xuICAobnpPbk9rKT0nb25Oek9rKCRldmVudCknXG4gIChuZ01vZGVsQ2hhbmdlKT0nb25OZ01vZGVsQ2hhbmdlQ2hhbmdlKCRldmVudCknXG4gIChuek9uQ2FsZW5kYXJDaGFuZ2UpPSdvbk56T25DYWxlbmRhckNoYW5nZSgkZXZlbnQpJ1xuICAobnpPbk9wZW5DaGFuZ2UpPSdvbk56T25PcGVuQ2hhbmdlKCRldmVudCknXG4+XG48L256LXJhbmdlLXBpY2tlcj5cbiJdfQ==