@worktile/planet 12.1.0 → 13.0.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.
- package/application/planet-application-loader.d.ts +3 -0
- package/application/planet-application-loader.d.ts.map +1 -1
- package/application/planet-application-ref.d.ts +8 -8
- package/application/planet-application-ref.d.ts.map +1 -1
- package/application/planet-application.service.d.ts +4 -1
- package/application/planet-application.service.d.ts.map +1 -1
- package/application/portal-application.d.ts +6 -6
- package/application/portal-application.d.ts.map +1 -1
- package/assets-loader.d.ts +3 -0
- package/assets-loader.d.ts.map +1 -1
- package/component/planet-component-loader.d.ts +3 -0
- package/component/planet-component-loader.d.ts.map +1 -1
- package/empty/empty.component.d.ts +3 -0
- package/empty/empty.component.d.ts.map +1 -1
- package/esm2020/application/planet-application-loader.mjs +454 -0
- package/esm2020/application/planet-application-ref.mjs +94 -0
- package/esm2020/application/planet-application.service.mjs +85 -0
- package/esm2020/application/portal-application.mjs +16 -0
- package/{esm2015/assets-loader.js → esm2020/assets-loader.mjs} +9 -10
- package/esm2020/component/planet-component-loader.mjs +153 -0
- package/{esm2015/component/planet-component-ref.js → esm2020/component/planet-component-ref.mjs} +0 -0
- package/{esm2015/component/plant-component.config.js → esm2020/component/plant-component.config.mjs} +0 -0
- package/esm2020/debug.mjs +33 -0
- package/esm2020/empty/empty.component.mjs +15 -0
- package/{esm2015/global-event-dispatcher.js → esm2020/global-event-dispatcher.mjs} +9 -10
- package/esm2020/global-planet.mjs +53 -0
- package/esm2020/helpers.mjs +119 -0
- package/esm2020/module.mjs +31 -0
- package/{esm2015/planet.class.js → esm2020/planet.class.mjs} +0 -0
- package/esm2020/planet.mjs +91 -0
- package/{esm2015/public-api.js → esm2020/public-api.mjs} +0 -0
- package/{esm2015/sandbox/constants.js → esm2020/sandbox/constants.mjs} +0 -0
- package/{esm2015/sandbox/exec.js → esm2020/sandbox/exec.mjs} +0 -0
- package/{esm2015/sandbox/index.js → esm2020/sandbox/index.mjs} +0 -0
- package/{esm2015/sandbox/proxy/patches/document.js → esm2020/sandbox/proxy/patches/document.mjs} +0 -0
- package/{esm2015/sandbox/proxy/patches/eventListener.js → esm2020/sandbox/proxy/patches/eventListener.mjs} +0 -0
- package/{esm2015/sandbox/proxy/patches/index.js → esm2020/sandbox/proxy/patches/index.mjs} +0 -0
- package/{esm2015/sandbox/proxy/patches/storage.js → esm2020/sandbox/proxy/patches/storage.mjs} +0 -0
- package/{esm2015/sandbox/proxy/patches/timer.js → esm2020/sandbox/proxy/patches/timer.mjs} +0 -0
- package/esm2020/sandbox/proxy/proxies/common.mjs +132 -0
- package/esm2020/sandbox/proxy/proxies/document.mjs +126 -0
- package/esm2020/sandbox/proxy/proxies/window.mjs +158 -0
- package/{esm2015/sandbox/proxy/proxy-sandbox.js → esm2020/sandbox/proxy/proxy-sandbox.mjs} +2 -2
- package/{esm2015/sandbox/proxy/types.js → esm2020/sandbox/proxy/types.mjs} +0 -0
- package/esm2020/sandbox/sandbox.mjs +7 -0
- package/{esm2015/sandbox/snapshot/snapshot-sandbox.js → esm2020/sandbox/snapshot/snapshot-sandbox.mjs} +0 -0
- package/{esm2015/sandbox/types.js → esm2020/sandbox/types.mjs} +0 -0
- package/esm2020/worktile-planet.mjs +5 -0
- package/fesm2015/worktile-planet.mjs +2049 -0
- package/fesm2015/worktile-planet.mjs.map +1 -0
- package/{fesm2015/worktile-planet.js → fesm2020/worktile-planet.mjs} +129 -119
- package/fesm2020/worktile-planet.mjs.map +1 -0
- package/global-event-dispatcher.d.ts +3 -0
- package/global-event-dispatcher.d.ts.map +1 -1
- package/global-planet.d.ts +3 -3
- package/global-planet.d.ts.map +1 -1
- package/helpers.d.ts +1 -1
- package/helpers.d.ts.map +1 -1
- package/module.d.ts +6 -0
- package/module.d.ts.map +1 -1
- package/package.json +28 -12
- package/planet.d.ts +4 -1
- package/planet.d.ts.map +1 -1
- package/sandbox/proxy/proxy-sandbox.d.ts.map +1 -1
- package/sandbox/sandbox.d.ts.map +1 -1
- package/worktile-planet.d.ts +1 -1
- package/worktile-planet.d.ts.map +1 -1
- package/application/planet-application-loader.ngfactory.d.ts.map +0 -1
- package/application/planet-application.service.ngfactory.d.ts.map +0 -1
- package/assets-loader.ngfactory.d.ts.map +0 -1
- package/bundles/worktile-planet.umd.js +0 -2552
- package/bundles/worktile-planet.umd.js.map +0 -1
- package/component/planet-component-loader.ngfactory.d.ts.map +0 -1
- package/empty/empty.component.ngfactory.d.ts.map +0 -1
- package/esm2015/application/planet-application-loader.js +0 -452
- package/esm2015/application/planet-application-ref.js +0 -94
- package/esm2015/application/planet-application.service.js +0 -87
- package/esm2015/application/portal-application.js +0 -16
- package/esm2015/component/planet-component-loader.js +0 -155
- package/esm2015/debug.js +0 -33
- package/esm2015/empty/empty.component.js +0 -10
- package/esm2015/global-planet.js +0 -51
- package/esm2015/helpers.js +0 -119
- package/esm2015/module.js +0 -27
- package/esm2015/planet.js +0 -90
- package/esm2015/sandbox/proxy/proxies/common.js +0 -132
- package/esm2015/sandbox/proxy/proxies/document.js +0 -126
- package/esm2015/sandbox/proxy/proxies/window.js +0 -155
- package/esm2015/sandbox/sandbox.js +0 -7
- package/esm2015/worktile-planet.js +0 -6
- package/fesm2015/worktile-planet.js.map +0 -1
- package/global-event-dispatcher.ngfactory.d.ts.map +0 -1
- package/module.ngfactory.d.ts.map +0 -1
- package/planet.ngfactory.d.ts.map +0 -1
- package/worktile-planet.metadata.json +0 -1
|
@@ -1,94 +0,0 @@
|
|
|
1
|
-
import { NgZone } from '@angular/core';
|
|
2
|
-
import { Router, NavigationEnd } from '@angular/router';
|
|
3
|
-
import { take } from 'rxjs/operators';
|
|
4
|
-
import { from } from 'rxjs';
|
|
5
|
-
import { getTagNameByTemplate } from '../helpers';
|
|
6
|
-
import { getSandboxInstance } from '../sandbox/';
|
|
7
|
-
export class PlanetApplicationRef {
|
|
8
|
-
constructor(name, options) {
|
|
9
|
-
this.name = name;
|
|
10
|
-
if (options) {
|
|
11
|
-
this.template = options.template;
|
|
12
|
-
this.innerSelector = this.template ? getTagNameByTemplate(this.template) : null;
|
|
13
|
-
this.appModuleBootstrap = options.bootstrap;
|
|
14
|
-
}
|
|
15
|
-
// This is a hack, since NgZone doesn't allow you to configure the property that identifies your zone.
|
|
16
|
-
// See https://github.com/PlaceMe-SAS/single-spa-angular-cli/issues/33,
|
|
17
|
-
NgZone.isInAngularZone = () => {
|
|
18
|
-
// @ts-ignore
|
|
19
|
-
return window.Zone.current._properties[`ngx-planet-${name}`] === true;
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
get selector() {
|
|
23
|
-
return this.innerSelector;
|
|
24
|
-
}
|
|
25
|
-
get bootstrapped() {
|
|
26
|
-
return !!this.appModuleRef;
|
|
27
|
-
}
|
|
28
|
-
get ngZone() {
|
|
29
|
-
return this.appModuleRef.injector.get(NgZone);
|
|
30
|
-
}
|
|
31
|
-
get sandbox() {
|
|
32
|
-
return getSandboxInstance();
|
|
33
|
-
}
|
|
34
|
-
// 子应用路由变化后同步修改 portal 的 Route
|
|
35
|
-
syncPortalRouteWhenNavigationEnd() {
|
|
36
|
-
const router = this.appModuleRef.injector.get(Router);
|
|
37
|
-
if (router) {
|
|
38
|
-
router.events.subscribe(event => {
|
|
39
|
-
if (event instanceof NavigationEnd) {
|
|
40
|
-
this.ngZone.onStable
|
|
41
|
-
.asObservable()
|
|
42
|
-
.pipe(take(1))
|
|
43
|
-
.subscribe(() => {
|
|
44
|
-
this.portalApp.router.navigateByUrl(event.url);
|
|
45
|
-
});
|
|
46
|
-
}
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
bootstrap(app) {
|
|
51
|
-
if (!this.appModuleBootstrap) {
|
|
52
|
-
throw new Error(`app(${this.name}) is not defined`);
|
|
53
|
-
}
|
|
54
|
-
this.portalApp = app;
|
|
55
|
-
return from(this.appModuleBootstrap(app).then(appModuleRef => {
|
|
56
|
-
this.appModuleRef = appModuleRef;
|
|
57
|
-
this.appModuleRef.instance.appName = this.name;
|
|
58
|
-
this.syncPortalRouteWhenNavigationEnd();
|
|
59
|
-
return this;
|
|
60
|
-
}));
|
|
61
|
-
}
|
|
62
|
-
getRouter() {
|
|
63
|
-
return this.appModuleRef.injector.get(Router);
|
|
64
|
-
}
|
|
65
|
-
getCurrentRouterStateUrl() {
|
|
66
|
-
return this.getRouter().routerState.snapshot.url;
|
|
67
|
-
}
|
|
68
|
-
navigateByUrl(url) {
|
|
69
|
-
const router = this.getRouter();
|
|
70
|
-
this.ngZone.run(() => {
|
|
71
|
-
router.navigateByUrl(url);
|
|
72
|
-
});
|
|
73
|
-
}
|
|
74
|
-
getComponentFactory() {
|
|
75
|
-
return this.componentFactory;
|
|
76
|
-
}
|
|
77
|
-
registerComponentFactory(componentFactory) {
|
|
78
|
-
this.componentFactory = componentFactory;
|
|
79
|
-
}
|
|
80
|
-
destroy() {
|
|
81
|
-
if (this.appModuleRef) {
|
|
82
|
-
const router = this.appModuleRef.injector.get(Router);
|
|
83
|
-
if (router) {
|
|
84
|
-
router.dispose();
|
|
85
|
-
}
|
|
86
|
-
if (this.sandbox) {
|
|
87
|
-
this.sandbox.destroy();
|
|
88
|
-
}
|
|
89
|
-
this.appModuleRef.destroy();
|
|
90
|
-
delete this.appModuleRef;
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWFwcGxpY2F0aW9uLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvYXBwbGljYXRpb24vcGxhbmV0LWFwcGxpY2F0aW9uLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEQsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RDLE9BQU8sRUFBYyxJQUFJLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJeEMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sWUFBWSxDQUFDO0FBQ2xELE9BQU8sRUFBRSxrQkFBa0IsRUFBVyxNQUFNLGFBQWEsQ0FBQztBQWMxRCxNQUFNLE9BQU8sb0JBQW9CO0lBeUI3QixZQUFZLElBQVksRUFBRSxPQUF5QjtRQUMvQyxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQztRQUNqQixJQUFJLE9BQU8sRUFBRTtZQUNULElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQztZQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1lBQ2hGLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxPQUFPLENBQUMsU0FBUyxDQUFDO1NBQy9DO1FBQ0Qsc0dBQXNHO1FBQ3RHLHVFQUF1RTtRQUN2RSxNQUFNLENBQUMsZUFBZSxHQUFHLEdBQUcsRUFBRTtZQUMxQixhQUFhO1lBQ2IsT0FBTyxNQUFNLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxXQUFXLENBQUMsY0FBYyxJQUFJLEVBQUUsQ0FBQyxLQUFL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QztZQUN0RCxJQUFJLE1BQU0sRUFBRTtnQkFDUixNQUFNLENBQUMsT0FBTyxFQUFFLENBQUM7YUFDcEI7WUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUMxQjtZQUNELElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDNUIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO1NBQzVCO0lBQ0wsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgTmdNb2R1bGVSZWYsIE5nWm9uZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUm91dGVyLCBOYXZpZ2F0aW9uRW5kIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcbmltcG9ydCB7IHRha2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBmcm9tIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQbGFuZXRQb3J0YWxBcHBsaWNhdGlvbiB9IGZyb20gJy4vcG9ydGFsLWFwcGxpY2F0aW9uJztcbmltcG9ydCB7IFBsYW50Q29tcG9uZW50Q29uZmlnIH0gZnJvbSAnLi4vY29tcG9uZW50L3BsYW50LWNvbXBvbmVudC5jb25maWcnO1xuaW1wb3J0IHsgUGxhbmV0Q29tcG9uZW50UmVmIH0gZnJvbSAnLi4vY29tcG9uZW50L3BsYW5ldC1jb21wb25lbnQtcmVmJztcbmltcG9ydCB7IGdldFRhZ05hbWVCeVRlbXBsYXRlIH0gZnJvbSAnLi4vaGVscGVycyc7XG5pbXBvcnQgeyBnZXRTYW5kYm94SW5zdGFuY2UsIFNhbmRib3ggfSBmcm9tICcuLi9zYW5kYm94Lyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyB7XG4gICAgdGVtcGxhdGU6IHN0cmluZztcbiAgICBib290c3RyYXA6IEJvb3RzdHJhcEFwcE1vZHVsZTtcbn1cblxuZXhwb3J0IHR5cGUgQm9vdHN0cmFwQXBwTW9kdWxlID0gKHBvcnRhbEFwcD86IFBsYW5ldFBvcnRhbEFwcGxpY2F0aW9uKSA9PiBQcm9taXNlPE5nTW9kdWxlUmVmPGFueT4+O1xuXG5leHBvcnQgdHlwZSBQbGFudENvbXBvbmVudEZhY3RvcnkgPSA8VERhdGEsIFRDb21wPihcbiAgICBjb21wb25lbnROYW1lOiBzdHJpbmcsXG4gICAgY29uZmlnOiBQbGFudENvbXBvbmVudENvbmZpZzxURGF0YT5cbikgPT4gUGxhbmV0Q29tcG9uZW50UmVmPFRDb21wPjtcblxuZXhwb3J0IGNsYXNzIFBsYW5ldEFwcGxpY2F0aW9uUmVmIHtcbiAgICBwdWJsaWMgYXBwTW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+O1xuICAgIHB1YmxpYyB0ZW1wbGF0ZTogc3RyaW5nO1xuICAgIHByaXZhdGUgaW5uZXJTZWxlY3Rvcjogc3RyaW5nO1xuICAgIHByaXZhdGUgbmFtZTogc3RyaW5nO1xuICAgIHByaXZhdGUgcG9ydGFsQXBwOiBQbGFuZXRQb3J0YWxBcHBsaWNhdGlvbjtcbiAgICBwcml2YXRlIGFwcE1vZHVsZUJvb3RzdHJhcDogKGFwcDogUGxhbmV0UG9ydGFsQXBwbGljYXRpb24pID0+IFByb21pc2U8TmdNb2R1bGVSZWY8YW55Pj47XG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5OiBQbGFudENvbXBvbmVudEZhY3Rvcnk7XG5cbiAgICBwdWJsaWMgZ2V0IHNlbGVjdG9yKCkge1xuICAgICAgICByZXR1cm4gdGhpcy5pbm5lclNlbGVjdG9yO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9vdHN0cmFwcGVkKCkge1xuICAgICAgICByZXR1cm4gISF0aGlzLmFwcE1vZHVsZVJlZjtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IG5nWm9uZSgpOiBOZ1pvbmUge1xuICAgICAgICByZXR1cm4gdGhpcy5hcHBNb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KE5nWm9uZSk7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBzYW5kYm94KCk6IFNhbmRib3gge1xuICAgICAgICByZXR1cm4gZ2V0U2FuZGJveEluc3RhbmNlKCk7XG4gICAgfVxuXG4gICAgY29uc3RydWN0b3IobmFtZTogc3RyaW5nLCBvcHRpb25zOiBCb290c3RyYXBPcHRpb25zKSB7XG4gICAgICAgIHRoaXMubmFtZSA9IG5hbWU7XG4gICAgICAgIGlmIChvcHRpb25zKSB7XG4gICAgICAgICAgICB0aGlzLnRlbXBsYXRlID0gb3B0aW9ucy50ZW1wbGF0ZTtcbiAgICAgICAgICAgIHRoaXMuaW5uZXJTZWxlY3RvciA9IHRoaXMudGVtcGxhdGUgPyBnZXRUYWdOYW1lQnlUZW1wbGF0ZSh0aGlzLnRlbXBsYXRlKSA6IG51bGw7XG4gICAgICAgICAgICB0aGlzLmFwcE1vZHVsZUJvb3RzdHJhcCA9IG9wdGlvbnMuYm9vdHN0cmFwO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoaXMgaXMgYSBoYWNrLCBzaW5jZSBOZ1pvbmUgZG9lc24ndCBhbGxvdyB5b3UgdG8gY29uZmlndXJlIHRoZSBwcm9wZXJ0eSB0aGF0IGlkZW50aWZpZXMgeW91ciB6b25lLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1BsYWNlTWUtU0FTL3NpbmdsZS1zcGEtYW5ndWxhci1jbGkvaXNzdWVzLzMzLFxuICAgICAgICBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lID0gKCkgPT4ge1xuICAgICAgICAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAgICAgcmV0dXJuIHdpbmRvdy5ab25lLmN1cnJlbnQuX3Byb3BlcnRpZXNbYG5neC1wbGFuZXQtJHtuYW1lfWBdID09PSB0cnVlO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIC8vIOWtkOW6lOeUqOi3r+eUseWPmOWMluWQjuWQjOatpeS/ruaUuSBwb3J0YWwg55qEIFJvdXRlXG4gICAgcHJpdmF0ZSBzeW5jUG9ydGFsUm91dGVXaGVuTmF2aWdhdGlvbkVuZCgpIHtcbiAgICAgICAgY29uc3Qgcm91dGVyID0gdGhpcy5hcHBNb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG4gICAgICAgIGlmIChyb3V0ZXIpIHtcbiAgICAgICAgICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lLm9uU3RhYmxlXG4gICAgICAgICAgICAgICAgICAgICAgICAuYXNPYnNlcnZhYmxlKClcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKHRha2UoMSkpXG4gICAgICAgICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcnRhbEFwcC5yb3V0ZXIubmF2aWdhdGVCeVVybChldmVudC51cmwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBib290c3RyYXAoYXBwOiBQbGFuZXRQb3J0YWxBcHBsaWNhdGlvbik6IE9ic2VydmFibGU8dGhpcz4ge1xuICAgICAgICBpZiAoIXRoaXMuYXBwTW9kdWxlQm9vdHN0cmFwKSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYGFwcCgke3RoaXMubmFtZX0pIGlzIG5vdCBkZWZpbmVkYCk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5wb3J0YWxBcHAgPSBhcHA7XG4gICAgICAgIHJldHVybiBmcm9tKFxuICAgICAgICAgICAgdGhpcy5hcHBNb2R1bGVCb290c3RyYXAoYXBwKS50aGVuKGFwcE1vZHVsZVJlZiA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBNb2R1bGVSZWYgPSBhcHBNb2R1bGVSZWY7XG4gICAgICAgICAgICAgICAgdGhpcy5hcHBNb2R1bGVSZWYuaW5zdGFuY2UuYXBwTmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgICAgICAgICB0aGlzLnN5bmNQb3J0YWxSb3V0ZVdoZW5OYXZpZ2F0aW9uRW5kKCk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXM7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGdldFJvdXRlcigpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwTW9kdWxlUmVmLmluamVjdG9yLmdldChSb3V0ZXIpO1xuICAgIH1cblxuICAgIGdldEN1cnJlbnRSb3V0ZXJTdGF0ZVVybCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuZ2V0Um91dGVyKCkucm91dGVyU3RhdGUuc25hcHNob3QudXJsO1xuICAgIH1cblxuICAgIG5hdmlnYXRlQnlVcmwodXJsOiBzdHJpbmcpOiB2b2lkIHtcbiAgICAgICAgY29uc3Qgcm91dGVyID0gdGhpcy5nZXRSb3V0ZXIoKTtcbiAgICAgICAgdGhpcy5uZ1pvbmUucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZUJ5VXJsKHVybCk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldENvbXBvbmVudEZhY3RvcnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudEZhY3Rvcnk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudEZhY3Rvcnk6IFBsYW50Q29tcG9uZW50RmFjdG9yeSkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnkgPSBjb21wb25lbnRGYWN0b3J5O1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFwcE1vZHVsZVJlZikge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVyID0gdGhpcy5hcHBNb2R1bGVSZWYuaW5qZWN0b3IuZ2V0KFJvdXRlcik7XG4gICAgICAgICAgICBpZiAocm91dGVyKSB7XG4gICAgICAgICAgICAgICAgcm91dGVyLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNhbmRib3gpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhbmRib3guZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hcHBNb2R1bGVSZWYuZGVzdHJveSgpO1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYXBwTW9kdWxlUmVmO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
2
|
-
import { HttpClient } from '@angular/common/http';
|
|
3
|
-
import { shareReplay, map } from 'rxjs/operators';
|
|
4
|
-
import { coerceArray } from '../helpers';
|
|
5
|
-
import { AssetsLoader } from '../assets-loader';
|
|
6
|
-
import { getApplicationService } from '../global-planet';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common/http";
|
|
9
|
-
import * as i2 from "../assets-loader";
|
|
10
|
-
export class PlanetApplicationService {
|
|
11
|
-
constructor(http, assetsLoader) {
|
|
12
|
-
this.http = http;
|
|
13
|
-
this.assetsLoader = assetsLoader;
|
|
14
|
-
this.apps = [];
|
|
15
|
-
this.appsMap = {};
|
|
16
|
-
if (getApplicationService()) {
|
|
17
|
-
throw new Error('PlanetApplicationService has been injected in the portal, repeated injection is not allowed');
|
|
18
|
-
}
|
|
19
|
-
}
|
|
20
|
-
register(appOrApps) {
|
|
21
|
-
const apps = coerceArray(appOrApps);
|
|
22
|
-
apps.forEach(app => {
|
|
23
|
-
if (this.appsMap[app.name]) {
|
|
24
|
-
throw new Error(`${app.name} has be registered.`);
|
|
25
|
-
}
|
|
26
|
-
this.apps.push(app);
|
|
27
|
-
this.appsMap[app.name] = app;
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
registerByUrl(url) {
|
|
31
|
-
const result = this.http.get(`${url}`).pipe(map(apps => {
|
|
32
|
-
if (apps && Array.isArray(apps)) {
|
|
33
|
-
this.register(apps);
|
|
34
|
-
}
|
|
35
|
-
else {
|
|
36
|
-
this.register(apps);
|
|
37
|
-
}
|
|
38
|
-
}), shareReplay());
|
|
39
|
-
result.subscribe();
|
|
40
|
-
return result;
|
|
41
|
-
}
|
|
42
|
-
unregister(name) {
|
|
43
|
-
if (this.appsMap[name]) {
|
|
44
|
-
delete this.appsMap[name];
|
|
45
|
-
this.apps = this.apps.filter(app => {
|
|
46
|
-
return app.name !== name;
|
|
47
|
-
});
|
|
48
|
-
}
|
|
49
|
-
}
|
|
50
|
-
getAppsByMatchedUrl(url) {
|
|
51
|
-
return this.getApps().filter(app => {
|
|
52
|
-
if (app.routerPathPrefix instanceof RegExp) {
|
|
53
|
-
return app.routerPathPrefix.test(url);
|
|
54
|
-
}
|
|
55
|
-
else {
|
|
56
|
-
return url.startsWith(app.routerPathPrefix);
|
|
57
|
-
}
|
|
58
|
-
});
|
|
59
|
-
}
|
|
60
|
-
getAppByName(name) {
|
|
61
|
-
return this.appsMap[name];
|
|
62
|
-
}
|
|
63
|
-
getAppsToPreload(excludeAppNames) {
|
|
64
|
-
return this.getApps().filter(app => {
|
|
65
|
-
if (excludeAppNames) {
|
|
66
|
-
return app.preload && !excludeAppNames.includes(app.name);
|
|
67
|
-
}
|
|
68
|
-
else {
|
|
69
|
-
return app.preload;
|
|
70
|
-
}
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
|
-
getApps() {
|
|
74
|
-
return this.apps;
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
PlanetApplicationService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlanetApplicationService_Factory() { return new PlanetApplicationService(i0.ɵɵinject(i1.HttpClient), i0.ɵɵinject(i2.AssetsLoader)); }, token: PlanetApplicationService, providedIn: "root" });
|
|
78
|
-
PlanetApplicationService.decorators = [
|
|
79
|
-
{ type: Injectable, args: [{
|
|
80
|
-
providedIn: 'root'
|
|
81
|
-
},] }
|
|
82
|
-
];
|
|
83
|
-
PlanetApplicationService.ctorParameters = () => [
|
|
84
|
-
{ type: HttpClient },
|
|
85
|
-
{ type: AssetsLoader }
|
|
86
|
-
];
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGxhbmV0LWFwcGxpY2F0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wYWNrYWdlcy9wbGFuZXQvc3JjL2FwcGxpY2F0aW9uL3BsYW5ldC1hcHBsaWNhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBRSxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUV6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7QUFDaEQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFLekQsTUFBTSxPQUFPLHdCQUF3QjtJQUtqQyxZQUFvQixJQUFnQixFQUFVLFlBQTBCO1FBQXBELFNBQUksR0FBSixJQUFJLENBQVk7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUpoRSxTQUFJLEdBQXdCLEVBQUUsQ0FBQztRQUUvQixZQUFPLEdBQXlDLEVBQUUsQ0FBQztRQUd2RCxJQUFJLHFCQUFxQixFQUFFLEVBQUU7WUFDekIsTUFBTSxJQUFJLEtBQUssQ0FDWCw2RkFBNkYsQ0FDaEcsQ0FBQztTQUNMO0lBQ0wsQ0FBQztJQUVELFFBQVEsQ0FBUyxTQUFrRTtRQUMvRSxNQUFNLElBQUksR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtZQUNmLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUMsSUFBSSxxQkFBcUIsQ0FBQyxDQUFDO2FBQ3JEO1lBQ0QsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDcEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDO1FBQ2pDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGFBQWEsQ0FBQyxHQUFXO1FBQ3JCLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQ3ZDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRTtZQUNQLElBQUksSUFBSSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQzdCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDdkI7aUJBQU07Z0JBQ0gsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUF5QixDQUFDLENBQUM7YUFDNUM7UUFDTCxDQUFDLENBQUMsRUFDRixXQUFXLEVBQUUsQ0FDaEIsQ0FBQztRQUNGLE1BQU0sQ0FBQyxTQUFTLEVBQUUsQ0FBQztRQUNuQixPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0lBRUQsVUFBVSxDQUFDLElBQVk7UUFDbkIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxQixJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFO2dCQUMvQixPQUFPLEdBQUcsQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDO1lBQzdCLENBQUMsQ0FBQyxDQUFDO1NBQ047SUFDTCxDQUFDO0lBRUQsbUJBQW1CLENBQVMsR0FBVztRQUNuQyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLFlBQVksTUFBTSxFQUFFO2dCQUN4QyxPQUFPLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7YUFDekM7aUJBQU07Z0JBQ0gsT0FBTyxHQUFHLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2FBQy9DO1FBQ0wsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQsWUFBWSxDQUFDLElBQVk7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxnQkFBZ0IsQ0FBQyxlQUEwQjtRQUN2QyxPQUFPLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0IsSUFBSSxlQUFlLEVBQUU7Z0JBQ2pCLE9BQU8sR0FBRyxDQUFDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzdEO2lCQUFNO2dCQUNILE9BQU8sR0FBRyxDQUFDLE9BQU8sQ0FBQzthQUN0QjtRQUNMLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELE9BQU87UUFDSCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7SUFDckIsQ0FBQzs7OztZQTdFSixVQUFVLFNBQUM7Z0JBQ1IsVUFBVSxFQUFFLE1BQU07YUFDckI7OztZQVRRLFVBQVU7WUFJVixZQUFZIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhbmV0QXBwbGljYXRpb24gfSBmcm9tICcuLi9wbGFuZXQuY2xhc3MnO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgSHR0cENsaWVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IHNoYXJlUmVwbGF5LCBtYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjb2VyY2VBcnJheSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQXNzZXRzTG9hZGVyIH0gZnJvbSAnLi4vYXNzZXRzLWxvYWRlcic7XG5pbXBvcnQgeyBnZXRBcHBsaWNhdGlvblNlcnZpY2UgfSBmcm9tICcuLi9nbG9iYWwtcGxhbmV0JztcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBQbGFuZXRBcHBsaWNhdGlvblNlcnZpY2Uge1xuICAgIHByaXZhdGUgYXBwczogUGxhbmV0QXBwbGljYXRpb25bXSA9IFtdO1xuXG4gICAgcHJpdmF0ZSBhcHBzTWFwOiB7IFtrZXk6IHN0cmluZ106IFBsYW5ldEFwcGxpY2F0aW9uIH0gPSB7fTtcblxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBhc3NldHNMb2FkZXI6IEFzc2V0c0xvYWRlcikge1xuICAgICAgICBpZiAoZ2V0QXBwbGljYXRpb25TZXJ2aWNlKCkpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnUGxhbmV0QXBwbGljYXRpb25TZXJ2aWNlIGhhcyBiZWVuIGluamVjdGVkIGluIHRoZSBwb3J0YWwsIHJlcGVhdGVkIGluamVjdGlvbiBpcyBub3QgYWxsb3dlZCdcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICByZWdpc3RlcjxURXh0cmE+KGFwcE9yQXBwczogUGxhbmV0QXBwbGljYXRpb248VEV4dHJhPiB8IFBsYW5ldEFwcGxpY2F0aW9uPFRFeHRyYT5bXSkge1xuICAgICAgICBjb25zdCBhcHBzID0gY29lcmNlQXJyYXkoYXBwT3JBcHBzKTtcbiAgICAgICAgYXBwcy5mb3JFYWNoKGFwcCA9PiB7XG4gICAgICAgICAgICBpZiAodGhpcy5hcHBzTWFwW2FwcC5uYW1lXSkge1xuICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgJHthcHAubmFtZX0gaGFzIGJlIHJlZ2lzdGVyZWQuYCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLmFwcHMucHVzaChhcHApO1xuICAgICAgICAgICAgdGhpcy5hcHBzTWFwW2FwcC5uYW1lXSA9IGFwcDtcbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJCeVVybCh1cmw6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgICAgICBjb25zdCByZXN1bHQgPSB0aGlzLmh0dHAuZ2V0KGAke3VybH1gKS5waXBlKFxuICAgICAgICAgICAgbWFwKGFwcHMgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhcHBzICYmIEFycmF5LmlzQXJyYXkoYXBwcykpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWdpc3RlcihhcHBzKTtcbiAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnJlZ2lzdGVyKGFwcHMgYXMgUGxhbmV0QXBwbGljYXRpb24pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgc2hhcmVSZXBsYXkoKVxuICAgICAgICApO1xuICAgICAgICByZXN1bHQuc3Vic2NyaWJlKCk7XG4gICAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfVxuXG4gICAgdW5yZWdpc3RlcihuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgaWYgKHRoaXMuYXBwc01hcFtuYW1lXSkge1xuICAgICAgICAgICAgZGVsZXRlIHRoaXMuYXBwc01hcFtuYW1lXTtcbiAgICAgICAgICAgIHRoaXMuYXBwcyA9IHRoaXMuYXBwcy5maWx0ZXIoYXBwID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwLm5hbWUgIT09IG5hbWU7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldEFwcHNCeU1hdGNoZWRVcmw8VEV4dHJhPih1cmw6IHN0cmluZyk6IFBsYW5ldEFwcGxpY2F0aW9uPFRFeHRyYT5bXSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFwcHMoKS5maWx0ZXIoYXBwID0+IHtcbiAgICAgICAgICAgIGlmIChhcHAucm91dGVyUGF0aFByZWZpeCBpbnN0YW5jZW9mIFJlZ0V4cCkge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHAucm91dGVyUGF0aFByZWZpeC50ZXN0KHVybCk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiB1cmwuc3RhcnRzV2l0aChhcHAucm91dGVyUGF0aFByZWZpeCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldEFwcEJ5TmFtZShuYW1lOiBzdHJpbmcpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwc01hcFtuYW1lXTtcbiAgICB9XG5cbiAgICBnZXRBcHBzVG9QcmVsb2FkKGV4Y2x1ZGVBcHBOYW1lcz86IHN0cmluZ1tdKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldEFwcHMoKS5maWx0ZXIoYXBwID0+IHtcbiAgICAgICAgICAgIGlmIChleGNsdWRlQXBwTmFtZXMpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gYXBwLnByZWxvYWQgJiYgIWV4Y2x1ZGVBcHBOYW1lcy5pbmNsdWRlcyhhcHAubmFtZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBhcHAucHJlbG9hZDtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgfVxuXG4gICAgZ2V0QXBwcygpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYXBwcztcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
export class PlanetPortalApplication {
|
|
2
|
-
navigateByUrl(url, extras) {
|
|
3
|
-
return this.ngZone.run(() => {
|
|
4
|
-
return this.router.navigateByUrl(url, extras);
|
|
5
|
-
});
|
|
6
|
-
}
|
|
7
|
-
run(fn) {
|
|
8
|
-
return this.ngZone.run(() => {
|
|
9
|
-
return fn();
|
|
10
|
-
});
|
|
11
|
-
}
|
|
12
|
-
tick() {
|
|
13
|
-
this.applicationRef.tick();
|
|
14
|
-
}
|
|
15
|
-
}
|
|
16
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG9ydGFsLWFwcGxpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcGFja2FnZXMvcGxhbmV0L3NyYy9hcHBsaWNhdGlvbi9wb3J0YWwtYXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBSUEsTUFBTSxPQUFPLHVCQUF1QjtJQVFoQyxhQUFhLENBQUMsR0FBcUIsRUFBRSxNQUF5QjtRQUMxRCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRTtZQUN4QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUNsRCxDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxHQUFHLENBQUksRUFBeUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBSSxHQUFHLEVBQUU7WUFDM0IsT0FBTyxFQUFFLEVBQUUsQ0FBQztRQUNoQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxJQUFJO1FBQ0EsSUFBSSxDQUFDLGNBQWMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMvQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBSb3V0ZXIsIFVybFRyZWUsIE5hdmlnYXRpb25FeHRyYXMgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgTmdab25lLCBJbmplY3RvciwgQXBwbGljYXRpb25SZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEdsb2JhbEV2ZW50RGlzcGF0Y2hlciB9IGZyb20gJy4uL2dsb2JhbC1ldmVudC1kaXNwYXRjaGVyJztcblxuZXhwb3J0IGNsYXNzIFBsYW5ldFBvcnRhbEFwcGxpY2F0aW9uPFREYXRhID0gYW55PiB7XG4gICAgYXBwbGljYXRpb25SZWY6IEFwcGxpY2F0aW9uUmVmO1xuICAgIGluamVjdG9yOiBJbmplY3RvcjtcbiAgICByb3V0ZXI6IFJvdXRlcjtcbiAgICBuZ1pvbmU6IE5nWm9uZTtcbiAgICBnbG9iYWxFdmVudERpc3BhdGNoZXI6IEdsb2JhbEV2ZW50RGlzcGF0Y2hlcjtcbiAgICBkYXRhOiBURGF0YTtcblxuICAgIG5hdmlnYXRlQnlVcmwodXJsOiBzdHJpbmcgfCBVcmxUcmVlLCBleHRyYXM/OiBOYXZpZ2F0aW9uRXh0cmFzKTogUHJvbWlzZTxib29sZWFuPiB7XG4gICAgICAgIHJldHVybiB0aGlzLm5nWm9uZS5ydW4oKCkgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucm91dGVyLm5hdmlnYXRlQnlVcmwodXJsLCBleHRyYXMpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICBydW48VD4oZm46ICguLi5hcmdzOiBhbnlbXSkgPT4gVCk6IFQge1xuICAgICAgICByZXR1cm4gdGhpcy5uZ1pvbmUucnVuPFQ+KCgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiBmbigpO1xuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aWNrKCkge1xuICAgICAgICB0aGlzLmFwcGxpY2F0aW9uUmVmLnRpY2soKTtcbiAgICB9XG59XG4iXX0=
|
|
@@ -1,155 +0,0 @@
|
|
|
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
|
package/esm2015/debug.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
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=
|
|
@@ -1,10 +0,0 @@
|
|
|
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==
|
package/esm2015/global-planet.js
DELETED
|
@@ -1,51 +0,0 @@
|
|
|
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=
|