ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
327 lines (326 loc) • 20.9 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,extraRequire,uselessCode} checked by tsc
*/
import { Component, Input, Output, EventEmitter, HostBinding } from '@angular/core';
var Stepper = /** @class */ (function () {
function Stepper() {
this.prefixCls = 'am-stepper';
this._max = Infinity;
this._min = -Infinity;
this._step = 1;
this._disabled = false;
this._readOnly = false;
this._showNumber = false;
this._upDisabled = false;
this._downDisabled = false;
this._isUpClick = false;
this._isDownClick = false;
this.onChange = new EventEmitter();
this.clsStepper = true;
this.clsStpDisabled = this._disabled;
this.clsShowNum = this._showNumber;
}
Object.defineProperty(Stepper.prototype, "max", {
get: /**
* @return {?}
*/
function () {
return this._max;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._max = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Stepper.prototype, "min", {
get: /**
* @return {?}
*/
function () {
return this._min;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._min = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Stepper.prototype, "value", {
get: /**
* @return {?}
*/
function () {
return this._value;
},
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._value = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Stepper.prototype, "step", {
get: /**
* @return {?}
*/
function () {
return this._step;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._step = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Stepper.prototype, "defaultValue", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value) {
this._defaultValue = value;
this._value = value;
}
},
enumerable: true,
configurable: true
});
Object.defineProperty(Stepper.prototype, "disabled", {
get: /**
* @return {?}
*/
function () {
return this._disabled;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
if (value) {
this._disabled = true;
this._downDisabled = true;
this._upDisabled = true;
}
this.clsStpDisabled = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Stepper.prototype, "readOnly", {
get: /**
* @return {?}
*/
function () {
return this._readOnly;
},
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._readOnly = value;
},
enumerable: true,
configurable: true
});
Object.defineProperty(Stepper.prototype, "showNumber", {
set: /**
* @param {?} value
* @return {?}
*/
function (value) {
this._showNumber = value;
this.clsShowNum = value;
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
Stepper.prototype.onIncrease = /**
* @return {?}
*/
function () {
var _this = this;
if (!this._upDisabled) {
this._value = this._value + this._step;
this.onChange.emit(this._value);
if (this._value + this._step > this._max) {
this._upDisabled = true;
}
if (this._value - this._step >= this._min) {
this._downDisabled = false;
}
this._isUpClick = true;
this.setCls();
setTimeout(function () {
_this._isUpClick = false;
_this.setCls();
}, 100);
}
};
/**
* @return {?}
*/
Stepper.prototype.onDecrease = /**
* @return {?}
*/
function () {
var _this = this;
if (!this._downDisabled) {
this._value = this._value - this._step;
this.onChange.emit(this._value);
if (this._value - this._step < this._min) {
this._downDisabled = true;
}
if (this._value + this._step <= this._max) {
this._upDisabled = false;
}
this._isDownClick = true;
this.setCls();
setTimeout(function () {
_this._isDownClick = false;
_this.setCls();
}, 100);
}
};
/**
* @param {?} event
* @return {?}
*/
Stepper.prototype.inputChange = /**
* @param {?} event
* @return {?}
*/
function (event) {
/** @type {?} */
var value = event.target.value;
this._value = value ? parseInt(value, null) : 0;
if (value < this._min) {
this._value = this._min;
}
if (value > this._max) {
this._value = this._max;
}
this.onChange.emit(this._value);
};
/**
* @return {?}
*/
Stepper.prototype.setCls = /**
* @return {?}
*/
function () {
var _a, _b;
this.upDisableCls = (_a = {},
_a[this.prefixCls + "-handler-up-disabled"] = this._upDisabled,
_a[this.prefixCls + "-handler-active"] = this._isUpClick,
_a);
this.downDisableCls = (_b = {},
_b[this.prefixCls + "-handler-down-disabled"] = this._downDisabled,
_b[this.prefixCls + "-handler-active"] = this._isDownClick,
_b);
};
/**
* @return {?}
*/
Stepper.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
if (this._value + this._step > this._max) {
this._upDisabled = true;
}
if (this._value - this._step < this._min) {
this._downDisabled = true;
}
this.setCls();
};
Stepper.decorators = [
{ type: Component, args: [{
selector: 'Stepper , nzm-stepper',
template: "<div class=\"{{prefixCls}}-handler-wrap\">\n <span role=\"button\"\n class=\"{{prefixCls}}-handler {{prefixCls}}-handler-up\"\n style=\"line-height:28px;\"\n [ngClass]=\"upDisableCls\"\n (click)=\"onIncrease()\">\n <Icon [type]=\"'plus'\"\n [size]=\"'xxs'\">\n </Icon>\n </span>\n <span role=\"button\"\n class=\"{{prefixCls}}-handler {{prefixCls}}-handler-down\"\n style=\"line-height:28px;\"\n [ngClass]=\"downDisableCls\"\n (click)=\"onDecrease()\">\n <Icon [type]=\"'minus'\"\n [size]=\"'xxs'\">\n </Icon>\n </span>\n</div>\n<div class=\"{{prefixCls}}-input-wrap\">\n <input class=\"{{prefixCls}}-input\"\n style=\"outline:none\"\n [disabled]=\"disabled\"\n [readonly]=\"readOnly\"\n [autocomplete]=\"'off'\"\n [max]=\"max\"\n [min]=\"min\"\n [(ngModel)]=\"value\"\n (change)=\"inputChange($event)\">\n</div>"
}] }
];
/** @nocollapse */
Stepper.ctorParameters = function () { return []; };
Stepper.propDecorators = {
max: [{ type: Input }],
min: [{ type: Input }],
value: [{ type: Input }],
step: [{ type: Input }],
defaultValue: [{ type: Input }],
disabled: [{ type: Input }],
readOnly: [{ type: Input }],
showNumber: [{ type: Input }],
onChange: [{ type: Output }],
clsStepper: [{ type: HostBinding, args: ['class.am-stepper',] }],
clsStpDisabled: [{ type: HostBinding, args: ['class.am-stepper-disabled',] }],
clsShowNum: [{ type: HostBinding, args: ['class.showNumber',] }]
};
return Stepper;
}());
export { Stepper };
if (false) {
/** @type {?} */
Stepper.prototype.prefixCls;
/** @type {?} */
Stepper.prototype.upDisableCls;
/** @type {?} */
Stepper.prototype.downDisableCls;
/** @type {?} */
Stepper.prototype.stepperCls;
/** @type {?} */
Stepper.prototype._max;
/** @type {?} */
Stepper.prototype._min;
/** @type {?} */
Stepper.prototype._value;
/** @type {?} */
Stepper.prototype._step;
/** @type {?} */
Stepper.prototype._defaultValue;
/** @type {?} */
Stepper.prototype._disabled;
/** @type {?} */
Stepper.prototype._readOnly;
/** @type {?} */
Stepper.prototype._showNumber;
/** @type {?} */
Stepper.prototype._upDisabled;
/** @type {?} */
Stepper.prototype._downDisabled;
/** @type {?} */
Stepper.prototype._isUpClick;
/** @type {?} */
Stepper.prototype._isDownClick;
/** @type {?} */
Stepper.prototype.onChange;
/** @type {?} */
Stepper.prototype.clsStepper;
/** @type {?} */
Stepper.prototype.clsStpDisabled;
/** @type {?} */
Stepper.prototype.clsShowNum;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RlcHBlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy16b3Jyby1hbnRkLW1vYmlsZS8iLCJzb3VyY2VzIjpbInN0ZXBwZXIvc3RlcHBlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxZQUFZLEVBQWEsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDOztJQThGN0Y7eUJBdkZvQixZQUFZO29CQUtULFFBQVE7b0JBQ1IsQ0FBQyxRQUFRO3FCQUVSLENBQUM7eUJBRUksS0FBSzt5QkFDTCxLQUFLOzJCQUNILEtBQUs7MkJBQ0wsS0FBSzs2QkFDSCxLQUFLOzBCQUNSLEtBQUs7NEJBQ0gsS0FBSzt3QkE4RDFCLElBQUksWUFBWSxFQUFPOzBCQUdaLElBQUk7OEJBRUEsSUFBSSxDQUFDLFNBQVM7MEJBRWxCLElBQUksQ0FBQyxXQUFXO0tBRXRCO0lBckVoQixzQkFDSSx3QkFBRzs7OztRQURQO1lBRUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xCOzs7OztRQUNELFVBQVEsS0FBYTtZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNuQjs7O09BSEE7SUFJRCxzQkFDSSx3QkFBRzs7OztRQURQO1lBRUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1NBQ2xCOzs7OztRQUNELFVBQVEsS0FBYTtZQUNuQixJQUFJLENBQUMsSUFBSSxHQUFHLEtBQUssQ0FBQztTQUNuQjs7O09BSEE7SUFJRCxzQkFDSSwwQkFBSzs7OztRQURUO1lBRUUsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDO1NBQ3BCOzs7OztRQUNELFVBQVUsQ0FBUztZQUNqQixJQUFJLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztTQUNqQjs7O09BSEE7SUFJRCxzQkFDSSx5QkFBSTs7OztRQURSO1lBRUUsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO1NB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OztJQUFYO1FBQ0UsSUFBSSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRTtZQUN4QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQztTQUN6QjtRQUNELElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxJQUFJLEVBQUU7WUFDeEMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUM7U0FDM0I7UUFDRCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7S0FDZjs7Z0JBbktGLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsdUJBQXVCO29CQUNqQyxpaUNBQXVDO2lCQUN4Qzs7Ozs7c0JBb0JFLEtBQUs7c0JBT0wsS0FBSzt3QkFPTCxLQUFLO3VCQU9MLEtBQUs7K0JBT0wsS0FBSzsyQkFPTCxLQUFLOzJCQVlMLEtBQUs7NkJBT0wsS0FBSzsyQkFLTCxNQUFNOzZCQUdOLFdBQVcsU0FBQyxrQkFBa0I7aUNBRTlCLFdBQVcsU0FBQywyQkFBMkI7NkJBRXZDLFdBQVcsU0FBQyxrQkFBa0I7O2tCQTNGakM7O1NBTWEsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyLCBPbkNoYW5nZXMsIEhvc3RCaW5kaW5nIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1N0ZXBwZXIgLCBuem0tc3RlcHBlcicsXG4gIHRlbXBsYXRlVXJsOiAnLi9zdGVwcGVyLmNvbXBvbmVudC5odG1sJ1xufSlcbmV4cG9ydCBjbGFzcyBTdGVwcGVyIGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgcHJlZml4Q2xzOiBzdHJpbmcgPSAnYW0tc3RlcHBlcic7XG4gIHVwRGlzYWJsZUNsczogb2JqZWN0O1xuICBkb3duRGlzYWJsZUNsczogb2JqZWN0O1xuICBzdGVwcGVyQ2xzOiBvYmplY3Q7XG5cbiAgcHJpdmF0ZSBfbWF4OiBudW1iZXIgPSBJbmZpbml0eTtcbiAgcHJpdmF0ZSBfbWluOiBudW1iZXIgPSAtSW5maW5pdHk7XG4gIHByaXZhdGUgX3ZhbHVlOiBudW1iZXI7XG4gIHByaXZhdGUgX3N0ZXA6IG51bWJlciA9IDE7XG4gIHByaXZhdGUgX2RlZmF1bHRWYWx1ZTogbnVtYmVyO1xuICBwcml2YXRlIF9kaXNhYmxlZDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9yZWFkT25seTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9zaG93TnVtYmVyOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX3VwRGlzYWJsZWQ6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZG93bkRpc2FibGVkOiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2lzVXBDbGljazogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9pc0Rvd25DbGljazogYm9vbGVhbiA9IGZhbHNlO1xuXG4gIEBJbnB1dCgpXG4gIGdldCBtYXgoKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWF4O1xuICB9XG4gIHNldCBtYXgodmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX21heCA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBtaW4oKTogbnVtYmVyIHtcbiAgICByZXR1cm4gdGhpcy5fbWluO1xuICB9XG4gIHNldCBtaW4odmFsdWU6IG51bWJlcikge1xuICAgIHRoaXMuX21pbiA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCB2YWx1ZSgpOiBudW1iZXIge1xuICAgIHJldHVybiB0aGlzLl92YWx1ZTtcbiAgfVxuICBzZXQgdmFsdWUodjogbnVtYmVyKSB7XG4gICAgdGhpcy5fdmFsdWUgPSB2O1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBzdGVwKCk6IG51bWJlciB7XG4gICAgcmV0dXJuIHRoaXMuX3N0ZXA7XG4gIH1cbiAgc2V0IHN0ZXAodmFsdWUpIHtcbiAgICB0aGlzLl9zdGVwID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGRlZmF1bHRWYWx1ZSh2YWx1ZSkge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fZGVmYXVsdFZhbHVlID0gdmFsdWU7XG4gICAgICB0aGlzLl92YWx1ZSA9IHZhbHVlO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIGlmICh2YWx1ZSkge1xuICAgICAgdGhpcy5fZGlzYWJsZWQgPSB0cnVlO1xuICAgICAgdGhpcy5fZG93bkRpc2FibGVkID0gdHJ1ZTtcbiAgICAgIHRoaXMuX3VwRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLmNsc1N0cERpc2FibGVkID0gdmFsdWU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHJlYWRPbmx5KCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9yZWFkT25seTtcbiAgfVxuICBzZXQgcmVhZE9ubHkodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZWFkT25seSA9IHZhbHVlO1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBzaG93TnVtYmVyKHZhbHVlOiBib29sZWFuKSB7XG4gICAgdGhpcy5fc2hvd051bWJlciA9IHZhbHVlO1xuICAgIHRoaXMuY2xzU2hvd051bSA9IHZhbHVlO1xuICB9XG4gIEBPdXRwdXQoKVxuICBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuXG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tc3RlcHBlcicpXG4gIGNsc1N0ZXBwZXI6IGJvb2xlYW4gPSB0cnVlO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLXN0ZXBwZXItZGlzYWJsZWQnKVxuICBjbHNTdHBEaXNhYmxlZDogYm9vbGVhbiA9IHRoaXMuX2Rpc2FibGVkO1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLnNob3dOdW1iZXInKVxuICBjbHNTaG93TnVtOiBib29sZWFuID0gdGhpcy5fc2hvd051bWJlcjtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgb25JbmNyZWFzZSgpIHtcbiAgICBpZiAoIXRoaXMuX3VwRGlzYWJsZWQpIHtcbiAgICAgIHRoaXMuX3ZhbHVlID0gdGhpcy5fdmFsdWUgKyB0aGlzLl9zdGVwO1xuICAgICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcbiAgICAgIGlmICh0aGlzLl92YWx1ZSArIHRoaXMuX3N0ZXAgPiB0aGlzLl9tYXgpIHtcbiAgICAgICAgdGhpcy5fdXBEaXNhYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fdmFsdWUgLSB0aGlzLl9zdGVwID49IHRoaXMuX21pbikge1xuICAgICAgICB0aGlzLl9kb3duRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHRoaXMuX2lzVXBDbGljayA9IHRydWU7XG4gICAgICB0aGlzLnNldENscygpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzVXBDbGljayA9IGZhbHNlO1xuICAgICAgICB0aGlzLnNldENscygpO1xuICAgICAgfSwgMTAwKTtcbiAgICB9XG4gIH1cblxuICBvbkRlY3JlYXNlKCkge1xuICAgIGlmICghdGhpcy5fZG93bkRpc2FibGVkKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX3ZhbHVlIC0gdGhpcy5fc3RlcDtcbiAgICAgIHRoaXMub25DaGFuZ2UuZW1pdCh0aGlzLl92YWx1ZSk7XG4gICAgICBpZiAodGhpcy5fdmFsdWUgLSB0aGlzLl9zdGVwIDwgdGhpcy5fbWluKSB7XG4gICAgICAgIHRoaXMuX2Rvd25EaXNhYmxlZCA9IHRydWU7XG4gICAgICB9XG4gICAgICBpZiAodGhpcy5fdmFsdWUgKyB0aGlzLl9zdGVwIDw9IHRoaXMuX21heCkge1xuICAgICAgICB0aGlzLl91cERpc2FibGVkID0gZmFsc2U7XG4gICAgICB9XG4gICAgICB0aGlzLl9pc0Rvd25DbGljayA9IHRydWU7XG4gICAgICB0aGlzLnNldENscygpO1xuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgIHRoaXMuX2lzRG93bkNsaWNrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuc2V0Q2xzKCk7XG4gICAgICB9LCAxMDApO1xuICAgIH1cbiAgfVxuXG4gIGlucHV0Q2hhbmdlKGV2ZW50KSB7XG4gICAgY29uc3QgdmFsdWUgPSBldmVudC50YXJnZXQudmFsdWU7XG4gICAgdGhpcy5fdmFsdWUgPSB2YWx1ZSA/IHBhcnNlSW50KHZhbHVlLCBudWxsKSA6IDA7XG4gICAgaWYgKHZhbHVlIDwgdGhpcy5fbWluKSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX21pbjtcbiAgICB9XG4gICAgaWYgKHZhbHVlID4gdGhpcy5fbWF4KSB7XG4gICAgICB0aGlzLl92YWx1ZSA9IHRoaXMuX21heDtcbiAgICB9XG4gICAgdGhpcy5vbkNoYW5nZS5lbWl0KHRoaXMuX3ZhbHVlKTtcbiAgfVxuXG4gIHNldENscygpIHtcbiAgICB0aGlzLnVwRGlzYWJsZUNscyA9IHtcbiAgICAgIFtgJHt0aGlzLnByZWZpeENsc30taGFuZGxlci11cC1kaXNhYmxlZGBdOiB0aGlzLl91cERpc2FibGVkLFxuICAgICAgW2Ake3RoaXMucHJlZml4Q2xzfS1oYW5kbGVyLWFjdGl2ZWBdOiB0aGlzLl9pc1VwQ2xpY2tcbiAgICB9O1xuICAgIHRoaXMuZG93bkRpc2FibGVDbHMgPSB7XG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWhhbmRsZXItZG93bi1kaXNhYmxlZGBdOiB0aGlzLl9kb3duRGlzYWJsZWQsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWhhbmRsZXItYWN0aXZlYF06IHRoaXMuX2lzRG93bkNsaWNrXG4gICAgfTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0aGlzLl92YWx1ZSArIHRoaXMuX3N0ZXAgPiB0aGlzLl9tYXgpIHtcbiAgICAgIHRoaXMuX3VwRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICBpZiAodGhpcy5fdmFsdWUgLSB0aGlzLl9zdGVwIDwgdGhpcy5fbWluKSB7XG4gICAgICB0aGlzLl9kb3duRGlzYWJsZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnNldENscygpO1xuICB9XG59XG4iXX0=