UNPKG

ng-zorro-antd-mobile

Version:

An enterprise-class mobile UI components based on Ant Design and Angular

337 lines 22 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Input, Output, Injector, Directive, forwardRef, EventEmitter, HostListener, ViewContainerRef, ComponentFactoryResolver } from '@angular/core'; import { DatePickerComponent } from './date-picker.component'; import { DatePickerOptions } from './date-picker-options.provider'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; var DatePickerDirective = /** @class */ (function () { function DatePickerDirective(_viewContainerRef, _defaultOptions, _cfr) { this._viewContainerRef = _viewContainerRef; this._defaultOptions = _defaultOptions; this._cfr = _cfr; this._eventListeners = []; this.minuteStep = 1; this.value = new Date(); this.onVisibleChange = new EventEmitter(true); this.onValueChange = new EventEmitter(); this.onOk = new EventEmitter(); this.onDismiss = new EventEmitter(); } /** * @return {?} */ DatePickerDirective.prototype.togglePicker = /** * @return {?} */ function () { if (!this.picker) { this.showPicker(); } else { this.hidePicker(); } }; /** * @return {?} */ DatePickerDirective.prototype.showPicker = /** * @return {?} */ function () { var _this = this; if (!this.picker && !this.disabled) { setTimeout((/** * @return {?} */ function () { _this._eventListeners = []; })); /** @type {?} */ var options_1 = new DatePickerOptions(); Object.assign(options_1, this._defaultOptions, { hidePicker: (/** * @param {?} event * @return {?} */ function (event) { _this.hidePicker(); }), updateNgModel: (/** * @param {?} value * @return {?} */ function (value) { if (_this._ngModelOnChange) { _this.value = value; _this._ngModelOnChange(value); } }) }); /** @type {?} */ var optionalParams = [ 'mode', 'minDate', 'maxDate', 'minuteStep', 'value', 'mask', 'title', 'okText', 'dismissText', 'disabled', 'locale', 'appendToBody', 'showErrorToast', 'showErrorToastInterval', 'onOk', 'onDismiss', 'onValueChange' ]; optionalParams.forEach((/** * @param {?} param * @return {?} */ function (param) { if (typeof _this[param] !== 'undefined') { ((/** @type {?} */ (options_1)))[param] = _this[param]; } })); /** @type {?} */ var componentFactory = this._cfr.resolveComponentFactory(DatePickerComponent); /** @type {?} */ var childInjector = Injector.create([ { provide: DatePickerOptions, useValue: options_1 } ]); this.picker = this._viewContainerRef.createComponent(componentFactory, this._viewContainerRef.length, childInjector); if (options_1.appendToBody) { document.body.appendChild(this.picker.location.nativeElement); } this.onVisibleChange.emit(true); } }; /** * @return {?} */ DatePickerDirective.prototype.hidePicker = /** * @return {?} */ function () { if (this.picker) { this.picker.destroy(); delete this.picker; this.onVisibleChange.emit(false); this._eventListeners.forEach((/** * @param {?} fn * @return {?} */ function (fn) { return fn(); })); this._eventListeners = []; } }; /** * @param {?} value * @return {?} */ DatePickerDirective.prototype.writeValue = /** * @param {?} value * @return {?} */ function (value) { this.value = value; }; /** * @param {?} fn * @return {?} */ DatePickerDirective.prototype.registerOnChange = /** * @param {?} fn * @return {?} */ function (fn) { this._ngModelOnChange = fn; }; /** * @param {?} fn * @return {?} */ DatePickerDirective.prototype.registerOnTouched = /** * @param {?} fn * @return {?} */ function (fn) { this._ngModelOnTouched = fn; }; /** * @param {?} isDisabled * @return {?} */ DatePickerDirective.prototype.setDisabledState = /** * @param {?} isDisabled * @return {?} */ function (isDisabled) { this.disabled = isDisabled; }; /** * @return {?} */ DatePickerDirective.prototype.ngOnInit = /** * @return {?} */ function () { this.onVisibleChange.emit(false); }; /** * @param {?} changes * @return {?} */ DatePickerDirective.prototype.ngOnChanges = /** * @param {?} changes * @return {?} */ function (changes) { if (changes.isOpen) { if (changes.isOpen.currentValue === true) { this.showPicker(); } else { this.hidePicker(); } } }; /** * @return {?} */ DatePickerDirective.prototype.ngOnDestroy = /** * @return {?} */ function () { this.hidePicker(); }; DatePickerDirective.decorators = [ { type: Directive, args: [{ selector: '[DatePicker]', providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ function () { return DatePickerDirective; })), multi: true } ] },] } ]; /** @nocollapse */ DatePickerDirective.ctorParameters = function () { return [ { type: ViewContainerRef }, { type: DatePickerOptions }, { type: ComponentFactoryResolver } ]; }; DatePickerDirective.propDecorators = { isOpen: [{ type: Input }], mode: [{ type: Input }], minDate: [{ type: Input }], maxDate: [{ type: Input }], use12Hours: [{ type: Input }], minuteStep: [{ type: Input }], value: [{ type: Input }], mask: [{ type: Input }], title: [{ type: Input }], okText: [{ type: Input }], dismissText: [{ type: Input }], disabled: [{ type: Input }], locale: [{ type: Input }], appendToBody: [{ type: Input }], showErrorToast: [{ type: Input }], showErrorToastInterval: [{ type: Input }], onVisibleChange: [{ type: Output }], onValueChange: [{ type: Output }], onOk: [{ type: Output }], onDismiss: [{ type: Output }], togglePicker: [{ type: HostListener, args: ['click',] }] }; return DatePickerDirective; }()); export { DatePickerDirective }; if (false) { /** @type {?} */ DatePickerDirective.prototype.picker; /** * @type {?} * @private */ DatePickerDirective.prototype._eventListeners; /** * @type {?} * @private */ DatePickerDirective.prototype._ngModelOnChange; /** * @type {?} * @private */ DatePickerDirective.prototype._ngModelOnTouched; /** @type {?} */ DatePickerDirective.prototype.isOpen; /** @type {?} */ DatePickerDirective.prototype.mode; /** @type {?} */ DatePickerDirective.prototype.minDate; /** @type {?} */ DatePickerDirective.prototype.maxDate; /** @type {?} */ DatePickerDirective.prototype.use12Hours; /** @type {?} */ DatePickerDirective.prototype.minuteStep; /** @type {?} */ DatePickerDirective.prototype.value; /** @type {?} */ DatePickerDirective.prototype.mask; /** @type {?} */ DatePickerDirective.prototype.title; /** @type {?} */ DatePickerDirective.prototype.okText; /** @type {?} */ DatePickerDirective.prototype.dismissText; /** @type {?} */ DatePickerDirective.prototype.disabled; /** @type {?} */ DatePickerDirective.prototype.locale; /** @type {?} */ DatePickerDirective.prototype.appendToBody; /** @type {?} */ DatePickerDirective.prototype.showErrorToast; /** @type {?} */ DatePickerDirective.prototype.showErrorToastInterval; /** @type {?} */ DatePickerDirective.prototype.onVisibleChange; /** @type {?} */ DatePickerDirective.prototype.onValueChange; /** @type {?} */ DatePickerDirective.prototype.onOk; /** @type {?} */ DatePickerDirective.prototype.onDismiss; /** * @type {?} * @private */ DatePickerDirective.prototype._viewContainerRef; /** * @type {?} * @private */ DatePickerDirective.prototype._defaultOptions; /** * @type {?} * @private */ DatePickerDirective.prototype._cfr; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS1waWNrZXIuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJkYXRlLXBpY2tlci9kYXRlLXBpY2tlci5kaXJlY3RpdmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxLQUFLLEVBQ0wsTUFBTSxFQUVOLFFBQVEsRUFHUixTQUFTLEVBQ1QsVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBSVosZ0JBQWdCLEVBQ2hCLHdCQUF3QixFQUN6QixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUM5RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQXdCLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDekU7SUFrRUUsNkJBQ1UsaUJBQW1DLEVBQ25DLGVBQWtDLEVBQ2xDLElBQThCO1FBRjlCLHNCQUFpQixHQUFqQixpQkFBaUIsQ0FBa0I7UUFDbkMsb0JBQWUsR0FBZixlQUFlLENBQW1CO1FBQ2xDLFNBQUksR0FBSixJQUFJLENBQTBCO1FBekRoQyxvQkFBZSxHQUFzQixFQUFFLENBQUM7UUFlaEQsZUFBVSxHQUFXLENBQUMsQ0FBQztRQUV2QixVQUFLLEdBQVMsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQW9CekIsb0JBQWUsR0FBMEIsSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEUsa0JBQWEsR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUV0RCxTQUFJLEdBQXNCLElBQUksWUFBWSxFQUFFLENBQUM7UUFFN0MsY0FBUyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBZS9DLENBQUM7Ozs7SUFaSiwwQ0FBWTs7O0lBRFo7UUFFRSxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNoQixJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7U0FDbkI7YUFBTTtZQUNMLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNuQjtJQUNILENBQUM7Ozs7SUFRRCx3Q0FBVTs7O0lBQVY7UUFBQSxpQkE4REM7UUE3REMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2xDLFVBQVU7OztZQUFDO2dCQUNULEtBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1lBQzVCLENBQUMsRUFBQyxDQUFDOztnQkFFRyxTQUFPLEdBQUcsSUFBSSxpQkFBaUIsRUFBRTtZQUN2QyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQU8sRUFBRSxJQUFJLENBQUMsZUFBZSxFQUFFO2dCQUMzQyxVQUFVOzs7O2dCQUFFLFVBQUMsS0FBSztvQkFDaEIsS0FBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2dCQUNwQixDQUFDLENBQUE7Z0JBQ0QsYUFBYTs7OztnQkFBRSxVQUFDLEtBQVc7b0JBQ3pCLElBQUksS0FBSSxDQUFDLGdCQUFnQixFQUFFO3dCQUN6QixLQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQzt3QkFDbkIsS0FBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssQ0FBQyxDQUFDO3FCQUM5QjtnQkFDSCxDQUFDLENBQUE7YUFDRixDQUFDLENBQUM7O2dCQUVHLGNBQWMsR0FBcUM7Z0JBQ3ZELE1BQU07Z0JBQ04sU0FBUztnQkFDVCxTQUFTO2dCQUNULFlBQVk7Z0JBQ1osT0FBTztnQkFDUCxNQUFNO2dCQUNOLE9BQU87Z0JBQ1AsUUFBUTtnQkFDUixhQUFhO2dCQUNiLFVBQVU7Z0JBQ1YsUUFBUTtnQkFDUixjQUFjO2dCQUNkLGdCQUFnQjtnQkFDaEIsd0JBQXdCO2dCQUN4QixNQUFNO2dCQUNOLFdBQVc7Z0JBQ1gsZUFBZTthQUNoQjtZQUNELGNBQWMsQ0FBQyxPQUFPOzs7O1lBQUMsVUFBQSxLQUFLO2dCQUMxQixJQUFJLE9BQU8sS0FBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLFdBQVcsRUFBRTtvQkFDdEMsQ0FBQyxtQkFBQSxTQUFPLEVBQU8sQ0FBQyxDQUFDLEtBQUssQ0FBQyxHQUFHLEtBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztpQkFDdkM7WUFDSCxDQUFDLEVBQUMsQ0FBQzs7Z0JBQ0csZ0JBQWdCLEdBQTBDLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLENBQy9GLG1CQUFtQixDQUNwQjs7Z0JBQ0ssYUFBYSxHQUFHLFFBQVEsQ0FBQyxNQUFNLENBQUM7Z0JBQ3BDO29CQUNFLE9BQU8sRUFBRSxpQkFBaUI7b0JBQzFCLFFBQVEsRUFBRSxTQUFPO2lCQUNsQjthQUNGLENBQUM7WUFDRixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxlQUFlLENBQ2xELGdCQUFnQixFQUNoQixJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxFQUM3QixhQUFhLENBQ2QsQ0FBQztZQUNGLElBQUksU0FBTyxDQUFDLFlBQVksRUFBRTtnQkFDeEIsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDL0Q7WUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7Ozs7SUFFRCx3Q0FBVTs7O0lBQVY7UUFDRSxJQUFJLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDZixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3RCLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQztZQUNuQixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqQyxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU87Ozs7WUFBQyxVQUFBLEVBQUUsSUFBSSxPQUFBLEVBQUUsRUFBRSxFQUFKLENBQUksRUFBQyxDQUFDO1lBQ3pDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDO1NBQzNCO0lBQ0gsQ0FBQzs7Ozs7SUFFRCx3Q0FBVTs7OztJQUFWLFVBQVcsS0FBVztRQUNwQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQztJQUNyQixDQUFDOzs7OztJQUVELDhDQUFnQjs7OztJQUFoQixVQUFpQixFQUFtQjtRQUNsQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO0lBQzdCLENBQUM7Ozs7O0lBRUQsK0NBQWlCOzs7O0lBQWpCLFVBQWtCLEVBQVk7UUFDNUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztJQUM5QixDQUFDOzs7OztJQUVELDhDQUFnQjs7OztJQUFoQixVQUFpQixVQUFtQjtRQUNsQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQztJQUM3QixDQUFDOzs7O0lBRUQsc0NBQVE7OztJQUFSO1FBQ0UsSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDbkMsQ0FBQzs7Ozs7SUFFRCx5Q0FBVzs7OztJQUFYLFVBQVksT0FBc0I7UUFDaEMsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFO1lBQ2xCLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxZQUFZLEtBQUssSUFBSSxFQUFFO2dCQUN4QyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7YUFDbkI7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO2FBQ25CO1NBQ0Y7SUFDSCxDQUFDOzs7O0lBRUQseUNBQVc7OztJQUFYO1FBQ0UsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO0lBQ3BCLENBQUM7O2dCQWxMRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGNBQWM7b0JBQ3hCLFNBQVMsRUFBRTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLEVBQUUsVUFBVTs7OzRCQUFDLGNBQU0sT0FBQSxtQkFBbUIsRUFBbkIsQ0FBbUIsRUFBQzs0QkFDbEQsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0Y7aUJBQ0Y7Ozs7Z0JBZkMsZ0JBQWdCO2dCQUlULGlCQUFpQjtnQkFIeEIsd0JBQXdCOzs7eUJBcUJ2QixLQUFLO3VCQUVMLEtBQUs7MEJBRUwsS0FBSzswQkFFTCxLQUFLOzZCQUVMLEtBQUs7NkJBRUwsS0FBSzt3QkFFTCxLQUFLO3VCQUVMLEtBQUs7d0JBRUwsS0FBSzt5QkFFTCxLQUFLOzhCQUVMLEtBQUs7MkJBRUwsS0FBSzt5QkFFTCxLQUFLOytCQUVMLEtBQUs7aUNBRUwsS0FBSzt5Q0FFTCxLQUFLO2tDQUVMLE1BQU07Z0NBRU4sTUFBTTt1QkFFTixNQUFNOzRCQUVOLE1BQU07K0JBR04sWUFBWSxTQUFDLE9BQU87O0lBMEh2QiwwQkFBQztDQUFBLEFBbkxELElBbUxDO1NBektZLG1CQUFtQjs7O0lBQzlCLHFDQUEwQzs7Ozs7SUFDMUMsOENBQWdEOzs7OztJQUNoRCwrQ0FBOEM7Ozs7O0lBQzlDLGdEQUFvQzs7SUFFcEMscUNBQ2dCOztJQUNoQixtQ0FDYTs7SUFDYixzQ0FDZ0I7O0lBQ2hCLHNDQUNnQjs7SUFDaEIseUNBQ29COztJQUNwQix5Q0FDdUI7O0lBQ3ZCLG9DQUN5Qjs7SUFDekIsbUNBQ2M7O0lBQ2Qsb0NBQ2M7O0lBQ2QscUNBQ2U7O0lBQ2YsMENBQ29COztJQUNwQix1Q0FDa0I7O0lBQ2xCLHFDQUNZOztJQUNaLDJDQUNzQjs7SUFDdEIsNkNBQ3dCOztJQUN4QixxREFDK0I7O0lBQy9CLDhDQUNnRTs7SUFDaEUsNENBQ3NEOztJQUN0RCxtQ0FDNkM7O0lBQzdDLHdDQUNrRDs7Ozs7SUFZaEQsZ0RBQTJDOzs7OztJQUMzQyw4Q0FBMEM7Ozs7O0lBQzFDLG1DQUFzQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIElucHV0LFxuICBPdXRwdXQsXG4gIE9uSW5pdCxcbiAgSW5qZWN0b3IsXG4gIE9uQ2hhbmdlcyxcbiAgT25EZXN0cm95LFxuICBEaXJlY3RpdmUsXG4gIGZvcndhcmRSZWYsXG4gIEV2ZW50RW1pdHRlcixcbiAgSG9zdExpc3RlbmVyLFxuICBDb21wb25lbnRSZWYsXG4gIFNpbXBsZUNoYW5nZXMsXG4gIENvbXBvbmVudEZhY3RvcnksXG4gIFZpZXdDb250YWluZXJSZWYsXG4gIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERhdGVQaWNrZXJDb21wb25lbnQgfSBmcm9tICcuL2RhdGUtcGlja2VyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBEYXRlUGlja2VyT3B0aW9ucyB9IGZyb20gJy4vZGF0ZS1waWNrZXItb3B0aW9ucy5wcm92aWRlcic7XG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgTkdfVkFMVUVfQUNDRVNTT1IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICdbRGF0ZVBpY2tlcl0nLFxuICBwcm92aWRlcnM6IFtcbiAgICB7XG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAgIHVzZUV4aXN0aW5nOiBmb3J3YXJkUmVmKCgpID0+IERhdGVQaWNrZXJEaXJlY3RpdmUpLFxuICAgICAgbXVsdGk6IHRydWVcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgRGF0ZVBpY2tlckRpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSwgT25DaGFuZ2VzLCBPbkluaXQsIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcbiAgcGlja2VyOiBDb21wb25lbnRSZWY8RGF0ZVBpY2tlckNvbXBvbmVudD47XG4gIHByaXZhdGUgX2V2ZW50TGlzdGVuZXJzOiBBcnJheTwoKSA9PiB2b2lkPiA9IFtdO1xuICBwcml2YXRlIF9uZ01vZGVsT25DaGFuZ2U6ICh2YWx1ZTogRGF0ZSkgPT4ge307XG4gIHByaXZhdGUgX25nTW9kZWxPblRvdWNoZWQ6ICgpID0+IHt9O1xuXG4gIEBJbnB1dCgpXG4gIGlzT3BlbjogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgbW9kZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBtaW5EYXRlOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIG1heERhdGU6IHN0cmluZztcbiAgQElucHV0KClcbiAgdXNlMTJIb3VyczogYm9vbGVhbjtcbiAgQElucHV0KClcbiAgbWludXRlU3RlcDogbnVtYmVyID0gMTtcbiAgQElucHV0KClcbiAgdmFsdWU6IERhdGUgPSBuZXcgRGF0ZSgpO1xuICBASW5wdXQoKVxuICBtYXNrOiBib29sZWFuO1xuICBASW5wdXQoKVxuICB0aXRsZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBva1RleHQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgZGlzbWlzc1RleHQ6IHN0cmluZztcbiAgQElucHV0KClcbiAgZGlzYWJsZWQ6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIGxvY2FsZTogYW55O1xuICBASW5wdXQoKVxuICBhcHBlbmRUb0JvZHk6IGJvb2xlYW47XG4gIEBJbnB1dCgpXG4gIHNob3dFcnJvclRvYXN0OiBib29sZWFuO1xuICBASW5wdXQoKVxuICBzaG93RXJyb3JUb2FzdEludGVydmFsOiBudW1iZXI7XG4gIEBPdXRwdXQoKVxuICBvblZpc2libGVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIodHJ1ZSk7XG4gIEBPdXRwdXQoKVxuICBvblZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgQE91dHB1dCgpXG4gIG9uT2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBAT3V0cHV0KClcbiAgb25EaXNtaXNzOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBASG9zdExpc3RlbmVyKCdjbGljaycpXG4gIHRvZ2dsZVBpY2tlcigpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMucGlja2VyKSB7XG4gICAgICB0aGlzLnNob3dQaWNrZXIoKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5oaWRlUGlja2VyKCk7XG4gICAgfVxuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBfdmlld0NvbnRhaW5lclJlZjogVmlld0NvbnRhaW5lclJlZixcbiAgICBwcml2YXRlIF9kZWZhdWx0T3B0aW9uczogRGF0ZVBpY2tlck9wdGlvbnMsXG4gICAgcHJpdmF0ZSBfY2ZyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXJcbiAgKSB7fVxuXG4gIHNob3dQaWNrZXIoKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLnBpY2tlciAmJiAhdGhpcy5kaXNhYmxlZCkge1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2V2ZW50TGlzdGVuZXJzID0gW107XG4gICAgICB9KTtcblxuICAgICAgY29uc3Qgb3B0aW9ucyA9IG5ldyBEYXRlUGlja2VyT3B0aW9ucygpO1xuICAgICAgT2JqZWN0LmFzc2lnbihvcHRpb25zLCB0aGlzLl9kZWZhdWx0T3B0aW9ucywge1xuICAgICAgICBoaWRlUGlja2VyOiAoZXZlbnQpOiB2b2lkID0+IHtcbiAgICAgICAgICB0aGlzLmhpZGVQaWNrZXIoKTtcbiAgICAgICAgfSxcbiAgICAgICAgdXBkYXRlTmdNb2RlbDogKHZhbHVlOiBEYXRlKTogdm9pZCA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuX25nTW9kZWxPbkNoYW5nZSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICAgICAgICAgICAgdGhpcy5fbmdNb2RlbE9uQ2hhbmdlKHZhbHVlKTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICBjb25zdCBvcHRpb25hbFBhcmFtczogQXJyYXk8a2V5b2YgRGF0ZVBpY2tlckRpcmVjdGl2ZT4gPSBbXG4gICAgICAgICdtb2RlJyxcbiAgICAgICAgJ21pbkRhdGUnLFxuICAgICAgICAnbWF4RGF0ZScsXG4gICAgICAgICdtaW51dGVTdGVwJyxcbiAgICAgICAgJ3ZhbHVlJyxcbiAgICAgICAgJ21hc2snLFxuICAgICAgICAndGl0bGUnLFxuICAgICAgICAnb2tUZXh0JyxcbiAgICAgICAgJ2Rpc21pc3NUZXh0JyxcbiAgICAgICAgJ2Rpc2FibGVkJyxcbiAgICAgICAgJ2xvY2FsZScsXG4gICAgICAgICdhcHBlbmRUb0JvZHknLFxuICAgICAgICAnc2hvd0Vycm9yVG9hc3QnLFxuICAgICAgICAnc2hvd0Vycm9yVG9hc3RJbnRlcnZhbCcsXG4gICAgICAgICdvbk9rJyxcbiAgICAgICAgJ29uRGlzbWlzcycsXG4gICAgICAgICdvblZhbHVlQ2hhbmdlJ1xuICAgICAgXTtcbiAgICAgIG9wdGlvbmFsUGFyYW1zLmZvckVhY2gocGFyYW0gPT4ge1xuICAgICAgICBpZiAodHlwZW9mIHRoaXNbcGFyYW1dICE9PSAndW5kZWZpbmVkJykge1xuICAgICAgICAgIChvcHRpb25zIGFzIGFueSlbcGFyYW1dID0gdGhpc1twYXJhbV07XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeTogQ29tcG9uZW50RmFjdG9yeTxEYXRlUGlja2VyQ29tcG9uZW50PiA9IHRoaXMuX2Nmci5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShcbiAgICAgICAgRGF0ZVBpY2tlckNvbXBvbmVudFxuICAgICAgKTtcbiAgICAgIGNvbnN0IGNoaWxkSW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoW1xuICAgICAgICB7XG4gICAgICAgICAgcHJvdmlkZTogRGF0ZVBpY2tlck9wdGlvbnMsXG4gICAgICAgICAgdXNlVmFsdWU6IG9wdGlvbnNcbiAgICAgICAgfVxuICAgICAgXSk7XG4gICAgICB0aGlzLnBpY2tlciA9IHRoaXMuX3ZpZXdDb250YWluZXJSZWYuY3JlYXRlQ29tcG9uZW50KFxuICAgICAgICBjb21wb25lbnRGYWN0b3J5LFxuICAgICAgICB0aGlzLl92aWV3Q29udGFpbmVyUmVmLmxlbmd0aCxcbiAgICAgICAgY2hpbGRJbmplY3RvclxuICAgICAgKTtcbiAgICAgIGlmIChvcHRpb25zLmFwcGVuZFRvQm9keSkge1xuICAgICAgICBkb2N1bWVudC5ib2R5LmFwcGVuZENoaWxkKHRoaXMucGlja2VyLmxvY2F0aW9uLm5hdGl2ZUVsZW1lbnQpO1xuICAgICAgfVxuICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2UuZW1pdCh0cnVlKTtcbiAgICB9XG4gIH1cblxuICBoaWRlUGlja2VyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLnBpY2tlcikge1xuICAgICAgdGhpcy5waWNrZXIuZGVzdHJveSgpO1xuICAgICAgZGVsZXRlIHRoaXMucGlja2VyO1xuICAgICAgdGhpcy5vblZpc2libGVDaGFuZ2UuZW1pdChmYWxzZSk7XG4gICAgICB0aGlzLl9ldmVudExpc3RlbmVycy5mb3JFYWNoKGZuID0+IGZuKCkpO1xuICAgICAgdGhpcy5fZXZlbnRMaXN0ZW5lcnMgPSBbXTtcbiAgICB9XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBEYXRlKTogdm9pZCB7XG4gICAgdGhpcy52YWx1ZSA9IHZhbHVlO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKF86IERhdGUpID0+IHt9KTogdm9pZCB7XG4gICAgdGhpcy5fbmdNb2RlbE9uQ2hhbmdlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogKCkgPT4ge30pOiB2b2lkIHtcbiAgICB0aGlzLl9uZ01vZGVsT25Ub3VjaGVkID0gZm47XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMub25WaXNpYmxlQ2hhbmdlLmVtaXQoZmFsc2UpO1xuICB9XG5cbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzLmlzT3Blbikge1xuICAgICAgaWYgKGNoYW5nZXMuaXNPcGVuLmN1cnJlbnRWYWx1ZSA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnNob3dQaWNrZXIoKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuaGlkZVBpY2tlcigpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuaGlkZVBpY2tlcigpO1xuICB9XG59XG4iXX0=