com.phloxui
Version:
PhloxUI Ng2+ Framework
251 lines (250 loc) • 20.4 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import * as tslib_1 from "tslib";
import { Component, Input, ViewChild } from '@angular/core';
import { MaterialIconLoader } from './MaterialIconLoader.component';
import { BackgroundProcessManager } from '../../../service/BackgroundProcessManager.service';
import { ObservableManager } from '../../../service/ObservableManager.service';
import { Option } from '../../../decorator/decorators';
import { AbstractHasOptions } from '../../../share/AbstractHasOptions';
var /** @type {?} */ TYPE_NAME = "material-data-icon-loader";
var MaterialDataIconLoader = /** @class */ (function (_super) {
tslib_1.__extends(MaterialDataIconLoader, _super);
function MaterialDataIconLoader(bgProcessMgr, obsvMgr) {
var _this = _super.call(this) || this;
_this.bgProcessMgr = bgProcessMgr;
_this.obsvMgr = obsvMgr;
_this.obsvMgr.subscribe(BackgroundProcessManager.PROCESS_START_TOPIC_NAME, function (startBGProcess) {
if (startBGProcess.type === 'connection.data' && startBGProcess.userAction === true) {
_this.runPageLoader();
}
});
_this.obsvMgr.subscribe(BackgroundProcessManager.PROCESS_END_TOPIC_NAME, function (endBGProcess) {
if (endBGProcess.type === 'connection.data' && endBGProcess.userAction === true) {
if (_this.bgProcessMgr.getRunningProcessesCount('connection.data', null, { "userAction": true }) <= 0) {
_this.stopPageLoader();
}
}
});
_this.obsvMgr.subscribe(BackgroundProcessManager.PROCESS_ERROR_TOPIC_NAME, function (errorBGProcess) {
if (errorBGProcess.type === 'connection.data' && errorBGProcess.userAction === true) {
if (_this.bgProcessMgr.getRunningProcessesCount('connection.data', null, { "userAction": true }) <= 0) {
_this.stopPageLoader();
}
}
});
return _this;
}
/**
* @return {?}
*/
MaterialDataIconLoader.prototype.ngOnInit = /**
* @return {?}
*/
function () {
};
/**
* @return {?}
*/
MaterialDataIconLoader.prototype._getIconName = /**
* @return {?}
*/
function () {
if (this.iconName !== null && typeof this.iconName !== 'undefined') {
return this.iconName;
}
return MaterialIconLoader.BALL_CLIP_ROTATE_PULSE;
};
/**
* @return {?}
*/
MaterialDataIconLoader.prototype.runPageLoader = /**
* @return {?}
*/
function () {
if (this.dataLoader === null || typeof this.dataLoader === 'undefined') {
return;
}
if (!this.dataLoader.isRunning()) {
this.dataLoader.start();
}
};
/**
* @return {?}
*/
MaterialDataIconLoader.prototype.stopPageLoader = /**
* @return {?}
*/
function () {
if (this.dataLoader === null || typeof this.dataLoader === 'undefined') {
return;
}
if (this.dataLoader.isRunning()) {
this.dataLoader.stop();
}
};
/**
* @return {?}
*/
MaterialDataIconLoader.prototype.getState = /**
* @return {?}
*/
function () {
return this.dataLoader.getState();
};
/**
* @return {?}
*/
MaterialDataIconLoader.prototype.isRunning = /**
* @return {?}
*/
function () {
return this.dataLoader.isRunning();
};
/**
* @return {?}
*/
MaterialDataIconLoader.prototype.getSize = /**
* @return {?}
*/
function () {
return this.size;
};
/**
* @param {?} size
* @return {?}
*/
MaterialDataIconLoader.prototype.setSize = /**
* @param {?} size
* @return {?}
*/
function (size) {
this.size = size;
};
/**
* @return {?}
*/
MaterialDataIconLoader.prototype.getLoaderClass = /**
* @return {?}
*/
function () {
return this.loaderClass;
};
/**
* @param {?} loaderClass
* @return {?}
*/
MaterialDataIconLoader.prototype.setLoaderClass = /**
* @param {?} loaderClass
* @return {?}
*/
function (loaderClass) {
this.loaderClass = loaderClass;
};
MaterialDataIconLoader.TYPE_NAME = TYPE_NAME;
MaterialDataIconLoader.BALL_PULSE = MaterialIconLoader.BALL_PULSE;
MaterialDataIconLoader.BALL_GRID_PULSE = MaterialIconLoader.BALL_GRID_PULSE;
MaterialDataIconLoader.BALL_CLIP_ROTATE_MULTIPLE = MaterialIconLoader.BALL_CLIP_ROTATE_MULTIPLE;
MaterialDataIconLoader.BALL_PULSE_RISE = MaterialIconLoader.BALL_PULSE_RISE;
MaterialDataIconLoader.BALL_CLIP_ROTATE_PULSE = MaterialIconLoader.BALL_CLIP_ROTATE_PULSE;
MaterialDataIconLoader.BALL_CLIP_ROTATE = MaterialIconLoader.BALL_CLIP_ROTATE;
MaterialDataIconLoader.BALL_SCALE_RIPPLE_MULTIPLE = MaterialIconLoader.BALL_SCALE_RIPPLE_MULTIPLE;
MaterialDataIconLoader.BALL_SCALE_MULTIPLE = MaterialIconLoader.BALL_SCALE_MULTIPLE;
MaterialDataIconLoader.BALL_PULSE_SYNC = MaterialIconLoader.BALL_PULSE_SYNC;
MaterialDataIconLoader.LINE_SPIN_FADE_LOADER = MaterialIconLoader.LINE_SPIN_FADE_LOADER;
MaterialDataIconLoader.LINE_SCALE = MaterialIconLoader.LINE_SCALE;
MaterialDataIconLoader.LINE_SCALE_PARTY = MaterialIconLoader.LINE_SCALE_PARTY;
MaterialDataIconLoader.LINE_SCALE_PULSE_OUT = MaterialIconLoader.LINE_SCALE_PULSE_OUT;
MaterialDataIconLoader.LINE_SCALE_PULSE_OUT_RAPID = MaterialIconLoader.LINE_SCALE_PULSE_OUT_RAPID;
MaterialDataIconLoader.SQUARE_SPIN = MaterialIconLoader.SQUARE_SPIN;
MaterialDataIconLoader.decorators = [
{ type: Component, args: [{
moduleId: module.id,
selector: TYPE_NAME,
template: "<div class=\"material-data-icon-loader\">\n <material-icon-loader #loader [iconName]=\"_getIconName()\" [size]=\"getSize()\" [loaderClass]=\"getLoaderClass()\"></material-icon-loader>\n</div>\n"
},] },
];
/** @nocollapse */
MaterialDataIconLoader.ctorParameters = function () { return [
{ type: BackgroundProcessManager, },
{ type: ObservableManager, },
]; };
MaterialDataIconLoader.propDecorators = {
"iconName": [{ type: Input },],
"size": [{ type: Input },],
"loaderClass": [{ type: Input },],
"dataLoader": [{ type: ViewChild, args: ["loader",] },],
};
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialDataIconLoader.prototype, "iconName", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialDataIconLoader.prototype, "size", void 0);
tslib_1.__decorate([
Option(),
tslib_1.__metadata("design:type", String)
], MaterialDataIconLoader.prototype, "loaderClass", void 0);
return MaterialDataIconLoader;
}(AbstractHasOptions));
export { MaterialDataIconLoader };
function MaterialDataIconLoader_tsickle_Closure_declarations() {
/** @type {!Array<{type: !Function, args: (undefined|!Array<?>)}>} */
MaterialDataIconLoader.decorators;
/**
* @nocollapse
* @type {function(): !Array<(null|{type: ?, decorators: (undefined|!Array<{type: !Function, args: (undefined|!Array<?>)}>)})>}
*/
MaterialDataIconLoader.ctorParameters;
/** @type {!Object<string,!Array<{type: !Function, args: (undefined|!Array<?>)}>>} */
MaterialDataIconLoader.propDecorators;
/** @type {?} */
MaterialDataIconLoader.TYPE_NAME;
/** @type {?} */
MaterialDataIconLoader.BALL_PULSE;
/** @type {?} */
MaterialDataIconLoader.BALL_GRID_PULSE;
/** @type {?} */
MaterialDataIconLoader.BALL_CLIP_ROTATE_MULTIPLE;
/** @type {?} */
MaterialDataIconLoader.BALL_PULSE_RISE;
/** @type {?} */
MaterialDataIconLoader.BALL_CLIP_ROTATE_PULSE;
/** @type {?} */
MaterialDataIconLoader.BALL_CLIP_ROTATE;
/** @type {?} */
MaterialDataIconLoader.BALL_SCALE_RIPPLE_MULTIPLE;
/** @type {?} */
MaterialDataIconLoader.BALL_SCALE_MULTIPLE;
/** @type {?} */
MaterialDataIconLoader.BALL_PULSE_SYNC;
/** @type {?} */
MaterialDataIconLoader.LINE_SPIN_FADE_LOADER;
/** @type {?} */
MaterialDataIconLoader.LINE_SCALE;
/** @type {?} */
MaterialDataIconLoader.LINE_SCALE_PARTY;
/** @type {?} */
MaterialDataIconLoader.LINE_SCALE_PULSE_OUT;
/** @type {?} */
MaterialDataIconLoader.LINE_SCALE_PULSE_OUT_RAPID;
/** @type {?} */
MaterialDataIconLoader.SQUARE_SPIN;
/** @type {?} */
MaterialDataIconLoader.prototype.iconName;
/** @type {?} */
MaterialDataIconLoader.prototype.size;
/** @type {?} */
MaterialDataIconLoader.prototype.loaderClass;
/** @type {?} */
MaterialDataIconLoader.prototype.dataLoader;
/** @type {?} */
MaterialDataIconLoader.prototype.bgProcessMgr;
/** @type {?} */
MaterialDataIconLoader.prototype.obsvMgr;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxEYXRhSWNvbkxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS9tYXRlcmlhbC9jb21wb25lbnQvTWF0ZXJpYWxEYXRhSWNvbkxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSXZFLHFCQUFNLFNBQVMsR0FBVywyQkFBMkIsQ0FBQzs7SUFVVixrREFBa0I7SUFvQzVELGdDQUFZLFlBQXNDLEVBQUUsT0FBMEI7UUFBOUUsWUFDRSxpQkFBTyxTQXdCUjtRQXRCQyxLQUFJLENBQUMsWUFBWSxHQUFHLFlBQVksQ0FBQztRQUNqQyxLQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQztRQUV2QixLQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyx3QkFBd0IsQ0FBQyx3QkFBd0IsRUFBRSxVQUFDLGNBQW1CO1lBQzVGLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLElBQUksY0FBYyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixLQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7U0FDRixDQUFDLENBQUM7UUFDSCxLQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMs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QyxVQUFVOzZDQUN4QixrQkFBa0IsQ0FBQyxlQUFlO3VEQUN4QixrQkFBa0IsQ0FBQyx5QkFBeUI7NkNBQ3RELGtCQUFrQixDQUFDLGVBQWU7b0RBQzNCLGtCQUFrQixDQUFDLHNCQUFzQjs4Q0FDL0Msa0JBQWtCLENBQUMsZ0JBQWdCO3dEQUN6QixrQkFBa0IsQ0FBQywwQkFBMEI7aURBQ3BELGtCQUFrQixDQUFDLG1CQUFtQjs2Q0FDMUMsa0JBQWtCLENBQUMsZUFBZTttREFDNUIsa0JBQWtCLENBQUMscUJBQXFCO3dDQUNuRCxrQkFBa0IsQ0FBQyxVQUFVOzhDQUN2QixrQkFBa0IsQ0FBQyxnQkFBZ0I7a0RBQy9CLGtCQUFrQixDQUFDLG9CQUFvQjt3REFDakMsa0JBQWtCLENBQUMsMEJBQTBCO3lDQUM1RCxrQkFBa0IsQ0FBQyxXQUFXOztnQkExQjVFLFNBQVMsU0FBQztvQkFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7b0JBQ25CLFFBQVEsRUFBRSxTQUFTO29CQUNuQixRQUFRLEVBQUUsb01BR1g7aUJBQ0E7Ozs7Z0JBaEJRLHdCQUF3QjtnQkFDeEIsaUJBQWlCOzs7NkJBb0N2QixLQUFLO3lCQUdMLEtBQUs7Z0NBR0wsS0FBSzsrQkFJTCxTQUFTLFNBQUMsUUFBUTs7O1FBVGxCLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7OztRQUdSLE1BQU0sRUFBRTs7O2lDQS9DWDtFQW9CNEMsa0JBQWtCO1NBQWpELHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0LCBJbnB1dCwgVmlld0NoaWxkIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMb2FkZXJTdGF0dXMgfSBmcm9tICcuLi8uLi8uLi9jb21wb25lbnQvTG9hZGVyU3RhdHVzJztcbmltcG9ydCB7IE1hdGVyaWFsSWNvbkxvYWRlciB9IGZyb20gJy4vTWF0ZXJpYWxJY29uTG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCYWNrZ3JvdW5kUHJvY2Vzc01hbmFnZXIgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlL0JhY2tncm91bmRQcm9jZXNzTWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9ic2VydmFibGVNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9PYnNlcnZhYmxlTWFuYWdlci5zZXJ2aWNlJztcbmltcG9ydCB7IE9wdGlvbiB9IGZyb20gJy4uLy4uLy4uL2RlY29yYXRvci9kZWNvcmF0b3JzJztcbmltcG9ydCB7IEFic3RyYWN0SGFzT3B0aW9ucyB9IGZyb20gJy4uLy4uLy4uL3NoYXJlL0Fic3RyYWN0SGFzT3B0aW9ucyc7XG5cbmRlY2xhcmUgdmFyICQ6IGFueTtcblxuY29uc3QgVFlQRV9OQU1FOiBzdHJpbmcgPSBcIm1hdGVyaWFsLWRhdGEtaWNvbi1sb2FkZXJcIjtcblxuQENvbXBvbmVudCh7XG4gIG1vZHVsZUlkOiBtb2R1bGUuaWQsXG4gIHNlbGVjdG9yOiBUWVBFX05BTUUsXG4gIHRlbXBsYXRlOiBgPGRpdiBjbGFzcz1cIm1hdGVyaWFsLWRhdGEtaWNvbi1sb2FkZXJcIj5cbiAgPG1hdGVyaWFsLWljb24tbG9hZGVyICNsb2FkZXIgW2ljb25OYW1lXT1cIl9nZXRJY29uTmFtZSgpXCIgW3NpemVdPVwiZ2V0U2l6ZSgpXCIgW2xvYWRlckNsYXNzXT1cImdldExvYWRlckNsYXNzKClcIj48L21hdGVyaWFsLWljb24tbG9hZGVyPlxuPC9kaXY+XG5gXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsRGF0YUljb25Mb2FkZXIgZXh0ZW5kcyBBYnN0cmFjdEhhc09wdGlvbnMgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVFlQRV9OQU1FOiBzdHJpbmcgPSBUWVBFX05BTUU7XG5cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX1BVTFNFOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9QVUxTRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX0dSSURfUFVMU0U6IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5CQUxMX0dSSURfUFVMU0U7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9DTElQX1JPVEFURV9NVUxUSVBMRTogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkJBTExfQ0xJUF9ST1RBVEVfTVVMVElQTEU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9QVUxTRV9SSVNFOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9QVUxTRV9SSVNFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfQ0xJUF9ST1RBVEVfUFVMU0U6IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5CQUxMX0NMSVBfUk9UQVRFX1BVTFNFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfQ0xJUF9ST1RBVEU6IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5CQUxMX0NMSVBfUk9UQVRFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfU0NBTEVfUklQUExFX01VTFRJUExFOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9TQ0FMRV9SSVBQTEVfTVVMVElQTEU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9TQ0FMRV9NVUxUSVBMRTogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkJBTExfU0NBTEVfTVVMVElQTEU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9QVUxTRV9TWU5DOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9QVUxTRV9TWU5DO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExJTkVfU1BJTl9GQURFX0xPQURFUjogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkxJTkVfU1BJTl9GQURFX0xPQURFUjtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5FX1NDQUxFOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuTElORV9TQ0FMRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5FX1NDQUxFX1BBUlRZOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuTElORV9TQ0FMRV9QQVJUWTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5FX1NDQUxFX1BVTFNFX09VVDogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkxJTkVfU0NBTEVfUFVMU0VfT1VUO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IExJTkVfU0NBTEVfUFVMU0VfT1VUX1JBUElEOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuTElORV9TQ0FMRV9QVUxTRV9PVVRfUkFQSUQ7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgU1FVQVJFX1NQSU46IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5TUVVBUkVfU1BJTjtcblxuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJpdmF0ZSBpY29uTmFtZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJpdmF0ZSBzaXplOiBzdHJpbmc7XG4gIEBJbnB1dCgpXG4gIEBPcHRpb24oKVxuICBwcml2YXRlIGxvYWRlckNsYXNzOiBzdHJpbmc7XG5cbiAgQFZpZXdDaGlsZChcImxvYWRlclwiKVxuICBwcml2YXRlIGRhdGFMb2FkZXI6IE1hdGVyaWFsSWNvbkxvYWRlcjtcblxuICBwcml2YXRlIGJnUHJvY2Vzc01ncjogQmFja2dyb3VuZFByb2Nlc3NNYW5hZ2VyO1xuICBwcml2YXRlIG9ic3ZNZ3I6IE9ic2VydmFibGVNYW5hZ2VyO1xuXG4gIGNvbnN0cnVjdG9yKGJnUHJvY2Vzc01ncjogQmFja2dyb3VuZFByb2Nlc3NNYW5hZ2VyLCBvYnN2TWdyOiBPYnNlcnZhYmxlTWFuYWdlcikge1xuICAgIHN1cGVyKCk7XG4gXG4gICAgdGhpcy5iZ1Byb2Nlc3NNZ3IgPSBiZ1Byb2Nlc3NNZ3I7XG4gICAgdGhpcy5vYnN2TWdyID0gb2Jzdk1ncjtcblxuICAgIHRoaXMub2Jzdk1nci5zdWJzY3JpYmUoQmFja2dyb3VuZFByb2Nlc3NNYW5hZ2VyLlBST0NFU1NfU1RBUlRfVE9QSUNfTkFNRSwgKHN0YXJ0QkdQcm9jZXNzOiBhbnkpID0+IHtcbiAgICAgIGlmIChzdGFydEJHUHJvY2Vzcy50eXBlID09PSAnY29ubmVjdGlvbi5kYXRhJyAmJiBzdGFydEJHUHJvY2Vzcy51c2VyQWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgIHRoaXMucnVuUGFnZUxvYWRlcigpO1xuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMub2Jzdk1nci5zdWJzY3JpYmUoQmFja2dyb3VuZFByb2Nlc3NNYW5hZ2VyLlBST0NFU1NfRU5EX1RPUElDX05BTUUsIChlbmRCR1Byb2Nlc3M6IGFueSkgPT4ge1xuICAgICAgaWYgKGVuZEJHUHJvY2Vzcy50eXBlID09PSAnY29ubmVjdGlvbi5kYXRhJyAmJiBlbmRCR1Byb2Nlc3MudXNlckFjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICBpZiAodGhpcy5iZ1Byb2Nlc3NNZ3IuZ2V0UnVubmluZ1Byb2Nlc3Nlc0NvdW50KCdjb25uZWN0aW9uLmRhdGEnLCBudWxsLCB7XCJ1c2VyQWN0aW9uXCI6IHRydWV9KSA8PSAwKSB7XG4gICAgICAgICAgdGhpcy5zdG9wUGFnZUxvYWRlcigpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgdGhpcy5vYnN2TWdyLnN1YnNjcmliZShCYWNrZ3JvdW5kUHJvY2Vzc01hbmFnZXIuUFJPQ0VTU19FUlJPUl9UT1BJQ19OQU1FLCAoZXJyb3JCR1Byb2Nlc3M6IGFueSkgPT4ge1xuICAgICAgaWYgKGVycm9yQkdQcm9jZXNzLnR5cGUgPT09ICdjb25uZWN0aW9uLmRhdGEnICYmIGVycm9yQkdQcm9jZXNzLnVzZXJBY3Rpb24gPT09IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuYmdQcm9jZXNzTWdyLmdldFJ1bm5pbmdQcm9jZXNzZXNDb3VudCgnY29ubmVjdGlvbi5kYXRhJywgbnVsbCwge1widXNlckFjdGlvblwiOiB0cnVlfSkgPD0gMCkge1xuICAgICAgICAgIHRoaXMuc3RvcFBhZ2VMb2FkZXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICB9XG5cbiAgcHVibGljIF9nZXRJY29uTmFtZSgpOiBzdHJpbmcge1xuICAgIGlmKHRoaXMuaWNvbk5hbWUgIT09IG51bGwgJiYgdHlwZW9mIHRoaXMuaWNvbk5hbWUgIT09ICd1bmRlZmluZWQnKXtcbiAgICAgIHJldHVybiB0aGlzLmljb25OYW1lO1xuICAgIH1cblxuICAgIHJldHVybiBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9DTElQX1JPVEFURV9QVUxTRTtcbiAgfVxuXG4gIHByaXZhdGUgcnVuUGFnZUxvYWRlcigpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5kYXRhTG9hZGVyID09PSBudWxsIHx8IHR5cGVvZiB0aGlzLmRhdGFMb2FkZXIgPT09ICd1bmRlZmluZWQnKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLmRhdGFMb2FkZXIuaXNSdW5uaW5nKCkpIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRlci5zdGFydCgpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc3RvcFBhZ2VMb2FkZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YUxvYWRlciA9PT0gbnVsbCB8fCB0eXBlb2YgdGhpcy5kYXRhTG9hZGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0aGlzLmRhdGFMb2FkZXIuaXNSdW5uaW5nKCkpIHtcbiAgICAgIHRoaXMuZGF0YUxvYWRlci5zdG9wKCk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGdldFN0YXRlKCk6IExvYWRlclN0YXR1cyB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUxvYWRlci5nZXRTdGF0ZSgpO1xuICB9XG5cbiAgcHVibGljIGlzUnVubmluZygpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5kYXRhTG9hZGVyLmlzUnVubmluZygpO1xuICB9XG5cbiAgcHVibGljIGdldFNpemUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5zaXplO1xuICB9XG5cbiAgcHVibGljIHNldFNpemUoc2l6ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5zaXplID0gc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMb2FkZXJDbGFzcygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmxvYWRlckNsYXNzO1xuICB9XG5cbiAgcHVibGljIHNldExvYWRlckNsYXNzKGxvYWRlckNsYXNzOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmxvYWRlckNsYXNzID0gbG9hZGVyQ2xhc3M7XG4gIH1cbn1cbiJdfQ==