UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

251 lines (250 loc) 20.4 kB
/** * @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==