UNPKG

ng-zorro-antd-mobile

Version:

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

327 lines (326 loc) 20.9 kB
/** * @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=