UNPKG

ng-zorro-antd-mobile

Version:

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

360 lines 22.9 kB
/** * @fileoverview added by tsickle * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ import { Component, ViewEncapsulation, Input, Output, ElementRef, HostListener, EventEmitter, Renderer2, TemplateRef } from '@angular/core'; var ButtonComponent = /** @class */ (function () { function ButtonComponent(_elementRef, _render) { this._elementRef = _elementRef; this._render = _render; this.prefixCls = 'am-button'; this.ngTemplate = false; this._className = ''; this._classList = []; this._size = 'large'; this._loading = false; this._active = false; this._inline = false; this._disabled = false; this._icon = ''; this._userAgent = ((/** @type {?} */ (navigator))).userAgent || ((/** @type {?} */ (navigator))).vendor || ((/** @type {?} */ (window))).opera; this.onClick = new EventEmitter(); this._el = this._elementRef.nativeElement; this._render.addClass(this._el, this.prefixCls); this._className = this._el.className; } Object.defineProperty(ButtonComponent.prototype, "type", { get: /** * @return {?} */ function () { return this._type; }, set: /** * @param {?} value * @return {?} */ function (value) { this._type = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(ButtonComponent.prototype, "size", { get: /** * @return {?} */ function () { return this._size; }, set: /** * @param {?} value * @return {?} */ function (value) { this._size = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(ButtonComponent.prototype, "disabled", { get: /** * @return {?} */ function () { return this._disabled; }, set: /** * @param {?} value * @return {?} */ function (value) { this._disabled = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(ButtonComponent.prototype, "loading", { get: /** * @return {?} */ function () { return this._loading; }, set: /** * @param {?} value * @return {?} */ function (value) { this._loading = value; if (this._el.querySelector('icon')) { /** @type {?} */ var icon = (/** @type {?} */ (this._el.querySelector('icon'))); icon.style.display = value ? '' : 'none'; } this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(ButtonComponent.prototype, "inline", { get: /** * @return {?} */ function () { return this._inline; }, set: /** * @param {?} value * @return {?} */ function (value) { this._inline = value; this.setClassMap(); }, enumerable: true, configurable: true }); Object.defineProperty(ButtonComponent.prototype, "icon", { get: /** * @return {?} */ function () { return this._icon; }, set: /** * @param {?} value * @return {?} */ function (value) { if (value instanceof TemplateRef) { this.ngTemplate = true; this._icon = value; } else { this.ngTemplate = false; this._icon = (/** @type {?} */ (value)); this.setClassMap(); } }, enumerable: true, configurable: true }); Object.defineProperty(ButtonComponent.prototype, "className", { set: /** * @param {?} v * @return {?} */ function (v) { this._className = this._className + ' ' + v; this.setClassMap(); }, enumerable: true, configurable: true }); /** * @param {?} event * @return {?} */ ButtonComponent.prototype.touchStart = /** * @param {?} event * @return {?} */ function (event) { if (this._disabled) { return; } this._active = true; this.setClassMap(); }; /** * @param {?} event * @return {?} */ ButtonComponent.prototype.touchEnd = /** * @param {?} event * @return {?} */ function (event) { if (this._disabled) { return; } this._active = false; this.setClassMap(); }; /** * @param {?} event * @return {?} */ ButtonComponent.prototype.click = /** * @param {?} event * @return {?} */ function (event) { if (this._disabled) { return; } this.onClick.emit(); }; /** * @param {?} value * @return {?} */ ButtonComponent.prototype.isTemplateRef = /** * @param {?} value * @return {?} */ function (value) { if (value) { return value instanceof TemplateRef; } return false; }; /** * @return {?} */ ButtonComponent.prototype.ngAfterViewInit = /** * @return {?} */ function () { if (this._el.querySelector('img')) { /** @type {?} */ var amSize = this._size === 'small' ? 'am-icon-xxs' : 'am-icon-md'; this._el.querySelector('img').setAttribute('class', "am-icon " + this.prefixCls + "-icon " + amSize); this._render.addClass(this._el, this.prefixCls + "-icon"); } }; /** * @private * @return {?} */ ButtonComponent.prototype.setClassMap = /** * @private * @return {?} */ function () { this.iconType = this._loading ? 'loading' : this._icon; this._classList = [ this._type && this.prefixCls + "-" + this._type, this._size === 'small' && this.prefixCls + "-" + this._size, this._disabled && this.prefixCls + "-disabled", this._loading && this.prefixCls + "-loading", this.iconType && this.prefixCls + "-icon", this._active && this.prefixCls + "-active", this._inline && this.prefixCls + "-inline" ].filter((/** * @param {?} item * @return {?} */ function (item) { return !!item; })); this._el.className = this._className + ' ' + this._classList.join(' '); }; ButtonComponent.decorators = [ { type: Component, args: [{ selector: '[Button], nzm-button', encapsulation: ViewEncapsulation.None, template: "<Icon\n *ngIf=\"!ngTemplate\"\n class=\"{{ prefixCls }}-icon\"\n [type]=\"iconType\"\n [size]=\"size === 'small' ? 'xxs' : 'md'\"\n></Icon>\n<ng-template *ngIf=\"ngTemplate\" [ngTemplateOutlet]=\"icon\"></ng-template>\n<ng-content select=\"img\"></ng-content>\n<div class=\"{{ prefixCls }}-content\">\n <span>\n <ng-content></ng-content>\n </span>\n</div>\n" }] } ]; /** @nocollapse */ ButtonComponent.ctorParameters = function () { return [ { type: ElementRef }, { type: Renderer2 } ]; }; ButtonComponent.propDecorators = { type: [{ type: Input }], size: [{ type: Input }], disabled: [{ type: Input }], loading: [{ type: Input }], inline: [{ type: Input }], icon: [{ type: Input }], className: [{ type: Input }], onClick: [{ type: Output }], touchStart: [{ type: HostListener, args: ['touchstart', ['$event'],] }, { type: HostListener, args: ['mousedown', ['$event'],] }], touchEnd: [{ type: HostListener, args: ['touchend', ['$event'],] }, { type: HostListener, args: ['mouseup', ['$event'],] }, { type: HostListener, args: ['touchmove', ['$event'],] }, { type: HostListener, args: ['mousemove', ['$event'],] }, { type: HostListener, args: ['touchcancel', ['$event'],] }], click: [{ type: HostListener, args: ['click', ['$event'],] }] }; return ButtonComponent; }()); export { ButtonComponent }; if (false) { /** @type {?} */ ButtonComponent.prototype.prefixCls; /** @type {?} */ ButtonComponent.prototype.ngTemplate; /** @type {?} */ ButtonComponent.prototype.iconType; /** * @type {?} * @private */ ButtonComponent.prototype._el; /** * @type {?} * @private */ ButtonComponent.prototype._className; /** * @type {?} * @private */ ButtonComponent.prototype._classList; /** * @type {?} * @private */ ButtonComponent.prototype._type; /** * @type {?} * @private */ ButtonComponent.prototype._size; /** * @type {?} * @private */ ButtonComponent.prototype._loading; /** * @type {?} * @private */ ButtonComponent.prototype._active; /** * @type {?} * @private */ ButtonComponent.prototype._inline; /** * @type {?} * @private */ ButtonComponent.prototype._disabled; /** * @type {?} * @private */ ButtonComponent.prototype._icon; /** * @type {?} * @private */ ButtonComponent.prototype._userAgent; /** @type {?} */ ButtonComponent.prototype.onClick; /** * @type {?} * @private */ ButtonComponent.prototype._elementRef; /** * @type {?} * @private */ ButtonComponent.prototype._render; } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnV0dG9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL25nLXpvcnJvLWFudGQtbW9iaWxlLyIsInNvdXJjZXMiOlsiYnV0dG9uL2J1dHRvbi5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsaUJBQWlCLEVBQ2pCLEtBQUssRUFDTCxNQUFNLEVBQ04sVUFBVSxFQUNWLFlBQVksRUFDWixZQUFZLEVBQ1osU0FBUyxFQUNULFdBQVcsRUFFWixNQUFNLGVBQWUsQ0FBQztBQUV2QjtJQThGRSx5QkFBb0IsV0FBdUIsRUFBVSxPQUFrQjtRQUFuRCxnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQVc7UUF4RnZFLGNBQVMsR0FBVyxXQUFXLENBQUM7UUFDaEMsZUFBVSxHQUFZLEtBQUssQ0FBQztRQUlwQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBUSxFQUFFLENBQUM7UUFFckIsVUFBSyxHQUFHLE9BQU8sQ0FBQztRQUNoQixhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFDaEIsWUFBTyxHQUFHLEtBQUssQ0FBQztRQUNoQixjQUFTLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLFVBQUssR0FBOEIsRUFBRSxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxDQUFDLG1CQUFLLFNBQVMsRUFBQSxDQUFDLENBQUMsU0FBUyxJQUFJLENBQUMsbUJBQUssU0FBUyxFQUFBLENBQUMsQ0FBQyxNQUFNLElBQUksQ0FBQyxtQkFBSyxNQUFNLEVBQUEsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQTBDbEcsWUFBTyxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBaUM5QyxJQUFJLENBQUMsR0FBRyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsYUFBYSxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUks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QUFFLENBQUMsUUFBUSxDQUFDOzJCQVFwQyxZQUFZLFNBQUMsVUFBVSxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQ25DLFlBQVksU0FBQyxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsY0FDbEMsWUFBWSxTQUFDLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxjQUNwQyxZQUFZLFNBQUMsV0FBVyxFQUFFLENBQUMsUUFBUSxDQUFDLGNBQ3BDLFlBQVksU0FBQyxhQUFhLEVBQUUsQ0FBQyxRQUFRLENBQUM7d0JBU3RDLFlBQVksU0FBQyxPQUFPLEVBQUUsQ0FBQyxRQUFRLENBQUM7O0lBeUVuQyxzQkFBQztDQUFBLEFBL0pELElBK0pDO1NBMUpZLGVBQWU7OztJQUMxQixvQ0FBZ0M7O0lBQ2hDLHFDQUE0Qjs7SUFDNUIsbUNBQWM7Ozs7O0lBRWQsOEJBQXlCOzs7OztJQUN6QixxQ0FBd0I7Ozs7O0lBQ3hCLHFDQUE2Qjs7Ozs7SUFDN0IsZ0NBQXNCOzs7OztJQUN0QixnQ0FBd0I7Ozs7O0lBQ3hCLG1DQUF5Qjs7Ozs7SUFDekIsa0NBQXdCOzs7OztJQUN4QixrQ0FBd0I7Ozs7O0lBQ3hCLG9DQUEwQjs7Ozs7SUFDMUIsZ0NBQThDOzs7OztJQUM5QyxxQ0FBa0c7O0lBeUNsRyxrQ0FDZ0Q7Ozs7O0lBZ0NwQyxzQ0FBK0I7Ozs7O0lBQUUsa0NBQTBCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ29tcG9uZW50LFxuICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgSW5wdXQsXG4gIE91dHB1dCxcbiAgRWxlbWVudFJlZixcbiAgSG9zdExpc3RlbmVyLFxuICBFdmVudEVtaXR0ZXIsXG4gIFJlbmRlcmVyMixcbiAgVGVtcGxhdGVSZWYsXG4gIEFmdGVyVmlld0luaXRcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ1tCdXR0b25dLCBuem0tYnV0dG9uJyxcbiAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgdGVtcGxhdGVVcmw6ICcuL2J1dHRvbi5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQnV0dG9uQ29tcG9uZW50IGltcGxlbWVudHMgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByZWZpeENsczogc3RyaW5nID0gJ2FtLWJ1dHRvbic7XG4gIG5nVGVtcGxhdGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaWNvblR5cGU6IGFueTtcblxuICBwcml2YXRlIF9lbDogSFRNTEVsZW1lbnQ7XG4gIHByaXZhdGUgX2NsYXNzTmFtZSA9ICcnO1xuICBwcml2YXRlIF9jbGFzc0xpc3Q6IGFueSA9IFtdO1xuICBwcml2YXRlIF90eXBlOiBzdHJpbmc7XG4gIHByaXZhdGUgX3NpemUgPSAnbGFyZ2UnO1xuICBwcml2YXRlIF9sb2FkaW5nID0gZmFsc2U7XG4gIHByaXZhdGUgX2FjdGl2ZSA9IGZhbHNlO1xuICBwcml2YXRlIF9pbmxpbmUgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfZGlzYWJsZWQgPSBmYWxzZTtcbiAgcHJpdmF0ZSBfaWNvbjogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55PiA9ICcnO1xuICBwcml2YXRlIF91c2VyQWdlbnQgPSAoPGFueT5uYXZpZ2F0b3IpLnVzZXJBZ2VudCB8fCAoPGFueT5uYXZpZ2F0b3IpLnZlbmRvciB8fCAoPGFueT53aW5kb3cpLm9wZXJhO1xuXG4gIEBJbnB1dCgpXG4gIGdldCB0eXBlKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3R5cGU7XG4gIH1cbiAgQElucHV0KClcbiAgZ2V0IHNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fc2l6ZTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2Rpc2FibGVkO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBsb2FkaW5nKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLl9sb2FkaW5nO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBpbmxpbmUoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2lubGluZTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgaWNvbigpOiBzdHJpbmcgfCBUZW1wbGF0ZVJlZjxhbnk+IHtcbiAgICByZXR1cm4gdGhpcy5faWNvbjtcbiAgfVxuICBzZXQgaWNvbih2YWx1ZTogc3RyaW5nIHwgVGVtcGxhdGVSZWY8YW55Pikge1xuICAgIGlmICh2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmKSB7XG4gICAgICB0aGlzLm5nVGVtcGxhdGUgPSB0cnVlO1xuICAgICAgdGhpcy5faWNvbiA9IHZhbHVlO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm5nVGVtcGxhdGUgPSBmYWxzZTtcbiAgICAgIHRoaXMuX2ljb24gPSA8c3RyaW5nPnZhbHVlO1xuICAgICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICAgIH1cbiAgfVxuICBASW5wdXQoKVxuICBzZXQgY2xhc3NOYW1lKHYpIHtcbiAgICB0aGlzLl9jbGFzc05hbWUgPSB0aGlzLl9jbGFzc05hbWUgKyAnICcgKyB2O1xuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgfVxuICBAT3V0cHV0KClcbiAgb25DbGljazogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hzdGFydCcsIFsnJGV2ZW50J10pXG4gIEBIb3N0TGlzdGVuZXIoJ21vdXNlZG93bicsIFsnJGV2ZW50J10pXG4gIHRvdWNoU3RhcnQoZXZlbnQpIHtcbiAgICBpZiAodGhpcy5fZGlzYWJsZWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5fYWN0aXZlID0gdHJ1ZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hlbmQnLCBbJyRldmVudCddKVxuICBASG9zdExpc3RlbmVyKCdtb3VzZXVwJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2htb3ZlJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcignbW91c2Vtb3ZlJywgWyckZXZlbnQnXSlcbiAgQEhvc3RMaXN0ZW5lcigndG91Y2hjYW5jZWwnLCBbJyRldmVudCddKVxuICB0b3VjaEVuZChldmVudCkge1xuICAgIGlmICh0aGlzLl9kaXNhYmxlZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLl9hY3RpdmUgPSBmYWxzZTtcbiAgICB0aGlzLnNldENsYXNzTWFwKCk7XG4gIH1cblxuICBASG9zdExpc3RlbmVyKCdjbGljaycsIFsnJGV2ZW50J10pXG4gIGNsaWNrKGV2ZW50KSB7XG4gICAgaWYgKHRoaXMuX2Rpc2FibGVkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuICAgIHRoaXMub25DbGljay5lbWl0KCk7XG4gIH1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIF9lbGVtZW50UmVmOiBFbGVtZW50UmVmLCBwcml2YXRlIF9yZW5kZXI6IFJlbmRlcmVyMikge1xuICAgIHRoaXMuX2VsID0gdGhpcy5fZWxlbWVudFJlZi5uYXRpdmVFbGVtZW50O1xuICAgIHRoaXMuX3JlbmRlci5hZGRDbGFzcyh0aGlzLl9lbCwgdGhpcy5wcmVmaXhDbHMpO1xuICAgIHRoaXMuX2NsYXNzTmFtZSA9IHRoaXMuX2VsLmNsYXNzTmFtZTtcbiAgfVxuXG4gIGlzVGVtcGxhdGVSZWYodmFsdWUpIHtcbiAgICBpZiAodmFsdWUpIHtcbiAgICAgIHJldHVybiB2YWx1ZSBpbnN0YW5jZW9mIFRlbXBsYXRlUmVmO1xuICAgIH1cbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cblxuICBzZXQgdHlwZSh2YWx1ZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdHlwZSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgfVxuXG4gIHNldCBkaXNhYmxlZCh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2Rpc2FibGVkID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgc2V0IGxvYWRpbmcodmFsdWU6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9sb2FkaW5nID0gdmFsdWU7XG4gICAgaWYgKHRoaXMuX2VsLnF1ZXJ5U2VsZWN0b3IoJ2ljb24nKSkge1xuICAgICAgY29uc3QgaWNvbiA9IHRoaXMuX2VsLnF1ZXJ5U2VsZWN0b3IoJ2ljb24nKSBhcyBIVE1MRWxlbWVudDtcbiAgICAgIGljb24uc3R5bGUuZGlzcGxheSA9IHZhbHVlID8gJycgOiAnbm9uZSc7XG4gICAgfVxuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgfVxuXG4gIHNldCBzaXplKHZhbHVlOiBzdHJpbmcpIHtcbiAgICB0aGlzLl9zaXplID0gdmFsdWU7XG4gICAgdGhpcy5zZXRDbGFzc01hcCgpO1xuICB9XG5cbiAgc2V0IGlubGluZSh2YWx1ZTogYm9vbGVhbikge1xuICAgIHRoaXMuX2lubGluZSA9IHZhbHVlO1xuICAgIHRoaXMuc2V0Q2xhc3NNYXAoKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpIHtcbiAgICBpZiAodGhpcy5fZWwucXVlcnlTZWxlY3RvcignaW1nJykpIHtcbiAgICAgIGNvbnN0IGFtU2l6ZSA9IHRoaXMuX3NpemUgPT09ICdzbWFsbCcgPyAnYW0taWNvbi14eHMnIDogJ2FtLWljb24tbWQnO1xuICAgICAgdGhpcy5fZWwucXVlcnlTZWxlY3RvcignaW1nJykuc2V0QXR0cmlidXRlKCdjbGFzcycsIGBhbS1pY29uICR7dGhpcy5wcmVmaXhDbHN9LWljb24gJHthbVNpemV9YCk7XG4gICAgICB0aGlzLl9yZW5kZXIuYWRkQ2xhc3ModGhpcy5fZWwsIGAke3RoaXMucHJlZml4Q2xzfS1pY29uYCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBzZXRDbGFzc01hcCgpOiB2b2lkIHtcbiAgICB0aGlzLmljb25UeXBlID0gdGhpcy5fbG9hZGluZyA/ICdsb2FkaW5nJyA6IHRoaXMuX2ljb247XG4gICAgdGhpcy5fY2xhc3NMaXN0ID0gW1xuICAgICAgdGhpcy5fdHlwZSAmJiBgJHt0aGlzLnByZWZpeENsc30tJHt0aGlzLl90eXBlfWAsXG4gICAgICB0aGlzLl9zaXplID09PSAnc21hbGwnICYmIGAke3RoaXMucHJlZml4Q2xzfS0ke3RoaXMuX3NpemV9YCxcbiAgICAgIHRoaXMuX2Rpc2FibGVkICYmIGAke3RoaXMucHJlZml4Q2xzfS1kaXNhYmxlZGAsXG4gICAgICB0aGlzLl9sb2FkaW5nICYmIGAke3RoaXMucHJlZml4Q2xzfS1sb2FkaW5nYCxcbiAgICAgIHRoaXMuaWNvblR5cGUgJiYgYCR7dGhpcy5wcmVmaXhDbHN9LWljb25gLFxuICAgICAgdGhpcy5fYWN0aXZlICYmIGAke3RoaXMucHJlZml4Q2xzfS1hY3RpdmVgLFxuICAgICAgdGhpcy5faW5saW5lICYmIGAke3RoaXMucHJlZml4Q2xzfS1pbmxpbmVgXG4gICAgXS5maWx0ZXIoaXRlbSA9PiB7XG4gICAgICByZXR1cm4gISFpdGVtO1xuICAgIH0pO1xuICAgIHRoaXMuX2VsLmNsYXNzTmFtZSA9IHRoaXMuX2NsYXNzTmFtZSArICcgJyArIHRoaXMuX2NsYXNzTGlzdC5qb2luKCcgJyk7XG4gIH1cbn1cbiJdfQ==