@worktile/planet 14.1.0 → 15.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Injectable, ApplicationRef, NgModuleRef, NgZone, Inject, Injector } from '@angular/core';
1
+ import { Injectable, ApplicationRef, NgModuleRef, NgZone, Inject, Injector, createComponent } from '@angular/core';
2
2
  import { PlanetComponentRef } from './planet-component-ref';
3
3
  import { coerceArray } from '../helpers';
4
4
  import { map, shareReplay, delayWhen } from 'rxjs/operators';
@@ -8,18 +8,18 @@ import { globalPlanet, getApplicationLoader, getApplicationService } from '../gl
8
8
  import * as i0 from "@angular/core";
9
9
  const componentWrapperClass = 'planet-component-wrapper';
10
10
  export class PlanetComponentLoader {
11
- constructor(applicationRef, ngModuleRef, ngZone, document) {
12
- this.applicationRef = applicationRef;
13
- this.ngModuleRef = ngModuleRef;
14
- this.ngZone = ngZone;
15
- this.document = document;
16
- }
17
11
  get applicationLoader() {
18
12
  return getApplicationLoader();
19
13
  }
20
14
  get applicationService() {
21
15
  return getApplicationService();
22
16
  }
17
+ constructor(applicationRef, ngModuleRef, ngZone, document) {
18
+ this.applicationRef = applicationRef;
19
+ this.ngModuleRef = ngModuleRef;
20
+ this.ngZone = ngZone;
21
+ this.document = document;
22
+ }
23
23
  getPlantAppRef(name) {
24
24
  if (globalPlanet.apps[name] && globalPlanet.apps[name].appModuleRef) {
25
25
  return of(globalPlanet.apps[name]);
@@ -75,12 +75,13 @@ export class PlanetComponentLoader {
75
75
  }
76
76
  attachComponent(plantComponent, appModuleRef, config) {
77
77
  const plantComponentRef = new PlanetComponentRef();
78
- const componentFactoryResolver = appModuleRef.componentFactoryResolver;
79
78
  const appRef = this.applicationRef;
80
79
  const injector = this.createInjector(appModuleRef, plantComponentRef);
81
80
  const container = this.getContainerElement(config);
82
- const componentFactory = componentFactoryResolver.resolveComponentFactory(plantComponent.component);
83
- const componentRef = componentFactory.create(injector);
81
+ const componentRef = createComponent(plantComponent.component, {
82
+ environmentInjector: appModuleRef.injector,
83
+ elementInjector: injector
84
+ });
84
85
  appRef.attachView(componentRef.hostView);
85
86
  const componentRootNode = this.getComponentRootNode(componentRef);
86
87
  this.insertComponentRootNodeToContainer(container, componentRootNode, config.hostClass || config.wrapperClass);
@@ -94,6 +95,7 @@ export class PlanetComponentLoader {
94
95
  if (appRef.viewCount > 0) {
95
96
  appRef.detachView(componentRef.hostView);
96
97
  }
98
+ componentRef?.destroy();
97
99
  componentRootNode.remove();
98
100
  };
99
101
  return plantComponentRef;
@@ -147,9 +149,9 @@ export class PlanetComponentLoader {
147
149
  return result;
148
150
  }
149
151
  }
150
- PlanetComponentLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: PlanetComponentLoader, deps: [{ token: i0.ApplicationRef }, { token: i0.NgModuleRef }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
151
- PlanetComponentLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: PlanetComponentLoader, providedIn: 'root' });
152
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: PlanetComponentLoader, decorators: [{
152
+ PlanetComponentLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: PlanetComponentLoader, deps: [{ token: i0.ApplicationRef }, { token: i0.NgModuleRef }, { token: i0.NgZone }, { token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
153
+ PlanetComponentLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: PlanetComponentLoader, providedIn: 'root' });
154
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: PlanetComponentLoader, decorators: [{
153
155
  type: Injectable,
154
156
  args: [{
155
157
  providedIn: 'root'
@@ -158,4 +160,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
158
160
  type: Inject,
159
161
  args: [DOCUMENT]
160
162
  }] }]; } });
161
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWNvbXBvbmVudC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2NvbXBvbmVudC9wbGFuZXQtY29tcG9uZW50LWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNWLGNBQWMsRUFDZCxXQUFXLEVBQ1gsTUFBTSxFQUVOLE1BQU0sRUFDTixRQUFRLEVBTVgsTUFBTSxlQUFlLENBQUM7QUFFdkIsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBMkMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBd0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7O0FBRTdGLE1BQU0scUJBQXFCLEdBQUcsMEJBQTBCLENBQUM7QUFVekQsTUFBTSxPQUFPLHFCQUFxQjtJQVM5QixZQUNZLGNBQThCLEVBQzlCLFdBQTZCLEVBQzdCLE1BQWMsRUFDSSxRQUFhO1FBSC9CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNJLGFBQVEsR0FBUixRQUFRLENBQUs7SUFDeEMsQ0FBQztJQWJKLElBQVksaUJBQWlCO1FBQ3pCLE9BQU8sb0JBQW9CLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBWSxrQkFBa0I7UUFDMUIsT0FBTyxxQkFBcUIsRUFBRSxDQUFD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R0FBRyxJQUFJLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FDeEMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ2YsSUFBSSxNQUFNLENBQUMsbUJBQW1CLEVBQUUsRUFBRTtnQkFDOUIsT0FBTyxFQUFFLENBQUMsRUFBRSxDQUFDLENBQUM7YUFDakI7aUJBQU07Z0JBQ0gsZ0RBQWdEO2dCQUNoRCxPQUFPLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNwQjtRQUNMLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNULE1BQU0sZ0JBQWdCLEdBQUcsTUFBTSxDQUFDLG1CQUFtQixFQUFFLENBQUM7WUFDdEQsSUFBSSxnQkFBZ0IsRUFBRTtnQkFDbEIsT0FBTyxnQkFBZ0IsQ0FBZSxhQUFhLEVBQUUsTUFBTSxDQUFDLENBQUM7YUFDaEU7aUJBQU07Z0JBQ0gsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLEdBQUcsZ0JBQWdCLGFBQWEscUJBQXFCLENBQUMsQ0FBQzthQUM3RTtRQUNMLENBQUMsQ0FBQyxFQUNGLFdBQVcsRUFBRSxDQUNoQixDQUFDO1FBQ0YsTUFBTSxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQ25CLE9BQU8sTUFBTSxDQUFDO0lBQ2xCLENBQUM7O2tIQWhLUSxxQkFBcUIsaUdBYWxCLFFBQVE7c0hBYlgscUJBQXFCLGNBRmxCLE1BQU07MkZBRVQscUJBQXFCO2tCQUhqQyxVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQjs7MEJBY1EsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgICBJbmplY3RhYmxlLFxuICAgIEFwcGxpY2F0aW9uUmVmLFxuICAgIE5nTW9kdWxlUmVmLFxuICAgIE5nWm9uZSxcbiAgICBFbGVtZW50UmVmLFxuICAgIEluamVjdCxcbiAgICBJbmplY3RvcixcbiAgICBjcmVhdGVDb21wb25lbnQsXG4gICAgRW52aXJvbm1lbnRJbmplY3RvcixcbiAgICBUeXBlLFxuICAgIENvbXBvbmVudFJlZixcbiAgICBFbWJlZGRlZFZpZXdSZWZcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGFuZXRBcHBsaWNhdGlvblJlZiB9IGZyb20gJy4uL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi1yZWYnO1xuaW1wb3J0IHsgUGxhbmV0Q29tcG9uZW50UmVmIH0gZnJvbSAnLi9wbGFuZXQtY29tcG9uZW50LXJlZic7XG5pbXBvcnQgeyBQbGFudENvbXBvbmVudENvbmZpZyB9IGZyb20gJy4vcGxhbnQtY29tcG9uZW50LmNvbmZpZyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgZmluYWxpemUsIGRlYm91bmNlLCBmaWx0ZXIsIHRha2UsIGRlbGF5LCBkZWxheVdoZW4gfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBvZiwgT2JzZXJ2YWJsZSwgaW50ZXJ2YWwsIHRpbWVyIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBnbG9iYWxQbGFuZXQsIGdldEFwcGxpY2F0aW9uTG9hZGVyLCBnZXRBcHBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9nbG9iYWwtcGxhbmV0JztcblxuY29uc3QgY29tcG9uZW50V3JhcHBlckNsYXNzID0gJ3BsYW5ldC1jb21wb25lbnQtd3JhcHBlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhbmV0Q29tcG9uZW50PFQgPSBhbnk+IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgY29tcG9uZW50OiBUeXBlPFQ+O1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYW5ldENvbXBvbmVudExvYWRlciB7XG4gICAgcHJpdmF0ZSBnZXQgYXBwbGljYXRpb25Mb2FkZXIoKSB7XG4gICAgICAgIHJldHVybiBnZXRBcHBsaWNhdGlvbkxvYWRlcigpO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0IGFwcGxpY2F0aW9uU2VydmljZSgpIHtcbiAgICAgICAgcmV0dXJuIGdldEFwcGxpY2F0aW9uU2VydmljZSgpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGFwcGxpY2F0aW9uUmVmOiBBcHBsaWNhdGlvblJlZixcbiAgICAgICAgcHJpdmF0ZSBuZ01vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55PixcbiAgICAgICAgcHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogYW55XG4gICAgKSB7fVxuXG4gICAgcHJpdmF0ZSBnZXRQbGFudEFwcFJlZihuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFBsYW5ldEFwcGxpY2F0aW9uUmVmPiB7XG4gICAgICAgIGlmIChnbG9iYWxQbGFuZXQuYXBwc1tuYW1lXSAmJiBnbG9iYWxQbGFuZXQuYXBwc1tuYW1lXS5hcHBNb2R1bGVSZWYpIHtcbiAgICAgICAgICAgIHJldHVybiBvZihnbG9iYWxQbGFuZXQuYXBwc1tuYW1lXSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjb25zdCBhcHAgPSB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5nZXRBcHBCeU5hbWUobmFtZSk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5hcHBsaWNhdGlvbkxvYWRlci5wcmVsb2FkKGFwcCwgdHJ1ZSkucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gZ2xvYmFsUGxhbmV0LmFwcHNbbmFtZV07XG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGNyZWF0ZUluamVjdG9yPFREYXRhPihhcHBNb2R1bGVSZWY6IE5nTW9kdWxlUmVmPGFueT4sIGNvbXBvbmVudFJlZjogUGxhbmV0Q29tcG9uZW50UmVmPFREYXRhPik6IEluamVjdG9yIHtcbiAgICAgICAgcmV0dXJuIEluamVjdG9yLmNyZWF0ZSh7XG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFBsYW5ldENvbXBvbmVudFJlZixcbiAgICAgICAgICAgICAgICAgICAgdXNlVmFsdWU6IGNvbXBvbmVudFJlZlxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgICBwYXJlbnQ6IGFwcE1vZHVsZVJlZi5pbmplY3RvclxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldENvbnRhaW5lckVsZW1lbnQoY29uZmlnOiBQbGFudENvbXBvbmVudENvbmZpZyk6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgaWYgKCFjb25maWcuY29udGFpbmVyKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGNvbmZpZyAnY29udGFpbmVyJyBjYW5ub3QgYmUgbnVsbGApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgaWYgKChjb25maWcuY29udGFpbmVyIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gKGNvbmZpZy5jb250YWluZXIgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudDtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIGNvbmZpZy5jb250YWluZXIgYXMgSFRNTEVsZW1lbnQ7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGluc2VydENvbXBvbmVudFJvb3ROb2RlVG9Db250YWluZXIoXG4gICAgICAgIGNvbnRhaW5lcjogSFRNTEVsZW1lbnQsXG4gICAgICAgIGNvbXBvbmVudFJvb3ROb2RlOiBIVE1MRWxlbWVudCxcbiAgICAgICAgaG9zdENsYXNzOiBzdHJpbmdcbiAgICApIHtcbiAgICAgICAgY29uc3Qgc3ViQXBwID0gdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZ2V0QXBwQnlOYW1lKHRoaXMubmdNb2R1bGVSZWYuaW5zdGFuY2UuYXBwTmFtZSk7XG4gICAgICAgIGNvbXBvbmVudFJvb3ROb2RlLmNsYXNzTGlzdC5hZGQoY29tcG9uZW50V3JhcHBlckNsYXNzKTtcbiAgICAgICAgY29tcG9uZW50Um9vdE5vZGUuc2V0QXR0cmlidXRlKCdwbGFuZXQtaW5saW5lJywgJycpO1xuICAgICAgICBpZiAoaG9zdENsYXNzKSB7XG4gICAgICAgICAgICBjb21wb25lbnRSb290Tm9kZS5jbGFzc0xpc3QuYWRkKGhvc3RDbGFzcyk7XG4gICAgICAgIH1cbiAgICAgICAgaWYgKHN1YkFwcCAmJiBzdWJBcHAuc3R5bGVQcmVmaXgpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFJvb3ROb2RlLmNsYXNzTGlzdC5hZGQoc3ViQXBwLnN0eWxlUHJlZml4KTtcbiAgICAgICAgfVxuICAgICAgICAvLyBjb250YWluZXIg5piv5rOo6YeK5YiZ5Zyo5YmN5pa55o+S5YWl77yM5ZCm5YiZ5Zyo5YWD57Sg5YaF6YOo5o+S5YWlXG4gICAgICAgIGlmIChjb250YWluZXIubm9kZVR5cGUgPT09IDgpIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5wYXJlbnRFbGVtZW50Lmluc2VydEJlZm9yZShjb21wb25lbnRSb290Tm9kZSwgY29udGFpbmVyKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnRhaW5lci5hcHBlbmRDaGlsZChjb21wb25lbnRSb290Tm9kZSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGF0dGFjaENvbXBvbmVudDxURGF0YT4oXG4gICAgICAgIHBsYW50Q29tcG9uZW50OiBQbGFuZXRDb21wb25lbnQsXG4gICAgICAgIGFwcE1vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55PixcbiAgICAgICAgY29uZmlnOiBQbGFudENvbXBvbmVudENvbmZpZ1xuICAgICk6IFBsYW5ldENvbXBvbmVudFJlZjxURGF0YT4ge1xuICAgICAgICBjb25zdCBwbGFudENvbXBvbmVudFJlZiA9IG5ldyBQbGFuZXRDb21wb25lbnRSZWYoKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyID0gYXBwTW9kdWxlUmVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjtcbiAgICAgICAgY29uc3QgYXBwUmVmID0gdGhpcy5hcHBsaWNhdGlvblJlZjtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yPFREYXRhPihhcHBNb2R1bGVSZWYsIHBsYW50Q29tcG9uZW50UmVmKTtcbiAgICAgICAgY29uc3QgY29udGFpbmVyID0gdGhpcy5nZXRDb250YWluZXJFbGVtZW50KGNvbmZpZyk7XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkocGxhbnRDb21wb25lbnQuY29tcG9uZW50KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY29tcG9uZW50RmFjdG9yeS5jcmVhdGUoaW5qZWN0b3IpO1xuICAgICAgICBhcHBSZWYuYXR0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICBjb25zdCBjb21wb25lbnRSb290Tm9kZSA9IHRoaXMuZ2V0Q29tcG9uZW50Um9vdE5vZGUoY29tcG9uZW50UmVmKTtcbiAgICAgICAgdGhpcy5pbnNlcnRDb21wb25lbnRSb290Tm9kZVRvQ29udGFpbmVyKGNvbnRhaW5lciwgY29tcG9uZW50Um9vdE5vZGUsIGNvbmZpZy5ob3N0Q2xhc3MgfHwgY29uZmlnLndyYXBwZXJDbGFzcyk7XG4gICAgICAgIGlmIChjb25maWcuaW5pdGlhbFN0YXRlKSB7XG4gICAgICAgICAgICBPYmplY3QuYXNzaWduKGNvbXBvbmVudFJlZi5pbnN0YW5jZSwgY29uZmlnLmluaXRpYWxTdGF0ZSk7XG4gICAgICAgIH1cbiAgICAgICAgcGxhbnRDb21wb25lbnRSZWYuY29tcG9uZW50SW5zdGFuY2UgPSBjb21wb25lbnRSZWYuaW5zdGFuY2U7XG4gICAgICAgIHBsYW50Q29tcG9uZW50UmVmLmNvbXBvbmVudFJlZiA9IGNvbXBvbmVudFJlZjtcbiAgICAgICAgcGxhbnRDb21wb25lbnRSZWYuaG9zdEVsZW1lbnQgPSBjb21wb25lbnRSb290Tm9kZTtcbiAgICAgICAgcGxhbnRDb21wb25lbnRSZWYuZGlzcG9zZSA9ICgpID0+IHtcbiAgICAgICAgICAgIGlmIChhcHBSZWYudmlld0NvdW50ID4gMCkge1xuICAgICAgICAgICAgICAgIGFwcFJlZi5kZXRhY2hWaWV3KGNvbXBvbmVudFJlZi5ob3N0Vmlldyk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICBjb21wb25lbnRSb290Tm9kZS5yZW1vdmUoKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHBsYW50Q29tcG9uZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBHZXRzIHRoZSByb290IEhUTUxFbGVtZW50IGZvciBhbiBpbnN0YW50aWF0ZWQgY29tcG9uZW50LiAqL1xuICAgIHByaXZhdGUgZ2V0Q29tcG9uZW50Um9vdE5vZGUoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55Pik6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRPckNvbXBvbmVudHM6IFBsYW5ldENvbXBvbmVudCB8IFBsYW5ldENvbXBvbmVudFtdKSB7XG4gICAgICAgIGNvbnN0IGFwcCA9IHRoaXMubmdNb2R1bGVSZWYuaW5zdGFuY2UuYXBwTmFtZTtcbiAgICAgICAgdGhpcy5nZXRQbGFudEFwcFJlZihhcHApLnN1YnNjcmliZShhcHBSZWYgPT4ge1xuICAgICAgICAgICAgYXBwUmVmLnJlZ2lzdGVyQ29tcG9uZW50RmFjdG9yeSgoY29tcG9uZW50TmFtZTogc3RyaW5nLCBjb25maWc6IFBsYW50Q29tcG9uZW50Q29uZmlnPGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gY29lcmNlQXJyYXkoY29tcG9uZW50T3JDb21wb25lbnRzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBjb21wb25lbnRzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IGNvbXBvbmVudE5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmF0dGFjaENvbXBvbmVudDxhbnk+KGNvbXBvbmVudCwgYXBwUmVmLmFwcE1vZHVsZVJlZiwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGB1bnJlZ2lzdGVyZWQgY29tcG9uZW50ICR7Y29tcG9uZW50TmFtZX0gaW4gYXBwICR7YXBwfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3Rlcihjb21wb25lbnRzOiBQbGFuZXRDb21wb25lbnQgfCBQbGFuZXRDb21wb25lbnRbXSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudHMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsb2FkPFRDb21wID0gdW5rbm93biwgVERhdGEgPSB1bmtub3duPihcbiAgICAgICAgYXBwOiBzdHJpbmcsXG4gICAgICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcbiAgICAgICAgY29uZmlnOiBQbGFudENvbXBvbmVudENvbmZpZzxURGF0YT5cbiAgICApOiBPYnNlcnZhYmxlPFBsYW5ldENvbXBvbmVudFJlZjxUQ29tcD4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRQbGFudEFwcFJlZihhcHApLnBpcGUoXG4gICAgICAgICAgICBkZWxheVdoZW4oYXBwUmVmID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYXBwUmVmLmdldENvbXBvbmVudEZhY3RvcnkoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoJycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEJlY2F1c2UgcmVnaXN0ZXIgdXNlICdzZXRUaW1lb3V0JyxzbyB0aW1lciAyMFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGltZXIoMjApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKGFwcFJlZiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IGFwcFJlZi5nZXRDb21wb25lbnRGYWN0b3J5KCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBvbmVudEZhY3RvcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3Rvcnk8VERhdGEsIFRDb21wPihjb21wb25lbnROYW1lLCBjb25maWcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHthcHB9J3MgY29tcG9uZW50KCR7Y29tcG9uZW50TmFtZX0pIGlzIG5vdCByZWdpc3RlcmVkYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgpXG4gICAgICAgICk7XG4gICAgICAgIHJlc3VsdC5zdWJzY3JpYmUoKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
163
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWNvbXBvbmVudC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2NvbXBvbmVudC9wbGFuZXQtY29tcG9uZW50LWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsVUFBVSxFQUNWLGNBQWMsRUFDZCxXQUFXLEVBQ1gsTUFBTSxFQUVOLE1BQU0sRUFDTixRQUFRLEVBQ1IsZUFBZSxFQUtsQixNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUU1RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUEyQyxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RyxPQUFPLEVBQUUsRUFBRSxFQUF3QixLQUFLLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxZQUFZLEVBQUUsb0JBQW9CLEVBQUUscUJBQXFCLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7QUFFN0YsTUFBTSxxQkFBcUIsR0FBRywwQkFBMEIsQ0FBQztBQVV6RCxNQUFNLE9BQU8scUJBQXFCO0lBQzlCLElBQVksaUJBQWlCO1FBQ3pCLE9BQU8sb0JBQW9CLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBWSxrQkFBa0I7UUFDMUIsT0FBTyxxQkFBcUIsRUFBRSxDQUFDO0lBQ25DLENBQUM7SUFFRCxZQUNZLGNBQThCLEVBQzlCLFdBQTZCLEVBQzdCLE1BQWMsRUFDSSxRQUFhO1FBSC9CLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBa0I7UUFDN0IsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNJLGFBQVEsR0FB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QyxjQUFjLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUN4QyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDZixJQUFJLE1BQU0sQ0FBQyxtQkFBbUIsRUFBRSxFQUFFO2dCQUM5QixPQUFPLEVBQUUsQ0FBQyxFQUFFLENBQUMsQ0FBQzthQUNqQjtpQkFBTTtnQkFDSCxnREFBZ0Q7Z0JBQ2hELE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN0RCxJQUFJLGdCQUFnQixFQUFFO2dCQUNsQixPQUFPLGdCQUFnQixDQUFlLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNoRTtpQkFBTTtnQkFDSCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxnQkFBZ0IsYUFBYSxxQkFBcUIsQ0FBQyxDQUFDO2FBQzdFO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxFQUFFLENBQ2hCLENBQUM7UUFDRixNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7a0hBbEtRLHFCQUFxQixpR0FhbEIsUUFBUTtzSEFiWCxxQkFBcUIsY0FGbEIsTUFBTTsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFjUSxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEluamVjdGFibGUsXG4gICAgQXBwbGljYXRpb25SZWYsXG4gICAgTmdNb2R1bGVSZWYsXG4gICAgTmdab25lLFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIEluamVjdG9yLFxuICAgIGNyZWF0ZUNvbXBvbmVudCxcbiAgICBFbnZpcm9ubWVudEluamVjdG9yLFxuICAgIFR5cGUsXG4gICAgQ29tcG9uZW50UmVmLFxuICAgIEVtYmVkZGVkVmlld1JlZlxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBsYW5ldEFwcGxpY2F0aW9uUmVmIH0gZnJvbSAnLi4vYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLXJlZic7XG5pbXBvcnQgeyBQbGFuZXRDb21wb25lbnRSZWYgfSBmcm9tICcuL3BsYW5ldC1jb21wb25lbnQtcmVmJztcbmltcG9ydCB7IFBsYW50Q29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi9wbGFudC1jb21wb25lbnQuY29uZmlnJztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBmaW5hbGl6ZSwgZGVib3VuY2UsIGZpbHRlciwgdGFrZSwgZGVsYXksIGRlbGF5V2hlbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlLCBpbnRlcnZhbCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGdsb2JhbFBsYW5ldCwgZ2V0QXBwbGljYXRpb25Mb2FkZXIsIGdldEFwcGxpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2dsb2JhbC1wbGFuZXQnO1xuXG5jb25zdCBjb21wb25lbnRXcmFwcGVyQ2xhc3MgPSAncGxhbmV0LWNvbXBvbmVudC13cmFwcGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFuZXRDb21wb25lbnQ8VCA9IGFueT4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjb21wb25lbnQ6IFR5cGU8VD47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhbmV0Q29tcG9uZW50TG9hZGVyIHtcbiAgICBwcml2YXRlIGdldCBhcHBsaWNhdGlvbkxvYWRlcigpIHtcbiAgICAgICAgcmV0dXJuIGdldEFwcGxpY2F0aW9uTG9hZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYXBwbGljYXRpb25TZXJ2aWNlKCkge1xuICAgICAgICByZXR1cm4gZ2V0QXBwbGljYXRpb25TZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIG5nTW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+LFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIGdldFBsYW50QXBwUmVmKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8UGxhbmV0QXBwbGljYXRpb25SZWY+IHtcbiAgICAgICAgaWYgKGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdICYmIGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdLmFwcE1vZHVsZVJlZikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcCA9IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcEJ5TmFtZShuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uTG9hZGVyLnByZWxvYWQoYXBwLCB0cnVlKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnbG9iYWxQbGFuZXQuYXBwc1tuYW1lXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8VERhdGE+KGFwcE1vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55PiwgY29tcG9uZW50UmVmOiBQbGFuZXRDb21wb25lbnRSZWY8VERhdGE+KTogSW5qZWN0b3Ige1xuICAgICAgICByZXR1cm4gSW5qZWN0b3IuY3JlYXRlKHtcbiAgICAgICAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgcHJvdmlkZTogUGxhbmV0Q29tcG9uZW50UmVmLFxuICAgICAgICAgICAgICAgICAgICB1c2VWYWx1ZTogY29tcG9uZW50UmVmXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIHBhcmVudDogYXBwTW9kdWxlUmVmLmluamVjdG9yXG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0Q29udGFpbmVyRWxlbWVudChjb25maWc6IFBsYW50Q29tcG9uZW50Q29uZmlnKTogSFRNTEVsZW1lbnQge1xuICAgICAgICBpZiAoIWNvbmZpZy5jb250YWluZXIpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgY29uZmlnICdjb250YWluZXInIGNhbm5vdCBiZSBudWxsYCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBpZiAoKGNvbmZpZy5jb250YWluZXIgYXMgRWxlbWVudFJlZikubmF0aXZlRWxlbWVudCkge1xuICAgICAgICAgICAgICAgIHJldHVybiAoY29uZmlnLmNvbnRhaW5lciBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50O1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gY29uZmlnLmNvbnRhaW5lciBhcyBIVE1MRWxlbWVudDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgaW5zZXJ0Q29tcG9uZW50Um9vdE5vZGVUb0NvbnRhaW5lcihcbiAgICAgICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCxcbiAgICAgICAgY29tcG9uZW50Um9vdE5vZGU6IEhUTUxFbGVtZW50LFxuICAgICAgICBob3N0Q2xhc3M6IHN0cmluZ1xuICAgICkge1xuICAgICAgICBjb25zdCBzdWJBcHAgPSB0aGlzLmFwcGxpY2F0aW9uU2VydmljZS5nZXRBcHBCeU5hbWUodGhpcy5uZ01vZHVsZVJlZi5pbnN0YW5jZS5hcHBOYW1lKTtcbiAgICAgICAgY29tcG9uZW50Um9vdE5vZGUuY2xhc3NMaXN0LmFkZChjb21wb25lbnRXcmFwcGVyQ2xhc3MpO1xuICAgICAgICBjb21wb25lbnRSb290Tm9kZS5zZXRBdHRyaWJ1dGUoJ3BsYW5ldC1pbmxpbmUnLCAnJyk7XG4gICAgICAgIGlmIChob3N0Q2xhc3MpIHtcbiAgICAgICAgICAgIGNvbXBvbmVudFJvb3ROb2RlLmNsYXNzTGlzdC5hZGQoaG9zdENsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3ViQXBwICYmIHN1YkFwcC5zdHlsZVByZWZpeCkge1xuICAgICAgICAgICAgY29tcG9uZW50Um9vdE5vZGUuY2xhc3NMaXN0LmFkZChzdWJBcHAuc3R5bGVQcmVmaXgpO1xuICAgICAgICB9XG4gICAgICAgIC8vIGNvbnRhaW5lciDmmK/ms6jph4rliJnlnKjliY3mlrnmj5LlhaXvvIzlkKbliJnlnKjlhYPntKDlhoXpg6jmj5LlhaVcbiAgICAgICAgaWYgKGNvbnRhaW5lci5ub2RlVHlwZSA9PT0gOCkge1xuICAgICAgICAgICAgY29udGFpbmVyLnBhcmVudEVsZW1lbnQuaW5zZXJ0QmVmb3JlKGNvbXBvbmVudFJvb3ROb2RlLCBjb250YWluZXIpO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGNvbXBvbmVudFJvb3ROb2RlKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXR0YWNoQ29tcG9uZW50PFREYXRhPihcbiAgICAgICAgcGxhbnRDb21wb25lbnQ6IFBsYW5ldENvbXBvbmVudCxcbiAgICAgICAgYXBwTW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+LFxuICAgICAgICBjb25maWc6IFBsYW50Q29tcG9uZW50Q29uZmlnXG4gICAgKTogUGxhbmV0Q29tcG9uZW50UmVmPFREYXRhPiB7XG4gICAgICAgIGNvbnN0IHBsYW50Q29tcG9uZW50UmVmID0gbmV3IFBsYW5ldENvbXBvbmVudFJlZigpO1xuICAgICAgICBjb25zdCBhcHBSZWYgPSB0aGlzLmFwcGxpY2F0aW9uUmVmO1xuICAgICAgICBjb25zdCBpbmplY3RvciA9IHRoaXMuY3JlYXRlSW5qZWN0b3I8VERhdGE+KGFwcE1vZHVsZVJlZiwgcGxhbnRDb21wb25lbnRSZWYpO1xuICAgICAgICBjb25zdCBjb250YWluZXIgPSB0aGlzLmdldENvbnRhaW5lckVsZW1lbnQoY29uZmlnKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gY3JlYXRlQ29tcG9uZW50KHBsYW50Q29tcG9uZW50LmNvbXBvbmVudCwge1xuICAgICAgICAgICAgZW52aXJvbm1lbnRJbmplY3RvcjogYXBwTW9kdWxlUmVmLmluamVjdG9yLFxuICAgICAgICAgICAgZWxlbWVudEluamVjdG9yOiBpbmplY3RvclxuICAgICAgICB9KTtcbiAgICAgICAgYXBwUmVmLmF0dGFjaFZpZXcoY29tcG9uZW50UmVmLmhvc3RWaWV3KTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50Um9vdE5vZGUgPSB0aGlzLmdldENvbXBvbmVudFJvb3ROb2RlKGNvbXBvbmVudFJlZik7XG4gICAgICAgIHRoaXMuaW5zZXJ0Q29tcG9uZW50Um9vdE5vZGVUb0NvbnRhaW5lcihjb250YWluZXIsIGNvbXBvbmVudFJvb3ROb2RlLCBjb25maWcuaG9zdENsYXNzIHx8IGNvbmZpZy53cmFwcGVyQ2xhc3MpO1xuICAgICAgICBpZiAoY29uZmlnLmluaXRpYWxTdGF0ZSkge1xuICAgICAgICAgICAgT2JqZWN0LmFzc2lnbihjb21wb25lbnRSZWYuaW5zdGFuY2UsIGNvbmZpZy5pbml0aWFsU3RhdGUpO1xuICAgICAgICB9XG4gICAgICAgIHBsYW50Q29tcG9uZW50UmVmLmNvbXBvbmVudEluc3RhbmNlID0gY29tcG9uZW50UmVmLmluc3RhbmNlO1xuICAgICAgICBwbGFudENvbXBvbmVudFJlZi5jb21wb25lbnRSZWYgPSBjb21wb25lbnRSZWY7XG4gICAgICAgIHBsYW50Q29tcG9uZW50UmVmLmhvc3RFbGVtZW50ID0gY29tcG9uZW50Um9vdE5vZGU7XG4gICAgICAgIHBsYW50Q29tcG9uZW50UmVmLmRpc3Bvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICBpZiAoYXBwUmVmLnZpZXdDb3VudCA+IDApIHtcbiAgICAgICAgICAgICAgICBhcHBSZWYuZGV0YWNoVmlldyhjb21wb25lbnRSZWYuaG9zdFZpZXcpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgY29tcG9uZW50UmVmPy5kZXN0cm95KCk7XG4gICAgICAgICAgICBjb21wb25lbnRSb290Tm9kZS5yZW1vdmUoKTtcbiAgICAgICAgfTtcbiAgICAgICAgcmV0dXJuIHBsYW50Q29tcG9uZW50UmVmO1xuICAgIH1cblxuICAgIC8qKiBHZXRzIHRoZSByb290IEhUTUxFbGVtZW50IGZvciBhbiBpbnN0YW50aWF0ZWQgY29tcG9uZW50LiAqL1xuICAgIHByaXZhdGUgZ2V0Q29tcG9uZW50Um9vdE5vZGUoY29tcG9uZW50UmVmOiBDb21wb25lbnRSZWY8YW55Pik6IEhUTUxFbGVtZW50IHtcbiAgICAgICAgcmV0dXJuIChjb21wb25lbnRSZWYuaG9zdFZpZXcgYXMgRW1iZWRkZWRWaWV3UmVmPGFueT4pLnJvb3ROb2Rlc1swXSBhcyBIVE1MRWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRPckNvbXBvbmVudHM6IFBsYW5ldENvbXBvbmVudCB8IFBsYW5ldENvbXBvbmVudFtdKSB7XG4gICAgICAgIGNvbnN0IGFwcCA9IHRoaXMubmdNb2R1bGVSZWYuaW5zdGFuY2UuYXBwTmFtZTtcbiAgICAgICAgdGhpcy5nZXRQbGFudEFwcFJlZihhcHApLnN1YnNjcmliZShhcHBSZWYgPT4ge1xuICAgICAgICAgICAgYXBwUmVmLnJlZ2lzdGVyQ29tcG9uZW50RmFjdG9yeSgoY29tcG9uZW50TmFtZTogc3RyaW5nLCBjb25maWc6IFBsYW50Q29tcG9uZW50Q29uZmlnPGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gY29lcmNlQXJyYXkoY29tcG9uZW50T3JDb21wb25lbnRzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBjb21wb25lbnRzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IGNvbXBvbmVudE5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmF0dGFjaENvbXBvbmVudDxhbnk+KGNvbXBvbmVudCwgYXBwUmVmLmFwcE1vZHVsZVJlZiwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGB1bnJlZ2lzdGVyZWQgY29tcG9uZW50ICR7Y29tcG9uZW50TmFtZX0gaW4gYXBwICR7YXBwfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3Rlcihjb21wb25lbnRzOiBQbGFuZXRDb21wb25lbnQgfCBQbGFuZXRDb21wb25lbnRbXSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudHMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsb2FkPFRDb21wID0gdW5rbm93biwgVERhdGEgPSB1bmtub3duPihcbiAgICAgICAgYXBwOiBzdHJpbmcsXG4gICAgICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcbiAgICAgICAgY29uZmlnOiBQbGFudENvbXBvbmVudENvbmZpZzxURGF0YT5cbiAgICApOiBPYnNlcnZhYmxlPFBsYW5ldENvbXBvbmVudFJlZjxUQ29tcD4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRQbGFudEFwcFJlZihhcHApLnBpcGUoXG4gICAgICAgICAgICBkZWxheVdoZW4oYXBwUmVmID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYXBwUmVmLmdldENvbXBvbmVudEZhY3RvcnkoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoJycpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIC8vIEJlY2F1c2UgcmVnaXN0ZXIgdXNlICdzZXRUaW1lb3V0JyxzbyB0aW1lciAyMFxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGltZXIoMjApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbWFwKGFwcFJlZiA9PiB7XG4gICAgICAgICAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IGFwcFJlZi5nZXRDb21wb25lbnRGYWN0b3J5KCk7XG4gICAgICAgICAgICAgICAgaWYgKGNvbXBvbmVudEZhY3RvcnkpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGNvbXBvbmVudEZhY3Rvcnk8VERhdGEsIFRDb21wPihjb21wb25lbnROYW1lLCBjb25maWcpO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHthcHB9J3MgY29tcG9uZW50KCR7Y29tcG9uZW50TmFtZX0pIGlzIG5vdCByZWdpc3RlcmVkYCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBzaGFyZVJlcGxheSgpXG4gICAgICAgICk7XG4gICAgICAgIHJlc3VsdC5zdWJzY3JpYmUoKTtcbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=
@@ -49,9 +49,9 @@ export class PlanetComponentOutlet {
49
49
  this.destroyed$.next();
50
50
  }
51
51
  }
52
- PlanetComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: PlanetComponentOutlet, deps: [{ token: i0.ElementRef }, { token: i1.PlanetComponentLoader }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
53
- PlanetComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "14.1.2", type: PlanetComponentOutlet, selector: "[planetComponentOutlet]", inputs: { planetComponentOutlet: "planetComponentOutlet", planetComponentOutletApp: "planetComponentOutletApp", planetComponentOutletInitialState: "planetComponentOutletInitialState" }, outputs: { planetComponentLoaded: "planetComponentLoaded" }, usesOnChanges: true, ngImport: i0 });
54
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: PlanetComponentOutlet, decorators: [{
52
+ PlanetComponentOutlet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: PlanetComponentOutlet, deps: [{ token: i0.ElementRef }, { token: i1.PlanetComponentLoader }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Directive });
53
+ PlanetComponentOutlet.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "15.1.2", type: PlanetComponentOutlet, selector: "[planetComponentOutlet]", inputs: { planetComponentOutlet: "planetComponentOutlet", planetComponentOutletApp: "planetComponentOutletApp", planetComponentOutletInitialState: "planetComponentOutletInitialState" }, outputs: { planetComponentLoaded: "planetComponentLoaded" }, usesOnChanges: true, ngImport: i0 });
54
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: PlanetComponentOutlet, decorators: [{
55
55
  type: Directive,
56
56
  args: [{
57
57
  selector: '[planetComponentOutlet]'
@@ -2,9 +2,9 @@ import { Component } from '@angular/core';
2
2
  import * as i0 from "@angular/core";
3
3
  export class EmptyComponent {
4
4
  }
5
- EmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: EmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
- EmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.1.2", type: EmptyComponent, selector: "empty-component", ngImport: i0, template: ``, isInline: true });
7
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: EmptyComponent, decorators: [{
5
+ EmptyComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: EmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6
+ EmptyComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.1.2", type: EmptyComponent, selector: "empty-component", ngImport: i0, template: ``, isInline: true });
7
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: EmptyComponent, decorators: [{
8
8
  type: Component,
9
9
  args: [{
10
10
  // eslint-disable-next-line @angular-eslint/component-selector
@@ -4,6 +4,14 @@ import { Injectable, NgZone } from '@angular/core';
4
4
  import * as i0 from "@angular/core";
5
5
  const CUSTOM_EVENT_NAME = 'PLANET_GLOBAL_EVENT_DISPATCHER';
6
6
  export class GlobalEventDispatcher {
7
+ addGlobalEventListener() {
8
+ this.hasAddGlobalEventListener = true;
9
+ window.addEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);
10
+ }
11
+ removeGlobalEventListener() {
12
+ this.hasAddGlobalEventListener = false;
13
+ window.removeEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);
14
+ }
7
15
  constructor(ngZone) {
8
16
  this.ngZone = ngZone;
9
17
  this.subject$ = new Subject();
@@ -13,14 +21,6 @@ export class GlobalEventDispatcher {
13
21
  this.subject$.next(event.detail);
14
22
  };
15
23
  }
16
- addGlobalEventListener() {
17
- this.hasAddGlobalEventListener = true;
18
- window.addEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);
19
- }
20
- removeGlobalEventListener() {
21
- this.hasAddGlobalEventListener = false;
22
- window.removeEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);
23
- }
24
24
  dispatch(name, payload) {
25
25
  window.dispatchEvent(new CustomEvent(CUSTOM_EVENT_NAME, {
26
26
  detail: {
@@ -59,12 +59,12 @@ export class GlobalEventDispatcher {
59
59
  return this.subscriptionCount;
60
60
  }
61
61
  }
62
- GlobalEventDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: GlobalEventDispatcher, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
63
- GlobalEventDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: GlobalEventDispatcher, providedIn: 'root' });
64
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: GlobalEventDispatcher, decorators: [{
62
+ GlobalEventDispatcher.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GlobalEventDispatcher, deps: [{ token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Injectable });
63
+ GlobalEventDispatcher.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GlobalEventDispatcher, providedIn: 'root' });
64
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: GlobalEventDispatcher, decorators: [{
65
65
  type: Injectable,
66
66
  args: [{
67
67
  providedIn: 'root'
68
68
  }]
69
69
  }], ctorParameters: function () { return [{ type: i0.NgZone }]; } });
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWV2ZW50LWRpc3BhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2dsb2JhbC1ldmVudC1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25ELE1BQU0saUJBQWlCLEdBQUcsZ0NBQWdDLENBQUM7QUFLM0QsTUFBTSxPQUFPLHFCQUFxQjtJQXFCOUIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFwQjFCLGFBQVEsR0FBbUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6RCw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLHdCQUFtQixHQUFHLENBQUMsS0FBa0IsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7SUFZbUMsQ0FBQztJQVY5QixzQkFBc0I7UUFDMUIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUN0QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLHlCQUF5QjtRQUM3QixJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBSUQsUUFBUSxDQUFXLElBQVksRUFBRSxPQUFrQjtRQUMvQyxNQUFNLENBQUMsYUFBYSxDQUNoQixJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQixNQUFNLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLE9BQU87YUFDbkI7U0FDSixDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCxRQUFRLENBQUksU0FBaUI7UUFDekIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO2dCQUNqQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUNqQztZQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRO2lCQUM3QixJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNYLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7WUFDcEMsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNSLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FDTDtpQkFDQSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNQLE9BQU8sR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2lCQUNwQztZQUNMLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDOztrSEFsRVEscUJBQXFCO3NIQUFyQixxQkFBcUIsY0FGbEIsTUFBTTsyRkFFVCxxQkFBcUI7a0JBSGpDLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZmlsdGVyLCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBOZ1pvbmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuZXhwb3J0IGludGVyZmFjZSBHbG9iYWxEaXNwYXRjaGVyRXZlbnQge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBwYXlsb2FkOiBhbnk7XG59XG5cbmNvbnN0IENVU1RPTV9FVkVOVF9OQU1FID0gJ1BMQU5FVF9HTE9CQUxfRVZFTlRfRElTUEFUQ0hFUic7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgR2xvYmFsRXZlbnREaXNwYXRjaGVyIHtcbiAgICBwcml2YXRlIHN1YmplY3QkOiBTdWJqZWN0PEdsb2JhbERpc3BhdGNoZXJFdmVudD4gPSBuZXcgU3ViamVjdCgpO1xuXG4gICAgcHJpdmF0ZSBoYXNBZGRHbG9iYWxFdmVudExpc3RlbmVyID0gZmFsc2U7XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbkNvdW50ID0gMDtcblxuICAgIHByaXZhdGUgZ2xvYmFsRXZlbnRMaXN0ZW5lciA9IChldmVudDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5zdWJqZWN0JC5uZXh0KGV2ZW50LmRldGFpbCk7XG4gICAgfTtcblxuICAgIHByaXZhdGUgYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcigpIHtcbiAgICAgICAgdGhpcy5oYXNBZGRHbG9iYWxFdmVudExpc3RlbmVyID0gdHJ1ZTtcbiAgICAgICAgd2luZG93LmFkZEV2ZW50TGlzdGVuZXIoQ1VTVE9NX0VWRU5UX05BTUUsIHRoaXMuZ2xvYmFsRXZlbnRMaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZW1vdmVHbG9iYWxFdmVudExpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLmhhc0FkZEdsb2JhbEV2ZW50TGlzdGVuZXIgPSBmYWxzZTtcbiAgICAgICAgd2luZG93LnJlbW92ZUV2ZW50TGlzdGVuZXIoQ1VTVE9NX0VWRU5UX05BTUUsIHRoaXMuZ2xvYmFsRXZlbnRMaXN0ZW5lcik7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBuZ1pvbmU6IE5nWm9uZSkge31cblxuICAgIGRpc3BhdGNoPFRQYXlsb2FkPihuYW1lOiBzdHJpbmcsIHBheWxvYWQ/OiBUUGF5bG9hZCkge1xuICAgICAgICB3aW5kb3cuZGlzcGF0Y2hFdmVudChcbiAgICAgICAgICAgIG5ldyBDdXN0b21FdmVudChDVVNUT01fRVZFTlRfTkFNRSwge1xuICAgICAgICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgICAgICAgICBuYW1lOiBuYW1lLFxuICAgICAgICAgICAgICAgICAgICBwYXlsb2FkOiBwYXlsb2FkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICByZWdpc3RlcjxUPihldmVudE5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xuICAgICAgICByZXR1cm4gbmV3IE9ic2VydmFibGUob2JzZXJ2ZXIgPT4ge1xuICAgICAgICAgICAgaWYgKCF0aGlzLmhhc0FkZEdsb2JhbEV2ZW50TGlzdGVuZXIpIHtcbiAgICAgICAgICAgICAgICB0aGlzLmFkZEdsb2JhbEV2ZW50TGlzdGVuZXIoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uQ291bnQrKztcbiAgICAgICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuc3ViamVjdCRcbiAgICAgICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBldmVudC5uYW1lID09PSBldmVudE5hbWU7XG4gICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50LnBheWxvYWQ7XG4gICAgICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUocGF5bG9hZCA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBvYnNlcnZlci5uZXh0KHBheWxvYWQpO1xuICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIHJldHVybiAoKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25Db3VudC0tO1xuICAgICAgICAgICAgICAgIHN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgICAgICAgICAgIGlmICghdGhpcy5zdWJzY3JpcHRpb25Db3VudCkge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZUdsb2JhbEV2ZW50TGlzdGVuZXIoKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9O1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBnZXRTdWJzY3JpcHRpb25Db3VudCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuc3Vic2NyaXB0aW9uQ291bnQ7XG4gICAgfVxufVxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWV2ZW50LWRpc3BhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2dsb2JhbC1ldmVudC1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25ELE1BQU0saUJBQWlCLEdBQUcsZ0NBQWdDLENBQUM7QUFLM0QsTUFBTSxPQUFPLHFCQUFxQjtJQVd0QixzQkFBc0I7UUFDMUIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUN0QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLHlCQUF5QjtRQUM3QixJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBRUQsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFwQjFCLGFBQVEsR0FBbUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6RCw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLHdCQUFtQixHQUFHLENBQUMsS0FBa0IsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7SUFZbUMsQ0FBQztJQUV0QyxRQUFRLENBQVcsSUFBWSxFQUFFLE9BQWtCO1FBQy9DLE1BQU0sQ0FBQyxhQUFhLENBQ2hCLElBQUksV0FBVyxDQUFDLGlCQUFpQixFQUFFO1lBQy9CLE1BQU0sRUFBRTtnQkFDSixJQUFJLEVBQUUsSUFBSTtnQkFDVixPQUFPLEVBQUUsT0FBTzthQUNuQjtTQUNKLENBQUMsQ0FDTCxDQUFDO0lBQ04sQ0FBQztJQUVELFFBQVEsQ0FBSSxTQUFpQjtRQUN6QixPQUFPLElBQUksVUFBVSxDQUFDLFFBQVEsQ0FBQyxFQUFFO1lBQzdCLElBQUksQ0FBQyxJQUFJLENBQUMseUJBQXlCLEVBQUU7Z0JBQ2pDLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxDQUFDO2FBQ2pDO1lBQ0QsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7WUFDekIsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLFFBQVE7aUJBQzdCLElBQUksQ0FDRCxNQUFNLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1gsT0FBTyxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQztZQUNwQyxDQUFDLENBQUMsRUFDRixHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUU7Z0JBQ1IsT0FBTyxLQUFLLENBQUMsT0FBTyxDQUFDO1lBQ3pCLENBQUMsQ0FBQyxDQUNMO2lCQUNBLFNBQVMsQ0FBQyxPQUFPLENBQUMsRUFBRTtnQkFDakIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsR0FBRyxFQUFFO29CQUNqQixRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2dCQUMzQixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUMsQ0FBQyxDQUFDO1lBQ1AsT0FBTyxHQUFHLEVBQUU7Z0JBQ1IsSUFBSSxDQUFDLGlCQUFpQixFQUFFLENBQUM7Z0JBQ3pCLFlBQVksQ0FBQyxXQUFXLEVBQUUsQ0FBQztnQkFDM0IsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRTtvQkFDekIsSUFBSSxDQUFDLHlCQUF5QixFQUFFLENBQUM7aUJBQ3BDO1lBQ0wsQ0FBQyxDQUFDO1FBQ04sQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDO0lBQ2xDLENBQUM7O2tIQWxFUSxxQkFBcUI7c0hBQXJCLHFCQUFxQixjQUZsQixNQUFNOzJGQUVULHFCQUFxQjtrQkFIakMsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbERpc3BhdGNoZXJFdmVudCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBheWxvYWQ6IGFueTtcbn1cblxuY29uc3QgQ1VTVE9NX0VWRU5UX05BTUUgPSAnUExBTkVUX0dMT0JBTF9FVkVOVF9ESVNQQVRDSEVSJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBHbG9iYWxFdmVudERpc3BhdGNoZXIge1xuICAgIHByaXZhdGUgc3ViamVjdCQ6IFN1YmplY3Q8R2xvYmFsRGlzcGF0Y2hlckV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIGhhc0FkZEdsb2JhbEV2ZW50TGlzdGVuZXIgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uQ291bnQgPSAwO1xuXG4gICAgcHJpdmF0ZSBnbG9iYWxFdmVudExpc3RlbmVyID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnN1YmplY3QkLm5leHQoZXZlbnQuZGV0YWlsKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBhZGRHbG9iYWxFdmVudExpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLmhhc0FkZEdsb2JhbEV2ZW50TGlzdGVuZXIgPSB0cnVlO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihDVVNUT01fRVZFTlRfTkFNRSwgdGhpcy5nbG9iYWxFdmVudExpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUdsb2JhbEV2ZW50TGlzdGVuZXIoKSB7XG4gICAgICAgIHRoaXMuaGFzQWRkR2xvYmFsRXZlbnRMaXN0ZW5lciA9IGZhbHNlO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihDVVNUT01fRVZFTlRfTkFNRSwgdGhpcy5nbG9iYWxFdmVudExpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gICAgZGlzcGF0Y2g8VFBheWxvYWQ+KG5hbWU6IHN0cmluZywgcGF5bG9hZD86IFRQYXlsb2FkKSB7XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KENVU1RPTV9FVkVOVF9OQU1FLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IHBheWxvYWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyPFQ+KGV2ZW50TmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaGFzQWRkR2xvYmFsRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25Db3VudCsrO1xuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5zdWJqZWN0JFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50Lm5hbWUgPT09IGV2ZW50TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbkNvdW50LS07XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlR2xvYmFsRXZlbnRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFN1YnNjcmlwdGlvbkNvdW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25Db3VudDtcbiAgICB9XG59XG4iXX0=
@@ -17,10 +17,10 @@ export class NgxPlanetModule {
17
17
  };
18
18
  }
19
19
  }
20
- NgxPlanetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: NgxPlanetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
- NgxPlanetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "14.1.2", ngImport: i0, type: NgxPlanetModule, declarations: [EmptyComponent, PlanetComponentOutlet], imports: [HttpClientModule], exports: [HttpClientModule, EmptyComponent, PlanetComponentOutlet] });
22
- NgxPlanetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: NgxPlanetModule, imports: [HttpClientModule, HttpClientModule] });
23
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: NgxPlanetModule, decorators: [{
20
+ NgxPlanetModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgxPlanetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
21
+ NgxPlanetModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.1.2", ngImport: i0, type: NgxPlanetModule, declarations: [EmptyComponent, PlanetComponentOutlet], imports: [HttpClientModule], exports: [HttpClientModule, EmptyComponent, PlanetComponentOutlet] });
22
+ NgxPlanetModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgxPlanetModule, imports: [HttpClientModule, HttpClientModule] });
23
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: NgxPlanetModule, decorators: [{
24
24
  type: NgModule,
25
25
  args: [{
26
26
  declarations: [EmptyComponent, PlanetComponentOutlet],
@@ -9,19 +9,6 @@ import { setDebugFactory } from './debug';
9
9
  import * as i0 from "@angular/core";
10
10
  import * as i1 from "@angular/router";
11
11
  export class Planet {
12
- constructor(injector, router, planetApplications) {
13
- this.injector = injector;
14
- this.router = router;
15
- if (!this.planetApplicationLoader) {
16
- setApplicationLoader(this.injector.get(PlanetApplicationLoader));
17
- }
18
- if (!this.planetApplicationService) {
19
- setApplicationService(this.injector.get(PlanetApplicationService));
20
- }
21
- if (planetApplications) {
22
- this.registerApps(planetApplications);
23
- }
24
- }
25
12
  get planetApplicationLoader() {
26
13
  return getApplicationLoader();
27
14
  }
@@ -37,6 +24,19 @@ export class Planet {
37
24
  get appsLoadingStart() {
38
25
  return this.planetApplicationLoader.appsLoadingStart;
39
26
  }
27
+ constructor(injector, router, planetApplications) {
28
+ this.injector = injector;
29
+ this.router = router;
30
+ if (!this.planetApplicationLoader) {
31
+ setApplicationLoader(this.injector.get(PlanetApplicationLoader));
32
+ }
33
+ if (!this.planetApplicationService) {
34
+ setApplicationService(this.injector.get(PlanetApplicationService));
35
+ }
36
+ if (planetApplications) {
37
+ this.registerApps(planetApplications);
38
+ }
39
+ }
40
40
  setOptions(options) {
41
41
  this.planetApplicationLoader.setOptions(options);
42
42
  if (options.debugFactory) {
@@ -75,9 +75,9 @@ export class Planet {
75
75
  this.subscription?.unsubscribe();
76
76
  }
77
77
  }
78
- Planet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: Planet, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: PLANET_APPLICATIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
79
- Planet.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: Planet, providedIn: 'root' });
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImport: i0, type: Planet, decorators: [{
78
+ Planet.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: Planet, deps: [{ token: i0.Injector }, { token: i1.Router }, { token: PLANET_APPLICATIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
79
+ Planet.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: Planet, providedIn: 'root' });
80
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.1.2", ngImport: i0, type: Planet, decorators: [{
81
81
  type: Injectable,
82
82
  args: [{
83
83
  providedIn: 'root'
@@ -88,4 +88,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.1.2", ngImpor
88
88
  }, {
89
89
  type: Optional
90
90
  }] }]; } });
91
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9wbGFuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBb0MsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQ0gsdUJBQXVCLEVBRzFCLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUNILHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFLMUMsTUFBTSxPQUFPLE1BQU07SUF1QmYsWUFDWSxRQUFrQixFQUNsQixNQUFjLEVBQ21CLGtCQUF1QztRQUZ4RSxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFHdEIsSUFBSSxDQUFDLElBQUksQ0FBQyx1QkFBdUIsRUFBRTtZQUMvQixvQkFBb0IsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLENBQUM7U0FDcEU7UUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFO1lBQ2hDLHFCQUFxQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLHdCQUF3QixDQUFDLENBQUMsQ0FBQztTQUN0RTtRQUVELElBQUksa0JBQWtCLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1NBQ3pDO0lBQ0wsQ0FBQztJQXJDRCxJQUFZLHVCQUF1QjtRQUMvQixPQUFPLG9CQUFvQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVksd0JBQXdCO1FBQ2hDLE9BQU8scUJBQXFCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7SUFDekQsQ0FBQztJQXFCRCxVQUFVLENBQUMsT0FBK0I7UUFDdEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDdEIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBSSxJQUFPO1FBQ3ZCLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQVMsR0FBOEI7UUFDOUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWSxDQUFTLElBQWlDO1FBQ2xELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFZO1FBQ3RCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFrQzthQUM5RCxJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsT0FBTyxLQUFLLFlBQVksYUFBYSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLE9BQVEsS0FBdUIsQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQzVCLG9CQUFvQixFQUFFLENBQ3pCO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQztnQkFDakMsR0FBRyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzttR0F4RlEsTUFBTSxnRUEwQkgsbUJBQW1CO3VHQTFCdEIsTUFBTSxjQUZILE1BQU07MkZBRVQsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQTJCUSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJFdmVudCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBsYW5ldE9wdGlvbnMsIFBsYW5ldEFwcGxpY2F0aW9uLCBQTEFORVRfQVBQTElDQVRJT05TIH0gZnJvbSAnLi9wbGFuZXQuY2xhc3MnO1xuaW1wb3J0IHsgUGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi9wbGFuZXQtYXBwbGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICAgIFBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLFxuICAgIEFwcHNMb2FkaW5nU3RhcnRFdmVudCxcbiAgICBBcHBTdGF0dXNDaGFuZ2VFdmVudFxufSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi1sb2FkZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN0YXJ0V2l0aCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgc2V0UG9ydGFsQXBwbGljYXRpb25EYXRhLFxuICAgIHNldEFwcGxpY2F0aW9uTG9hZGVyLFxuICAgIHNldEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBnZXRBcHBsaWNhdGlvbkxvYWRlcixcbiAgICBnZXRBcHBsaWNhdGlvblNlcnZpY2Vcbn0gZnJvbSAnLi9nbG9iYWwtcGxhbmV0JztcbmltcG9ydCB7IHNldERlYnVnRmFjdG9yeSB9IGZyb20gJy4vZGVidWcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYW5ldCB7XG4gICAgcHJpdmF0ZSBnZXQgcGxhbmV0QXBwbGljYXRpb25Mb2FkZXIoKTogUGxhbmV0QXBwbGljYXRpb25Mb2FkZXIge1xuICAgICAgICByZXR1cm4gZ2V0QXBwbGljYXRpb25Mb2FkZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UoKSB7XG4gICAgICAgIHJldHVybiBnZXRBcHBsaWNhdGlvblNlcnZpY2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvYWRpbmdEb25lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5sb2FkaW5nRG9uZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFwcFN0YXR1c0NoYW5nZSgpOiBPYnNlcnZhYmxlPEFwcFN0YXR1c0NoYW5nZUV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLmFwcFN0YXR1c0NoYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFwcHNMb2FkaW5nU3RhcnQoKTogT2JzZXJ2YWJsZTxBcHBzTG9hZGluZ1N0YXJ0RXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25Mb2FkZXIuYXBwc0xvYWRpbmdTdGFydDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChQTEFORVRfQVBQTElDQVRJT05TKSBAT3B0aW9uYWwoKSBwbGFuZXRBcHBsaWNhdGlvbnM6IFBsYW5ldEFwcGxpY2F0aW9uW11cbiAgICApIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyKSB7XG4gICAgICAgICAgICBzZXRBcHBsaWNhdGlvbkxvYWRlcih0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvbkxvYWRlcikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5wbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICAgIHNldEFwcGxpY2F0aW9uU2VydmljZSh0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwbGFuZXRBcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJBcHBzKHBsYW5ldEFwcGxpY2F0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRPcHRpb25zKG9wdGlvbnM6IFBhcnRpYWw8UGxhbmV0T3B0aW9ucz4pIHtcbiAgICAgICAgdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5kZWJ1Z0ZhY3RvcnkpIHtcbiAgICAgICAgICAgIHNldERlYnVnRmFjdG9yeShvcHRpb25zLmRlYnVnRmFjdG9yeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRQb3J0YWxBcHBEYXRhPFQ+KGRhdGE6IFQpIHtcbiAgICAgICAgc2V0UG9ydGFsQXBwbGljYXRpb25EYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQXBwPFRFeHRyYT4oYXBwOiBQbGFuZXRBcHBsaWNhdGlvbjxURXh0cmE+KSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJBcHBzPFRFeHRyYT4oYXBwczogUGxhbmV0QXBwbGljYXRpb248VEV4dHJhPltdKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcHMpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXJBcHAobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnVucmVnaXN0ZXIobmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0QXBwcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcHMoKTtcbiAgICB9XG5cbiAgICBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSAodGhpcy5yb3V0ZXIuZXZlbnRzIGFzIE9ic2VydmFibGU8Um91dGVyRXZlbnQ+KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGV2ZW50IGFzIE5hdmlnYXRpb25FbmQpLnVybEFmdGVyUmVkaXJlY3RzIHx8IGV2ZW50LnVybDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobG9jYXRpb24ucGF0aG5hbWUpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5yZXJvdXRlKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0b3AoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==
91
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9wbGFuZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN2RSxPQUFPLEVBQUUsYUFBYSxFQUFlLE1BQU0sRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ3JFLE9BQU8sRUFBb0MsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RixPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUNwRixPQUFPLEVBQ0gsdUJBQXVCLEVBRzFCLE1BQU0seUNBQXlDLENBQUM7QUFFakQsT0FBTyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUUsT0FBTyxFQUNILHdCQUF3QixFQUN4QixvQkFBb0IsRUFDcEIscUJBQXFCLEVBQ3JCLG9CQUFvQixFQUNwQixxQkFBcUIsRUFDeEIsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sU0FBUyxDQUFDOzs7QUFLMUMsTUFBTSxPQUFPLE1BQU07SUFDZixJQUFZLHVCQUF1QjtRQUMvQixPQUFPLG9CQUFvQixFQUFFLENBQUM7SUFDbEMsQ0FBQztJQUVELElBQVksd0JBQXdCO1FBQ2hDLE9BQU8scUJBQXFCLEVBQUUsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxXQUFXO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLFdBQVcsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBVyxlQUFlO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLHVCQUF1QixDQUFDLGVBQWUsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBVyxnQkFBZ0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsZ0JBQWdCLENBQUM7SUFDekQsQ0FBQztJQUlELFlBQ1ksUUFBa0IsRUFDbEIsTUFBYyxFQUNtQixrQkFBdUM7UUFGeEUsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixXQUFNLEdBQU4sTUFBTSxDQUFRO1FBR3RCLElBQUksQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUU7WUFDL0Isb0JBQW9CLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDO1NBQ3BFO1FBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyx3QkFBd0IsRUFBRTtZQUNoQyxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDLENBQUM7U0FDdEU7UUFFRCxJQUFJLGtCQUFrQixFQUFFO1lBQ3BCLElBQUksQ0FBQyxZQUFZLENBQUMsa0JBQWtCLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxVQUFVLENBQUMsT0FBK0I7UUFDdEMsSUFBSSxDQUFDLHVCQUF1QixDQUFDLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNqRCxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUU7WUFDdEIsZUFBZSxDQUFDLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQztTQUN6QztJQUNMLENBQUM7SUFFRCxnQkFBZ0IsQ0FBSSxJQUFPO1FBQ3ZCLHdCQUF3QixDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ25DLENBQUM7SUFFRCxXQUFXLENBQVMsR0FBOEI7UUFDOUMsSUFBSSxDQUFDLHdCQUF3QixDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWSxDQUFTLElBQWlDO1FBQ2xELElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDakQsQ0FBQztJQUVELGFBQWEsQ0FBQyxJQUFZO1FBQ3RCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuRCxDQUFDO0lBRUQsS0FBSztRQUNELElBQUksQ0FBQyxZQUFZLEdBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFrQzthQUM5RCxJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ1gsT0FBTyxLQUFLLFlBQVksYUFBYSxDQUFDO1FBQzFDLENBQUMsQ0FBQyxFQUNGLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUNSLE9BQVEsS0FBdUIsQ0FBQyxpQkFBaUIsSUFBSSxLQUFLLENBQUMsR0FBRyxDQUFDO1FBQ25FLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLEVBQzVCLG9CQUFvQixFQUFFLENBQ3pCO2FBQ0EsU0FBUyxDQUFDLENBQUMsR0FBVyxFQUFFLEVBQUU7WUFDdkIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE9BQU8sQ0FBQztnQkFDakMsR0FBRyxFQUFFLEdBQUc7YUFDWCxDQUFDLENBQUM7UUFDUCxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsQ0FBQztJQUNyQyxDQUFDOzttR0F4RlEsTUFBTSxnRUEwQkgsbUJBQW1CO3VHQTFCdEIsTUFBTSxjQUZILE1BQU07MkZBRVQsTUFBTTtrQkFIbEIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQTJCUSxNQUFNOzJCQUFDLG1CQUFtQjs7MEJBQUcsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIEluamVjdCwgT3B0aW9uYWwsIEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBOYXZpZ2F0aW9uRW5kLCBSb3V0ZXJFdmVudCwgUm91dGVyIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IFBsYW5ldE9wdGlvbnMsIFBsYW5ldEFwcGxpY2F0aW9uLCBQTEFORVRfQVBQTElDQVRJT05TIH0gZnJvbSAnLi9wbGFuZXQuY2xhc3MnO1xuaW1wb3J0IHsgUGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9hcHBsaWNhdGlvbi9wbGFuZXQtYXBwbGljYXRpb24uc2VydmljZSc7XG5pbXBvcnQge1xuICAgIFBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLFxuICAgIEFwcHNMb2FkaW5nU3RhcnRFdmVudCxcbiAgICBBcHBTdGF0dXNDaGFuZ2VFdmVudFxufSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi1sb2FkZXInO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIHN0YXJ0V2l0aCwgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7XG4gICAgc2V0UG9ydGFsQXBwbGljYXRpb25EYXRhLFxuICAgIHNldEFwcGxpY2F0aW9uTG9hZGVyLFxuICAgIHNldEFwcGxpY2F0aW9uU2VydmljZSxcbiAgICBnZXRBcHBsaWNhdGlvbkxvYWRlcixcbiAgICBnZXRBcHBsaWNhdGlvblNlcnZpY2Vcbn0gZnJvbSAnLi9nbG9iYWwtcGxhbmV0JztcbmltcG9ydCB7IHNldERlYnVnRmFjdG9yeSB9IGZyb20gJy4vZGVidWcnO1xuXG5ASW5qZWN0YWJsZSh7XG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBsYW5ldCB7XG4gICAgcHJpdmF0ZSBnZXQgcGxhbmV0QXBwbGljYXRpb25Mb2FkZXIoKTogUGxhbmV0QXBwbGljYXRpb25Mb2FkZXIge1xuICAgICAgICByZXR1cm4gZ2V0QXBwbGljYXRpb25Mb2FkZXIoKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldCBwbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UoKSB7XG4gICAgICAgIHJldHVybiBnZXRBcHBsaWNhdGlvblNlcnZpY2UoKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGxvYWRpbmdEb25lKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5sb2FkaW5nRG9uZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFwcFN0YXR1c0NoYW5nZSgpOiBPYnNlcnZhYmxlPEFwcFN0YXR1c0NoYW5nZUV2ZW50PiB7XG4gICAgICAgIHJldHVybiB0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyLmFwcFN0YXR1c0NoYW5nZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IGFwcHNMb2FkaW5nU3RhcnQoKTogT2JzZXJ2YWJsZTxBcHBzTG9hZGluZ1N0YXJ0RXZlbnQ+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25Mb2FkZXIuYXBwc0xvYWRpbmdTdGFydDtcbiAgICB9XG5cbiAgICBwcml2YXRlIHN1YnNjcmlwdGlvbj86IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlcixcbiAgICAgICAgQEluamVjdChQTEFORVRfQVBQTElDQVRJT05TKSBAT3B0aW9uYWwoKSBwbGFuZXRBcHBsaWNhdGlvbnM6IFBsYW5ldEFwcGxpY2F0aW9uW11cbiAgICApIHtcbiAgICAgICAgaWYgKCF0aGlzLnBsYW5ldEFwcGxpY2F0aW9uTG9hZGVyKSB7XG4gICAgICAgICAgICBzZXRBcHBsaWNhdGlvbkxvYWRlcih0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvbkxvYWRlcikpO1xuICAgICAgICB9XG4gICAgICAgIGlmICghdGhpcy5wbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpIHtcbiAgICAgICAgICAgIHNldEFwcGxpY2F0aW9uU2VydmljZSh0aGlzLmluamVjdG9yLmdldChQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UpKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChwbGFuZXRBcHBsaWNhdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJBcHBzKHBsYW5ldEFwcGxpY2F0aW9ucyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRPcHRpb25zKG9wdGlvbnM6IFBhcnRpYWw8UGxhbmV0T3B0aW9ucz4pIHtcbiAgICAgICAgdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5zZXRPcHRpb25zKG9wdGlvbnMpO1xuICAgICAgICBpZiAob3B0aW9ucy5kZWJ1Z0ZhY3RvcnkpIHtcbiAgICAgICAgICAgIHNldERlYnVnRmFjdG9yeShvcHRpb25zLmRlYnVnRmFjdG9yeSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBzZXRQb3J0YWxBcHBEYXRhPFQ+KGRhdGE6IFQpIHtcbiAgICAgICAgc2V0UG9ydGFsQXBwbGljYXRpb25EYXRhKGRhdGEpO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyQXBwPFRFeHRyYT4oYXBwOiBQbGFuZXRBcHBsaWNhdGlvbjxURXh0cmE+KSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcCk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJBcHBzPFRFeHRyYT4oYXBwczogUGxhbmV0QXBwbGljYXRpb248VEV4dHJhPltdKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnJlZ2lzdGVyKGFwcHMpO1xuICAgIH1cblxuICAgIHVucmVnaXN0ZXJBcHAobmFtZTogc3RyaW5nKSB7XG4gICAgICAgIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLnVucmVnaXN0ZXIobmFtZSk7XG4gICAgfVxuXG4gICAgZ2V0QXBwcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMucGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcHMoKTtcbiAgICB9XG5cbiAgICBzdGFydCgpIHtcbiAgICAgICAgdGhpcy5zdWJzY3JpcHRpb24gPSAodGhpcy5yb3V0ZXIuZXZlbnRzIGFzIE9ic2VydmFibGU8Um91dGVyRXZlbnQ+KVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgICAgZmlsdGVyKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50IGluc3RhbmNlb2YgTmF2aWdhdGlvbkVuZDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gKGV2ZW50IGFzIE5hdmlnYXRpb25FbmQpLnVybEFmdGVyUmVkaXJlY3RzIHx8IGV2ZW50LnVybDtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgobG9jYXRpb24ucGF0aG5hbWUpLFxuICAgICAgICAgICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHVybDogc3RyaW5nKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5wbGFuZXRBcHBsaWNhdGlvbkxvYWRlci5yZXJvdXRlKHtcbiAgICAgICAgICAgICAgICAgICAgdXJsOiB1cmxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgIH0pO1xuICAgIH1cblxuICAgIHN0b3AoKSB7XG4gICAgICAgIHRoaXMuc3Vic2NyaXB0aW9uPy51bnN1YnNjcmliZSgpO1xuICAgIH1cbn1cbiJdfQ==