@worktile/planet 21.0.0 → 22.0.0-next.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,15 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
|
|
4
4
|
|
|
5
|
+
# [22.0.0-next.0](https://github.com/worktile/ngx-planet/compare/21.0.0...22.0.0-next.0) (2026-09-02)
|
|
6
|
+
|
|
7
|
+
|
|
8
|
+
### Features
|
|
9
|
+
|
|
10
|
+
* upgrade ng to 22 #TINFR-3767 ([eeff5e0](https://github.com/worktile/ngx-planet/commit/eeff5e07bedea83f59cc0ddc578a4ef2faa577eb)), closes [#TINFR-3767](https://github.com/worktile/ngx-planet/issues/TINFR-3767)
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
5
14
|
# [21.0.0](https://github.com/worktile/ngx-planet/compare/21.0.0-next.0...21.0.0) (2026-04-09)
|
|
6
15
|
|
|
7
16
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { InjectionToken, NgZone, NgModuleRef, inject, Injectable, signal, Injector, ApplicationRef, ChangeDetectionStrategy, Component, createComponent, reflectComponentType, TemplateRef, ElementRef, EventEmitter, Output, Input, Directive, NgModule } from '@angular/core';
|
|
3
3
|
import { Router, NavigationEnd, ActivatedRoute } from '@angular/router';
|
|
4
|
-
import { HttpClient, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
|
|
4
|
+
import { HttpClient, provideHttpClient, withXhr, withInterceptorsFromDi } from '@angular/common/http';
|
|
5
5
|
import { take, map, shareReplay, concatAll, switchMap, filter, distinctUntilChanged, catchError, tap, share, startWith, delayWhen, takeUntil } from 'rxjs/operators';
|
|
6
6
|
import { Observable, from, of, concat, forkJoin, Subject, timer } from 'rxjs';
|
|
7
7
|
|
|
@@ -1086,10 +1086,10 @@ class PlanetApplicationService {
|
|
|
1086
1086
|
getApps() {
|
|
1087
1087
|
return this.apps;
|
|
1088
1088
|
}
|
|
1089
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1090
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1089
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetApplicationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1090
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetApplicationService, providedIn: 'root' }); }
|
|
1091
1091
|
}
|
|
1092
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1092
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetApplicationService, decorators: [{
|
|
1093
1093
|
type: Injectable,
|
|
1094
1094
|
args: [{
|
|
1095
1095
|
providedIn: 'root'
|
|
@@ -1410,10 +1410,10 @@ class AssetsLoader {
|
|
|
1410
1410
|
}
|
|
1411
1411
|
}));
|
|
1412
1412
|
}
|
|
1413
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1414
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1413
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AssetsLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1414
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AssetsLoader, providedIn: 'root' }); }
|
|
1415
1415
|
}
|
|
1416
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1416
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: AssetsLoader, decorators: [{
|
|
1417
1417
|
type: Injectable,
|
|
1418
1418
|
args: [{
|
|
1419
1419
|
providedIn: 'root'
|
|
@@ -1501,10 +1501,10 @@ class GlobalEventDispatcher {
|
|
|
1501
1501
|
getSubscriptionCount() {
|
|
1502
1502
|
return this.subscriptionCount;
|
|
1503
1503
|
}
|
|
1504
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1505
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1504
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: GlobalEventDispatcher, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1505
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: GlobalEventDispatcher, providedIn: 'root' }); }
|
|
1506
1506
|
}
|
|
1507
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1507
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: GlobalEventDispatcher, decorators: [{
|
|
1508
1508
|
type: Injectable,
|
|
1509
1509
|
args: [{
|
|
1510
1510
|
providedIn: 'root'
|
|
@@ -1571,7 +1571,8 @@ class PlanetApplicationLoader {
|
|
|
1571
1571
|
this.routeChange$ = new Subject();
|
|
1572
1572
|
this.appStatusChange$ = new Subject();
|
|
1573
1573
|
this.appsLoadingStart$ = new Subject();
|
|
1574
|
-
this.innerLoading = signal(false,
|
|
1574
|
+
this.innerLoading = signal(false, /* @ts-ignore */
|
|
1575
|
+
...(ngDevMode ? [{ debugName: "innerLoading" }] : /* istanbul ignore next */ []));
|
|
1575
1576
|
/**
|
|
1576
1577
|
* @deprecated please use loading signal
|
|
1577
1578
|
*/
|
|
@@ -1980,10 +1981,10 @@ class PlanetApplicationLoader {
|
|
|
1980
1981
|
preload(app, immediate) {
|
|
1981
1982
|
return this.preloadInternal(app, immediate);
|
|
1982
1983
|
}
|
|
1983
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
1984
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
1984
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetApplicationLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1985
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetApplicationLoader, providedIn: 'root' }); }
|
|
1985
1986
|
}
|
|
1986
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
1987
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetApplicationLoader, decorators: [{
|
|
1987
1988
|
type: Injectable,
|
|
1988
1989
|
args: [{
|
|
1989
1990
|
providedIn: 'root'
|
|
@@ -2063,10 +2064,10 @@ class Planet {
|
|
|
2063
2064
|
stop() {
|
|
2064
2065
|
this.subscription?.unsubscribe();
|
|
2065
2066
|
}
|
|
2066
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2067
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2067
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: Planet, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2068
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: Planet, providedIn: 'root' }); }
|
|
2068
2069
|
}
|
|
2069
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2070
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: Planet, decorators: [{
|
|
2070
2071
|
type: Injectable,
|
|
2071
2072
|
args: [{
|
|
2072
2073
|
providedIn: 'root'
|
|
@@ -2074,10 +2075,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.6", ngImpor
|
|
|
2074
2075
|
}], ctorParameters: () => [] });
|
|
2075
2076
|
|
|
2076
2077
|
class EmptyComponent {
|
|
2077
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2078
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2078
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: EmptyComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2079
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: EmptyComponent, isStandalone: true, selector: "empty-component", ngImport: i0, template: ``, isInline: true, changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
2079
2080
|
}
|
|
2080
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2081
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: EmptyComponent, decorators: [{
|
|
2081
2082
|
type: Component,
|
|
2082
2083
|
args: [{
|
|
2083
2084
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
@@ -2281,17 +2282,16 @@ class PlanetComponentLoader {
|
|
|
2281
2282
|
result.subscribe();
|
|
2282
2283
|
return result;
|
|
2283
2284
|
}
|
|
2284
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2285
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
2285
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetComponentLoader, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
2286
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetComponentLoader, providedIn: 'root' }); }
|
|
2286
2287
|
}
|
|
2287
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2288
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetComponentLoader, decorators: [{
|
|
2288
2289
|
type: Injectable,
|
|
2289
2290
|
args: [{
|
|
2290
2291
|
providedIn: 'root'
|
|
2291
2292
|
}]
|
|
2292
2293
|
}], ctorParameters: () => [] });
|
|
2293
2294
|
|
|
2294
|
-
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
2295
2295
|
class PlanetComponentOutlet {
|
|
2296
2296
|
constructor() {
|
|
2297
2297
|
this.elementRef = inject(ElementRef);
|
|
@@ -2336,10 +2336,10 @@ class PlanetComponentOutlet {
|
|
|
2336
2336
|
this.componentRef?.dispose();
|
|
2337
2337
|
this.destroyed$.next();
|
|
2338
2338
|
}
|
|
2339
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2340
|
-
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "
|
|
2339
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetComponentOutlet, deps: [], target: i0.ɵɵFactoryTarget.Directive }); }
|
|
2340
|
+
static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "22.1.4", type: PlanetComponentOutlet, isStandalone: true, selector: "[planetComponentOutlet]", inputs: { planetComponentOutlet: "planetComponentOutlet", planetComponentOutletApp: "planetComponentOutletApp", planetComponentOutletProjectableNodes: "planetComponentOutletProjectableNodes", planetComponentOutletInitialState: "planetComponentOutletInitialState" }, outputs: { planetComponentLoaded: "planetComponentLoaded" }, usesOnChanges: true, ngImport: i0 }); }
|
|
2341
2341
|
}
|
|
2342
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2342
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: PlanetComponentOutlet, decorators: [{
|
|
2343
2343
|
type: Directive,
|
|
2344
2344
|
args: [{
|
|
2345
2345
|
selector: '[planetComponentOutlet]',
|
|
@@ -2396,14 +2396,15 @@ class RedirectToRouteComponent {
|
|
|
2396
2396
|
constructor() {
|
|
2397
2397
|
this.routeRedirect = routeRedirect();
|
|
2398
2398
|
}
|
|
2399
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2400
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "
|
|
2399
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: RedirectToRouteComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
2400
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.1.4", type: RedirectToRouteComponent, isStandalone: true, selector: "planet-redirect-to-route", ngImport: i0, template: '', isInline: true, changeDetection: i0.ChangeDetectionStrategy.Eager }); }
|
|
2401
2401
|
}
|
|
2402
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2402
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: RedirectToRouteComponent, decorators: [{
|
|
2403
2403
|
type: Component,
|
|
2404
2404
|
args: [{
|
|
2405
2405
|
selector: 'planet-redirect-to-route',
|
|
2406
2406
|
template: '',
|
|
2407
|
+
changeDetection: ChangeDetectionStrategy.Eager,
|
|
2407
2408
|
standalone: true
|
|
2408
2409
|
}]
|
|
2409
2410
|
}] });
|
|
@@ -2429,17 +2430,17 @@ class NgxPlanetModule {
|
|
|
2429
2430
|
]
|
|
2430
2431
|
};
|
|
2431
2432
|
}
|
|
2432
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
2433
|
-
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
2434
|
-
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
2433
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NgxPlanetModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
2434
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "22.1.4", ngImport: i0, type: NgxPlanetModule, imports: [PlanetComponentOutlet, EmptyComponent, RedirectToRouteComponent], exports: [EmptyComponent, PlanetComponentOutlet] }); }
|
|
2435
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NgxPlanetModule, providers: [provideHttpClient(withXhr(), withInterceptorsFromDi())] }); }
|
|
2435
2436
|
}
|
|
2436
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
2437
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.1.4", ngImport: i0, type: NgxPlanetModule, decorators: [{
|
|
2437
2438
|
type: NgModule,
|
|
2438
2439
|
args: [{
|
|
2439
2440
|
declarations: [],
|
|
2440
2441
|
exports: [EmptyComponent, PlanetComponentOutlet],
|
|
2441
2442
|
imports: [PlanetComponentOutlet, EmptyComponent, RedirectToRouteComponent],
|
|
2442
|
-
providers: [provideHttpClient(withInterceptorsFromDi())]
|
|
2443
|
+
providers: [provideHttpClient(withXhr(), withInterceptorsFromDi())]
|
|
2443
2444
|
}]
|
|
2444
2445
|
}] });
|
|
2445
2446
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktile-planet.mjs","sources":["../../../packages/planet/src/planet.class.ts","../../../packages/planet/src/helpers.ts","../../../packages/planet/src/sandbox/constants.ts","../../../packages/planet/src/sandbox/proxy/proxies/common.ts","../../../packages/planet/src/sandbox/proxy/proxies/window.ts","../../../packages/planet/src/sandbox/proxy/patches/eventListener.ts","../../../packages/planet/src/sandbox/proxy/proxies/document.ts","../../../packages/planet/src/sandbox/proxy/patches/document.ts","../../../packages/planet/src/sandbox/proxy/patches/timer.ts","../../../packages/planet/src/sandbox/proxy/patches/storage.ts","../../../packages/planet/src/sandbox/proxy/patches/index.ts","../../../packages/planet/src/sandbox/exec.ts","../../../packages/planet/src/sandbox/sandbox.ts","../../../packages/planet/src/sandbox/proxy/proxy-sandbox.ts","../../../packages/planet/src/sandbox/snapshot/snapshot-sandbox.ts","../../../packages/planet/src/sandbox/index.ts","../../../packages/planet/src/application/ng-planet-application-ref.ts","../../../packages/planet/src/global-planet.ts","../../../packages/planet/src/application/planet-application.service.ts","../../../packages/planet/src/assets-loader.ts","../../../packages/planet/src/application/portal-application.ts","../../../packages/planet/src/global-event-dispatcher.ts","../../../packages/planet/src/debug.ts","../../../packages/planet/src/application/planet-application-loader.ts","../../../packages/planet/src/planet.ts","../../../packages/planet/src/empty/empty.component.ts","../../../packages/planet/src/component/planet-component-types.ts","../../../packages/planet/src/component/planet-component-loader.ts","../../../packages/planet/src/component/planet-component-outlet.ts","../../../packages/planet/src/router/route-redirect.ts","../../../packages/planet/src/module.ts","../../../packages/planet/src/component/plant-component.config.ts","../../../packages/planet/src/public-api.ts","../../../packages/planet/src/worktile-planet.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Debug } from './debug';\n\nexport interface PlanetOptions {\n switchMode?: SwitchModes;\n errorHandler: (error: Error) => void;\n debugFactory?: Debug;\n}\n\nexport interface PlanetApplicationEntry {\n basePath?: string;\n scripts?: string[];\n styles?: string[];\n manifest?: string;\n}\n\nexport interface PlanetApplication<TExtra = any> {\n /**\n * Application name, e.g. \"app1\"\n */\n name: string;\n /**\n * Selector or Element which app host parent\n * 应用加载的宿主元素或者选择器\n */\n hostParent: string | HTMLElement;\n /**\n * Class name for host\n */\n hostClass?: string | string[];\n /**\n * Selector for sub application\n * 子应用的选择器\n * @deprecated please use new defineApplication to set selector\n */\n selector?: string;\n /**\n * Path prefix for sub application, e.g. '/app1'\n * 子应用路由前缀路径\n */\n routerPathPrefix: string | RegExp;\n /**\n * Preload enabled, default false, if enabled,the application will be loaded when idle in the background\n * 是否开启预加载,开启后会在后台提前加载此应用\n */\n preload?: boolean;\n /**\n * Sandbox enabled\n * 是否开启沙箱模式\n */\n sandbox?: boolean;\n /**\n * Switch application mode\n * default: will be destroyed when switch to other app\n * coexist: only hide app when switch to other app\n * 切换应用的模式\n */\n switchMode?: SwitchModes;\n /**\n * Style prefix, e.g. 'app1'\n * 样式前缀\n */\n stylePrefix?: string;\n /**\n * The entry of the micro application, e.g. '/static/app1/index.html'\n * If configured as string, it represents the entry html address of the micro application. e.g. '/static/app1/index.html'\n * If configured as object, the value of manifest is the html address of the micro application\n * entry.basePath: the base path of the entry, e.g. '/static/app1/'\n * entry.manifest: the manifest of the entry, e.g. 'index.html' or 'assets-manifest.json'\n * entry.scripts: the scripts of the entry, will get final scripts address by manifest and basePath\n * entry.styles: the styles of the entry, will get final styles address by manifest and basePath\n */\n entry?: string | PlanetApplicationEntry;\n /**\n * Manifest json file path, e.g. /static/app1/assets-manifest.json\n * 应用程序打包后的脚本和样式文件替换\n * @deprecated Please use entry.manifest instead\n */\n manifest?: string;\n /**\n * Path prefix of scripts and styles, e.g. 'static/app1/'\n * 资源文件路径的前缀\n * @deprecated Please use entry.basePath instead\n */\n resourcePathPrefix?: string;\n /**\n * Style static resource paths\n * 样式资源文件\n * @deprecated Please use entry.styles instead\n */\n styles?: string[];\n /**\n * Scripts static resource paths\n * 脚本资源文件\n * @deprecated Please use entry.scripts instead\n */\n scripts?: string[];\n /**\n * Serial load scripts, default is parallel, only enable when the script has sequentially loaded dependency\n * 串行加载,默认并行加载脚本资源,仅当脚本资源有依赖关系时开启\n */\n loadSerial?: boolean;\n /**\n * 皮肤样式的路径\n */\n // themeStylesPath?: string;\n /**\n * Extra data for application\n * 附加数据,主要应用于业务,比如图标,子应用的颜色,显示名等个性化配置\n */\n extra?: TExtra;\n}\n\nexport enum SwitchModes {\n default = 'default',\n coexist = 'coexist'\n}\n\nexport interface PlanetRouterEvent {\n url: string;\n}\n\nconst PLANET_APPLICATIONS = new InjectionToken<PlanetApplication>('PLANET_APPLICATIONS');\n\nexport { PLANET_APPLICATIONS };\n","import { AssetsTagItem } from './inner-types';\nimport { PlanetApplication, PlanetApplicationEntry } from './planet.class';\n\nconst ELEMENT_NODE_TYPE = 1;\n\nexport function hashCode(str: string): number {\n let hash = 0;\n let chr: number;\n if (str.length === 0) {\n return hash;\n }\n for (let i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n}\n\nexport function getHTMLElement(selector: string | HTMLElement): HTMLElement | null {\n if (selector instanceof HTMLElement) {\n return selector;\n } else {\n return document.querySelector(selector);\n }\n}\n\nexport function getTagNameByTemplate(template: string): string {\n const element = createElementByTemplate(template);\n return element ? element.nodeName : '';\n}\n\nexport function createElementByTemplate(template: string) {\n if (!template) {\n return null;\n }\n const element = document.createRange().createContextualFragment(template).firstChild;\n if (element && element.nodeType === ELEMENT_NODE_TYPE) {\n return element as HTMLElement;\n } else {\n throw new Error(`invalid template '${template}'`);\n }\n}\n\nexport function coerceArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n\nexport function isEmpty(value: any): boolean {\n if (!value || value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isObject<T extends object>(value: any): value is T {\n return value && typeof value === 'object';\n}\n/**\n * Get file name from path\n * 1. \"main.js\" => \"main.js\"\n * 2. \"assets/scripts/main.js\" => \"main.js\"\n * @param path path\n */\nexport function getResourceFileName(path: string): string {\n const lastSlashIndex = path.lastIndexOf('/');\n if (lastSlashIndex >= 0) {\n return path.slice(lastSlashIndex + 1);\n } else {\n return path;\n }\n}\n\nexport function getExtName(name: string) {\n const lastDotIndex = name.lastIndexOf('.');\n if (lastDotIndex >= 0) {\n return name.slice(lastDotIndex + 1);\n } else {\n return '';\n }\n}\n\n/**\n * Build resource path by manifest\n * if manifest is { \"main.js\": \"main.h2sh23abee.js\"}\n * 1. \"main.js\" => \"main.h2sh23abee.js\"\n * 2. \"assets/scripts/main.js\" =>\"assets/scripts/main.h2sh23abee.js\"\n * @param resourceFilePath Resource File Path\n * @param manifestResult manifest\n */\nexport function buildResourceFilePath(resourceFilePath: string, manifestResult: Record<string, AssetsTagItem>) {\n const fileName = getResourceFileName(resourceFilePath);\n if (manifestResult[fileName]) {\n return resourceFilePath.replace(fileName, manifestResult[fileName].src);\n } else {\n return resourceFilePath;\n }\n}\n\nexport function buildFullPath(path: string, basePath?: string) {\n if (basePath) {\n if (path.startsWith(basePath)) {\n return path;\n } else {\n return `${basePath}${path}`;\n }\n }\n return path;\n}\n\nfunction getDefinedAssets(app: PlanetApplication) {\n if (app.entry) {\n return {\n scripts: isObject<PlanetApplicationEntry>(app.entry) ? app.entry.scripts : undefined,\n styles: isObject<PlanetApplicationEntry>(app.entry) ? app.entry.styles : undefined\n };\n }\n return {\n scripts: app.scripts,\n styles: app.styles\n };\n}\n\nexport function getAssetsBasePath(app: PlanetApplication): string {\n let basePath: string;\n if (app.entry) {\n if (isObject<PlanetApplicationEntry>(app.entry)) {\n basePath = app.entry.basePath;\n } else {\n const lastDotIndex = app.entry.lastIndexOf('/');\n basePath = lastDotIndex > 0 ? app.entry.slice(0, lastDotIndex + 1) : undefined;\n }\n }\n return basePath || app.resourcePathPrefix;\n}\n\nfunction getAssetsByDefined(definedPaths: string[], manifest: Record<string, AssetsTagItem[]>, ext: 'js' | 'css'): AssetsTagItem[] {\n let assets: AssetsTagItem[] = [];\n if (definedPaths) {\n definedPaths.forEach(definedPath => {\n const fileName = getResourceFileName(definedPath);\n const assetsTagItem = manifest[fileName];\n assets = assets.concat(\n assetsTagItem.map(item => ({\n ...item,\n src: definedPath.replace(fileName, item.src)\n }))\n );\n });\n } else {\n Object.keys(manifest)\n .filter(key => {\n return getExtName(key) === ext;\n })\n .forEach(key => {\n assets = assets.concat(manifest[key]);\n });\n }\n return assets;\n}\n\nexport function toAssetsTagItem(src: string): AssetsTagItem {\n return {\n src: src\n };\n}\n\nexport function toAssetsTagItems(src: string[]): AssetsTagItem[] {\n return src.map(item => toAssetsTagItem(item));\n}\n\nexport function getScriptsAndStylesAssets(\n app: PlanetApplication,\n basePath: string,\n manifestResult?: Record<string, AssetsTagItem[]>\n): { scripts: AssetsTagItem[]; styles: AssetsTagItem[] } {\n const result: { scripts: AssetsTagItem[]; styles: AssetsTagItem[] } = { scripts: [], styles: [] };\n let { scripts, styles } = getDefinedAssets(app);\n // combine resource path by manifest\n if (manifestResult) {\n result.scripts = getAssetsByDefined(scripts, manifestResult, 'js');\n result.styles = getAssetsByDefined(styles, manifestResult, 'css');\n } else {\n result.scripts = toAssetsTagItems(scripts);\n result.styles = toAssetsTagItems(styles);\n }\n if (basePath) {\n result.scripts.forEach(item => {\n item.src = buildFullPath(item.src, basePath);\n });\n result.styles.forEach(item => {\n item.src = buildFullPath(item.src, basePath);\n });\n }\n return result;\n}\n","export const PLANET_SANDBOX_WINDOW_WHITELIST = window['___PLANET_SANDBOX_WINDOW_WHITELIST___'];\nexport const PLANET_SANDBOX_DOCUMENT_WHITELIST = window['___PLANET_SANDBOX_DOCUMENT_WHITELIST___'];\nexport const SANDBOX_INSTANCE = Symbol.for('PLANET_SANDBOX_INSTANCE');\nexport const RAW_NODE = Symbol.for('PLANET_RAW_NODE');\nexport const WINDOW_BIND_FN = Symbol.for('PLANET_WINDOW_BIND_FN');\nexport const DOCUMENT_BIND_FN = Symbol.for('PLANET_DOCUMENT_BIND_FN');\n","import { isObject } from '../../../helpers';\nimport { RAW_NODE } from '../../constants';\n\nconst rawHasOwnProperty = Object.prototype.hasOwnProperty;\nexport function hasOwnProp(obj: any, key: PropertyKey): boolean {\n return rawHasOwnProperty.call(obj, key);\n}\n\nexport function isValueDescriptor(desc?: PropertyDescriptor) {\n if (desc === undefined) {\n return false;\n }\n return 'value' in desc || 'writable' in desc;\n}\n\nexport function isAccessorDescriptor(desc?: PropertyDescriptor) {\n if (desc === undefined) {\n return false;\n }\n return 'get' in desc || 'set' in desc;\n}\n\nexport function isNonWriteableValue(desc?: PropertyDescriptor) {\n return desc && desc.configurable === false && 'value' in desc && desc.writable === false;\n}\n\nexport function isInvalidSetAccessor(desc?: PropertyDescriptor) {\n if (desc && desc.configurable === false && 'set' in desc && desc.set === undefined) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function isInvalidGetAccessor(desc?: PropertyDescriptor) {\n if (desc && desc.configurable === false && 'get' in desc && desc.get === undefined) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction transferParams(args: IArguments | Array<any>) {\n args = Array.isArray(args) ? args : Array.from(args);\n return args.map(arg => {\n return arg[RAW_NODE] ? arg[RAW_NODE] : arg;\n });\n}\n\nconst buildInProps: PropertyKey[] = ['length', 'caller', 'callee', 'arguments', 'prototype', Symbol.hasInstance];\nfunction transferProps(o: Function, n: Function) {\n for (const key of Reflect.ownKeys(o)) {\n if (buildInProps.includes(key)) {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(n, key);\n if (desc && desc.writable) {\n n[key] = o[key];\n }\n }\n}\n\nexport function bind(fn: any, context: any) {\n const fNOP = function() {};\n function bound() {\n const args = transferParams(arguments);\n if (this instanceof bound) {\n const obj = new fn(...args);\n Object.setPrototypeOf(obj, bound.prototype);\n return obj;\n } else {\n return fn.apply(context, args);\n }\n }\n bound.$native = fn;\n transferProps(fn, bound);\n if (fn.prototype) {\n fNOP.prototype = fn.prototype;\n }\n bound.prototype = new fNOP();\n if (Symbol.hasInstance) {\n Object.defineProperty(bound, Symbol.hasInstance, {\n configurable: true,\n value(instance: any) {\n const op = fn.prototype;\n return isObject(op) || typeof op === 'function' ? instance instanceof fn : false;\n }\n });\n }\n return bound;\n}\n\nexport function createFakeObject(target: Record<PropertyKey, any>, writableKeys?: PropertyKey[]) {\n const fakeObject = {};\n const propertyMap: Record<string, string | boolean> = {};\n const storageBox = Object.create(null);\n const propertyNames = Object.getOwnPropertyNames(target);\n const def = (p: string) => {\n const descriptor = Object.getOwnPropertyDescriptor(target, p);\n if (descriptor?.configurable) {\n const hasGetter = hasOwnProp(descriptor, 'get');\n const hasSetter = hasOwnProp(descriptor, 'set');\n const canWritable = writableKeys && writableKeys.length > 0 && writableKeys.includes(p);\n if (hasGetter) {\n descriptor.get = () => (hasOwnProp(storageBox, p) ? storageBox[p] : target[p]);\n }\n if (hasSetter) {\n descriptor.set = val => {\n storageBox[p] = val;\n return true;\n };\n }\n if (canWritable) {\n if (descriptor.writable === false) {\n descriptor.writable = true;\n } else if (hasGetter) {\n descriptor.set = val => {\n storageBox[p] = val;\n return true;\n };\n }\n }\n Object.defineProperty(fakeObject, p, Object.freeze(descriptor));\n }\n };\n propertyNames.forEach(p => {\n propertyMap[p] = true;\n def(p);\n });\n // 再次循环是为了处理原型链中的属性\n for (const prop in target) {\n if (!propertyMap[prop]) {\n def(prop);\n }\n }\n return fakeObject as any;\n}\n","import {\n hasOwnProp,\n createFakeObject,\n bind,\n isInvalidSetAccessor,\n isNonWriteableValue,\n isInvalidGetAccessor\n} from './common';\nimport { PLANET_SANDBOX_WINDOW_WHITELIST, SANDBOX_INSTANCE, WINDOW_BIND_FN } from '../../constants';\nimport { isFunction } from '../../../helpers';\nimport { ProxySandboxInstance } from '../types';\n\nconst esGlobalFunctions: PropertyKey[] = (\n 'eval,isFinite,isNaN,parseFloat,parseInt,' +\n // URL handling functions\n 'decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n // Constructor properties of the global object\n 'Array,ArrayBuffer,BigInt,BigInt64Array,BigUint64Array,Boolean,DataView,Date,Error,EvalError,' +\n 'FinalizationRegistry,Float32Array,Float64Array,Function,Int8Array,Int16Array,Int32Array,Map,Number,' +\n 'Object,Promise,Proxy,RangeError,ReferenceError,RegExp,Set,SharedArrayBuffer,String,Symbol,SyntaxError,' +\n 'TypeError,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,URIError,WeakMap,WeakRef,WeakSet,' +\n // Other Properties of the Global Object\n 'Atomics,JSON,Math,Reflect'\n).split(',');\n\nconst whitelistVariables = PLANET_SANDBOX_WINDOW_WHITELIST || [];\n\nfunction isConstructor(fn: () => void | FunctionConstructor) {\n const fp = fn.prototype;\n const hasConstructor = fp && fp.constructor === fn && Object.getOwnPropertyNames(fp).length > 1;\n const functionStr = !hasConstructor && fn.toString();\n return hasConstructor || /^function\\s+[A-Z]/.test(functionStr as string) || /^class\\b/.test(functionStr as string);\n}\n\nconst unscopables = {\n undefined: true,\n Array: true,\n Object: true,\n String: true,\n Boolean: true,\n Math: true,\n Number: true,\n Symbol: true,\n parseFloat: true,\n Float32Array: true\n};\n\nexport class ProxyWindow {\n constructor(private sandbox: ProxySandboxInstance) {}\n\n private definedVariables = new Set();\n\n private createGetter() {\n return (target: Window, key: PropertyKey, receiver: any) => {\n if (key === Symbol.unscopables) {\n return unscopables;\n }\n if (key === SANDBOX_INSTANCE) {\n return this.sandbox;\n }\n let value = null;\n if (whitelistVariables.includes(key)) {\n return Reflect.get(window, key);\n } else {\n value = hasOwnProp(target, key) ? Reflect.get(target, key, receiver) : Reflect.get(window, key);\n }\n if (isFunction(value)) {\n if (\n esGlobalFunctions.includes(key) ||\n whitelistVariables.includes(key) ||\n this.sandbox.rewriteVariables.includes(key) ||\n this.definedVariables.has(key) ||\n isConstructor(value)\n ) {\n return value;\n } else {\n const newValue = hasOwnProp(value, WINDOW_BIND_FN) ? value[WINDOW_BIND_FN] : bind(value, window);\n const desc = Object.getOwnPropertyDescriptor(target, key);\n if (isNonWriteableValue(desc)) {\n return value;\n }\n if (isInvalidGetAccessor(desc)) {\n return undefined;\n }\n value[WINDOW_BIND_FN] = newValue;\n return newValue;\n }\n } else {\n return value;\n }\n };\n }\n\n private createSetter() {\n return (target: Window, key: PropertyKey, value: unknown, receiver: any) => {\n const desc = Object.getOwnPropertyDescriptor(\n whitelistVariables.includes(key) ? window : receiver ? receiver : target,\n key\n );\n if (desc && isNonWriteableValue(desc)) {\n if (!Object.is(value, desc.value)) {\n return false;\n } else {\n return true;\n }\n }\n if (isInvalidSetAccessor(desc)) {\n return false;\n }\n if (whitelistVariables.includes(key)) {\n return Reflect.set(window, key, value);\n } else {\n const success = Reflect.set(target, key, value, receiver);\n if (success) {\n if (this.sandbox.running) {\n this.definedVariables.add(key);\n }\n }\n return success;\n }\n };\n }\n\n private createDefineProperty() {\n return (target: Window, p: PropertyKey, descriptor: PropertyDescriptor) => {\n if (whitelistVariables.includes(p)) {\n return Reflect.defineProperty(window, p, descriptor);\n } else {\n const success = Reflect.defineProperty(target, p, descriptor);\n if (this.sandbox.running && success) {\n this.definedVariables.add(p);\n }\n return success;\n }\n };\n }\n\n private createDeleteProperty() {\n return (target: Window, p: PropertyKey) => {\n if (hasOwnProp(target, p)) {\n delete (target as any)[p];\n if (this.sandbox.running && this.definedVariables.has(p)) {\n this.definedVariables.delete(p);\n }\n }\n return true;\n };\n }\n\n private createHas() {\n return (_target: Window, key: PropertyKey) => {\n return !whitelistVariables.includes(key);\n };\n }\n\n create() {\n const fakeWindow = createFakeObject(window, this.sandbox.rewriteVariables);\n const baseHandlers = {\n get: this.createGetter(),\n set: this.createSetter(),\n defineProperty: this.createDefineProperty(),\n deleteProperty: this.createDeleteProperty()\n };\n const proxy = new Proxy(fakeWindow, {\n ...baseHandlers,\n has: this.createHas()\n });\n const subProxy = new Proxy(fakeWindow, baseHandlers);\n proxy.self = subProxy;\n proxy.window = subProxy;\n proxy.globalThis = subProxy;\n proxy.top = window.top === window ? subProxy : window.top;\n proxy.parent = window.parent === window ? subProxy : window.top;\n return proxy;\n }\n}\n","import { SandboxPatchHandler, ProxySandboxInstance } from '../types';\nimport { Observable, Subscription } from 'rxjs';\n\nexport function eventListenerPatch(sandbox: ProxySandboxInstance): SandboxPatchHandler {\n const rawAddEventListener = window.addEventListener;\n const rawRemoveEventListener = window.removeEventListener;\n const listenerSubscriptions = new Map<EventListenerOrEventListenerObject, Subscription>();\n\n function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) {\n const observable = new Observable(() => {\n rawAddEventListener.call(this, type, listener, options);\n return () => {\n rawRemoveEventListener.call(this, type, listener, options);\n };\n });\n const subscription = observable.subscribe(() => {});\n listenerSubscriptions.set(listener, subscription);\n }\n\n function removeEventListener(type: string, listener: EventListenerOrEventListenerObject) {\n const subscription = listenerSubscriptions.get(listener);\n if (subscription) {\n subscription.unsubscribe();\n listenerSubscriptions.delete(listener);\n }\n }\n\n return {\n rewrite: {\n addEventListener: addEventListener.bind(window),\n removeEventListener: removeEventListener.bind(window)\n },\n init() {\n const fakeDocument = sandbox.global['document'];\n if (fakeDocument) {\n fakeDocument.addEventListener = addEventListener.bind(document);\n fakeDocument.removeEventListener = removeEventListener.bind(document);\n }\n },\n destroy() {\n listenerSubscriptions.forEach(subscription => subscription.unsubscribe());\n listenerSubscriptions.clear();\n }\n };\n}\n","import { isFunction } from '../../../helpers';\nimport { DOCUMENT_BIND_FN, PLANET_SANDBOX_DOCUMENT_WHITELIST, RAW_NODE } from '../../constants';\nimport {\n hasOwnProp,\n createFakeObject,\n isInvalidSetAccessor,\n isNonWriteableValue,\n bind,\n isInvalidGetAccessor\n} from './common';\n\nconst rawDocument = Document;\nconst whitelist: PropertyKey[] = ['cookie', 'title', 'location', ...(PLANET_SANDBOX_DOCUMENT_WHITELIST || [])];\n\nexport class ProxyDocument {\n constructor() {}\n\n private createGetter() {\n return (target: any, p: PropertyKey, receiver?: any) => {\n const value = hasOwnProp(target, p) ? Reflect.get(target, p, receiver) : Reflect.get(document, p);\n if (p === 'activeElement') {\n return Reflect.get(document, p);\n }\n // TODO: 处理动态节点\n // if (p === 'createElement') {\n // return function(tagName: string, options: ElementCreationOptions) {\n // const created = value.call(document, tagName, options);\n // if (isObject(created)) {\n // created[SANDBOX_INSTANCE] = sandbox;\n // }\n // return created;\n // };\n // }\n if (isFunction(value)) {\n let newValue = hasOwnProp(value, DOCUMENT_BIND_FN) ? value[DOCUMENT_BIND_FN] : null;\n if (!newValue) {\n newValue = bind(value, document);\n }\n const desc = Object.getOwnPropertyDescriptor(target, p);\n if (desc && isNonWriteableValue(desc)) {\n if (!Object.is(newValue, desc.value)) {\n return value;\n }\n }\n if (isInvalidGetAccessor(desc)) {\n return undefined;\n }\n value[DOCUMENT_BIND_FN] = newValue;\n return newValue;\n }\n return value;\n };\n }\n\n private createSetter() {\n return (target: any, p: PropertyKey, value: any, receiver: any) => {\n const desc = Object.getOwnPropertyDescriptor(whitelist.includes(p) ? document : receiver || target, p);\n if (desc && isNonWriteableValue(desc)) {\n if (Object.is(value, desc.value)) {\n return true;\n } else {\n return false;\n }\n }\n if (isInvalidSetAccessor(desc)) {\n return false;\n }\n return whitelist.includes(p) ? Reflect.set(document, p, value) : Reflect.set(target, p, value, receiver);\n };\n }\n\n private createDefineProperty() {\n return (target: any, p: PropertyKey, descriptor: PropertyDescriptor) => {\n return whitelist.includes(p)\n ? Reflect.defineProperty(document, p, descriptor)\n : Reflect.defineProperty(target, p, descriptor);\n };\n }\n\n create() {\n let proxyDocument = null;\n const fakeDocument = createFakeObject(document);\n const getter = this.createGetter();\n const fakeDocumentProto = new Proxy(fakeDocument, {\n get: (...args) => {\n return getter(...args);\n }\n });\n const fakeDocumentCtor = function Document() {\n if (!(this instanceof fakeDocumentCtor)) {\n throw new TypeError(`Failed to construct 'Document': Please use the 'new' operator.`);\n }\n const docInstance = new rawDocument();\n Object.setPrototypeOf(docInstance, fakeDocument);\n return docInstance;\n };\n fakeDocumentCtor.prototype = fakeDocumentProto;\n fakeDocumentCtor.prototype.constructor = fakeDocumentCtor;\n if (Symbol.hasInstance) {\n Object.defineProperty(fakeDocumentCtor, Symbol.hasInstance, {\n configurable: true,\n value(value: any) {\n let proto = value;\n if (proto === document) {\n return true;\n }\n while ((proto = Object.getPrototypeOf(proto))) {\n if (proto === fakeDocumentProto) {\n return true;\n }\n }\n const cloned = function() {};\n cloned.prototype = fakeDocument;\n return value instanceof cloned;\n }\n });\n }\n proxyDocument = new Proxy(\n Object.create(fakeDocumentProto, {\n currentScript: {\n value: null,\n writable: true\n },\n [RAW_NODE]: {\n writable: false,\n configurable: false,\n value: document\n }\n }),\n {\n set: this.createSetter(),\n defineProperty: this.createDefineProperty()\n }\n );\n return {\n document: proxyDocument,\n Document: fakeDocumentCtor\n };\n }\n}\n","import { ProxyDocument } from '../proxies/document';\nimport { SandboxPatchHandler } from '../types';\n\nexport function documentPatch(): SandboxPatchHandler {\n const proxyDocument = new ProxyDocument();\n const { document, Document } = proxyDocument.create();\n return {\n rewrite: {\n document,\n Document\n }\n };\n}\n","import { SandboxPatchHandler } from '../types';\n\nconst rawSetTimeout = window.setTimeout;\nconst rawClearTimeout = window.clearTimeout;\nconst rawSetInterval = window.setInterval;\nconst rawClearInterval = window.clearInterval;\n\nexport function timerPatch(): SandboxPatchHandler {\n const timeout = new Set<number>();\n const interval = new Set<number>();\n\n function rewriteSetTimeout(handler: TimerHandler, ms?: number, ...args: any[]) {\n const timeoutId = rawSetTimeout(handler, ms, ...args);\n timeout.add(timeoutId);\n return timeoutId;\n }\n\n function rewriteClearTimeout(timeoutId: number) {\n timeout.delete(timeoutId);\n rawClearTimeout(timeoutId);\n }\n\n function rewriteSetInterval(handler: TimerHandler, ms: number, ...args: any[]) {\n const intervalId = rawSetInterval(handler, ms, ...args);\n interval.add(intervalId);\n return intervalId;\n }\n\n function rewriteClearInterval(intervalId: number) {\n interval.delete(intervalId);\n rawClearInterval(intervalId);\n }\n\n return {\n rewrite: {\n setTimeout: rewriteSetTimeout,\n clearTimeout: rewriteClearTimeout,\n setInterval: rewriteSetInterval,\n clearInterval: rewriteClearInterval\n },\n destroy: () => {\n timeout.forEach(timeoutId => {\n rawClearTimeout(timeoutId);\n });\n interval.forEach(intervalId => {\n rawClearInterval(intervalId);\n });\n }\n };\n}\n","import { ProxySandboxInstance, SandboxPatchHandler } from '../types';\n\nconst PLANET_STORAGE_PREFIX = '__planet-storage-';\n\nexport class RewriteStorage {\n prefix: string;\n rawStorage: Storage;\n\n constructor(app: string, rawStorage: Storage) {\n this.rawStorage = rawStorage;\n this.prefix = `${PLANET_STORAGE_PREFIX}${app}__:`;\n }\n\n get length() {\n return this.getKeys().length;\n }\n\n private getKeys() {\n return Object.keys(this.rawStorage).filter(key => key.startsWith(this.prefix));\n }\n\n key(n: number) {\n const key = this.getKeys()[n];\n return key ? key.substring(this.prefix.length) : null;\n }\n\n getItem(key: string) {\n return this.rawStorage.getItem(`${this.prefix + key}`);\n }\n\n setItem(key: string, value: string) {\n this.rawStorage.setItem(`${this.prefix + key}`, value);\n }\n\n removeItem(key: string) {\n this.rawStorage.removeItem(`${this.prefix + key}`);\n }\n\n clear() {\n this.getKeys().forEach(key => {\n this.rawStorage.removeItem(key);\n });\n }\n}\n\nexport function storagePatch(sandbox: ProxySandboxInstance): SandboxPatchHandler {\n return {\n rewrite: {\n localStorage: new RewriteStorage(sandbox.app, localStorage),\n sessionStorage: new RewriteStorage(sandbox.app, sessionStorage)\n }\n };\n}\n","import { ProxySandboxInstance, SandboxPatch, SandboxPatchHandler } from '../types';\nimport { eventListenerPatch } from './eventListener';\nimport { documentPatch } from './document';\nimport { timerPatch } from './timer';\nimport { storagePatch } from './storage';\n\nconst sandboxPatches: SandboxPatch[] = [documentPatch, eventListenerPatch, timerPatch, storagePatch];\n\nexport function getSandboxPatchHandlers(sandbox: ProxySandboxInstance): SandboxPatchHandler[] {\n return sandboxPatches.map(patch => {\n return patch(sandbox);\n });\n}\n","import { Global } from './types';\n\nexport function execScript(code: string, url: string, global: Global, strictGlobal: boolean) {\n const sourceUrl = '//# sourceURL='.concat(url, '\\n');\n const window = (0, eval)('window');\n window.tempGlobal = global;\n code = strictGlobal\n ? ';(function(window, self, globalThis){with(window){;'\n .concat(code, '\\n')\n .concat(\n sourceUrl,\n '}}).bind(window.tempGlobal)(window.tempGlobal, window.tempGlobal, window.tempGlobal);'\n )\n : ';(function(window, self, globalThis){;'\n .concat(code, '\\n')\n .concat(\n sourceUrl,\n '}).bind(window.tempGlobal)(window.tempGlobal, window.tempGlobal, window.tempGlobal);'\n );\n (0, eval)(code);\n delete window.tempGlobal;\n}\n","import { execScript } from './exec';\nimport { Global } from './types';\n\nexport interface SandboxOptions {\n strictGlobal?: boolean;\n}\n\nexport abstract class Sandbox {\n options!: SandboxOptions;\n\n global!: Global;\n\n abstract start(): void;\n\n abstract destroy(): void;\n\n execScript(code: string, url = '') {\n execScript(code, url, this.global, !!this.options.strictGlobal);\n }\n}\n","import { ProxyWindow } from './proxies/window';\nimport { getSandboxPatchHandlers } from './patches';\nimport { SandboxPatchHandler } from './types';\nimport { Global } from '../types';\nimport { Sandbox, SandboxOptions } from '../sandbox';\n\nexport class ProxySandbox extends Sandbox {\n public running = false;\n\n public override global!: Global;\n\n public rewriteVariables!: PropertyKey[];\n\n private patchHandlers: SandboxPatchHandler[] = [];\n\n constructor(\n public app: string,\n public override options: SandboxOptions\n ) {\n super();\n this.patchHandlers = getSandboxPatchHandlers(this);\n this.start();\n }\n\n start() {\n this.running = true;\n this.rewriteVariables = this.getPatchRewriteVariables();\n const proxyWindow = new ProxyWindow(this);\n this.global = proxyWindow.create();\n this.execPatchHandlers();\n }\n\n destroy() {\n this.running = false;\n this.patchHandlers.forEach(handler => {\n if (handler.destroy) {\n handler.destroy();\n }\n });\n }\n\n private getPatchRewriteVariables() {\n return this.patchHandlers.reduce<string[]>((pre, cur) => {\n return [...pre, ...(cur.rewrite ? Object.keys(cur.rewrite) : [])];\n }, []);\n }\n\n private execPatchHandlers() {\n this.patchHandlers.forEach(handler => {\n if (handler.rewrite) {\n for (const key in handler.rewrite) {\n if (handler.rewrite[key]) {\n this.global[key] = handler.rewrite[key];\n }\n }\n }\n if (handler.init) {\n handler?.init();\n }\n });\n }\n}\n","import { Sandbox, SandboxOptions } from '../sandbox';\n\nexport class SnapshotSandbox extends Sandbox {\n constructor(\n public app: string,\n public override options: SandboxOptions\n ) {\n super();\n this.start();\n }\n\n start() {}\n\n destroy() {}\n}\n","import { SandboxOptions } from './sandbox';\nimport { ProxySandbox } from './proxy/proxy-sandbox';\nimport { SnapshotSandbox } from './snapshot/snapshot-sandbox';\nimport { SANDBOX_INSTANCE } from './constants';\n\nexport { Sandbox } from './sandbox';\n\nconst defaultOptions: Partial<SandboxOptions> = {\n strictGlobal: false\n};\n\nexport function createSandbox(app: string, options?: SandboxOptions) {\n options = Object.assign({}, defaultOptions, options || {});\n\n if (window.Proxy) {\n return new ProxySandbox(app, options);\n } else {\n return new SnapshotSandbox(app, options);\n }\n}\n\nexport function getSandboxInstance() {\n return window[SANDBOX_INSTANCE];\n}\n","import { ApplicationRef, NgModuleRef, NgZone, EnvironmentInjector } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart, NavigationBehaviorOptions } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { Observable, from } from 'rxjs';\nimport { PlanetPortalApplication } from './portal-application';\nimport { PlantComponentFactory } from '../component/planet-component-types';\nimport { getTagNameByTemplate } from '../helpers';\nimport { getSandboxInstance, Sandbox } from '../sandbox/';\nimport { PlanetApplicationRef } from './planet-application-ref';\n\nexport type NgBootstrapAppModule = (\n portalApp: PlanetPortalApplication\n) => Promise<NgModuleRef<any> | void | ApplicationRef | undefined | null>;\n\nexport interface NgBootstrapOptions {\n template: string;\n bootstrap: NgBootstrapAppModule;\n}\n\n/**\n * @deprecated please use NgBootstrapAppModule\n */\nexport type BootstrapAppModule = NgBootstrapAppModule;\n/**\n * @deprecated please use NgBootstrapOptions\n */\nexport interface BootstrapOptions extends NgBootstrapOptions {}\n\nexport class NgPlanetApplicationRef implements PlanetApplicationRef {\n private injector?: EnvironmentInjector;\n private appRef?: ApplicationRef;\n public appModuleRef?: NgModuleRef<any>;\n public template?: string;\n private innerSelector?: string;\n private name: string;\n private portalApp!: PlanetPortalApplication;\n private appModuleBootstrap?: NgBootstrapAppModule;\n private componentFactory?: PlantComponentFactory;\n\n public get selector() {\n return this.innerSelector;\n }\n\n public get ngZone(): NgZone | undefined {\n return (this.injector || this.appModuleRef?.injector)?.get(NgZone);\n }\n\n public get sandbox(): Sandbox {\n return getSandboxInstance();\n }\n\n public get bootstrapped(): boolean {\n return !!(this.appModuleRef || this.appRef);\n }\n\n constructor(name: string, options?: BootstrapOptions) {\n this.name = name;\n if (options) {\n this.template = options.template;\n this.innerSelector = this.template ? getTagNameByTemplate(this.template) : '';\n this.appModuleBootstrap = options.bootstrap;\n }\n // This is a hack, since NgZone doesn't allow you to configure the property that identifies your zone.\n // See https://github.com/PlaceMe-SAS/single-spa-angular-cli/issues/33,\n // NgZone.isInAngularZone = () => {\n // // @ts-ignore\n // return window.Zone.current._properties[`ngx-planet-${name}`] === true;\n // };\n }\n\n // 子应用路由变化后同步修改 portal 的 Route\n private syncPortalRouteWhenNavigationEnd() {\n const router = (this.injector || this.appModuleRef?.injector)?.get(Router);\n if (router) {\n router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n const currentNavigation = router.getCurrentNavigation();\n this.ngZone?.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.portalApp.ngZone.run(() => {\n if (currentNavigation?.extras?.browserUrl) {\n this.portalApp.router!.navigateByUrl(event.url, {\n browserUrl: currentNavigation.extras.browserUrl\n });\n } else {\n this.portalApp.router!.navigateByUrl(event.url);\n }\n });\n });\n }\n });\n }\n }\n\n bootstrap(app: PlanetPortalApplication): Observable<this> {\n if (!this.appModuleBootstrap) {\n throw new Error(`app(${this.name}) is not defined`);\n }\n this.portalApp = app;\n return from(\n this.appModuleBootstrap(app).then(appModuleRef => {\n if (appModuleRef['instance']) {\n this.appModuleRef = appModuleRef as NgModuleRef<any>;\n this.appModuleRef.instance.appName = this.name;\n this.injector = this.appModuleRef.injector;\n } else {\n this.appRef = appModuleRef as unknown as ApplicationRef;\n this.injector = this.appRef.injector;\n const moduleRef = this.appRef.injector.get(NgModuleRef);\n (moduleRef as any).instance = { appName: this.name };\n }\n this.syncPortalRouteWhenNavigationEnd();\n return this;\n })\n );\n }\n\n getRouter() {\n return (this.injector || this.appModuleRef?.injector)?.get(Router);\n }\n\n getCurrentRouterStateUrl() {\n return this.getRouter()?.routerState.snapshot.url;\n }\n\n navigateByUrl(url: string, extras?: NavigationBehaviorOptions): void {\n const router = this.getRouter();\n this.ngZone?.run(() => {\n router?.navigateByUrl(url, extras);\n });\n }\n\n getComponentFactory() {\n return this.componentFactory;\n }\n\n registerComponentFactory(componentFactory: PlantComponentFactory) {\n this.componentFactory = componentFactory;\n }\n\n destroy(): void {\n if (this.appModuleRef || this.appRef) {\n const router = (this.injector || this.appModuleRef?.injector)?.get(Router);\n if (router) {\n router.dispose();\n }\n if (this.sandbox) {\n this.sandbox.destroy();\n }\n this.appModuleRef?.destroy();\n this.appModuleRef = undefined;\n this.appRef?.destroy();\n this.appRef = undefined;\n this.injector = undefined;\n }\n }\n}\n","import { PlanetApplicationRef } from './application/planet-application-ref';\nimport { PlanetPortalApplication } from './application/portal-application';\nimport { PlanetApplicationLoader } from './application/planet-application-loader';\nimport { PlanetApplicationService } from './application/planet-application.service';\nimport { isFunction } from './helpers';\nimport { NgBootstrapAppModule, NgBootstrapOptions, NgPlanetApplicationRef } from './application/ng-planet-application-ref';\n\ndeclare const window: any;\n\nexport interface GlobalPlanet {\n apps: { [key: string]: PlanetApplicationRef };\n portalApplication?: PlanetPortalApplication;\n applicationLoader: PlanetApplicationLoader;\n applicationService: PlanetApplicationService;\n}\n\nexport const globalPlanet: GlobalPlanet = (window.planet = window.planet || {\n apps: {}\n});\n\nexport function defineApplication<TOptions extends NgBootstrapAppModule | NgBootstrapOptions>(name: string, options: TOptions) {\n if (globalPlanet.apps[name]) {\n throw new Error(`${name} application has exist.`);\n }\n if (isFunction(options)) {\n options = {\n template: '',\n bootstrap: options as NgBootstrapAppModule\n } as TOptions;\n }\n const appRef = new NgPlanetApplicationRef(name, options as NgBootstrapOptions);\n globalPlanet.apps[name] = appRef;\n}\n\nexport function getPlanetApplicationRef(appName: string): PlanetApplicationRef | null {\n if (globalPlanet && globalPlanet.apps && globalPlanet.apps[appName]) {\n return globalPlanet.apps[appName];\n } else {\n return null;\n }\n}\n\nexport function getBootstrappedPlanetApplicationRef(appName: string): PlanetApplicationRef | null {\n const plantAppRef = getPlanetApplicationRef(appName);\n if (plantAppRef) {\n // 兼容之前的版本,之前是通过 appModuleRef 来判断是否启用的\n if (plantAppRef.bootstrapped || plantAppRef['appModuleRef']) {\n return plantAppRef;\n }\n }\n return null;\n}\n\nexport function setPortalApplicationData<T>(data: T) {\n if (globalPlanet.portalApplication) {\n globalPlanet.portalApplication.data = data;\n }\n}\n\nexport function getPortalApplicationData<TData>(): TData {\n return globalPlanet.portalApplication?.data as TData;\n}\n\nexport function setApplicationLoader(loader: PlanetApplicationLoader) {\n globalPlanet.applicationLoader = loader;\n}\n\nexport function getApplicationLoader() {\n return globalPlanet.applicationLoader;\n}\n\nexport function setApplicationService(service: PlanetApplicationService) {\n globalPlanet.applicationService = service;\n}\n\nexport function getApplicationService() {\n return globalPlanet.applicationService;\n}\n\nexport function clearGlobalPlanet() {\n window.planet.apps = {};\n window.planet.portalApplication = null;\n window.planet.applicationLoader = null;\n window.planet.applicationService = null;\n}\n","import { PlanetApplication } from '../planet.class';\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { shareReplay, map } from 'rxjs/operators';\nimport { coerceArray } from '../helpers';\nimport { Observable } from 'rxjs';\nimport { getApplicationService } from '../global-planet';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetApplicationService {\n private http = inject(HttpClient);\n\n private apps: PlanetApplication[] = [];\n\n private appsMap: { [key: string]: PlanetApplication } = {};\n\n constructor() {\n if (getApplicationService()) {\n throw new Error('PlanetApplicationService has been injected in the portal, repeated injection is not allowed');\n }\n }\n\n register<TExtra>(appOrApps: PlanetApplication<TExtra> | PlanetApplication<TExtra>[]) {\n const apps = coerceArray(appOrApps);\n apps.forEach(app => {\n if (this.appsMap[app.name]) {\n throw new Error(`${app.name} has be registered.`);\n }\n this.apps.push(app);\n this.appsMap[app.name] = app;\n });\n }\n\n registerByUrl(url: string): Observable<void> {\n const result = this.http.get(`${url}`).pipe(\n map(apps => {\n if (apps && Array.isArray(apps)) {\n this.register(apps);\n } else {\n this.register(apps as PlanetApplication);\n }\n }),\n shareReplay()\n );\n result.subscribe();\n return result;\n }\n\n unregister(name: string) {\n if (this.appsMap[name]) {\n delete this.appsMap[name];\n this.apps = this.apps.filter(app => {\n return app.name !== name;\n });\n }\n }\n\n getAppsByMatchedUrl<TExtra = unknown>(url: string): PlanetApplication<TExtra>[] {\n return this.getApps().filter(app => {\n if (app.routerPathPrefix instanceof RegExp) {\n return app.routerPathPrefix.test(url);\n } else {\n return (\n url === app.routerPathPrefix ||\n (url.startsWith(app.routerPathPrefix) && ['/', '?'].includes(url[app.routerPathPrefix.length]))\n );\n }\n });\n }\n\n getAppByName(name: string) {\n return this.appsMap[name];\n }\n\n getAppsToPreload(excludeAppNames?: string[]) {\n return this.getApps().filter(app => {\n if (excludeAppNames) {\n return app.preload && !excludeAppNames.includes(app.name);\n } else {\n return app.preload;\n }\n });\n }\n\n getApps() {\n return this.apps;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { hashCode, isEmpty, getResourceFileName, getExtName, isObject, getAssetsBasePath, getScriptsAndStylesAssets } from './helpers';\nimport { of, Observable, Observer, forkJoin, concat } from 'rxjs';\nimport { map, switchMap, concatAll } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { PlanetApplication, PlanetApplicationEntry } from './planet.class';\nimport { createSandbox } from './sandbox';\nimport { AssetsTagItem, LinkTagAttributes, ScriptTagAttributes } from './inner-types';\n\nconst STYLE_LINK_OR_SCRIPT_REG = /<[script|link].*?>/gi;\nconst LINK_OR_SRC_REG = /(src|href)=[\"'](.*?[\\.js|\\.css])[\"']/i;\nconst TAG_ATTRS_REG = /(type|defer|async|rel)((=[\"'].*?[\"'])|\\s|\\>)/gi;\n\nexport interface AssetsLoadResult {\n src: string;\n hashCode: number;\n loaded: boolean;\n status: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetsLoader {\n private http = inject(HttpClient);\n\n private loadedSources: number[] = [];\n\n constructor() {}\n\n loadScript(scriptAsset: AssetsTagItem) {\n const { src, tagName, attributes: tagAttributes } = scriptAsset;\n const id = hashCode(src);\n if (this.loadedSources.includes(id)) {\n return of({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n }\n\n if (tagName === 'link') {\n const LinkAttributes = tagAttributes as LinkTagAttributes;\n const link = document.createElement('link');\n link.href = src;\n if (LinkAttributes.rel) {\n link.rel = LinkAttributes.rel;\n }\n const head = document.getElementsByTagName('head')[0];\n head.appendChild(link);\n return of({\n src: src,\n hashCode: id,\n loaded: false,\n status: 'Preload'\n });\n }\n return new Observable((observer: Observer<AssetsLoadResult>) => {\n const scriptAttributes = tagAttributes as ScriptTagAttributes;\n const script: HTMLScriptElement = document.createElement('script');\n script.type = scriptAttributes?.type || 'text/javascript';\n script.src = src;\n if (!scriptAttributes?.defer || scriptAttributes?.defer !== 'false') {\n script.defer = true;\n }\n if (!scriptAttributes?.async && scriptAttributes?.async !== 'false') {\n script.async = true;\n }\n\n if (script['readyState']) {\n // IE\n script['onreadystatechange'] = () => {\n if (script['readyState'] === 'loaded' || script['readyState'] === 'complete') {\n script['onreadystatechange'] = null;\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n this.loadedSources.push(id);\n }\n };\n } else {\n // Others\n script.onload = () => {\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n this.loadedSources.push(id);\n };\n }\n script.onerror = error => {\n observer.error({\n src: src,\n hashCode: id,\n loaded: false,\n status: 'Error',\n error: error\n });\n observer.complete();\n };\n document.body.appendChild(script);\n });\n }\n\n loadScriptWithSandbox(app: string, src: string): Observable<AssetsLoadResult> {\n const id = hashCode(src);\n if (this.loadedSources.includes(id)) {\n return of({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n }\n return new Observable((observer: Observer<AssetsLoadResult>) => {\n this.http.get(src, { responseType: 'text' }).subscribe(\n (code: string) => {\n this.loadedSources.push(id);\n const sandbox = createSandbox(app);\n sandbox.execScript(code, src);\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n },\n error => {\n observer.error({\n src: src,\n hashCode: id,\n loaded: false,\n status: 'Error',\n error: error\n });\n observer.complete();\n }\n );\n });\n }\n\n loadStyle(src: string): Observable<AssetsLoadResult> {\n const id = hashCode(src);\n if (this.loadedSources.includes(id)) {\n return of({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n }\n return new Observable((observer: Observer<AssetsLoadResult>) => {\n const head = document.getElementsByTagName('head')[0];\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = src;\n link.media = 'all';\n link.onload = () => {\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n this.loadedSources.push(id);\n };\n link.onerror = error => {\n observer.error({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded',\n error: error\n });\n observer.complete();\n };\n head.appendChild(link);\n });\n }\n\n loadScripts(\n sources: AssetsTagItem[],\n options: {\n app?: string;\n sandbox?: boolean;\n serial?: boolean;\n } = {\n serial: false,\n sandbox: false\n }\n ): Observable<AssetsLoadResult[]> {\n if (isEmpty(sources)) {\n return of(null);\n }\n const observables = sources.map(source => {\n // TODO: 暂时只支持Proxy沙箱\n if (options.sandbox && window.Proxy) {\n return this.loadScriptWithSandbox(options.app, source.src);\n } else {\n return this.loadScript(source);\n }\n });\n if (options.serial) {\n const a = concat(...observables).pipe(\n map(item => {\n return of([item]);\n }),\n concatAll()\n );\n return a;\n } else {\n return forkJoin(observables).pipe();\n }\n }\n\n loadStyles(sources: AssetsTagItem[]): Observable<AssetsLoadResult[]> {\n if (isEmpty(sources)) {\n return of(null);\n }\n return forkJoin(\n sources.map(source => {\n return this.loadStyle(source.src);\n })\n );\n }\n\n loadScriptsAndStyles(\n scripts: AssetsTagItem[] = [],\n styles: AssetsTagItem[] = [],\n options?: {\n app?: string;\n sandbox?: boolean;\n serial?: boolean;\n }\n ) {\n return forkJoin([this.loadScripts(scripts, options), this.loadStyles(styles)]);\n }\n\n /**\n * <script type=\"module\" src=\"http://127.0.0.1:3001/main.js\" async defer></script>\n * => [`type=\"module\"`, \"async \", \"defer>\"] as attributeStrMatchArr\n * => { type: \"module\", async: \"async\", defer: \"defer\" } as attributes\n */\n parseTagAttributes(tag: string): Record<string, string> {\n const attributeStrMatchArr = tag.match(TAG_ATTRS_REG);\n if (attributeStrMatchArr) {\n const attributes: Record<string, string> = {};\n attributeStrMatchArr.forEach(item => {\n const equalSignIndex = item.indexOf('=');\n if (equalSignIndex > 0) {\n // 'type=\"module\"' => { type: \"module\" }\n const key = item.slice(0, equalSignIndex);\n attributes[key] = item.slice(equalSignIndex + 2, item.length - 1);\n } else {\n // 'async ' => 'async'\n // 'defer>' => 'defer'\n const key = item.slice(0, item.length - 1);\n attributes[key] = key;\n }\n });\n return attributes;\n }\n return undefined;\n }\n\n parseManifestFromHTML(html: string): Record<string, AssetsTagItem[]> {\n const result: Record<string, AssetsTagItem[]> = {};\n const matchResult = html.match(STYLE_LINK_OR_SCRIPT_REG);\n matchResult.forEach(item => {\n const isLinkTag = item.trim().toLowerCase().slice(1, item.indexOf(' ')) === 'link';\n const linkOrSrcResult = item.match(LINK_OR_SRC_REG);\n if (linkOrSrcResult && linkOrSrcResult[2]) {\n const src = linkOrSrcResult[2];\n const hashName = getResourceFileName(src);\n let barSplitIndex = hashName.indexOf('-');\n let dotSplitIndex = hashName.indexOf('.');\n const splitIndex = barSplitIndex > -1 ? barSplitIndex : dotSplitIndex;\n if (splitIndex > -1) {\n const name = hashName.slice(0, splitIndex);\n const ext = getExtName(hashName);\n const assetsTag: AssetsTagItem = {\n src: src,\n tagName: isLinkTag ? 'link' : 'script'\n };\n const assetName = ext ? `${name}.${ext}` : name;\n if (!result[assetName]) {\n result[assetName] = [assetsTag];\n } else {\n result[assetName] = result[assetName].concat(assetsTag);\n }\n\n const attributes = this.parseTagAttributes(item);\n if (attributes) {\n assetsTag.attributes = attributes;\n }\n // const typeTagResult = item.match(TAG_TYPE_REG);\n // if (typeTagResult && typeTagResult[1]) {\n // assetsTag.attributes = {\n // type: typeTagResult[1]\n // };\n // }\n }\n }\n });\n return result;\n }\n\n loadAppAssets(app: PlanetApplication) {\n const basePath = getAssetsBasePath(app);\n const manifest = app.entry ? (isObject<PlanetApplicationEntry>(app.entry) ? app.entry.manifest : app.entry) : app.manifest;\n if (manifest) {\n const manifestExt = getExtName(manifest);\n const isHtml = manifestExt === 'html';\n const responseType = isHtml ? 'text' : 'json';\n return this.loadManifest(`${manifest}?t=${new Date().getTime()}`, responseType).pipe(\n switchMap(manifestResult => {\n const { scripts, styles } = getScriptsAndStylesAssets(app, basePath, manifestResult);\n return this.loadScriptsAndStyles(scripts, styles, {\n app: app.name,\n sandbox: app.sandbox,\n serial: app.loadSerial\n });\n })\n );\n } else {\n const { scripts, styles } = getScriptsAndStylesAssets(app, basePath);\n return this.loadScriptsAndStyles(scripts, styles, {\n app: app.name,\n sandbox: app.sandbox,\n serial: app.loadSerial\n });\n }\n }\n\n loadManifest(url: string, responseType: 'text' | 'json' = 'json'): Observable<Record<string, AssetsTagItem[]>> {\n return this.http\n .get(url, {\n responseType: responseType as 'json'\n })\n .pipe(\n map((response: any) => {\n if (responseType === 'text') {\n return this.parseManifestFromHTML(response as string);\n } else {\n const result: Record<string, AssetsTagItem[]> = {};\n Object.keys(response).forEach(key => {\n result[key] = [\n {\n src: response[key]\n }\n ];\n });\n return result;\n }\n })\n );\n }\n}\n","import { Router, UrlTree, NavigationExtras } from '@angular/router';\nimport { NgZone, Injector, ApplicationRef } from '@angular/core';\nimport { PlantComponentFactory } from '../component/planet-component-types';\nimport { GlobalEventDispatcher } from '../global-event-dispatcher';\n\nexport class PlanetPortalApplication<TData = any> {\n applicationRef?: ApplicationRef;\n injector?: Injector;\n router?: Router;\n ngZone?: NgZone;\n globalEventDispatcher?: GlobalEventDispatcher;\n data?: TData;\n name?: string = 'portal';\n private componentFactory?: PlantComponentFactory;\n\n navigateByUrl(url: string | UrlTree, extras?: NavigationExtras): Promise<boolean> {\n return this.ngZone!.run(() => {\n return this.router!.navigateByUrl(url, extras);\n });\n }\n\n run<T>(fn: (...args: any[]) => T): T {\n return this.ngZone!.run<T>(() => {\n return fn();\n });\n }\n\n tick() {\n this.applicationRef!.tick();\n }\n\n getComponentFactory() {\n return this.componentFactory;\n }\n\n registerComponentFactory(componentFactory: PlantComponentFactory) {\n this.componentFactory = componentFactory;\n }\n}\n","import { Subject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { Injectable, NgZone, inject } from '@angular/core';\n\nexport interface GlobalDispatcherEvent {\n name: string;\n payload: any;\n}\n\nconst CUSTOM_EVENT_NAME = 'PLANET_GLOBAL_EVENT_DISPATCHER';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalEventDispatcher {\n private ngZone = inject(NgZone);\n\n private subject$: Subject<GlobalDispatcherEvent> = new Subject();\n\n private hasAddGlobalEventListener = false;\n\n private subscriptionCount = 0;\n\n private globalEventListener = (event: CustomEvent) => {\n this.subject$.next(event.detail);\n };\n\n private addGlobalEventListener() {\n this.hasAddGlobalEventListener = true;\n window.addEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);\n }\n\n private removeGlobalEventListener() {\n this.hasAddGlobalEventListener = false;\n window.removeEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);\n }\n\n constructor() {}\n\n dispatch<TPayload>(name: string, payload?: TPayload) {\n window.dispatchEvent(\n new CustomEvent(CUSTOM_EVENT_NAME, {\n detail: {\n name: name,\n payload: payload\n }\n })\n );\n }\n\n register<T>(eventName: string): Observable<T> {\n return new Observable(observer => {\n if (!this.hasAddGlobalEventListener) {\n this.addGlobalEventListener();\n }\n this.subscriptionCount++;\n const subscription = this.subject$\n .pipe(\n filter(event => {\n return event.name === eventName;\n }),\n map(event => {\n return event.payload;\n })\n )\n .subscribe(payload => {\n this.ngZone.run(() => {\n observer.next(payload);\n });\n });\n return () => {\n this.subscriptionCount--;\n subscription.unsubscribe();\n if (!this.subscriptionCount) {\n this.removeGlobalEventListener();\n }\n };\n });\n }\n\n getSubscriptionCount() {\n return this.subscriptionCount;\n }\n}\n","import { isFunction } from './helpers';\n\nexport interface Debugger {\n (formatter: any, ...args: any[]): void;\n\n // color: string;\n // enabled: boolean;\n // log: (...args: any[]) => any;\n // namespace: string;\n // destroy: () => boolean;\n // extend: (namespace: string, delimiter?: string) => Debugger;\n}\n\nexport interface Formatters {\n [formatter: string]: (v: any) => string;\n}\n\nexport interface Debug {\n (namespace: string): Debugger;\n coerce: (val: any) => any;\n disable: () => string;\n enable: (namespaces: string) => void;\n enabled: (namespaces: string) => boolean;\n log: (...args: any[]) => any;\n\n names: string[];\n skips: string[];\n\n formatters: Formatters;\n}\n\n/**\n * Debug factory for debug module\n */\nlet _debugFactory: Debug | undefined;\nlet _debuggerMap: Record<string, Debugger> = {};\n\nexport function createDebug(namespace: string): Debugger {\n const key = `planet:${namespace}`;\n return function (formatter: any, ...args: any[]) {\n if (_debugFactory) {\n let debugDebugger = _debuggerMap[key];\n if (!debugDebugger) {\n debugDebugger = _debugFactory(key);\n _debuggerMap[key] = debugDebugger;\n }\n debugDebugger(formatter, args);\n }\n };\n}\n\nexport function setDebugFactory(debug: Debug) {\n if (debug && !isFunction(debug)) {\n throw new Error('debug factory type is invalid, must be function');\n }\n _debugFactory = debug;\n}\n\nexport function clearDebugFactory() {\n _debugFactory = undefined;\n _debuggerMap = {};\n}\n\nexport function getDebugFactory() {\n return _debugFactory;\n}\n","import { Injectable, NgZone, ApplicationRef, Injector, signal, inject } from '@angular/core';\nimport { of, Observable, Subject, forkJoin, from } from 'rxjs';\nimport { AssetsLoader } from '../assets-loader';\nimport { PlanetApplication, PlanetRouterEvent, SwitchModes, PlanetOptions } from '../planet.class';\nimport { switchMap, share, map, tap, distinctUntilChanged, take, filter, catchError } from 'rxjs/operators';\nimport { getHTMLElement, coerceArray, createElementByTemplate } from '../helpers';\nimport { PlanetApplicationRef } from './planet-application-ref';\nimport { PlanetPortalApplication } from './portal-application';\nimport { PlanetApplicationService } from './planet-application.service';\nimport { GlobalEventDispatcher } from '../global-event-dispatcher';\nimport { Router } from '@angular/router';\nimport { globalPlanet, getPlanetApplicationRef, getApplicationLoader } from '../global-planet';\nimport { createDebug } from '../debug';\nconst debug = createDebug('app-loader');\n\nexport enum ApplicationStatus {\n assetsLoading = 1,\n assetsLoaded = 2,\n bootstrapping = 3,\n bootstrapped = 4,\n active = 5,\n loadError = 10\n}\n\nexport interface AppsLoadingStartEvent {\n shouldLoadApps: PlanetApplication[];\n shouldUnloadApps: PlanetApplication[];\n}\n\nexport interface AppStatusChangeEvent {\n app: PlanetApplication;\n status: ApplicationStatus;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetApplicationLoader {\n private assetsLoader = inject(AssetsLoader);\n private planetApplicationService = inject(PlanetApplicationService);\n private ngZone = inject(NgZone);\n\n private firstLoad = true;\n\n private startRouteChangeEvent!: PlanetRouterEvent;\n\n private options: PlanetOptions;\n\n private inProgressAppAssetsLoads = new Map<string, Observable<PlanetApplication>>();\n\n private appsStatus = new Map<PlanetApplication, ApplicationStatus>();\n\n private portalApp = new PlanetPortalApplication();\n\n private routeChange$ = new Subject<PlanetRouterEvent>();\n\n private appStatusChange$ = new Subject<AppStatusChangeEvent>();\n\n private appsLoadingStart$ = new Subject<AppsLoadingStartEvent>();\n\n private innerLoading = signal(false);\n\n public get appStatusChange(): Observable<AppStatusChangeEvent> {\n return this.appStatusChange$.asObservable();\n }\n\n public get appsLoadingStart(): Observable<AppsLoadingStartEvent> {\n return this.appsLoadingStart$.asObservable();\n }\n\n /**\n * @deprecated please use loading signal\n */\n public loadingDone = false;\n\n public loading = this.innerLoading.asReadonly();\n\n constructor() {\n const ngZone = this.ngZone;\n const router = inject(Router);\n const injector = inject(Injector);\n const applicationRef = inject(ApplicationRef);\n\n if (getApplicationLoader()) {\n throw new Error('PlanetApplicationLoader has been injected in the portal, repeated injection is not allowed');\n }\n\n this.options = {\n switchMode: SwitchModes.default,\n errorHandler: (error: Error) => {\n console.error(error);\n }\n };\n this.portalApp.ngZone = ngZone;\n this.portalApp.applicationRef = applicationRef;\n this.portalApp.router = router;\n this.portalApp.injector = injector;\n this.portalApp.globalEventDispatcher = injector.get(GlobalEventDispatcher);\n globalPlanet.portalApplication = this.portalApp;\n this.setupRouteChange();\n }\n\n private setAppStatus(app: PlanetApplication, status: ApplicationStatus) {\n this.ngZone.run(() => {\n const fromStatus = this.appsStatus.get(app);\n debug(\n `app(${app.name}) status change: ${fromStatus ? ApplicationStatus[fromStatus] : 'empty'} => ${ApplicationStatus[status]}`\n );\n this.appsStatus.set(app, status);\n this.appStatusChange$.next({\n app: app,\n status: status\n });\n });\n }\n\n private getAppStatusChange$(app: PlanetApplication, status = ApplicationStatus.bootstrapped): Observable<PlanetApplication> {\n return this.appStatusChange.pipe(\n filter(event => {\n return event.app === app && event.status === status;\n }),\n map(() => {\n return app;\n })\n );\n }\n\n private switchModeIsCoexist(app: PlanetApplication) {\n if (app && app.switchMode) {\n return app.switchMode === SwitchModes.coexist;\n } else {\n return this.options.switchMode === SwitchModes.coexist;\n }\n }\n\n private errorHandler(error: Error) {\n this.ngZone.run(() => {\n this.options.errorHandler(error);\n });\n }\n\n private setLoadingDone() {\n this.ngZone.run(() => {\n this.loadingDone = true;\n this.innerLoading.set(false);\n });\n }\n\n private getAppNames(apps: PlanetApplication[]): string | string[] {\n return apps.length === 0\n ? `[]`\n : apps.map(item => {\n return item.name;\n });\n }\n\n private setupRouteChange() {\n this.routeChange$\n .pipe(\n distinctUntilChanged((x, y) => {\n return (x && x.url) === (y && y.url);\n }),\n // Using switchMap so we cancel executing loading when a new one comes in\n switchMap(event => {\n // Return new observable use of and catchError,\n // in order to prevent routeChange$ completed which never trigger new route change\n return of(event).pipe(\n // unload apps and return should load apps\n map(() => {\n debug(`route change, url is: ${event.url}`);\n this.startRouteChangeEvent = event;\n const shouldLoadApps = this.planetApplicationService.getAppsByMatchedUrl(event.url);\n debug(`should load apps: ${this.getAppNames(shouldLoadApps)}`);\n const shouldUnloadApps = this.getUnloadApps(shouldLoadApps);\n this.appsLoadingStart$.next({\n shouldLoadApps,\n shouldUnloadApps\n });\n this.unloadApps(shouldUnloadApps, event);\n debug(`unload apps: ${this.getAppNames(shouldUnloadApps)}`);\n return shouldLoadApps;\n }),\n // Load app assets (static resources)\n switchMap(shouldLoadApps => {\n let hasAppsNeedLoadingAssets = false;\n const loadApps$ = shouldLoadApps.map(app => {\n const appStatus = this.appsStatus.get(app);\n if (\n !appStatus ||\n appStatus === ApplicationStatus.assetsLoading ||\n appStatus === ApplicationStatus.loadError\n ) {\n debug(\n `app(${app.name}) status is ${ApplicationStatus[appStatus as ApplicationStatus]}, start load assets`\n );\n hasAppsNeedLoadingAssets = true;\n return this.ngZone.runOutsideAngular(() => {\n return this.startLoadAppAssets(app);\n });\n } else {\n return of(app);\n }\n });\n if (hasAppsNeedLoadingAssets) {\n this.loadingDone = false;\n this.innerLoading.set(true);\n }\n return loadApps$.length > 0 ? forkJoin(loadApps$) : of([] as PlanetApplication[]);\n }),\n // Bootstrap or show apps\n map(apps => {\n const apps$: Observable<PlanetApplication>[] = apps.map(app => {\n return of(app).pipe(\n switchMap(app => {\n const appStatus = this.appsStatus.get(app);\n if (appStatus === ApplicationStatus.bootstrapped) {\n debug(`[routeChange] app(${app.name}) status is bootstrapped, show app and active`);\n this.showApp(app);\n const appRef = getPlanetApplicationRef(app.name);\n appRef?.navigateByUrl(event.url);\n this.setAppStatus(app, ApplicationStatus.active);\n this.setLoadingDone();\n return of(app);\n } else if (appStatus === ApplicationStatus.assetsLoaded) {\n debug(`[routeChange] app(${app.name}) status is assetsLoaded, start bootstrapping`);\n return this.bootstrapApp(app).pipe(\n map(() => {\n debug(`app(${app.name}) bootstrapped success, active it`);\n this.setAppStatus(app, ApplicationStatus.active);\n this.setLoadingDone();\n return app;\n })\n );\n } else if (appStatus === ApplicationStatus.active) {\n debug(`[routeChange] app(${app.name}) is active, do nothings`);\n const appRef = getPlanetApplicationRef(app.name);\n // Backwards compatibility sub app use old version which has not getCurrentRouterStateUrl\n const currentUrl = appRef?.getCurrentRouterStateUrl ? appRef.getCurrentRouterStateUrl() : '';\n if (currentUrl !== event.url) {\n appRef?.navigateByUrl(event.url);\n }\n return of(app);\n } else {\n debug(\n `[routeChange] app(${app.name}) status is ${\n ApplicationStatus[appStatus as ApplicationStatus]\n }`\n );\n return this.getAppStatusChange$(app).pipe(\n take(1),\n map(() => {\n debug(`app(${app.name}) status is bootstrapped by subscribe status change, active it`);\n this.setAppStatus(app, ApplicationStatus.active);\n this.showApp(app);\n return app;\n })\n );\n }\n })\n );\n });\n\n if (apps$.length > 0) {\n debug(`start load and active apps: ${this.getAppNames(apps)}`);\n // 切换到应用后会有闪烁现象,所以使用 setTimeout 后启动应用\n // example: redirect to app1's dashboard from portal's about page\n // If app's route has redirect, it doesn't work, it ok just in setTimeout, I don't know why.\n // TODO:: remove it, it is ok in version Angular 9.x\n setTimeout(() => {\n // 此处判断是因为如果静态资源加载完毕还未启动被取消,还是会启动之前的应用,虽然可能性比较小,但是无法排除这种可能性,所以只有当 Event 是最后一个才会启动\n if (this.startRouteChangeEvent === event) {\n // runOutsideAngular for fix error: `Expected to not be in Angular Zone, but it is!`\n this.ngZone.runOutsideAngular(() => {\n forkJoin(apps$).subscribe(() => {\n this.setLoadingDone();\n this.ensurePreloadApps(apps);\n });\n });\n }\n });\n } else {\n debug(`no apps need to be loaded, ensure preload apps`);\n this.ensurePreloadApps(apps);\n this.setLoadingDone();\n }\n }),\n // Error handler\n catchError(error => {\n debug(`apps loader error: ${error}`);\n this.errorHandler(error);\n return [];\n })\n );\n })\n )\n .subscribe();\n }\n\n private startLoadAppAssets(app: PlanetApplication): Observable<PlanetApplication> {\n if (this.inProgressAppAssetsLoads.get(app.name)) {\n return this.inProgressAppAssetsLoads.get(app.name);\n } else {\n const loadApp$ = this.assetsLoader.loadAppAssets(app).pipe(\n tap(() => {\n this.inProgressAppAssetsLoads.delete(app.name);\n this.setAppStatus(app, ApplicationStatus.assetsLoaded);\n }),\n map(() => {\n return app;\n }),\n catchError(error => {\n this.inProgressAppAssetsLoads.delete(app.name);\n this.setAppStatus(app, ApplicationStatus.loadError);\n throw error;\n }),\n share()\n );\n this.inProgressAppAssetsLoads.set(app.name, loadApp$);\n this.setAppStatus(app, ApplicationStatus.assetsLoading);\n return loadApp$;\n }\n }\n\n private hideApp(planetApp: PlanetApplication) {\n const appRef = getPlanetApplicationRef(planetApp.name);\n const appRootElement = document.querySelector(appRef?.selector || (planetApp.selector as string));\n if (appRootElement) {\n appRootElement.setAttribute('style', 'display:none;');\n }\n }\n\n private showApp(planetApp: PlanetApplication) {\n const appRef = getPlanetApplicationRef(planetApp.name);\n const appRootElement = document.querySelector(appRef?.selector || (planetApp.selector as string));\n if (appRootElement) {\n appRootElement.setAttribute('style', '');\n }\n }\n\n private destroyApp(planetApp: PlanetApplication) {\n const appRef = getPlanetApplicationRef(planetApp.name);\n if (appRef) {\n appRef.destroy();\n }\n const container = getHTMLElement(planetApp.hostParent);\n const appRootElement = container?.querySelector((appRef && appRef.selector) || (planetApp.selector as string));\n if (appRootElement) {\n container?.removeChild(appRootElement);\n }\n }\n\n private bootstrapApp(app: PlanetApplication, defaultStatus: 'hidden' | 'display' = 'display'): Observable<PlanetApplicationRef> {\n debug(`app(${app.name}) start bootstrapping`);\n this.setAppStatus(app, ApplicationStatus.bootstrapping);\n const appRef = getPlanetApplicationRef(app.name);\n if (appRef && appRef.bootstrap) {\n const container = getHTMLElement(app.hostParent);\n let appRootElement: HTMLElement;\n if (container) {\n appRootElement = container.querySelector(appRef.selector || app.selector!)!;\n if (!appRootElement) {\n if (appRef.template) {\n appRootElement = createElementByTemplate(appRef.template)!;\n } else {\n appRootElement = document.createElement(app.selector!);\n }\n appRootElement.setAttribute('style', 'display:none;');\n if (app.hostClass) {\n appRootElement.classList.add(...coerceArray(app.hostClass));\n }\n if (app.stylePrefix) {\n appRootElement.classList.add(...coerceArray(app.stylePrefix));\n }\n container.appendChild(appRootElement);\n }\n }\n let result = appRef.bootstrap(this.portalApp);\n // Backwards compatibility promise for bootstrap\n if ((result as any)['then']) {\n result = from(result) as Observable<PlanetApplicationRef>;\n }\n return result.pipe(\n tap(() => {\n debug(`app(${app.name}) bootstrapped success for ${defaultStatus}`);\n this.setAppStatus(app, ApplicationStatus.bootstrapped);\n if (defaultStatus === 'display' && appRootElement) {\n appRootElement.removeAttribute('style');\n }\n }),\n map(() => {\n return appRef;\n })\n );\n } else {\n throw new Error(\n `[${app.name}] not found, make sure that the app has the correct name defined use defineApplication(${app.name}) and runtimeChunk and vendorChunk are set to true, details see https://github.com/worktile/ngx-planet#throw-error-cannot-read-property-call-of-undefined-at-__webpack_require__-bootstrap79`\n );\n }\n }\n\n private getUnloadApps(activeApps: PlanetApplication[]) {\n const unloadApps: PlanetApplication[] = [];\n this.appsStatus.forEach((value, app) => {\n if (value === ApplicationStatus.active && !activeApps.find(item => item.name === app.name)) {\n unloadApps.push(app);\n }\n });\n return unloadApps;\n }\n\n private unloadApps(shouldUnloadApps: PlanetApplication[], event: PlanetRouterEvent) {\n const hideApps: PlanetApplication[] = [];\n const destroyApps: PlanetApplication[] = [];\n shouldUnloadApps.forEach(app => {\n if (this.switchModeIsCoexist(app)) {\n debug(`hide app(${app.name}) for coexist mode`);\n hideApps.push(app);\n this.hideApp(app);\n this.setAppStatus(app, ApplicationStatus.bootstrapped);\n } else {\n destroyApps.push(app);\n // 销毁之前先隐藏,否则会出现闪烁,因为 destroy 是延迟执行的\n // 如果销毁不延迟执行,会出现切换到主应用的时候会有视图卡顿现象\n this.hideApp(app);\n this.setAppStatus(app, ApplicationStatus.assetsLoaded);\n }\n });\n\n if (hideApps.length > 0 || destroyApps.length > 0) {\n // 从其他应用切换到主应用的时候会有视图卡顿现象,所以先等主应用渲染完毕后再加载其他应用\n // 此处尝试使用 this.ngZone.onStable.pipe(take(1)) 应用之间的切换会出现闪烁\n setTimeout(() => {\n hideApps.forEach(app => {\n const appRef = getPlanetApplicationRef(app.name);\n if (appRef) {\n appRef.navigateByUrl(event.url);\n }\n });\n destroyApps.forEach(app => {\n debug(`destroy app(${app.name})`);\n this.destroyApp(app);\n });\n });\n }\n }\n\n private preloadApps(activeApps?: PlanetApplication[]) {\n setTimeout(() => {\n const toPreloadApps = this.planetApplicationService.getAppsToPreload(\n activeApps ? activeApps.map(item => item.name) : undefined\n );\n debug(`start preload apps: ${this.getAppNames(toPreloadApps)}`);\n const loadApps$ = toPreloadApps.map(preloadApp => {\n return this.preloadInternal(preloadApp);\n });\n\n forkJoin(loadApps$).subscribe({\n error: error => {\n this.errorHandler(error);\n }\n });\n });\n }\n\n private ensurePreloadApps(activeApps?: PlanetApplication[]) {\n // Start preload apps\n // Start preload when first time app loaded\n if (this.firstLoad) {\n this.preloadApps(activeApps);\n this.firstLoad = false;\n }\n }\n\n public setOptions(options: Partial<PlanetOptions>) {\n this.options = {\n ...this.options,\n ...options\n };\n }\n\n /**\n * reset route by current router\n */\n public reroute(event: PlanetRouterEvent) {\n this.routeChange$.next(event);\n }\n\n private preloadInternal(app: PlanetApplication, immediate?: boolean): Observable<PlanetApplicationRef | null> {\n const status = this.appsStatus.get(app);\n if (!status || status === ApplicationStatus.loadError) {\n debug(`preload app(${app.name}), status is empty, start to load assets`);\n return this.startLoadAppAssets(app).pipe(\n switchMap(() => {\n debug(`preload app(${app.name}), assets loaded, start bootstrap app, immediate: ${!!immediate}`);\n if (immediate) {\n return this.bootstrapApp(app, 'hidden');\n } else {\n return this.ngZone.runOutsideAngular(() => {\n return this.bootstrapApp(app, 'hidden');\n });\n }\n }),\n catchError(error => {\n this.errorHandler(error);\n return of(null);\n }),\n map(() => {\n return getPlanetApplicationRef(app.name);\n })\n );\n } else if ([ApplicationStatus.assetsLoading, ApplicationStatus.assetsLoaded, ApplicationStatus.bootstrapping].includes(status)) {\n debug(`preload app(${app.name}), status is ${ApplicationStatus[status]}, return until bootstrapped`);\n return this.getAppStatusChange$(app).pipe(\n take(1),\n map(() => {\n return getPlanetApplicationRef(app.name);\n })\n );\n } else {\n const appRef = getPlanetApplicationRef(app.name);\n if (!appRef) {\n throw new Error(`${app.name}'s status is ${ApplicationStatus[status]}, planetApplicationRef is null.`);\n }\n return of(appRef);\n }\n }\n\n /**\n * Preload planet application\n * @param app app\n * @param immediate bootstrap on stable by default, setting immediate is true, it will bootstrap immediate\n */\n public preload(app: PlanetApplication, immediate?: boolean): Observable<PlanetApplicationRef> {\n return this.preloadInternal(app, immediate);\n }\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { NavigationEnd, RouterEvent, Router } from '@angular/router';\nimport { PlanetOptions, PlanetApplication, PLANET_APPLICATIONS } from './planet.class';\nimport { PlanetApplicationService } from './application/planet-application.service';\nimport { PlanetApplicationLoader, AppsLoadingStartEvent, AppStatusChangeEvent } from './application/planet-application-loader';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, startWith, distinctUntilChanged, map } from 'rxjs/operators';\nimport {\n setPortalApplicationData,\n setApplicationLoader,\n setApplicationService,\n getApplicationLoader,\n getApplicationService\n} from './global-planet';\nimport { setDebugFactory } from './debug';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Planet {\n private injector = inject(Injector);\n private router = inject(Router);\n\n private get planetApplicationLoader(): PlanetApplicationLoader {\n return getApplicationLoader();\n }\n\n private get planetApplicationService() {\n return getApplicationService();\n }\n\n /**\n * @deprecated please use loading signal\n */\n public get loadingDone() {\n return this.planetApplicationLoader.loadingDone;\n }\n\n public get loading() {\n return this.planetApplicationLoader.loading;\n }\n\n public get appStatusChange(): Observable<AppStatusChangeEvent> {\n return this.planetApplicationLoader.appStatusChange;\n }\n\n public get appsLoadingStart(): Observable<AppsLoadingStartEvent> {\n return this.planetApplicationLoader.appsLoadingStart;\n }\n\n private subscription?: Subscription;\n\n constructor() {\n const planetApplications = inject<PlanetApplication[]>(PLANET_APPLICATIONS, { optional: true })!;\n\n if (!this.planetApplicationLoader) {\n setApplicationLoader(this.injector.get(PlanetApplicationLoader));\n }\n if (!this.planetApplicationService) {\n setApplicationService(this.injector.get(PlanetApplicationService));\n }\n\n if (planetApplications) {\n this.registerApps(planetApplications);\n }\n }\n\n setOptions(options: Partial<PlanetOptions>) {\n this.planetApplicationLoader.setOptions(options);\n if (options.debugFactory) {\n setDebugFactory(options.debugFactory);\n }\n }\n\n setPortalAppData<T>(data: T) {\n setPortalApplicationData(data);\n }\n\n registerApp<TExtra>(app: PlanetApplication<TExtra>) {\n this.planetApplicationService.register(app);\n }\n\n registerApps<TExtra>(apps: PlanetApplication<TExtra>[]) {\n this.planetApplicationService.register(apps);\n }\n\n unregisterApp(name: string) {\n this.planetApplicationService.unregister(name);\n }\n\n getApps() {\n return this.planetApplicationService.getApps();\n }\n\n start() {\n this.subscription = (this.router.events as Observable<RouterEvent>)\n .pipe(\n filter(event => {\n return event instanceof NavigationEnd;\n }),\n map(event => {\n return (event as NavigationEnd).urlAfterRedirects || event.url;\n }),\n startWith(location.pathname),\n distinctUntilChanged()\n )\n .subscribe((url: string) => {\n this.planetApplicationLoader.reroute({\n url: url\n });\n });\n }\n\n stop() {\n this.subscription?.unsubscribe();\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'empty-component',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class EmptyComponent {}\n","import { ComponentRef } from '@angular/core';\nimport { PlantComponentConfig } from './plant-component.config';\n\nexport class PlanetComponentRef<TComp = any> {\n wrapperElement: HTMLElement;\n hostElement: HTMLElement;\n componentInstance: TComp;\n componentRef: ComponentRef<TComp>;\n dispose: () => void;\n}\n\nexport type PlantComponentFactory = <TData, TComp>(componentName: string, config: PlantComponentConfig<TData>) => PlanetComponentRef<TComp>;\n","import {\n ApplicationRef,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EnvironmentInjector,\n Injectable,\n Injector,\n NgModuleRef,\n NgZone,\n TemplateRef,\n Type,\n createComponent,\n reflectComponentType,\n inject\n} from '@angular/core';\nimport { PlanetPortalApplication } from 'ngx-planet';\nimport { Observable, of, timer } from 'rxjs';\nimport { delayWhen, map, shareReplay } from 'rxjs/operators';\nimport { NgPlanetApplicationRef } from '../application/ng-planet-application-ref';\nimport { PlanetApplicationRef } from '../application/planet-application-ref';\nimport {\n getApplicationLoader,\n getApplicationService,\n getBootstrappedPlanetApplicationRef,\n getPlanetApplicationRef,\n globalPlanet\n} from '../global-planet';\nimport { coerceArray } from '../helpers';\nimport { PlanetComponentRef } from './planet-component-types';\nimport { PlantComponentConfig } from './plant-component.config';\n\nconst componentWrapperClass = 'planet-component-wrapper';\n\nfunction isComponentType<T>(component: PlanetComponent<T>): component is Type<T> {\n return typeof component === 'function' && component.constructor === Function;\n}\n\nexport type PlanetComponent<T = unknown> =\n | {\n name: string;\n component: Type<T>;\n }\n | Type<T>;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetComponentLoader {\n private applicationRef = inject(ApplicationRef);\n private ngModuleRef = inject<NgModuleRef<any>>(NgModuleRef);\n private ngZone = inject(NgZone);\n\n private get applicationLoader() {\n return getApplicationLoader();\n }\n\n private get applicationService() {\n return getApplicationService();\n }\n\n constructor() {}\n\n private getPlantAppRef(name: string): Observable<PlanetApplicationRef> {\n const plantAppRef = getBootstrappedPlanetApplicationRef(name);\n if (plantAppRef) {\n return of(plantAppRef);\n } else {\n const app = this.applicationService.getAppByName(name);\n return this.applicationLoader.preload(app, true).pipe(\n map(() => {\n return getPlanetApplicationRef(name);\n })\n );\n }\n }\n\n private createInjector<TData>(parentInjector: Injector, componentRef: PlanetComponentRef<TData>): Injector {\n return Injector.create({\n providers: [\n {\n provide: PlanetComponentRef,\n useValue: componentRef\n }\n ],\n parent: parentInjector\n });\n }\n\n private getContainerElement(config: PlantComponentConfig): HTMLElement {\n if (!config.container) {\n throw new Error(`config 'container' cannot be null`);\n } else {\n if ((config.container as ElementRef).nativeElement) {\n return (config.container as ElementRef).nativeElement;\n } else {\n return config.container as HTMLElement;\n }\n }\n }\n\n private insertComponentRootNodeToContainer(container: HTMLElement, componentRootNode: HTMLElement, hostClass: string) {\n const subApp = this.applicationService.getAppByName(this.ngModuleRef.instance.appName);\n componentRootNode.classList.add(componentWrapperClass);\n componentRootNode.setAttribute('planet-inline', '');\n if (hostClass) {\n componentRootNode.classList.add(hostClass);\n }\n if (subApp && subApp.stylePrefix) {\n componentRootNode.classList.add(subApp.stylePrefix);\n }\n // container 是注释则在前方插入,否则在元素内部插入\n if (container.nodeType === 8) {\n container.parentElement.insertBefore(componentRootNode, container);\n } else {\n container.appendChild(componentRootNode);\n }\n }\n\n private attachComponent<TData>(\n component: Type<unknown>,\n environmentInjector: EnvironmentInjector,\n config: PlantComponentConfig\n ): PlanetComponentRef<TData> {\n const plantComponentRef = new PlanetComponentRef();\n const appRef = this.applicationRef;\n const injector = this.createInjector<TData>(environmentInjector, plantComponentRef);\n const container = this.getContainerElement(config);\n\n const componentRef = createComponent(component, {\n environmentInjector: environmentInjector,\n elementInjector: injector,\n projectableNodes: config.projectableNodes as Node[][]\n });\n appRef.attachView(componentRef.hostView);\n const componentRootNode = this.getComponentRootNode(componentRef);\n this.insertComponentRootNodeToContainer(container, componentRootNode, config.hostClass || config.wrapperClass);\n if (config.initialState) {\n Object.assign(componentRef.instance, config.initialState);\n }\n plantComponentRef.componentInstance = componentRef.instance;\n plantComponentRef.componentRef = componentRef;\n plantComponentRef.hostElement = componentRootNode;\n plantComponentRef.dispose = () => {\n if (appRef.viewCount > 0) {\n appRef.detachView(componentRef.hostView);\n }\n componentRef?.destroy();\n componentRootNode.remove();\n };\n return plantComponentRef;\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n\n private registerComponentFactory(componentOrComponents: PlanetComponent | PlanetComponent[]) {\n const app = this.ngModuleRef.instance.appName;\n let appRef$: Observable<NgPlanetApplicationRef | PlanetPortalApplication>;\n\n if (app) {\n appRef$ = this.getPlantAppRef(app) as Observable<NgPlanetApplicationRef>;\n } else {\n appRef$ = of(globalPlanet.portalApplication);\n }\n\n appRef$.subscribe(appRef => {\n appRef.registerComponentFactory((componentName: string, config: PlantComponentConfig<any>) => {\n const components = coerceArray(componentOrComponents);\n const planetComponent = components.find(item => {\n return isComponentType(item)\n ? reflectComponentType(item).selector.includes(componentName)\n : item.name === componentName;\n });\n if (planetComponent) {\n return this.ngZone.run(() => {\n const componentRef = this.attachComponent<any>(\n isComponentType(planetComponent) ? planetComponent : planetComponent.component,\n appRef instanceof NgPlanetApplicationRef ? appRef.appModuleRef.injector : this.ngModuleRef.injector,\n config\n );\n return componentRef;\n });\n } else {\n throw Error(`unregistered component ${componentName} in app ${app}`);\n }\n });\n });\n }\n\n register(components: PlanetComponent | PlanetComponent[], immediate?: boolean) {\n if (immediate) {\n this.registerComponentFactory(components);\n } else {\n setTimeout(() => {\n this.registerComponentFactory(components);\n });\n }\n }\n\n load<TComp = unknown, TData = unknown>(\n app: string,\n componentName: string,\n config: PlantComponentConfig<TData>\n ): Observable<PlanetComponentRef<TComp>> {\n let appRef$: Observable<NgPlanetApplicationRef | PlanetPortalApplication>;\n if (app === globalPlanet.portalApplication.name) {\n appRef$ = of(globalPlanet.portalApplication);\n } else {\n appRef$ = this.getPlantAppRef(app).pipe(\n delayWhen((appRef: NgPlanetApplicationRef) => {\n if (appRef.getComponentFactory()) {\n return of('');\n } else {\n // Because register use 'setTimeout',so timer 20\n return timer(20);\n }\n })\n );\n }\n const result = appRef$.pipe(\n map(appRef => {\n const componentFactory = appRef.getComponentFactory();\n if (componentFactory) {\n const projectableEmbeddedViewRefs: EmbeddedViewRef<any>[] = [];\n const projectableNodes: Node[][] = (config.projectableNodes || []).map(node => {\n if (node instanceof TemplateRef) {\n const viewRef = node.createEmbeddedView({});\n projectableEmbeddedViewRefs.push(viewRef);\n this.applicationRef.attachView(viewRef);\n return viewRef.rootNodes;\n } else {\n return node;\n }\n });\n const compRef = componentFactory<TData, TComp>(componentName, { ...config, projectableNodes: projectableNodes });\n const dispose = compRef.dispose.bind(compRef);\n compRef.dispose = () => {\n projectableEmbeddedViewRefs.forEach(viewRef => {\n this.applicationRef.detachView(viewRef);\n viewRef.destroy();\n });\n dispose();\n };\n return compRef;\n } else {\n throw new Error(`${app}'s component(${componentName}) is not registered`);\n }\n }),\n shareReplay()\n );\n result.subscribe();\n return result;\n }\n}\n","import {\n Directive,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n Input,\n AfterViewInit,\n ElementRef,\n NgZone,\n Output,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { PlanetComponentLoader } from './planet-component-loader';\nimport { PlanetComponentRef } from './planet-component-types';\nimport { PlantComponentProjectableNode } from './plant-component.config';\n\n@Directive({\n selector: '[planetComponentOutlet]',\n standalone: true\n})\n// eslint-disable-next-line @angular-eslint/directive-class-suffix\nexport class PlanetComponentOutlet implements OnChanges, OnDestroy, AfterViewInit {\n private elementRef = inject(ElementRef);\n private planetComponentLoader = inject(PlanetComponentLoader);\n private ngZone = inject(NgZone);\n\n @Input() planetComponentOutlet: string;\n\n @Input() planetComponentOutletApp: string;\n\n @Input() planetComponentOutletProjectableNodes: PlantComponentProjectableNode[];\n\n @Input() planetComponentOutletInitialState: any;\n\n @Output() planetComponentLoaded = new EventEmitter<PlanetComponentRef>();\n\n private componentRef: PlanetComponentRef;\n\n private destroyed$ = new Subject<void>();\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.planetComponentOutlet && !changes['planetComponentOutlet'].isFirstChange()) {\n this.loadComponent();\n }\n }\n\n ngAfterViewInit(): void {\n this.loadComponent();\n }\n\n loadComponent() {\n this.clear();\n if (this.planetComponentOutlet && this.planetComponentOutletApp) {\n this.planetComponentLoader\n .load(this.planetComponentOutletApp, this.planetComponentOutlet, {\n container: this.elementRef.nativeElement,\n initialState: this.planetComponentOutletInitialState,\n projectableNodes: this.planetComponentOutletProjectableNodes\n })\n .pipe(takeUntil(this.destroyed$))\n .subscribe(componentRef => {\n this.componentRef = componentRef;\n this.ngZone.run(() => {\n Promise.resolve().then(() => {\n this.planetComponentLoaded.emit(this.componentRef);\n });\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n this.clear();\n this.destroyed$.complete();\n }\n\n clear() {\n this.componentRef?.dispose();\n this.destroyed$.next();\n }\n}\n","import { Component, inject } from '@angular/core';\nimport { ActivatedRoute, Route, Router, UrlTree } from '@angular/router';\n\nclass RouteRedirect {\n activatedRoute = inject(ActivatedRoute);\n router = inject(Router);\n\n constructor(redirectTo: string) {\n const finalRedirectTo = redirectTo || this.activatedRoute.snapshot.data['redirectTo'];\n if (finalRedirectTo) {\n const activatedRouteUrl = this.activatedRoute.pathFromRoot\n .filter(route => {\n return route.snapshot.url?.length > 0;\n })\n .map(route => {\n return route.snapshot.url.join('/');\n })\n .join('/');\n if (\n this.router.isActive(activatedRouteUrl, {\n matrixParams: 'exact',\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'exact'\n })\n ) {\n this.router.navigate(\n [`${finalRedirectTo}`],\n // By replacing the current URL in the history, we keep the Browser's Back\n // Button behavior in tact. This will allow the user to easily navigate back\n // to the previous URL without getting caught in a redirect.\n {\n replaceUrl: true,\n relativeTo: this.activatedRoute\n }\n );\n }\n }\n }\n}\n\nexport function routeRedirect(redirectTo?: string) {\n return new RouteRedirect(redirectTo);\n}\n\n@Component({\n selector: 'planet-redirect-to-route',\n template: '',\n standalone: true\n})\nexport class RedirectToRouteComponent {\n routeRedirect = routeRedirect();\n}\n\nexport function redirectToRoute(redirectTo: string): Route {\n return {\n path: '',\n component: RedirectToRouteComponent,\n data: {\n redirectTo: redirectTo\n }\n };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { PlanetApplication, PLANET_APPLICATIONS } from './planet.class';\nimport { provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';\nimport { EmptyComponent } from './empty/empty.component';\nimport { PlanetComponentOutlet } from './component/planet-component-outlet';\nimport { RedirectToRouteComponent } from './router/route-redirect';\n\n@NgModule({\n declarations: [],\n exports: [EmptyComponent, PlanetComponentOutlet],\n imports: [PlanetComponentOutlet, EmptyComponent, RedirectToRouteComponent],\n providers: [provideHttpClient(withInterceptorsFromDi())]\n})\nexport class NgxPlanetModule {\n static forRoot(apps: PlanetApplication[]): ModuleWithProviders<NgxPlanetModule> {\n return {\n ngModule: NgxPlanetModule,\n providers: [\n {\n provide: PLANET_APPLICATIONS,\n useValue: apps\n }\n ]\n };\n }\n}\n","import { TemplateRef, ElementRef } from '@angular/core';\n\nexport type PlantComponentProjectableNode = Node[] | TemplateRef<any>;\n\nexport class PlantComponentConfig<TData = any> {\n /** Load target container */\n container: HTMLElement | ElementRef<HTMLElement | any> | Comment;\n /**\n * Wrapper class of plant component\n * @deprecated please use hostClass\n */\n wrapperClass?: string;\n /**\n * Host class of plant component\n */\n hostClass?: string;\n /** Data being injected into the child component. */\n initialState?: TData | null = null;\n /**\n * Projectable nodes\n */\n projectableNodes?: PlantComponentProjectableNode[];\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './planet';\nexport * from './global-event-dispatcher';\nexport * from './application/portal-application';\nexport * from './planet.class';\nexport * from './module';\nexport { PlanetApplicationRef } from './application/planet-application-ref';\nexport { defineApplication, getPortalApplicationData, getPlanetApplicationRef } from './global-planet';\nexport { PlanetApplicationService } from './application/planet-application.service';\nexport * from './application/planet-application-loader';\nexport * from './assets-loader';\nexport { PlanetComponent, PlanetComponentLoader } from './component/planet-component-loader';\nexport { PlanetComponentRef } from './component/planet-component-types';\nexport { PlanetComponentOutlet } from './component/planet-component-outlet';\nexport { PlantComponentConfig } from './component/plant-component.config';\nexport * from './empty/empty.component';\nexport * from './router/route-redirect';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"worktile-planet.mjs","sources":["../../../packages/planet/src/planet.class.ts","../../../packages/planet/src/helpers.ts","../../../packages/planet/src/sandbox/constants.ts","../../../packages/planet/src/sandbox/proxy/proxies/common.ts","../../../packages/planet/src/sandbox/proxy/proxies/window.ts","../../../packages/planet/src/sandbox/proxy/patches/eventListener.ts","../../../packages/planet/src/sandbox/proxy/proxies/document.ts","../../../packages/planet/src/sandbox/proxy/patches/document.ts","../../../packages/planet/src/sandbox/proxy/patches/timer.ts","../../../packages/planet/src/sandbox/proxy/patches/storage.ts","../../../packages/planet/src/sandbox/proxy/patches/index.ts","../../../packages/planet/src/sandbox/exec.ts","../../../packages/planet/src/sandbox/sandbox.ts","../../../packages/planet/src/sandbox/proxy/proxy-sandbox.ts","../../../packages/planet/src/sandbox/snapshot/snapshot-sandbox.ts","../../../packages/planet/src/sandbox/index.ts","../../../packages/planet/src/application/ng-planet-application-ref.ts","../../../packages/planet/src/global-planet.ts","../../../packages/planet/src/application/planet-application.service.ts","../../../packages/planet/src/assets-loader.ts","../../../packages/planet/src/application/portal-application.ts","../../../packages/planet/src/global-event-dispatcher.ts","../../../packages/planet/src/debug.ts","../../../packages/planet/src/application/planet-application-loader.ts","../../../packages/planet/src/planet.ts","../../../packages/planet/src/empty/empty.component.ts","../../../packages/planet/src/component/planet-component-types.ts","../../../packages/planet/src/component/planet-component-loader.ts","../../../packages/planet/src/component/planet-component-outlet.ts","../../../packages/planet/src/router/route-redirect.ts","../../../packages/planet/src/module.ts","../../../packages/planet/src/component/plant-component.config.ts","../../../packages/planet/src/public-api.ts","../../../packages/planet/src/worktile-planet.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\nimport { Debug } from './debug';\n\nexport interface PlanetOptions {\n switchMode?: SwitchModes;\n errorHandler: (error: Error) => void;\n debugFactory?: Debug;\n}\n\nexport interface PlanetApplicationEntry {\n basePath?: string;\n scripts?: string[];\n styles?: string[];\n manifest?: string;\n}\n\nexport interface PlanetApplication<TExtra = any> {\n /**\n * Application name, e.g. \"app1\"\n */\n name: string;\n /**\n * Selector or Element which app host parent\n * 应用加载的宿主元素或者选择器\n */\n hostParent: string | HTMLElement;\n /**\n * Class name for host\n */\n hostClass?: string | string[];\n /**\n * Selector for sub application\n * 子应用的选择器\n * @deprecated please use new defineApplication to set selector\n */\n selector?: string;\n /**\n * Path prefix for sub application, e.g. '/app1'\n * 子应用路由前缀路径\n */\n routerPathPrefix: string | RegExp;\n /**\n * Preload enabled, default false, if enabled,the application will be loaded when idle in the background\n * 是否开启预加载,开启后会在后台提前加载此应用\n */\n preload?: boolean;\n /**\n * Sandbox enabled\n * 是否开启沙箱模式\n */\n sandbox?: boolean;\n /**\n * Switch application mode\n * default: will be destroyed when switch to other app\n * coexist: only hide app when switch to other app\n * 切换应用的模式\n */\n switchMode?: SwitchModes;\n /**\n * Style prefix, e.g. 'app1'\n * 样式前缀\n */\n stylePrefix?: string;\n /**\n * The entry of the micro application, e.g. '/static/app1/index.html'\n * If configured as string, it represents the entry html address of the micro application. e.g. '/static/app1/index.html'\n * If configured as object, the value of manifest is the html address of the micro application\n * entry.basePath: the base path of the entry, e.g. '/static/app1/'\n * entry.manifest: the manifest of the entry, e.g. 'index.html' or 'assets-manifest.json'\n * entry.scripts: the scripts of the entry, will get final scripts address by manifest and basePath\n * entry.styles: the styles of the entry, will get final styles address by manifest and basePath\n */\n entry?: string | PlanetApplicationEntry;\n /**\n * Manifest json file path, e.g. /static/app1/assets-manifest.json\n * 应用程序打包后的脚本和样式文件替换\n * @deprecated Please use entry.manifest instead\n */\n manifest?: string;\n /**\n * Path prefix of scripts and styles, e.g. 'static/app1/'\n * 资源文件路径的前缀\n * @deprecated Please use entry.basePath instead\n */\n resourcePathPrefix?: string;\n /**\n * Style static resource paths\n * 样式资源文件\n * @deprecated Please use entry.styles instead\n */\n styles?: string[];\n /**\n * Scripts static resource paths\n * 脚本资源文件\n * @deprecated Please use entry.scripts instead\n */\n scripts?: string[];\n /**\n * Serial load scripts, default is parallel, only enable when the script has sequentially loaded dependency\n * 串行加载,默认并行加载脚本资源,仅当脚本资源有依赖关系时开启\n */\n loadSerial?: boolean;\n /**\n * 皮肤样式的路径\n */\n // themeStylesPath?: string;\n /**\n * Extra data for application\n * 附加数据,主要应用于业务,比如图标,子应用的颜色,显示名等个性化配置\n */\n extra?: TExtra;\n}\n\nexport enum SwitchModes {\n default = 'default',\n coexist = 'coexist'\n}\n\nexport interface PlanetRouterEvent {\n url: string;\n}\n\nconst PLANET_APPLICATIONS = new InjectionToken<PlanetApplication>('PLANET_APPLICATIONS');\n\nexport { PLANET_APPLICATIONS };\n","import { AssetsTagItem } from './inner-types';\nimport { PlanetApplication, PlanetApplicationEntry } from './planet.class';\n\nconst ELEMENT_NODE_TYPE = 1;\n\nexport function hashCode(str: string): number {\n let hash = 0;\n let chr: number;\n if (str.length === 0) {\n return hash;\n }\n for (let i = 0; i < str.length; i++) {\n chr = str.charCodeAt(i);\n hash = (hash << 5) - hash + chr;\n hash |= 0; // Convert to 32bit integer\n }\n return hash;\n}\n\nexport function getHTMLElement(selector: string | HTMLElement): HTMLElement | null {\n if (selector instanceof HTMLElement) {\n return selector;\n } else {\n return document.querySelector(selector);\n }\n}\n\nexport function getTagNameByTemplate(template: string): string {\n const element = createElementByTemplate(template);\n return element ? element.nodeName : '';\n}\n\nexport function createElementByTemplate(template: string) {\n if (!template) {\n return null;\n }\n const element = document.createRange().createContextualFragment(template).firstChild;\n if (element && element.nodeType === ELEMENT_NODE_TYPE) {\n return element as HTMLElement;\n } else {\n throw new Error(`invalid template '${template}'`);\n }\n}\n\nexport function coerceArray<T>(value: T | T[]): T[] {\n return Array.isArray(value) ? value : [value];\n}\n\nexport function isEmpty(value: any): boolean {\n if (!value || value.length === 0) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function isFunction(value: any): value is Function {\n const type = typeof value;\n return !!value && type === 'function';\n}\n\nexport function isObject<T extends object>(value: any): value is T {\n return value && typeof value === 'object';\n}\n/**\n * Get file name from path\n * 1. \"main.js\" => \"main.js\"\n * 2. \"assets/scripts/main.js\" => \"main.js\"\n * @param path path\n */\nexport function getResourceFileName(path: string): string {\n const lastSlashIndex = path.lastIndexOf('/');\n if (lastSlashIndex >= 0) {\n return path.slice(lastSlashIndex + 1);\n } else {\n return path;\n }\n}\n\nexport function getExtName(name: string) {\n const lastDotIndex = name.lastIndexOf('.');\n if (lastDotIndex >= 0) {\n return name.slice(lastDotIndex + 1);\n } else {\n return '';\n }\n}\n\n/**\n * Build resource path by manifest\n * if manifest is { \"main.js\": \"main.h2sh23abee.js\"}\n * 1. \"main.js\" => \"main.h2sh23abee.js\"\n * 2. \"assets/scripts/main.js\" =>\"assets/scripts/main.h2sh23abee.js\"\n * @param resourceFilePath Resource File Path\n * @param manifestResult manifest\n */\nexport function buildResourceFilePath(resourceFilePath: string, manifestResult: Record<string, AssetsTagItem>) {\n const fileName = getResourceFileName(resourceFilePath);\n if (manifestResult[fileName]) {\n return resourceFilePath.replace(fileName, manifestResult[fileName].src);\n } else {\n return resourceFilePath;\n }\n}\n\nexport function buildFullPath(path: string, basePath?: string) {\n if (basePath) {\n if (path.startsWith(basePath)) {\n return path;\n } else {\n return `${basePath}${path}`;\n }\n }\n return path;\n}\n\nfunction getDefinedAssets(app: PlanetApplication) {\n if (app.entry) {\n return {\n scripts: isObject<PlanetApplicationEntry>(app.entry) ? app.entry.scripts : undefined,\n styles: isObject<PlanetApplicationEntry>(app.entry) ? app.entry.styles : undefined\n };\n }\n return {\n scripts: app.scripts,\n styles: app.styles\n };\n}\n\nexport function getAssetsBasePath(app: PlanetApplication): string {\n let basePath: string;\n if (app.entry) {\n if (isObject<PlanetApplicationEntry>(app.entry)) {\n basePath = app.entry.basePath;\n } else {\n const lastDotIndex = app.entry.lastIndexOf('/');\n basePath = lastDotIndex > 0 ? app.entry.slice(0, lastDotIndex + 1) : undefined;\n }\n }\n return basePath || app.resourcePathPrefix;\n}\n\nfunction getAssetsByDefined(definedPaths: string[], manifest: Record<string, AssetsTagItem[]>, ext: 'js' | 'css'): AssetsTagItem[] {\n let assets: AssetsTagItem[] = [];\n if (definedPaths) {\n definedPaths.forEach(definedPath => {\n const fileName = getResourceFileName(definedPath);\n const assetsTagItem = manifest[fileName];\n assets = assets.concat(\n assetsTagItem.map(item => ({\n ...item,\n src: definedPath.replace(fileName, item.src)\n }))\n );\n });\n } else {\n Object.keys(manifest)\n .filter(key => {\n return getExtName(key) === ext;\n })\n .forEach(key => {\n assets = assets.concat(manifest[key]);\n });\n }\n return assets;\n}\n\nexport function toAssetsTagItem(src: string): AssetsTagItem {\n return {\n src: src\n };\n}\n\nexport function toAssetsTagItems(src: string[]): AssetsTagItem[] {\n return src.map(item => toAssetsTagItem(item));\n}\n\nexport function getScriptsAndStylesAssets(\n app: PlanetApplication,\n basePath: string,\n manifestResult?: Record<string, AssetsTagItem[]>\n): { scripts: AssetsTagItem[]; styles: AssetsTagItem[] } {\n const result: { scripts: AssetsTagItem[]; styles: AssetsTagItem[] } = { scripts: [], styles: [] };\n let { scripts, styles } = getDefinedAssets(app);\n // combine resource path by manifest\n if (manifestResult) {\n result.scripts = getAssetsByDefined(scripts, manifestResult, 'js');\n result.styles = getAssetsByDefined(styles, manifestResult, 'css');\n } else {\n result.scripts = toAssetsTagItems(scripts);\n result.styles = toAssetsTagItems(styles);\n }\n if (basePath) {\n result.scripts.forEach(item => {\n item.src = buildFullPath(item.src, basePath);\n });\n result.styles.forEach(item => {\n item.src = buildFullPath(item.src, basePath);\n });\n }\n return result;\n}\n","export const PLANET_SANDBOX_WINDOW_WHITELIST = window['___PLANET_SANDBOX_WINDOW_WHITELIST___'];\nexport const PLANET_SANDBOX_DOCUMENT_WHITELIST = window['___PLANET_SANDBOX_DOCUMENT_WHITELIST___'];\nexport const SANDBOX_INSTANCE = Symbol.for('PLANET_SANDBOX_INSTANCE');\nexport const RAW_NODE = Symbol.for('PLANET_RAW_NODE');\nexport const WINDOW_BIND_FN = Symbol.for('PLANET_WINDOW_BIND_FN');\nexport const DOCUMENT_BIND_FN = Symbol.for('PLANET_DOCUMENT_BIND_FN');\n","import { isObject } from '../../../helpers';\nimport { RAW_NODE } from '../../constants';\n\nconst rawHasOwnProperty = Object.prototype.hasOwnProperty;\nexport function hasOwnProp(obj: any, key: PropertyKey): boolean {\n return rawHasOwnProperty.call(obj, key);\n}\n\nexport function isValueDescriptor(desc?: PropertyDescriptor) {\n if (desc === undefined) {\n return false;\n }\n return 'value' in desc || 'writable' in desc;\n}\n\nexport function isAccessorDescriptor(desc?: PropertyDescriptor) {\n if (desc === undefined) {\n return false;\n }\n return 'get' in desc || 'set' in desc;\n}\n\nexport function isNonWriteableValue(desc?: PropertyDescriptor) {\n return desc && desc.configurable === false && 'value' in desc && desc.writable === false;\n}\n\nexport function isInvalidSetAccessor(desc?: PropertyDescriptor) {\n if (desc && desc.configurable === false && 'set' in desc && desc.set === undefined) {\n return true;\n } else {\n return false;\n }\n}\n\nexport function isInvalidGetAccessor(desc?: PropertyDescriptor) {\n if (desc && desc.configurable === false && 'get' in desc && desc.get === undefined) {\n return true;\n } else {\n return false;\n }\n}\n\nfunction transferParams(args: IArguments | Array<any>) {\n args = Array.isArray(args) ? args : Array.from(args);\n return args.map(arg => {\n return arg[RAW_NODE] ? arg[RAW_NODE] : arg;\n });\n}\n\nconst buildInProps: PropertyKey[] = ['length', 'caller', 'callee', 'arguments', 'prototype', Symbol.hasInstance];\nfunction transferProps(o: Function, n: Function) {\n for (const key of Reflect.ownKeys(o)) {\n if (buildInProps.includes(key)) {\n continue;\n }\n const desc = Object.getOwnPropertyDescriptor(n, key);\n if (desc && desc.writable) {\n n[key] = o[key];\n }\n }\n}\n\nexport function bind(fn: any, context: any) {\n const fNOP = function() {};\n function bound() {\n const args = transferParams(arguments);\n if (this instanceof bound) {\n const obj = new fn(...args);\n Object.setPrototypeOf(obj, bound.prototype);\n return obj;\n } else {\n return fn.apply(context, args);\n }\n }\n bound.$native = fn;\n transferProps(fn, bound);\n if (fn.prototype) {\n fNOP.prototype = fn.prototype;\n }\n bound.prototype = new fNOP();\n if (Symbol.hasInstance) {\n Object.defineProperty(bound, Symbol.hasInstance, {\n configurable: true,\n value(instance: any) {\n const op = fn.prototype;\n return isObject(op) || typeof op === 'function' ? instance instanceof fn : false;\n }\n });\n }\n return bound;\n}\n\nexport function createFakeObject(target: Record<PropertyKey, any>, writableKeys?: PropertyKey[]) {\n const fakeObject = {};\n const propertyMap: Record<string, string | boolean> = {};\n const storageBox = Object.create(null);\n const propertyNames = Object.getOwnPropertyNames(target);\n const def = (p: string) => {\n const descriptor = Object.getOwnPropertyDescriptor(target, p);\n if (descriptor?.configurable) {\n const hasGetter = hasOwnProp(descriptor, 'get');\n const hasSetter = hasOwnProp(descriptor, 'set');\n const canWritable = writableKeys && writableKeys.length > 0 && writableKeys.includes(p);\n if (hasGetter) {\n descriptor.get = () => (hasOwnProp(storageBox, p) ? storageBox[p] : target[p]);\n }\n if (hasSetter) {\n descriptor.set = val => {\n storageBox[p] = val;\n return true;\n };\n }\n if (canWritable) {\n if (descriptor.writable === false) {\n descriptor.writable = true;\n } else if (hasGetter) {\n descriptor.set = val => {\n storageBox[p] = val;\n return true;\n };\n }\n }\n Object.defineProperty(fakeObject, p, Object.freeze(descriptor));\n }\n };\n propertyNames.forEach(p => {\n propertyMap[p] = true;\n def(p);\n });\n // 再次循环是为了处理原型链中的属性\n for (const prop in target) {\n if (!propertyMap[prop]) {\n def(prop);\n }\n }\n return fakeObject as any;\n}\n","import {\n hasOwnProp,\n createFakeObject,\n bind,\n isInvalidSetAccessor,\n isNonWriteableValue,\n isInvalidGetAccessor\n} from './common';\nimport { PLANET_SANDBOX_WINDOW_WHITELIST, SANDBOX_INSTANCE, WINDOW_BIND_FN } from '../../constants';\nimport { isFunction } from '../../../helpers';\nimport { ProxySandboxInstance } from '../types';\n\nconst esGlobalFunctions: PropertyKey[] = (\n 'eval,isFinite,isNaN,parseFloat,parseInt,' +\n // URL handling functions\n 'decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,' +\n // Constructor properties of the global object\n 'Array,ArrayBuffer,BigInt,BigInt64Array,BigUint64Array,Boolean,DataView,Date,Error,EvalError,' +\n 'FinalizationRegistry,Float32Array,Float64Array,Function,Int8Array,Int16Array,Int32Array,Map,Number,' +\n 'Object,Promise,Proxy,RangeError,ReferenceError,RegExp,Set,SharedArrayBuffer,String,Symbol,SyntaxError,' +\n 'TypeError,Uint8Array,Uint8ClampedArray,Uint16Array,Uint32Array,URIError,WeakMap,WeakRef,WeakSet,' +\n // Other Properties of the Global Object\n 'Atomics,JSON,Math,Reflect'\n).split(',');\n\nconst whitelistVariables = PLANET_SANDBOX_WINDOW_WHITELIST || [];\n\nfunction isConstructor(fn: () => void | FunctionConstructor) {\n const fp = fn.prototype;\n const hasConstructor = fp && fp.constructor === fn && Object.getOwnPropertyNames(fp).length > 1;\n const functionStr = !hasConstructor && fn.toString();\n return hasConstructor || /^function\\s+[A-Z]/.test(functionStr as string) || /^class\\b/.test(functionStr as string);\n}\n\nconst unscopables = {\n undefined: true,\n Array: true,\n Object: true,\n String: true,\n Boolean: true,\n Math: true,\n Number: true,\n Symbol: true,\n parseFloat: true,\n Float32Array: true\n};\n\nexport class ProxyWindow {\n constructor(private sandbox: ProxySandboxInstance) {}\n\n private definedVariables = new Set();\n\n private createGetter() {\n return (target: Window, key: PropertyKey, receiver: any) => {\n if (key === Symbol.unscopables) {\n return unscopables;\n }\n if (key === SANDBOX_INSTANCE) {\n return this.sandbox;\n }\n let value = null;\n if (whitelistVariables.includes(key)) {\n return Reflect.get(window, key);\n } else {\n value = hasOwnProp(target, key) ? Reflect.get(target, key, receiver) : Reflect.get(window, key);\n }\n if (isFunction(value)) {\n if (\n esGlobalFunctions.includes(key) ||\n whitelistVariables.includes(key) ||\n this.sandbox.rewriteVariables.includes(key) ||\n this.definedVariables.has(key) ||\n isConstructor(value)\n ) {\n return value;\n } else {\n const newValue = hasOwnProp(value, WINDOW_BIND_FN) ? value[WINDOW_BIND_FN] : bind(value, window);\n const desc = Object.getOwnPropertyDescriptor(target, key);\n if (isNonWriteableValue(desc)) {\n return value;\n }\n if (isInvalidGetAccessor(desc)) {\n return undefined;\n }\n value[WINDOW_BIND_FN] = newValue;\n return newValue;\n }\n } else {\n return value;\n }\n };\n }\n\n private createSetter() {\n return (target: Window, key: PropertyKey, value: unknown, receiver: any) => {\n const desc = Object.getOwnPropertyDescriptor(\n whitelistVariables.includes(key) ? window : receiver ? receiver : target,\n key\n );\n if (desc && isNonWriteableValue(desc)) {\n if (!Object.is(value, desc.value)) {\n return false;\n } else {\n return true;\n }\n }\n if (isInvalidSetAccessor(desc)) {\n return false;\n }\n if (whitelistVariables.includes(key)) {\n return Reflect.set(window, key, value);\n } else {\n const success = Reflect.set(target, key, value, receiver);\n if (success) {\n if (this.sandbox.running) {\n this.definedVariables.add(key);\n }\n }\n return success;\n }\n };\n }\n\n private createDefineProperty() {\n return (target: Window, p: PropertyKey, descriptor: PropertyDescriptor) => {\n if (whitelistVariables.includes(p)) {\n return Reflect.defineProperty(window, p, descriptor);\n } else {\n const success = Reflect.defineProperty(target, p, descriptor);\n if (this.sandbox.running && success) {\n this.definedVariables.add(p);\n }\n return success;\n }\n };\n }\n\n private createDeleteProperty() {\n return (target: Window, p: PropertyKey) => {\n if (hasOwnProp(target, p)) {\n delete (target as any)[p];\n if (this.sandbox.running && this.definedVariables.has(p)) {\n this.definedVariables.delete(p);\n }\n }\n return true;\n };\n }\n\n private createHas() {\n return (_target: Window, key: PropertyKey) => {\n return !whitelistVariables.includes(key);\n };\n }\n\n create() {\n const fakeWindow = createFakeObject(window, this.sandbox.rewriteVariables);\n const baseHandlers = {\n get: this.createGetter(),\n set: this.createSetter(),\n defineProperty: this.createDefineProperty(),\n deleteProperty: this.createDeleteProperty()\n };\n const proxy = new Proxy(fakeWindow, {\n ...baseHandlers,\n has: this.createHas()\n });\n const subProxy = new Proxy(fakeWindow, baseHandlers);\n proxy.self = subProxy;\n proxy.window = subProxy;\n proxy.globalThis = subProxy;\n proxy.top = window.top === window ? subProxy : window.top;\n proxy.parent = window.parent === window ? subProxy : window.top;\n return proxy;\n }\n}\n","import { SandboxPatchHandler, ProxySandboxInstance } from '../types';\nimport { Observable, Subscription } from 'rxjs';\n\nexport function eventListenerPatch(sandbox: ProxySandboxInstance): SandboxPatchHandler {\n const rawAddEventListener = window.addEventListener;\n const rawRemoveEventListener = window.removeEventListener;\n const listenerSubscriptions = new Map<EventListenerOrEventListenerObject, Subscription>();\n\n function addEventListener(type: string, listener: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions) {\n const observable = new Observable(() => {\n rawAddEventListener.call(this, type, listener, options);\n return () => {\n rawRemoveEventListener.call(this, type, listener, options);\n };\n });\n const subscription = observable.subscribe(() => {});\n listenerSubscriptions.set(listener, subscription);\n }\n\n function removeEventListener(type: string, listener: EventListenerOrEventListenerObject) {\n const subscription = listenerSubscriptions.get(listener);\n if (subscription) {\n subscription.unsubscribe();\n listenerSubscriptions.delete(listener);\n }\n }\n\n return {\n rewrite: {\n addEventListener: addEventListener.bind(window),\n removeEventListener: removeEventListener.bind(window)\n },\n init() {\n const fakeDocument = sandbox.global['document'];\n if (fakeDocument) {\n fakeDocument.addEventListener = addEventListener.bind(document);\n fakeDocument.removeEventListener = removeEventListener.bind(document);\n }\n },\n destroy() {\n listenerSubscriptions.forEach(subscription => subscription.unsubscribe());\n listenerSubscriptions.clear();\n }\n };\n}\n","import { isFunction } from '../../../helpers';\nimport { DOCUMENT_BIND_FN, PLANET_SANDBOX_DOCUMENT_WHITELIST, RAW_NODE } from '../../constants';\nimport {\n hasOwnProp,\n createFakeObject,\n isInvalidSetAccessor,\n isNonWriteableValue,\n bind,\n isInvalidGetAccessor\n} from './common';\n\nconst rawDocument = Document;\nconst whitelist: PropertyKey[] = ['cookie', 'title', 'location', ...(PLANET_SANDBOX_DOCUMENT_WHITELIST || [])];\n\nexport class ProxyDocument {\n constructor() {}\n\n private createGetter() {\n return (target: any, p: PropertyKey, receiver?: any) => {\n const value = hasOwnProp(target, p) ? Reflect.get(target, p, receiver) : Reflect.get(document, p);\n if (p === 'activeElement') {\n return Reflect.get(document, p);\n }\n // TODO: 处理动态节点\n // if (p === 'createElement') {\n // return function(tagName: string, options: ElementCreationOptions) {\n // const created = value.call(document, tagName, options);\n // if (isObject(created)) {\n // created[SANDBOX_INSTANCE] = sandbox;\n // }\n // return created;\n // };\n // }\n if (isFunction(value)) {\n let newValue = hasOwnProp(value, DOCUMENT_BIND_FN) ? value[DOCUMENT_BIND_FN] : null;\n if (!newValue) {\n newValue = bind(value, document);\n }\n const desc = Object.getOwnPropertyDescriptor(target, p);\n if (desc && isNonWriteableValue(desc)) {\n if (!Object.is(newValue, desc.value)) {\n return value;\n }\n }\n if (isInvalidGetAccessor(desc)) {\n return undefined;\n }\n value[DOCUMENT_BIND_FN] = newValue;\n return newValue;\n }\n return value;\n };\n }\n\n private createSetter() {\n return (target: any, p: PropertyKey, value: any, receiver: any) => {\n const desc = Object.getOwnPropertyDescriptor(whitelist.includes(p) ? document : receiver || target, p);\n if (desc && isNonWriteableValue(desc)) {\n if (Object.is(value, desc.value)) {\n return true;\n } else {\n return false;\n }\n }\n if (isInvalidSetAccessor(desc)) {\n return false;\n }\n return whitelist.includes(p) ? Reflect.set(document, p, value) : Reflect.set(target, p, value, receiver);\n };\n }\n\n private createDefineProperty() {\n return (target: any, p: PropertyKey, descriptor: PropertyDescriptor) => {\n return whitelist.includes(p)\n ? Reflect.defineProperty(document, p, descriptor)\n : Reflect.defineProperty(target, p, descriptor);\n };\n }\n\n create() {\n let proxyDocument = null;\n const fakeDocument = createFakeObject(document);\n const getter = this.createGetter();\n const fakeDocumentProto = new Proxy(fakeDocument, {\n get: (...args) => {\n return getter(...args);\n }\n });\n const fakeDocumentCtor = function Document() {\n if (!(this instanceof fakeDocumentCtor)) {\n throw new TypeError(`Failed to construct 'Document': Please use the 'new' operator.`);\n }\n const docInstance = new rawDocument();\n Object.setPrototypeOf(docInstance, fakeDocument);\n return docInstance;\n };\n fakeDocumentCtor.prototype = fakeDocumentProto;\n fakeDocumentCtor.prototype.constructor = fakeDocumentCtor;\n if (Symbol.hasInstance) {\n Object.defineProperty(fakeDocumentCtor, Symbol.hasInstance, {\n configurable: true,\n value(value: any) {\n let proto = value;\n if (proto === document) {\n return true;\n }\n while ((proto = Object.getPrototypeOf(proto))) {\n if (proto === fakeDocumentProto) {\n return true;\n }\n }\n const cloned = function() {};\n cloned.prototype = fakeDocument;\n return value instanceof cloned;\n }\n });\n }\n proxyDocument = new Proxy(\n Object.create(fakeDocumentProto, {\n currentScript: {\n value: null,\n writable: true\n },\n [RAW_NODE]: {\n writable: false,\n configurable: false,\n value: document\n }\n }),\n {\n set: this.createSetter(),\n defineProperty: this.createDefineProperty()\n }\n );\n return {\n document: proxyDocument,\n Document: fakeDocumentCtor\n };\n }\n}\n","import { ProxyDocument } from '../proxies/document';\nimport { SandboxPatchHandler } from '../types';\n\nexport function documentPatch(): SandboxPatchHandler {\n const proxyDocument = new ProxyDocument();\n const { document, Document } = proxyDocument.create();\n return {\n rewrite: {\n document,\n Document\n }\n };\n}\n","import { SandboxPatchHandler } from '../types';\n\nconst rawSetTimeout = window.setTimeout;\nconst rawClearTimeout = window.clearTimeout;\nconst rawSetInterval = window.setInterval;\nconst rawClearInterval = window.clearInterval;\n\nexport function timerPatch(): SandboxPatchHandler {\n const timeout = new Set<number>();\n const interval = new Set<number>();\n\n function rewriteSetTimeout(handler: TimerHandler, ms?: number, ...args: any[]) {\n const timeoutId = rawSetTimeout(handler, ms, ...args);\n timeout.add(timeoutId);\n return timeoutId;\n }\n\n function rewriteClearTimeout(timeoutId: number) {\n timeout.delete(timeoutId);\n rawClearTimeout(timeoutId);\n }\n\n function rewriteSetInterval(handler: TimerHandler, ms: number, ...args: any[]) {\n const intervalId = rawSetInterval(handler, ms, ...args);\n interval.add(intervalId);\n return intervalId;\n }\n\n function rewriteClearInterval(intervalId: number) {\n interval.delete(intervalId);\n rawClearInterval(intervalId);\n }\n\n return {\n rewrite: {\n setTimeout: rewriteSetTimeout,\n clearTimeout: rewriteClearTimeout,\n setInterval: rewriteSetInterval,\n clearInterval: rewriteClearInterval\n },\n destroy: () => {\n timeout.forEach(timeoutId => {\n rawClearTimeout(timeoutId);\n });\n interval.forEach(intervalId => {\n rawClearInterval(intervalId);\n });\n }\n };\n}\n","import { ProxySandboxInstance, SandboxPatchHandler } from '../types';\n\nconst PLANET_STORAGE_PREFIX = '__planet-storage-';\n\nexport class RewriteStorage {\n prefix: string;\n rawStorage: Storage;\n\n constructor(app: string, rawStorage: Storage) {\n this.rawStorage = rawStorage;\n this.prefix = `${PLANET_STORAGE_PREFIX}${app}__:`;\n }\n\n get length() {\n return this.getKeys().length;\n }\n\n private getKeys() {\n return Object.keys(this.rawStorage).filter(key => key.startsWith(this.prefix));\n }\n\n key(n: number) {\n const key = this.getKeys()[n];\n return key ? key.substring(this.prefix.length) : null;\n }\n\n getItem(key: string) {\n return this.rawStorage.getItem(`${this.prefix + key}`);\n }\n\n setItem(key: string, value: string) {\n this.rawStorage.setItem(`${this.prefix + key}`, value);\n }\n\n removeItem(key: string) {\n this.rawStorage.removeItem(`${this.prefix + key}`);\n }\n\n clear() {\n this.getKeys().forEach(key => {\n this.rawStorage.removeItem(key);\n });\n }\n}\n\nexport function storagePatch(sandbox: ProxySandboxInstance): SandboxPatchHandler {\n return {\n rewrite: {\n localStorage: new RewriteStorage(sandbox.app, localStorage),\n sessionStorage: new RewriteStorage(sandbox.app, sessionStorage)\n }\n };\n}\n","import { ProxySandboxInstance, SandboxPatch, SandboxPatchHandler } from '../types';\nimport { eventListenerPatch } from './eventListener';\nimport { documentPatch } from './document';\nimport { timerPatch } from './timer';\nimport { storagePatch } from './storage';\n\nconst sandboxPatches: SandboxPatch[] = [documentPatch, eventListenerPatch, timerPatch, storagePatch];\n\nexport function getSandboxPatchHandlers(sandbox: ProxySandboxInstance): SandboxPatchHandler[] {\n return sandboxPatches.map(patch => {\n return patch(sandbox);\n });\n}\n","import { Global } from './types';\n\nexport function execScript(code: string, url: string, global: Global, strictGlobal: boolean) {\n const sourceUrl = '//# sourceURL='.concat(url, '\\n');\n const window = (0, eval)('window');\n window.tempGlobal = global;\n code = strictGlobal\n ? ';(function(window, self, globalThis){with(window){;'\n .concat(code, '\\n')\n .concat(\n sourceUrl,\n '}}).bind(window.tempGlobal)(window.tempGlobal, window.tempGlobal, window.tempGlobal);'\n )\n : ';(function(window, self, globalThis){;'\n .concat(code, '\\n')\n .concat(\n sourceUrl,\n '}).bind(window.tempGlobal)(window.tempGlobal, window.tempGlobal, window.tempGlobal);'\n );\n (0, eval)(code);\n delete window.tempGlobal;\n}\n","import { execScript } from './exec';\nimport { Global } from './types';\n\nexport interface SandboxOptions {\n strictGlobal?: boolean;\n}\n\nexport abstract class Sandbox {\n options!: SandboxOptions;\n\n global!: Global;\n\n abstract start(): void;\n\n abstract destroy(): void;\n\n execScript(code: string, url = '') {\n execScript(code, url, this.global, !!this.options.strictGlobal);\n }\n}\n","import { ProxyWindow } from './proxies/window';\nimport { getSandboxPatchHandlers } from './patches';\nimport { SandboxPatchHandler } from './types';\nimport { Global } from '../types';\nimport { Sandbox, SandboxOptions } from '../sandbox';\n\nexport class ProxySandbox extends Sandbox {\n public running = false;\n\n public override global!: Global;\n\n public rewriteVariables!: PropertyKey[];\n\n private patchHandlers: SandboxPatchHandler[] = [];\n\n constructor(\n public app: string,\n public override options: SandboxOptions\n ) {\n super();\n this.patchHandlers = getSandboxPatchHandlers(this);\n this.start();\n }\n\n start() {\n this.running = true;\n this.rewriteVariables = this.getPatchRewriteVariables();\n const proxyWindow = new ProxyWindow(this);\n this.global = proxyWindow.create();\n this.execPatchHandlers();\n }\n\n destroy() {\n this.running = false;\n this.patchHandlers.forEach(handler => {\n if (handler.destroy) {\n handler.destroy();\n }\n });\n }\n\n private getPatchRewriteVariables() {\n return this.patchHandlers.reduce<string[]>((pre, cur) => {\n return [...pre, ...(cur.rewrite ? Object.keys(cur.rewrite) : [])];\n }, []);\n }\n\n private execPatchHandlers() {\n this.patchHandlers.forEach(handler => {\n if (handler.rewrite) {\n for (const key in handler.rewrite) {\n if (handler.rewrite[key]) {\n this.global[key] = handler.rewrite[key];\n }\n }\n }\n if (handler.init) {\n handler?.init();\n }\n });\n }\n}\n","import { Sandbox, SandboxOptions } from '../sandbox';\n\nexport class SnapshotSandbox extends Sandbox {\n constructor(\n public app: string,\n public override options: SandboxOptions\n ) {\n super();\n this.start();\n }\n\n start() {}\n\n destroy() {}\n}\n","import { SandboxOptions } from './sandbox';\nimport { ProxySandbox } from './proxy/proxy-sandbox';\nimport { SnapshotSandbox } from './snapshot/snapshot-sandbox';\nimport { SANDBOX_INSTANCE } from './constants';\n\nexport { Sandbox } from './sandbox';\n\nconst defaultOptions: Partial<SandboxOptions> = {\n strictGlobal: false\n};\n\nexport function createSandbox(app: string, options?: SandboxOptions) {\n options = Object.assign({}, defaultOptions, options || {});\n\n if (window.Proxy) {\n return new ProxySandbox(app, options);\n } else {\n return new SnapshotSandbox(app, options);\n }\n}\n\nexport function getSandboxInstance() {\n return window[SANDBOX_INSTANCE];\n}\n","import { ApplicationRef, NgModuleRef, NgZone, EnvironmentInjector } from '@angular/core';\nimport { Router, NavigationEnd, NavigationStart, NavigationBehaviorOptions } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { Observable, from } from 'rxjs';\nimport { PlanetPortalApplication } from './portal-application';\nimport { PlantComponentFactory } from '../component/planet-component-types';\nimport { getTagNameByTemplate } from '../helpers';\nimport { getSandboxInstance, Sandbox } from '../sandbox/';\nimport { PlanetApplicationRef } from './planet-application-ref';\n\nexport type NgBootstrapAppModule = (\n portalApp: PlanetPortalApplication\n) => Promise<NgModuleRef<any> | void | ApplicationRef | undefined | null>;\n\nexport interface NgBootstrapOptions {\n template: string;\n bootstrap: NgBootstrapAppModule;\n}\n\n/**\n * @deprecated please use NgBootstrapAppModule\n */\nexport type BootstrapAppModule = NgBootstrapAppModule;\n/**\n * @deprecated please use NgBootstrapOptions\n */\nexport interface BootstrapOptions extends NgBootstrapOptions {}\n\nexport class NgPlanetApplicationRef implements PlanetApplicationRef {\n private injector?: EnvironmentInjector;\n private appRef?: ApplicationRef;\n public appModuleRef?: NgModuleRef<any>;\n public template?: string;\n private innerSelector?: string;\n private name: string;\n private portalApp!: PlanetPortalApplication;\n private appModuleBootstrap?: NgBootstrapAppModule;\n private componentFactory?: PlantComponentFactory;\n\n public get selector() {\n return this.innerSelector;\n }\n\n public get ngZone(): NgZone | undefined {\n return (this.injector || this.appModuleRef?.injector)?.get(NgZone);\n }\n\n public get sandbox(): Sandbox {\n return getSandboxInstance();\n }\n\n public get bootstrapped(): boolean {\n return !!(this.appModuleRef || this.appRef);\n }\n\n constructor(name: string, options?: BootstrapOptions) {\n this.name = name;\n if (options) {\n this.template = options.template;\n this.innerSelector = this.template ? getTagNameByTemplate(this.template) : '';\n this.appModuleBootstrap = options.bootstrap;\n }\n // This is a hack, since NgZone doesn't allow you to configure the property that identifies your zone.\n // See https://github.com/PlaceMe-SAS/single-spa-angular-cli/issues/33,\n // NgZone.isInAngularZone = () => {\n // // @ts-ignore\n // return window.Zone.current._properties[`ngx-planet-${name}`] === true;\n // };\n }\n\n // 子应用路由变化后同步修改 portal 的 Route\n private syncPortalRouteWhenNavigationEnd() {\n const router = (this.injector || this.appModuleRef?.injector)?.get(Router);\n if (router) {\n router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n const currentNavigation = router.getCurrentNavigation();\n this.ngZone?.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.portalApp.ngZone.run(() => {\n if (currentNavigation?.extras?.browserUrl) {\n this.portalApp.router!.navigateByUrl(event.url, {\n browserUrl: currentNavigation.extras.browserUrl\n });\n } else {\n this.portalApp.router!.navigateByUrl(event.url);\n }\n });\n });\n }\n });\n }\n }\n\n bootstrap(app: PlanetPortalApplication): Observable<this> {\n if (!this.appModuleBootstrap) {\n throw new Error(`app(${this.name}) is not defined`);\n }\n this.portalApp = app;\n return from(\n this.appModuleBootstrap(app).then(appModuleRef => {\n if (appModuleRef['instance']) {\n this.appModuleRef = appModuleRef as NgModuleRef<any>;\n this.appModuleRef.instance.appName = this.name;\n this.injector = this.appModuleRef.injector;\n } else {\n this.appRef = appModuleRef as unknown as ApplicationRef;\n this.injector = this.appRef.injector;\n const moduleRef = this.appRef.injector.get(NgModuleRef);\n (moduleRef as any).instance = { appName: this.name };\n }\n this.syncPortalRouteWhenNavigationEnd();\n return this;\n })\n );\n }\n\n getRouter() {\n return (this.injector || this.appModuleRef?.injector)?.get(Router);\n }\n\n getCurrentRouterStateUrl() {\n return this.getRouter()?.routerState.snapshot.url;\n }\n\n navigateByUrl(url: string, extras?: NavigationBehaviorOptions): void {\n const router = this.getRouter();\n this.ngZone?.run(() => {\n router?.navigateByUrl(url, extras);\n });\n }\n\n getComponentFactory() {\n return this.componentFactory;\n }\n\n registerComponentFactory(componentFactory: PlantComponentFactory) {\n this.componentFactory = componentFactory;\n }\n\n destroy(): void {\n if (this.appModuleRef || this.appRef) {\n const router = (this.injector || this.appModuleRef?.injector)?.get(Router);\n if (router) {\n router.dispose();\n }\n if (this.sandbox) {\n this.sandbox.destroy();\n }\n this.appModuleRef?.destroy();\n this.appModuleRef = undefined;\n this.appRef?.destroy();\n this.appRef = undefined;\n this.injector = undefined;\n }\n }\n}\n","import { PlanetApplicationRef } from './application/planet-application-ref';\nimport { PlanetPortalApplication } from './application/portal-application';\nimport { PlanetApplicationLoader } from './application/planet-application-loader';\nimport { PlanetApplicationService } from './application/planet-application.service';\nimport { isFunction } from './helpers';\nimport { NgBootstrapAppModule, NgBootstrapOptions, NgPlanetApplicationRef } from './application/ng-planet-application-ref';\n\ndeclare const window: any;\n\nexport interface GlobalPlanet {\n apps: { [key: string]: PlanetApplicationRef };\n portalApplication?: PlanetPortalApplication;\n applicationLoader: PlanetApplicationLoader;\n applicationService: PlanetApplicationService;\n}\n\nexport const globalPlanet: GlobalPlanet = (window.planet = window.planet || {\n apps: {}\n});\n\nexport function defineApplication<TOptions extends NgBootstrapAppModule | NgBootstrapOptions>(name: string, options: TOptions) {\n if (globalPlanet.apps[name]) {\n throw new Error(`${name} application has exist.`);\n }\n if (isFunction(options)) {\n options = {\n template: '',\n bootstrap: options as NgBootstrapAppModule\n } as TOptions;\n }\n const appRef = new NgPlanetApplicationRef(name, options as NgBootstrapOptions);\n globalPlanet.apps[name] = appRef;\n}\n\nexport function getPlanetApplicationRef(appName: string): PlanetApplicationRef | null {\n if (globalPlanet && globalPlanet.apps && globalPlanet.apps[appName]) {\n return globalPlanet.apps[appName];\n } else {\n return null;\n }\n}\n\nexport function getBootstrappedPlanetApplicationRef(appName: string): PlanetApplicationRef | null {\n const plantAppRef = getPlanetApplicationRef(appName);\n if (plantAppRef) {\n // 兼容之前的版本,之前是通过 appModuleRef 来判断是否启用的\n if (plantAppRef.bootstrapped || plantAppRef['appModuleRef']) {\n return plantAppRef;\n }\n }\n return null;\n}\n\nexport function setPortalApplicationData<T>(data: T) {\n if (globalPlanet.portalApplication) {\n globalPlanet.portalApplication.data = data;\n }\n}\n\nexport function getPortalApplicationData<TData>(): TData {\n return globalPlanet.portalApplication?.data as TData;\n}\n\nexport function setApplicationLoader(loader: PlanetApplicationLoader) {\n globalPlanet.applicationLoader = loader;\n}\n\nexport function getApplicationLoader() {\n return globalPlanet.applicationLoader;\n}\n\nexport function setApplicationService(service: PlanetApplicationService) {\n globalPlanet.applicationService = service;\n}\n\nexport function getApplicationService() {\n return globalPlanet.applicationService;\n}\n\nexport function clearGlobalPlanet() {\n window.planet.apps = {};\n window.planet.portalApplication = null;\n window.planet.applicationLoader = null;\n window.planet.applicationService = null;\n}\n","import { PlanetApplication } from '../planet.class';\nimport { Injectable, inject } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { shareReplay, map } from 'rxjs/operators';\nimport { coerceArray } from '../helpers';\nimport { Observable } from 'rxjs';\nimport { getApplicationService } from '../global-planet';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetApplicationService {\n private http = inject(HttpClient);\n\n private apps: PlanetApplication[] = [];\n\n private appsMap: { [key: string]: PlanetApplication } = {};\n\n constructor() {\n if (getApplicationService()) {\n throw new Error('PlanetApplicationService has been injected in the portal, repeated injection is not allowed');\n }\n }\n\n register<TExtra>(appOrApps: PlanetApplication<TExtra> | PlanetApplication<TExtra>[]) {\n const apps = coerceArray(appOrApps);\n apps.forEach(app => {\n if (this.appsMap[app.name]) {\n throw new Error(`${app.name} has be registered.`);\n }\n this.apps.push(app);\n this.appsMap[app.name] = app;\n });\n }\n\n registerByUrl(url: string): Observable<void> {\n const result = this.http.get(`${url}`).pipe(\n map(apps => {\n if (apps && Array.isArray(apps)) {\n this.register(apps);\n } else {\n this.register(apps as PlanetApplication);\n }\n }),\n shareReplay()\n );\n result.subscribe();\n return result;\n }\n\n unregister(name: string) {\n if (this.appsMap[name]) {\n delete this.appsMap[name];\n this.apps = this.apps.filter(app => {\n return app.name !== name;\n });\n }\n }\n\n getAppsByMatchedUrl<TExtra = unknown>(url: string): PlanetApplication<TExtra>[] {\n return this.getApps().filter(app => {\n if (app.routerPathPrefix instanceof RegExp) {\n return app.routerPathPrefix.test(url);\n } else {\n return (\n url === app.routerPathPrefix ||\n (url.startsWith(app.routerPathPrefix) && ['/', '?'].includes(url[app.routerPathPrefix.length]))\n );\n }\n });\n }\n\n getAppByName(name: string) {\n return this.appsMap[name];\n }\n\n getAppsToPreload(excludeAppNames?: string[]) {\n return this.getApps().filter(app => {\n if (excludeAppNames) {\n return app.preload && !excludeAppNames.includes(app.name);\n } else {\n return app.preload;\n }\n });\n }\n\n getApps() {\n return this.apps;\n }\n}\n","import { Injectable, inject } from '@angular/core';\nimport { hashCode, isEmpty, getResourceFileName, getExtName, isObject, getAssetsBasePath, getScriptsAndStylesAssets } from './helpers';\nimport { of, Observable, Observer, forkJoin, concat } from 'rxjs';\nimport { map, switchMap, concatAll } from 'rxjs/operators';\nimport { HttpClient } from '@angular/common/http';\nimport { PlanetApplication, PlanetApplicationEntry } from './planet.class';\nimport { createSandbox } from './sandbox';\nimport { AssetsTagItem, LinkTagAttributes, ScriptTagAttributes } from './inner-types';\n\nconst STYLE_LINK_OR_SCRIPT_REG = /<[script|link].*?>/gi;\nconst LINK_OR_SRC_REG = /(src|href)=[\"'](.*?[\\.js|\\.css])[\"']/i;\nconst TAG_ATTRS_REG = /(type|defer|async|rel)((=[\"'].*?[\"'])|\\s|\\>)/gi;\n\nexport interface AssetsLoadResult {\n src: string;\n hashCode: number;\n loaded: boolean;\n status: string;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class AssetsLoader {\n private http = inject(HttpClient);\n\n private loadedSources: number[] = [];\n\n constructor() {}\n\n loadScript(scriptAsset: AssetsTagItem) {\n const { src, tagName, attributes: tagAttributes } = scriptAsset;\n const id = hashCode(src);\n if (this.loadedSources.includes(id)) {\n return of({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n }\n\n if (tagName === 'link') {\n const LinkAttributes = tagAttributes as LinkTagAttributes;\n const link = document.createElement('link');\n link.href = src;\n if (LinkAttributes.rel) {\n link.rel = LinkAttributes.rel;\n }\n const head = document.getElementsByTagName('head')[0];\n head.appendChild(link);\n return of({\n src: src,\n hashCode: id,\n loaded: false,\n status: 'Preload'\n });\n }\n return new Observable((observer: Observer<AssetsLoadResult>) => {\n const scriptAttributes = tagAttributes as ScriptTagAttributes;\n const script: HTMLScriptElement = document.createElement('script');\n script.type = scriptAttributes?.type || 'text/javascript';\n script.src = src;\n if (!scriptAttributes?.defer || scriptAttributes?.defer !== 'false') {\n script.defer = true;\n }\n if (!scriptAttributes?.async && scriptAttributes?.async !== 'false') {\n script.async = true;\n }\n\n if (script['readyState']) {\n // IE\n script['onreadystatechange'] = () => {\n if (script['readyState'] === 'loaded' || script['readyState'] === 'complete') {\n script['onreadystatechange'] = null;\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n this.loadedSources.push(id);\n }\n };\n } else {\n // Others\n script.onload = () => {\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n this.loadedSources.push(id);\n };\n }\n script.onerror = error => {\n observer.error({\n src: src,\n hashCode: id,\n loaded: false,\n status: 'Error',\n error: error\n });\n observer.complete();\n };\n document.body.appendChild(script);\n });\n }\n\n loadScriptWithSandbox(app: string, src: string): Observable<AssetsLoadResult> {\n const id = hashCode(src);\n if (this.loadedSources.includes(id)) {\n return of({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n }\n return new Observable((observer: Observer<AssetsLoadResult>) => {\n this.http.get(src, { responseType: 'text' }).subscribe(\n (code: string) => {\n this.loadedSources.push(id);\n const sandbox = createSandbox(app);\n sandbox.execScript(code, src);\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n },\n error => {\n observer.error({\n src: src,\n hashCode: id,\n loaded: false,\n status: 'Error',\n error: error\n });\n observer.complete();\n }\n );\n });\n }\n\n loadStyle(src: string): Observable<AssetsLoadResult> {\n const id = hashCode(src);\n if (this.loadedSources.includes(id)) {\n return of({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n }\n return new Observable((observer: Observer<AssetsLoadResult>) => {\n const head = document.getElementsByTagName('head')[0];\n const link = document.createElement('link');\n link.rel = 'stylesheet';\n link.type = 'text/css';\n link.href = src;\n link.media = 'all';\n link.onload = () => {\n observer.next({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded'\n });\n observer.complete();\n this.loadedSources.push(id);\n };\n link.onerror = error => {\n observer.error({\n src: src,\n hashCode: id,\n loaded: true,\n status: 'Loaded',\n error: error\n });\n observer.complete();\n };\n head.appendChild(link);\n });\n }\n\n loadScripts(\n sources: AssetsTagItem[],\n options: {\n app?: string;\n sandbox?: boolean;\n serial?: boolean;\n } = {\n serial: false,\n sandbox: false\n }\n ): Observable<AssetsLoadResult[]> {\n if (isEmpty(sources)) {\n return of(null);\n }\n const observables = sources.map(source => {\n // TODO: 暂时只支持Proxy沙箱\n if (options.sandbox && window.Proxy) {\n return this.loadScriptWithSandbox(options.app, source.src);\n } else {\n return this.loadScript(source);\n }\n });\n if (options.serial) {\n const a = concat(...observables).pipe(\n map(item => {\n return of([item]);\n }),\n concatAll()\n );\n return a;\n } else {\n return forkJoin(observables).pipe();\n }\n }\n\n loadStyles(sources: AssetsTagItem[]): Observable<AssetsLoadResult[]> {\n if (isEmpty(sources)) {\n return of(null);\n }\n return forkJoin(\n sources.map(source => {\n return this.loadStyle(source.src);\n })\n );\n }\n\n loadScriptsAndStyles(\n scripts: AssetsTagItem[] = [],\n styles: AssetsTagItem[] = [],\n options?: {\n app?: string;\n sandbox?: boolean;\n serial?: boolean;\n }\n ) {\n return forkJoin([this.loadScripts(scripts, options), this.loadStyles(styles)]);\n }\n\n /**\n * <script type=\"module\" src=\"http://127.0.0.1:3001/main.js\" async defer></script>\n * => [`type=\"module\"`, \"async \", \"defer>\"] as attributeStrMatchArr\n * => { type: \"module\", async: \"async\", defer: \"defer\" } as attributes\n */\n parseTagAttributes(tag: string): Record<string, string> {\n const attributeStrMatchArr = tag.match(TAG_ATTRS_REG);\n if (attributeStrMatchArr) {\n const attributes: Record<string, string> = {};\n attributeStrMatchArr.forEach(item => {\n const equalSignIndex = item.indexOf('=');\n if (equalSignIndex > 0) {\n // 'type=\"module\"' => { type: \"module\" }\n const key = item.slice(0, equalSignIndex);\n attributes[key] = item.slice(equalSignIndex + 2, item.length - 1);\n } else {\n // 'async ' => 'async'\n // 'defer>' => 'defer'\n const key = item.slice(0, item.length - 1);\n attributes[key] = key;\n }\n });\n return attributes;\n }\n return undefined;\n }\n\n parseManifestFromHTML(html: string): Record<string, AssetsTagItem[]> {\n const result: Record<string, AssetsTagItem[]> = {};\n const matchResult = html.match(STYLE_LINK_OR_SCRIPT_REG);\n matchResult.forEach(item => {\n const isLinkTag = item.trim().toLowerCase().slice(1, item.indexOf(' ')) === 'link';\n const linkOrSrcResult = item.match(LINK_OR_SRC_REG);\n if (linkOrSrcResult && linkOrSrcResult[2]) {\n const src = linkOrSrcResult[2];\n const hashName = getResourceFileName(src);\n let barSplitIndex = hashName.indexOf('-');\n let dotSplitIndex = hashName.indexOf('.');\n const splitIndex = barSplitIndex > -1 ? barSplitIndex : dotSplitIndex;\n if (splitIndex > -1) {\n const name = hashName.slice(0, splitIndex);\n const ext = getExtName(hashName);\n const assetsTag: AssetsTagItem = {\n src: src,\n tagName: isLinkTag ? 'link' : 'script'\n };\n const assetName = ext ? `${name}.${ext}` : name;\n if (!result[assetName]) {\n result[assetName] = [assetsTag];\n } else {\n result[assetName] = result[assetName].concat(assetsTag);\n }\n\n const attributes = this.parseTagAttributes(item);\n if (attributes) {\n assetsTag.attributes = attributes;\n }\n // const typeTagResult = item.match(TAG_TYPE_REG);\n // if (typeTagResult && typeTagResult[1]) {\n // assetsTag.attributes = {\n // type: typeTagResult[1]\n // };\n // }\n }\n }\n });\n return result;\n }\n\n loadAppAssets(app: PlanetApplication) {\n const basePath = getAssetsBasePath(app);\n const manifest = app.entry ? (isObject<PlanetApplicationEntry>(app.entry) ? app.entry.manifest : app.entry) : app.manifest;\n if (manifest) {\n const manifestExt = getExtName(manifest);\n const isHtml = manifestExt === 'html';\n const responseType = isHtml ? 'text' : 'json';\n return this.loadManifest(`${manifest}?t=${new Date().getTime()}`, responseType).pipe(\n switchMap(manifestResult => {\n const { scripts, styles } = getScriptsAndStylesAssets(app, basePath, manifestResult);\n return this.loadScriptsAndStyles(scripts, styles, {\n app: app.name,\n sandbox: app.sandbox,\n serial: app.loadSerial\n });\n })\n );\n } else {\n const { scripts, styles } = getScriptsAndStylesAssets(app, basePath);\n return this.loadScriptsAndStyles(scripts, styles, {\n app: app.name,\n sandbox: app.sandbox,\n serial: app.loadSerial\n });\n }\n }\n\n loadManifest(url: string, responseType: 'text' | 'json' = 'json'): Observable<Record<string, AssetsTagItem[]>> {\n return this.http\n .get(url, {\n responseType: responseType as 'json'\n })\n .pipe(\n map((response: any) => {\n if (responseType === 'text') {\n return this.parseManifestFromHTML(response as string);\n } else {\n const result: Record<string, AssetsTagItem[]> = {};\n Object.keys(response).forEach(key => {\n result[key] = [\n {\n src: response[key]\n }\n ];\n });\n return result;\n }\n })\n );\n }\n}\n","import { Router, UrlTree, NavigationExtras } from '@angular/router';\nimport { NgZone, Injector, ApplicationRef } from '@angular/core';\nimport { PlantComponentFactory } from '../component/planet-component-types';\nimport { GlobalEventDispatcher } from '../global-event-dispatcher';\n\nexport class PlanetPortalApplication<TData = any> {\n applicationRef?: ApplicationRef;\n injector?: Injector;\n router?: Router;\n ngZone?: NgZone;\n globalEventDispatcher?: GlobalEventDispatcher;\n data?: TData;\n name?: string = 'portal';\n private componentFactory?: PlantComponentFactory;\n\n navigateByUrl(url: string | UrlTree, extras?: NavigationExtras): Promise<boolean> {\n return this.ngZone!.run(() => {\n return this.router!.navigateByUrl(url, extras);\n });\n }\n\n run<T>(fn: (...args: any[]) => T): T {\n return this.ngZone!.run<T>(() => {\n return fn();\n });\n }\n\n tick() {\n this.applicationRef!.tick();\n }\n\n getComponentFactory() {\n return this.componentFactory;\n }\n\n registerComponentFactory(componentFactory: PlantComponentFactory) {\n this.componentFactory = componentFactory;\n }\n}\n","import { Subject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { Injectable, NgZone, inject } from '@angular/core';\n\nexport interface GlobalDispatcherEvent {\n name: string;\n payload: any;\n}\n\nconst CUSTOM_EVENT_NAME = 'PLANET_GLOBAL_EVENT_DISPATCHER';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class GlobalEventDispatcher {\n private ngZone = inject(NgZone);\n\n private subject$: Subject<GlobalDispatcherEvent> = new Subject();\n\n private hasAddGlobalEventListener = false;\n\n private subscriptionCount = 0;\n\n private globalEventListener = (event: CustomEvent) => {\n this.subject$.next(event.detail);\n };\n\n private addGlobalEventListener() {\n this.hasAddGlobalEventListener = true;\n window.addEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);\n }\n\n private removeGlobalEventListener() {\n this.hasAddGlobalEventListener = false;\n window.removeEventListener(CUSTOM_EVENT_NAME, this.globalEventListener);\n }\n\n constructor() {}\n\n dispatch<TPayload>(name: string, payload?: TPayload) {\n window.dispatchEvent(\n new CustomEvent(CUSTOM_EVENT_NAME, {\n detail: {\n name: name,\n payload: payload\n }\n })\n );\n }\n\n register<T>(eventName: string): Observable<T> {\n return new Observable(observer => {\n if (!this.hasAddGlobalEventListener) {\n this.addGlobalEventListener();\n }\n this.subscriptionCount++;\n const subscription = this.subject$\n .pipe(\n filter(event => {\n return event.name === eventName;\n }),\n map(event => {\n return event.payload;\n })\n )\n .subscribe(payload => {\n this.ngZone.run(() => {\n observer.next(payload);\n });\n });\n return () => {\n this.subscriptionCount--;\n subscription.unsubscribe();\n if (!this.subscriptionCount) {\n this.removeGlobalEventListener();\n }\n };\n });\n }\n\n getSubscriptionCount() {\n return this.subscriptionCount;\n }\n}\n","import { isFunction } from './helpers';\n\nexport interface Debugger {\n (formatter: any, ...args: any[]): void;\n\n // color: string;\n // enabled: boolean;\n // log: (...args: any[]) => any;\n // namespace: string;\n // destroy: () => boolean;\n // extend: (namespace: string, delimiter?: string) => Debugger;\n}\n\nexport interface Formatters {\n [formatter: string]: (v: any) => string;\n}\n\nexport interface Debug {\n (namespace: string): Debugger;\n coerce: (val: any) => any;\n disable: () => string;\n enable: (namespaces: string) => void;\n enabled: (namespaces: string) => boolean;\n log: (...args: any[]) => any;\n\n names: string[];\n skips: string[];\n\n formatters: Formatters;\n}\n\n/**\n * Debug factory for debug module\n */\nlet _debugFactory: Debug | undefined;\nlet _debuggerMap: Record<string, Debugger> = {};\n\nexport function createDebug(namespace: string): Debugger {\n const key = `planet:${namespace}`;\n return function (formatter: any, ...args: any[]) {\n if (_debugFactory) {\n let debugDebugger = _debuggerMap[key];\n if (!debugDebugger) {\n debugDebugger = _debugFactory(key);\n _debuggerMap[key] = debugDebugger;\n }\n debugDebugger(formatter, args);\n }\n };\n}\n\nexport function setDebugFactory(debug: Debug) {\n if (debug && !isFunction(debug)) {\n throw new Error('debug factory type is invalid, must be function');\n }\n _debugFactory = debug;\n}\n\nexport function clearDebugFactory() {\n _debugFactory = undefined;\n _debuggerMap = {};\n}\n\nexport function getDebugFactory() {\n return _debugFactory;\n}\n","import { Injectable, NgZone, ApplicationRef, Injector, signal, inject } from '@angular/core';\nimport { of, Observable, Subject, forkJoin, from } from 'rxjs';\nimport { AssetsLoader } from '../assets-loader';\nimport { PlanetApplication, PlanetRouterEvent, SwitchModes, PlanetOptions } from '../planet.class';\nimport { switchMap, share, map, tap, distinctUntilChanged, take, filter, catchError } from 'rxjs/operators';\nimport { getHTMLElement, coerceArray, createElementByTemplate } from '../helpers';\nimport { PlanetApplicationRef } from './planet-application-ref';\nimport { PlanetPortalApplication } from './portal-application';\nimport { PlanetApplicationService } from './planet-application.service';\nimport { GlobalEventDispatcher } from '../global-event-dispatcher';\nimport { Router } from '@angular/router';\nimport { globalPlanet, getPlanetApplicationRef, getApplicationLoader } from '../global-planet';\nimport { createDebug } from '../debug';\nconst debug = createDebug('app-loader');\n\nexport enum ApplicationStatus {\n assetsLoading = 1,\n assetsLoaded = 2,\n bootstrapping = 3,\n bootstrapped = 4,\n active = 5,\n loadError = 10\n}\n\nexport interface AppsLoadingStartEvent {\n shouldLoadApps: PlanetApplication[];\n shouldUnloadApps: PlanetApplication[];\n}\n\nexport interface AppStatusChangeEvent {\n app: PlanetApplication;\n status: ApplicationStatus;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetApplicationLoader {\n private assetsLoader = inject(AssetsLoader);\n private planetApplicationService = inject(PlanetApplicationService);\n private ngZone = inject(NgZone);\n\n private firstLoad = true;\n\n private startRouteChangeEvent!: PlanetRouterEvent;\n\n private options: PlanetOptions;\n\n private inProgressAppAssetsLoads = new Map<string, Observable<PlanetApplication>>();\n\n private appsStatus = new Map<PlanetApplication, ApplicationStatus>();\n\n private portalApp = new PlanetPortalApplication();\n\n private routeChange$ = new Subject<PlanetRouterEvent>();\n\n private appStatusChange$ = new Subject<AppStatusChangeEvent>();\n\n private appsLoadingStart$ = new Subject<AppsLoadingStartEvent>();\n\n private innerLoading = signal(false);\n\n public get appStatusChange(): Observable<AppStatusChangeEvent> {\n return this.appStatusChange$.asObservable();\n }\n\n public get appsLoadingStart(): Observable<AppsLoadingStartEvent> {\n return this.appsLoadingStart$.asObservable();\n }\n\n /**\n * @deprecated please use loading signal\n */\n public loadingDone = false;\n\n public loading = this.innerLoading.asReadonly();\n\n constructor() {\n const ngZone = this.ngZone;\n const router = inject(Router);\n const injector = inject(Injector);\n const applicationRef = inject(ApplicationRef);\n\n if (getApplicationLoader()) {\n throw new Error('PlanetApplicationLoader has been injected in the portal, repeated injection is not allowed');\n }\n\n this.options = {\n switchMode: SwitchModes.default,\n errorHandler: (error: Error) => {\n console.error(error);\n }\n };\n this.portalApp.ngZone = ngZone;\n this.portalApp.applicationRef = applicationRef;\n this.portalApp.router = router;\n this.portalApp.injector = injector;\n this.portalApp.globalEventDispatcher = injector.get(GlobalEventDispatcher);\n globalPlanet.portalApplication = this.portalApp;\n this.setupRouteChange();\n }\n\n private setAppStatus(app: PlanetApplication, status: ApplicationStatus) {\n this.ngZone.run(() => {\n const fromStatus = this.appsStatus.get(app);\n debug(\n `app(${app.name}) status change: ${fromStatus ? ApplicationStatus[fromStatus] : 'empty'} => ${ApplicationStatus[status]}`\n );\n this.appsStatus.set(app, status);\n this.appStatusChange$.next({\n app: app,\n status: status\n });\n });\n }\n\n private getAppStatusChange$(app: PlanetApplication, status = ApplicationStatus.bootstrapped): Observable<PlanetApplication> {\n return this.appStatusChange.pipe(\n filter(event => {\n return event.app === app && event.status === status;\n }),\n map(() => {\n return app;\n })\n );\n }\n\n private switchModeIsCoexist(app: PlanetApplication) {\n if (app && app.switchMode) {\n return app.switchMode === SwitchModes.coexist;\n } else {\n return this.options.switchMode === SwitchModes.coexist;\n }\n }\n\n private errorHandler(error: Error) {\n this.ngZone.run(() => {\n this.options.errorHandler(error);\n });\n }\n\n private setLoadingDone() {\n this.ngZone.run(() => {\n this.loadingDone = true;\n this.innerLoading.set(false);\n });\n }\n\n private getAppNames(apps: PlanetApplication[]): string | string[] {\n return apps.length === 0\n ? `[]`\n : apps.map(item => {\n return item.name;\n });\n }\n\n private setupRouteChange() {\n this.routeChange$\n .pipe(\n distinctUntilChanged((x, y) => {\n return (x && x.url) === (y && y.url);\n }),\n // Using switchMap so we cancel executing loading when a new one comes in\n switchMap(event => {\n // Return new observable use of and catchError,\n // in order to prevent routeChange$ completed which never trigger new route change\n return of(event).pipe(\n // unload apps and return should load apps\n map(() => {\n debug(`route change, url is: ${event.url}`);\n this.startRouteChangeEvent = event;\n const shouldLoadApps = this.planetApplicationService.getAppsByMatchedUrl(event.url);\n debug(`should load apps: ${this.getAppNames(shouldLoadApps)}`);\n const shouldUnloadApps = this.getUnloadApps(shouldLoadApps);\n this.appsLoadingStart$.next({\n shouldLoadApps,\n shouldUnloadApps\n });\n this.unloadApps(shouldUnloadApps, event);\n debug(`unload apps: ${this.getAppNames(shouldUnloadApps)}`);\n return shouldLoadApps;\n }),\n // Load app assets (static resources)\n switchMap(shouldLoadApps => {\n let hasAppsNeedLoadingAssets = false;\n const loadApps$ = shouldLoadApps.map(app => {\n const appStatus = this.appsStatus.get(app);\n if (\n !appStatus ||\n appStatus === ApplicationStatus.assetsLoading ||\n appStatus === ApplicationStatus.loadError\n ) {\n debug(\n `app(${app.name}) status is ${ApplicationStatus[appStatus as ApplicationStatus]}, start load assets`\n );\n hasAppsNeedLoadingAssets = true;\n return this.ngZone.runOutsideAngular(() => {\n return this.startLoadAppAssets(app);\n });\n } else {\n return of(app);\n }\n });\n if (hasAppsNeedLoadingAssets) {\n this.loadingDone = false;\n this.innerLoading.set(true);\n }\n return loadApps$.length > 0 ? forkJoin(loadApps$) : of([] as PlanetApplication[]);\n }),\n // Bootstrap or show apps\n map(apps => {\n const apps$: Observable<PlanetApplication>[] = apps.map(app => {\n return of(app).pipe(\n switchMap(app => {\n const appStatus = this.appsStatus.get(app);\n if (appStatus === ApplicationStatus.bootstrapped) {\n debug(`[routeChange] app(${app.name}) status is bootstrapped, show app and active`);\n this.showApp(app);\n const appRef = getPlanetApplicationRef(app.name);\n appRef?.navigateByUrl(event.url);\n this.setAppStatus(app, ApplicationStatus.active);\n this.setLoadingDone();\n return of(app);\n } else if (appStatus === ApplicationStatus.assetsLoaded) {\n debug(`[routeChange] app(${app.name}) status is assetsLoaded, start bootstrapping`);\n return this.bootstrapApp(app).pipe(\n map(() => {\n debug(`app(${app.name}) bootstrapped success, active it`);\n this.setAppStatus(app, ApplicationStatus.active);\n this.setLoadingDone();\n return app;\n })\n );\n } else if (appStatus === ApplicationStatus.active) {\n debug(`[routeChange] app(${app.name}) is active, do nothings`);\n const appRef = getPlanetApplicationRef(app.name);\n // Backwards compatibility sub app use old version which has not getCurrentRouterStateUrl\n const currentUrl = appRef?.getCurrentRouterStateUrl ? appRef.getCurrentRouterStateUrl() : '';\n if (currentUrl !== event.url) {\n appRef?.navigateByUrl(event.url);\n }\n return of(app);\n } else {\n debug(\n `[routeChange] app(${app.name}) status is ${\n ApplicationStatus[appStatus as ApplicationStatus]\n }`\n );\n return this.getAppStatusChange$(app).pipe(\n take(1),\n map(() => {\n debug(`app(${app.name}) status is bootstrapped by subscribe status change, active it`);\n this.setAppStatus(app, ApplicationStatus.active);\n this.showApp(app);\n return app;\n })\n );\n }\n })\n );\n });\n\n if (apps$.length > 0) {\n debug(`start load and active apps: ${this.getAppNames(apps)}`);\n // 切换到应用后会有闪烁现象,所以使用 setTimeout 后启动应用\n // example: redirect to app1's dashboard from portal's about page\n // If app's route has redirect, it doesn't work, it ok just in setTimeout, I don't know why.\n // TODO:: remove it, it is ok in version Angular 9.x\n setTimeout(() => {\n // 此处判断是因为如果静态资源加载完毕还未启动被取消,还是会启动之前的应用,虽然可能性比较小,但是无法排除这种可能性,所以只有当 Event 是最后一个才会启动\n if (this.startRouteChangeEvent === event) {\n // runOutsideAngular for fix error: `Expected to not be in Angular Zone, but it is!`\n this.ngZone.runOutsideAngular(() => {\n forkJoin(apps$).subscribe(() => {\n this.setLoadingDone();\n this.ensurePreloadApps(apps);\n });\n });\n }\n });\n } else {\n debug(`no apps need to be loaded, ensure preload apps`);\n this.ensurePreloadApps(apps);\n this.setLoadingDone();\n }\n }),\n // Error handler\n catchError(error => {\n debug(`apps loader error: ${error}`);\n this.errorHandler(error);\n return [];\n })\n );\n })\n )\n .subscribe();\n }\n\n private startLoadAppAssets(app: PlanetApplication): Observable<PlanetApplication> {\n if (this.inProgressAppAssetsLoads.get(app.name)) {\n return this.inProgressAppAssetsLoads.get(app.name);\n } else {\n const loadApp$ = this.assetsLoader.loadAppAssets(app).pipe(\n tap(() => {\n this.inProgressAppAssetsLoads.delete(app.name);\n this.setAppStatus(app, ApplicationStatus.assetsLoaded);\n }),\n map(() => {\n return app;\n }),\n catchError(error => {\n this.inProgressAppAssetsLoads.delete(app.name);\n this.setAppStatus(app, ApplicationStatus.loadError);\n throw error;\n }),\n share()\n );\n this.inProgressAppAssetsLoads.set(app.name, loadApp$);\n this.setAppStatus(app, ApplicationStatus.assetsLoading);\n return loadApp$;\n }\n }\n\n private hideApp(planetApp: PlanetApplication) {\n const appRef = getPlanetApplicationRef(planetApp.name);\n const appRootElement = document.querySelector(appRef?.selector || (planetApp.selector as string));\n if (appRootElement) {\n appRootElement.setAttribute('style', 'display:none;');\n }\n }\n\n private showApp(planetApp: PlanetApplication) {\n const appRef = getPlanetApplicationRef(planetApp.name);\n const appRootElement = document.querySelector(appRef?.selector || (planetApp.selector as string));\n if (appRootElement) {\n appRootElement.setAttribute('style', '');\n }\n }\n\n private destroyApp(planetApp: PlanetApplication) {\n const appRef = getPlanetApplicationRef(planetApp.name);\n if (appRef) {\n appRef.destroy();\n }\n const container = getHTMLElement(planetApp.hostParent);\n const appRootElement = container?.querySelector((appRef && appRef.selector) || (planetApp.selector as string));\n if (appRootElement) {\n container?.removeChild(appRootElement);\n }\n }\n\n private bootstrapApp(app: PlanetApplication, defaultStatus: 'hidden' | 'display' = 'display'): Observable<PlanetApplicationRef> {\n debug(`app(${app.name}) start bootstrapping`);\n this.setAppStatus(app, ApplicationStatus.bootstrapping);\n const appRef = getPlanetApplicationRef(app.name);\n if (appRef && appRef.bootstrap) {\n const container = getHTMLElement(app.hostParent);\n let appRootElement: HTMLElement;\n if (container) {\n appRootElement = container.querySelector(appRef.selector || app.selector!)!;\n if (!appRootElement) {\n if (appRef.template) {\n appRootElement = createElementByTemplate(appRef.template)!;\n } else {\n appRootElement = document.createElement(app.selector!);\n }\n appRootElement.setAttribute('style', 'display:none;');\n if (app.hostClass) {\n appRootElement.classList.add(...coerceArray(app.hostClass));\n }\n if (app.stylePrefix) {\n appRootElement.classList.add(...coerceArray(app.stylePrefix));\n }\n container.appendChild(appRootElement);\n }\n }\n let result = appRef.bootstrap(this.portalApp);\n // Backwards compatibility promise for bootstrap\n if ((result as any)['then']) {\n result = from(result) as Observable<PlanetApplicationRef>;\n }\n return result.pipe(\n tap(() => {\n debug(`app(${app.name}) bootstrapped success for ${defaultStatus}`);\n this.setAppStatus(app, ApplicationStatus.bootstrapped);\n if (defaultStatus === 'display' && appRootElement) {\n appRootElement.removeAttribute('style');\n }\n }),\n map(() => {\n return appRef;\n })\n );\n } else {\n throw new Error(\n `[${app.name}] not found, make sure that the app has the correct name defined use defineApplication(${app.name}) and runtimeChunk and vendorChunk are set to true, details see https://github.com/worktile/ngx-planet#throw-error-cannot-read-property-call-of-undefined-at-__webpack_require__-bootstrap79`\n );\n }\n }\n\n private getUnloadApps(activeApps: PlanetApplication[]) {\n const unloadApps: PlanetApplication[] = [];\n this.appsStatus.forEach((value, app) => {\n if (value === ApplicationStatus.active && !activeApps.find(item => item.name === app.name)) {\n unloadApps.push(app);\n }\n });\n return unloadApps;\n }\n\n private unloadApps(shouldUnloadApps: PlanetApplication[], event: PlanetRouterEvent) {\n const hideApps: PlanetApplication[] = [];\n const destroyApps: PlanetApplication[] = [];\n shouldUnloadApps.forEach(app => {\n if (this.switchModeIsCoexist(app)) {\n debug(`hide app(${app.name}) for coexist mode`);\n hideApps.push(app);\n this.hideApp(app);\n this.setAppStatus(app, ApplicationStatus.bootstrapped);\n } else {\n destroyApps.push(app);\n // 销毁之前先隐藏,否则会出现闪烁,因为 destroy 是延迟执行的\n // 如果销毁不延迟执行,会出现切换到主应用的时候会有视图卡顿现象\n this.hideApp(app);\n this.setAppStatus(app, ApplicationStatus.assetsLoaded);\n }\n });\n\n if (hideApps.length > 0 || destroyApps.length > 0) {\n // 从其他应用切换到主应用的时候会有视图卡顿现象,所以先等主应用渲染完毕后再加载其他应用\n // 此处尝试使用 this.ngZone.onStable.pipe(take(1)) 应用之间的切换会出现闪烁\n setTimeout(() => {\n hideApps.forEach(app => {\n const appRef = getPlanetApplicationRef(app.name);\n if (appRef) {\n appRef.navigateByUrl(event.url);\n }\n });\n destroyApps.forEach(app => {\n debug(`destroy app(${app.name})`);\n this.destroyApp(app);\n });\n });\n }\n }\n\n private preloadApps(activeApps?: PlanetApplication[]) {\n setTimeout(() => {\n const toPreloadApps = this.planetApplicationService.getAppsToPreload(\n activeApps ? activeApps.map(item => item.name) : undefined\n );\n debug(`start preload apps: ${this.getAppNames(toPreloadApps)}`);\n const loadApps$ = toPreloadApps.map(preloadApp => {\n return this.preloadInternal(preloadApp);\n });\n\n forkJoin(loadApps$).subscribe({\n error: error => {\n this.errorHandler(error);\n }\n });\n });\n }\n\n private ensurePreloadApps(activeApps?: PlanetApplication[]) {\n // Start preload apps\n // Start preload when first time app loaded\n if (this.firstLoad) {\n this.preloadApps(activeApps);\n this.firstLoad = false;\n }\n }\n\n public setOptions(options: Partial<PlanetOptions>) {\n this.options = {\n ...this.options,\n ...options\n };\n }\n\n /**\n * reset route by current router\n */\n public reroute(event: PlanetRouterEvent) {\n this.routeChange$.next(event);\n }\n\n private preloadInternal(app: PlanetApplication, immediate?: boolean): Observable<PlanetApplicationRef | null> {\n const status = this.appsStatus.get(app);\n if (!status || status === ApplicationStatus.loadError) {\n debug(`preload app(${app.name}), status is empty, start to load assets`);\n return this.startLoadAppAssets(app).pipe(\n switchMap(() => {\n debug(`preload app(${app.name}), assets loaded, start bootstrap app, immediate: ${!!immediate}`);\n if (immediate) {\n return this.bootstrapApp(app, 'hidden');\n } else {\n return this.ngZone.runOutsideAngular(() => {\n return this.bootstrapApp(app, 'hidden');\n });\n }\n }),\n catchError(error => {\n this.errorHandler(error);\n return of(null);\n }),\n map(() => {\n return getPlanetApplicationRef(app.name);\n })\n );\n } else if ([ApplicationStatus.assetsLoading, ApplicationStatus.assetsLoaded, ApplicationStatus.bootstrapping].includes(status)) {\n debug(`preload app(${app.name}), status is ${ApplicationStatus[status]}, return until bootstrapped`);\n return this.getAppStatusChange$(app).pipe(\n take(1),\n map(() => {\n return getPlanetApplicationRef(app.name);\n })\n );\n } else {\n const appRef = getPlanetApplicationRef(app.name);\n if (!appRef) {\n throw new Error(`${app.name}'s status is ${ApplicationStatus[status]}, planetApplicationRef is null.`);\n }\n return of(appRef);\n }\n }\n\n /**\n * Preload planet application\n * @param app app\n * @param immediate bootstrap on stable by default, setting immediate is true, it will bootstrap immediate\n */\n public preload(app: PlanetApplication, immediate?: boolean): Observable<PlanetApplicationRef> {\n return this.preloadInternal(app, immediate);\n }\n}\n","import { Injectable, Injector, inject } from '@angular/core';\nimport { NavigationEnd, RouterEvent, Router } from '@angular/router';\nimport { PlanetOptions, PlanetApplication, PLANET_APPLICATIONS } from './planet.class';\nimport { PlanetApplicationService } from './application/planet-application.service';\nimport { PlanetApplicationLoader, AppsLoadingStartEvent, AppStatusChangeEvent } from './application/planet-application-loader';\nimport { Observable, Subscription } from 'rxjs';\nimport { filter, startWith, distinctUntilChanged, map } from 'rxjs/operators';\nimport {\n setPortalApplicationData,\n setApplicationLoader,\n setApplicationService,\n getApplicationLoader,\n getApplicationService\n} from './global-planet';\nimport { setDebugFactory } from './debug';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Planet {\n private injector = inject(Injector);\n private router = inject(Router);\n\n private get planetApplicationLoader(): PlanetApplicationLoader {\n return getApplicationLoader();\n }\n\n private get planetApplicationService() {\n return getApplicationService();\n }\n\n /**\n * @deprecated please use loading signal\n */\n public get loadingDone() {\n return this.planetApplicationLoader.loadingDone;\n }\n\n public get loading() {\n return this.planetApplicationLoader.loading;\n }\n\n public get appStatusChange(): Observable<AppStatusChangeEvent> {\n return this.planetApplicationLoader.appStatusChange;\n }\n\n public get appsLoadingStart(): Observable<AppsLoadingStartEvent> {\n return this.planetApplicationLoader.appsLoadingStart;\n }\n\n private subscription?: Subscription;\n\n constructor() {\n const planetApplications = inject<PlanetApplication[]>(PLANET_APPLICATIONS, { optional: true })!;\n\n if (!this.planetApplicationLoader) {\n setApplicationLoader(this.injector.get(PlanetApplicationLoader));\n }\n if (!this.planetApplicationService) {\n setApplicationService(this.injector.get(PlanetApplicationService));\n }\n\n if (planetApplications) {\n this.registerApps(planetApplications);\n }\n }\n\n setOptions(options: Partial<PlanetOptions>) {\n this.planetApplicationLoader.setOptions(options);\n if (options.debugFactory) {\n setDebugFactory(options.debugFactory);\n }\n }\n\n setPortalAppData<T>(data: T) {\n setPortalApplicationData(data);\n }\n\n registerApp<TExtra>(app: PlanetApplication<TExtra>) {\n this.planetApplicationService.register(app);\n }\n\n registerApps<TExtra>(apps: PlanetApplication<TExtra>[]) {\n this.planetApplicationService.register(apps);\n }\n\n unregisterApp(name: string) {\n this.planetApplicationService.unregister(name);\n }\n\n getApps() {\n return this.planetApplicationService.getApps();\n }\n\n start() {\n this.subscription = (this.router.events as Observable<RouterEvent>)\n .pipe(\n filter(event => {\n return event instanceof NavigationEnd;\n }),\n map(event => {\n return (event as NavigationEnd).urlAfterRedirects || event.url;\n }),\n startWith(location.pathname),\n distinctUntilChanged()\n )\n .subscribe((url: string) => {\n this.planetApplicationLoader.reroute({\n url: url\n });\n });\n }\n\n stop() {\n this.subscription?.unsubscribe();\n }\n}\n","import { Component, ChangeDetectionStrategy } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'empty-component',\n template: ``,\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true\n})\nexport class EmptyComponent {}\n","import { ComponentRef } from '@angular/core';\nimport { PlantComponentConfig } from './plant-component.config';\n\nexport class PlanetComponentRef<TComp = any> {\n wrapperElement: HTMLElement;\n hostElement: HTMLElement;\n componentInstance: TComp;\n componentRef: ComponentRef<TComp>;\n dispose: () => void;\n}\n\nexport type PlantComponentFactory = <TData, TComp>(componentName: string, config: PlantComponentConfig<TData>) => PlanetComponentRef<TComp>;\n","import {\n ApplicationRef,\n ComponentRef,\n ElementRef,\n EmbeddedViewRef,\n EnvironmentInjector,\n Injectable,\n Injector,\n NgModuleRef,\n NgZone,\n TemplateRef,\n Type,\n createComponent,\n reflectComponentType,\n inject\n} from '@angular/core';\nimport { PlanetPortalApplication } from 'ngx-planet';\nimport { Observable, of, timer } from 'rxjs';\nimport { delayWhen, map, shareReplay } from 'rxjs/operators';\nimport { NgPlanetApplicationRef } from '../application/ng-planet-application-ref';\nimport { PlanetApplicationRef } from '../application/planet-application-ref';\nimport {\n getApplicationLoader,\n getApplicationService,\n getBootstrappedPlanetApplicationRef,\n getPlanetApplicationRef,\n globalPlanet\n} from '../global-planet';\nimport { coerceArray } from '../helpers';\nimport { PlanetComponentRef } from './planet-component-types';\nimport { PlantComponentConfig } from './plant-component.config';\n\nconst componentWrapperClass = 'planet-component-wrapper';\n\nfunction isComponentType<T>(component: PlanetComponent<T>): component is Type<T> {\n return typeof component === 'function' && component.constructor === Function;\n}\n\nexport type PlanetComponent<T = unknown> =\n | {\n name: string;\n component: Type<T>;\n }\n | Type<T>;\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetComponentLoader {\n private applicationRef = inject(ApplicationRef);\n private ngModuleRef = inject<NgModuleRef<any>>(NgModuleRef);\n private ngZone = inject(NgZone);\n\n private get applicationLoader() {\n return getApplicationLoader();\n }\n\n private get applicationService() {\n return getApplicationService();\n }\n\n constructor() {}\n\n private getPlantAppRef(name: string): Observable<PlanetApplicationRef> {\n const plantAppRef = getBootstrappedPlanetApplicationRef(name);\n if (plantAppRef) {\n return of(plantAppRef);\n } else {\n const app = this.applicationService.getAppByName(name);\n return this.applicationLoader.preload(app, true).pipe(\n map(() => {\n return getPlanetApplicationRef(name);\n })\n );\n }\n }\n\n private createInjector<TData>(parentInjector: Injector, componentRef: PlanetComponentRef<TData>): Injector {\n return Injector.create({\n providers: [\n {\n provide: PlanetComponentRef,\n useValue: componentRef\n }\n ],\n parent: parentInjector\n });\n }\n\n private getContainerElement(config: PlantComponentConfig): HTMLElement {\n if (!config.container) {\n throw new Error(`config 'container' cannot be null`);\n } else {\n if ((config.container as ElementRef).nativeElement) {\n return (config.container as ElementRef).nativeElement;\n } else {\n return config.container as HTMLElement;\n }\n }\n }\n\n private insertComponentRootNodeToContainer(container: HTMLElement, componentRootNode: HTMLElement, hostClass: string) {\n const subApp = this.applicationService.getAppByName(this.ngModuleRef.instance.appName);\n componentRootNode.classList.add(componentWrapperClass);\n componentRootNode.setAttribute('planet-inline', '');\n if (hostClass) {\n componentRootNode.classList.add(hostClass);\n }\n if (subApp && subApp.stylePrefix) {\n componentRootNode.classList.add(subApp.stylePrefix);\n }\n // container 是注释则在前方插入,否则在元素内部插入\n if (container.nodeType === 8) {\n container.parentElement.insertBefore(componentRootNode, container);\n } else {\n container.appendChild(componentRootNode);\n }\n }\n\n private attachComponent<TData>(\n component: Type<unknown>,\n environmentInjector: EnvironmentInjector,\n config: PlantComponentConfig\n ): PlanetComponentRef<TData> {\n const plantComponentRef = new PlanetComponentRef();\n const appRef = this.applicationRef;\n const injector = this.createInjector<TData>(environmentInjector, plantComponentRef);\n const container = this.getContainerElement(config);\n\n const componentRef = createComponent(component, {\n environmentInjector: environmentInjector,\n elementInjector: injector,\n projectableNodes: config.projectableNodes as Node[][]\n });\n appRef.attachView(componentRef.hostView);\n const componentRootNode = this.getComponentRootNode(componentRef);\n this.insertComponentRootNodeToContainer(container, componentRootNode, config.hostClass || config.wrapperClass);\n if (config.initialState) {\n Object.assign(componentRef.instance, config.initialState);\n }\n plantComponentRef.componentInstance = componentRef.instance;\n plantComponentRef.componentRef = componentRef;\n plantComponentRef.hostElement = componentRootNode;\n plantComponentRef.dispose = () => {\n if (appRef.viewCount > 0) {\n appRef.detachView(componentRef.hostView);\n }\n componentRef?.destroy();\n componentRootNode.remove();\n };\n return plantComponentRef;\n }\n\n /** Gets the root HTMLElement for an instantiated component. */\n private getComponentRootNode(componentRef: ComponentRef<any>): HTMLElement {\n return (componentRef.hostView as EmbeddedViewRef<any>).rootNodes[0] as HTMLElement;\n }\n\n private registerComponentFactory(componentOrComponents: PlanetComponent | PlanetComponent[]) {\n const app = this.ngModuleRef.instance.appName;\n let appRef$: Observable<NgPlanetApplicationRef | PlanetPortalApplication>;\n\n if (app) {\n appRef$ = this.getPlantAppRef(app) as Observable<NgPlanetApplicationRef>;\n } else {\n appRef$ = of(globalPlanet.portalApplication);\n }\n\n appRef$.subscribe(appRef => {\n appRef.registerComponentFactory((componentName: string, config: PlantComponentConfig<any>) => {\n const components = coerceArray(componentOrComponents);\n const planetComponent = components.find(item => {\n return isComponentType(item)\n ? reflectComponentType(item).selector.includes(componentName)\n : item.name === componentName;\n });\n if (planetComponent) {\n return this.ngZone.run(() => {\n const componentRef = this.attachComponent<any>(\n isComponentType(planetComponent) ? planetComponent : planetComponent.component,\n appRef instanceof NgPlanetApplicationRef ? appRef.appModuleRef.injector : this.ngModuleRef.injector,\n config\n );\n return componentRef;\n });\n } else {\n throw Error(`unregistered component ${componentName} in app ${app}`);\n }\n });\n });\n }\n\n register(components: PlanetComponent | PlanetComponent[], immediate?: boolean) {\n if (immediate) {\n this.registerComponentFactory(components);\n } else {\n setTimeout(() => {\n this.registerComponentFactory(components);\n });\n }\n }\n\n load<TComp = unknown, TData = unknown>(\n app: string,\n componentName: string,\n config: PlantComponentConfig<TData>\n ): Observable<PlanetComponentRef<TComp>> {\n let appRef$: Observable<NgPlanetApplicationRef | PlanetPortalApplication>;\n if (app === globalPlanet.portalApplication.name) {\n appRef$ = of(globalPlanet.portalApplication);\n } else {\n appRef$ = this.getPlantAppRef(app).pipe(\n delayWhen((appRef: NgPlanetApplicationRef) => {\n if (appRef.getComponentFactory()) {\n return of('');\n } else {\n // Because register use 'setTimeout',so timer 20\n return timer(20);\n }\n })\n );\n }\n const result = appRef$.pipe(\n map(appRef => {\n const componentFactory = appRef.getComponentFactory();\n if (componentFactory) {\n const projectableEmbeddedViewRefs: EmbeddedViewRef<any>[] = [];\n const projectableNodes: Node[][] = (config.projectableNodes || []).map(node => {\n if (node instanceof TemplateRef) {\n const viewRef = node.createEmbeddedView({});\n projectableEmbeddedViewRefs.push(viewRef);\n this.applicationRef.attachView(viewRef);\n return viewRef.rootNodes;\n } else {\n return node;\n }\n });\n const compRef = componentFactory<TData, TComp>(componentName, { ...config, projectableNodes: projectableNodes });\n const dispose = compRef.dispose.bind(compRef);\n compRef.dispose = () => {\n projectableEmbeddedViewRefs.forEach(viewRef => {\n this.applicationRef.detachView(viewRef);\n viewRef.destroy();\n });\n dispose();\n };\n return compRef;\n } else {\n throw new Error(`${app}'s component(${componentName}) is not registered`);\n }\n }),\n shareReplay()\n );\n result.subscribe();\n return result;\n }\n}\n","import {\n Directive,\n OnDestroy,\n OnChanges,\n SimpleChanges,\n Input,\n AfterViewInit,\n ElementRef,\n NgZone,\n Output,\n EventEmitter,\n inject\n} from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { PlanetComponentLoader } from './planet-component-loader';\nimport { PlanetComponentRef } from './planet-component-types';\nimport { PlantComponentProjectableNode } from './plant-component.config';\n\n@Directive({\n selector: '[planetComponentOutlet]',\n standalone: true\n})\nexport class PlanetComponentOutlet implements OnChanges, OnDestroy, AfterViewInit {\n private elementRef = inject(ElementRef);\n private planetComponentLoader = inject(PlanetComponentLoader);\n private ngZone = inject(NgZone);\n\n @Input() planetComponentOutlet: string;\n\n @Input() planetComponentOutletApp: string;\n\n @Input() planetComponentOutletProjectableNodes: PlantComponentProjectableNode[];\n\n @Input() planetComponentOutletInitialState: any;\n\n @Output() planetComponentLoaded = new EventEmitter<PlanetComponentRef>();\n\n private componentRef: PlanetComponentRef;\n\n private destroyed$ = new Subject<void>();\n\n constructor() {}\n\n ngOnChanges(changes: SimpleChanges) {\n if (this.planetComponentOutlet && !changes['planetComponentOutlet'].isFirstChange()) {\n this.loadComponent();\n }\n }\n\n ngAfterViewInit(): void {\n this.loadComponent();\n }\n\n loadComponent() {\n this.clear();\n if (this.planetComponentOutlet && this.planetComponentOutletApp) {\n this.planetComponentLoader\n .load(this.planetComponentOutletApp, this.planetComponentOutlet, {\n container: this.elementRef.nativeElement,\n initialState: this.planetComponentOutletInitialState,\n projectableNodes: this.planetComponentOutletProjectableNodes\n })\n .pipe(takeUntil(this.destroyed$))\n .subscribe(componentRef => {\n this.componentRef = componentRef;\n this.ngZone.run(() => {\n Promise.resolve().then(() => {\n this.planetComponentLoaded.emit(this.componentRef);\n });\n });\n });\n }\n }\n\n ngOnDestroy(): void {\n this.clear();\n this.destroyed$.complete();\n }\n\n clear() {\n this.componentRef?.dispose();\n this.destroyed$.next();\n }\n}\n","import { Component, inject, ChangeDetectionStrategy } from '@angular/core';\nimport { ActivatedRoute, Route, Router } from '@angular/router';\n\nclass RouteRedirect {\n activatedRoute = inject(ActivatedRoute);\n router = inject(Router);\n\n constructor(redirectTo: string) {\n const finalRedirectTo = redirectTo || this.activatedRoute.snapshot.data['redirectTo'];\n if (finalRedirectTo) {\n const activatedRouteUrl = this.activatedRoute.pathFromRoot\n .filter(route => {\n return route.snapshot.url?.length > 0;\n })\n .map(route => {\n return route.snapshot.url.join('/');\n })\n .join('/');\n if (\n this.router.isActive(activatedRouteUrl, {\n matrixParams: 'exact',\n paths: 'exact',\n queryParams: 'exact',\n fragment: 'exact'\n })\n ) {\n this.router.navigate(\n [`${finalRedirectTo}`],\n // By replacing the current URL in the history, we keep the Browser's Back\n // Button behavior in tact. This will allow the user to easily navigate back\n // to the previous URL without getting caught in a redirect.\n {\n replaceUrl: true,\n relativeTo: this.activatedRoute\n }\n );\n }\n }\n }\n}\n\nexport function routeRedirect(redirectTo?: string) {\n return new RouteRedirect(redirectTo);\n}\n\n@Component({\n selector: 'planet-redirect-to-route',\n template: '',\n changeDetection: ChangeDetectionStrategy.Eager,\n standalone: true\n})\nexport class RedirectToRouteComponent {\n routeRedirect = routeRedirect();\n}\n\nexport function redirectToRoute(redirectTo: string): Route {\n return {\n path: '',\n component: RedirectToRouteComponent,\n data: {\n redirectTo: redirectTo\n }\n };\n}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { PlanetApplication, PLANET_APPLICATIONS } from './planet.class';\nimport { provideHttpClient, withInterceptorsFromDi, withXhr } from '@angular/common/http';\nimport { EmptyComponent } from './empty/empty.component';\nimport { PlanetComponentOutlet } from './component/planet-component-outlet';\nimport { RedirectToRouteComponent } from './router/route-redirect';\n\n@NgModule({\n declarations: [],\n exports: [EmptyComponent, PlanetComponentOutlet],\n imports: [PlanetComponentOutlet, EmptyComponent, RedirectToRouteComponent],\n providers: [provideHttpClient(withXhr(), withInterceptorsFromDi())]\n})\nexport class NgxPlanetModule {\n static forRoot(apps: PlanetApplication[]): ModuleWithProviders<NgxPlanetModule> {\n return {\n ngModule: NgxPlanetModule,\n providers: [\n {\n provide: PLANET_APPLICATIONS,\n useValue: apps\n }\n ]\n };\n }\n}\n","import { TemplateRef, ElementRef } from '@angular/core';\n\nexport type PlantComponentProjectableNode = Node[] | TemplateRef<any>;\n\nexport class PlantComponentConfig<TData = any> {\n /** Load target container */\n container: HTMLElement | ElementRef<HTMLElement | any> | Comment;\n /**\n * Wrapper class of plant component\n * @deprecated please use hostClass\n */\n wrapperClass?: string;\n /**\n * Host class of plant component\n */\n hostClass?: string;\n /** Data being injected into the child component. */\n initialState?: TData | null = null;\n /**\n * Projectable nodes\n */\n projectableNodes?: PlantComponentProjectableNode[];\n}\n","/*\n * Public API Surface of core\n */\n\nexport * from './planet';\nexport * from './global-event-dispatcher';\nexport * from './application/portal-application';\nexport * from './planet.class';\nexport * from './module';\nexport { PlanetApplicationRef } from './application/planet-application-ref';\nexport { defineApplication, getPortalApplicationData, getPlanetApplicationRef } from './global-planet';\nexport { PlanetApplicationService } from './application/planet-application.service';\nexport * from './application/planet-application-loader';\nexport * from './assets-loader';\nexport { PlanetComponent, PlanetComponentLoader } from './component/planet-component-loader';\nexport { PlanetComponentRef } from './component/planet-component-types';\nexport { PlanetComponentOutlet } from './component/planet-component-outlet';\nexport { PlantComponentConfig } from './component/plant-component.config';\nexport * from './empty/empty.component';\nexport * from './router/route-redirect';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@worktile/planet",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "22.0.0-next.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"peerDependencies": {
|
|
6
|
-
"@angular/common": "^
|
|
7
|
-
"@angular/core": "^
|
|
6
|
+
"@angular/common": "^22.0.0",
|
|
7
|
+
"@angular/core": "^22.0.0"
|
|
8
8
|
},
|
|
9
9
|
"module": "fesm2022/worktile-planet.mjs",
|
|
10
10
|
"typings": "types/worktile-planet.d.ts",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"worktile-planet.d.ts","sources":["../../../packages/planet/src/debug.ts","../../../packages/planet/src/planet.class.ts","../../../packages/planet/src/component/plant-component.config.ts","../../../packages/planet/src/component/planet-component-types.ts","../../../packages/planet/src/global-event-dispatcher.ts","../../../packages/planet/src/application/portal-application.ts","../../../packages/planet/src/application/planet-application-ref.ts","../../../packages/planet/src/application/planet-application-loader.ts","../../../packages/planet/src/planet.ts","../../../packages/planet/src/component/planet-component-outlet.ts","../../../packages/planet/src/empty/empty.component.ts","../../../packages/planet/src/router/route-redirect.ts","../../../packages/planet/src/module.ts","../../../packages/planet/src/application/planet-application.service.ts","../../../packages/planet/src/application/ng-planet-application-ref.ts","../../../packages/planet/src/global-planet.ts","../../../packages/planet/src/inner-types.ts","../../../packages/planet/src/assets-loader.ts","../../../packages/planet/src/component/planet-component-loader.ts"],"mappings":";;;;;UAEiB,QAAQ;;AASxB;UAEgB,UAAU;;AAE1B;UAEgB,KAAK;AAClB,yBAAqB,QAAQ;AAC7B;;AAEA;AACA;;;;gBAMY,UAAU;AACzB;;UC1BgB,aAAa;iBACb,WAAW;AACxB,0BAAsB,KAAK;mBACZ,KAAK;AACvB;UAEgB,sBAAsB;;AAEnC;AACA;;AAEH;AAEK,UAAW,iBAAiB;AAC9B;;AAEG;;AAEH;;;AAGG;AACH,yBAAqB,WAAW;AAChC;;AAEG;AACH;AACA;;;;AAIG;;AAEH;;;AAGG;AACH,+BAA2B,MAAM;AACjC;;;AAGG;;AAEH;;;AAGG;;AAEH;;;;;AAKG;iBACU,WAAW;AACxB;;;AAGG;;AAEH;;;;;;;;AAQG;AACH,qBAAiB,sBAAsB;AACvC;;;;AAIG;;AAEH;;;;AAIG;;AAEH;;;;AAIG;AACH;AACA;;;;AAIG;AACH;AACA;;;AAGG;;AAEH;;AAEG;AAEH;;;AAGG;;AAEN;AAED,aAAY,WAAW;AACnB;AACA;AACH;UAEgB,iBAAiB;;AAEjC;AAED,cAAM,mBAAmB,EAAA,cAAA,CAAA,iBAAA;;ACxHnB,KAAM,6BAA6B,GAAG,IAAI,KAAK,WAAW;AAEhE,cAAa,oBAAoB;;eAElB,WAAW,GAAG,UAAU,CAAC,WAAW,UAAU,OAAO;AAChE;;;AAGG;;AAEH;;AAEG;;;AAGH;AACA;;AAEG;AACH,uBAAmB,6BAA6B;AACnD;;ACnBD,cAAa,kBAAkB;oBACX,WAAW;iBACd,WAAW;;AAExB,kBAAc,YAAY;;AAE7B;AAEK,KAAM,qBAAqB,iDAAiD,oBAAoB,YAAY,kBAAkB;;UCPnH,qBAAqB;;;AAGrC;AAID,cAGa,qBAAqB;;;;;;AAa9B;AAKA;;;oCAkBgC,UAAU;;yCApCjC,qBAAqB;6CAArB,qBAAqB;AAqEjC;;AC9ED,cAAa,uBAAuB;qBACf,cAAc;eACpB,QAAQ;aACV,MAAM;aACN,MAAM;4BACS,qBAAqB;;;;AAK7C,gCAA4B,OAAO,WAAW,gBAAgB,GAAG,OAAO;AAMxE;;2BAUmB,qBAAA;+CAIwB,qBAAqB;AAGnE;;UCnCgB,oBAAoB;;;;mBAIlB,uBAAuB,GAAG,UAAU;AACnD;;;AAGH;;ACID,aAAY,iBAAiB;AACzB;AACA;AACA;AACA;AACA;AACA;AACH;UAEgB,qBAAqB;oBAClB,iBAAiB;sBACf,iBAAiB;AACtC;UAEgB,oBAAoB;SAC5B,iBAAiB;YACd,iBAAiB;AAC5B;AAED,cAGa,uBAAuB;;;;;;;;;;;;;;AAyBhC,2BAA8B,UAAU,CAAC,oBAAoB;AAI7D,4BAA+B,UAAU,CAAC,qBAAqB;AAI/D;;AAEG;AACI;AAEA,aAAOA,EAAA,CAAA,MAAA;;AA2Bd;AAcA;AAWA;AAQA;AAMA;AAOA;AAQA;AA8IA;AAyBA;AAQA;AAQA;AAYA;AAiDA;AAUA;AAoCA;AAkBA;AASO,wBAAoB,OAAO,CAAC,aAAa;AAOhD;;AAEG;mBACmB,iBAAiB;AAIvC;AAwCA;;;;AAIG;AACI,iBAAa,iBAAiB,wBAAwB,UAAU,CAAC,oBAAoB;yCA/enF,uBAAuB;6CAAvB,uBAAuB;AAkfnC;;ACvgBD,cAGa,MAAM;;;;;AAYf;;AAEG;AACH;AAIA,mBAAkBA,EAAA,CAAA,MAAA;AAIlB,2BAA8B,UAAU,CAAC,oBAAoB;AAI7D,4BAA+B,UAAU,CAAC,qBAAqB;;;AAqB/D,wBAAoB,OAAO,CAAC,aAAa;AAOzC;6BAIyB,iBAAiB;+BAIf,iBAAiB;;eAQrC,iBAAA;;;yCAvEE,MAAM;6CAAN,MAAM;AAiGlB;;ACjGD,
|
|
1
|
+
{"version":3,"file":"worktile-planet.d.ts","sources":["../../../packages/planet/src/debug.ts","../../../packages/planet/src/planet.class.ts","../../../packages/planet/src/component/plant-component.config.ts","../../../packages/planet/src/component/planet-component-types.ts","../../../packages/planet/src/global-event-dispatcher.ts","../../../packages/planet/src/application/portal-application.ts","../../../packages/planet/src/application/planet-application-ref.ts","../../../packages/planet/src/application/planet-application-loader.ts","../../../packages/planet/src/planet.ts","../../../packages/planet/src/component/planet-component-outlet.ts","../../../packages/planet/src/empty/empty.component.ts","../../../packages/planet/src/router/route-redirect.ts","../../../packages/planet/src/module.ts","../../../packages/planet/src/application/planet-application.service.ts","../../../packages/planet/src/application/ng-planet-application-ref.ts","../../../packages/planet/src/global-planet.ts","../../../packages/planet/src/inner-types.ts","../../../packages/planet/src/assets-loader.ts","../../../packages/planet/src/component/planet-component-loader.ts"],"mappings":"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","names":["_angular_core","i1.PlanetComponentOutlet","i2.EmptyComponent","i3.RedirectToRouteComponent"]}
|