ng-zorro-antd-mobile
Version:
An enterprise-class mobile UI components based on Ant Design and Angular
299 lines • 17.8 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc
*/
import { Component, Input, HostBinding, ElementRef, Renderer2 } from '@angular/core';
var BadgeComponent = /** @class */ (function () {
function BadgeComponent(_ref, render) {
this._ref = _ref;
this.render = render;
this.prefixCls = 'am-badge';
this.scrollNumberCls = {};
this.style = {};
this._size = 'small';
this._dot = false;
this._hot = false;
this._corner = false;
this._children = false;
this._overflowCount = 99;
this.clsBadge = true;
this.clsBadgeWrp = !this._children;
this.clsBadgeCornerWrp = this._corner;
this.clsBadgeHot = !!this._hot;
this.clsBadgeCornerWrpLg = this._corner && this._size === 'large';
}
Object.defineProperty(BadgeComponent.prototype, "size", {
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._size = v;
this.setCls();
},
enumerable: true,
configurable: true
});
Object.defineProperty(BadgeComponent.prototype, "text", {
get: /**
* @return {?}
*/
function () {
return this._text;
},
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._text = v;
this.setCls();
},
enumerable: true,
configurable: true
});
Object.defineProperty(BadgeComponent.prototype, "corner", {
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._corner = v;
this.setCls();
},
enumerable: true,
configurable: true
});
Object.defineProperty(BadgeComponent.prototype, "dot", {
get: /**
* @return {?}
*/
function () {
return this._dot;
},
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._dot = v;
if (this._dot) {
this._text = '';
}
this.setCls();
},
enumerable: true,
configurable: true
});
Object.defineProperty(BadgeComponent.prototype, "overflowCount", {
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._overflowCount = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(BadgeComponent.prototype, "hot", {
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this._hot = v;
this.setCls();
},
enumerable: true,
configurable: true
});
Object.defineProperty(BadgeComponent.prototype, "setStyle", {
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
this.style = v;
},
enumerable: true,
configurable: true
});
Object.defineProperty(BadgeComponent.prototype, "className", {
set: /**
* @param {?} v
* @return {?}
*/
function (v) {
var _this = this;
this._setClass = v;
/** @type {?} */
var clsArr = this._setClass.split(' ');
clsArr.forEach((/**
* @param {?} cls
* @return {?}
*/
function (cls) {
_this.render.addClass(_this._ref.nativeElement, cls);
}));
},
enumerable: true,
configurable: true
});
/**
* @return {?}
*/
BadgeComponent.prototype.setCls = /**
* @return {?}
*/
function () {
var _a;
this.scrollNumberCls = (_a = {},
_a[this.prefixCls + "-dot"] = this._dot,
_a[this.prefixCls + "-dot-large"] = this._dot && this._size === 'large',
_a[this.prefixCls + "-text"] = !this._dot && !this._corner,
_a[this.prefixCls + "-corner"] = this._corner,
_a[this.prefixCls + "-corner-large"] = this._corner && this._size === 'large',
_a);
this.clsBadgeWrp = !this._children;
this.clsBadgeCornerWrp = this._corner;
this.clsBadgeHot = !!this._hot;
this.clsBadgeCornerWrpLg = this._corner && this._size === 'large';
};
/**
* @return {?}
*/
BadgeComponent.prototype.ngOnChanges = /**
* @return {?}
*/
function () {
if (typeof this._text === 'number' && this._text > this._overflowCount) {
this._text = this._overflowCount + '+';
}
};
/**
* @return {?}
*/
BadgeComponent.prototype.ngOnInit = /**
* @return {?}
*/
function () {
this.setCls();
};
/**
* @return {?}
*/
BadgeComponent.prototype.ngAfterViewInit = /**
* @return {?}
*/
function () {
var _this = this;
setTimeout((/**
* @return {?}
*/
function () {
if (_this._ref.nativeElement.children.length > 1 ||
(_this._ref.nativeElement.children.length === 1 && !_this.dot && !_this.text)) {
_this._children = true;
_this.setCls();
}
}), 10);
};
BadgeComponent.decorators = [
{ type: Component, args: [{
selector: 'Badge, nzm-badge',
template: "<ng-content></ng-content>\n<sup *ngIf=\"dot || text\" [ngClass]=\"scrollNumberCls\" [ngStyle]=\"style\">\n <span>{{ text }}</span>\n</sup>\n"
}] }
];
/** @nocollapse */
BadgeComponent.ctorParameters = function () { return [
{ type: ElementRef },
{ type: Renderer2 }
]; };
BadgeComponent.propDecorators = {
size: [{ type: Input }],
text: [{ type: Input }],
corner: [{ type: Input }],
dot: [{ type: Input }],
overflowCount: [{ type: Input }],
hot: [{ type: Input }],
setStyle: [{ type: Input }],
className: [{ type: Input }],
clsBadge: [{ type: HostBinding, args: ['class.am-badge',] }],
clsBadgeWrp: [{ type: HostBinding, args: ['class.am-badge-not-a-wrapper',] }],
clsBadgeCornerWrp: [{ type: HostBinding, args: ['class.am-badge-corner-wrapper',] }],
clsBadgeHot: [{ type: HostBinding, args: ['class.am-badge-hot',] }],
clsBadgeCornerWrpLg: [{ type: HostBinding, args: ['class.am-badge-corner-wrapper-large',] }]
};
return BadgeComponent;
}());
export { BadgeComponent };
if (false) {
/** @type {?} */
BadgeComponent.prototype.prefixCls;
/** @type {?} */
BadgeComponent.prototype.scrollNumberCls;
/** @type {?} */
BadgeComponent.prototype.style;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._text;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._setClass;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._size;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._dot;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._hot;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._corner;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._children;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._overflowCount;
/** @type {?} */
BadgeComponent.prototype.clsBadge;
/** @type {?} */
BadgeComponent.prototype.clsBadgeWrp;
/** @type {?} */
BadgeComponent.prototype.clsBadgeCornerWrp;
/** @type {?} */
BadgeComponent.prototype.clsBadgeHot;
/** @type {?} */
BadgeComponent.prototype.clsBadgeCornerWrpLg;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype._ref;
/**
* @type {?}
* @private
*/
BadgeComponent.prototype.render;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFkZ2UuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vbmctem9ycm8tYW50ZC1tb2JpbGUvIiwic291cmNlcyI6WyJiYWRnZS9iYWRnZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLFdBQVcsRUFBYSxVQUFVLEVBQWlCLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUV2SDtJQWdGRSx3QkFBb0IsSUFBZ0IsRUFBVSxNQUFpQjtRQUEzQyxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQTNFL0QsY0FBUyxHQUFXLFVBQVUsQ0FBQztRQUMvQixvQkFBZSxHQUFXLEVBQUUsQ0FBQztRQUM3QixVQUFLLEdBQVcsRUFBRSxDQUFDO1FBSVgsVUFBSyxHQUFXLE9BQU8sQ0FBQztRQUN4QixTQUFJLEdBQVksS0FBSyxDQUFDO1FBQ3RCLFNBQUksR0FBWSxLQUFLLENBQUM7UUFDdEIsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixjQUFTLEdBQVksS0FBSyxDQUFDO1FBQzNCLG1CQUFjLEdBQVcsRUFBRSxDQUFDO1FBc0RwQyxhQUFRLEdBQVksSUFBSSxDQUFDO1FBRXpCLGdCQUFXLEdBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBRXZDLHNCQUFpQixHQUFZLElBQUksQ0FBQyxPQUFPLENBQUM7UUFFMUMsZ0JBQVcsR0FBWSxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztRQUVuQyx3QkFBbUIsR0FBWSxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDO0lBRUosQ0FBQztJQTlEbkUsc0JBQ0ksZ0NBQUk7Ozs7O1FBRFIsVUFDUyxDQUFTO1lBQ2hCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQ2YsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUM7OztPQUFBO0lBQ0Qsc0JBQ0ksZ0NBQUk7Ozs7UUFEUjtZQUVFLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQztRQUNwQixDQUFDOzs7OztRQUNELFVBQVMsQ0FBUztZQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNmLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUNoQixDQUFDOzs7T0FKQTtJQUtELHNCQUNJLGtDQUFNOzs7OztRQURWLFVBQ1csQ0FBVTtZQUNuQixJQUFJLENBQUMsT0FBTyxHQUFHLENBQUMsQ0FBQztZQUNqQixJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQzs7O09BQUE7SUFDRCxzQkFDSSwrQkFBRzs7OztRQURQO1lBRUUsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQ25CLENBQUM7Ozs7O1FBQ0QsVUFBUSxDQUFVO1lBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxDQUFDO1lBQ2QsSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO2dCQUNiLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxDQUFDO2FBQ2pCO1lBQ0QsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2hCLENBQUM7OztPQVBBO0lBUUQsc0JBQ0kseUNBQWE7Ozs7O1FBRGpCLFVBQ2tCLENBQVM7WUFDekIsSUFBSSxDQUFDLGNBQWMsR0FBRyxDQUFDLENBQUM7UUFDMUIsQ0FBQzs7O09BQUE7SUFDRCxzQkFDSSwrQkFBRzs7Ozs7UUFEUCxVQUNRLENBQVU7WUFDaEIsSUFBSSxDQUFDLElBQUksR0FBRyxDQUFDLENBQUM7WUFDZCxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDaEIsQ0FBQzs7O09BQUE7SUFDRCxzQkFDSSxvQ0FBUTs7Ozs7UUFEWixVQUNhLENBQVM7WUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxDQUFDLENBQUM7UUFDakIsQ0FBQzs7O09BQUE7SUFDRCxzQkFDSSxxQ0FBUzs7Ozs7UUFEYixVQUNjLENBQVM7WUFEdkIsaUJBT0M7WUFMQyxJQUFJLENBQUMsU0FBUyxHQUFHLENBQUMsQ0FBQzs7Z0JBQ2IsTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQztZQUN4QyxNQUFNLENBQUMsT0FBTzs7OztZQUFDLFVBQUEsR0FBRztnQkFDaEIsS0FBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsS0FBSSxDQUFDLElBQUksQ0FBQyxhQUFhLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDckQsQ0FBQyxFQUFDLENBQUM7UUFDTCxDQUFDOzs7T0FBQTs7OztJQWVELCtCQUFNOzs7SUFBTjs7UUFDRSxJQUFJLENBQUMsZUFBZTtZQUNsQixHQUFJLElBQUksQ0FBQyxTQUFTLFNBQU0sSUFBRyxJQUFJLENBQUMsSUFBSTtZQUNwQyxHQUFJLElBQUksQ0FBQyxTQUFTLGVBQVksSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTztZQUNwRSxHQUFJLElBQUksQ0FBQyxTQUFTLFVBQU8sSUFBRyxDQUFDLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTztZQUN2RCxHQUFJLElBQUksQ0FBQyxTQUFTLFlBQVMsSUFBRyxJQUFJLENBQUMsT0FBTztZQUMxQyxHQUFJLElBQUksQ0FBQyxTQUFTLGtCQUFlLElBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxLQUFLLE9BQU87ZUFDM0UsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQ25DLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxXQUFXLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUM7SUFDcEUsQ0FBQzs7OztJQUVELG9DQUFXOzs7SUFBWDtRQUNFLElBQUksT0FBTyxJQUFJLENBQUMsS0FBSyxLQUFLLFFBQVEsSUFBSSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxjQUFjLEVBQUU7WUFDdEUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsY0FBYyxHQUFHLEdBQUcsQ0FBQztTQUN4QztJQUNILENBQUM7Ozs7SUFFRCxpQ0FBUTs7O0lBQVI7UUFDRSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDaEIsQ0FBQzs7OztJQUVELHdDQUFlOzs7SUFBZjtRQUFBLGlCQVVDO1FBVEMsVUFBVTs7O1FBQUM7WUFDVCxJQUNFLEtBQUksQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxNQUFNLEdBQUcsQ0FBQztnQkFDM0MsQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLEtBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFJLENBQUMsSUFBSSxDQUFDLEVBQzFFO2dCQUNBLEtBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO2dCQUN0QixLQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDZjtRQUNILENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztJQUNULENBQUM7O2dCQXBIRixTQUFTLFNBQUM7b0JBQ1QsUUFBUSxFQUFFLGtCQUFrQjtvQkFDNUIseUpBQXFDO2lCQUN0Qzs7OztnQkFMMEQsVUFBVTtnQkFBaUIsU0FBUzs7O3VCQW9CNUYsS0FBSzt1QkFLTCxLQUFLO3lCQVFMLEtBQUs7c0JBS0wsS0FBSztnQ0FXTCxLQUFLO3NCQUlMLEtBQUs7MkJBS0wsS0FBSzs0QkFJTCxLQUFLOzJCQVNMLFdBQVcsU0FBQyxnQkFBZ0I7OEJBRTVCLFdBQVcsU0FBQyw4QkFBOEI7b0NBRTFDLFdBQVcsU0FBQywrQkFBK0I7OEJBRTNDLFdBQVcsU0FBQyxvQkFBb0I7c0NBRWhDLFdBQVcsU0FBQyxxQ0FBcUM7O0lBd0NwRCxxQkFBQztDQUFBLEFBckhELElBcUhDO1NBakhZLGNBQWM7OztJQUN6QixtQ0FBK0I7O0lBQy9CLHlDQUE2Qjs7SUFDN0IsK0JBQW1COzs7OztJQUVuQiwrQkFBc0I7Ozs7O0lBQ3RCLG1DQUEwQjs7Ozs7SUFDMUIsK0JBQWdDOzs7OztJQUNoQyw4QkFBOEI7Ozs7O0lBQzlCLDhCQUE4Qjs7Ozs7SUFDOUIsaUNBQWlDOzs7OztJQUNqQyxtQ0FBbUM7Ozs7O0lBQ25DLHdDQUFvQzs7SUFxRHBDLGtDQUN5Qjs7SUFDekIscUNBQ3VDOztJQUN2QywyQ0FDMEM7O0lBQzFDLHFDQUNtQzs7SUFDbkMsNkNBQ3NFOzs7OztJQUUxRCw4QkFBd0I7Ozs7O0lBQUUsZ0NBQXlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0LCBIb3N0QmluZGluZywgT25DaGFuZ2VzLCBFbGVtZW50UmVmLCBBZnRlclZpZXdJbml0LCBSZW5kZXJlcjIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnQmFkZ2UsIG56bS1iYWRnZScsXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWRnZS5jb21wb25lbnQuaHRtbCdcbn0pXG5leHBvcnQgY2xhc3MgQmFkZ2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgQWZ0ZXJWaWV3SW5pdCB7XG4gIHByZWZpeENsczogc3RyaW5nID0gJ2FtLWJhZGdlJztcbiAgc2Nyb2xsTnVtYmVyQ2xzOiBvYmplY3QgPSB7fTtcbiAgc3R5bGU6IG9iamVjdCA9IHt9O1xuXG4gIHByaXZhdGUgX3RleHQ6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2V0Q2xhc3M6IHN0cmluZztcbiAgcHJpdmF0ZSBfc2l6ZTogc3RyaW5nID0gJ3NtYWxsJztcbiAgcHJpdmF0ZSBfZG90OiBib29sZWFuID0gZmFsc2U7XG4gIHByaXZhdGUgX2hvdDogYm9vbGVhbiA9IGZhbHNlO1xuICBwcml2YXRlIF9jb3JuZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfY2hpbGRyZW46IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfb3ZlcmZsb3dDb3VudDogbnVtYmVyID0gOTk7XG5cbiAgQElucHV0KClcbiAgc2V0IHNpemUodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2l6ZSA9IHY7XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuICBASW5wdXQoKVxuICBnZXQgdGV4dCgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl90ZXh0O1xuICB9XG4gIHNldCB0ZXh0KHY6IHN0cmluZykge1xuICAgIHRoaXMuX3RleHQgPSB2O1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IGNvcm5lcih2OiBib29sZWFuKSB7XG4gICAgdGhpcy5fY29ybmVyID0gdjtcbiAgICB0aGlzLnNldENscygpO1xuICB9XG4gIEBJbnB1dCgpXG4gIGdldCBkb3QoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuX2RvdDtcbiAgfVxuICBzZXQgZG90KHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9kb3QgPSB2O1xuICAgIGlmICh0aGlzLl9kb3QpIHtcbiAgICAgIHRoaXMuX3RleHQgPSAnJztcbiAgICB9XG4gICAgdGhpcy5zZXRDbHMoKTtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgb3ZlcmZsb3dDb3VudCh2OiBudW1iZXIpIHtcbiAgICB0aGlzLl9vdmVyZmxvd0NvdW50ID0gdjtcbiAgfVxuICBASW5wdXQoKVxuICBzZXQgaG90KHY6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9ob3QgPSB2O1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cbiAgQElucHV0KClcbiAgc2V0IHNldFN0eWxlKHY6IG9iamVjdCkge1xuICAgIHRoaXMuc3R5bGUgPSB2O1xuICB9XG4gIEBJbnB1dCgpXG4gIHNldCBjbGFzc05hbWUodjogc3RyaW5nKSB7XG4gICAgdGhpcy5fc2V0Q2xhc3MgPSB2O1xuICAgIGNvbnN0IGNsc0FyciA9IHRoaXMuX3NldENsYXNzLnNwbGl0KCcgJyk7XG4gICAgY2xzQXJyLmZvckVhY2goY2xzID0+IHtcbiAgICAgIHRoaXMucmVuZGVyLmFkZENsYXNzKHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LCBjbHMpO1xuICAgIH0pO1xuICB9XG5cbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZScpXG4gIGNsc0JhZGdlOiBib29sZWFuID0gdHJ1ZTtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZS1ub3QtYS13cmFwcGVyJylcbiAgY2xzQmFkZ2VXcnA6IGJvb2xlYW4gPSAhdGhpcy5fY2hpbGRyZW47XG4gIEBIb3N0QmluZGluZygnY2xhc3MuYW0tYmFkZ2UtY29ybmVyLXdyYXBwZXInKVxuICBjbHNCYWRnZUNvcm5lcldycDogYm9vbGVhbiA9IHRoaXMuX2Nvcm5lcjtcbiAgQEhvc3RCaW5kaW5nKCdjbGFzcy5hbS1iYWRnZS1ob3QnKVxuICBjbHNCYWRnZUhvdDogYm9vbGVhbiA9ICEhdGhpcy5faG90O1xuICBASG9zdEJpbmRpbmcoJ2NsYXNzLmFtLWJhZGdlLWNvcm5lci13cmFwcGVyLWxhcmdlJylcbiAgY2xzQmFkZ2VDb3JuZXJXcnBMZzogYm9vbGVhbiA9IHRoaXMuX2Nvcm5lciAmJiB0aGlzLl9zaXplID09PSAnbGFyZ2UnO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgX3JlZjogRWxlbWVudFJlZiwgcHJpdmF0ZSByZW5kZXI6IFJlbmRlcmVyMikge31cblxuICBzZXRDbHMoKSB7XG4gICAgdGhpcy5zY3JvbGxOdW1iZXJDbHMgPSB7XG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRvdGBdOiB0aGlzLl9kb3QsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWRvdC1sYXJnZWBdOiB0aGlzLl9kb3QgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJyxcbiAgICAgIFtgJHt0aGlzLnByZWZpeENsc30tdGV4dGBdOiAhdGhpcy5fZG90ICYmICF0aGlzLl9jb3JuZXIsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNvcm5lcmBdOiB0aGlzLl9jb3JuZXIsXG4gICAgICBbYCR7dGhpcy5wcmVmaXhDbHN9LWNvcm5lci1sYXJnZWBdOiB0aGlzLl9jb3JuZXIgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJ1xuICAgIH07XG4gICAgdGhpcy5jbHNCYWRnZVdycCA9ICF0aGlzLl9jaGlsZHJlbjtcbiAgICB0aGlzLmNsc0JhZGdlQ29ybmVyV3JwID0gdGhpcy5fY29ybmVyO1xuICAgIHRoaXMuY2xzQmFkZ2VIb3QgPSAhIXRoaXMuX2hvdDtcbiAgICB0aGlzLmNsc0JhZGdlQ29ybmVyV3JwTGcgPSB0aGlzLl9jb3JuZXIgJiYgdGhpcy5fc2l6ZSA9PT0gJ2xhcmdlJztcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIGlmICh0eXBlb2YgdGhpcy5fdGV4dCA9PT0gJ251bWJlcicgJiYgdGhpcy5fdGV4dCA+IHRoaXMuX292ZXJmbG93Q291bnQpIHtcbiAgICAgIHRoaXMuX3RleHQgPSB0aGlzLl9vdmVyZmxvd0NvdW50ICsgJysnO1xuICAgIH1cbiAgfVxuXG4gIG5nT25Jbml0KCkge1xuICAgIHRoaXMuc2V0Q2xzKCk7XG4gIH1cblxuICBuZ0FmdGVyVmlld0luaXQoKSB7XG4gICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICBpZiAoXG4gICAgICAgIHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA+IDEgfHxcbiAgICAgICAgKHRoaXMuX3JlZi5uYXRpdmVFbGVtZW50LmNoaWxkcmVuLmxlbmd0aCA9PT0gMSAmJiAhdGhpcy5kb3QgJiYgIXRoaXMudGV4dClcbiAgICAgICkge1xuICAgICAgICB0aGlzLl9jaGlsZHJlbiA9IHRydWU7XG4gICAgICAgIHRoaXMuc2V0Q2xzKCk7XG4gICAgICB9XG4gICAgfSwgMTApO1xuICB9XG59XG4iXX0=