@worktile/planet 12.1.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.
Files changed (116) hide show
  1. package/application/planet-application-loader.d.ts +70 -0
  2. package/application/planet-application-loader.d.ts.map +1 -0
  3. package/application/planet-application-loader.ngfactory.d.ts.map +1 -0
  4. package/application/planet-application-ref.d.ts +36 -0
  5. package/application/planet-application-ref.d.ts.map +1 -0
  6. package/application/planet-application.service.d.ts +19 -0
  7. package/application/planet-application.service.d.ts.map +1 -0
  8. package/application/planet-application.service.ngfactory.d.ts.map +1 -0
  9. package/application/portal-application.d.ts +15 -0
  10. package/application/portal-application.d.ts.map +1 -0
  11. package/assets-loader.d.ts +33 -0
  12. package/assets-loader.d.ts.map +1 -0
  13. package/assets-loader.ngfactory.d.ts.map +1 -0
  14. package/bundles/worktile-planet.umd.js +2552 -0
  15. package/bundles/worktile-planet.umd.js.map +1 -0
  16. package/component/planet-component-loader.d.ts +28 -0
  17. package/component/planet-component-loader.d.ts.map +1 -0
  18. package/component/planet-component-loader.ngfactory.d.ts.map +1 -0
  19. package/component/planet-component-ref.d.ts +8 -0
  20. package/component/planet-component-ref.d.ts.map +1 -0
  21. package/component/plant-component.config.d.ts +10 -0
  22. package/component/plant-component.config.d.ts.map +1 -0
  23. package/debug.d.ts +22 -0
  24. package/debug.d.ts.map +1 -0
  25. package/empty/empty.component.d.ts +3 -0
  26. package/empty/empty.component.d.ts.map +1 -0
  27. package/empty/empty.component.ngfactory.d.ts.map +1 -0
  28. package/esm2015/application/planet-application-loader.js +452 -0
  29. package/esm2015/application/planet-application-ref.js +94 -0
  30. package/esm2015/application/planet-application.service.js +87 -0
  31. package/esm2015/application/portal-application.js +16 -0
  32. package/esm2015/assets-loader.js +217 -0
  33. package/esm2015/component/planet-component-loader.js +155 -0
  34. package/esm2015/component/planet-component-ref.js +3 -0
  35. package/esm2015/component/plant-component.config.js +7 -0
  36. package/esm2015/debug.js +33 -0
  37. package/esm2015/empty/empty.component.js +10 -0
  38. package/esm2015/global-event-dispatcher.js +71 -0
  39. package/esm2015/global-planet.js +51 -0
  40. package/esm2015/helpers.js +119 -0
  41. package/esm2015/module.js +27 -0
  42. package/esm2015/planet.class.js +9 -0
  43. package/esm2015/planet.js +90 -0
  44. package/esm2015/public-api.js +18 -0
  45. package/esm2015/sandbox/constants.js +7 -0
  46. package/esm2015/sandbox/exec.js +15 -0
  47. package/esm2015/sandbox/index.js +20 -0
  48. package/esm2015/sandbox/proxy/patches/document.js +12 -0
  49. package/esm2015/sandbox/proxy/patches/eventListener.js +41 -0
  50. package/esm2015/sandbox/proxy/patches/index.js +11 -0
  51. package/esm2015/sandbox/proxy/patches/storage.js +40 -0
  52. package/esm2015/sandbox/proxy/patches/timer.js +43 -0
  53. package/esm2015/sandbox/proxy/proxies/common.js +132 -0
  54. package/esm2015/sandbox/proxy/proxies/document.js +126 -0
  55. package/esm2015/sandbox/proxy/proxies/window.js +155 -0
  56. package/esm2015/sandbox/proxy/proxy-sandbox.js +49 -0
  57. package/esm2015/sandbox/proxy/types.js +2 -0
  58. package/esm2015/sandbox/sandbox.js +7 -0
  59. package/esm2015/sandbox/snapshot/snapshot-sandbox.js +12 -0
  60. package/esm2015/sandbox/types.js +2 -0
  61. package/esm2015/worktile-planet.js +6 -0
  62. package/fesm2015/worktile-planet.js +2036 -0
  63. package/fesm2015/worktile-planet.js.map +1 -0
  64. package/global-event-dispatcher.d.ts +20 -0
  65. package/global-event-dispatcher.d.ts.map +1 -0
  66. package/global-event-dispatcher.ngfactory.d.ts.map +1 -0
  67. package/global-planet.d.ts +23 -0
  68. package/global-planet.d.ts.map +1 -0
  69. package/helpers.d.ts +39 -0
  70. package/helpers.d.ts.map +1 -0
  71. package/module.d.ts +6 -0
  72. package/module.d.ts.map +1 -0
  73. package/module.ngfactory.d.ts.map +1 -0
  74. package/package.json +21 -0
  75. package/planet.class.d.ts +38 -0
  76. package/planet.class.d.ts.map +1 -0
  77. package/planet.d.ts +25 -0
  78. package/planet.d.ts.map +1 -0
  79. package/planet.ngfactory.d.ts.map +1 -0
  80. package/public-api.d.ts +15 -0
  81. package/public-api.d.ts.map +1 -0
  82. package/sandbox/constants.d.ts +7 -0
  83. package/sandbox/constants.d.ts.map +1 -0
  84. package/sandbox/exec.d.ts +3 -0
  85. package/sandbox/exec.d.ts.map +1 -0
  86. package/sandbox/index.d.ts +7 -0
  87. package/sandbox/index.d.ts.map +1 -0
  88. package/sandbox/proxy/patches/document.d.ts +3 -0
  89. package/sandbox/proxy/patches/document.d.ts.map +1 -0
  90. package/sandbox/proxy/patches/eventListener.d.ts +3 -0
  91. package/sandbox/proxy/patches/eventListener.d.ts.map +1 -0
  92. package/sandbox/proxy/patches/index.d.ts +3 -0
  93. package/sandbox/proxy/patches/index.d.ts.map +1 -0
  94. package/sandbox/proxy/patches/storage.d.ts +15 -0
  95. package/sandbox/proxy/patches/storage.d.ts.map +1 -0
  96. package/sandbox/proxy/patches/timer.d.ts +3 -0
  97. package/sandbox/proxy/patches/timer.d.ts.map +1 -0
  98. package/sandbox/proxy/proxies/common.d.ts +13 -0
  99. package/sandbox/proxy/proxies/common.d.ts.map +1 -0
  100. package/sandbox/proxy/proxies/document.d.ts +14 -0
  101. package/sandbox/proxy/proxies/document.d.ts.map +1 -0
  102. package/sandbox/proxy/proxies/window.d.ts +13 -0
  103. package/sandbox/proxy/proxies/window.d.ts.map +1 -0
  104. package/sandbox/proxy/proxy-sandbox.d.ts +16 -0
  105. package/sandbox/proxy/proxy-sandbox.d.ts.map +1 -0
  106. package/sandbox/proxy/types.d.ts +14 -0
  107. package/sandbox/proxy/types.d.ts.map +1 -0
  108. package/sandbox/sandbox.d.ts +12 -0
  109. package/sandbox/sandbox.d.ts.map +1 -0
  110. package/sandbox/snapshot/snapshot-sandbox.d.ts +9 -0
  111. package/sandbox/snapshot/snapshot-sandbox.d.ts.map +1 -0
  112. package/sandbox/types.d.ts +2 -0
  113. package/sandbox/types.d.ts.map +1 -0
  114. package/worktile-planet.d.ts +6 -0
  115. package/worktile-planet.d.ts.map +1 -0
  116. package/worktile-planet.metadata.json +1 -0
@@ -0,0 +1,155 @@
1
+ import { Injectable, ApplicationRef, NgModuleRef, NgZone, Inject } from '@angular/core';
2
+ import { DomPortalOutlet, ComponentPortal, PortalInjector } from '@angular/cdk/portal';
3
+ import { PlanetComponentRef } from './planet-component-ref';
4
+ import { coerceArray } from '../helpers';
5
+ import { map, shareReplay, delayWhen } from 'rxjs/operators';
6
+ import { of, timer } from 'rxjs';
7
+ import { DOCUMENT } from '@angular/common';
8
+ import { globalPlanet, getApplicationLoader, getApplicationService } from '../global-planet';
9
+ import * as i0 from "@angular/core";
10
+ import * as i1 from "@angular/common";
11
+ const componentWrapperClass = 'planet-component-wrapper';
12
+ export class PlanetComponentLoader {
13
+ constructor(applicationRef, ngModuleRef, ngZone, document) {
14
+ this.applicationRef = applicationRef;
15
+ this.ngModuleRef = ngModuleRef;
16
+ this.ngZone = ngZone;
17
+ this.document = document;
18
+ this.domPortalOutletCache = new WeakMap();
19
+ }
20
+ get applicationLoader() {
21
+ return getApplicationLoader();
22
+ }
23
+ get applicationService() {
24
+ return getApplicationService();
25
+ }
26
+ getPlantAppRef(name) {
27
+ if (globalPlanet.apps[name] && globalPlanet.apps[name].appModuleRef) {
28
+ return of(globalPlanet.apps[name]);
29
+ }
30
+ else {
31
+ const app = this.applicationService.getAppByName(name);
32
+ return this.applicationLoader.preload(app, true).pipe(map(() => {
33
+ return globalPlanet.apps[name];
34
+ }));
35
+ }
36
+ }
37
+ createInjector(appModuleRef, componentRef) {
38
+ const injectionTokens = new WeakMap([[PlanetComponentRef, componentRef]]);
39
+ const defaultInjector = appModuleRef.injector;
40
+ return new PortalInjector(defaultInjector, injectionTokens);
41
+ }
42
+ getContainerElement(config) {
43
+ if (!config.container) {
44
+ throw new Error(`config 'container' cannot be null`);
45
+ }
46
+ else {
47
+ if (config.container.nativeElement) {
48
+ return config.container.nativeElement;
49
+ }
50
+ else {
51
+ return config.container;
52
+ }
53
+ }
54
+ }
55
+ createWrapperElement(config) {
56
+ const container = this.getContainerElement(config);
57
+ const element = this.document.createElement('div');
58
+ const subApp = this.applicationService.getAppByName(this.ngModuleRef.instance.appName);
59
+ element.classList.add(componentWrapperClass);
60
+ element.setAttribute('planet-inline', '');
61
+ if (config.wrapperClass) {
62
+ element.classList.add(config.wrapperClass);
63
+ }
64
+ if (subApp && subApp.stylePrefix) {
65
+ element.classList.add(subApp.stylePrefix);
66
+ }
67
+ container.appendChild(element);
68
+ return element;
69
+ }
70
+ attachComponent(plantComponent, appModuleRef, config) {
71
+ const plantComponentRef = new PlanetComponentRef();
72
+ const componentFactoryResolver = appModuleRef.componentFactoryResolver;
73
+ const appRef = this.applicationRef;
74
+ const injector = this.createInjector(appModuleRef, plantComponentRef);
75
+ const wrapper = this.createWrapperElement(config);
76
+ let portalOutlet = this.domPortalOutletCache.get(wrapper);
77
+ if (portalOutlet) {
78
+ portalOutlet.detach();
79
+ }
80
+ else {
81
+ portalOutlet = new DomPortalOutlet(wrapper, componentFactoryResolver, appRef, injector);
82
+ this.domPortalOutletCache.set(wrapper, portalOutlet);
83
+ }
84
+ const componentPortal = new ComponentPortal(plantComponent.component, null);
85
+ const componentRef = portalOutlet.attachComponentPortal(componentPortal);
86
+ if (config.initialState) {
87
+ Object.assign(componentRef.instance, config.initialState);
88
+ }
89
+ plantComponentRef.componentInstance = componentRef.instance;
90
+ plantComponentRef.componentRef = componentRef;
91
+ plantComponentRef.wrapperElement = wrapper;
92
+ plantComponentRef.dispose = () => {
93
+ this.domPortalOutletCache.delete(wrapper);
94
+ portalOutlet.dispose();
95
+ };
96
+ return plantComponentRef;
97
+ }
98
+ registerComponentFactory(componentOrComponents) {
99
+ const app = this.ngModuleRef.instance.appName;
100
+ this.getPlantAppRef(app).subscribe(appRef => {
101
+ appRef.registerComponentFactory((componentName, config) => {
102
+ const components = coerceArray(componentOrComponents);
103
+ const component = components.find(item => item.name === componentName);
104
+ if (component) {
105
+ return this.ngZone.run(() => {
106
+ const componentRef = this.attachComponent(component, appRef.appModuleRef, config);
107
+ return componentRef;
108
+ });
109
+ }
110
+ else {
111
+ throw Error(`unregistered component ${componentName} in app ${app}`);
112
+ }
113
+ });
114
+ });
115
+ }
116
+ register(components) {
117
+ setTimeout(() => {
118
+ this.registerComponentFactory(components);
119
+ });
120
+ }
121
+ load(app, componentName, config) {
122
+ const result = this.getPlantAppRef(app).pipe(delayWhen(appRef => {
123
+ if (appRef.getComponentFactory()) {
124
+ return of();
125
+ }
126
+ else {
127
+ // Because register use 'setTimeout',so timer 20
128
+ return timer(20);
129
+ }
130
+ }), map(appRef => {
131
+ const componentFactory = appRef.getComponentFactory();
132
+ if (componentFactory) {
133
+ return componentFactory(componentName, config);
134
+ }
135
+ else {
136
+ throw new Error(`${app}'s component(${componentName}) is not registered`);
137
+ }
138
+ }), shareReplay());
139
+ result.subscribe();
140
+ return result;
141
+ }
142
+ }
143
+ PlanetComponentLoader.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlanetComponentLoader_Factory() { return new PlanetComponentLoader(i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.NgModuleRef), i0.ɵɵinject(i0.NgZone), i0.ɵɵinject(i1.DOCUMENT)); }, token: PlanetComponentLoader, providedIn: "root" });
144
+ PlanetComponentLoader.decorators = [
145
+ { type: Injectable, args: [{
146
+ providedIn: 'root'
147
+ },] }
148
+ ];
149
+ PlanetComponentLoader.ctorParameters = () => [
150
+ { type: ApplicationRef },
151
+ { type: NgModuleRef },
152
+ { type: NgZone },
153
+ { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] }
154
+ ];
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWNvbXBvbmVudC1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2NvbXBvbmVudC9wbGFuZXQtY29tcG9uZW50LWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxXQUFXLEVBQUUsTUFBTSxFQUFjLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNwRyxPQUFPLEVBQWlCLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFdEcsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFFNUQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUN6QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBMkMsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEcsT0FBTyxFQUFFLEVBQUUsRUFBd0IsS0FBSyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMzQyxPQUFPLEVBQUUsWUFBWSxFQUFFLG9CQUFvQixFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7OztBQUU3RixNQUFNLHFCQUFxQixHQUFHLDBCQUEwQixDQUFDO0FBVXpELE1BQU0sT0FBTyxxQkFBcUI7SUFXOUIsWUFDWSxjQUE4QixFQUM5QixXQUE2QixFQUM3QixNQUFjLEVBQ0ksUUFBYTtRQUgvQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWtCO1FBQzdCLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDSSxhQUFRLEdBQVIsUUFBUSxDQUFLO1FBZG5DLHlCQUFvQixHQUFHLElBQUksT0FBTyxFQUF3QixDQUFDO0lBZWhFLENBQUM7SUFiSixJ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RUFDckIsTUFBbUM7UUFFbkMsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQ3hDLFNBQVMsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNmLElBQUksTUFBTSxDQUFDLG1CQUFtQixFQUFFLEVBQUU7Z0JBQzlCLE9BQU8sRUFBRSxFQUFFLENBQUM7YUFDZjtpQkFBTTtnQkFDSCxnREFBZ0Q7Z0JBQ2hELE9BQU8sS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2FBQ3BCO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1QsTUFBTSxnQkFBZ0IsR0FBRyxNQUFNLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztZQUN0RCxJQUFJLGdCQUFnQixFQUFFO2dCQUNsQixPQUFPLGdCQUFnQixDQUFlLGFBQWEsRUFBRSxNQUFNLENBQUMsQ0FBQzthQUNoRTtpQkFBTTtnQkFDSCxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsR0FBRyxnQkFBZ0IsYUFBYSxxQkFBcUIsQ0FBQyxDQUFDO2FBQzdFO1FBQ0wsQ0FBQyxDQUFDLEVBQ0YsV0FBVyxFQUFFLENBQ2hCLENBQUM7UUFDRixNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7UUFDbkIsT0FBTyxNQUFNLENBQUM7SUFDbEIsQ0FBQzs7OztZQXpKSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQXBCb0IsY0FBYztZQUFFLFdBQVc7WUFBRSxNQUFNOzRDQW9DL0MsTUFBTSxTQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlLCBBcHBsaWNhdGlvblJlZiwgTmdNb2R1bGVSZWYsIE5nWm9uZSwgRWxlbWVudFJlZiwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21wb25lbnRUeXBlLCBEb21Qb3J0YWxPdXRsZXQsIENvbXBvbmVudFBvcnRhbCwgUG9ydGFsSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jZGsvcG9ydGFsJztcbmltcG9ydCB7IFBsYW5ldEFwcGxpY2F0aW9uUmVmIH0gZnJvbSAnLi4vYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLXJlZic7XG5pbXBvcnQgeyBQbGFuZXRDb21wb25lbnRSZWYgfSBmcm9tICcuL3BsYW5ldC1jb21wb25lbnQtcmVmJztcbmltcG9ydCB7IFBsYW50Q29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi9wbGFudC1jb21wb25lbnQuY29uZmlnJztcbmltcG9ydCB7IGNvZXJjZUFycmF5IH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBmaW5hbGl6ZSwgZGVib3VuY2UsIGZpbHRlciwgdGFrZSwgZGVsYXksIGRlbGF5V2hlbiB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IG9mLCBPYnNlcnZhYmxlLCBpbnRlcnZhbCwgdGltZXIgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IERPQ1VNRU5UIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IGdsb2JhbFBsYW5ldCwgZ2V0QXBwbGljYXRpb25Mb2FkZXIsIGdldEFwcGxpY2F0aW9uU2VydmljZSB9IGZyb20gJy4uL2dsb2JhbC1wbGFuZXQnO1xuXG5jb25zdCBjb21wb25lbnRXcmFwcGVyQ2xhc3MgPSAncGxhbmV0LWNvbXBvbmVudC13cmFwcGVyJztcblxuZXhwb3J0IGludGVyZmFjZSBQbGFuZXRDb21wb25lbnQ8VCA9IGFueT4ge1xuICAgIG5hbWU6IHN0cmluZztcbiAgICBjb21wb25lbnQ6IENvbXBvbmVudFR5cGU8VD47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgUGxhbmV0Q29tcG9uZW50TG9hZGVyIHtcbiAgICBwcml2YXRlIGRvbVBvcnRhbE91dGxldENhY2hlID0gbmV3IFdlYWtNYXA8YW55LCBEb21Qb3J0YWxPdXRsZXQ+KCk7XG5cbiAgICBwcml2YXRlIGdldCBhcHBsaWNhdGlvbkxvYWRlcigpIHtcbiAgICAgICAgcmV0dXJuIGdldEFwcGxpY2F0aW9uTG9hZGVyKCk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXQgYXBwbGljYXRpb25TZXJ2aWNlKCkge1xuICAgICAgICByZXR1cm4gZ2V0QXBwbGljYXRpb25TZXJ2aWNlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBwcml2YXRlIG5nTW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+LFxuICAgICAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgICAgICBASW5qZWN0KERPQ1VNRU5UKSBwcml2YXRlIGRvY3VtZW50OiBhbnlcbiAgICApIHt9XG5cbiAgICBwcml2YXRlIGdldFBsYW50QXBwUmVmKG5hbWU6IHN0cmluZyk6IE9ic2VydmFibGU8UGxhbmV0QXBwbGljYXRpb25SZWY+IHtcbiAgICAgICAgaWYgKGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdICYmIGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdLmFwcE1vZHVsZVJlZikge1xuICAgICAgICAgICAgcmV0dXJuIG9mKGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGFwcCA9IHRoaXMuYXBwbGljYXRpb25TZXJ2aWNlLmdldEFwcEJ5TmFtZShuYW1lKTtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmFwcGxpY2F0aW9uTG9hZGVyLnByZWxvYWQoYXBwLCB0cnVlKS5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBnbG9iYWxQbGFuZXQuYXBwc1tuYW1lXTtcbiAgICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgY3JlYXRlSW5qZWN0b3I8VERhdGE+KFxuICAgICAgICBhcHBNb2R1bGVSZWY6IE5nTW9kdWxlUmVmPGFueT4sXG4gICAgICAgIGNvbXBvbmVudFJlZjogUGxhbmV0Q29tcG9uZW50UmVmPFREYXRhPlxuICAgICk6IFBvcnRhbEluamVjdG9yIHtcbiAgICAgICAgY29uc3QgaW5qZWN0aW9uVG9rZW5zID0gbmV3IFdlYWtNYXA8YW55LCBhbnk+KFtbUGxhbmV0Q29tcG9uZW50UmVmLCBjb21wb25lbnRSZWZdXSk7XG4gICAgICAgIGNvbnN0IGRlZmF1bHRJbmplY3RvciA9IGFwcE1vZHVsZVJlZi5pbmplY3RvcjtcbiAgICAgICAgcmV0dXJuIG5ldyBQb3J0YWxJbmplY3RvcihkZWZhdWx0SW5qZWN0b3IsIGluamVjdGlvblRva2Vucyk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRDb250YWluZXJFbGVtZW50KGNvbmZpZzogUGxhbnRDb21wb25lbnRDb25maWcpOiBIVE1MRWxlbWVudCB7XG4gICAgICAgIGlmICghY29uZmlnLmNvbnRhaW5lcikge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBjb25maWcgJ2NvbnRhaW5lcicgY2Fubm90IGJlIG51bGxgKTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGlmICgoY29uZmlnLmNvbnRhaW5lciBhcyBFbGVtZW50UmVmKS5uYXRpdmVFbGVtZW50KSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuIChjb25maWcuY29udGFpbmVyIGFzIEVsZW1lbnRSZWYpLm5hdGl2ZUVsZW1lbnQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBjb25maWcuY29udGFpbmVyIGFzIEhUTUxFbGVtZW50O1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjcmVhdGVXcmFwcGVyRWxlbWVudChjb25maWc6IFBsYW50Q29tcG9uZW50Q29uZmlnKSB7XG4gICAgICAgIGNvbnN0IGNvbnRhaW5lciA9IHRoaXMuZ2V0Q29udGFpbmVyRWxlbWVudChjb25maWcpO1xuICAgICAgICBjb25zdCBlbGVtZW50ID0gdGhpcy5kb2N1bWVudC5jcmVhdGVFbGVtZW50KCdkaXYnKTtcbiAgICAgICAgY29uc3Qgc3ViQXBwID0gdGhpcy5hcHBsaWNhdGlvblNlcnZpY2UuZ2V0QXBwQnlOYW1lKHRoaXMubmdNb2R1bGVSZWYuaW5zdGFuY2UuYXBwTmFtZSk7XG4gICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjb21wb25lbnRXcmFwcGVyQ2xhc3MpO1xuICAgICAgICBlbGVtZW50LnNldEF0dHJpYnV0ZSgncGxhbmV0LWlubGluZScsICcnKTtcbiAgICAgICAgaWYgKGNvbmZpZy53cmFwcGVyQ2xhc3MpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuY2xhc3NMaXN0LmFkZChjb25maWcud3JhcHBlckNsYXNzKTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoc3ViQXBwICYmIHN1YkFwcC5zdHlsZVByZWZpeCkge1xuICAgICAgICAgICAgZWxlbWVudC5jbGFzc0xpc3QuYWRkKHN1YkFwcC5zdHlsZVByZWZpeCk7XG4gICAgICAgIH1cbiAgICAgICAgY29udGFpbmVyLmFwcGVuZENoaWxkKGVsZW1lbnQpO1xuICAgICAgICByZXR1cm4gZWxlbWVudDtcbiAgICB9XG5cbiAgICBwcml2YXRlIGF0dGFjaENvbXBvbmVudDxURGF0YT4oXG4gICAgICAgIHBsYW50Q29tcG9uZW50OiBQbGFuZXRDb21wb25lbnQsXG4gICAgICAgIGFwcE1vZHVsZVJlZjogTmdNb2R1bGVSZWY8YW55PixcbiAgICAgICAgY29uZmlnOiBQbGFudENvbXBvbmVudENvbmZpZ1xuICAgICk6IFBsYW5ldENvbXBvbmVudFJlZjxURGF0YT4ge1xuICAgICAgICBjb25zdCBwbGFudENvbXBvbmVudFJlZiA9IG5ldyBQbGFuZXRDb21wb25lbnRSZWYoKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyID0gYXBwTW9kdWxlUmVmLmNvbXBvbmVudEZhY3RvcnlSZXNvbHZlcjtcbiAgICAgICAgY29uc3QgYXBwUmVmID0gdGhpcy5hcHBsaWNhdGlvblJlZjtcbiAgICAgICAgY29uc3QgaW5qZWN0b3IgPSB0aGlzLmNyZWF0ZUluamVjdG9yPFREYXRhPihhcHBNb2R1bGVSZWYsIHBsYW50Q29tcG9uZW50UmVmKTtcbiAgICAgICAgY29uc3Qgd3JhcHBlciA9IHRoaXMuY3JlYXRlV3JhcHBlckVsZW1lbnQoY29uZmlnKTtcbiAgICAgICAgbGV0IHBvcnRhbE91dGxldCA9IHRoaXMuZG9tUG9ydGFsT3V0bGV0Q2FjaGUuZ2V0KHdyYXBwZXIpO1xuICAgICAgICBpZiAocG9ydGFsT3V0bGV0KSB7XG4gICAgICAgICAgICBwb3J0YWxPdXRsZXQuZGV0YWNoKCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBwb3J0YWxPdXRsZXQgPSBuZXcgRG9tUG9ydGFsT3V0bGV0KHdyYXBwZXIsIGNvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgYXBwUmVmLCBpbmplY3Rvcik7XG4gICAgICAgICAgICB0aGlzLmRvbVBvcnRhbE91dGxldENhY2hlLnNldCh3cmFwcGVyLCBwb3J0YWxPdXRsZXQpO1xuICAgICAgICB9XG4gICAgICAgIGNvbnN0IGNvbXBvbmVudFBvcnRhbCA9IG5ldyBDb21wb25lbnRQb3J0YWwocGxhbnRDb21wb25lbnQuY29tcG9uZW50LCBudWxsKTtcbiAgICAgICAgY29uc3QgY29tcG9uZW50UmVmID0gcG9ydGFsT3V0bGV0LmF0dGFjaENvbXBvbmVudFBvcnRhbDxURGF0YT4oY29tcG9uZW50UG9ydGFsKTtcbiAgICAgICAgaWYgKGNvbmZpZy5pbml0aWFsU3RhdGUpIHtcbiAgICAgICAgICAgIE9iamVjdC5hc3NpZ24oY29tcG9uZW50UmVmLmluc3RhbmNlLCBjb25maWcuaW5pdGlhbFN0YXRlKTtcbiAgICAgICAgfVxuICAgICAgICBwbGFudENvbXBvbmVudFJlZi5jb21wb25lbnRJbnN0YW5jZSA9IGNvbXBvbmVudFJlZi5pbnN0YW5jZTtcbiAgICAgICAgcGxhbnRDb21wb25lbnRSZWYuY29tcG9uZW50UmVmID0gY29tcG9uZW50UmVmO1xuICAgICAgICBwbGFudENvbXBvbmVudFJlZi53cmFwcGVyRWxlbWVudCA9IHdyYXBwZXI7XG4gICAgICAgIHBsYW50Q29tcG9uZW50UmVmLmRpc3Bvc2UgPSAoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmRvbVBvcnRhbE91dGxldENhY2hlLmRlbGV0ZSh3cmFwcGVyKTtcbiAgICAgICAgICAgIHBvcnRhbE91dGxldC5kaXNwb3NlKCk7XG4gICAgICAgIH07XG4gICAgICAgIHJldHVybiBwbGFudENvbXBvbmVudFJlZjtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlZ2lzdGVyQ29tcG9uZW50RmFjdG9yeShjb21wb25lbnRPckNvbXBvbmVudHM6IFBsYW5ldENvbXBvbmVudCB8IFBsYW5ldENvbXBvbmVudFtdKSB7XG4gICAgICAgIGNvbnN0IGFwcCA9IHRoaXMubmdNb2R1bGVSZWYuaW5zdGFuY2UuYXBwTmFtZTtcbiAgICAgICAgdGhpcy5nZXRQbGFudEFwcFJlZihhcHApLnN1YnNjcmliZShhcHBSZWYgPT4ge1xuICAgICAgICAgICAgYXBwUmVmLnJlZ2lzdGVyQ29tcG9uZW50RmFjdG9yeSgoY29tcG9uZW50TmFtZTogc3RyaW5nLCBjb25maWc6IFBsYW50Q29tcG9uZW50Q29uZmlnPGFueT4pID0+IHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRzID0gY29lcmNlQXJyYXkoY29tcG9uZW50T3JDb21wb25lbnRzKTtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBjb21wb25lbnRzLmZpbmQoaXRlbSA9PiBpdGVtLm5hbWUgPT09IGNvbXBvbmVudE5hbWUpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnQpIHtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRSZWYgPSB0aGlzLmF0dGFjaENvbXBvbmVudDxhbnk+KGNvbXBvbmVudCwgYXBwUmVmLmFwcE1vZHVsZVJlZiwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRSZWY7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRocm93IEVycm9yKGB1bnJlZ2lzdGVyZWQgY29tcG9uZW50ICR7Y29tcG9uZW50TmFtZX0gaW4gYXBwICR7YXBwfWApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICByZWdpc3Rlcihjb21wb25lbnRzOiBQbGFuZXRDb21wb25lbnQgfCBQbGFuZXRDb21wb25lbnRbXSkge1xuICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudHMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBsb2FkPFRDb21wID0gdW5rbm93biwgVERhdGEgPSB1bmtub3duPihcbiAgICAgICAgYXBwOiBzdHJpbmcsXG4gICAgICAgIGNvbXBvbmVudE5hbWU6IHN0cmluZyxcbiAgICAgICAgY29uZmlnOiBQbGFudENvbXBvbmVudENvbmZpZzxURGF0YT5cbiAgICApOiBPYnNlcnZhYmxlPFBsYW5ldENvbXBvbmVudFJlZjxUQ29tcD4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gdGhpcy5nZXRQbGFudEFwcFJlZihhcHApLnBpcGUoXG4gICAgICAgICAgICBkZWxheVdoZW4oYXBwUmVmID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoYXBwUmVmLmdldENvbXBvbmVudEZhY3RvcnkoKSkge1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAvLyBCZWNhdXNlIHJlZ2lzdGVyIHVzZSAnc2V0VGltZW91dCcsc28gdGltZXIgMjBcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRpbWVyKDIwKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG1hcChhcHBSZWYgPT4ge1xuICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudEZhY3RvcnkgPSBhcHBSZWYuZ2V0Q29tcG9uZW50RmFjdG9yeSgpO1xuICAgICAgICAgICAgICAgIGlmIChjb21wb25lbnRGYWN0b3J5KSB7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBjb21wb25lbnRGYWN0b3J5PFREYXRhLCBUQ29tcD4oY29tcG9uZW50TmFtZSwgY29uZmlnKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYCR7YXBwfSdzIGNvbXBvbmVudCgke2NvbXBvbmVudE5hbWV9KSBpcyBub3QgcmVnaXN0ZXJlZGApO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoKVxuICAgICAgICApO1xuICAgICAgICByZXN1bHQuc3Vic2NyaWJlKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,3 @@
1
+ export class PlanetComponentRef {
2
+ }
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWNvbXBvbmVudC1yZWYuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2NvbXBvbmVudC9wbGFuZXQtY29tcG9uZW50LXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLE9BQU8sa0JBQWtCO0NBSzlCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50UmVmLCBFbGVtZW50UmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmV4cG9ydCBjbGFzcyBQbGFuZXRDb21wb25lbnRSZWY8VENvbXAgPSBhbnk+IHtcbiAgICB3cmFwcGVyRWxlbWVudDogSFRNTEVsZW1lbnQ7XG4gICAgY29tcG9uZW50SW5zdGFuY2U6IFRDb21wO1xuICAgIGNvbXBvbmVudFJlZjogQ29tcG9uZW50UmVmPFRDb21wPjtcbiAgICBkaXNwb3NlOiAoKSA9PiB2b2lkO1xufVxuIl19
@@ -0,0 +1,7 @@
1
+ export class PlantComponentConfig {
2
+ constructor() {
3
+ /** Data being injected into the child component. */
4
+ this.initialState = null;
5
+ }
6
+ }
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbnQtY29tcG9uZW50LmNvbmZpZy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvY29tcG9uZW50L3BsYW50LWNvbXBvbmVudC5jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsTUFBTSxPQUFPLG9CQUFvQjtJQUFqQztRQUtJLG9EQUFvRDtRQUNwRCxpQkFBWSxHQUFrQixJQUFJLENBQUM7SUFDdkMsQ0FBQztDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVmlld0NvbnRhaW5lclJlZiwgRWxlbWVudFJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgY2xhc3MgUGxhbnRDb21wb25lbnRDb25maWc8VERhdGEgPSBhbnk+IHtcbiAgICAvKiogTG9hZCB0YXJnZXQgY29udGFpbmVyICovXG4gICAgY29udGFpbmVyOiBIVE1MRWxlbWVudCB8IEVsZW1lbnRSZWY8SFRNTEVsZW1lbnQgfCBhbnk+O1xuICAgIC8qKiBDb21wb25lbnQgd3JhcHBlciBjbGFzcy4gKi9cbiAgICB3cmFwcGVyQ2xhc3M/OiBzdHJpbmc7XG4gICAgLyoqIERhdGEgYmVpbmcgaW5qZWN0ZWQgaW50byB0aGUgY2hpbGQgY29tcG9uZW50LiAqL1xuICAgIGluaXRpYWxTdGF0ZT86IFREYXRhIHwgbnVsbCA9IG51bGw7XG59XG4iXX0=
@@ -0,0 +1,33 @@
1
+ import { isFunction } from './helpers';
2
+ /**
3
+ * Debug factory for debug module
4
+ */
5
+ let _debugFactory;
6
+ let _debuggerMap = {};
7
+ export function createDebug(namespace) {
8
+ const key = `planet:${namespace}`;
9
+ return function (formatter, ...args) {
10
+ if (_debugFactory) {
11
+ let debugDebugger = _debuggerMap[key];
12
+ if (!debugDebugger) {
13
+ debugDebugger = _debugFactory(key);
14
+ _debuggerMap[key] = debugDebugger;
15
+ }
16
+ debugDebugger(formatter, args);
17
+ }
18
+ };
19
+ }
20
+ export function setDebugFactory(debug) {
21
+ if (debug && !isFunction(debug)) {
22
+ throw new Error('debug factory type is invalid, must be function');
23
+ }
24
+ _debugFactory = debug;
25
+ }
26
+ export function clearDebugFactory() {
27
+ setDebugFactory(undefined);
28
+ _debuggerMap = {};
29
+ }
30
+ export function getDebugFactory() {
31
+ return _debugFactory;
32
+ }
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVidWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2RlYnVnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxXQUFXLENBQUM7QUErQnZDOztHQUVHO0FBQ0gsSUFBSSxhQUFvQixDQUFDO0FBQ3pCLElBQUksWUFBWSxHQUE2QixFQUFFLENBQUM7QUFFaEQsTUFBTSxVQUFVLFdBQVcsQ0FBQyxTQUFpQjtJQUN6QyxNQUFNLEdBQUcsR0FBRyxVQUFVLFNBQVMsRUFBRSxDQUFDO0lBQ2xDLE9BQU8sVUFBUyxTQUFjLEVBQUUsR0FBRyxJQUFXO1FBQzFDLElBQUksYUFBYSxFQUFFO1lBQ2YsSUFBSSxhQUFhLEdBQUcsWUFBWSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3RDLElBQUksQ0FBQyxhQUFhLEVBQUU7Z0JBQ2hCLGFBQWEsR0FBRyxhQUFhLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQ25DLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxhQUFhLENBQUM7YUFDckM7WUFDRCxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDO1NBQ2xDO0lBQ0wsQ0FBQyxDQUFDO0FBQ04sQ0FBQztBQUVELE1BQU0sVUFBVSxlQUFlLENBQUMsS0FBWTtJQUN4QyxJQUFJLEtBQUssSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtRQUM3QixNQUFNLElBQUksS0FBSyxDQUFDLGlEQUFpRCxDQUFDLENBQUM7S0FDdEU7SUFDRCxhQUFhLEdBQUcsS0FBSyxDQUFDO0FBQzFCLENBQUM7QUFFRCxNQUFNLFVBQVUsaUJBQWlCO0lBQzdCLGVBQWUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMzQixZQUFZLEdBQUcsRUFBRSxDQUFDO0FBQ3RCLENBQUM7QUFFRCxNQUFNLFVBQVUsZUFBZTtJQUMzQixPQUFPLGFBQWEsQ0FBQztBQUN6QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgaXNGdW5jdGlvbiB9IGZyb20gJy4vaGVscGVycyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWdnZXIge1xuICAgIChmb3JtYXR0ZXI6IGFueSwgLi4uYXJnczogYW55W10pOiB2b2lkO1xuXG4gICAgLy8gY29sb3I6IHN0cmluZztcbiAgICAvLyBlbmFibGVkOiBib29sZWFuO1xuICAgIC8vIGxvZzogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG4gICAgLy8gbmFtZXNwYWNlOiBzdHJpbmc7XG4gICAgLy8gZGVzdHJveTogKCkgPT4gYm9vbGVhbjtcbiAgICAvLyBleHRlbmQ6IChuYW1lc3BhY2U6IHN0cmluZywgZGVsaW1pdGVyPzogc3RyaW5nKSA9PiBEZWJ1Z2dlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBGb3JtYXR0ZXJzIHtcbiAgICBbZm9ybWF0dGVyOiBzdHJpbmddOiAodjogYW55KSA9PiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVidWcge1xuICAgIChuYW1lc3BhY2U6IHN0cmluZyk6IERlYnVnZ2VyO1xuICAgIGNvZXJjZTogKHZhbDogYW55KSA9PiBhbnk7XG4gICAgZGlzYWJsZTogKCkgPT4gc3RyaW5nO1xuICAgIGVuYWJsZTogKG5hbWVzcGFjZXM6IHN0cmluZykgPT4gdm9pZDtcbiAgICBlbmFibGVkOiAobmFtZXNwYWNlczogc3RyaW5nKSA9PiBib29sZWFuO1xuICAgIGxvZzogKC4uLmFyZ3M6IGFueVtdKSA9PiBhbnk7XG5cbiAgICBuYW1lczogUmVnRXhwW107XG4gICAgc2tpcHM6IFJlZ0V4cFtdO1xuXG4gICAgZm9ybWF0dGVyczogRm9ybWF0dGVycztcbn1cblxuLyoqXG4gKiBEZWJ1ZyBmYWN0b3J5IGZvciBkZWJ1ZyBtb2R1bGVcbiAqL1xubGV0IF9kZWJ1Z0ZhY3Rvcnk6IERlYnVnO1xubGV0IF9kZWJ1Z2dlck1hcDogUmVjb3JkPHN0cmluZywgRGVidWdnZXI+ID0ge307XG5cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVEZWJ1ZyhuYW1lc3BhY2U6IHN0cmluZyk6IERlYnVnZ2VyIHtcbiAgICBjb25zdCBrZXkgPSBgcGxhbmV0OiR7bmFtZXNwYWNlfWA7XG4gICAgcmV0dXJuIGZ1bmN0aW9uKGZvcm1hdHRlcjogYW55LCAuLi5hcmdzOiBhbnlbXSkge1xuICAgICAgICBpZiAoX2RlYnVnRmFjdG9yeSkge1xuICAgICAgICAgICAgbGV0IGRlYnVnRGVidWdnZXIgPSBfZGVidWdnZXJNYXBba2V5XTtcbiAgICAgICAgICAgIGlmICghZGVidWdEZWJ1Z2dlcikge1xuICAgICAgICAgICAgICAgIGRlYnVnRGVidWdnZXIgPSBfZGVidWdGYWN0b3J5KGtleSk7XG4gICAgICAgICAgICAgICAgX2RlYnVnZ2VyTWFwW2tleV0gPSBkZWJ1Z0RlYnVnZ2VyO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgZGVidWdEZWJ1Z2dlcihmb3JtYXR0ZXIsIGFyZ3MpO1xuICAgICAgICB9XG4gICAgfTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldERlYnVnRmFjdG9yeShkZWJ1ZzogRGVidWcpIHtcbiAgICBpZiAoZGVidWcgJiYgIWlzRnVuY3Rpb24oZGVidWcpKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignZGVidWcgZmFjdG9yeSB0eXBlIGlzIGludmFsaWQsIG11c3QgYmUgZnVuY3Rpb24nKTtcbiAgICB9XG4gICAgX2RlYnVnRmFjdG9yeSA9IGRlYnVnO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gY2xlYXJEZWJ1Z0ZhY3RvcnkoKSB7XG4gICAgc2V0RGVidWdGYWN0b3J5KHVuZGVmaW5lZCk7XG4gICAgX2RlYnVnZ2VyTWFwID0ge307XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXREZWJ1Z0ZhY3RvcnkoKSB7XG4gICAgcmV0dXJuIF9kZWJ1Z0ZhY3Rvcnk7XG59XG4iXX0=
@@ -0,0 +1,10 @@
1
+ import { Component } from '@angular/core';
2
+ export class EmptyComponent {
3
+ }
4
+ EmptyComponent.decorators = [
5
+ { type: Component, args: [{
6
+ selector: 'empty-component',
7
+ template: ``
8
+ },] }
9
+ ];
10
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW1wdHkuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9lbXB0eS9lbXB0eS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQU0xQyxNQUFNLE9BQU8sY0FBYzs7O1lBSjFCLFNBQVMsU0FBQztnQkFDUCxRQUFRLEVBQUUsaUJBQWlCO2dCQUMzQixRQUFRLEVBQUUsRUFBRTthQUNmIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnZW1wdHktY29tcG9uZW50JyxcbiAgICB0ZW1wbGF0ZTogYGBcbn0pXG5leHBvcnQgY2xhc3MgRW1wdHlDb21wb25lbnQge31cbiJdfQ==
@@ -0,0 +1,71 @@
1
+ import { Subject, Observable } from 'rxjs';
2
+ import { filter, map } from 'rxjs/operators';
3
+ import { Injectable, NgZone } from '@angular/core';
4
+ import * as i0 from "@angular/core";
5
+ const CUSTOM_EVENT_NAME = 'PLANET_GLOBAL_EVENT_DISPATCHER';
6
+ export class GlobalEventDispatcher {
7
+ constructor(ngZone) {
8
+ this.ngZone = ngZone;
9
+ this.subject$ = new Subject();
10
+ this.hasAddGlobalEventListener = false;
11
+ this.subscriptionCount = 0;
12
+ this.globalEventListener = (event) => {
13
+ this.subject$.next(event.detail);
14
+ };
15
+ }
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
+ dispatch(name, payload) {
25
+ window.dispatchEvent(new CustomEvent(CUSTOM_EVENT_NAME, {
26
+ detail: {
27
+ name: name,
28
+ payload: payload
29
+ }
30
+ }));
31
+ }
32
+ register(eventName) {
33
+ return new Observable(observer => {
34
+ if (!this.hasAddGlobalEventListener) {
35
+ this.addGlobalEventListener();
36
+ }
37
+ this.subscriptionCount++;
38
+ const subscription = this.subject$
39
+ .pipe(filter(event => {
40
+ return event.name === eventName;
41
+ }), map(event => {
42
+ return event.payload;
43
+ }))
44
+ .subscribe(payload => {
45
+ this.ngZone.run(() => {
46
+ observer.next(payload);
47
+ });
48
+ });
49
+ return () => {
50
+ this.subscriptionCount--;
51
+ subscription.unsubscribe();
52
+ if (!this.subscriptionCount) {
53
+ this.removeGlobalEventListener();
54
+ }
55
+ };
56
+ });
57
+ }
58
+ getSubscriptionCount() {
59
+ return this.subscriptionCount;
60
+ }
61
+ }
62
+ GlobalEventDispatcher.ɵprov = i0.ɵɵdefineInjectable({ factory: function GlobalEventDispatcher_Factory() { return new GlobalEventDispatcher(i0.ɵɵinject(i0.NgZone)); }, token: GlobalEventDispatcher, providedIn: "root" });
63
+ GlobalEventDispatcher.decorators = [
64
+ { type: Injectable, args: [{
65
+ providedIn: 'root'
66
+ },] }
67
+ ];
68
+ GlobalEventDispatcher.ctorParameters = () => [
69
+ { type: NgZone }
70
+ ];
71
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLWV2ZW50LWRpc3BhdGNoZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2dsb2JhbC1ldmVudC1kaXNwYXRjaGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBT25ELE1BQU0saUJBQWlCLEdBQUcsZ0NBQWdDLENBQUM7QUFLM0QsTUFBTSxPQUFPLHFCQUFxQjtJQXFCOUIsWUFBb0IsTUFBYztRQUFkLFdBQU0sR0FBTixNQUFNLENBQVE7UUFwQjFCLGFBQVEsR0FBbUMsSUFBSSxPQUFPLEVBQUUsQ0FBQztRQUV6RCw4QkFBeUIsR0FBRyxLQUFLLENBQUM7UUFFbEMsc0JBQWlCLEdBQUcsQ0FBQyxDQUFDO1FBRXRCLHdCQUFtQixHQUFHLENBQUMsS0FBa0IsRUFBRSxFQUFFO1lBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNyQyxDQUFDLENBQUM7SUFZbUMsQ0FBQztJQVY5QixzQkFBc0I7UUFDMUIsSUFBSSxDQUFDLHlCQUF5QixHQUFHLElBQUksQ0FBQztRQUN0QyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDekUsQ0FBQztJQUVPLHlCQUF5QjtRQUM3QixJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUM1RSxDQUFDO0lBSUQsUUFBUSxDQUFXLElBQVksRUFBRSxPQUFrQjtRQUMvQyxNQUFNLENBQUMsYUFBYSxDQUNoQixJQUFJLFdBQVcsQ0FBQyxpQkFBaUIsRUFBRTtZQUMvQixNQUFNLEVBQUU7Z0JBQ0osSUFBSSxFQUFFLElBQUk7Z0JBQ1YsT0FBTyxFQUFFLE9BQU87YUFDbkI7U0FDSixDQUFDLENBQ0wsQ0FBQztJQUNOLENBQUM7SUFFRCxRQUFRLENBQUksU0FBaUI7UUFDekIsT0FBTyxJQUFJLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUM3QixJQUFJLENBQUMsSUFBSSxDQUFDLHlCQUF5QixFQUFFO2dCQUNqQyxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQzthQUNqQztZQUNELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3pCLE1BQU0sWUFBWSxHQUFHLElBQUksQ0FBQyxRQUFRO2lCQUM3QixJQUFJLENBQ0QsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNYLE9BQU8sS0FBSyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUM7WUFDcEMsQ0FBQyxDQUFDLEVBQ0YsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO2dCQUNSLE9BQU8sS0FBSyxDQUFDLE9BQU8sQ0FBQztZQUN6QixDQUFDLENBQUMsQ0FDTDtpQkFDQSxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtvQkFDakIsUUFBUSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztnQkFDM0IsQ0FBQyxDQUFDLENBQUM7WUFDUCxDQUFDLENBQUMsQ0FBQztZQUNQLE9BQU8sR0FBRyxFQUFFO2dCQUNSLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO2dCQUN6QixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzNCLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUU7b0JBQ3pCLElBQUksQ0FBQyx5QkFBeUIsRUFBRSxDQUFDO2lCQUNwQztZQUNMLENBQUMsQ0FBQztRQUNOLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELG9CQUFvQjtRQUNoQixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQztJQUNsQyxDQUFDOzs7O1lBckVKLFVBQVUsU0FBQztnQkFDUixVQUFVLEVBQUUsTUFBTTthQUNyQjs7O1lBWG9CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBmaWx0ZXIsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEluamVjdGFibGUsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbERpc3BhdGNoZXJFdmVudCB7XG4gICAgbmFtZTogc3RyaW5nO1xuICAgIHBheWxvYWQ6IGFueTtcbn1cblxuY29uc3QgQ1VTVE9NX0VWRU5UX05BTUUgPSAnUExBTkVUX0dMT0JBTF9FVkVOVF9ESVNQQVRDSEVSJztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBHbG9iYWxFdmVudERpc3BhdGNoZXIge1xuICAgIHByaXZhdGUgc3ViamVjdCQ6IFN1YmplY3Q8R2xvYmFsRGlzcGF0Y2hlckV2ZW50PiA9IG5ldyBTdWJqZWN0KCk7XG5cbiAgICBwcml2YXRlIGhhc0FkZEdsb2JhbEV2ZW50TGlzdGVuZXIgPSBmYWxzZTtcblxuICAgIHByaXZhdGUgc3Vic2NyaXB0aW9uQ291bnQgPSAwO1xuXG4gICAgcHJpdmF0ZSBnbG9iYWxFdmVudExpc3RlbmVyID0gKGV2ZW50OiBDdXN0b21FdmVudCkgPT4ge1xuICAgICAgICB0aGlzLnN1YmplY3QkLm5leHQoZXZlbnQuZGV0YWlsKTtcbiAgICB9O1xuXG4gICAgcHJpdmF0ZSBhZGRHbG9iYWxFdmVudExpc3RlbmVyKCkge1xuICAgICAgICB0aGlzLmhhc0FkZEdsb2JhbEV2ZW50TGlzdGVuZXIgPSB0cnVlO1xuICAgICAgICB3aW5kb3cuYWRkRXZlbnRMaXN0ZW5lcihDVVNUT01fRVZFTlRfTkFNRSwgdGhpcy5nbG9iYWxFdmVudExpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlbW92ZUdsb2JhbEV2ZW50TGlzdGVuZXIoKSB7XG4gICAgICAgIHRoaXMuaGFzQWRkR2xvYmFsRXZlbnRMaXN0ZW5lciA9IGZhbHNlO1xuICAgICAgICB3aW5kb3cucmVtb3ZlRXZlbnRMaXN0ZW5lcihDVVNUT01fRVZFTlRfTkFNRSwgdGhpcy5nbG9iYWxFdmVudExpc3RlbmVyKTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5nWm9uZTogTmdab25lKSB7fVxuXG4gICAgZGlzcGF0Y2g8VFBheWxvYWQ+KG5hbWU6IHN0cmluZywgcGF5bG9hZD86IFRQYXlsb2FkKSB7XG4gICAgICAgIHdpbmRvdy5kaXNwYXRjaEV2ZW50KFxuICAgICAgICAgICAgbmV3IEN1c3RvbUV2ZW50KENVU1RPTV9FVkVOVF9OQU1FLCB7XG4gICAgICAgICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICAgICAgICAgIG5hbWU6IG5hbWUsXG4gICAgICAgICAgICAgICAgICAgIHBheWxvYWQ6IHBheWxvYWRcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIHJlZ2lzdGVyPFQ+KGV2ZW50TmFtZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XG4gICAgICAgIHJldHVybiBuZXcgT2JzZXJ2YWJsZShvYnNlcnZlciA9PiB7XG4gICAgICAgICAgICBpZiAoIXRoaXMuaGFzQWRkR2xvYmFsRXZlbnRMaXN0ZW5lcikge1xuICAgICAgICAgICAgICAgIHRoaXMuYWRkR2xvYmFsRXZlbnRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25Db3VudCsrO1xuICAgICAgICAgICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5zdWJqZWN0JFxuICAgICAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgICAgICBmaWx0ZXIoZXZlbnQgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIGV2ZW50Lm5hbWUgPT09IGV2ZW50TmFtZTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgICAgIG1hcChldmVudCA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gZXZlbnQucGF5bG9hZDtcbiAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLnN1YnNjcmliZShwYXlsb2FkID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgIG9ic2VydmVyLm5leHQocGF5bG9hZCk7XG4gICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgcmV0dXJuICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN1YnNjcmlwdGlvbkNvdW50LS07XG4gICAgICAgICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgICAgICAgaWYgKCF0aGlzLnN1YnNjcmlwdGlvbkNvdW50KSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlR2xvYmFsRXZlbnRMaXN0ZW5lcigpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH07XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldFN1YnNjcmlwdGlvbkNvdW50KCkge1xuICAgICAgICByZXR1cm4gdGhpcy5zdWJzY3JpcHRpb25Db3VudDtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,51 @@
1
+ import { PlanetApplicationRef } from './application/planet-application-ref';
2
+ import { isFunction } from './helpers';
3
+ export const globalPlanet = (window.planet = window.planet || {
4
+ apps: {}
5
+ });
6
+ export function defineApplication(name, options) {
7
+ if (globalPlanet.apps[name]) {
8
+ throw new Error(`${name} application has exist.`);
9
+ }
10
+ if (isFunction(options)) {
11
+ options = {
12
+ template: '',
13
+ bootstrap: options
14
+ };
15
+ }
16
+ const appRef = new PlanetApplicationRef(name, options);
17
+ globalPlanet.apps[name] = appRef;
18
+ }
19
+ export function getPlanetApplicationRef(appName) {
20
+ if (globalPlanet && globalPlanet.apps && globalPlanet.apps[appName]) {
21
+ return globalPlanet.apps[appName];
22
+ }
23
+ else {
24
+ return null;
25
+ }
26
+ }
27
+ export function setPortalApplicationData(data) {
28
+ globalPlanet.portalApplication.data = data;
29
+ }
30
+ export function getPortalApplicationData() {
31
+ return globalPlanet.portalApplication.data;
32
+ }
33
+ export function setApplicationLoader(loader) {
34
+ globalPlanet.applicationLoader = loader;
35
+ }
36
+ export function getApplicationLoader() {
37
+ return globalPlanet.applicationLoader;
38
+ }
39
+ export function setApplicationService(service) {
40
+ globalPlanet.applicationService = service;
41
+ }
42
+ export function getApplicationService() {
43
+ return globalPlanet.applicationService;
44
+ }
45
+ export function clearGlobalPlanet() {
46
+ window.planet.apps = {};
47
+ window.planet.portalApplication = null;
48
+ window.planet.applicationLoader = null;
49
+ window.planet.applicationService = null;
50
+ }
51
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2xvYmFsLXBsYW5ldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvZ2xvYmFsLXBsYW5ldC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsb0JBQW9CLEVBQXdDLE1BQU0sc0NBQXNDLENBQUM7QUFJbEgsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQVd2QyxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWlCLENBQUMsTUFBTSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUMsTUFBTSxJQUFJO0lBQ3hFLElBQUksRUFBRSxFQUFFO0NBQ1gsQ0FBQyxDQUFDO0FBRUgsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQVksRUFBRSxPQUE4QztJQUMxRixJQUFJLFlBQVksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUU7UUFDekIsTUFBTSxJQUFJLEtBQUssQ0FBQyxHQUFHLElBQUkseUJBQXlCLENBQUMsQ0FBQztLQUNyRDtJQUNELElBQUksVUFBVSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ3JCLE9BQU8sR0FBRztZQUNOLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLE9BQTZCO1NBQzNDLENBQUM7S0FDTDtJQUNELE1BQU0sTUFBTSxHQUFHLElBQUksb0JBQW9CLENBQUMsSUFBSSxFQUFFLE9BQTJCLENBQUMsQ0FBQztJQUMzRSxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLE1BQU0sQ0FBQztBQUNyQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHVCQUF1QixDQUFDLE9BQWU7SUFDbkQsSUFBSSxZQUFZLElBQUksWUFBWSxDQUFDLElBQUksSUFBSSxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxFQUFFO1FBQ2pFLE9BQU8sWUFBWSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztLQUNyQztTQUFNO1FBQ0gsT0FBTyxJQUFJLENBQUM7S0FDZjtBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsd0JBQXdCLENBQUksSUFBTztJQUMvQyxZQUFZLENBQUMsaUJBQWlCLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztBQUMvQyxDQUFDO0FBRUQsTUFBTSxVQUFVLHdCQUF3QjtJQUNwQyxPQUFPLFlBQVksQ0FBQyxpQkFBaUIsQ0FBQyxJQUFhLENBQUM7QUFDeEQsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUErQjtJQUNoRSxZQUFZLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO0FBQzVDLENBQUM7QUFFRCxNQUFNLFVBQVUsb0JBQW9CO0lBQ2hDLE9BQU8sWUFBWSxDQUFDLGlCQUFpQixDQUFDO0FBQzFDLENBQUM7QUFFRCxNQUFNLFVBQVUscUJBQXFCLENBQUMsT0FBaUM7SUFDbkUsWUFBWSxDQUFDLGtCQUFrQixHQUFHLE9BQU8sQ0FBQztBQUM5QyxDQUFDO0FBRUQsTUFBTSxVQUFVLHFCQUFxQjtJQUNqQyxPQUFPLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQztBQUMzQyxDQUFDO0FBRUQsTUFBTSxVQUFVLGlCQUFpQjtJQUM3QixNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksR0FBRyxFQUFFLENBQUM7SUFDeEIsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUM7SUFDdkMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxrQkFBa0IsR0FBRyxJQUFJLENBQUM7QUFDNUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYW5ldEFwcGxpY2F0aW9uUmVmLCBCb290c3RyYXBBcHBNb2R1bGUsIEJvb3RzdHJhcE9wdGlvbnMgfSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi1yZWYnO1xuaW1wb3J0IHsgUGxhbmV0UG9ydGFsQXBwbGljYXRpb24gfSBmcm9tICcuL2FwcGxpY2F0aW9uL3BvcnRhbC1hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBQbGFuZXRBcHBsaWNhdGlvbkxvYWRlciB9IGZyb20gJy4vYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IGlzRnVuY3Rpb24gfSBmcm9tICcuL2hlbHBlcnMnO1xuXG5kZWNsYXJlIGNvbnN0IHdpbmRvdzogYW55O1xuXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFBsYW5ldCB7XG4gICAgYXBwczogeyBba2V5OiBzdHJpbmddOiBQbGFuZXRBcHBsaWNhdGlvblJlZiB9O1xuICAgIHBvcnRhbEFwcGxpY2F0aW9uPzogUGxhbmV0UG9ydGFsQXBwbGljYXRpb247XG4gICAgYXBwbGljYXRpb25Mb2FkZXI/OiBQbGFuZXRBcHBsaWNhdGlvbkxvYWRlcjtcbiAgICBhcHBsaWNhdGlvblNlcnZpY2U/OiBQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2U7XG59XG5cbmV4cG9ydCBjb25zdCBnbG9iYWxQbGFuZXQ6IEdsb2JhbFBsYW5ldCA9ICh3aW5kb3cucGxhbmV0ID0gd2luZG93LnBsYW5ldCB8fCB7XG4gICAgYXBwczoge31cbn0pO1xuXG5leHBvcnQgZnVuY3Rpb24gZGVmaW5lQXBwbGljYXRpb24obmFtZTogc3RyaW5nLCBvcHRpb25zOiBCb290c3RyYXBBcHBNb2R1bGUgfCBCb290c3RyYXBPcHRpb25zKSB7XG4gICAgaWYgKGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgJHtuYW1lfSBhcHBsaWNhdGlvbiBoYXMgZXhpc3QuYCk7XG4gICAgfVxuICAgIGlmIChpc0Z1bmN0aW9uKG9wdGlvbnMpKSB7XG4gICAgICAgIG9wdGlvbnMgPSB7XG4gICAgICAgICAgICB0ZW1wbGF0ZTogJycsXG4gICAgICAgICAgICBib290c3RyYXA6IG9wdGlvbnMgYXMgQm9vdHN0cmFwQXBwTW9kdWxlXG4gICAgICAgIH07XG4gICAgfVxuICAgIGNvbnN0IGFwcFJlZiA9IG5ldyBQbGFuZXRBcHBsaWNhdGlvblJlZihuYW1lLCBvcHRpb25zIGFzIEJvb3RzdHJhcE9wdGlvbnMpO1xuICAgIGdsb2JhbFBsYW5ldC5hcHBzW25hbWVdID0gYXBwUmVmO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UGxhbmV0QXBwbGljYXRpb25SZWYoYXBwTmFtZTogc3RyaW5nKTogUGxhbmV0QXBwbGljYXRpb25SZWYge1xuICAgIGlmIChnbG9iYWxQbGFuZXQgJiYgZ2xvYmFsUGxhbmV0LmFwcHMgJiYgZ2xvYmFsUGxhbmV0LmFwcHNbYXBwTmFtZV0pIHtcbiAgICAgICAgcmV0dXJuIGdsb2JhbFBsYW5ldC5hcHBzW2FwcE5hbWVdO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIHNldFBvcnRhbEFwcGxpY2F0aW9uRGF0YTxUPihkYXRhOiBUKSB7XG4gICAgZ2xvYmFsUGxhbmV0LnBvcnRhbEFwcGxpY2F0aW9uLmRhdGEgPSBkYXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UG9ydGFsQXBwbGljYXRpb25EYXRhPFREYXRhPigpOiBURGF0YSB7XG4gICAgcmV0dXJuIGdsb2JhbFBsYW5ldC5wb3J0YWxBcHBsaWNhdGlvbi5kYXRhIGFzIFREYXRhO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gc2V0QXBwbGljYXRpb25Mb2FkZXIobG9hZGVyOiBQbGFuZXRBcHBsaWNhdGlvbkxvYWRlcikge1xuICAgIGdsb2JhbFBsYW5ldC5hcHBsaWNhdGlvbkxvYWRlciA9IGxvYWRlcjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEFwcGxpY2F0aW9uTG9hZGVyKCkge1xuICAgIHJldHVybiBnbG9iYWxQbGFuZXQuYXBwbGljYXRpb25Mb2FkZXI7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBzZXRBcHBsaWNhdGlvblNlcnZpY2Uoc2VydmljZTogUGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlKSB7XG4gICAgZ2xvYmFsUGxhbmV0LmFwcGxpY2F0aW9uU2VydmljZSA9IHNlcnZpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRBcHBsaWNhdGlvblNlcnZpY2UoKSB7XG4gICAgcmV0dXJuIGdsb2JhbFBsYW5ldC5hcHBsaWNhdGlvblNlcnZpY2U7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjbGVhckdsb2JhbFBsYW5ldCgpIHtcbiAgICB3aW5kb3cucGxhbmV0LmFwcHMgPSB7fTtcbiAgICB3aW5kb3cucGxhbmV0LnBvcnRhbEFwcGxpY2F0aW9uID0gbnVsbDtcbiAgICB3aW5kb3cucGxhbmV0LmFwcGxpY2F0aW9uTG9hZGVyID0gbnVsbDtcbiAgICB3aW5kb3cucGxhbmV0LmFwcGxpY2F0aW9uU2VydmljZSA9IG51bGw7XG59XG4iXX0=
@@ -0,0 +1,119 @@
1
+ const ELEMENT_NODE_TYPE = 1;
2
+ export function hashCode(str) {
3
+ let hash = 0;
4
+ let chr;
5
+ if (str.length === 0) {
6
+ return hash;
7
+ }
8
+ for (let i = 0; i < str.length; i++) {
9
+ chr = str.charCodeAt(i);
10
+ hash = (hash << 5) - hash + chr;
11
+ hash |= 0; // Convert to 32bit integer
12
+ }
13
+ return hash;
14
+ }
15
+ export function getHTMLElement(selector) {
16
+ if (selector instanceof HTMLElement) {
17
+ return selector;
18
+ }
19
+ else {
20
+ return document.querySelector(selector);
21
+ }
22
+ }
23
+ export function getTagNameByTemplate(template) {
24
+ const element = createElementByTemplate(template);
25
+ return element ? element.nodeName : null;
26
+ }
27
+ export function createElementByTemplate(template) {
28
+ if (!template) {
29
+ return null;
30
+ }
31
+ const element = document.createRange().createContextualFragment(template).firstChild;
32
+ if (element.nodeType === ELEMENT_NODE_TYPE) {
33
+ return element;
34
+ }
35
+ else {
36
+ throw new Error(`invalid template '${template}'`);
37
+ }
38
+ }
39
+ export function coerceArray(value) {
40
+ return Array.isArray(value) ? value : [value];
41
+ }
42
+ export function isEmpty(value) {
43
+ if (!value || value.length === 0) {
44
+ return true;
45
+ }
46
+ else {
47
+ return false;
48
+ }
49
+ }
50
+ export function isFunction(value) {
51
+ const type = typeof value;
52
+ return !!value && type === 'function';
53
+ }
54
+ export function isObject(val) {
55
+ return val && typeof val === 'object';
56
+ }
57
+ /**
58
+ * Get file name from path
59
+ * 1. "main.js" => "main.js"
60
+ * 2. "assets/scripts/main.js" => "main.js"
61
+ * @param path path
62
+ */
63
+ export function getResourceFileName(path) {
64
+ const lastSlashIndex = path.lastIndexOf('/');
65
+ if (lastSlashIndex >= 0) {
66
+ return path.slice(lastSlashIndex + 1);
67
+ }
68
+ else {
69
+ return path;
70
+ }
71
+ }
72
+ /**
73
+ * Build resource path by manifest
74
+ * if manifest is { "main.js": "main.h2sh23abee.js"}
75
+ * 1. "main.js" => "main.h2sh23abee.js"
76
+ * 2. "assets/scripts/main.js" =>"assets/scripts/main.h2sh23abee.js"
77
+ * @param resourceFilePath Resource File Path
78
+ * @param manifestResult manifest
79
+ */
80
+ export function buildResourceFilePath(resourceFilePath, manifestResult) {
81
+ const fileName = getResourceFileName(resourceFilePath);
82
+ if (manifestResult[fileName]) {
83
+ return resourceFilePath.replace(fileName, manifestResult[fileName]);
84
+ }
85
+ else {
86
+ return resourceFilePath;
87
+ }
88
+ }
89
+ /**
90
+ * Get static resource full path
91
+ * @param app PlanetApplication
92
+ * @param manifestResult manifest
93
+ */
94
+ export function getScriptsAndStylesFullPaths(app, manifestResult) {
95
+ let scripts = app.scripts || [];
96
+ let styles = app.styles || [];
97
+ // combine resource path by manifest
98
+ if (manifestResult) {
99
+ scripts = scripts.map(script => {
100
+ return buildResourceFilePath(script, manifestResult);
101
+ });
102
+ styles = styles.map(style => {
103
+ return buildResourceFilePath(style, manifestResult);
104
+ });
105
+ }
106
+ if (app.resourcePathPrefix) {
107
+ scripts = scripts.map(script => {
108
+ return `${app.resourcePathPrefix}${script}`;
109
+ });
110
+ styles = styles.map(style => {
111
+ return `${app.resourcePathPrefix}${style}`;
112
+ });
113
+ }
114
+ return {
115
+ scripts: scripts,
116
+ styles: styles
117
+ };
118
+ }
119
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaGVscGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvaGVscGVycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxNQUFNLGlCQUFpQixHQUFHLENBQUMsQ0FBQztBQUU1QixNQUFNLFVBQVUsUUFBUSxDQUFDLEdBQVc7SUFDaEMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDO0lBQ2IsSUFBSSxHQUFXLENBQUM7SUFDaEIsSUFBSSxHQUFHLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtRQUNsQixPQUFPLElBQUksQ0FBQztLQUNmO0lBQ0QsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLEdBQUcsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxFQUFFLEVBQUU7UUFDakMsR0FBRyxHQUFHLEdBQUcsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDeEIsSUFBSSxHQUFHLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksR0FBRyxHQUFHLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLDJCQUEyQjtLQUN6QztJQUNELE9BQU8sSUFBSSxDQUFDO0FBQ2hCLENBQUM7QUFFRCxNQUFNLFVBQVUsY0FBYyxDQUFDLFFBQThCO0lBQ3pELElBQUksUUFBUSxZQUFZLFdBQVcsRUFBRTtRQUNqQyxPQUFPLFFBQVEsQ0FBQztLQUNuQjtTQUFNO1FBQ0gsT0FBTyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0tBQzNDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxRQUFnQjtJQUNqRCxNQUFNLE9BQU8sR0FBRyx1QkFBdUIsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsRCxPQUFPLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO0FBQzdDLENBQUM7QUFF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LE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUU7WUFDM0IsT0FBTyxHQUFHLEdBQUcsQ0FBQyxrQkFBa0IsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUNoRCxDQUFDLENBQUMsQ0FBQztRQUNILE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQ3hCLE9BQU8sR0FBRyxHQUFHLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7S0FDTjtJQUNELE9BQU87UUFDSCxPQUFPLEVBQUUsT0FBTztRQUNoQixNQUFNLEVBQUUsTUFBTTtLQUNqQixDQUFDO0FBQ04sQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYW5ldEFwcGxpY2F0aW9uIH0gZnJvbSAnLi9wbGFuZXQuY2xhc3MnO1xuXG5jb25zdCBFTEVNRU5UX05PREVfVFlQRSA9IDE7XG5cbmV4cG9ydCBmdW5jdGlvbiBoYXNoQ29kZShzdHI6IHN0cmluZyk6IG51bWJlciB7XG4gICAgbGV0IGhhc2ggPSAwO1xuICAgIGxldCBjaHI6IG51bWJlcjtcbiAgICBpZiAoc3RyLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICByZXR1cm4gaGFzaDtcbiAgICB9XG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCBzdHIubGVuZ3RoOyBpKyspIHtcbiAgICAgICAgY2hyID0gc3RyLmNoYXJDb2RlQXQoaSk7XG4gICAgICAgIGhhc2ggPSAoaGFzaCA8PCA1KSAtIGhhc2ggKyBjaHI7XG4gICAgICAgIGhhc2ggfD0gMDsgLy8gQ29udmVydCB0byAzMmJpdCBpbnRlZ2VyXG4gICAgfVxuICAgIHJldHVybiBoYXNoO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0SFRNTEVsZW1lbnQoc2VsZWN0b3I6IHN0cmluZyB8IEhUTUxFbGVtZW50KTogSFRNTEVsZW1lbnQge1xuICAgIGlmIChzZWxlY3RvciBpbnN0YW5jZW9mIEhUTUxFbGVtZW50KSB7XG4gICAgICAgIHJldHVybiBzZWxlY3RvcjtcbiAgICB9IGVsc2Uge1xuICAgICAgICByZXR1cm4gZG9jdW1lbnQucXVlcnlTZWxlY3RvcihzZWxlY3Rvcik7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0VGFnTmFtZUJ5VGVtcGxhdGUodGVtcGxhdGU6IHN0cmluZykge1xuICAgIGNvbnN0IGVsZW1lbnQgPSBjcmVhdGVFbGVtZW50QnlUZW1wbGF0ZSh0ZW1wbGF0ZSk7XG4gICAgcmV0dXJuIGVsZW1lbnQgPyBlbGVtZW50Lm5vZGVOYW1lIDogbnVsbDtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUVsZW1lbnRCeVRlbXBsYXRlKHRlbXBsYXRlOiBzdHJpbmcpIHtcbiAgICBpZiAoIXRlbXBsYXRlKSB7XG4gICAgICAgIHJldHVybiBudWxsO1xuICAgIH1cbiAgICBjb25zdCBlbGVtZW50ID0gZG9jdW1lbnQuY3JlYXRlUmFuZ2UoKS5jcmVhdGVDb250ZXh0dWFsRnJhZ21lbnQodGVtcGxhdGUpLmZpcnN0Q2hpbGQ7XG4gICAgaWYgKGVsZW1lbnQubm9kZVR5cGUgPT09IEVMRU1FTlRfTk9ERV9UWVBFKSB7XG4gICAgICAgIHJldHVybiBlbGVtZW50IGFzIEhUTUxFbGVtZW50O1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgaW52YWxpZCB0ZW1wbGF0ZSAnJHt0ZW1wbGF0ZX0nYCk7XG4gICAgfVxufVxuXG5leHBvcnQgZnVuY3Rpb24gY29lcmNlQXJyYXk8VD4odmFsdWU6IFQgfCBUW10pOiBUW10ge1xuICAgIHJldHVybiBBcnJheS5pc0FycmF5KHZhbHVlKSA/IHZhbHVlIDogW3ZhbHVlXTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRW1wdHkodmFsdWU6IGFueSk6IGJvb2xlYW4ge1xuICAgIGlmICghdmFsdWUgfHwgdmFsdWUubGVuZ3RoID09PSAwKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgIH0gZWxzZSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Z1bmN0aW9uKHZhbHVlOiBhbnkpOiB2YWx1ZSBpcyBGdW5jdGlvbiB7XG4gICAgY29uc3QgdHlwZSA9IHR5cGVvZiB2YWx1ZTtcbiAgICByZXR1cm4gISF2YWx1ZSAmJiB0eXBlID09PSAnZnVuY3Rpb24nO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNPYmplY3QodmFsOiBhbnkpIHtcbiAgICByZXR1cm4gdmFsICYmIHR5cGVvZiB2YWwgPT09ICdvYmplY3QnO1xufVxuLyoqXG4gKiBHZXQgZmlsZSBuYW1lIGZyb20gcGF0aFxuICogMS4gXCJtYWluLmpzXCIgPT4gXCJtYWluLmpzXCJcbiAqIDIuIFwiYXNzZXRzL3NjcmlwdHMvbWFpbi5qc1wiID0+IFwibWFpbi5qc1wiXG4gKiBAcGFyYW0gcGF0aCBwYXRoXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBnZXRSZXNvdXJjZUZpbGVOYW1lKHBhdGg6IHN0cmluZykge1xuICAgIGNvbnN0IGxhc3RTbGFzaEluZGV4ID0gcGF0aC5sYXN0SW5kZXhPZignLycpO1xuICAgIGlmIChsYXN0U2xhc2hJbmRleCA+PSAwKSB7XG4gICAgICAgIHJldHVybiBwYXRoLnNsaWNlKGxhc3RTbGFzaEluZGV4ICsgMSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHBhdGg7XG4gICAgfVxufVxuXG4vKipcbiAqIEJ1aWxkIHJlc291cmNlIHBhdGggYnkgbWFuaWZlc3RcbiAqIGlmIG1hbmlmZXN0IGlzIHsgXCJtYWluLmpzXCI6IFwibWFpbi5oMnNoMjNhYmVlLmpzXCJ9XG4gKiAxLiBcIm1haW4uanNcIiA9PiBcIm1haW4uaDJzaDIzYWJlZS5qc1wiXG4gKiAyLiBcImFzc2V0cy9zY3JpcHRzL21haW4uanNcIiA9PlwiYXNzZXRzL3NjcmlwdHMvbWFpbi5oMnNoMjNhYmVlLmpzXCJcbiAqIEBwYXJhbSByZXNvdXJjZUZpbGVQYXRoIFJlc291cmNlIEZpbGUgUGF0aFxuICogQHBhcmFtIG1hbmlmZXN0UmVzdWx0IG1hbmlmZXN0XG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFJlc291cmNlRmlsZVBhdGgocmVzb3VyY2VGaWxlUGF0aDogc3RyaW5nLCBtYW5pZmVzdFJlc3VsdDogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSkge1xuICAgIGNvbnN0IGZpbGVOYW1lID0gZ2V0UmVzb3VyY2VGaWxlTmFtZShyZXNvdXJjZUZpbGVQYXRoKTtcbiAgICBpZiAobWFuaWZlc3RSZXN1bHRbZmlsZU5hbWVdKSB7XG4gICAgICAgIHJldHVybiByZXNvdXJjZUZpbGVQYXRoLnJlcGxhY2UoZmlsZU5hbWUsIG1hbmlmZXN0UmVzdWx0W2ZpbGVOYW1lXSk7XG4gICAgfSBlbHNlIHtcbiAgICAgICAgcmV0dXJuIHJlc291cmNlRmlsZVBhdGg7XG4gICAgfVxufVxuXG4vKipcbiAqIEdldCBzdGF0aWMgcmVzb3VyY2UgZnVsbCBwYXRoXG4gKiBAcGFyYW0gYXBwIFBsYW5ldEFwcGxpY2F0aW9uXG4gKiBAcGFyYW0gbWFuaWZlc3RSZXN1bHQgbWFuaWZlc3RcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGdldFNjcmlwdHNBbmRTdHlsZXNGdWxsUGF0aHMoYXBwOiBQbGFuZXRBcHBsaWNhdGlvbiwgbWFuaWZlc3RSZXN1bHQ/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KSB7XG4gICAgbGV0IHNjcmlwdHMgPSBhcHAuc2NyaXB0cyB8fCBbXTtcbiAgICBsZXQgc3R5bGVzID0gYXBwLnN0eWxlcyB8fCBbXTtcbiAgICAvLyBjb21iaW5lIHJlc291cmNlIHBhdGggYnkgbWFuaWZlc3RcbiAgICBpZiAobWFuaWZlc3RSZXN1bHQpIHtcbiAgICAgICAgc2NyaXB0cyA9IHNjcmlwdHMubWFwKHNjcmlwdCA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRSZXNvdXJjZUZpbGVQYXRoKHNjcmlwdCwgbWFuaWZlc3RSZXN1bHQpO1xuICAgICAgICB9KTtcbiAgICAgICAgc3R5bGVzID0gc3R5bGVzLm1hcChzdHlsZSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gYnVpbGRSZXNvdXJjZUZpbGVQYXRoKHN0eWxlLCBtYW5pZmVzdFJlc3VsdCk7XG4gICAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAoYXBwLnJlc291cmNlUGF0aFByZWZpeCkge1xuICAgICAgICBzY3JpcHRzID0gc2NyaXB0cy5tYXAoc2NyaXB0ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHthcHAucmVzb3VyY2VQYXRoUHJlZml4fSR7c2NyaXB0fWA7XG4gICAgICAgIH0pO1xuICAgICAgICBzdHlsZXMgPSBzdHlsZXMubWFwKHN0eWxlID0+IHtcbiAgICAgICAgICAgIHJldHVybiBgJHthcHAucmVzb3VyY2VQYXRoUHJlZml4fSR7c3R5bGV9YDtcbiAgICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB7XG4gICAgICAgIHNjcmlwdHM6IHNjcmlwdHMsXG4gICAgICAgIHN0eWxlczogc3R5bGVzXG4gICAgfTtcbn1cbiJdfQ==
@@ -0,0 +1,27 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { PLANET_APPLICATIONS } from './planet.class';
3
+ import { HttpClientModule } from '@angular/common/http';
4
+ import { EmptyComponent } from './empty/empty.component';
5
+ export class NgxPlanetModule {
6
+ static forRoot(apps) {
7
+ return {
8
+ ngModule: NgxPlanetModule,
9
+ providers: [
10
+ {
11
+ provide: PLANET_APPLICATIONS,
12
+ useValue: apps
13
+ }
14
+ ]
15
+ };
16
+ }
17
+ }
18
+ NgxPlanetModule.decorators = [
19
+ { type: NgModule, args: [{
20
+ declarations: [EmptyComponent],
21
+ entryComponents: [EmptyComponent],
22
+ imports: [HttpClientModule],
23
+ providers: [],
24
+ exports: [HttpClientModule, EmptyComponent]
25
+ },] }
26
+ ];
27
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBdUIsTUFBTSxlQUFlLENBQUM7QUFDOUQsT0FBTyxFQUFxQixtQkFBbUIsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQVN6RCxNQUFNLE9BQU8sZUFBZTtJQUN4QixNQUFNLENBQUMsT0FBTyxDQUFDLElBQXlCO1FBQ3BDLE9BQU87WUFDSCxRQUFRLEVBQUUsZUFBZTtZQUN6QixTQUFTLEVBQUU7Z0JBQ1A7b0JBQ0ksT0FBTyxFQUFFLG1CQUFtQjtvQkFDNUIsUUFBUSxFQUFFLElBQUk7aUJBQ2pCO2FBQ0o7U0FDSixDQUFDO0lBQ04sQ0FBQzs7O1lBbEJKLFFBQVEsU0FBQztnQkFDTixZQUFZLEVBQUUsQ0FBQyxjQUFjLENBQUM7Z0JBQzlCLGVBQWUsRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDakMsT0FBTyxFQUFFLENBQUMsZ0JBQWdCLENBQUM7Z0JBQzNCLFNBQVMsRUFBRSxFQUFFO2dCQUNiLE9BQU8sRUFBRSxDQUFDLGdCQUFnQixFQUFFLGNBQWMsQ0FBQzthQUM5QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBQbGFuZXRBcHBsaWNhdGlvbiwgUExBTkVUX0FQUExJQ0FUSU9OUyB9IGZyb20gJy4vcGxhbmV0LmNsYXNzJztcbmltcG9ydCB7IEh0dHBDbGllbnRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBFbXB0eUNvbXBvbmVudCB9IGZyb20gJy4vZW1wdHkvZW1wdHkuY29tcG9uZW50JztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtFbXB0eUNvbXBvbmVudF0sXG4gICAgZW50cnlDb21wb25lbnRzOiBbRW1wdHlDb21wb25lbnRdLFxuICAgIGltcG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlXSxcbiAgICBwcm92aWRlcnM6IFtdLFxuICAgIGV4cG9ydHM6IFtIdHRwQ2xpZW50TW9kdWxlLCBFbXB0eUNvbXBvbmVudF1cbn0pXG5leHBvcnQgY2xhc3MgTmd4UGxhbmV0TW9kdWxlIHtcbiAgICBzdGF0aWMgZm9yUm9vdChhcHBzOiBQbGFuZXRBcHBsaWNhdGlvbltdKTogTW9kdWxlV2l0aFByb3ZpZGVyczxOZ3hQbGFuZXRNb2R1bGU+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgIG5nTW9kdWxlOiBOZ3hQbGFuZXRNb2R1bGUsXG4gICAgICAgICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIHByb3ZpZGU6IFBMQU5FVF9BUFBMSUNBVElPTlMsXG4gICAgICAgICAgICAgICAgICAgIHVzZVZhbHVlOiBhcHBzXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgXVxuICAgICAgICB9O1xuICAgIH1cbn1cbiJdfQ==
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export var SwitchModes;
3
+ (function (SwitchModes) {
4
+ SwitchModes["default"] = "default";
5
+ SwitchModes["coexist"] = "coexist";
6
+ })(SwitchModes || (SwitchModes = {}));
7
+ const PLANET_APPLICATIONS = new InjectionToken('PLANET_APPLICATIONS');
8
+ export { PLANET_APPLICATIONS };
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LmNsYXNzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9wbGFuZXQuY2xhc3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQStDL0MsTUFBTSxDQUFOLElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNuQixrQ0FBbUIsQ0FBQTtJQUNuQixrQ0FBbUIsQ0FBQTtBQUN2QixDQUFDLEVBSFcsV0FBVyxLQUFYLFdBQVcsUUFHdEI7QUFNRCxNQUFNLG1CQUFtQixHQUFHLElBQUksY0FBYyxDQUFvQixxQkFBcUIsQ0FBQyxDQUFDO0FBRXpGLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IERlYnVnIH0gZnJvbSAnLi9kZWJ1Zyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhbmV0T3B0aW9ucyB7XG4gICAgc3dpdGNoTW9kZT86IFN3aXRjaE1vZGVzO1xuICAgIGVycm9ySGFuZGxlcjogKGVycm9yOiBFcnJvcikgPT4gdm9pZDtcbiAgICBkZWJ1Z0ZhY3Rvcnk/OiBEZWJ1Zztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQbGFuZXRBcHBsaWNhdGlvbjxURXh0cmEgPSBhbnk+IHtcbiAgICBuYW1lOiBzdHJpbmc7XG4gICAgLy8g5bqU55So5Yqg6L2955qE5a6/5Li75YWD57Sg5oiW6ICF6YCJ5oup5ZmoXG4gICAgaG9zdFBhcmVudDogc3RyaW5nIHwgSFRNTEVsZW1lbnQ7XG5cbiAgICAvLyDlrZDlupTnlKjnmoTpgInmi6nlmahcbiAgICAvKipcbiAgICAgKiBAZGVwcmVjYXRlZCBwbGVhc2UgdXNlIG5ldyBkZWZpbmVBcHBsaWNhdGlvbiB0byBzZXQgc2VsZWN0b3JcbiAgICAgKi9cbiAgICBzZWxlY3Rvcj86IHN0cmluZztcbiAgICAvLyDlrZDlupTnlKjot6/nlLHliY3nvIDot6/lvoRcbiAgICByb3V0ZXJQYXRoUHJlZml4OiBzdHJpbmcgfCBSZWdFeHA7XG4gICAgLy8g5a6/5Li75YWD57Sg6ZmE5Yqg5qC35byPXG4gICAgaG9zdENsYXNzPzogc3RyaW5nIHwgc3RyaW5nW107XG4gICAgLy8g5piv5ZCm6ZyA6KaB6aKE5Yqg6L29XG4gICAgcHJlbG9hZD86IGJvb2xlYW47XG4gICAgLy8g5piv5ZCm5byA5ZCv5rKZ566xXG4gICAgc2FuZGJveD86IGJvb2xlYW47XG4gICAgLy8g5YiH5o2i5bqU55So55qE5qih5byPXG4gICAgc3dpdGNoTW9kZT86IFN3aXRjaE1vZGVzO1xuICAgIC8vIOi1hOa6kOaWh+S7tui3r+W+hOeahOWJjee8gFxuICAgIHJlc291cmNlUGF0aFByZWZpeD86IHN0cmluZztcbiAgICAvLyDmoLflvI/liY3nvIBcbiAgICBzdHlsZVByZWZpeD86IHN0cmluZztcbiAgICAvLyDmoLflvI/otYTmupDmlofku7ZcbiAgICBzdHlsZXM/OiBzdHJpbmdbXTtcbiAgICAvLyDohJrmnKzotYTmupDmlofku7ZcbiAgICBzY3JpcHRzPzogc3RyaW5nW107XG4gICAgLy8g5Liy6KGM5Yqg6L2977yM6buY6K6k5bm26KGM5Yqg6L296ISa5pys6LWE5rqQXG4gICAgbG9hZFNlcmlhbD86IGJvb2xlYW47XG4gICAgLy8g55qu6IKk5qC35byP55qE6Lev5b6EXG4gICAgdGhlbWVTdHlsZXNQYXRoPzogc3RyaW5nO1xuICAgIC8vIOW6lOeUqOeoi+W6j+aJk+WMheWQjueahOiEmuacrOWSjOagt+W8j+aWh+S7tuabv+aNolxuICAgIG1hbmlmZXN0Pzogc3RyaW5nO1xuICAgIC8vIOmZhOWKoOaVsOaNru+8jOS4u+imgeW6lOeUqOS6juS4muWKoe+8jOavlOWmguWbvuagh++8jOWtkOW6lOeUqOeahOminOiJsu+8jOaYvuekuuWQjeetieS4quaAp+WMlumFjee9rlxuICAgIGV4dHJhPzogVEV4dHJhO1xufVxuXG5leHBvcnQgZW51bSBTd2l0Y2hNb2RlcyB7XG4gICAgZGVmYXVsdCA9ICdkZWZhdWx0JyxcbiAgICBjb2V4aXN0ID0gJ2NvZXhpc3QnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGxhbmV0Um91dGVyRXZlbnQge1xuICAgIHVybDogc3RyaW5nO1xufVxuXG5jb25zdCBQTEFORVRfQVBQTElDQVRJT05TID0gbmV3IEluamVjdGlvblRva2VuPFBsYW5ldEFwcGxpY2F0aW9uPignUExBTkVUX0FQUExJQ0FUSU9OUycpO1xuXG5leHBvcnQgeyBQTEFORVRfQVBQTElDQVRJT05TIH07XG4iXX0=