UNPKG

com.phloxui

Version:

PhloxUI Ng2+ Framework

222 lines (221 loc) 19.2 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'; const /** @type {?} */ TYPE_NAME = "material-data-icon-loader"; export class MaterialDataIconLoader extends AbstractHasOptions { /** * @param {?} bgProcessMgr * @param {?} obsvMgr */ constructor(bgProcessMgr, obsvMgr) { super(); this.bgProcessMgr = bgProcessMgr; this.obsvMgr = obsvMgr; this.obsvMgr.subscribe(BackgroundProcessManager.PROCESS_START_TOPIC_NAME, (startBGProcess) => { if (startBGProcess.type === 'connection.data' && startBGProcess.userAction === true) { this.runPageLoader(); } }); this.obsvMgr.subscribe(BackgroundProcessManager.PROCESS_END_TOPIC_NAME, (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, (errorBGProcess) => { if (errorBGProcess.type === 'connection.data' && errorBGProcess.userAction === true) { if (this.bgProcessMgr.getRunningProcessesCount('connection.data', null, { "userAction": true }) <= 0) { this.stopPageLoader(); } } }); } /** * @return {?} */ ngOnInit() { } /** * @return {?} */ _getIconName() { if (this.iconName !== null && typeof this.iconName !== 'undefined') { return this.iconName; } return MaterialIconLoader.BALL_CLIP_ROTATE_PULSE; } /** * @return {?} */ runPageLoader() { if (this.dataLoader === null || typeof this.dataLoader === 'undefined') { return; } if (!this.dataLoader.isRunning()) { this.dataLoader.start(); } } /** * @return {?} */ stopPageLoader() { if (this.dataLoader === null || typeof this.dataLoader === 'undefined') { return; } if (this.dataLoader.isRunning()) { this.dataLoader.stop(); } } /** * @return {?} */ getState() { return this.dataLoader.getState(); } /** * @return {?} */ isRunning() { return this.dataLoader.isRunning(); } /** * @return {?} */ getSize() { return this.size; } /** * @param {?} size * @return {?} */ setSize(size) { this.size = size; } /** * @return {?} */ getLoaderClass() { return this.loaderClass; } /** * @param {?} loaderClass * @return {?} */ setLoaderClass(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"> <material-icon-loader #loader [iconName]="_getIconName()" [size]="getSize()" [loaderClass]="getLoaderClass()"></material-icon-loader> </div> ` },] }, ]; /** @nocollapse */ MaterialDataIconLoader.ctorParameters = () => [ { 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); 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTWF0ZXJpYWxEYXRhSWNvbkxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9jb20ucGhsb3h1aS8iLCJzb3VyY2VzIjpbImxpYi90aGVtZS9tYXRlcmlhbC9jb21wb25lbnQvTWF0ZXJpYWxEYXRhSWNvbkxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7QUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFcEUsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sbURBQW1ELENBQUM7QUFDN0YsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBSXZFLHVCQUFNLFNBQVMsR0FBVywyQkFBMkIsQ0FBQztBQVV0RCxNQUFNLDZCQUE4QixTQUFRLGtCQUFrQjs7Ozs7SUFvQzVELFlBQVksWUFBc0MsRUFBRSxPQUEwQjtRQUM1RSxLQUFLLEVBQUUsQ0FBQztRQUVSLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBWSxDQUFDO1FBQ2pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDO1FBRXZCLElBQUksQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLHdCQUF3QixDQUFDLHdCQUF3QixFQUFFLENBQUMsY0FBbUIsRUFBRSxFQUFFO1lBQ2hHLEVBQUUsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxJQUFJLEtBQUssaUJBQWlCLElBQUksY0FBYyxDQUFDLFVBQVUsS0FBSyxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUNwRixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7YUFDdEI7U0FDRixDQUFDLENBQUM7UUFD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QWtCLENBQUMsVUFBVTt5Q0FDeEIsa0JBQWtCLENBQUMsZUFBZTttREFDeEIsa0JBQWtCLENBQUMseUJBQXlCO3lDQUN0RCxrQkFBa0IsQ0FBQyxlQUFlO2dEQUMzQixrQkFBa0IsQ0FBQyxzQkFBc0I7MENBQy9DLGtCQUFrQixDQUFDLGdCQUFnQjtvREFDekIsa0JBQWtCLENBQUMsMEJBQTBCOzZDQUNwRCxrQkFBa0IsQ0FBQyxtQkFBbUI7eUNBQzFDLGtCQUFrQixDQUFDLGVBQWU7K0NBQzVCLGtCQUFrQixDQUFDLHFCQUFxQjtvQ0FDbkQsa0JBQWtCLENBQUMsVUFBVTswQ0FDdkIsa0JBQWtCLENBQUMsZ0JBQWdCOzhDQUMvQixrQkFBa0IsQ0FBQyxvQkFBb0I7b0RBQ2pDLGtCQUFrQixDQUFDLDBCQUEwQjtxQ0FDNUQsa0JBQWtCLENBQUMsV0FBVzs7WUExQjVFLFNBQVMsU0FBQztnQkFDVCxRQUFRLEVBQUUsTUFBTSxDQUFDLEVBQUU7Z0JBQ25CLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixRQUFRLEVBQUU7OztDQUdYO2FBQ0E7Ozs7WUFoQlEsd0JBQXdCO1lBQ3hCLGlCQUFpQjs7O3lCQW9DdkIsS0FBSztxQkFHTCxLQUFLOzRCQUdMLEtBQUs7MkJBSUwsU0FBUyxTQUFDLFFBQVE7OztJQVRsQixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUU7Ozs7SUFHUixNQUFNLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCwgSW5wdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTG9hZGVyU3RhdHVzIH0gZnJvbSAnLi4vLi4vLi4vY29tcG9uZW50L0xvYWRlclN0YXR1cyc7XG5pbXBvcnQgeyBNYXRlcmlhbEljb25Mb2FkZXIgfSBmcm9tICcuL01hdGVyaWFsSWNvbkxvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgQmFja2dyb3VuZFByb2Nlc3NNYW5hZ2VyIH0gZnJvbSAnLi4vLi4vLi4vc2VydmljZS9CYWNrZ3JvdW5kUHJvY2Vzc01hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlTWFuYWdlciB9IGZyb20gJy4uLy4uLy4uL3NlcnZpY2UvT2JzZXJ2YWJsZU1hbmFnZXIuc2VydmljZSc7XG5pbXBvcnQgeyBPcHRpb24gfSBmcm9tICcuLi8uLi8uLi9kZWNvcmF0b3IvZGVjb3JhdG9ycyc7XG5pbXBvcnQgeyBBYnN0cmFjdEhhc09wdGlvbnMgfSBmcm9tICcuLi8uLi8uLi9zaGFyZS9BYnN0cmFjdEhhc09wdGlvbnMnO1xuXG5kZWNsYXJlIHZhciAkOiBhbnk7XG5cbmNvbnN0IFRZUEVfTkFNRTogc3RyaW5nID0gXCJtYXRlcmlhbC1kYXRhLWljb24tbG9hZGVyXCI7XG5cbkBDb21wb25lbnQoe1xuICBtb2R1bGVJZDogbW9kdWxlLmlkLFxuICBzZWxlY3RvcjogVFlQRV9OQU1FLFxuICB0ZW1wbGF0ZTogYDxkaXYgY2xhc3M9XCJtYXRlcmlhbC1kYXRhLWljb24tbG9hZGVyXCI+XG4gIDxtYXRlcmlhbC1pY29uLWxvYWRlciAjbG9hZGVyIFtpY29uTmFtZV09XCJfZ2V0SWNvbk5hbWUoKVwiIFtzaXplXT1cImdldFNpemUoKVwiIFtsb2FkZXJDbGFzc109XCJnZXRMb2FkZXJDbGFzcygpXCI+PC9tYXRlcmlhbC1pY29uLWxvYWRlcj5cbjwvZGl2PlxuYFxufSlcbmV4cG9ydCBjbGFzcyBNYXRlcmlhbERhdGFJY29uTG9hZGVyIGV4dGVuZHMgQWJzdHJhY3RIYXNPcHRpb25zIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFRZUEVfTkFNRTogc3RyaW5nID0gVFlQRV9OQU1FO1xuXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9QVUxTRTogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkJBTExfUFVMU0U7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgQkFMTF9HUklEX1BVTFNFOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9HUklEX1BVTFNFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfQ0xJUF9ST1RBVEVfTVVMVElQTEU6IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5CQUxMX0NMSVBfUk9UQVRFX01VTFRJUExFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfUFVMU0VfUklTRTogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkJBTExfUFVMU0VfUklTRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX0NMSVBfUk9UQVRFX1BVTFNFOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9DTElQX1JPVEFURV9QVUxTRTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX0NMSVBfUk9UQVRFOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuQkFMTF9DTElQX1JPVEFURTtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBCQUxMX1NDQUxFX1JJUFBMRV9NVUxUSVBMRTogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkJBTExfU0NBTEVfUklQUExFX01VTFRJUExFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfU0NBTEVfTVVMVElQTEU6IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5CQUxMX1NDQUxFX01VTFRJUExFO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEJBTExfUFVMU0VfU1lOQzogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkJBTExfUFVMU0VfU1lOQztcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5FX1NQSU5fRkFERV9MT0FERVI6IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5MSU5FX1NQSU5fRkFERV9MT0FERVI7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTElORV9TQ0FMRTogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkxJTkVfU0NBTEU7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTElORV9TQ0FMRV9QQVJUWTogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkxJTkVfU0NBTEVfUEFSVFk7XG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgTElORV9TQ0FMRV9QVUxTRV9PVVQ6IHN0cmluZyA9IE1hdGVyaWFsSWNvbkxvYWRlci5MSU5FX1NDQUxFX1BVTFNFX09VVDtcbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBMSU5FX1NDQUxFX1BVTFNFX09VVF9SQVBJRDogc3RyaW5nID0gTWF0ZXJpYWxJY29uTG9hZGVyLkxJTkVfU0NBTEVfUFVMU0VfT1VUX1JBUElEO1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFNRVUFSRV9TUElOOiBzdHJpbmcgPSBNYXRlcmlhbEljb25Mb2FkZXIuU1FVQVJFX1NQSU47XG5cbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgaWNvbk5hbWU6IHN0cmluZztcbiAgQElucHV0KClcbiAgQE9wdGlvbigpXG4gIHByaXZhdGUgc2l6ZTogc3RyaW5nO1xuICBASW5wdXQoKVxuICBAT3B0aW9uKClcbiAgcHJpdmF0ZSBsb2FkZXJDbGFzczogc3RyaW5nO1xuXG4gIEBWaWV3Q2hpbGQoXCJsb2FkZXJcIilcbiAgcHJpdmF0ZSBkYXRhTG9hZGVyOiBNYXRlcmlhbEljb25Mb2FkZXI7XG5cbiAgcHJpdmF0ZSBiZ1Byb2Nlc3NNZ3I6IEJhY2tncm91bmRQcm9jZXNzTWFuYWdlcjtcbiAgcHJpdmF0ZSBvYnN2TWdyOiBPYnNlcnZhYmxlTWFuYWdlcjtcblxuICBjb25zdHJ1Y3RvcihiZ1Byb2Nlc3NNZ3I6IEJhY2tncm91bmRQcm9jZXNzTWFuYWdlciwgb2Jzdk1ncjogT2JzZXJ2YWJsZU1hbmFnZXIpIHtcbiAgICBzdXBlcigpO1xuIFxuICAgIHRoaXMuYmdQcm9jZXNzTWdyID0gYmdQcm9jZXNzTWdyO1xuICAgIHRoaXMub2Jzdk1nciA9IG9ic3ZNZ3I7XG5cbiAgICB0aGlzLm9ic3ZNZ3Iuc3Vic2NyaWJlKEJhY2tncm91bmRQcm9jZXNzTWFuYWdlci5QUk9DRVNTX1NUQVJUX1RPUElDX05BTUUsIChzdGFydEJHUHJvY2VzczogYW55KSA9PiB7XG4gICAgICBpZiAoc3RhcnRCR1Byb2Nlc3MudHlwZSA9PT0gJ2Nvbm5lY3Rpb24uZGF0YScgJiYgc3RhcnRCR1Byb2Nlc3MudXNlckFjdGlvbiA9PT0gdHJ1ZSkge1xuICAgICAgICB0aGlzLnJ1blBhZ2VMb2FkZXIoKTtcbiAgICAgIH1cbiAgICB9KTtcbiAgICB0aGlzLm9ic3ZNZ3Iuc3Vic2NyaWJlKEJhY2tncm91bmRQcm9jZXNzTWFuYWdlci5QUk9DRVNTX0VORF9UT1BJQ19OQU1FLCAoZW5kQkdQcm9jZXNzOiBhbnkpID0+IHtcbiAgICAgIGlmIChlbmRCR1Byb2Nlc3MudHlwZSA9PT0gJ2Nvbm5lY3Rpb24uZGF0YScgJiYgZW5kQkdQcm9jZXNzLnVzZXJBY3Rpb24gPT09IHRydWUpIHtcbiAgICAgICAgaWYgKHRoaXMuYmdQcm9jZXNzTWdyLmdldFJ1bm5pbmdQcm9jZXNzZXNDb3VudCgnY29ubmVjdGlvbi5kYXRhJywgbnVsbCwge1widXNlckFjdGlvblwiOiB0cnVlfSkgPD0gMCkge1xuICAgICAgICAgIHRoaXMuc3RvcFBhZ2VMb2FkZXIoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHRoaXMub2Jzdk1nci5zdWJzY3JpYmUoQmFja2dyb3VuZFByb2Nlc3NNYW5hZ2VyLlBST0NFU1NfRVJST1JfVE9QSUNfTkFNRSwgKGVycm9yQkdQcm9jZXNzOiBhbnkpID0+IHtcbiAgICAgIGlmIChlcnJvckJHUHJvY2Vzcy50eXBlID09PSAnY29ubmVjdGlvbi5kYXRhJyAmJiBlcnJvckJHUHJvY2Vzcy51c2VyQWN0aW9uID09PSB0cnVlKSB7XG4gICAgICAgIGlmICh0aGlzLmJnUHJvY2Vzc01nci5nZXRSdW5uaW5nUHJvY2Vzc2VzQ291bnQoJ2Nvbm5lY3Rpb24uZGF0YScsIG51bGwsIHtcInVzZXJBY3Rpb25cIjogdHJ1ZX0pIDw9IDApIHtcbiAgICAgICAgICB0aGlzLnN0b3BQYWdlTG9hZGVyKCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIHB1YmxpYyBfZ2V0SWNvbk5hbWUoKTogc3RyaW5nIHtcbiAgICBpZih0aGlzLmljb25OYW1lICE9PSBudWxsICYmIHR5cGVvZiB0aGlzLmljb25OYW1lICE9PSAndW5kZWZpbmVkJyl7XG4gICAgICByZXR1cm4gdGhpcy5pY29uTmFtZTtcbiAgICB9XG5cbiAgICByZXR1cm4gTWF0ZXJpYWxJY29uTG9hZGVyLkJBTExfQ0xJUF9ST1RBVEVfUFVMU0U7XG4gIH1cblxuICBwcml2YXRlIHJ1blBhZ2VMb2FkZXIoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuZGF0YUxvYWRlciA9PT0gbnVsbCB8fCB0eXBlb2YgdGhpcy5kYXRhTG9hZGVyID09PSAndW5kZWZpbmVkJykge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghdGhpcy5kYXRhTG9hZGVyLmlzUnVubmluZygpKSB7XG4gICAgICB0aGlzLmRhdGFMb2FkZXIuc3RhcnQoKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHN0b3BQYWdlTG9hZGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmRhdGFMb2FkZXIgPT09IG51bGwgfHwgdHlwZW9mIHRoaXMuZGF0YUxvYWRlciA9PT0gJ3VuZGVmaW5lZCcpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5kYXRhTG9hZGVyLmlzUnVubmluZygpKSB7XG4gICAgICB0aGlzLmRhdGFMb2FkZXIuc3RvcCgpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBnZXRTdGF0ZSgpOiBMb2FkZXJTdGF0dXMge1xuICAgIHJldHVybiB0aGlzLmRhdGFMb2FkZXIuZ2V0U3RhdGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBpc1J1bm5pbmcoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuZGF0YUxvYWRlci5pc1J1bm5pbmcoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRTaXplKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuc2l6ZTtcbiAgfVxuXG4gIHB1YmxpYyBzZXRTaXplKHNpemU6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc2l6ZSA9IHNpemU7XG4gIH1cblxuICBwdWJsaWMgZ2V0TG9hZGVyQ2xhc3MoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkZXJDbGFzcztcbiAgfVxuXG4gIHB1YmxpYyBzZXRMb2FkZXJDbGFzcyhsb2FkZXJDbGFzczogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5sb2FkZXJDbGFzcyA9IGxvYWRlckNsYXNzO1xuICB9XG59XG4iXX0=