@worktile/planet 12.1.1 → 14.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 +26 -0
- package/application/planet-application-loader.d.ts +73 -0
- package/application/planet-application-loader.d.ts.map +1 -0
- package/application/planet-application-ref.d.ts +36 -0
- package/application/planet-application-ref.d.ts.map +1 -0
- package/application/planet-application.service.d.ts +22 -0
- package/application/planet-application.service.d.ts.map +1 -0
- package/{packages/planet/src/application/portal-application.ts → application/portal-application.d.ts} +5 -18
- package/application/portal-application.d.ts.map +1 -0
- package/assets-loader.d.ts +36 -0
- package/assets-loader.d.ts.map +1 -0
- package/component/planet-component-loader.d.ts +31 -0
- package/component/planet-component-loader.d.ts.map +1 -0
- package/component/planet-component-ref.d.ts +8 -0
- package/component/planet-component-ref.d.ts.map +1 -0
- package/{packages/planet/src/component/plant-component.config.ts → component/plant-component.config.d.ts} +4 -4
- package/component/plant-component.config.d.ts.map +1 -0
- package/debug.d.ts +22 -0
- package/debug.d.ts.map +1 -0
- package/empty/empty.component.d.ts +6 -0
- package/empty/empty.component.d.ts.map +1 -0
- package/esm2020/application/planet-application-loader.mjs +454 -0
- package/esm2020/application/planet-application-ref.mjs +94 -0
- package/esm2020/application/planet-application.service.mjs +85 -0
- package/esm2020/application/portal-application.mjs +16 -0
- package/esm2020/assets-loader.mjs +216 -0
- package/esm2020/component/planet-component-loader.mjs +153 -0
- package/esm2020/component/planet-component-ref.mjs +3 -0
- package/esm2020/component/plant-component.config.mjs +7 -0
- package/esm2020/debug.mjs +33 -0
- package/esm2020/empty/empty.component.mjs +15 -0
- package/esm2020/global-event-dispatcher.mjs +70 -0
- package/esm2020/global-planet.mjs +53 -0
- package/esm2020/helpers.mjs +119 -0
- package/esm2020/module.mjs +31 -0
- package/esm2020/planet.class.mjs +9 -0
- package/esm2020/planet.mjs +91 -0
- package/esm2020/public-api.mjs +18 -0
- package/esm2020/sandbox/constants.mjs +7 -0
- package/esm2020/sandbox/exec.mjs +15 -0
- package/esm2020/sandbox/index.mjs +20 -0
- package/esm2020/sandbox/proxy/patches/document.mjs +12 -0
- package/esm2020/sandbox/proxy/patches/eventListener.mjs +41 -0
- package/esm2020/sandbox/proxy/patches/index.mjs +11 -0
- package/esm2020/sandbox/proxy/patches/storage.mjs +40 -0
- package/esm2020/sandbox/proxy/patches/timer.mjs +43 -0
- package/esm2020/sandbox/proxy/proxies/common.mjs +132 -0
- package/esm2020/sandbox/proxy/proxies/document.mjs +126 -0
- package/esm2020/sandbox/proxy/proxies/window.mjs +158 -0
- package/esm2020/sandbox/proxy/proxy-sandbox.mjs +49 -0
- package/esm2020/sandbox/proxy/types.mjs +2 -0
- package/esm2020/sandbox/sandbox.mjs +7 -0
- package/esm2020/sandbox/snapshot/snapshot-sandbox.mjs +12 -0
- package/esm2020/sandbox/types.mjs +2 -0
- package/esm2020/worktile-planet.mjs +5 -0
- package/fesm2015/worktile-planet.mjs +2049 -0
- package/fesm2015/worktile-planet.mjs.map +1 -0
- package/fesm2020/worktile-planet.mjs +2046 -0
- package/fesm2020/worktile-planet.mjs.map +1 -0
- package/global-event-dispatcher.d.ts +23 -0
- package/global-event-dispatcher.d.ts.map +1 -0
- package/global-planet.d.ts +23 -0
- package/global-planet.d.ts.map +1 -0
- package/helpers.d.ts +39 -0
- package/helpers.d.ts.map +1 -0
- package/index.d.ts +6 -0
- package/module.d.ts +12 -0
- package/module.d.ts.map +1 -0
- package/package.json +27 -120
- package/{packages/planet/src/planet.class.ts → planet.class.d.ts} +5 -26
- package/planet.class.d.ts.map +1 -0
- package/planet.d.ts +28 -0
- package/planet.d.ts.map +1 -0
- package/{packages/planet/src/public-api.ts → public-api.d.ts} +1 -4
- package/public-api.d.ts.map +1 -0
- package/sandbox/constants.d.ts +7 -0
- package/sandbox/constants.d.ts.map +1 -0
- package/sandbox/exec.d.ts +3 -0
- package/sandbox/exec.d.ts.map +1 -0
- package/sandbox/index.d.ts +7 -0
- package/sandbox/index.d.ts.map +1 -0
- package/sandbox/proxy/patches/document.d.ts +3 -0
- package/sandbox/proxy/patches/document.d.ts.map +1 -0
- package/sandbox/proxy/patches/eventListener.d.ts +3 -0
- package/sandbox/proxy/patches/eventListener.d.ts.map +1 -0
- package/sandbox/proxy/patches/index.d.ts +3 -0
- package/sandbox/proxy/patches/index.d.ts.map +1 -0
- package/sandbox/proxy/patches/storage.d.ts +15 -0
- package/sandbox/proxy/patches/storage.d.ts.map +1 -0
- package/sandbox/proxy/patches/timer.d.ts +3 -0
- package/sandbox/proxy/patches/timer.d.ts.map +1 -0
- package/sandbox/proxy/proxies/common.d.ts +13 -0
- package/sandbox/proxy/proxies/common.d.ts.map +1 -0
- package/sandbox/proxy/proxies/document.d.ts +14 -0
- package/sandbox/proxy/proxies/document.d.ts.map +1 -0
- package/sandbox/proxy/proxies/window.d.ts +13 -0
- package/sandbox/proxy/proxies/window.d.ts.map +1 -0
- package/sandbox/proxy/proxy-sandbox.d.ts +16 -0
- package/sandbox/proxy/proxy-sandbox.d.ts.map +1 -0
- package/{packages/planet/src/sandbox/proxy/types.ts → sandbox/proxy/types.d.ts} +2 -8
- package/sandbox/proxy/types.d.ts.map +1 -0
- package/sandbox/sandbox.d.ts +12 -0
- package/sandbox/sandbox.d.ts.map +1 -0
- package/sandbox/snapshot/snapshot-sandbox.d.ts +9 -0
- package/sandbox/snapshot/snapshot-sandbox.d.ts.map +1 -0
- package/sandbox/types.d.ts +2 -0
- package/sandbox/types.d.ts.map +1 -0
- package/worktile-planet.d.ts.map +1 -0
- package/.all-contributorsrc +0 -84
- package/.circleci/config.yml +0 -17
- package/.coveralls.yml +0 -1
- package/.docgeni/public/assets/favicon.ico +0 -0
- package/.docgeni/public/index.html +0 -13
- package/.docgenirc.js +0 -35
- package/.dockerignore +0 -1
- package/.editorconfig +0 -22
- package/.github/FUNDING.yml +0 -12
- package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
- package/.github/ISSUE_TEMPLATE/feature_request.md +0 -20
- package/.prettierignore +0 -7
- package/.prettierrc +0 -28
- package/.travis.yml +0 -26
- package/.wpmrc.js +0 -11
- package/CODE_OF_CONDUCT.md +0 -76
- package/Dockerfile +0 -11
- package/README.zh-CN.md +0 -307
- package/SECURITY.md +0 -21
- package/angular.json +0 -373
- package/commitlint.config.js +0 -6
- package/docs/api/defineApplication.md +0 -46
- package/docs/api/globalEventDispatcher.md +0 -51
- package/docs/api/index.md +0 -5
- package/docs/api/planet.md +0 -117
- package/docs/guides/getting-started.md +0 -174
- package/docs/guides/index.md +0 -5
- package/docs/guides/intro.md +0 -216
- package/examples/app1/browserslist +0 -11
- package/examples/app1/extra-webpack.config.js +0 -33
- package/examples/app1/karma.conf.js +0 -31
- package/examples/app1/postcss.config.js +0 -1
- package/examples/app1/src/app/app.module.ts +0 -44
- package/examples/app1/src/app/app.routing.ts +0 -49
- package/examples/app1/src/app/counter.service.ts +0 -16
- package/examples/app1/src/app/dashboard/dashboard.component.html +0 -51
- package/examples/app1/src/app/dashboard/dashboard.component.ts +0 -70
- package/examples/app1/src/app/detail/detail.component.html +0 -8
- package/examples/app1/src/app/detail/detail.component.ts +0 -18
- package/examples/app1/src/app/overlay.ts +0 -26
- package/examples/app1/src/app/projects/dialog/projects-dialog.component.html +0 -10
- package/examples/app1/src/app/projects/dialog/projects-dialog.component.ts +0 -41
- package/examples/app1/src/app/projects/projects.component.ts +0 -33
- package/examples/app1/src/app/root/root.component.css +0 -3
- package/examples/app1/src/app/root/root.component.html +0 -16
- package/examples/app1/src/app/root/root.component.ts +0 -35
- package/examples/app1/src/app/services/initialized-data.resolver.ts +0 -15
- package/examples/app1/src/app/shared.module.ts +0 -57
- package/examples/app1/src/app/user/detail/user-detail.component.html +0 -5
- package/examples/app1/src/app/user/detail/user-detail.component.ts +0 -20
- package/examples/app1/src/app/user/user-list.component.html +0 -7
- package/examples/app1/src/app/user/user-list.component.ts +0 -20
- package/examples/app1/src/app/user/user.module.ts +0 -31
- package/examples/app1/src/assets/.gitkeep +0 -0
- package/examples/app1/src/assets/github.png +0 -0
- package/examples/app1/src/assets/main.css +0 -3
- package/examples/app1/src/environments/environment.prod.ts +0 -3
- package/examples/app1/src/environments/environment.ts +0 -16
- package/examples/app1/src/favicon.ico +0 -0
- package/examples/app1/src/index.html +0 -14
- package/examples/app1/src/main.ts +0 -35
- package/examples/app1/src/polyfills.ts +0 -84
- package/examples/app1/src/styles.scss +0 -35
- package/examples/app1/src/test.ts +0 -14
- package/examples/app1/temp.js +0 -221
- package/examples/app1/tsconfig.app.json +0 -10
- package/examples/app1/tsconfig.spec.json +0 -18
- package/examples/app1/tslint.json +0 -17
- package/examples/app1/webpack.config.js +0 -127
- package/examples/app2/browserslist +0 -11
- package/examples/app2/extra-webpack.config.js +0 -32
- package/examples/app2/karma.conf.js +0 -31
- package/examples/app2/src/app/app.module.ts +0 -90
- package/examples/app2/src/app/dashboard/dashboard.component.html +0 -21
- package/examples/app2/src/app/dashboard/dashboard.component.ts +0 -27
- package/examples/app2/src/app/overlay.ts +0 -26
- package/examples/app2/src/app/projects/detail/detail.component.html +0 -16
- package/examples/app2/src/app/projects/detail/detail.component.ts +0 -21
- package/examples/app2/src/app/projects/project-list.component.html +0 -29
- package/examples/app2/src/app/projects/project-list.component.ts +0 -58
- package/examples/app2/src/app/projects/project.resolver.ts +0 -15
- package/examples/app2/src/app/projects/projects.service.ts +0 -28
- package/examples/app2/src/app/projects/tasks/tasks.component.html +0 -10
- package/examples/app2/src/app/projects/tasks/tasks.component.ts +0 -16
- package/examples/app2/src/app/projects/view/view.component.html +0 -1
- package/examples/app2/src/app/projects/view/view.component.ts +0 -20
- package/examples/app2/src/app/root/root.component.html +0 -14
- package/examples/app2/src/app/root/root.component.scss +0 -12
- package/examples/app2/src/app/root/root.component.ts +0 -28
- package/examples/app2/src/app/shared.module.ts +0 -59
- package/examples/app2/src/assets/.gitkeep +0 -0
- package/examples/app2/src/environments/environment.prod.ts +0 -3
- package/examples/app2/src/environments/environment.ts +0 -16
- package/examples/app2/src/favicon.ico +0 -0
- package/examples/app2/src/index.html +0 -14
- package/examples/app2/src/main.ts +0 -36
- package/examples/app2/src/polyfills.ts +0 -84
- package/examples/app2/src/styles.scss +0 -28
- package/examples/app2/src/test.ts +0 -14
- package/examples/app2/tsconfig.app.json +0 -10
- package/examples/app2/tsconfig.spec.json +0 -18
- package/examples/app2/tslint.json +0 -7
- package/examples/app2/webpack.config.js +0 -92
- package/examples/common/app-root-context.ts +0 -10
- package/examples/common/cache.ts +0 -82
- package/examples/common/index.ts +0 -13
- package/examples/common/module.ts +0 -10
- package/examples/common/overlay-container.service.ts +0 -28
- package/examples/common/section-card/section-card.component.html +0 -5
- package/examples/common/section-card/section-card.component.scss +0 -15
- package/examples/common/section-card/section-card.component.ts +0 -11
- package/examples/common/utils.ts +0 -0
- package/examples/portal/src/app/a-detail/a-detail.component.html +0 -8
- package/examples/portal/src/app/a-detail/a-detail.component.ts +0 -18
- package/examples/portal/src/app/about/about.component.html +0 -27
- package/examples/portal/src/app/about/about.component.scss +0 -0
- package/examples/portal/src/app/about/about.component.spec.ts +0 -26
- package/examples/portal/src/app/about/about.component.ts +0 -26
- package/examples/portal/src/app/app-routing.module.ts +0 -57
- package/examples/portal/src/app/app.component.html +0 -73
- package/examples/portal/src/app/app.component.scss +0 -58
- package/examples/portal/src/app/app.component.spec.ts +0 -33
- package/examples/portal/src/app/app.component.ts +0 -111
- package/examples/portal/src/app/app.module.ts +0 -64
- package/examples/portal/src/app/custom-settings.service.ts +0 -44
- package/examples/portal/src/app/overlay.ts +0 -26
- package/examples/portal/src/app/settings/settings.component.html +0 -31
- package/examples/portal/src/app/settings/settings.component.scss +0 -3
- package/examples/portal/src/app/settings/settings.component.ts +0 -43
- package/examples/portal/src/assets/.gitkeep +0 -0
- package/examples/portal/src/assets/apps.json +0 -29
- package/examples/portal/src/assets/icons/sprite.defs.svg +0 -1
- package/examples/portal/src/assets/images/logo.svg +0 -16
- package/examples/portal/src/assets/ngx-planet-micro-front-end.gif +0 -0
- package/examples/portal/src/browserslist +0 -11
- package/examples/portal/src/environments/environment.prod.ts +0 -3
- package/examples/portal/src/environments/environment.ts +0 -16
- package/examples/portal/src/extra-webpack.config.js +0 -32
- package/examples/portal/src/favicon.ico +0 -0
- package/examples/portal/src/index.html +0 -14
- package/examples/portal/src/karma.conf.js +0 -31
- package/examples/portal/src/main.ts +0 -18
- package/examples/portal/src/polyfills.ts +0 -84
- package/examples/portal/src/reboot.scss +0 -14
- package/examples/portal/src/styles.scss +0 -14
- package/examples/portal/src/test.ts +0 -14
- package/examples/portal/src/tsconfig.app.json +0 -10
- package/examples/portal/src/tsconfig.spec.json +0 -9
- package/examples/portal/src/tslint.json +0 -7
- package/extra-webpack.config.js +0 -5
- package/nginx.conf +0 -17
- package/packages/planet/karma.conf.js +0 -37
- package/packages/planet/ng-package.json +0 -7
- package/packages/planet/package.json +0 -10
- package/packages/planet/src/application/planet-application-loader.spec.ts +0 -1102
- package/packages/planet/src/application/planet-application-loader.ts +0 -549
- package/packages/planet/src/application/planet-application-ref.spec.ts +0 -233
- package/packages/planet/src/application/planet-application-ref.ts +0 -131
- package/packages/planet/src/application/planet-application.service.spec.ts +0 -145
- package/packages/planet/src/application/planet-application.service.ts +0 -88
- package/packages/planet/src/application/portal-application.spec.ts +0 -53
- package/packages/planet/src/assets-loader.spec.ts +0 -689
- package/packages/planet/src/assets-loader.ts +0 -247
- package/packages/planet/src/component/planet-component-loader.spec.ts +0 -187
- package/packages/planet/src/component/planet-component-loader.ts +0 -173
- package/packages/planet/src/component/planet-component-ref.ts +0 -8
- package/packages/planet/src/debug.spec.ts +0 -58
- package/packages/planet/src/debug.ts +0 -66
- package/packages/planet/src/empty/empty.component.spec.ts +0 -34
- package/packages/planet/src/empty/empty.component.ts +0 -7
- package/packages/planet/src/global-event-dispatcher.spec.ts +0 -81
- package/packages/planet/src/global-event-dispatcher.ts +0 -82
- package/packages/planet/src/global-planet.spec.ts +0 -39
- package/packages/planet/src/global-planet.ts +0 -73
- package/packages/planet/src/helpers.spec.ts +0 -242
- package/packages/planet/src/helpers.ts +0 -125
- package/packages/planet/src/module.spec.ts +0 -79
- package/packages/planet/src/module.ts +0 -25
- package/packages/planet/src/planet.spec.ts +0 -226
- package/packages/planet/src/planet.ts +0 -113
- package/packages/planet/src/sandbox/constants.ts +0 -6
- package/packages/planet/src/sandbox/exec.ts +0 -22
- package/packages/planet/src/sandbox/index.ts +0 -24
- package/packages/planet/src/sandbox/proxy/patches/document.ts +0 -13
- package/packages/planet/src/sandbox/proxy/patches/eventListener.ts +0 -49
- package/packages/planet/src/sandbox/proxy/patches/index.ts +0 -13
- package/packages/planet/src/sandbox/proxy/patches/storage.ts +0 -53
- package/packages/planet/src/sandbox/proxy/patches/timer.ts +0 -50
- package/packages/planet/src/sandbox/proxy/proxies/common.ts +0 -137
- package/packages/planet/src/sandbox/proxy/proxies/document.ts +0 -140
- package/packages/planet/src/sandbox/proxy/proxies/window.ts +0 -176
- package/packages/planet/src/sandbox/proxy/proxy-sandbox.ts +0 -59
- package/packages/planet/src/sandbox/sandbox.ts +0 -20
- package/packages/planet/src/sandbox/snapshot/snapshot-sandbox.ts +0 -12
- package/packages/planet/src/sandbox/types.ts +0 -1
- package/packages/planet/src/test.ts +0 -16
- package/packages/planet/src/testing/app1.module.ts +0 -34
- package/packages/planet/src/testing/app2.module.ts +0 -24
- package/packages/planet/src/testing/applications.ts +0 -58
- package/packages/planet/src/testing/index.ts +0 -2
- package/packages/planet/src/testing/utils.ts +0 -31
- package/packages/planet/tsconfig.lib.json +0 -27
- package/packages/planet/tsconfig.lib.prod.json +0 -9
- package/packages/planet/tsconfig.spec.json +0 -17
- package/packages/planet/tslint.json +0 -7
- package/postcss.config.js +0 -3
- package/proxy.conf.js +0 -15
- package/tsconfig.json +0 -23
- package/tslint.json +0 -80
|
@@ -0,0 +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/planet-application-ref.ts","../../../packages/planet/src/global-planet.ts","../../../packages/planet/src/assets-loader.ts","../../../packages/planet/src/application/planet-application.service.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/module.ts","../../../packages/planet/src/component/planet-component-ref.ts","../../../packages/planet/src/component/planet-component-loader.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 PlanetApplication<TExtra = any> {\n name: string;\n // 应用加载的宿主元素或者选择器\n hostParent: string | HTMLElement;\n\n // 子应用的选择器\n /**\n * @deprecated please use new defineApplication to set selector\n */\n selector?: string;\n // 子应用路由前缀路径\n routerPathPrefix: string | RegExp;\n // 宿主元素附加样式\n hostClass?: string | string[];\n // 是否需要预加载\n preload?: boolean;\n // 是否开启沙箱\n sandbox?: boolean;\n // 切换应用的模式\n switchMode?: SwitchModes;\n // 资源文件路径的前缀\n resourcePathPrefix?: string;\n // 样式前缀\n stylePrefix?: string;\n // 样式资源文件\n styles?: string[];\n // 脚本资源文件\n scripts?: string[];\n // 串行加载,默认并行加载脚本资源\n loadSerial?: boolean;\n // 皮肤样式的路径\n themeStylesPath?: string;\n // 应用程序打包后的脚本和样式文件替换\n manifest?: string;\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 { PlanetApplication } 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(val: any) {\n return val && typeof val === '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) {\n const lastSlashIndex = path.lastIndexOf('/');\n if (lastSlashIndex >= 0) {\n return path.slice(lastSlashIndex + 1);\n } else {\n return path;\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: { [key: string]: string }) {\n const fileName = getResourceFileName(resourceFilePath);\n if (manifestResult[fileName]) {\n return resourceFilePath.replace(fileName, manifestResult[fileName]);\n } else {\n return resourceFilePath;\n }\n}\n\n/**\n * Get static resource full path\n * @param app PlanetApplication\n * @param manifestResult manifest\n */\nexport function getScriptsAndStylesFullPaths(app: PlanetApplication, manifestResult?: { [key: string]: string }) {\n let scripts = app.scripts || [];\n let styles = app.styles || [];\n // combine resource path by manifest\n if (manifestResult) {\n scripts = scripts.map(script => {\n return buildResourceFilePath(script, manifestResult);\n });\n styles = styles.map(style => {\n return buildResourceFilePath(style, manifestResult);\n });\n }\n if (app.resourcePathPrefix) {\n scripts = scripts.map(script => {\n return `${app.resourcePathPrefix}${script}`;\n });\n styles = styles.map(style => {\n return `${app.resourcePathPrefix}${style}`;\n });\n }\n return {\n scripts: scripts,\n styles: styles\n };\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(\n type: string,\n listener: EventListenerOrEventListenerObject,\n options?: boolean | AddEventListenerOptions\n ) {\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 global!: Global;\n\n public rewriteVariables!: PropertyKey[];\n\n private patchHandlers: SandboxPatchHandler[] = [];\n\n constructor(public app: string, public options: SandboxOptions) {\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(public app: string, public options: SandboxOptions) {\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 { NgModuleRef, NgZone } from '@angular/core';\nimport { Router, NavigationEnd } from '@angular/router';\nimport { take } from 'rxjs/operators';\nimport { Observable, from } from 'rxjs';\nimport { PlanetPortalApplication } from './portal-application';\nimport { PlantComponentConfig } from '../component/plant-component.config';\nimport { PlanetComponentRef } from '../component/planet-component-ref';\nimport { getTagNameByTemplate } from '../helpers';\nimport { getSandboxInstance, Sandbox } from '../sandbox/';\n\nexport interface BootstrapOptions {\n template: string;\n bootstrap: BootstrapAppModule;\n}\n\nexport type BootstrapAppModule = (portalApp: PlanetPortalApplication) => Promise<NgModuleRef<any> | undefined | null>;\n\nexport type PlantComponentFactory = <TData, TComp>(\n componentName: string,\n config: PlantComponentConfig<TData>\n) => PlanetComponentRef<TComp>;\n\nexport class PlanetApplicationRef {\n public appModuleRef?: NgModuleRef<any>;\n public template?: string;\n private innerSelector?: string;\n private name: string;\n private portalApp!: PlanetPortalApplication;\n private appModuleBootstrap?: BootstrapAppModule;\n private componentFactory?: PlantComponentFactory;\n\n public get selector() {\n return this.innerSelector;\n }\n\n public get bootstrapped() {\n return !!this.appModuleRef;\n }\n\n public get ngZone(): NgZone | undefined {\n return this.appModuleRef?.injector.get(NgZone);\n }\n\n public get sandbox(): Sandbox {\n return getSandboxInstance();\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.appModuleRef?.injector.get(Router);\n if (router) {\n router.events.subscribe(event => {\n if (event instanceof NavigationEnd) {\n this.ngZone?.onStable\n .asObservable()\n .pipe(take(1))\n .subscribe(() => {\n this.portalApp.router!.navigateByUrl(event.url);\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 this.appModuleRef = appModuleRef!;\n this.appModuleRef.instance.appName = this.name;\n this.syncPortalRouteWhenNavigationEnd();\n return this;\n })\n );\n }\n\n getRouter() {\n return this.appModuleRef?.injector.get(Router);\n }\n\n getCurrentRouterStateUrl() {\n return this.getRouter()?.routerState.snapshot.url;\n }\n\n navigateByUrl(url: string): void {\n const router = this.getRouter();\n this.ngZone?.run(() => {\n router?.navigateByUrl(url);\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) {\n const router = 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 }\n }\n}\n","import { PlanetApplicationRef, BootstrapAppModule, BootstrapOptions } 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';\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(name: string, options: BootstrapAppModule | BootstrapOptions) {\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 BootstrapAppModule\n };\n }\n const appRef = new PlanetApplicationRef(name, options as BootstrapOptions);\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 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 { Injectable } from '@angular/core';\nimport { hashCode, isEmpty, getScriptsAndStylesFullPaths } 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 } from './planet.class';\nimport { createSandbox } from './sandbox';\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 loadedSources: number[] = [];\n\n constructor(private http: HttpClient) {}\n\n loadScript(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 script: HTMLScriptElement = document.createElement('script');\n script.type = 'text/javascript';\n script.src = src;\n script.async = true;\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: string[],\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(src => {\n // TODO: 暂时只支持Proxy沙箱\n if (options.sandbox && window.Proxy) {\n return this.loadScriptWithSandbox(options.app, src);\n } else {\n return this.loadScript(src);\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: string[]): Observable<AssetsLoadResult[]> {\n if (isEmpty(sources)) {\n return of(null);\n }\n return forkJoin(\n sources.map(src => {\n return this.loadStyle(src);\n })\n );\n }\n\n loadScriptsAndStyles(\n scripts: string[] = [],\n styles: string[] = [],\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 loadAppAssets(app: PlanetApplication) {\n if (app.manifest) {\n return this.loadManifest(`${app.manifest}?t=${new Date().getTime()}`).pipe(\n switchMap(manifestResult => {\n const { scripts, styles } = getScriptsAndStylesFullPaths(app, 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 } = getScriptsAndStylesFullPaths(app);\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): Observable<{ [key: string]: string }> {\n return this.http.get(url).pipe(\n map((response: any) => {\n return response;\n })\n );\n }\n}\n","import { PlanetApplication } from '../planet.class';\nimport { Injectable } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { shareReplay, map } from 'rxjs/operators';\nimport { coerceArray } from '../helpers';\nimport { Observable } from 'rxjs';\nimport { AssetsLoader } from '../assets-loader';\nimport { getApplicationService } from '../global-planet';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetApplicationService {\n private apps: PlanetApplication[] = [];\n\n private appsMap: { [key: string]: PlanetApplication } = {};\n\n constructor(private http: HttpClient, private assetsLoader: AssetsLoader) {\n if (getApplicationService()) {\n throw new Error(\n 'PlanetApplicationService has been injected in the portal, repeated injection is not allowed'\n );\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 url.startsWith(app.routerPathPrefix);\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 { Router, UrlTree, NavigationExtras } from '@angular/router';\nimport { NgZone, Injector, ApplicationRef } from '@angular/core';\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\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","import { Subject, Observable } from 'rxjs';\nimport { filter, map } from 'rxjs/operators';\nimport { Injectable, NgZone } 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 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(private ngZone: NgZone) {}\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: RegExp[];\n skips: RegExp[];\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 } from '@angular/core';\nimport { of, Observable, Subject, forkJoin, from, throwError } 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 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 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 public loadingDone = false;\n\n constructor(\n private assetsLoader: AssetsLoader,\n private planetApplicationService: PlanetApplicationService,\n private ngZone: NgZone,\n router: Router,\n injector: Injector,\n applicationRef: ApplicationRef\n ) {\n if (getApplicationLoader()) {\n throw new Error(\n 'PlanetApplicationLoader has been injected in the portal, repeated injection is not allowed'\n );\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'} => ${\n ApplicationStatus[status]\n }`\n );\n this.appsStatus.set(app, status);\n this.appStatusChange$.next({\n app: app,\n status: status\n });\n });\n }\n\n private getAppStatusChange$(\n app: PlanetApplication,\n status = ApplicationStatus.bootstrapped\n ): 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 });\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 ${\n ApplicationStatus[appStatus as ApplicationStatus]\n }, 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 }\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(\n `[routeChange] app(${app.name}) status is bootstrapped, show app and active`\n );\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(\n `[routeChange] app(${app.name}) status is assetsLoaded, start bootstrapping`\n );\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\n ? appRef.getCurrentRouterStateUrl()\n : '';\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(\n `app(${app.name}) status is bootstrapped by subscribe status change, active it`\n );\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(\n app: PlanetApplication,\n defaultStatus: 'hidden' | 'display' = 'display'\n ): 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 (\n [ApplicationStatus.assetsLoading, ApplicationStatus.assetsLoaded, ApplicationStatus.bootstrapping].includes(\n status\n )\n ) {\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, Inject, Optional, Injector } 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 {\n PlanetApplicationLoader,\n AppsLoadingStartEvent,\n AppStatusChangeEvent\n} 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 get planetApplicationLoader(): PlanetApplicationLoader {\n return getApplicationLoader();\n }\n\n private get planetApplicationService() {\n return getApplicationService();\n }\n\n public get loadingDone() {\n return this.planetApplicationLoader.loadingDone;\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 private injector: Injector,\n private router: Router,\n @Inject(PLANET_APPLICATIONS) @Optional() planetApplications: PlanetApplication[]\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 } from '@angular/core';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: 'empty-component',\n template: ``\n})\nexport class EmptyComponent {}\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { PlanetApplication, PLANET_APPLICATIONS } from './planet.class';\nimport { HttpClientModule } from '@angular/common/http';\nimport { EmptyComponent } from './empty/empty.component';\n\n@NgModule({\n declarations: [EmptyComponent],\n imports: [HttpClientModule],\n providers: [],\n exports: [HttpClientModule, EmptyComponent]\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 { ComponentRef, ElementRef } from '@angular/core';\n\nexport class PlanetComponentRef<TComp = any> {\n wrapperElement: HTMLElement;\n componentInstance: TComp;\n componentRef: ComponentRef<TComp>;\n dispose: () => void;\n}\n","import { Injectable, ApplicationRef, NgModuleRef, NgZone, ElementRef, Inject } from '@angular/core';\nimport { ComponentType, DomPortalOutlet, ComponentPortal, PortalInjector } from '@angular/cdk/portal';\nimport { PlanetApplicationRef } from '../application/planet-application-ref';\nimport { PlanetComponentRef } from './planet-component-ref';\nimport { PlantComponentConfig } from './plant-component.config';\nimport { coerceArray } from '../helpers';\nimport { map, shareReplay, finalize, debounce, filter, take, delay, delayWhen } from 'rxjs/operators';\nimport { of, Observable, interval, timer } from 'rxjs';\nimport { DOCUMENT } from '@angular/common';\nimport { globalPlanet, getApplicationLoader, getApplicationService } from '../global-planet';\n\nconst componentWrapperClass = 'planet-component-wrapper';\n\nexport interface PlanetComponent<T = any> {\n name: string;\n component: ComponentType<T>;\n}\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PlanetComponentLoader {\n private domPortalOutletCache = new WeakMap<any, DomPortalOutlet>();\n\n private get applicationLoader() {\n return getApplicationLoader();\n }\n\n private get applicationService() {\n return getApplicationService();\n }\n\n constructor(\n private applicationRef: ApplicationRef,\n private ngModuleRef: NgModuleRef<any>,\n private ngZone: NgZone,\n @Inject(DOCUMENT) private document: any\n ) {}\n\n private getPlantAppRef(name: string): Observable<PlanetApplicationRef> {\n if (globalPlanet.apps[name] && globalPlanet.apps[name].appModuleRef) {\n return of(globalPlanet.apps[name]);\n } else {\n const app = this.applicationService.getAppByName(name);\n return this.applicationLoader.preload(app, true).pipe(\n map(() => {\n return globalPlanet.apps[name];\n })\n );\n }\n }\n\n private createInjector<TData>(\n appModuleRef: NgModuleRef<any>,\n componentRef: PlanetComponentRef<TData>\n ): PortalInjector {\n const injectionTokens = new WeakMap<any, any>([[PlanetComponentRef, componentRef]]);\n const defaultInjector = appModuleRef.injector;\n return new PortalInjector(defaultInjector, injectionTokens);\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 createWrapperElement(config: PlantComponentConfig) {\n const container = this.getContainerElement(config);\n const element = this.document.createElement('div');\n const subApp = this.applicationService.getAppByName(this.ngModuleRef.instance.appName);\n element.classList.add(componentWrapperClass);\n element.setAttribute('planet-inline', '');\n if (config.wrapperClass) {\n element.classList.add(config.wrapperClass);\n }\n if (subApp && subApp.stylePrefix) {\n element.classList.add(subApp.stylePrefix);\n }\n container.appendChild(element);\n return element;\n }\n\n private attachComponent<TData>(\n plantComponent: PlanetComponent,\n appModuleRef: NgModuleRef<any>,\n config: PlantComponentConfig\n ): PlanetComponentRef<TData> {\n const plantComponentRef = new PlanetComponentRef();\n const componentFactoryResolver = appModuleRef.componentFactoryResolver;\n const appRef = this.applicationRef;\n const injector = this.createInjector<TData>(appModuleRef, plantComponentRef);\n const wrapper = this.createWrapperElement(config);\n let portalOutlet = this.domPortalOutletCache.get(wrapper);\n if (portalOutlet) {\n portalOutlet.detach();\n } else {\n portalOutlet = new DomPortalOutlet(wrapper, componentFactoryResolver, appRef, injector);\n this.domPortalOutletCache.set(wrapper, portalOutlet);\n }\n const componentPortal = new ComponentPortal(plantComponent.component, null);\n const componentRef = portalOutlet.attachComponentPortal<TData>(componentPortal);\n if (config.initialState) {\n Object.assign(componentRef.instance, config.initialState);\n }\n plantComponentRef.componentInstance = componentRef.instance;\n plantComponentRef.componentRef = componentRef;\n plantComponentRef.wrapperElement = wrapper;\n plantComponentRef.dispose = () => {\n this.domPortalOutletCache.delete(wrapper);\n portalOutlet.dispose();\n };\n return plantComponentRef;\n }\n\n private registerComponentFactory(componentOrComponents: PlanetComponent | PlanetComponent[]) {\n const app = this.ngModuleRef.instance.appName;\n this.getPlantAppRef(app).subscribe(appRef => {\n appRef.registerComponentFactory((componentName: string, config: PlantComponentConfig<any>) => {\n const components = coerceArray(componentOrComponents);\n const component = components.find(item => item.name === componentName);\n if (component) {\n return this.ngZone.run(() => {\n const componentRef = this.attachComponent<any>(component, appRef.appModuleRef, config);\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[]) {\n setTimeout(() => {\n this.registerComponentFactory(components);\n });\n }\n\n load<TComp = unknown, TData = unknown>(\n app: string,\n componentName: string,\n config: PlantComponentConfig<TData>\n ): Observable<PlanetComponentRef<TComp>> {\n const result = this.getPlantAppRef(app).pipe(\n delayWhen(appRef => {\n if (appRef.getComponentFactory()) {\n return of('');\n } else {\n // Because register use 'setTimeout',so timer 20\n return timer(20);\n }\n }),\n map(appRef => {\n const componentFactory = appRef.getComponentFactory();\n if (componentFactory) {\n return componentFactory<TData, TComp>(componentName, config);\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 { ViewContainerRef, ElementRef } from '@angular/core';\n\nexport class PlantComponentConfig<TData = any> {\n /** Load target container */\n container: HTMLElement | ElementRef<HTMLElement | any>;\n /** Component wrapper class. */\n wrapperClass?: string;\n /** Data being injected into the child component. */\n initialState?: TData | null = null;\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-ref';\nexport { PlantComponentConfig } from './component/plant-component.config';\nexport * from './empty/empty.component';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.AssetsLoader","i1.AssetsLoader","i2.PlanetApplicationService"],"mappings":"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"}
|