import { ApplicationRef, Injector, NgZone } from "@angular/core"; import { Observable } from "rxjs"; import { StarApplication, StarOptions, StarRouterEvent } from "./star.class"; import { Router } from "@angular/router"; import { StarApplicationService } from "./star-application.service"; import { AssetsLoader } from "../assets/assets-loader"; import { StarApplicationRef } from "./star-application-ref"; import { StarConfig } from "../config/star-config"; export declare enum ApplicationStatus { assetsLoading = 1, assetsLoaded = 2, bootstrapping = 3, bootstrapped = 4, active = 5, loadError = 10 } export interface AppsLoadingStartEvent { shouldLoadApps: StarApplication[]; shouldUnloadApps: StarApplication[]; } export interface AppStatusChangeEvent { app: StarApplication; status: ApplicationStatus; } export declare class StarApplicationLoader { private assetsLoader; private ngZone; private starApplicationService; private firstLoad; private startRouteChangeEvent; private options; private inProgressAppAssetsLoads; private appsStatus; private portalApp; private routeChange$; private appStatusChange$; private appsLoadingStart$; loadingDone: boolean; constructor(assetsLoader: AssetsLoader, ngZone: NgZone, starApplicationService: StarApplicationService, config: StarConfig, router: Router, injector: Injector, applicationRef: ApplicationRef); readonly appStatusChange: Observable; readonly appsLoadingStart: Observable; /** * 设置应用状态 * @param app 应用 * @param status 状态 */ private setAppStatus; /** * 是否为隐藏模式 * @param app 应用 */ private switchModeIsCoexist; /** * 额外参数错误回调 * @param error 错误 */ private errorHandler; /** * unkonw */ private takeOneStable; /** * 加载完毕 */ private setLoadingDone; /** * 设置额外参数 * @param options 额外参数 */ setOptions(options: Partial): void; /** * 设置路由监听的值 * @param event url对象 */ reroute(event: StarRouterEvent): void; /** * 安装路由变更监听,加载application */ private setupRouteChange; /** * 预加载应用 * @param activeApps 应用集合 */ private ensurePreloadApps; /** * 预加载 * @param activeApps */ private preloadApps; /** * 网络请求与加载 * @param app 应用 * @param immediate */ private preloadInternal; /** * 引导应用启动 * @param app 应用 * @param defaultStatus 默认应用状态 */ private bootstrapApp; /** * 获取需要卸载的应用 * @param shouldLoadApps 需要被加载的应用 */ private getUnloadApps; /** * 卸载应用 * @param shouldUnloadApps 需要卸载的列表 * @param event 路由事件 */ private unloadApps; /** * 隐藏应用 * @param starApplication 需要隐藏的应用 */ private hideApp; /** * 展示应用 * @param starApplication 需要展示的应用 */ private showApp; /** * 销毁应用 * @param starApplication 需要销毁的应用 */ private destroyApp; /** * 开始加载应用的静态资源 * @param app 应用 */ private startLoadAppAssets; /** * 加载应用获取引用 * @param app 应用 * @param immediate */ preload(app: StarApplication, immediate?: boolean): Observable; }