ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
360 lines • 22.9 kB
JavaScript
/**
* @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==