@worktile/planet 19.0.0-next.1 → 20.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.
Files changed (120) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/README.md +0 -5
  3. package/fesm2022/worktile-planet.mjs +310 -318
  4. package/fesm2022/worktile-planet.mjs.map +1 -1
  5. package/index.d.ts +467 -6
  6. package/index.d.ts.map +1 -0
  7. package/package.json +3 -5
  8. package/application/ng-planet-application-ref.d.ts +0 -46
  9. package/application/ng-planet-application-ref.d.ts.map +0 -1
  10. package/application/planet-application-loader.d.ts +0 -78
  11. package/application/planet-application-loader.d.ts.map +0 -1
  12. package/application/planet-application-ref.d.ts +0 -12
  13. package/application/planet-application-ref.d.ts.map +0 -1
  14. package/application/planet-application.service.d.ts +0 -22
  15. package/application/planet-application.service.d.ts.map +0 -1
  16. package/application/portal-application.d.ts +0 -20
  17. package/application/portal-application.d.ts.map +0 -1
  18. package/assets-loader.d.ts +0 -47
  19. package/assets-loader.d.ts.map +0 -1
  20. package/component/planet-component-loader.d.ts +0 -31
  21. package/component/planet-component-loader.d.ts.map +0 -1
  22. package/component/planet-component-outlet.d.ts +0 -26
  23. package/component/planet-component-outlet.d.ts.map +0 -1
  24. package/component/planet-component-types.d.ts +0 -11
  25. package/component/planet-component-types.d.ts.map +0 -1
  26. package/component/plant-component.config.d.ts +0 -22
  27. package/component/plant-component.config.d.ts.map +0 -1
  28. package/debug.d.ts +0 -22
  29. package/debug.d.ts.map +0 -1
  30. package/empty/empty.component.d.ts +0 -6
  31. package/empty/empty.component.d.ts.map +0 -1
  32. package/esm2022/application/ng-planet-application-ref.mjs +0 -116
  33. package/esm2022/application/planet-application-loader.mjs +0 -459
  34. package/esm2022/application/planet-application-ref.mjs +0 -2
  35. package/esm2022/application/planet-application.service.mjs +0 -86
  36. package/esm2022/application/portal-application.mjs +0 -25
  37. package/esm2022/assets-loader.mjs +0 -332
  38. package/esm2022/component/planet-component-loader.mjs +0 -213
  39. package/esm2022/component/planet-component-outlet.mjs +0 -72
  40. package/esm2022/component/planet-component-types.mjs +0 -3
  41. package/esm2022/component/plant-component.config.mjs +0 -7
  42. package/esm2022/debug.mjs +0 -33
  43. package/esm2022/empty/empty.component.mjs +0 -17
  44. package/esm2022/global-event-dispatcher.mjs +0 -70
  45. package/esm2022/global-planet.mjs +0 -63
  46. package/esm2022/helpers.mjs +0 -187
  47. package/esm2022/inner-types.mjs +0 -2
  48. package/esm2022/module.mjs +0 -33
  49. package/esm2022/planet.class.mjs +0 -9
  50. package/esm2022/planet.mjs +0 -97
  51. package/esm2022/public-api.mjs +0 -19
  52. package/esm2022/router/route-redirect.mjs +0 -63
  53. package/esm2022/sandbox/constants.mjs +0 -7
  54. package/esm2022/sandbox/exec.mjs +0 -15
  55. package/esm2022/sandbox/index.mjs +0 -20
  56. package/esm2022/sandbox/proxy/patches/document.mjs +0 -12
  57. package/esm2022/sandbox/proxy/patches/eventListener.mjs +0 -41
  58. package/esm2022/sandbox/proxy/patches/index.mjs +0 -11
  59. package/esm2022/sandbox/proxy/patches/storage.mjs +0 -40
  60. package/esm2022/sandbox/proxy/patches/timer.mjs +0 -43
  61. package/esm2022/sandbox/proxy/proxies/common.mjs +0 -132
  62. package/esm2022/sandbox/proxy/proxies/document.mjs +0 -126
  63. package/esm2022/sandbox/proxy/proxies/window.mjs +0 -158
  64. package/esm2022/sandbox/proxy/proxy-sandbox.mjs +0 -49
  65. package/esm2022/sandbox/proxy/types.mjs +0 -2
  66. package/esm2022/sandbox/sandbox.mjs +0 -7
  67. package/esm2022/sandbox/snapshot/snapshot-sandbox.mjs +0 -12
  68. package/esm2022/sandbox/types.mjs +0 -2
  69. package/esm2022/worktile-planet.mjs +0 -5
  70. package/global-event-dispatcher.d.ts +0 -23
  71. package/global-event-dispatcher.d.ts.map +0 -1
  72. package/global-planet.d.ts +0 -25
  73. package/global-planet.d.ts.map +0 -1
  74. package/helpers.d.ts +0 -36
  75. package/helpers.d.ts.map +0 -1
  76. package/inner-types.d.ts +0 -15
  77. package/inner-types.d.ts.map +0 -1
  78. package/module.d.ts +0 -13
  79. package/module.d.ts.map +0 -1
  80. package/planet.class.d.ts +0 -118
  81. package/planet.class.d.ts.map +0 -1
  82. package/planet.d.ts +0 -32
  83. package/planet.d.ts.map +0 -1
  84. package/public-api.d.ts +0 -17
  85. package/public-api.d.ts.map +0 -1
  86. package/router/route-redirect.d.ts +0 -16
  87. package/router/route-redirect.d.ts.map +0 -1
  88. package/sandbox/constants.d.ts +0 -7
  89. package/sandbox/constants.d.ts.map +0 -1
  90. package/sandbox/exec.d.ts +0 -3
  91. package/sandbox/exec.d.ts.map +0 -1
  92. package/sandbox/index.d.ts +0 -7
  93. package/sandbox/index.d.ts.map +0 -1
  94. package/sandbox/proxy/patches/document.d.ts +0 -3
  95. package/sandbox/proxy/patches/document.d.ts.map +0 -1
  96. package/sandbox/proxy/patches/eventListener.d.ts +0 -3
  97. package/sandbox/proxy/patches/eventListener.d.ts.map +0 -1
  98. package/sandbox/proxy/patches/index.d.ts +0 -3
  99. package/sandbox/proxy/patches/index.d.ts.map +0 -1
  100. package/sandbox/proxy/patches/storage.d.ts +0 -15
  101. package/sandbox/proxy/patches/storage.d.ts.map +0 -1
  102. package/sandbox/proxy/patches/timer.d.ts +0 -3
  103. package/sandbox/proxy/patches/timer.d.ts.map +0 -1
  104. package/sandbox/proxy/proxies/common.d.ts +0 -13
  105. package/sandbox/proxy/proxies/common.d.ts.map +0 -1
  106. package/sandbox/proxy/proxies/document.d.ts +0 -14
  107. package/sandbox/proxy/proxies/document.d.ts.map +0 -1
  108. package/sandbox/proxy/proxies/window.d.ts +0 -13
  109. package/sandbox/proxy/proxies/window.d.ts.map +0 -1
  110. package/sandbox/proxy/proxy-sandbox.d.ts +0 -16
  111. package/sandbox/proxy/proxy-sandbox.d.ts.map +0 -1
  112. package/sandbox/proxy/types.d.ts +0 -14
  113. package/sandbox/proxy/types.d.ts.map +0 -1
  114. package/sandbox/sandbox.d.ts +0 -12
  115. package/sandbox/sandbox.d.ts.map +0 -1
  116. package/sandbox/snapshot/snapshot-sandbox.d.ts +0 -9
  117. package/sandbox/snapshot/snapshot-sandbox.d.ts.map +0 -1
  118. package/sandbox/types.d.ts +0 -2
  119. package/sandbox/types.d.ts.map +0 -1
  120. package/worktile-planet.d.ts.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"file":"planet-application.service.d.ts","sourceRoot":"","sources":["../../../packages/planet/src/application/planet-application.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEpD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAGlD,OAAO,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAClC,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAC;;AAGhD,qBAGa,wBAAwB;IAM7B,OAAO,CAAC,IAAI;IACZ,OAAO,CAAC,YAAY;IANxB,OAAO,CAAC,IAAI,CAA2B;IAEvC,OAAO,CAAC,OAAO,CAA4C;gBAG/C,IAAI,EAAE,UAAU,EAChB,YAAY,EAAE,YAAY;IAOtC,QAAQ,CAAC,MAAM,EAAE,SAAS,EAAE,iBAAiB,CAAC,MAAM,CAAC,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE;IAWnF,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,IAAI,CAAC;IAe5C,UAAU,CAAC,IAAI,EAAE,MAAM;IASvB,mBAAmB,CAAC,MAAM,GAAG,OAAO,EAAE,GAAG,EAAE,MAAM,GAAG,iBAAiB,CAAC,MAAM,CAAC,EAAE;IAa/E,YAAY,CAAC,IAAI,EAAE,MAAM;IAIzB,gBAAgB,CAAC,eAAe,CAAC,EAAE,MAAM,EAAE;IAU3C,OAAO;yCA5EE,wBAAwB;6CAAxB,wBAAwB;CA+EpC"}
@@ -1,20 +0,0 @@
1
- import { Router, UrlTree, NavigationExtras } from '@angular/router';
2
- import { NgZone, Injector, ApplicationRef } from '@angular/core';
3
- import { PlantComponentFactory } from '../component/planet-component-types';
4
- import { GlobalEventDispatcher } from '../global-event-dispatcher';
5
- export declare class PlanetPortalApplication<TData = any> {
6
- applicationRef?: ApplicationRef;
7
- injector?: Injector;
8
- router?: Router;
9
- ngZone?: NgZone;
10
- globalEventDispatcher?: GlobalEventDispatcher;
11
- data?: TData;
12
- name?: string;
13
- private componentFactory?;
14
- navigateByUrl(url: string | UrlTree, extras?: NavigationExtras): Promise<boolean>;
15
- run<T>(fn: (...args: any[]) => T): T;
16
- tick(): void;
17
- getComponentFactory(): PlantComponentFactory;
18
- registerComponentFactory(componentFactory: PlantComponentFactory): void;
19
- }
20
- //# sourceMappingURL=portal-application.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"portal-application.d.ts","sourceRoot":"","sources":["../../../packages/planet/src/application/portal-application.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACpE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AACjE,OAAO,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AAC5E,OAAO,EAAE,qBAAqB,EAAE,MAAM,4BAA4B,CAAC;AAEnE,qBAAa,uBAAuB,CAAC,KAAK,GAAG,GAAG;IAC5C,cAAc,CAAC,EAAE,cAAc,CAAC;IAChC,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,qBAAqB,CAAC,EAAE,qBAAqB,CAAC;IAC9C,IAAI,CAAC,EAAE,KAAK,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAY;IACzB,OAAO,CAAC,gBAAgB,CAAC,CAAwB;IAEjD,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,OAAO,CAAC;IAMjF,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,CAAC;IAMpC,IAAI;IAIJ,mBAAmB;IAInB,wBAAwB,CAAC,gBAAgB,EAAE,qBAAqB;CAGnE"}
@@ -1,47 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { HttpClient } from '@angular/common/http';
3
- import { PlanetApplication } from './planet.class';
4
- import { AssetsTagItem } from './inner-types';
5
- import * as i0 from "@angular/core";
6
- export interface AssetsLoadResult {
7
- src: string;
8
- hashCode: number;
9
- loaded: boolean;
10
- status: string;
11
- }
12
- export declare class AssetsLoader {
13
- private http;
14
- private loadedSources;
15
- constructor(http: HttpClient);
16
- loadScript(scriptAsset: AssetsTagItem): Observable<{
17
- src: string;
18
- hashCode: number;
19
- loaded: boolean;
20
- status: string;
21
- }>;
22
- loadScriptWithSandbox(app: string, src: string): Observable<AssetsLoadResult>;
23
- loadStyle(src: string): Observable<AssetsLoadResult>;
24
- loadScripts(sources: AssetsTagItem[], options?: {
25
- app?: string;
26
- sandbox?: boolean;
27
- serial?: boolean;
28
- }): Observable<AssetsLoadResult[]>;
29
- loadStyles(sources: AssetsTagItem[]): Observable<AssetsLoadResult[]>;
30
- loadScriptsAndStyles(scripts?: AssetsTagItem[], styles?: AssetsTagItem[], options?: {
31
- app?: string;
32
- sandbox?: boolean;
33
- serial?: boolean;
34
- }): Observable<[AssetsLoadResult[], AssetsLoadResult[]]>;
35
- /**
36
- * <script type="module" src="http://127.0.0.1:3001/main.js" async defer></script>
37
- * => [`type="module"`, "async ", "defer>"] as attributeStrMatchArr
38
- * => { type: "module", async: "async", defer: "defer" } as attributes
39
- */
40
- parseTagAttributes(tag: string): Record<string, string>;
41
- parseManifestFromHTML(html: string): Record<string, AssetsTagItem[]>;
42
- loadAppAssets(app: PlanetApplication): Observable<[AssetsLoadResult[], AssetsLoadResult[]]>;
43
- loadManifest(url: string, responseType?: 'text' | 'json'): Observable<Record<string, AssetsTagItem[]>>;
44
- static ɵfac: i0.ɵɵFactoryDeclaration<AssetsLoader, never>;
45
- static ɵprov: i0.ɵɵInjectableDeclaration<AssetsLoader>;
46
- }
47
- //# sourceMappingURL=assets-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"assets-loader.d.ts","sourceRoot":"","sources":["../../packages/planet/src/assets-loader.ts"],"names":[],"mappings":"AAEA,OAAO,EAAM,UAAU,EAA8B,MAAM,MAAM,CAAC;AAElE,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,iBAAiB,EAA0B,MAAM,gBAAgB,CAAC;AAE3E,OAAO,EAAE,aAAa,EAA0C,MAAM,eAAe,CAAC;;AAMtF,MAAM,WAAW,gBAAgB;IAC7B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAClB;AAED,qBAGa,YAAY;IAGT,OAAO,CAAC,IAAI;IAFxB,OAAO,CAAC,aAAa,CAAgB;gBAEjB,IAAI,EAAE,UAAU;IAEpC,UAAU,CAAC,WAAW,EAAE,aAAa;;;;;;IAkFrC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAsC7E,SAAS,CAAC,GAAG,EAAE,MAAM,GAAG,UAAU,CAAC,gBAAgB,CAAC;IAyCpD,WAAW,CACP,OAAO,EAAE,aAAa,EAAE,EACxB,OAAO,GAAE;QACL,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KAIpB,GACF,UAAU,CAAC,gBAAgB,EAAE,CAAC;IAyBjC,UAAU,CAAC,OAAO,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,gBAAgB,EAAE,CAAC;IAWpE,oBAAoB,CAChB,OAAO,GAAE,aAAa,EAAO,EAC7B,MAAM,GAAE,aAAa,EAAO,EAC5B,OAAO,CAAC,EAAE;QACN,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,OAAO,CAAC,EAAE,OAAO,CAAC;QAClB,MAAM,CAAC,EAAE,OAAO,CAAC;KACpB;IAKL;;;;OAIG;IACH,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAsBvD,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC;IA0CpE,aAAa,CAAC,GAAG,EAAE,iBAAiB;IA2BpC,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,YAAY,GAAE,MAAM,GAAG,MAAe,GAAG,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;yCAhUrG,YAAY;6CAAZ,YAAY;CAuVxB"}
@@ -1,31 +0,0 @@
1
- import { ApplicationRef, NgModuleRef, NgZone, Type } from '@angular/core';
2
- import { Observable } from 'rxjs';
3
- import { PlanetComponentRef } from './planet-component-types';
4
- import { PlantComponentConfig } from './plant-component.config';
5
- import * as i0 from "@angular/core";
6
- export type PlanetComponent<T = unknown> = {
7
- name: string;
8
- component: Type<T>;
9
- } | Type<T>;
10
- export declare class PlanetComponentLoader {
11
- private applicationRef;
12
- private ngModuleRef;
13
- private ngZone;
14
- private document;
15
- private get applicationLoader();
16
- private get applicationService();
17
- constructor(applicationRef: ApplicationRef, ngModuleRef: NgModuleRef<any>, ngZone: NgZone, document: any);
18
- private getPlantAppRef;
19
- private createInjector;
20
- private getContainerElement;
21
- private insertComponentRootNodeToContainer;
22
- private attachComponent;
23
- /** Gets the root HTMLElement for an instantiated component. */
24
- private getComponentRootNode;
25
- private registerComponentFactory;
26
- register(components: PlanetComponent | PlanetComponent[], immediate?: boolean): void;
27
- load<TComp = unknown, TData = unknown>(app: string, componentName: string, config: PlantComponentConfig<TData>): Observable<PlanetComponentRef<TComp>>;
28
- static ɵfac: i0.ɵɵFactoryDeclaration<PlanetComponentLoader, never>;
29
- static ɵprov: i0.ɵɵInjectableDeclaration<PlanetComponentLoader>;
30
- }
31
- //# sourceMappingURL=planet-component-loader.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planet-component-loader.d.ts","sourceRoot":"","sources":["../../../packages/planet/src/component/planet-component-loader.ts"],"names":[],"mappings":"AACA,OAAO,EACH,cAAc,EAQd,WAAW,EACX,MAAM,EAEN,IAAI,EAGP,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAE,UAAU,EAAa,MAAM,MAAM,CAAC;AAY7C,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;;AAQhE,MAAM,MAAM,eAAe,CAAC,CAAC,GAAG,OAAO,IACjC;IACI,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;CACtB,GACD,IAAI,CAAC,CAAC,CAAC,CAAC;AAEd,qBAGa,qBAAqB;IAU1B,OAAO,CAAC,cAAc;IACtB,OAAO,CAAC,WAAW;IACnB,OAAO,CAAC,MAAM;IACI,OAAO,CAAC,QAAQ;IAZtC,OAAO,KAAK,iBAAiB,GAE5B;IAED,OAAO,KAAK,kBAAkB,GAE7B;gBAGW,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,CAAC,GAAG,CAAC,EAC7B,MAAM,EAAE,MAAM,EACI,QAAQ,EAAE,GAAG;IAG3C,OAAO,CAAC,cAAc;IActB,OAAO,CAAC,cAAc;IAYtB,OAAO,CAAC,mBAAmB;IAY3B,OAAO,CAAC,kCAAkC;IAkB1C,OAAO,CAAC,eAAe;IAkCvB,+DAA+D;IAC/D,OAAO,CAAC,oBAAoB;IAI5B,OAAO,CAAC,wBAAwB;IAkChC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,eAAe,EAAE,EAAE,SAAS,CAAC,EAAE,OAAO;IAU7E,IAAI,CAAC,KAAK,GAAG,OAAO,EAAE,KAAK,GAAG,OAAO,EACjC,GAAG,EAAE,MAAM,EACX,aAAa,EAAE,MAAM,EACrB,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,GACpC,UAAU,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;yCA/J/B,qBAAqB;6CAArB,qBAAqB;CAiNjC"}
@@ -1,26 +0,0 @@
1
- import { OnDestroy, OnChanges, SimpleChanges, AfterViewInit, ElementRef, NgZone, EventEmitter } from '@angular/core';
2
- import { PlanetComponentLoader } from './planet-component-loader';
3
- import { PlanetComponentRef } from './planet-component-types';
4
- import { PlantComponentProjectableNode } from './plant-component.config';
5
- import * as i0 from "@angular/core";
6
- export declare class PlanetComponentOutlet implements OnChanges, OnDestroy, AfterViewInit {
7
- private elementRef;
8
- private planetComponentLoader;
9
- private ngZone;
10
- planetComponentOutlet: string;
11
- planetComponentOutletApp: string;
12
- planetComponentOutletProjectableNodes: PlantComponentProjectableNode[];
13
- planetComponentOutletInitialState: any;
14
- planetComponentLoaded: EventEmitter<PlanetComponentRef<any>>;
15
- private componentRef;
16
- private destroyed$;
17
- constructor(elementRef: ElementRef, planetComponentLoader: PlanetComponentLoader, ngZone: NgZone);
18
- ngOnChanges(changes: SimpleChanges): void;
19
- ngAfterViewInit(): void;
20
- loadComponent(): void;
21
- ngOnDestroy(): void;
22
- clear(): void;
23
- static ɵfac: i0.ɵɵFactoryDeclaration<PlanetComponentOutlet, never>;
24
- static ɵdir: i0.ɵɵDirectiveDeclaration<PlanetComponentOutlet, "[planetComponentOutlet]", never, { "planetComponentOutlet": { "alias": "planetComponentOutlet"; "required": false; }; "planetComponentOutletApp": { "alias": "planetComponentOutletApp"; "required": false; }; "planetComponentOutletProjectableNodes": { "alias": "planetComponentOutletProjectableNodes"; "required": false; }; "planetComponentOutletInitialState": { "alias": "planetComponentOutletInitialState"; "required": false; }; }, { "planetComponentLoaded": "planetComponentLoaded"; }, never, never, true, never>;
25
- }
26
- //# sourceMappingURL=planet-component-outlet.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planet-component-outlet.d.ts","sourceRoot":"","sources":["../../../packages/planet/src/component/planet-component-outlet.ts"],"names":[],"mappings":"AAAA,OAAO,EAGH,SAAS,EACT,SAAS,EACT,aAAa,EAEb,aAAa,EACb,UAAU,EACV,MAAM,EAEN,YAAY,EACf,MAAM,eAAe,CAAC;AAGvB,OAAO,EAAE,qBAAqB,EAAE,MAAM,2BAA2B,CAAC;AAClE,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AAC9D,OAAO,EAAE,6BAA6B,EAAE,MAAM,0BAA0B,CAAC;;AAEzE,qBAKa,qBAAsB,YAAW,SAAS,EAAE,SAAS,EAAE,aAAa;IAgBzE,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,qBAAqB;IAC7B,OAAO,CAAC,MAAM;IAjBT,qBAAqB,EAAE,MAAM,CAAC;IAE9B,wBAAwB,EAAE,MAAM,CAAC;IAEjC,qCAAqC,EAAE,6BAA6B,EAAE,CAAC;IAEvE,iCAAiC,EAAE,GAAG,CAAC;IAEtC,qBAAqB,wCAA0C;IAEzE,OAAO,CAAC,YAAY,CAAqB;IAEzC,OAAO,CAAC,UAAU,CAAuB;gBAG7B,UAAU,EAAE,UAAU,EACtB,qBAAqB,EAAE,qBAAqB,EAC5C,MAAM,EAAE,MAAM;IAG1B,WAAW,CAAC,OAAO,EAAE,aAAa;IAMlC,eAAe,IAAI,IAAI;IAIvB,aAAa;IAqBb,WAAW,IAAI,IAAI;IAKnB,KAAK;yCAzDI,qBAAqB;2CAArB,qBAAqB;CA6DjC"}
@@ -1,11 +0,0 @@
1
- import { ComponentRef } from '@angular/core';
2
- import { PlantComponentConfig } from './plant-component.config';
3
- export declare class PlanetComponentRef<TComp = any> {
4
- wrapperElement: HTMLElement;
5
- hostElement: HTMLElement;
6
- componentInstance: TComp;
7
- componentRef: ComponentRef<TComp>;
8
- dispose: () => void;
9
- }
10
- export type PlantComponentFactory = <TData, TComp>(componentName: string, config: PlantComponentConfig<TData>) => PlanetComponentRef<TComp>;
11
- //# sourceMappingURL=planet-component-types.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"planet-component-types.d.ts","sourceRoot":"","sources":["../../../packages/planet/src/component/planet-component-types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAC7C,OAAO,EAAE,oBAAoB,EAAE,MAAM,0BAA0B,CAAC;AAEhE,qBAAa,kBAAkB,CAAC,KAAK,GAAG,GAAG;IACvC,cAAc,EAAE,WAAW,CAAC;IAC5B,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,EAAE,KAAK,CAAC;IACzB,YAAY,EAAE,YAAY,CAAC,KAAK,CAAC,CAAC;IAClC,OAAO,EAAE,MAAM,IAAI,CAAC;CACvB;AAED,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,EAAE,oBAAoB,CAAC,KAAK,CAAC,KAAK,kBAAkB,CAAC,KAAK,CAAC,CAAC"}
@@ -1,22 +0,0 @@
1
- import { TemplateRef, ElementRef } from '@angular/core';
2
- export type PlantComponentProjectableNode = Node[] | TemplateRef<any>;
3
- export declare class PlantComponentConfig<TData = any> {
4
- /** Load target container */
5
- container: HTMLElement | ElementRef<HTMLElement | any> | Comment;
6
- /**
7
- * Wrapper class of plant component
8
- * @deprecated please use hostClass
9
- */
10
- wrapperClass?: string;
11
- /**
12
- * Host class of plant component
13
- */
14
- hostClass?: string;
15
- /** Data being injected into the child component. */
16
- initialState?: TData | null;
17
- /**
18
- * Projectable nodes
19
- */
20
- projectableNodes?: PlantComponentProjectableNode[];
21
- }
22
- //# sourceMappingURL=plant-component.config.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"plant-component.config.d.ts","sourceRoot":"","sources":["../../../packages/planet/src/component/plant-component.config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,eAAe,CAAC;AAExD,MAAM,MAAM,6BAA6B,GAAG,IAAI,EAAE,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;AAEtE,qBAAa,oBAAoB,CAAC,KAAK,GAAG,GAAG;IACzC,4BAA4B;IAC5B,SAAS,EAAE,WAAW,GAAG,UAAU,CAAC,WAAW,GAAG,GAAG,CAAC,GAAG,OAAO,CAAC;IACjE;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;OAEG;IACH,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,oDAAoD;IACpD,YAAY,CAAC,EAAE,KAAK,GAAG,IAAI,CAAQ;IACnC;;OAEG;IACH,gBAAgB,CAAC,EAAE,6BAA6B,EAAE,CAAC;CACtD"}
package/debug.d.ts DELETED
@@ -1,22 +0,0 @@
1
- export interface Debugger {
2
- (formatter: any, ...args: any[]): void;
3
- }
4
- export interface Formatters {
5
- [formatter: string]: (v: any) => string;
6
- }
7
- export interface Debug {
8
- (namespace: string): Debugger;
9
- coerce: (val: any) => any;
10
- disable: () => string;
11
- enable: (namespaces: string) => void;
12
- enabled: (namespaces: string) => boolean;
13
- log: (...args: any[]) => any;
14
- names: RegExp[];
15
- skips: RegExp[];
16
- formatters: Formatters;
17
- }
18
- export declare function createDebug(namespace: string): Debugger;
19
- export declare function setDebugFactory(debug: Debug): void;
20
- export declare function clearDebugFactory(): void;
21
- export declare function getDebugFactory(): Debug;
22
- //# sourceMappingURL=debug.d.ts.map
package/debug.d.ts.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"debug.d.ts","sourceRoot":"","sources":["../../packages/planet/src/debug.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,QAAQ;IACrB,CAAC,SAAS,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;CAQ1C;AAED,MAAM,WAAW,UAAU;IACvB,CAAC,SAAS,EAAE,MAAM,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,MAAM,CAAC;CAC3C;AAED,MAAM,WAAW,KAAK;IAClB,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAAC;IAC9B,MAAM,EAAE,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,CAAC;IAC1B,OAAO,EAAE,MAAM,MAAM,CAAC;IACtB,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACrC,OAAO,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IACzC,GAAG,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,CAAC;IAE7B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,EAAE,CAAC;IAEhB,UAAU,EAAE,UAAU,CAAC;CAC1B;AAQD,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,QAAQ,CAYvD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,KAAK,QAK3C;AAED,wBAAgB,iBAAiB,SAGhC;AAED,wBAAgB,eAAe,UAE9B"}
@@ -1,6 +0,0 @@
1
- import * as i0 from "@angular/core";
2
- export declare class EmptyComponent {
3
- static ɵfac: i0.ɵɵFactoryDeclaration<EmptyComponent, never>;
4
- static ɵcmp: i0.ɵɵComponentDeclaration<EmptyComponent, "empty-component", never, {}, {}, never, never, true, never>;
5
- }
6
- //# sourceMappingURL=empty.component.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"empty.component.d.ts","sourceRoot":"","sources":["../../../packages/planet/src/empty/empty.component.ts"],"names":[],"mappings":";AAEA,qBAOa,cAAc;yCAAd,cAAc;2CAAd,cAAc;CAAG"}
@@ -1,116 +0,0 @@
1
- import { NgModuleRef, NgZone } from '@angular/core';
2
- import { Router, NavigationEnd } from '@angular/router';
3
- import { take } from 'rxjs/operators';
4
- import { from } from 'rxjs';
5
- import { getTagNameByTemplate } from '../helpers';
6
- import { getSandboxInstance } from '../sandbox/';
7
- export class NgPlanetApplicationRef {
8
- get selector() {
9
- return this.innerSelector;
10
- }
11
- get ngZone() {
12
- return (this.injector || this.appModuleRef?.injector)?.get(NgZone);
13
- }
14
- get sandbox() {
15
- return getSandboxInstance();
16
- }
17
- get bootstrapped() {
18
- return !!(this.appModuleRef || this.appRef);
19
- }
20
- constructor(name, options) {
21
- this.name = name;
22
- if (options) {
23
- this.template = options.template;
24
- this.innerSelector = this.template ? getTagNameByTemplate(this.template) : '';
25
- this.appModuleBootstrap = options.bootstrap;
26
- }
27
- // This is a hack, since NgZone doesn't allow you to configure the property that identifies your zone.
28
- // See https://github.com/PlaceMe-SAS/single-spa-angular-cli/issues/33,
29
- // NgZone.isInAngularZone = () => {
30
- // // @ts-ignore
31
- // return window.Zone.current._properties[`ngx-planet-${name}`] === true;
32
- // };
33
- }
34
- // 子应用路由变化后同步修改 portal 的 Route
35
- syncPortalRouteWhenNavigationEnd() {
36
- const router = (this.injector || this.appModuleRef?.injector)?.get(Router);
37
- if (router) {
38
- router.events.subscribe(event => {
39
- if (event instanceof NavigationEnd) {
40
- const currentNavigation = router.getCurrentNavigation();
41
- this.ngZone?.onStable
42
- .asObservable()
43
- .pipe(take(1))
44
- .subscribe(() => {
45
- this.portalApp.ngZone.run(() => {
46
- if (currentNavigation?.extras?.browserUrl) {
47
- this.portalApp.router.navigateByUrl(event.url, {
48
- browserUrl: currentNavigation.extras.browserUrl
49
- });
50
- }
51
- else {
52
- this.portalApp.router.navigateByUrl(event.url);
53
- }
54
- });
55
- });
56
- }
57
- });
58
- }
59
- }
60
- bootstrap(app) {
61
- if (!this.appModuleBootstrap) {
62
- throw new Error(`app(${this.name}) is not defined`);
63
- }
64
- this.portalApp = app;
65
- return from(this.appModuleBootstrap(app).then(appModuleRef => {
66
- if (appModuleRef['instance']) {
67
- this.appModuleRef = appModuleRef;
68
- this.appModuleRef.instance.appName = this.name;
69
- this.injector = this.appModuleRef.injector;
70
- }
71
- else {
72
- this.appRef = appModuleRef;
73
- this.injector = this.appRef.injector;
74
- const moduleRef = this.appRef.injector.get(NgModuleRef);
75
- moduleRef.instance = { appName: this.name };
76
- }
77
- this.syncPortalRouteWhenNavigationEnd();
78
- return this;
79
- }));
80
- }
81
- getRouter() {
82
- return (this.injector || this.appModuleRef?.injector)?.get(Router);
83
- }
84
- getCurrentRouterStateUrl() {
85
- return this.getRouter()?.routerState.snapshot.url;
86
- }
87
- navigateByUrl(url, extras) {
88
- const router = this.getRouter();
89
- this.ngZone?.run(() => {
90
- router?.navigateByUrl(url, extras);
91
- });
92
- }
93
- getComponentFactory() {
94
- return this.componentFactory;
95
- }
96
- registerComponentFactory(componentFactory) {
97
- this.componentFactory = componentFactory;
98
- }
99
- destroy() {
100
- if (this.appModuleRef || this.appRef) {
101
- const router = (this.injector || this.appModuleRef?.injector)?.get(Router);
102
- if (router) {
103
- router.dispose();
104
- }
105
- if (this.sandbox) {
106
- this.sandbox.destroy();
107
- }
108
- this.appModuleRef?.destroy();
109
- this.appModuleRef = undefined;
110
- this.appRef?.destroy();
111
- this.appRef = undefined;
112
- this.injector = undefined;
113
- }
114
- }
115
- }
116
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctcGxhbmV0LWFwcGxpY2F0aW9uLXJlZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3BhY2thZ2VzL3BsYW5ldC9zcmMvYXBwbGljYXRpb24vbmctcGxhbmV0LWFwcGxpY2F0aW9uLXJlZi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFdBQVcsRUFBRSxNQUFNLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxNQUFNLEVBQUUsYUFBYSxFQUE4QyxNQUFNLGlCQUFpQixDQUFDO0FBQ3BHLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0QyxPQUFPLEVBQWMsSUFBSSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBR3hDLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLFlBQVksQ0FBQztBQUNsRCxPQUFPLEVBQUUsa0JBQWtCLEVBQVcsTUFBTSxhQUFhLENBQUM7QUFxQjFELE1BQU0sT0FBTyxzQkFBc0I7SUFXL0IsSUFBVyxRQUFRO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDO0lBQzlCLENBQUM7SUFFRCxJQUFXLE1BQU07UUFDYixPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLFFBQVEsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsSUFBVyxPQUFPO1FBQ2QsT0FBTyxrQkFBa0IsRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFXLFlBQVk7UUFDbkIsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoRCxDQUFDO0lBRUQsWUFBWSxJQUFZLEVBQUUsT0FBMEI7UUFDaEQsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7UUFDakIsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNWLElB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TUFBTSxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3JCLENBQUM7WUFDRCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDZixJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQzNCLENBQUM7WUFDRCxJQUFJLENBQUMsWUFBWSxFQUFFLE9BQU8sRUFBRSxDQUFDO1lBQzdCLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDO1lBQzlCLElBQUksQ0FBQyxNQUFNLEVBQUUsT0FBTyxFQUFFLENBQUM7WUFDdkIsSUFBSSxDQUFDLE1BQU0sR0FBRyxTQUFTLENBQUM7WUFDeEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUM7UUFDOUIsQ0FBQztJQUNMLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEFwcGxpY2F0aW9uUmVmLCBOZ01vZHVsZVJlZiwgTmdab25lLCBFbnZpcm9ubWVudEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBSb3V0ZXIsIE5hdmlnYXRpb25FbmQsIE5hdmlnYXRpb25TdGFydCwgTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucyB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyB0YWtlIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZnJvbSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgUGxhbmV0UG9ydGFsQXBwbGljYXRpb24gfSBmcm9tICcuL3BvcnRhbC1hcHBsaWNhdGlvbic7XG5pbXBvcnQgeyBQbGFudENvbXBvbmVudEZhY3RvcnkgfSBmcm9tICcuLi9jb21wb25lbnQvcGxhbmV0LWNvbXBvbmVudC10eXBlcyc7XG5pbXBvcnQgeyBnZXRUYWdOYW1lQnlUZW1wbGF0ZSB9IGZyb20gJy4uL2hlbHBlcnMnO1xuaW1wb3J0IHsgZ2V0U2FuZGJveEluc3RhbmNlLCBTYW5kYm94IH0gZnJvbSAnLi4vc2FuZGJveC8nO1xuaW1wb3J0IHsgUGxhbmV0QXBwbGljYXRpb25SZWYgfSBmcm9tICcuL3BsYW5ldC1hcHBsaWNhdGlvbi1yZWYnO1xuXG5leHBvcnQgdHlwZSBOZ0Jvb3RzdHJhcEFwcE1vZHVsZSA9IChcbiAgICBwb3J0YWxBcHA6IFBsYW5ldFBvcnRhbEFwcGxpY2F0aW9uXG4pID0+IFByb21pc2U8TmdNb2R1bGVSZWY8YW55PiB8IHZvaWQgfCBBcHBsaWNhdGlvblJlZiB8IHVuZGVmaW5lZCB8IG51bGw+O1xuXG5leHBvcnQgaW50ZXJmYWNlIE5nQm9vdHN0cmFwT3B0aW9ucyB7XG4gICAgdGVtcGxhdGU6IHN0cmluZztcbiAgICBib290c3RyYXA6IE5nQm9vdHN0cmFwQXBwTW9kdWxlO1xufVxuXG4vKipcbiAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgTmdCb290c3RyYXBBcHBNb2R1bGVcbiAqL1xuZXhwb3J0IHR5cGUgQm9vdHN0cmFwQXBwTW9kdWxlID0gTmdCb290c3RyYXBBcHBNb2R1bGU7XG4vKipcbiAqIEBkZXByZWNhdGVkIHBsZWFzZSB1c2UgTmdCb290c3RyYXBPcHRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQm9vdHN0cmFwT3B0aW9ucyBleHRlbmRzIE5nQm9vdHN0cmFwT3B0aW9ucyB7fVxuXG5leHBvcnQgY2xhc3MgTmdQbGFuZXRBcHBsaWNhdGlvblJlZiBpbXBsZW1lbnRzIFBsYW5ldEFwcGxpY2F0aW9uUmVmIHtcbiAgICBwcml2YXRlIGluamVjdG9yPzogRW52aXJvbm1lbnRJbmplY3RvcjtcbiAgICBwcml2YXRlIGFwcFJlZj86IEFwcGxpY2F0aW9uUmVmO1xuICAgIHB1YmxpYyBhcHBNb2R1bGVSZWY/OiBOZ01vZHVsZVJlZjxhbnk+O1xuICAgIHB1YmxpYyB0ZW1wbGF0ZT86IHN0cmluZztcbiAgICBwcml2YXRlIGlubmVyU2VsZWN0b3I/OiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBuYW1lOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBwb3J0YWxBcHAhOiBQbGFuZXRQb3J0YWxBcHBsaWNhdGlvbjtcbiAgICBwcml2YXRlIGFwcE1vZHVsZUJvb3RzdHJhcD86IE5nQm9vdHN0cmFwQXBwTW9kdWxlO1xuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeT86IFBsYW50Q29tcG9uZW50RmFjdG9yeTtcblxuICAgIHB1YmxpYyBnZXQgc2VsZWN0b3IoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmlubmVyU2VsZWN0b3I7XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBuZ1pvbmUoKTogTmdab25lIHwgdW5kZWZpbmVkIHtcbiAgICAgICAgcmV0dXJuICh0aGlzLmluamVjdG9yIHx8IHRoaXMuYXBwTW9kdWxlUmVmPy5pbmplY3Rvcik/LmdldChOZ1pvbmUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgc2FuZGJveCgpOiBTYW5kYm94IHtcbiAgICAgICAgcmV0dXJuIGdldFNhbmRib3hJbnN0YW5jZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgYm9vdHN0cmFwcGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gISEodGhpcy5hcHBNb2R1bGVSZWYgfHwgdGhpcy5hcHBSZWYpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKG5hbWU6IHN0cmluZywgb3B0aW9ucz86IEJvb3RzdHJhcE9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5uYW1lID0gbmFtZTtcbiAgICAgICAgaWYgKG9wdGlvbnMpIHtcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGUgPSBvcHRpb25zLnRlbXBsYXRlO1xuICAgICAgICAgICAgdGhpcy5pbm5lclNlbGVjdG9yID0gdGhpcy50ZW1wbGF0ZSA/IGdldFRhZ05hbWVCeVRlbXBsYXRlKHRoaXMudGVtcGxhdGUpIDogJyc7XG4gICAgICAgICAgICB0aGlzLmFwcE1vZHVsZUJvb3RzdHJhcCA9IG9wdGlvbnMuYm9vdHN0cmFwO1xuICAgICAgICB9XG4gICAgICAgIC8vIFRoaXMgaXMgYSBoYWNrLCBzaW5jZSBOZ1pvbmUgZG9lc24ndCBhbGxvdyB5b3UgdG8gY29uZmlndXJlIHRoZSBwcm9wZXJ0eSB0aGF0IGlkZW50aWZpZXMgeW91ciB6b25lLlxuICAgICAgICAvLyBTZWUgaHR0cHM6Ly9naXRodWIuY29tL1BsYWNlTWUtU0FTL3NpbmdsZS1zcGEtYW5ndWxhci1jbGkvaXNzdWVzLzMzLFxuICAgICAgICAvLyBOZ1pvbmUuaXNJbkFuZ3VsYXJab25lID0gKCkgPT4ge1xuICAgICAgICAvLyAgICAgLy8gQHRzLWlnbm9yZVxuICAgICAgICAvLyAgICAgcmV0dXJuIHdpbmRvdy5ab25lLmN1cnJlbnQuX3Byb3BlcnRpZXNbYG5neC1wbGFuZXQtJHtuYW1lfWBdID09PSB0cnVlO1xuICAgICAgICAvLyB9O1xuICAgIH1cblxuICAgIC8vIOWtkOW6lOeUqOi3r+eUseWPmOWMluWQjuWQjOatpeS/ruaUuSBwb3J0YWwg55qEIFJvdXRlXG4gICAgcHJpdmF0ZSBzeW5jUG9ydGFsUm91dGVXaGVuTmF2aWdhdGlvbkVuZCgpIHtcbiAgICAgICAgY29uc3Qgcm91dGVyID0gKHRoaXMuaW5qZWN0b3IgfHwgdGhpcy5hcHBNb2R1bGVSZWY/LmluamVjdG9yKT8uZ2V0KFJvdXRlcik7XG4gICAgICAgIGlmIChyb3V0ZXIpIHtcbiAgICAgICAgICAgIHJvdXRlci5ldmVudHMuc3Vic2NyaWJlKGV2ZW50ID0+IHtcbiAgICAgICAgICAgICAgICBpZiAoZXZlbnQgaW5zdGFuY2VvZiBOYXZpZ2F0aW9uRW5kKSB7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGN1cnJlbnROYXZpZ2F0aW9uID0gcm91dGVyLmdldEN1cnJlbnROYXZpZ2F0aW9uKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubmdab25lPy5vblN0YWJsZVxuICAgICAgICAgICAgICAgICAgICAgICAgLmFzT2JzZXJ2YWJsZSgpXG4gICAgICAgICAgICAgICAgICAgICAgICAucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3J0YWxBcHAubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChjdXJyZW50TmF2aWdhdGlvbj8uZXh0cmFzPy5icm93c2VyVXJsKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnBvcnRhbEFwcC5yb3V0ZXIhLm5hdmlnYXRlQnlVcmwoZXZlbnQudXJsLCB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYnJvd3NlclVybDogY3VycmVudE5hdmlnYXRpb24uZXh0cmFzLmJyb3dzZXJVcmxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5wb3J0YWxBcHAucm91dGVyIS5uYXZpZ2F0ZUJ5VXJsKGV2ZW50LnVybCk7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgYm9vdHN0cmFwKGFwcDogUGxhbmV0UG9ydGFsQXBwbGljYXRpb24pOiBPYnNlcnZhYmxlPHRoaXM+IHtcbiAgICAgICAgaWYgKCF0aGlzLmFwcE1vZHVsZUJvb3RzdHJhcCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBhcHAoJHt0aGlzLm5hbWV9KSBpcyBub3QgZGVmaW5lZGApO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMucG9ydGFsQXBwID0gYXBwO1xuICAgICAgICByZXR1cm4gZnJvbShcbiAgICAgICAgICAgIHRoaXMuYXBwTW9kdWxlQm9vdHN0cmFwKGFwcCkudGhlbihhcHBNb2R1bGVSZWYgPT4ge1xuICAgICAgICAgICAgICAgIGlmIChhcHBNb2R1bGVSZWZbJ2luc3RhbmNlJ10pIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBNb2R1bGVSZWYgPSBhcHBNb2R1bGVSZWYgYXMgTmdNb2R1bGVSZWY8YW55PjtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5hcHBNb2R1bGVSZWYuaW5zdGFuY2UuYXBwTmFtZSA9IHRoaXMubmFtZTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbmplY3RvciA9IHRoaXMuYXBwTW9kdWxlUmVmLmluamVjdG9yO1xuICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwUmVmID0gYXBwTW9kdWxlUmVmIGFzIHVua25vd24gYXMgQXBwbGljYXRpb25SZWY7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5qZWN0b3IgPSB0aGlzLmFwcFJlZi5pbmplY3RvcjtcbiAgICAgICAgICAgICAgICAgICAgY29uc3QgbW9kdWxlUmVmID0gdGhpcy5hcHBSZWYuaW5qZWN0b3IuZ2V0KE5nTW9kdWxlUmVmKTtcbiAgICAgICAgICAgICAgICAgICAgKG1vZHVsZVJlZiBhcyBhbnkpLmluc3RhbmNlID0geyBhcHBOYW1lOiB0aGlzLm5hbWUgfTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgdGhpcy5zeW5jUG9ydGFsUm91dGVXaGVuTmF2aWdhdGlvbkVuZCgpO1xuICAgICAgICAgICAgICAgIHJldHVybiB0aGlzO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBnZXRSb3V0ZXIoKSB7XG4gICAgICAgIHJldHVybiAodGhpcy5pbmplY3RvciB8fCB0aGlzLmFwcE1vZHVsZVJlZj8uaW5qZWN0b3IpPy5nZXQoUm91dGVyKTtcbiAgICB9XG5cbiAgICBnZXRDdXJyZW50Um91dGVyU3RhdGVVcmwoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmdldFJvdXRlcigpPy5yb3V0ZXJTdGF0ZS5zbmFwc2hvdC51cmw7XG4gICAgfVxuXG4gICAgbmF2aWdhdGVCeVVybCh1cmw6IHN0cmluZywgZXh0cmFzPzogTmF2aWdhdGlvbkJlaGF2aW9yT3B0aW9ucyk6IHZvaWQge1xuICAgICAgICBjb25zdCByb3V0ZXIgPSB0aGlzLmdldFJvdXRlcigpO1xuICAgICAgICB0aGlzLm5nWm9uZT8ucnVuKCgpID0+IHtcbiAgICAgICAgICAgIHJvdXRlcj8ubmF2aWdhdGVCeVVybCh1cmwsIGV4dHJhcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIGdldENvbXBvbmVudEZhY3RvcnkoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBvbmVudEZhY3Rvcnk7XG4gICAgfVxuXG4gICAgcmVnaXN0ZXJDb21wb25lbnRGYWN0b3J5KGNvbXBvbmVudEZhY3Rvcnk6IFBsYW50Q29tcG9uZW50RmFjdG9yeSkge1xuICAgICAgICB0aGlzLmNvbXBvbmVudEZhY3RvcnkgPSBjb21wb25lbnRGYWN0b3J5O1xuICAgIH1cblxuICAgIGRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmFwcE1vZHVsZVJlZiB8fCB0aGlzLmFwcFJlZikge1xuICAgICAgICAgICAgY29uc3Qgcm91dGVyID0gKHRoaXMuaW5qZWN0b3IgfHwgdGhpcy5hcHBNb2R1bGVSZWY/LmluamVjdG9yKT8uZ2V0KFJvdXRlcik7XG4gICAgICAgICAgICBpZiAocm91dGVyKSB7XG4gICAgICAgICAgICAgICAgcm91dGVyLmRpc3Bvc2UoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIGlmICh0aGlzLnNhbmRib3gpIHtcbiAgICAgICAgICAgICAgICB0aGlzLnNhbmRib3guZGVzdHJveSgpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgdGhpcy5hcHBNb2R1bGVSZWY/LmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuYXBwTW9kdWxlUmVmID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5hcHBSZWY/LmRlc3Ryb3koKTtcbiAgICAgICAgICAgIHRoaXMuYXBwUmVmID0gdW5kZWZpbmVkO1xuICAgICAgICAgICAgdGhpcy5pbmplY3RvciA9IHVuZGVmaW5lZDtcbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==