UNPKG

@ohayojp.com/components

Version:

Common business components of ohayojp.

325 lines 24.1 kB
/** * @fileoverview added by tsickle * Generated from: range.component.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingRequire,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { __decorate, __metadata } from "tslib"; import { Component, EventEmitter, forwardRef, Input, Output, ViewChild } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; import { DomSanitizer } from '@angular/platform-browser'; import { OhayoConfigService, deepMergeKey, fixEndTimeOfRange, getTimeDistance, InputBoolean, } from '@ohayojp.com/util'; import { NzRangePickerComponent } from 'ng-zorro-antd/date-picker'; export class RangePickerComponent { // #endregion /** * @param {?} dom * @param {?} configSrv */ constructor(dom, configSrv) { this.dom = dom; this.value = []; this.ngModelEndChange = new EventEmitter(); // #region Native properties this.nzAllowClear = true; this.nzAutoFocus = false; this.nzOnOpenChange = new EventEmitter(); this.nzShowToday = true; this.nzOnPanelChange = new EventEmitter(); this.nzOnOk = new EventEmitter(); /** @type {?} */ const cog = (/** @type {?} */ (configSrv.merge('dataRange', { nzFormat: 'yyyy-MM-dd', nzAllowClear: true, nzAutoFocus: false, nzPopupStyle: { position: 'relative' }, nzShowToday: true, shortcuts: { enabled: false, closed: true, list: [ { text: '今天', fn: (/** * @return {?} */ () => getTimeDistance('today')), }, { text: '昨天', fn: (/** * @return {?} */ () => getTimeDistance('yesterday')), }, { text: '近3天', fn: (/** * @return {?} */ () => getTimeDistance(-2)), }, { text: '近7天', fn: (/** * @return {?} */ () => getTimeDistance(-6)), }, { text: '本周', fn: (/** * @return {?} */ () => getTimeDistance('week')), }, { text: '本月', fn: (/** * @return {?} */ () => getTimeDistance('month')), }, { text: '全年', fn: (/** * @return {?} */ () => getTimeDistance('year')), }, ], }, }))); this.defaultShortcuts = (/** @type {?} */ (Object.assign({}, cog.shortcuts))); Object.assign(this, cog); } /** * @param {?} val * @return {?} */ set shortcut(val) { /** @type {?} */ const item = (/** @type {?} */ (deepMergeKey({}, true, this.defaultShortcuts, val == null ? {} : val))); if (typeof val === 'boolean') { item.enabled = val; } (item.list || []).forEach((/** * @param {?} i * @return {?} */ i => { i._text = this.dom.bypassSecurityTrustHtml(i.text); })); this._shortcut = item; } /** * @return {?} */ get shortcut() { return this._shortcut; } /** * @param {?} e * @return {?} */ _nzOnOpenChange(e) { this.nzOnOpenChange.emit(e); } /** * @param {?} e * @return {?} */ _nzOnPanelChange(e) { this.nzOnPanelChange.emit(e); } /** * @param {?} e * @return {?} */ _nzOnOk(e) { this.nzOnOk.emit(e); } /** * @param {?} e * @return {?} */ valueChange(e) { e = fixEndTimeOfRange(e); this.onChangeFn(e[0]); this.ngModelEnd = e[1]; this.ngModelEndChange.emit(e[1]); } /** * @param {?} value * @return {?} */ writeValue(value) { this.value = value && this.ngModelEnd ? [value, this.ngModelEnd] : []; } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this.onChangeFn = fn; } /** * @param {?} _fn * @return {?} */ registerOnTouched(_fn) { // this.onTouchedFn = fn; } /** * @param {?} disabled * @return {?} */ setDisabledState(disabled) { this.nzDisabled = disabled; } /** * @param {?} item * @return {?} */ clickShortcut(item) { this.value = item.fn((/** @type {?} */ (this.value))); this.valueChange((/** @type {?} */ (this.value))); if (this._shortcut.closed) { // tslint:disable-next-line:no-string-literal ((/** @type {?} */ (this.comp)))['picker'].hideOverlay(); } } } RangePickerComponent.decorators = [ { type: Component, args: [{ selector: 'range-picker', exportAs: 'rangePicker', template: "<nz-range-picker\n #comp\n [ngModel]=\"value\"\n (ngModelChange)=\"valueChange($event)\"\n [nzAllowClear]=\"nzAllowClear\"\n [nzAutoFocus]=\"nzAutoFocus\"\n [ngClass]=\"nzClassName\"\n [nzDisabled]=\"nzDisabled\"\n [nzSize]=\"nzSize\"\n [nzDisabledDate]=\"nzDisabledDate\"\n [nzLocale]=\"nzLocale\"\n [nzPopupStyle]=\"nzPopupStyle\"\n [nzDropdownClassName]=\"nzDropdownClassName\"\n [ngStyle]=\"nzStyle\"\n [nzPlaceHolder]=\"nzPlaceHolder\"\n (nzOnOpenChange)=\"_nzOnOpenChange($event)\"\n [nzDateRender]=\"nzDateRender\"\n [nzDisabledTime]=\"nzDisabledTime\"\n [nzFormat]=\"nzFormat\"\n [nzRenderExtraFooter]=\"nzRenderExtraFooter || (shortcut?.enabled ? shortcutTpl : null)\"\n [nzShowTime]=\"nzShowTime\"\n [nzShowToday]=\"nzShowToday\"\n [nzMode]=\"nzMode\"\n [nzRanges]=\"nzRanges\"\n (nzOnPanelChange)=\"_nzOnPanelChange($event)\"\n (nzOnOk)=\"_nzOnOk($event)\"\n></nz-range-picker>\n<ng-template #shortcutTpl>\n <a *ngFor=\"let i of shortcut?.list; let first = first\" (click)=\"clickShortcut(i)\" [innerHTML]=\"i._text\" [ngClass]=\"{ 'ml-sm': !first }\"></a>\n</ng-template>\n", providers: [ { provide: NG_VALUE_ACCESSOR, multi: true, useExisting: forwardRef((/** * @return {?} */ () => RangePickerComponent)), }, ] }] } ]; /** @nocollapse */ RangePickerComponent.ctorParameters = () => [ { type: DomSanitizer }, { type: OhayoConfigService } ]; RangePickerComponent.propDecorators = { comp: [{ type: ViewChild, args: ['comp', { static: false },] }], ngModelEnd: [{ type: Input }], shortcut: [{ type: Input }], ngModelEndChange: [{ type: Output }], nzAllowClear: [{ type: Input }], nzAutoFocus: [{ type: Input }], nzClassName: [{ type: Input }], nzDisabled: [{ type: Input }], nzSize: [{ type: Input }], nzStyle: [{ type: Input }], nzDisabledDate: [{ type: Input }], nzLocale: [{ type: Input }], nzPopupStyle: [{ type: Input }], nzDropdownClassName: [{ type: Input }], nzPlaceHolder: [{ type: Input }], nzOnOpenChange: [{ type: Output }], nzDateRender: [{ type: Input }], nzFormat: [{ type: Input }], nzDisabledTime: [{ type: Input }], nzRenderExtraFooter: [{ type: Input }], nzShowTime: [{ type: Input }], nzShowToday: [{ type: Input }], nzMode: [{ type: Input }], nzRanges: [{ type: Input }], nzOnPanelChange: [{ type: Output }], nzOnOk: [{ type: Output }] }; __decorate([ InputBoolean(), __metadata("design:type", Boolean) ], RangePickerComponent.prototype, "nzShowToday", void 0); if (false) { /** * @type {?} * @private */ RangePickerComponent.prototype.onChangeFn; /** * @type {?} * @private */ RangePickerComponent.prototype._shortcut; /** * @type {?} * @private */ RangePickerComponent.prototype.defaultShortcuts; /** * @type {?} * @private */ RangePickerComponent.prototype.comp; /** @type {?} */ RangePickerComponent.prototype.value; /** @type {?} */ RangePickerComponent.prototype.ngModelEnd; /** @type {?} */ RangePickerComponent.prototype.ngModelEndChange; /** @type {?} */ RangePickerComponent.prototype.nzAllowClear; /** @type {?} */ RangePickerComponent.prototype.nzAutoFocus; /** @type {?} */ RangePickerComponent.prototype.nzClassName; /** @type {?} */ RangePickerComponent.prototype.nzDisabled; /** @type {?} */ RangePickerComponent.prototype.nzSize; /** @type {?} */ RangePickerComponent.prototype.nzStyle; /** @type {?} */ RangePickerComponent.prototype.nzDisabledDate; /** @type {?} */ RangePickerComponent.prototype.nzLocale; /** @type {?} */ RangePickerComponent.prototype.nzPopupStyle; /** @type {?} */ RangePickerComponent.prototype.nzDropdownClassName; /** @type {?} */ RangePickerComponent.prototype.nzPlaceHolder; /** @type {?} */ RangePickerComponent.prototype.nzOnOpenChange; /** @type {?} */ RangePickerComponent.prototype.nzDateRender; /** @type {?} */ RangePickerComponent.prototype.nzFormat; /** @type {?} */ RangePickerComponent.prototype.nzDisabledTime; /** @type {?} */ RangePickerComponent.prototype.nzRenderExtraFooter; /** @type {?} */ RangePickerComponent.prototype.nzShowTime; /** @type {?} */ RangePickerComponent.prototype.nzShowToday; /** @type {?} */ RangePickerComponent.prototype.nzMode; /** @type {?} */ RangePickerComponent.prototype.nzRanges; /** @type {?} */ RangePickerComponent.prototype.nzOnPanelChange; /** @type {?} */ RangePickerComponent.prototype.nzOnOk; /** * @type {?} * @private */ RangePickerComponent.prototype.dom; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFuZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IkM6L2FuZHJvaWQvQG9oYXlvanAvcGFja2FnZXMvY29tcG9uZW50cy9kYXRlLXBpY2tlci8iLCJzb3VyY2VzIjpbInJhbmdlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBZSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0csT0FBTyxFQUF3QixpQkFBaUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUN6RCxPQUFPLEVBQ0wsa0JBQWtCLEVBR2xCLFlBQVksRUFDWixpQkFBaUIsRUFDakIsZUFBZSxFQUNmLFlBQVksR0FDYixNQUFNLGFBQWEsQ0FBQztBQUVyQixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQWNuRSxNQUFNLE9BQU8sb0JBQW9COzs7Ozs7SUFxRC9CLFlBQW9CLEdBQWlCLEVBQUUsU0FBNkI7UUFBaEQsUUFBRyxHQUFILEdBQUcsQ0FBYztRQWhEckMsVUFBSyxHQUFXLEVBQUUsQ0FBQztRQWlCQSxxQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDOztRQUl0RCxpQkFBWSxHQUFHLElBQUksQ0FBQztRQUNwQixnQkFBVyxHQUFHLEtBQUssQ0FBQztRQVVWLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVF2QyxnQkFBVyxHQUFZLElBQUksQ0FBQztRQUdsQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFDMUMsV0FBTSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7O2NBSzVDLEdBQUcsR0FBRyxtQkFBQSxTQUFTLENBQUMsS0FBSyxDQUFDLFdBQVcsRUFBRTtZQUN2QyxRQUFRLEVBQUUsWUFBWTtZQUN0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MkI7O0lBQzNCLHdDQUF1Qjs7SUFDdkIsOENBQTZCOztJQUM3QixtREFBdUU7O0lBQ3ZFLDBDQUF5Qjs7SUFDekIsMkNBQXFEOztJQUNyRCxzQ0FBcUI7O0lBQ3JCLHdDQUF1Qjs7SUFDdkIsK0NBQTZEOztJQUM3RCxzQ0FBb0Q7Ozs7O0lBSXhDLG1DQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBmb3J3YXJkUmVmLCBJbnB1dCwgT3V0cHV0LCBUZW1wbGF0ZVJlZiwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7XG4gIE9oYXlvQ29uZmlnU2VydmljZSxcbiAgT2hheW9EYXRlUmFuZ2VQaWNrZXJTaG9ydGN1dCxcbiAgT2hheW9EYXRlUmFuZ2VQaWNrZXJTaG9ydGN1dEl0ZW0sXG4gIGRlZXBNZXJnZUtleSxcbiAgZml4RW5kVGltZU9mUmFuZ2UsXG4gIGdldFRpbWVEaXN0YW5jZSxcbiAgSW5wdXRCb29sZWFuLFxufSBmcm9tICdAb2hheW8vdXRpbCc7XG5pbXBvcnQgeyBGdW5jdGlvblByb3AsIE56U2FmZUFueSB9IGZyb20gJ25nLXpvcnJvLWFudGQvY29yZS90eXBlcyc7XG5pbXBvcnQgeyBOelJhbmdlUGlja2VyQ29tcG9uZW50IH0gZnJvbSAnbmctem9ycm8tYW50ZC9kYXRlLXBpY2tlcic7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3JhbmdlLXBpY2tlcicsXG4gIGV4cG9ydEFzOiAncmFuZ2VQaWNrZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vcmFuZ2UuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIG11bHRpOiB0cnVlLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gUmFuZ2VQaWNrZXJDb21wb25lbnQpLFxuICAgIH0sXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIFJhbmdlUGlja2VyQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcml2YXRlIG9uQ2hhbmdlRm46ICh2YWw6IERhdGUpID0+IHZvaWQ7XG4gIHByaXZhdGUgX3Nob3J0Y3V0OiBPaGF5b0RhdGVSYW5nZVBpY2tlclNob3J0Y3V0O1xuICBwcml2YXRlIGRlZmF1bHRTaG9ydGN1dHM6IE9oYXlvRGF0ZVJhbmdlUGlja2VyU2hvcnRjdXQ7XG4gIEBWaWV3Q2hpbGQoJ2NvbXAnLCB7IHN0YXRpYzogZmFsc2UgfSkgcHJpdmF0ZSBjb21wOiBOelJhbmdlUGlja2VyQ29tcG9uZW50O1xuICB2YWx1ZTogRGF0ZVtdID0gW107XG5cbiAgQElucHV0KCkgbmdNb2RlbEVuZDogRGF0ZTtcbiAgQElucHV0KClcbiAgc2V0IHNob3J0Y3V0KHZhbDogT2hheW9EYXRlUmFuZ2VQaWNrZXJTaG9ydGN1dCB8IG51bGwpIHtcbiAgICBjb25zdCBpdGVtID0gZGVlcE1lcmdlS2V5KHt9LCB0cnVlLCB0aGlzLmRlZmF1bHRTaG9ydGN1dHMsIHZhbCA9PSBudWxsID8ge30gOiB2YWwpIGFzIE9oYXlvRGF0ZVJhbmdlUGlja2VyU2hvcnRjdXQ7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdib29sZWFuJykge1xuICAgICAgaXRlbS5lbmFibGVkID0gdmFsO1xuICAgIH1cbiAgICAoaXRlbS5saXN0IHx8IFtdKS5mb3JFYWNoKGkgPT4ge1xuICAgICAgaS5fdGV4dCA9IHRoaXMuZG9tLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKGkudGV4dCk7XG4gICAgfSk7XG4gICAgdGhpcy5fc2hvcnRjdXQgPSBpdGVtO1xuICB9XG4gIGdldCBzaG9ydGN1dCgpOiBPaGF5b0RhdGVSYW5nZVBpY2tlclNob3J0Y3V0IHwgbnVsbCB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3J0Y3V0O1xuICB9XG4gIEBPdXRwdXQoKSByZWFkb25seSBuZ01vZGVsRW5kQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxEYXRlPigpO1xuXG4gIC8vICNyZWdpb24gTmF0aXZlIHByb3BlcnRpZXNcblxuICBASW5wdXQoKSBuekFsbG93Q2xlYXIgPSB0cnVlO1xuICBASW5wdXQoKSBuekF1dG9Gb2N1cyA9IGZhbHNlO1xuICBASW5wdXQoKSBuekNsYXNzTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKSBuekRpc2FibGVkOiBib29sZWFuO1xuICBASW5wdXQoKSBuelNpemU6IHN0cmluZztcbiAgQElucHV0KCkgbnpTdHlsZTogc3RyaW5nO1xuICBASW5wdXQoKSBuekRpc2FibGVkRGF0ZTogKGQ6IERhdGUpID0+IGJvb2xlYW47XG4gIEBJbnB1dCgpIG56TG9jYWxlOiBvYmplY3Q7XG4gIEBJbnB1dCgpIG56UG9wdXBTdHlsZTogb2JqZWN0O1xuICBASW5wdXQoKSBuekRyb3Bkb3duQ2xhc3NOYW1lOiBzdHJpbmc7XG4gIEBJbnB1dCgpIG56UGxhY2VIb2xkZXI6IHN0cmluZyB8IHN0cmluZ1tdO1xuICBAT3V0cHV0KCkgcmVhZG9ubHkgbnpPbk9wZW5DaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgLy8gcmFuZ2VcbiAgQElucHV0KCkgbnpEYXRlUmVuZGVyOiBhbnk7XG4gIEBJbnB1dCgpIG56Rm9ybWF0OiBhbnk7XG4gIEBJbnB1dCgpIG56RGlzYWJsZWRUaW1lOiBhbnk7XG4gIEBJbnB1dCgpIG56UmVuZGVyRXh0cmFGb290ZXI6IEZ1bmN0aW9uUHJvcDxUZW1wbGF0ZVJlZjx2b2lkPiB8IHN0cmluZz47XG4gIEBJbnB1dCgpIG56U2hvd1RpbWU6IGFueTtcbiAgQElucHV0KCkgQElucHV0Qm9vbGVhbigpIG56U2hvd1RvZGF5OiBib29sZWFuID0gdHJ1ZTtcbiAgQElucHV0KCkgbnpNb2RlOiBhbnk7XG4gIEBJbnB1dCgpIG56UmFuZ2VzOiBhbnk7XG4gIEBPdXRwdXQoKSByZWFkb25seSBuek9uUGFuZWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpIHJlYWRvbmx5IG56T25PayA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIC8vICNlbmRyZWdpb25cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGRvbTogRG9tU2FuaXRpemVyLCBjb25maWdTcnY6IE9oYXlvQ29uZmlnU2VydmljZSkge1xuICAgIGNvbnN0IGNvZyA9IGNvbmZpZ1Nydi5tZXJnZSgnZGF0YVJhbmdlJywge1xuICAgICAgbnpGb3JtYXQ6ICd5eXl5LU1NLWRkJyxcbiAgICAgIG56QWxsb3dDbGVhcjogdHJ1ZSxcbiAgICAgIG56QXV0b0ZvY3VzOiBmYWxzZSxcbiAgICAgIG56UG9wdXBTdHlsZTogeyBwb3NpdGlvbjogJ3JlbGF0aXZlJyB9LFxuICAgICAgbnpTaG93VG9kYXk6IHRydWUsXG4gICAgICBzaG9ydGN1dHM6IHtcbiAgICAgICAgZW5hYmxlZDogZmFsc2UsXG4gICAgICAgIGNsb3NlZDogdHJ1ZSxcbiAgICAgICAgbGlzdDogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICfku4rlpKknLFxuICAgICAgICAgICAgZm46ICgpID0+IGdldFRpbWVEaXN0YW5jZSgndG9kYXknKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICfmmKjlpKknLFxuICAgICAgICAgICAgZm46ICgpID0+IGdldFRpbWVEaXN0YW5jZSgneWVzdGVyZGF5JyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAn6L+RM+WkqScsXG4gICAgICAgICAgICBmbjogKCkgPT4gZ2V0VGltZURpc3RhbmNlKC0yKSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIHRleHQ6ICfov5E35aSpJyxcbiAgICAgICAgICAgIGZuOiAoKSA9PiBnZXRUaW1lRGlzdGFuY2UoLTYpLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgdGV4dDogJ+acrOWRqCcsXG4gICAgICAgICAgICBmbjogKCkgPT4gZ2V0VGltZURpc3RhbmNlKCd3ZWVrJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAn5pys5pyIJyxcbiAgICAgICAgICAgIGZuOiAoKSA9PiBnZXRUaW1lRGlzdGFuY2UoJ21vbnRoJyksXG4gICAgICAgICAgfSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICB0ZXh0OiAn5YWo5bm0JyxcbiAgICAgICAgICAgIGZuOiAoKSA9PiBnZXRUaW1lRGlzdGFuY2UoJ3llYXInKSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KSE7XG4gICAgdGhpcy5kZWZhdWx0U2hvcnRjdXRzID0geyAuLi5jb2cuc2hvcnRjdXRzIH0gYXMgT2hheW9EYXRlUmFuZ2VQaWNrZXJTaG9ydGN1dDtcbiAgICBPYmplY3QuYXNzaWduKHRoaXMsIGNvZyk7XG4gIH1cblxuICBfbnpPbk9wZW5DaGFuZ2UoZTogYW55KTogdm9pZCB7XG4gICAgdGhpcy5uek9uT3BlbkNoYW5nZS5lbWl0KGUpO1xuICB9XG5cbiAgX256T25QYW5lbENoYW5nZShlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm56T25QYW5lbENoYW5nZS5lbWl0KGUpO1xuICB9XG5cbiAgX256T25PayhlOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm56T25Pay5lbWl0KGUpO1xuICB9XG5cbiAgdmFsdWVDaGFuZ2UoZTogW0RhdGUsIERhdGVdKTogdm9pZCB7XG4gICAgZSA9IGZpeEVuZFRpbWVPZlJhbmdlKGUpO1xuICAgIHRoaXMub25DaGFuZ2VGbihlWzBdKTtcbiAgICB0aGlzLm5nTW9kZWxFbmQgPSBlWzFdO1xuICAgIHRoaXMubmdNb2RlbEVuZENoYW5nZS5lbWl0KGVbMV0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZTogRGF0ZSk6IHZvaWQge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSAmJiB0aGlzLm5nTW9kZWxFbmQgPyBbdmFsdWUsIHRoaXMubmdNb2RlbEVuZF0gOiBbXTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46ICh2YWw6IERhdGUpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlRm4gPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKF9mbjogKCkgPT4gdm9pZCk6IHZvaWQge1xuICAgIC8vIHRoaXMub25Ub3VjaGVkRm4gPSBmbjtcbiAgfVxuXG4gIHNldERpc2FibGVkU3RhdGUoZGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLm56RGlzYWJsZWQgPSBkaXNhYmxlZDtcbiAgfVxuXG4gIGNsaWNrU2hvcnRjdXQoaXRlbTogT2hheW9EYXRlUmFuZ2VQaWNrZXJTaG9ydGN1dEl0ZW0pOiB2b2lkIHtcbiAgICB0aGlzLnZhbHVlID0gaXRlbS5mbih0aGlzLnZhbHVlIGFzIGFueSk7XG4gICAgdGhpcy52YWx1ZUNoYW5nZSh0aGlzLnZhbHVlIGFzIFtEYXRlLCBEYXRlXSk7XG4gICAgaWYgKHRoaXMuX3Nob3J0Y3V0LmNsb3NlZCkge1xuICAgICAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOm5vLXN0cmluZy1saXRlcmFsXG4gICAgICAodGhpcy5jb21wIGFzIE56U2FmZUFueSlbJ3BpY2tlciddLmhpZGVPdmVybGF5KCk7XG4gICAgfVxuICB9XG59XG4iXX0=