UNPKG

ng-zorro-antd-mobile

Version:

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

432 lines 23.8 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, Input, Output, EventEmitter, ElementRef, ViewEncapsulation, HostBinding, forwardRef } from '@angular/core'; import { NG_VALUE_ACCESSOR } from '@angular/forms'; export class SliderComponent { /** * @param {?} _elf */ constructor(_elf) { this._elf = _elf; this.prefixCls = 'am-slider'; this.offset = 0; this.length = 0; this._min = 0; this._max = 100; this._step = 1; this._defaultValue = 0; this._disabled = false; this._marks = {}; this._dots = false; this._included = true; this._trackStyle = {}; this.onAfterChange = new EventEmitter(); this.onChange = new EventEmitter(); this.amSliderWrapper = true; this._ngModelOnChange = (/** * @return {?} */ () => { }); this._ngModelOnTouched = (/** * @return {?} */ () => { }); } /** * @return {?} */ get min() { return this._min; } /** * @param {?} value * @return {?} */ set min(value) { this._min = value; } /** * @return {?} */ get max() { return this._max; } /** * @param {?} value * @return {?} */ set max(value) { this._max = value; } /** * @return {?} */ get step() { return this._step; } /** * @param {?} value * @return {?} */ set step(value) { this._step = value; } /** * @return {?} */ get value() { return this._value; } /** * @param {?} value * @return {?} */ set value(value) { this.setValue(value); } /** * @param {?} value * @return {?} */ set defaultValue(value) { this._defaultValue = value; this.setValue(value); } /** * @return {?} */ get disabled() { return this._disabled; } /** * @param {?} value * @return {?} */ set disabled(value) { this._disabled = value; this.setCls(); } /** * @return {?} */ get marks() { return this._marks; } /** * @param {?} value * @return {?} */ set marks(value) { this._marks = value; } /** * @return {?} */ get dots() { return this._dots; } /** * @param {?} value * @return {?} */ set dots(value) { this._dots = value; } /** * @return {?} */ get included() { return this._included; } /** * @param {?} value * @return {?} */ set included(value) { this._included = value; } /** * @return {?} */ get handleStyle() { return this._handleStyle; } /** * @param {?} value * @return {?} */ set handleStyle(value) { this._handleStyle = value; } /** * @return {?} */ get trackStyle() { return this._trackStyle; } /** * @param {?} value * @return {?} */ set trackStyle(value) { this._trackStyle = value; } /** * @return {?} */ get railStyle() { return this._railStyle; } /** * @param {?} value * @return {?} */ set railStyle(value) { this._railStyle = value; } /** * @return {?} */ setCls() { this.sliderCls = { [`${this.prefixCls}-disabled`]: this._disabled }; } /** * @param {?} e * @return {?} */ handleChange(e) { setTimeout((/** * @return {?} */ () => { this.setTrack(e); this._value = e; }), 10); this.onChange.emit(e); this._ngModelOnChange(e); } /** * @param {?} e * @return {?} */ handleAfterChange(e) { setTimeout((/** * @return {?} */ () => { this.setTrack(e); this._value = e; }), 10); this.onAfterChange.emit(e); } /** * @return {?} */ valueRange() { if (this._value < this._min) { this._value = this._min; } if (this._value > this._max) { this._value = this._max; } } /** * @return {?} */ ngOnInit() { this.setCls(); this.setValue(this._value); /** @type {?} */ const sliderCoords = this._elf.nativeElement.getElementsByClassName('am-slider')[0].getBoundingClientRect(); this.sliderLength = sliderCoords.width; this.sliderStart = sliderCoords.left; } /** * @param {?} value * @return {?} */ writeValue(value) { this.setValue(value, true); } /** * @param {?} value * @param {?=} isWriteValue * @return {?} */ setValue(value, isWriteValue = false) { if (value === 0 || value) { this._value = value; } else { this._value = this._defaultValue; } this.valueRange(); this.setTrack(this._value); if (isWriteValue) { this._ngModelOnChange(this._value); } else { this.onAfterChange.emit(this._value); } } /** * @param {?} e * @return {?} */ setTrack(e) { this.offset = 0; this.length = ((e - this._min) * 100) / (this._max - this._min); } /** * @param {?} fn * @return {?} */ registerOnChange(fn) { this._ngModelOnChange = fn; } /** * @param {?} fn * @return {?} */ registerOnTouched(fn) { this._ngModelOnTouched = fn; } } SliderComponent.decorators = [ { type: Component, args: [{ selector: 'Slider , nzm-slider', template: "<div class=\"am-slider\" [ngClass]=\"sliderCls\">\n <div class=\"am-slider-rail\" [ngStyle]=\"railStyle\"></div>\n <SliderTrack\n [className]=\"'am-slider-track'\"\n [style]=\"trackStyle\"\n [offset]=\"offset\"\n [length]=\"length\"\n [included]=\"included\"\n ></SliderTrack>\n <SliderSteps\n [max]=\"max\"\n [min]=\"min\"\n [dots]=\"dots\"\n [step]=\"step\"\n [marks]=\"marks\"\n [lowerBound]=\"min\"\n [upperBound]=\"value\"\n [included]=\"included\"\n ></SliderSteps>\n <SliderHandle\n [max]=\"max\"\n [min]=\"min\"\n [value]=\"value\"\n [step]=\"step\"\n [disabled]=\"disabled\"\n [handleStyle]=\"handleStyle\"\n [sliderStart]=\"sliderStart\"\n [sliderLength]=\"sliderLength\"\n (onChange)=\"handleChange($event)\"\n (onAfterChange)=\"handleAfterChange($event)\"\n ></SliderHandle>\n <SliderMarks\n [max]=\"max\"\n [min]=\"min\"\n [marks]=\"marks\"\n [lowerBound]=\"min\"\n [upperBound]=\"value\"\n [included]=\"included\"\n ></SliderMarks>\n</div>\n", encapsulation: ViewEncapsulation.None, providers: [ { provide: NG_VALUE_ACCESSOR, useExisting: forwardRef((/** * @return {?} */ () => SliderComponent)), multi: true } ] }] } ]; /** @nocollapse */ SliderComponent.ctorParameters = () => [ { type: ElementRef } ]; SliderComponent.propDecorators = { min: [{ type: Input }], max: [{ type: Input }], step: [{ type: Input }], value: [{ type: Input }], defaultValue: [{ type: Input }], disabled: [{ type: Input }], marks: [{ type: Input }], dots: [{ type: Input }], included: [{ type: Input }], handleStyle: [{ type: Input }], trackStyle: [{ type: Input }], railStyle: [{ type: Input }], onAfterChange: [{ type: Output }], onChange: [{ type: Output }], amSliderWrapper: [{ type: HostBinding, args: ['class.am-slider-wrapper',] }] }; if (false) { /** @type {?} */ SliderComponent.prototype.prefixCls; /** @type {?} */ SliderComponent.prototype.sliderLength; /** @type {?} */ SliderComponent.prototype.sliderStart; /** @type {?} */ SliderComponent.prototype.sliderCls; /** @type {?} */ SliderComponent.prototype.offset; /** @type {?} */ SliderComponent.prototype.length; /** * @type {?} * @private */ SliderComponent.prototype._min; /** * @type {?} * @private */ SliderComponent.prototype._max; /** * @type {?} * @private */ SliderComponent.prototype._step; /** * @type {?} * @private */ SliderComponent.prototype._value; /** * @type {?} * @private */ SliderComponent.prototype._defaultValue; /** * @type {?} * @private */ SliderComponent.prototype._disabled; /** * @type {?} * @private */ SliderComponent.prototype._marks; /** * @type {?} * @private */ SliderComponent.prototype._dots; /** * @type {?} * @private */ SliderComponent.prototype._included; /** * @type {?} * @private */ SliderComponent.prototype._handleStyle; /** * @type {?} * @private */ SliderComponent.prototype._trackStyle; /** * @type {?} * @private */ SliderComponent.prototype._railStyle; /** @type {?} */ SliderComponent.prototype.onAfterChange; /** @type {?} */ SliderComponent.prototype.onChange; /** @type {?} */ SliderComponent.prototype.amSliderWrapper; /** * @type {?} * @private */ SliderComponent.prototype._ngModelOnChange; /** * @type {?} * @private */ SliderComponent.prototype._ngModelOnTouched; /** * @type {?} * @private */ SliderComponent.prototype._elf; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xpZGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsic2xpZGVyL3NsaWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBRVQsS0FBSyxFQUNMLE1BQU0sRUFDTixZQUFZLEVBQ1osVUFBVSxFQUNWLGlCQUFpQixFQUNqQixXQUFXLEVBQ1gsVUFBVSxFQUNYLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBd0IsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQWN6RSxNQUFNLE9BQU8sZUFBZTs7OztJQW9IMUIsWUFBb0IsSUFBZ0I7UUFBaEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQW5IcEMsY0FBUyxHQUFHLFdBQVcsQ0FBQztRQUl4QixXQUFNLEdBQVcsQ0FBQyxDQUFDO1FBQ25CLFdBQU0sR0FBVyxDQUFDLENBQUM7UUFFWCxTQUFJLEdBQVcsQ0FBQyxDQUFDO1FBQ2pCLFNBQUksR0FBVyxHQUFHLENBQUM7UUFDbkIsVUFBSyxHQUFXLENBQUMsQ0FBQztRQUVsQixrQkFBYSxHQUFXLENBQUMsQ0FBQztRQUMxQixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLFdBQU0sR0FBVyxFQUFFLENBQUM7UUFDcEIsVUFBSyxHQUFZLEtBQUssQ0FBQztRQUN2QixjQUFTLEdBQVksSUFBSSxDQUFDO1FBRTFCLGdCQUFXLEdBQVcsRUFBRSxDQUFDO1FBd0ZqQyxrQkFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFFeEMsYUFBUSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7UUFHbkMsb0JBQWUsR0FBWSxJQUFJLENBQUM7UUFFeEIscUJBQWdCOzs7UUFBNEIsR0FBRyxFQUFFLEdBQUUsQ0FBQyxFQUFDO1FBQ3JELHNCQUFpQjs7O1FBQTRCLEdBQUcsRUFBRSxHQUFFLENBQUMsRUFBQztJQUV2QixDQUFDOzs7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IElucHV0LFxuICBPdXRwdXQsXG4gIEV2ZW50RW1pdHRlcixcbiAgRWxlbWVudFJlZixcbiAgVmlld0VuY2Fwc3VsYXRpb24sXG4gIEhvc3RCaW5kaW5nLFxuICBmb3J3YXJkUmVmXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdTbGlkZXIgLCBuem0tc2xpZGVyJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3NsaWRlci5jb21wb25lbnQuaHRtbCcsXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXG4gIHByb3ZpZGVyczogW1xuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxuICAgICAgdXNlRXhpc3Rpbmc6IGZvcndhcmRSZWYoKCkgPT4gU2xpZGVyQ29tcG9uZW50KSxcbiAgICAgIG11bHRpOiB0cnVlXG4gICAgfVxuICBdXG59KVxuZXhwb3J0IGNsYXNzIFNsaWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBwcmVmaXhDbHMgPSAnYW0tc2xpZGVyJztcbiAgc2xpZGVyTGVuZ3RoOiBudW1iZXI7XG4gIHNsaWRlclN0YXJ0OiBudW1iZXI7XG4gIHNsaWRlckNsczogb2JqZWN0O1xuICBvZmZzZXQ6IG51bWJlciA9IDA7XG4gIGxlbmd0aDogbnVtYmVyID0gMDtcblxuICBwcml2YXRlIF9taW46IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX21heDogbnVtYmVyID0gMTAwO1xuICBwcml2YXRlIF9zdGVwOiBudW1iZXIgPSAxO1xuICBwcml2YXRlIF92YWx1ZTogbnVtYmVyO1xuICBwcml2YXRlIF9kZWZhdWx0VmFsdWU6IG51bWJlciA9IDA7XG4gIHByaXZhdGUgX2Rpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX21hcmtzOiBvYmplY3QgPSB7fTtcbiAgcHJpdmF0ZSBfZG90czogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pbmNsdWRlZDogYm9vbGVhbiA9IHRydWU7XG4gIHByaXZhdGUgX2hhbmRsZVN0eWxlOiBvYmplY3Q7XG4gIHByaXZhdGUgX3RyYWNrU3R5bGU6IG9iamVjdCA9IHt9O1xuICBwcml2YXRlIF9yYWlsU3R5bGU6IG9iamVjdDtcblxuICBASW5wdXQoKVxuICBnZXQgbWluKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21pbjtcbiAgfVxuICBzZXQgbWluKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9taW4gPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgbWF4KCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX21heDtcbiAgfVxuICBzZXQgbWF4KHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9tYXggPSB2YWx1ZTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgc3RlcCgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl9zdGVwO1xuICB9XG4gIHNldCBzdGVwKHZhbHVlOiBudW1iZXIpIHtcbiAgICB0aGlzLl9zdGVwID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHZhbHVlKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3ZhbHVlO1xuICB9XG4gIHNldCB2YWx1ZSh2YWx1ZTogbnVtYmVyKSB7XG4gICAgdGhpcy5zZXRWYWx1ZSh2YWx1ZSk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMuX2RlZmF1bHRWYWx1ZSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0VmFsdWUodmFsdWUpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBkaXNhYmxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fZGlzYWJsZWQ7XG4gIH1cbiAgc2V0IGRpc2FibGVkKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fZGlzYWJsZWQgPSB2YWx1ZTtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBtYXJrcygpOiBvYmplY3Qge1xuICAgIHJldHVybiB0aGlzLl9tYXJrcztcbiAgfVxuICBzZXQgbWFya3ModmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMuX21hcmtzID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGRvdHMoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvdHM7XG4gIH1cbiAgc2V0IGRvdHModmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kb3RzID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IGluY2x1ZGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9pbmNsdWRlZDtcbiAgfVxuICBzZXQgaW5jbHVkZWQodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9pbmNsdWRlZCA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBoYW5kbGVTdHlsZSgpOiBvYmplY3Qge1xuICAgIHJldHVybiB0aGlzLl9oYW5kbGVTdHlsZTtcbiAgfVxuICBzZXQgaGFuZGxlU3R5bGUodmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMuX2hhbmRsZVN0eWxlID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHRyYWNrU3R5bGUoKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5fdHJhY2tTdHlsZTtcbiAgfVxuICBzZXQgdHJhY2tTdHlsZSh2YWx1ZTogb2JqZWN0KSB7XG4gICAgdGhpcy5fdHJhY2tTdHlsZSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCByYWlsU3R5bGUoKTogb2JqZWN0IHtcbiAgICByZXR1cm4gdGhpcy5fcmFpbFN0eWxlO1xuICB9XG4gIHNldCByYWlsU3R5bGUodmFsdWU6IG9iamVjdCkge1xuICAgIHRoaXMuX3JhaWxTdHlsZSA9IHZhbHVlO1xuICB9XG5cbiAgQE91dHB1dCgpXG4gIG9uQWZ0ZXJDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgQE91dHB1dCgpXG4gIG9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1zbGlkZXItd3JhcHBlcicpXG4gIGFtU2xpZGVyV3JhcHBlcjogYm9vbGVhbiA9IHRydWU7XG5cbiAgcHJpdmF0ZSBfbmdNb2RlbE9uQ2hhbmdlOiAodmFsdWU6IG51bWJlcikgPT4gdm9pZCA9ICgpID0+IHt9O1xuICBwcml2YXRlIF9uZ01vZGVsT25Ub3VjaGVkOiAodmFsdWU6IG51bWJlcikgPT4gdm9pZCA9ICgpID0+IHt9O1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX2VsZjogRWxlbWVudFJlZikge31cblxuICBzZXRDbHMoKSB7XG4gICAgdGhpcy5zbGlkZXJDbHMgPSB7XG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRpc2FibGVkYF06IHRoaXMuX2Rpc2FibGVkXG4gICAgfTtcbiAgfVxuXG4gIGhhbmRsZUNoYW5nZShlKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICB0aGlzLnNldFRyYWNrKGUpO1xuICAgICAgdGhpcy5fdmFsdWUgPSBlO1xuICAgIH0sIDEwKTtcbiAgICB0aGlzLm9uQ2hhbmdlLmVtaXQoZSk7XG4gICAgdGhpcy5fbmdNb2RlbE9uQ2hhbmdlKGUpO1xuICB9XG5cbiAgaGFuZGxlQWZ0ZXJDaGFuZ2UoZSkge1xuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgdGhpcy5zZXRUcmFjayhlKTtcbiAgICAgIHRoaXMuX3ZhbHVlID0gZTtcbiAgICB9LCAxMCk7XG4gICAgdGhpcy5vbkFmdGVyQ2hhbmdlLmVtaXQoZSk7XG4gIH1cblxuICB2YWx1ZVJhbmdlKCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSA8IHRoaXMuX21pbikge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9taW47XG4gICAgfVxuICAgIGlmICh0aGlzLl92YWx1ZSA+IHRoaXMuX21heCkge1xuICAgICAgdGhpcy5fdmFsdWUgPSB0aGlzLl9tYXg7XG4gICAgfVxuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgICB0aGlzLnNldFZhbHVlKHRoaXMuX3ZhbHVlKTtcbiAgICBjb25zdCBzbGlkZXJDb29yZHMgPSB0aGlzLl9lbGYubmF0aXZlRWxlbWVudC5nZXRFbGVtZW50c0J5Q2xhc3NOYW1lKCdhbS1zbGlkZXInKVswXS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcbiAgICB0aGlzLnNsaWRlckxlbmd0aCA9IHNsaWRlckNvb3Jkcy53aWR0aDtcbiAgICB0aGlzLnNsaWRlclN0YXJ0ID0gc2xpZGVyQ29vcmRzLmxlZnQ7XG4gIH1cblxuICB3cml0ZVZhbHVlKHZhbHVlOiBudW1iZXIpOiB2b2lkIHtcbiAgICB0aGlzLnNldFZhbHVlKHZhbHVlLCB0cnVlKTtcbiAgfVxuXG4gIHNldFZhbHVlKHZhbHVlOiBudW1iZXIsIGlzV3JpdGVWYWx1ZSA9IGZhbHNlKSB7XG4gICAgaWYgKHZhbHVlID09PSAwIHx8IHZhbHVlKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX2RlZmF1bHRWYWx1ZTtcbiAgICB9XG4gICAgdGhpcy52YWx1ZVJhbmdlKCk7XG4gICAgdGhpcy5zZXRUcmFjayh0aGlzLl92YWx1ZSk7XG4gICAgaWYgKGlzV3JpdGVWYWx1ZSkge1xuICAgICAgdGhpcy5fbmdNb2RlbE9uQ2hhbmdlKHRoaXMuX3ZhbHVlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5vbkFmdGVyQ2hhbmdlLmVtaXQodGhpcy5fdmFsdWUpO1xuICAgIH1cbiAgfVxuXG4gIHNldFRyYWNrKGUpIHtcbiAgICB0aGlzLm9mZnNldCA9IDA7XG4gICAgdGhpcy5sZW5ndGggPSAoKGUgLSB0aGlzLl9taW4pICogMTAwKSAvICh0aGlzLl9tYXggLSB0aGlzLl9taW4pO1xuICB9XG5cbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogKHZhbHVlOiBudW1iZXIpID0+IHZvaWQpOiB2b2lkIHtcbiAgICB0aGlzLl9uZ01vZGVsT25DaGFuZ2UgPSBmbjtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKGZuOiAodmFsdWU6IG51bWJlcikgPT4gdm9pZCk6IHZvaWQge1xuICAgIHRoaXMuX25nTW9kZWxPblRvdWNoZWQgPSBmbjtcbiAgfVxufVxuIl19