@microzord/angular 1.0.0 → 2.2.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 (114) hide show
  1. package/LICENSE +190 -0
  2. package/README.md +19 -9
  3. package/child/index.d.ts +2 -1
  4. package/child/index.d.ts.map +1 -0
  5. package/child/microzord-angular-child.d.ts.map +1 -0
  6. package/child/src/create-app.d.ts +4 -2
  7. package/child/src/create-app.d.ts.map +1 -0
  8. package/child/src/enable-prod-mode.d.ts +1 -0
  9. package/child/src/enable-prod-mode.d.ts.map +1 -0
  10. package/esm2022/child/index.mjs +3 -0
  11. package/esm2022/child/microzord-angular-child.mjs +5 -0
  12. package/esm2022/child/src/create-app.mjs +48 -0
  13. package/esm2022/child/src/enable-prod-mode.mjs +13 -0
  14. package/esm2022/index.mjs +9 -0
  15. package/esm2022/lib/microzord-app/microzord-app.directive.mjs +52 -0
  16. package/esm2022/lib/microzord-app/microzord-app.module.mjs +16 -0
  17. package/esm2022/lib/microzord-host.module.mjs +50 -0
  18. package/esm2022/lib/microzord-module/microzord-ng-compiler.service.mjs +33 -0
  19. package/esm2022/lib/microzord-module/microzord-ng-module.directive.mjs +53 -0
  20. package/esm2022/lib/microzord-module/microzord-ng-module.module.mjs +16 -0
  21. package/esm2022/lib/operators/complete.mjs +6 -0
  22. package/esm2022/lib/services/registry.service.mjs +20 -0
  23. package/esm2022/lib/tokens/microzord-apps.mjs +8 -0
  24. package/esm2022/lib/types/ng-module.mjs +2 -0
  25. package/esm2022/microzord-angular.mjs +5 -0
  26. package/fesm2022/microzord-angular-child.mjs +67 -0
  27. package/fesm2022/microzord-angular-child.mjs.map +1 -0
  28. package/fesm2022/microzord-angular.mjs +231 -0
  29. package/fesm2022/microzord-angular.mjs.map +1 -0
  30. package/index.d.ts +2 -1
  31. package/index.d.ts.map +1 -0
  32. package/lib/microzord-app/microzord-app.directive.d.ts +9 -5
  33. package/lib/microzord-app/microzord-app.directive.d.ts.map +1 -0
  34. package/lib/microzord-app/microzord-app.module.d.ts +6 -0
  35. package/lib/microzord-app/microzord-app.module.d.ts.map +1 -0
  36. package/lib/microzord-host.module.d.ts +8 -1
  37. package/lib/microzord-host.module.d.ts.map +1 -0
  38. package/lib/microzord-module/microzord-ng-compiler.service.d.ts +8 -4
  39. package/lib/microzord-module/microzord-ng-compiler.service.d.ts.map +1 -0
  40. package/lib/microzord-module/microzord-ng-module.directive.d.ts +10 -6
  41. package/lib/microzord-module/microzord-ng-module.directive.d.ts.map +1 -0
  42. package/lib/microzord-module/microzord-ng-module.module.d.ts +6 -0
  43. package/lib/microzord-module/microzord-ng-module.module.d.ts.map +1 -0
  44. package/lib/operators/complete.d.ts +1 -0
  45. package/lib/operators/complete.d.ts.map +1 -0
  46. package/lib/services/registry.service.d.ts +4 -0
  47. package/lib/services/registry.service.d.ts.map +1 -0
  48. package/lib/tokens/microzord-apps.d.ts +4 -3
  49. package/lib/tokens/microzord-apps.d.ts.map +1 -0
  50. package/lib/types/ng-module.d.ts +4 -3
  51. package/lib/types/ng-module.d.ts.map +1 -0
  52. package/microzord-angular.d.ts.map +1 -0
  53. package/package.json +41 -28
  54. package/bundles/microzord-angular-child.umd.js +0 -572
  55. package/bundles/microzord-angular-child.umd.js.map +0 -1
  56. package/bundles/microzord-angular.umd.js +0 -769
  57. package/bundles/microzord-angular.umd.js.map +0 -1
  58. package/child/microzord-angular-child.d.ts +0 -4
  59. package/child/microzord-angular-child.metadata.json +0 -1
  60. package/child/package.json +0 -11
  61. package/esm2015/child/index.js +0 -3
  62. package/esm2015/child/index.js.map +0 -1
  63. package/esm2015/child/index.metadata.json +0 -1
  64. package/esm2015/child/microzord-angular-child.js +0 -5
  65. package/esm2015/child/microzord-angular-child.js.map +0 -1
  66. package/esm2015/child/microzord-angular-child.metadata.json +0 -1
  67. package/esm2015/child/src/create-app.js +0 -57
  68. package/esm2015/child/src/create-app.js.map +0 -1
  69. package/esm2015/child/src/create-app.metadata.json +0 -1
  70. package/esm2015/child/src/enable-prod-mode.js +0 -13
  71. package/esm2015/child/src/enable-prod-mode.js.map +0 -1
  72. package/esm2015/child/src/enable-prod-mode.metadata.json +0 -1
  73. package/esm2015/index.js +0 -9
  74. package/esm2015/index.js.map +0 -1
  75. package/esm2015/index.metadata.json +0 -1
  76. package/esm2015/lib/microzord-app/microzord-app.directive.js +0 -51
  77. package/esm2015/lib/microzord-app/microzord-app.directive.js.map +0 -1
  78. package/esm2015/lib/microzord-app/microzord-app.directive.metadata.json +0 -1
  79. package/esm2015/lib/microzord-app/microzord-app.module.js +0 -11
  80. package/esm2015/lib/microzord-app/microzord-app.module.js.map +0 -1
  81. package/esm2015/lib/microzord-app/microzord-app.module.metadata.json +0 -1
  82. package/esm2015/lib/microzord-host.module.js +0 -43
  83. package/esm2015/lib/microzord-host.module.js.map +0 -1
  84. package/esm2015/lib/microzord-host.module.metadata.json +0 -1
  85. package/esm2015/lib/microzord-module/microzord-ng-compiler.service.js +0 -39
  86. package/esm2015/lib/microzord-module/microzord-ng-compiler.service.js.map +0 -1
  87. package/esm2015/lib/microzord-module/microzord-ng-compiler.service.metadata.json +0 -1
  88. package/esm2015/lib/microzord-module/microzord-ng-module.directive.js +0 -52
  89. package/esm2015/lib/microzord-module/microzord-ng-module.directive.js.map +0 -1
  90. package/esm2015/lib/microzord-module/microzord-ng-module.directive.metadata.json +0 -1
  91. package/esm2015/lib/microzord-module/microzord-ng-module.module.js +0 -11
  92. package/esm2015/lib/microzord-module/microzord-ng-module.module.js.map +0 -1
  93. package/esm2015/lib/microzord-module/microzord-ng-module.module.metadata.json +0 -1
  94. package/esm2015/lib/operators/complete.js +0 -6
  95. package/esm2015/lib/operators/complete.js.map +0 -1
  96. package/esm2015/lib/operators/complete.metadata.json +0 -1
  97. package/esm2015/lib/services/registry.service.js +0 -18
  98. package/esm2015/lib/services/registry.service.js.map +0 -1
  99. package/esm2015/lib/services/registry.service.metadata.json +0 -1
  100. package/esm2015/lib/tokens/microzord-apps.js +0 -8
  101. package/esm2015/lib/tokens/microzord-apps.js.map +0 -1
  102. package/esm2015/lib/tokens/microzord-apps.metadata.json +0 -1
  103. package/esm2015/lib/types/ng-module.js +0 -2
  104. package/esm2015/lib/types/ng-module.js.map +0 -1
  105. package/esm2015/lib/types/ng-module.metadata.json +0 -1
  106. package/esm2015/microzord-angular.js +0 -6
  107. package/esm2015/microzord-angular.js.map +0 -1
  108. package/esm2015/microzord-angular.metadata.json +0 -1
  109. package/fesm2015/microzord-angular-child.js +0 -75
  110. package/fesm2015/microzord-angular-child.js.map +0 -1
  111. package/fesm2015/microzord-angular.js +0 -224
  112. package/fesm2015/microzord-angular.js.map +0 -1
  113. package/microzord-angular.d.ts +0 -5
  114. package/microzord-angular.metadata.json +0 -1
@@ -0,0 +1,53 @@
1
+ import { Directive, ErrorHandler, Input, NgModuleRef, NgZone, Output, } from '@angular/core';
2
+ import { loadEntity } from '@microzord/core';
3
+ import { Observable, of, Subject } from 'rxjs';
4
+ import { catchError, map, shareReplay, switchMap, takeUntil, tap } from 'rxjs/operators';
5
+ import { complete } from '../operators/complete';
6
+ import { MicrozordNgCompilerService } from './microzord-ng-compiler.service';
7
+ import * as i0 from "@angular/core";
8
+ import * as i1 from "./microzord-ng-compiler.service";
9
+ export class MicrozordNgModuleDirective {
10
+ set name(moduleName) {
11
+ this.ngZone.runOutsideAngular(() => this.name$.next(moduleName));
12
+ }
13
+ constructor(ngZone, mzNgCompiler, errorHandler) {
14
+ this.ngZone = ngZone;
15
+ this.mzNgCompiler = mzNgCompiler;
16
+ this.errorHandler = errorHandler;
17
+ this.name$ = new Subject();
18
+ this.destroy$ = new Subject();
19
+ this.module = this.name$.pipe(tap(() => NgZone.assertNotInAngularZone()), switchMap((name) => name
20
+ ? this.loadModuleAndBootstrap(name).pipe(catchError((error) => {
21
+ this.errorHandler.handleError(error);
22
+ return of(null);
23
+ }))
24
+ : of(null)), map((componentRef) => componentRef?.injector.get(NgModuleRef) ?? null), shareReplay(1), takeUntil(this.destroy$));
25
+ this.module.subscribe();
26
+ }
27
+ loadModuleAndBootstrap(name) {
28
+ return loadEntity(name).pipe(switchMap(async (Module) => this.mzNgCompiler.createEntryPointFromModule(Module)), complete((componentRef) => this.destroyComponentAndModule(componentRef)));
29
+ }
30
+ destroyComponentAndModule(componentRef) {
31
+ componentRef.destroy();
32
+ componentRef.injector.get(NgModuleRef).destroy();
33
+ }
34
+ ngOnDestroy() {
35
+ this.destroy$.next();
36
+ this.destroy$.complete();
37
+ }
38
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleDirective, deps: [{ token: i0.NgZone }, { token: i1.MicrozordNgCompilerService }, { token: i0.ErrorHandler }], target: i0.ɵɵFactoryTarget.Directive }); }
39
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: MicrozordNgModuleDirective, selector: "[microzordNgModule]", inputs: { name: ["microzordNgModule", "name"] }, outputs: { module: "module" }, providers: [MicrozordNgCompilerService], ngImport: i0 }); }
40
+ }
41
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleDirective, decorators: [{
42
+ type: Directive,
43
+ args: [{
44
+ selector: '[microzordNgModule]',
45
+ providers: [MicrozordNgCompilerService],
46
+ }]
47
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: i1.MicrozordNgCompilerService }, { type: i0.ErrorHandler }], propDecorators: { module: [{
48
+ type: Output
49
+ }], name: [{
50
+ type: Input,
51
+ args: ['microzordNgModule']
52
+ }] } });
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm96b3JkLW5nLW1vZHVsZS5kaXJlY3RpdmUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9taWNyb3pvcmQtbW9kdWxlL21pY3Jvem9yZC1uZy1tb2R1bGUuZGlyZWN0aXZlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFFSCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFDTCxXQUFXLEVBQ1gsTUFBTSxFQUVOLE1BQU0sR0FDVCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFVBQVUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQzdDLE9BQU8sRUFBQyxVQUFVLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXZGLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQyxPQUFPLEVBQUMsMEJBQTBCLEVBQUMsTUFBTSxpQ0FBaUMsQ0FBQzs7O0FBTTNFLE1BQU0sT0FBTywwQkFBMEI7SUFPbkMsSUFDVyxJQUFJLENBQUMsVUFBeUI7UUFDckMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFRCxZQUNxQixNQUFjLEVBQ2QsWUFBd0MsRUFDeEMsWUFBMEI7UUFGMUIsV0FBTSxHQUFOLE1BQU0sQ0FBUTtRQUNkLGlCQUFZLEdBQVosWUFBWSxDQUE0QjtRQUN4QyxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQWQ5QixVQUFLLEdBQUcsSUFBSSxPQUFPLEVBQWlCLENBQUM7UUFDckMsYUFBUSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFlNUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDekIsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxzQkFBc0IsRUFBRSxDQUFDLEVBQzFDLFNBQVMsQ0FBQyxDQUFDLElBQUksRUFBRSxFQUFFLENBQ2YsSUFBSTtZQUNBLENBQUMsQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUNsQyxVQUFVLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRXJDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BCLENBQUMsQ0FBQyxDQUNMO1lBQ0gsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FDakIsRUFDRCxHQUFHLENBQUMsQ0FBQyxZQUFZLEVBQUUsRUFBRSxDQUFDLFlBQVksRUFBRSxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLElBQUksQ0FBQyxFQUN0RSxXQUFXLENBQUMsQ0FBQyxDQUFDLEVBQ2QsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FDM0IsQ0FBQztRQUVGLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxFQUFFLENBQUM7SUFDNUIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLElBQVk7UUFDdkMsT0FBTyxVQUFVLENBQTZCLElBQUksQ0FBQyxDQUFDLElBQUksQ0FDcEQsU0FBUyxDQUFDLEtBQUssRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUN2QixJQUFJLENBQUMsWUFBWSxDQUFDLDBCQUEwQixDQUFDLE1BQU0sQ0FBQyxDQUN2RCxFQUNELFFBQVEsQ0FBQyxDQUFDLFlBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLFlBQVksQ0FBQyxDQUFDLENBQzNFLENBQUM7SUFDTixDQUFDO0lBRU8seUJBQXlCLENBQzdCLFlBQTZCO1FBRTdCLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixZQUFZLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNyRCxDQUFDO0lBRU0sV0FBVztRQUNkLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUM3QixDQUFDOzhHQXpEUSwwQkFBMEI7a0dBQTFCLDBCQUEwQiw4SEFGeEIsQ0FBQywwQkFBMEIsQ0FBQzs7MkZBRTlCLDBCQUEwQjtrQkFKdEMsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscUJBQXFCO29CQUMvQixTQUFTLEVBQUUsQ0FBQywwQkFBMEIsQ0FBQztpQkFDMUM7K0lBTVUsTUFBTTtzQkFEWixNQUFNO2dCQUlJLElBQUk7c0JBRGQsS0FBSzt1QkFBQyxtQkFBbUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudFJlZixcbiAgICBEaXJlY3RpdmUsXG4gICAgRXJyb3JIYW5kbGVyLFxuICAgIElucHV0LFxuICAgIE5nTW9kdWxlUmVmLFxuICAgIE5nWm9uZSxcbiAgICBPbkRlc3Ryb3ksXG4gICAgT3V0cHV0LFxufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7bG9hZEVudGl0eX0gZnJvbSAnQG1pY3Jvem9yZC9jb3JlJztcbmltcG9ydCB7T2JzZXJ2YWJsZSwgb2YsIFN1YmplY3R9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtjYXRjaEVycm9yLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmltcG9ydCB7Y29tcGxldGV9IGZyb20gJy4uL29wZXJhdG9ycy9jb21wbGV0ZSc7XG5pbXBvcnQge0VudHJ5UG9pbnQsIE1pY3Jvem9yZE5nTW9kdWxlfSBmcm9tICcuLi90eXBlcy9uZy1tb2R1bGUnO1xuaW1wb3J0IHtNaWNyb3pvcmROZ0NvbXBpbGVyU2VydmljZX0gZnJvbSAnLi9taWNyb3pvcmQtbmctY29tcGlsZXIuc2VydmljZSc7XG5cbkBEaXJlY3RpdmUoe1xuICAgIHNlbGVjdG9yOiAnW21pY3Jvem9yZE5nTW9kdWxlXScsXG4gICAgcHJvdmlkZXJzOiBbTWljcm96b3JkTmdDb21waWxlclNlcnZpY2VdLFxufSlcbmV4cG9ydCBjbGFzcyBNaWNyb3pvcmROZ01vZHVsZURpcmVjdGl2ZSBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSByZWFkb25seSBuYW1lJCA9IG5ldyBTdWJqZWN0PHN0cmluZyB8IG51bGw+KCk7XG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgbW9kdWxlOiBPYnNlcnZhYmxlPE5nTW9kdWxlUmVmPHVua25vd24+IHwgbnVsbD47XG5cbiAgICBASW5wdXQoJ21pY3Jvem9yZE5nTW9kdWxlJylcbiAgICBwdWJsaWMgc2V0IG5hbWUobW9kdWxlTmFtZTogc3RyaW5nIHwgbnVsbCkge1xuICAgICAgICB0aGlzLm5nWm9uZS5ydW5PdXRzaWRlQW5ndWxhcigoKSA9PiB0aGlzLm5hbWUkLm5leHQobW9kdWxlTmFtZSkpO1xuICAgIH1cblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG5nWm9uZTogTmdab25lLFxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IG16TmdDb21waWxlcjogTWljcm96b3JkTmdDb21waWxlclNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZXJyb3JIYW5kbGVyOiBFcnJvckhhbmRsZXIsXG4gICAgKSB7XG4gICAgICAgIHRoaXMubW9kdWxlID0gdGhpcy5uYW1lJC5waXBlKFxuICAgICAgICAgICAgdGFwKCgpID0+IE5nWm9uZS5hc3NlcnROb3RJbkFuZ3VsYXJab25lKCkpLFxuICAgICAgICAgICAgc3dpdGNoTWFwKChuYW1lKSA9PlxuICAgICAgICAgICAgICAgIG5hbWVcbiAgICAgICAgICAgICAgICAgICAgPyB0aGlzLmxvYWRNb2R1bGVBbmRCb290c3RyYXAobmFtZSkucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZXJyb3JIYW5kbGVyLmhhbmRsZUVycm9yKGVycm9yKTtcblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xuICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgICAgIDogb2YobnVsbCksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgbWFwKChjb21wb25lbnRSZWYpID0+IGNvbXBvbmVudFJlZj8uaW5qZWN0b3IuZ2V0KE5nTW9kdWxlUmVmKSA/PyBudWxsKSxcbiAgICAgICAgICAgIHNoYXJlUmVwbGF5KDEpLFxuICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMubW9kdWxlLnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgbG9hZE1vZHVsZUFuZEJvb3RzdHJhcChuYW1lOiBzdHJpbmcpOiBPYnNlcnZhYmxlPENvbXBvbmVudFJlZjxFbnRyeVBvaW50Pj4ge1xuICAgICAgICByZXR1cm4gbG9hZEVudGl0eTx1bmtub3duLCBNaWNyb3pvcmROZ01vZHVsZT4obmFtZSkucGlwZShcbiAgICAgICAgICAgIHN3aXRjaE1hcChhc3luYyAoTW9kdWxlKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMubXpOZ0NvbXBpbGVyLmNyZWF0ZUVudHJ5UG9pbnRGcm9tTW9kdWxlKE1vZHVsZSksXG4gICAgICAgICAgICApLFxuICAgICAgICAgICAgY29tcGxldGUoKGNvbXBvbmVudFJlZikgPT4gdGhpcy5kZXN0cm95Q29tcG9uZW50QW5kTW9kdWxlKGNvbXBvbmVudFJlZikpLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZGVzdHJveUNvbXBvbmVudEFuZE1vZHVsZTxUIGV4dGVuZHMgRW50cnlQb2ludCA9IEVudHJ5UG9pbnQ+KFxuICAgICAgICBjb21wb25lbnRSZWY6IENvbXBvbmVudFJlZjxUPixcbiAgICApIHtcbiAgICAgICAgY29tcG9uZW50UmVmLmRlc3Ryb3koKTtcbiAgICAgICAgY29tcG9uZW50UmVmLmluamVjdG9yLmdldChOZ01vZHVsZVJlZikuZGVzdHJveSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uRGVzdHJveSgpIHtcbiAgICAgICAgdGhpcy5kZXN0cm95JC5uZXh0KCk7XG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcbiAgICB9XG59XG4iXX0=
@@ -0,0 +1,16 @@
1
+ import { NgModule } from '@angular/core';
2
+ import { MicrozordNgModuleDirective } from './microzord-ng-module.directive';
3
+ import * as i0 from "@angular/core";
4
+ export class MicrozordNgModuleModule {
5
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
6
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule, declarations: [MicrozordNgModuleDirective], exports: [MicrozordNgModuleDirective] }); }
7
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule }); }
8
+ }
9
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule, decorators: [{
10
+ type: NgModule,
11
+ args: [{
12
+ declarations: [MicrozordNgModuleDirective],
13
+ exports: [MicrozordNgModuleDirective],
14
+ }]
15
+ }] });
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm96b3JkLW5nLW1vZHVsZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9taWNyb3pvcmQtbW9kdWxlL21pY3Jvem9yZC1uZy1tb2R1bGUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFdkMsT0FBTyxFQUFDLDBCQUEwQixFQUFDLE1BQU0saUNBQWlDLENBQUM7O0FBTTNFLE1BQU0sT0FBTyx1QkFBdUI7OEdBQXZCLHVCQUF1QjsrR0FBdkIsdUJBQXVCLGlCQUhqQiwwQkFBMEIsYUFDL0IsMEJBQTBCOytHQUUzQix1QkFBdUI7OzJGQUF2Qix1QkFBdUI7a0JBSm5DLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLENBQUMsMEJBQTBCLENBQUM7b0JBQzFDLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO2lCQUN4QyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge01pY3Jvem9yZE5nTW9kdWxlRGlyZWN0aXZlfSBmcm9tICcuL21pY3Jvem9yZC1uZy1tb2R1bGUuZGlyZWN0aXZlJztcblxuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtNaWNyb3pvcmROZ01vZHVsZURpcmVjdGl2ZV0sXG4gICAgZXhwb3J0czogW01pY3Jvem9yZE5nTW9kdWxlRGlyZWN0aXZlXSxcbn0pXG5leHBvcnQgY2xhc3MgTWljcm96b3JkTmdNb2R1bGVNb2R1bGUge31cbiJdfQ==
@@ -0,0 +1,6 @@
1
+ import { NEVER } from 'rxjs';
2
+ import { finalize, startWith, switchMap } from 'rxjs/operators';
3
+ export const complete = (fn) => switchMap((value) => NEVER.pipe(startWith(value), finalize(() => {
4
+ fn(value);
5
+ })));
6
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcGxldGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi9vcGVyYXRvcnMvY29tcGxldGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLEtBQUssRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUU5RCxNQUFNLENBQUMsTUFBTSxRQUFRLEdBQUcsQ0FBSSxFQUFzQixFQUFFLEVBQUUsQ0FDbEQsU0FBUyxDQUFDLENBQUMsS0FBUSxFQUFFLEVBQUUsQ0FDbkIsS0FBSyxDQUFDLElBQUksQ0FDTixTQUFTLENBQUMsS0FBSyxDQUFDLEVBQ2hCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7SUFDVixFQUFFLENBQUMsS0FBSyxDQUFDLENBQUM7QUFDZCxDQUFDLENBQUMsQ0FDTCxDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05FVkVSfSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZmluYWxpemUsIHN0YXJ0V2l0aCwgc3dpdGNoTWFwfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5cbmV4cG9ydCBjb25zdCBjb21wbGV0ZSA9IDxUPihmbjogKHZhbHVlOiBUKSA9PiB2b2lkKSA9PlxuICAgIHN3aXRjaE1hcCgodmFsdWU6IFQpID0+XG4gICAgICAgIE5FVkVSLnBpcGUoXG4gICAgICAgICAgICBzdGFydFdpdGgodmFsdWUpLFxuICAgICAgICAgICAgZmluYWxpemUoKCkgPT4ge1xuICAgICAgICAgICAgICAgIGZuKHZhbHVlKTtcbiAgICAgICAgICAgIH0pLFxuICAgICAgICApLFxuICAgICk7XG4iXX0=
@@ -0,0 +1,20 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { registerEntity } from '@microzord/core';
3
+ import * as i0 from "@angular/core";
4
+ export class RegistryService {
5
+ registerMany(apps) {
6
+ apps.forEach((app) => this.register(app));
7
+ }
8
+ register(options) {
9
+ registerEntity(options);
10
+ }
11
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
12
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RegistryService, providedIn: 'root' }); }
13
+ }
14
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RegistryService, decorators: [{
15
+ type: Injectable,
16
+ args: [{
17
+ providedIn: 'root',
18
+ }]
19
+ }] });
20
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVnaXN0cnkuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3JlZ2lzdHJ5LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQXlCLGNBQWMsRUFBQyxNQUFNLGlCQUFpQixDQUFDOztBQU92RSxNQUFNLE9BQU8sZUFBZTtJQUNqQixZQUFZLENBQ2YsSUFBeUU7UUFFekUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUFFTSxRQUFRLENBQUMsT0FBNkQ7UUFDekUsY0FBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQzVCLENBQUM7OEdBVFEsZUFBZTtrSEFBZixlQUFlLGNBRlosTUFBTTs7MkZBRVQsZUFBZTtrQkFIM0IsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtBcHBSZWdpc3RyYXRpb25PcHRpb25zLCByZWdpc3RlckVudGl0eX0gZnJvbSAnQG1pY3Jvem9yZC9jb3JlJztcblxuaW1wb3J0IHtOZ01vZHVsZVJlZ2lzdHJhdGlvbk9wdGlvbnN9IGZyb20gJy4uL3R5cGVzL25nLW1vZHVsZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFJlZ2lzdHJ5U2VydmljZSB7XG4gICAgcHVibGljIHJlZ2lzdGVyTWFueShcbiAgICAgICAgYXBwczogUmVhZG9ubHlBcnJheTxBcHBSZWdpc3RyYXRpb25PcHRpb25zIHwgTmdNb2R1bGVSZWdpc3RyYXRpb25PcHRpb25zPixcbiAgICApIHtcbiAgICAgICAgYXBwcy5mb3JFYWNoKChhcHApID0+IHRoaXMucmVnaXN0ZXIoYXBwKSk7XG4gICAgfVxuXG4gICAgcHVibGljIHJlZ2lzdGVyKG9wdGlvbnM6IEFwcFJlZ2lzdHJhdGlvbk9wdGlvbnMgfCBOZ01vZHVsZVJlZ2lzdHJhdGlvbk9wdGlvbnMpIHtcbiAgICAgICAgcmVnaXN0ZXJFbnRpdHkob3B0aW9ucyk7XG4gICAgfVxufVxuIl19
@@ -0,0 +1,8 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const MICROZORD_APPS = new InjectionToken('[MICROZORD_APPS]: Microzord apps', {
3
+ factory: () => [],
4
+ });
5
+ export const MICROZORD_NG_MODULES = new InjectionToken('[MICROZORD_NG_MODULES]: Microzord Angular modules', {
6
+ factory: () => [],
7
+ });
8
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm96b3JkLWFwcHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL2xpYi90b2tlbnMvbWljcm96b3JkLWFwcHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUs3QyxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQUcsSUFBSSxjQUFjLENBQzVDLGtDQUFrQyxFQUNsQztJQUNJLE9BQU8sRUFBRSxHQUFHLEVBQUUsQ0FBQyxFQUFFO0NBQ3BCLENBQ0osQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLG9CQUFvQixHQUFHLElBQUksY0FBYyxDQUNsRCxtREFBbUQsRUFDbkQ7SUFDSSxPQUFPLEVBQUUsR0FBRyxFQUFFLENBQUMsRUFBRTtDQUNwQixDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGlvblRva2VufSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB0eXBlIHtBcHBSZWdpc3RyYXRpb25PcHRpb25zfSBmcm9tICdAbWljcm96b3JkL2NvcmUnO1xuXG5pbXBvcnQgdHlwZSB7TmdNb2R1bGVSZWdpc3RyYXRpb25PcHRpb25zfSBmcm9tICcuLi90eXBlcy9uZy1tb2R1bGUnO1xuXG5leHBvcnQgY29uc3QgTUlDUk9aT1JEX0FQUFMgPSBuZXcgSW5qZWN0aW9uVG9rZW48QXBwUmVnaXN0cmF0aW9uT3B0aW9uc1tdW10+KFxuICAgICdbTUlDUk9aT1JEX0FQUFNdOiBNaWNyb3pvcmQgYXBwcycsXG4gICAge1xuICAgICAgICBmYWN0b3J5OiAoKSA9PiBbXSxcbiAgICB9LFxuKTtcblxuZXhwb3J0IGNvbnN0IE1JQ1JPWk9SRF9OR19NT0RVTEVTID0gbmV3IEluamVjdGlvblRva2VuPE5nTW9kdWxlUmVnaXN0cmF0aW9uT3B0aW9uc1tdW10+KFxuICAgICdbTUlDUk9aT1JEX05HX01PRFVMRVNdOiBNaWNyb3pvcmQgQW5ndWxhciBtb2R1bGVzJyxcbiAgICB7XG4gICAgICAgIGZhY3Rvcnk6ICgpID0+IFtdLFxuICAgIH0sXG4pO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibmctbW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9hbmd1bGFyL3NyYy9saWIvdHlwZXMvbmctbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7VHlwZX0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgdHlwZSB7RW50aXR5UmVnaXN0cmF0aW9uT3B0aW9uc30gZnJvbSAnQG1pY3Jvem9yZC9jb3JlJztcblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1lbXB0eS1pbnRlcmZhY2VcbmV4cG9ydCBpbnRlcmZhY2UgRW50cnlQb2ludCB7XG4gICAgLy9cbn1cblxuZXhwb3J0IGludGVyZmFjZSBNaWNyb3pvcmROZ01vZHVsZTxUIGV4dGVuZHMgRW50cnlQb2ludCA9IEVudHJ5UG9pbnQ+IHtcbiAgICBnZXRFbnRyeVBvaW50KCk6IFR5cGU8VD47XG59XG5cbmV4cG9ydCB0eXBlIE5nTW9kdWxlUmVnaXN0cmF0aW9uT3B0aW9ucyA9IEVudGl0eVJlZ2lzdHJhdGlvbk9wdGlvbnM8XG4gICAgVHlwZTxNaWNyb3pvcmROZ01vZHVsZT5cbj47XG4iXX0=
@@ -0,0 +1,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWljcm96b3JkLWFuZ3VsYXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9saWJzL2FuZ3VsYXIvc3JjL21pY3Jvem9yZC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19
@@ -0,0 +1,67 @@
1
+ import { InjectionToken, InjectFlags, enableProdMode as enableProdMode$1 } from '@angular/core';
2
+ import { Router } from '@angular/router';
3
+ import { Application, MicrozordLifecycleEvent } from '@microzord/core';
4
+
5
+ const APP_NAME = new InjectionToken('[APP_NAME]: App name');
6
+ const ROOT_SELECTOR = new InjectionToken('[ROOT_SELECTOR]: Root selector');
7
+ // todo: очень грубая имплементация
8
+ function createApp(bootstrapFn, rootSelector) {
9
+ // todo: не хватает имплементации хуков, сообщений и навигации
10
+ class AngularApp extends Application {
11
+ constructor() {
12
+ super(...arguments);
13
+ this.router = null;
14
+ this.ngModule = null;
15
+ }
16
+ destroy() {
17
+ super.destroy();
18
+ if (this.ngModule) {
19
+ this.ngModule.destroy();
20
+ this.ngModule = null;
21
+ }
22
+ this.emitHook(MicrozordLifecycleEvent.destroyed());
23
+ }
24
+ async bootstrap(container, props) {
25
+ const containerElement = typeof container === 'string'
26
+ ? document.querySelector(container)
27
+ : container;
28
+ if (!containerElement) {
29
+ throw new Error(`No container found for ${container}`);
30
+ }
31
+ const rootElement = document.createElement(rootSelector);
32
+ containerElement.appendChild(rootElement);
33
+ this.ngModule = await bootstrapFn(props);
34
+ this.router = this.ngModule.injector.get(Router, null, InjectFlags.Optional);
35
+ await super.bootstrap(container, props);
36
+ this.emitHook(MicrozordLifecycleEvent.bootstrapped());
37
+ }
38
+ async navigate(url, _props) {
39
+ if (this.router) {
40
+ await this.router.navigateByUrl(url);
41
+ }
42
+ }
43
+ async send(_msg) {
44
+ //
45
+ }
46
+ }
47
+ return AngularApp;
48
+ }
49
+
50
+ /**
51
+ * Disable Angular's development mode safely
52
+ */
53
+ function enableProdMode() {
54
+ try {
55
+ enableProdMode$1();
56
+ }
57
+ catch (e) {
58
+ //
59
+ }
60
+ }
61
+
62
+ /**
63
+ * Generated bundle index. Do not edit.
64
+ */
65
+
66
+ export { APP_NAME, ROOT_SELECTOR, createApp, enableProdMode };
67
+ //# sourceMappingURL=microzord-angular-child.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microzord-angular-child.mjs","sources":["../../../../libs/angular/child/src/create-app.ts","../../../../libs/angular/child/src/enable-prod-mode.ts","../../../../libs/angular/child/microzord-angular-child.ts"],"sourcesContent":["import type {CompilerOptions, NgModuleRef} from '@angular/core';\nimport {InjectFlags, InjectionToken} from '@angular/core';\nimport {Router} from '@angular/router';\nimport type {ApplicationConstructor, MicrozordMessageEvent} from '@microzord/core';\nimport {Application, MicrozordLifecycleEvent} from '@microzord/core';\n\nexport const APP_NAME = new InjectionToken<string>('[APP_NAME]: App name');\nexport const ROOT_SELECTOR = new InjectionToken<string>('[ROOT_SELECTOR]: Root selector');\n\n// todo: очень грубая имплементация\nexport function createApp<\n TModule,\n Props extends Record<string, unknown> = Record<string, unknown>,\n>(\n bootstrapFn: (props?: CompilerOptions) => Promise<NgModuleRef<TModule>>,\n rootSelector: string,\n): ApplicationConstructor {\n // todo: не хватает имплементации хуков, сообщений и навигации\n class AngularApp<T extends Record<string, unknown> = Props> extends Application<T> {\n private router: Router | null = null;\n private ngModule: NgModuleRef<TModule> | null = null;\n\n public destroy() {\n super.destroy();\n\n if (this.ngModule) {\n this.ngModule.destroy();\n this.ngModule = null;\n }\n\n this.emitHook(MicrozordLifecycleEvent.destroyed());\n }\n\n public async bootstrap(container: Element | string, props?: T): Promise<void> {\n const containerElement =\n typeof container === 'string'\n ? document.querySelector(container)\n : container;\n\n if (!containerElement) {\n throw new Error(`No container found for ${container}`);\n }\n\n const rootElement = document.createElement(rootSelector);\n\n containerElement.appendChild(rootElement);\n\n this.ngModule = await bootstrapFn(props);\n this.router = this.ngModule.injector.get(Router, null, InjectFlags.Optional);\n\n await super.bootstrap(container, props);\n\n this.emitHook(MicrozordLifecycleEvent.bootstrapped());\n }\n\n public async navigate(url: string, _props: unknown | undefined): Promise<void> {\n if (this.router) {\n await this.router.navigateByUrl(url);\n }\n }\n\n public async send(_msg: MicrozordMessageEvent | string): Promise<void> {\n //\n }\n }\n\n return AngularApp;\n}\n","import {enableProdMode as angularEnableProdMode} from '@angular/core';\n\n/**\n * Disable Angular's development mode safely\n */\nexport function enableProdMode() {\n try {\n angularEnableProdMode();\n } catch (e) {\n //\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["angularEnableProdMode"],"mappings":";;;;MAMa,QAAQ,GAAG,IAAI,cAAc,CAAS,sBAAsB,EAAE;MAC9D,aAAa,GAAG,IAAI,cAAc,CAAS,gCAAgC,EAAE;AAE1F;AACgB,SAAA,SAAS,CAIrB,WAAuE,EACvE,YAAoB,EAAA;;IAGpB,MAAM,UAAsD,SAAQ,WAAc,CAAA;AAAlF,QAAA,WAAA,GAAA;;YACY,IAAM,CAAA,MAAA,GAAkB,IAAI,CAAC;YAC7B,IAAQ,CAAA,QAAA,GAAgC,IAAI,CAAC;SA4CxD;QA1CU,OAAO,GAAA;YACV,KAAK,CAAC,OAAO,EAAE,CAAC;YAEhB,IAAI,IAAI,CAAC,QAAQ,EAAE;AACf,gBAAA,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;AACxB,gBAAA,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;AACxB,aAAA;YAED,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,SAAS,EAAE,CAAC,CAAC;SACtD;AAEM,QAAA,MAAM,SAAS,CAAC,SAA2B,EAAE,KAAS,EAAA;AACzD,YAAA,MAAM,gBAAgB,GAClB,OAAO,SAAS,KAAK,QAAQ;AACzB,kBAAE,QAAQ,CAAC,aAAa,CAAC,SAAS,CAAC;kBACjC,SAAS,CAAC;YAEpB,IAAI,CAAC,gBAAgB,EAAE;AACnB,gBAAA,MAAM,IAAI,KAAK,CAAC,0BAA0B,SAAS,CAAA,CAAE,CAAC,CAAC;AAC1D,aAAA;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,aAAa,CAAC,YAAY,CAAC,CAAC;AAEzD,YAAA,gBAAgB,CAAC,WAAW,CAAC,WAAW,CAAC,CAAC;YAE1C,IAAI,CAAC,QAAQ,GAAG,MAAM,WAAW,CAAC,KAAK,CAAC,CAAC;AACzC,YAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,CAAC,CAAC;YAE7E,MAAM,KAAK,CAAC,SAAS,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC;YAExC,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,YAAY,EAAE,CAAC,CAAC;SACzD;AAEM,QAAA,MAAM,QAAQ,CAAC,GAAW,EAAE,MAA2B,EAAA;YAC1D,IAAI,IAAI,CAAC,MAAM,EAAE;gBACb,MAAM,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACxC,aAAA;SACJ;QAEM,MAAM,IAAI,CAAC,IAAoC,EAAA;;SAErD;AACJ,KAAA;AAED,IAAA,OAAO,UAAU,CAAC;AACtB;;ACjEA;;AAEG;SACa,cAAc,GAAA;IAC1B,IAAI;AACA,QAAAA,gBAAqB,EAAE,CAAC;AAC3B,KAAA;AAAC,IAAA,OAAO,CAAC,EAAE;;AAEX,KAAA;AACL;;ACXA;;AAEG;;;;"}
@@ -0,0 +1,231 @@
1
+ import * as i0 from '@angular/core';
2
+ import { NgZone, Directive, Output, Input, NgModule, Injectable, Optional, NgModuleRef, InjectionToken, Inject } from '@angular/core';
3
+ import { constructApp, bootstrapApp, loadEntity, registerEntity } from '@microzord/core';
4
+ import { NEVER, Subject, of, Observable } from 'rxjs';
5
+ import { switchMap, startWith, finalize, tap, catchError, takeUntil, shareReplay, map } from 'rxjs/operators';
6
+
7
+ const complete = (fn) => switchMap((value) => NEVER.pipe(startWith(value), finalize(() => {
8
+ fn(value);
9
+ })));
10
+
11
+ class MicrozordAppDirective {
12
+ set name(appName) {
13
+ this.ngZone.runOutsideAngular(() => this.name$.next(appName));
14
+ }
15
+ constructor(elementRef, ngZone, errorHandler) {
16
+ this.elementRef = elementRef;
17
+ this.ngZone = ngZone;
18
+ this.errorHandler = errorHandler;
19
+ this.destroy$ = new Subject();
20
+ this.name$ = new Subject();
21
+ const app$ = this.name$.pipe(tap(() => NgZone.assertNotInAngularZone()), switchMap((name) => (name ? constructApp(name) : of(null))), catchError((error) => this.handleError(error)), takeUntil(this.destroy$), shareReplay(1));
22
+ this.application = app$.pipe(complete((app) => {
23
+ app?.destroy();
24
+ }), switchMap((name) => name
25
+ ? bootstrapApp(name, this.elementRef.nativeElement).pipe(catchError((error) => this.handleError(error)))
26
+ : of(null)), takeUntil(this.destroy$), shareReplay(1));
27
+ this.hook = app$.pipe(switchMap((app) => app
28
+ ? new Observable((subscriber) => app.onHook((event) => subscriber.next(event)))
29
+ : NEVER));
30
+ this.application.subscribe();
31
+ }
32
+ ngOnDestroy() {
33
+ this.destroy$.next();
34
+ this.destroy$.complete();
35
+ }
36
+ handleError(error) {
37
+ this.errorHandler.handleError(error);
38
+ return of(null);
39
+ }
40
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordAppDirective, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: i0.ErrorHandler }], target: i0.ɵɵFactoryTarget.Directive }); }
41
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: MicrozordAppDirective, selector: "[microzordApp]:not(ng-container)", inputs: { name: ["microzordApp", "name"] }, outputs: { hook: "hook", application: "application" }, ngImport: i0 }); }
42
+ }
43
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordAppDirective, decorators: [{
44
+ type: Directive,
45
+ args: [{
46
+ selector: '[microzordApp]:not(ng-container)',
47
+ }]
48
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: i0.ErrorHandler }], propDecorators: { hook: [{
49
+ type: Output
50
+ }], application: [{
51
+ type: Output
52
+ }], name: [{
53
+ type: Input,
54
+ args: ['microzordApp']
55
+ }] } });
56
+
57
+ class MicrozordAppModule {
58
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordAppModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
59
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: MicrozordAppModule, declarations: [MicrozordAppDirective], exports: [MicrozordAppDirective] }); }
60
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordAppModule }); }
61
+ }
62
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordAppModule, decorators: [{
63
+ type: NgModule,
64
+ args: [{
65
+ declarations: [MicrozordAppDirective],
66
+ exports: [MicrozordAppDirective],
67
+ }]
68
+ }] });
69
+
70
+ class MicrozordNgCompilerService {
71
+ constructor(compiler, componentFactoryResolver, injector, viewContainerRef) {
72
+ this.compiler = compiler;
73
+ this.componentFactoryResolver = componentFactoryResolver;
74
+ this.injector = injector;
75
+ this.viewContainerRef = viewContainerRef;
76
+ }
77
+ async createModule(Module, injector = this.injector) {
78
+ const moduleFactory = await this.compiler.compileModuleAsync(Module);
79
+ return moduleFactory.create(injector);
80
+ }
81
+ async createEntryPoint(moduleRef, injector = this.injector, viewContainerRef = this.viewContainerRef) {
82
+ const componentFactory = this.componentFactoryResolver.resolveComponentFactory(moduleRef.instance.getEntryPoint());
83
+ viewContainerRef.clear();
84
+ return viewContainerRef.createComponent(componentFactory, undefined, injector, [], moduleRef);
85
+ }
86
+ async createEntryPointFromModule(Module, injector = this.injector, viewContainerRef = this.viewContainerRef) {
87
+ const moduleRef = await this.createModule(Module, injector);
88
+ return this.createEntryPoint(moduleRef, injector, viewContainerRef);
89
+ }
90
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgCompilerService, deps: [{ token: i0.Compiler }, { token: i0.ComponentFactoryResolver }, { token: i0.Injector, optional: true }, { token: i0.ViewContainerRef, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
91
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgCompilerService }); }
92
+ }
93
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgCompilerService, decorators: [{
94
+ type: Injectable
95
+ }], ctorParameters: () => [{ type: i0.Compiler }, { type: i0.ComponentFactoryResolver }, { type: i0.Injector, decorators: [{
96
+ type: Optional
97
+ }] }, { type: i0.ViewContainerRef, decorators: [{
98
+ type: Optional
99
+ }] }] });
100
+
101
+ class MicrozordNgModuleDirective {
102
+ set name(moduleName) {
103
+ this.ngZone.runOutsideAngular(() => this.name$.next(moduleName));
104
+ }
105
+ constructor(ngZone, mzNgCompiler, errorHandler) {
106
+ this.ngZone = ngZone;
107
+ this.mzNgCompiler = mzNgCompiler;
108
+ this.errorHandler = errorHandler;
109
+ this.name$ = new Subject();
110
+ this.destroy$ = new Subject();
111
+ this.module = this.name$.pipe(tap(() => NgZone.assertNotInAngularZone()), switchMap((name) => name
112
+ ? this.loadModuleAndBootstrap(name).pipe(catchError((error) => {
113
+ this.errorHandler.handleError(error);
114
+ return of(null);
115
+ }))
116
+ : of(null)), map((componentRef) => componentRef?.injector.get(NgModuleRef) ?? null), shareReplay(1), takeUntil(this.destroy$));
117
+ this.module.subscribe();
118
+ }
119
+ loadModuleAndBootstrap(name) {
120
+ return loadEntity(name).pipe(switchMap(async (Module) => this.mzNgCompiler.createEntryPointFromModule(Module)), complete((componentRef) => this.destroyComponentAndModule(componentRef)));
121
+ }
122
+ destroyComponentAndModule(componentRef) {
123
+ componentRef.destroy();
124
+ componentRef.injector.get(NgModuleRef).destroy();
125
+ }
126
+ ngOnDestroy() {
127
+ this.destroy$.next();
128
+ this.destroy$.complete();
129
+ }
130
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleDirective, deps: [{ token: i0.NgZone }, { token: MicrozordNgCompilerService }, { token: i0.ErrorHandler }], target: i0.ɵɵFactoryTarget.Directive }); }
131
+ static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "17.3.9", type: MicrozordNgModuleDirective, selector: "[microzordNgModule]", inputs: { name: ["microzordNgModule", "name"] }, outputs: { module: "module" }, providers: [MicrozordNgCompilerService], ngImport: i0 }); }
132
+ }
133
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleDirective, decorators: [{
134
+ type: Directive,
135
+ args: [{
136
+ selector: '[microzordNgModule]',
137
+ providers: [MicrozordNgCompilerService],
138
+ }]
139
+ }], ctorParameters: () => [{ type: i0.NgZone }, { type: MicrozordNgCompilerService }, { type: i0.ErrorHandler }], propDecorators: { module: [{
140
+ type: Output
141
+ }], name: [{
142
+ type: Input,
143
+ args: ['microzordNgModule']
144
+ }] } });
145
+
146
+ class MicrozordNgModuleModule {
147
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
148
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule, declarations: [MicrozordNgModuleDirective], exports: [MicrozordNgModuleDirective] }); }
149
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule }); }
150
+ }
151
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordNgModuleModule, decorators: [{
152
+ type: NgModule,
153
+ args: [{
154
+ declarations: [MicrozordNgModuleDirective],
155
+ exports: [MicrozordNgModuleDirective],
156
+ }]
157
+ }] });
158
+
159
+ class RegistryService {
160
+ registerMany(apps) {
161
+ apps.forEach((app) => this.register(app));
162
+ }
163
+ register(options) {
164
+ registerEntity(options);
165
+ }
166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
167
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RegistryService, providedIn: 'root' }); }
168
+ }
169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: RegistryService, decorators: [{
170
+ type: Injectable,
171
+ args: [{
172
+ providedIn: 'root',
173
+ }]
174
+ }] });
175
+
176
+ const MICROZORD_APPS = new InjectionToken('[MICROZORD_APPS]: Microzord apps', {
177
+ factory: () => [],
178
+ });
179
+ const MICROZORD_NG_MODULES = new InjectionToken('[MICROZORD_NG_MODULES]: Microzord Angular modules', {
180
+ factory: () => [],
181
+ });
182
+
183
+ class MicrozordHostModule {
184
+ constructor(allApps, allModules, registry) {
185
+ allApps.forEach((apps) => registry.registerMany(apps));
186
+ allModules.forEach((modules) => registry.registerMany(modules));
187
+ }
188
+ static register({ apps, modules, }) {
189
+ return {
190
+ ngModule: MicrozordHostModule,
191
+ providers: [
192
+ apps
193
+ ? {
194
+ provide: MICROZORD_APPS,
195
+ useValue: apps,
196
+ multi: true,
197
+ }
198
+ : [],
199
+ modules
200
+ ? {
201
+ provide: MICROZORD_NG_MODULES,
202
+ useValue: modules,
203
+ multi: true,
204
+ }
205
+ : [],
206
+ ],
207
+ };
208
+ }
209
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordHostModule, deps: [{ token: MICROZORD_APPS }, { token: MICROZORD_NG_MODULES }, { token: RegistryService }], target: i0.ɵɵFactoryTarget.NgModule }); }
210
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "17.3.9", ngImport: i0, type: MicrozordHostModule, exports: [MicrozordAppModule, MicrozordNgModuleModule] }); }
211
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordHostModule, imports: [MicrozordAppModule, MicrozordNgModuleModule] }); }
212
+ }
213
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.9", ngImport: i0, type: MicrozordHostModule, decorators: [{
214
+ type: NgModule,
215
+ args: [{
216
+ exports: [MicrozordAppModule, MicrozordNgModuleModule],
217
+ }]
218
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
219
+ type: Inject,
220
+ args: [MICROZORD_APPS]
221
+ }] }, { type: undefined, decorators: [{
222
+ type: Inject,
223
+ args: [MICROZORD_NG_MODULES]
224
+ }] }, { type: RegistryService }] });
225
+
226
+ /**
227
+ * Generated bundle index. Do not edit.
228
+ */
229
+
230
+ export { MICROZORD_APPS, MICROZORD_NG_MODULES, MicrozordAppDirective, MicrozordAppModule, MicrozordHostModule, MicrozordNgModuleDirective, MicrozordNgModuleModule, RegistryService };
231
+ //# sourceMappingURL=microzord-angular.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microzord-angular.mjs","sources":["../../../../libs/angular/src/lib/operators/complete.ts","../../../../libs/angular/src/lib/microzord-app/microzord-app.directive.ts","../../../../libs/angular/src/lib/microzord-app/microzord-app.module.ts","../../../../libs/angular/src/lib/microzord-module/microzord-ng-compiler.service.ts","../../../../libs/angular/src/lib/microzord-module/microzord-ng-module.directive.ts","../../../../libs/angular/src/lib/microzord-module/microzord-ng-module.module.ts","../../../../libs/angular/src/lib/services/registry.service.ts","../../../../libs/angular/src/lib/tokens/microzord-apps.ts","../../../../libs/angular/src/lib/microzord-host.module.ts","../../../../libs/angular/src/microzord-angular.ts"],"sourcesContent":["import {NEVER} from 'rxjs';\nimport {finalize, startWith, switchMap} from 'rxjs/operators';\n\nexport const complete = <T>(fn: (value: T) => void) =>\n switchMap((value: T) =>\n NEVER.pipe(\n startWith(value),\n finalize(() => {\n fn(value);\n }),\n ),\n );\n","import {\n Directive,\n ElementRef,\n ErrorHandler,\n Input,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {\n Application,\n bootstrapApp,\n constructApp,\n MicrozordLifecycleEvent,\n} from '@microzord/core';\nimport {NEVER, Observable, of, Subject} from 'rxjs';\nimport {catchError, shareReplay, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nimport {complete} from '../operators/complete';\n\n@Directive({\n selector: '[microzordApp]:not(ng-container)',\n})\nexport class MicrozordAppDirective implements OnDestroy {\n @Output()\n public hook: Observable<MicrozordLifecycleEvent>;\n\n @Output()\n public application: Observable<Application | null>;\n\n @Input('microzordApp')\n public set name(appName: string) {\n this.ngZone.runOutsideAngular(() => this.name$.next(appName));\n }\n\n private readonly destroy$ = new Subject<void>();\n private readonly name$ = new Subject<string>();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly ngZone: NgZone,\n private readonly errorHandler: ErrorHandler,\n ) {\n const app$ = this.name$.pipe(\n tap(() => NgZone.assertNotInAngularZone()),\n switchMap((name) => (name ? constructApp(name) : of(null))),\n catchError((error) => this.handleError(error)),\n takeUntil(this.destroy$),\n shareReplay(1),\n );\n\n this.application = app$.pipe(\n complete((app) => {\n app?.destroy();\n }),\n switchMap((name) =>\n name\n ? bootstrapApp(name, this.elementRef.nativeElement).pipe(\n catchError((error) => this.handleError(error)),\n )\n : of(null),\n ),\n takeUntil(this.destroy$),\n shareReplay(1),\n );\n\n this.hook = app$.pipe(\n switchMap((app) =>\n app\n ? new Observable<MicrozordLifecycleEvent>((subscriber) =>\n app.onHook((event) => subscriber.next(event)),\n )\n : NEVER,\n ),\n );\n\n this.application.subscribe();\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n\n private handleError(error: unknown): Observable<null> {\n this.errorHandler.handleError(error);\n\n return of(null);\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {MicrozordAppDirective} from './microzord-app.directive';\n\n@NgModule({\n declarations: [MicrozordAppDirective],\n exports: [MicrozordAppDirective],\n})\nexport class MicrozordAppModule {}\n","import {\n Compiler,\n ComponentFactoryResolver,\n ComponentRef,\n Injectable,\n Injector,\n NgModuleRef,\n Optional,\n Type,\n ViewContainerRef,\n} from '@angular/core';\n\nimport {EntryPoint, MicrozordNgModule} from '../types/ng-module';\n\n@Injectable()\nexport class MicrozordNgCompilerService {\n constructor(\n private readonly compiler: Compiler,\n private readonly componentFactoryResolver: ComponentFactoryResolver,\n @Optional()\n private readonly injector: Injector,\n @Optional()\n private readonly viewContainerRef: ViewContainerRef,\n ) {}\n\n public async createModule<\n T extends EntryPoint = EntryPoint,\n M extends MicrozordNgModule<T> = MicrozordNgModule<T>,\n >(Module: Type<M>, injector: Injector = this.injector): Promise<NgModuleRef<M>> {\n const moduleFactory = await this.compiler.compileModuleAsync(Module);\n\n return moduleFactory.create(injector);\n }\n\n public async createEntryPoint<\n T extends EntryPoint = EntryPoint,\n M extends MicrozordNgModule<T> = MicrozordNgModule<T>,\n >(\n moduleRef: NgModuleRef<M>,\n injector: Injector = this.injector,\n viewContainerRef: ViewContainerRef = this.viewContainerRef,\n ): Promise<ComponentRef<T>> {\n const componentFactory = this.componentFactoryResolver.resolveComponentFactory(\n moduleRef.instance.getEntryPoint(),\n );\n\n viewContainerRef.clear();\n\n return viewContainerRef.createComponent(\n componentFactory,\n undefined,\n injector,\n [],\n moduleRef,\n );\n }\n\n public async createEntryPointFromModule<\n T extends EntryPoint = EntryPoint,\n M extends MicrozordNgModule<T> = MicrozordNgModule<T>,\n >(\n Module: Type<M>,\n injector: Injector = this.injector,\n viewContainerRef: ViewContainerRef = this.viewContainerRef,\n ): Promise<ComponentRef<T>> {\n const moduleRef = await this.createModule(Module, injector);\n\n return this.createEntryPoint(moduleRef, injector, viewContainerRef);\n }\n}\n","import {\n ComponentRef,\n Directive,\n ErrorHandler,\n Input,\n NgModuleRef,\n NgZone,\n OnDestroy,\n Output,\n} from '@angular/core';\nimport {loadEntity} from '@microzord/core';\nimport {Observable, of, Subject} from 'rxjs';\nimport {catchError, map, shareReplay, switchMap, takeUntil, tap} from 'rxjs/operators';\n\nimport {complete} from '../operators/complete';\nimport {EntryPoint, MicrozordNgModule} from '../types/ng-module';\nimport {MicrozordNgCompilerService} from './microzord-ng-compiler.service';\n\n@Directive({\n selector: '[microzordNgModule]',\n providers: [MicrozordNgCompilerService],\n})\nexport class MicrozordNgModuleDirective implements OnDestroy {\n private readonly name$ = new Subject<string | null>();\n private readonly destroy$ = new Subject<void>();\n\n @Output()\n public module: Observable<NgModuleRef<unknown> | null>;\n\n @Input('microzordNgModule')\n public set name(moduleName: string | null) {\n this.ngZone.runOutsideAngular(() => this.name$.next(moduleName));\n }\n\n constructor(\n private readonly ngZone: NgZone,\n private readonly mzNgCompiler: MicrozordNgCompilerService,\n private readonly errorHandler: ErrorHandler,\n ) {\n this.module = this.name$.pipe(\n tap(() => NgZone.assertNotInAngularZone()),\n switchMap((name) =>\n name\n ? this.loadModuleAndBootstrap(name).pipe(\n catchError((error) => {\n this.errorHandler.handleError(error);\n\n return of(null);\n }),\n )\n : of(null),\n ),\n map((componentRef) => componentRef?.injector.get(NgModuleRef) ?? null),\n shareReplay(1),\n takeUntil(this.destroy$),\n );\n\n this.module.subscribe();\n }\n\n private loadModuleAndBootstrap(name: string): Observable<ComponentRef<EntryPoint>> {\n return loadEntity<unknown, MicrozordNgModule>(name).pipe(\n switchMap(async (Module) =>\n this.mzNgCompiler.createEntryPointFromModule(Module),\n ),\n complete((componentRef) => this.destroyComponentAndModule(componentRef)),\n );\n }\n\n private destroyComponentAndModule<T extends EntryPoint = EntryPoint>(\n componentRef: ComponentRef<T>,\n ) {\n componentRef.destroy();\n componentRef.injector.get(NgModuleRef).destroy();\n }\n\n public ngOnDestroy() {\n this.destroy$.next();\n this.destroy$.complete();\n }\n}\n","import {NgModule} from '@angular/core';\n\nimport {MicrozordNgModuleDirective} from './microzord-ng-module.directive';\n\n@NgModule({\n declarations: [MicrozordNgModuleDirective],\n exports: [MicrozordNgModuleDirective],\n})\nexport class MicrozordNgModuleModule {}\n","import {Injectable} from '@angular/core';\nimport {AppRegistrationOptions, registerEntity} from '@microzord/core';\n\nimport {NgModuleRegistrationOptions} from '../types/ng-module';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class RegistryService {\n public registerMany(\n apps: ReadonlyArray<AppRegistrationOptions | NgModuleRegistrationOptions>,\n ) {\n apps.forEach((app) => this.register(app));\n }\n\n public register(options: AppRegistrationOptions | NgModuleRegistrationOptions) {\n registerEntity(options);\n }\n}\n","import {InjectionToken} from '@angular/core';\nimport type {AppRegistrationOptions} from '@microzord/core';\n\nimport type {NgModuleRegistrationOptions} from '../types/ng-module';\n\nexport const MICROZORD_APPS = new InjectionToken<AppRegistrationOptions[][]>(\n '[MICROZORD_APPS]: Microzord apps',\n {\n factory: () => [],\n },\n);\n\nexport const MICROZORD_NG_MODULES = new InjectionToken<NgModuleRegistrationOptions[][]>(\n '[MICROZORD_NG_MODULES]: Microzord Angular modules',\n {\n factory: () => [],\n },\n);\n","import {Inject, ModuleWithProviders, NgModule, Type} from '@angular/core';\nimport {AppRegistrationOptions, EntityRegistrationOptions} from '@microzord/core';\n\nimport {MicrozordAppModule} from './microzord-app/microzord-app.module';\nimport {MicrozordNgModuleModule} from './microzord-module/microzord-ng-module.module';\nimport {RegistryService} from './services/registry.service';\nimport {MICROZORD_APPS, MICROZORD_NG_MODULES} from './tokens/microzord-apps';\nimport {NgModuleRegistrationOptions} from './types/ng-module';\n\nexport interface MicrozordHostModuleOptions {\n apps?: AppRegistrationOptions[];\n modules?: Array<EntityRegistrationOptions<Type<unknown>>>;\n}\n\n@NgModule({\n exports: [MicrozordAppModule, MicrozordNgModuleModule],\n})\nexport class MicrozordHostModule {\n constructor(\n @Inject(MICROZORD_APPS) allApps: AppRegistrationOptions[][],\n @Inject(MICROZORD_NG_MODULES) allModules: NgModuleRegistrationOptions[][],\n registry: RegistryService,\n ) {\n allApps.forEach((apps) => registry.registerMany(apps));\n allModules.forEach((modules) => registry.registerMany(modules));\n }\n\n public static register({\n apps,\n modules,\n }: MicrozordHostModuleOptions): ModuleWithProviders<MicrozordHostModule> {\n return {\n ngModule: MicrozordHostModule,\n providers: [\n apps\n ? {\n provide: MICROZORD_APPS,\n useValue: apps,\n multi: true,\n }\n : [],\n modules\n ? {\n provide: MICROZORD_NG_MODULES,\n useValue: modules,\n multi: true,\n }\n : [],\n ],\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["i1.MicrozordNgCompilerService","i1.RegistryService"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,9 +1,10 @@
1
1
  export * from './lib/microzord-app/microzord-app.directive';
2
2
  export * from './lib/microzord-app/microzord-app.module';
3
+ export * from './lib/microzord-host.module';
3
4
  export * from './lib/microzord-module/microzord-ng-module.directive';
4
5
  export * from './lib/microzord-module/microzord-ng-module.module';
5
- export * from './lib/microzord-host.module';
6
6
  export * from './lib/services/registry.service';
7
7
  export * from './lib/tokens/microzord-apps';
8
8
  export * from './lib/types/ng-module';
9
9
  export { AppRegistrationOptions } from '@microzord/core';
10
+ //# sourceMappingURL=index.d.ts.map
package/index.d.ts.map ADDED
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../libs/angular/src/index.ts"],"names":[],"mappings":"AAAA,cAAc,6CAA6C,CAAC;AAC5D,cAAc,0CAA0C,CAAC;AACzD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,sDAAsD,CAAC;AACrE,cAAc,mDAAmD,CAAC;AAClE,cAAc,iCAAiC,CAAC;AAChD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uBAAuB,CAAC;AACtC,OAAO,EAAC,sBAAsB,EAAC,MAAM,iBAAiB,CAAC"}
@@ -1,16 +1,20 @@
1
1
  import { ElementRef, ErrorHandler, NgZone, OnDestroy } from '@angular/core';
2
2
  import { Application, MicrozordLifecycleEvent } from '@microzord/core';
3
3
  import { Observable } from 'rxjs';
4
+ import * as i0 from "@angular/core";
4
5
  export declare class MicrozordAppDirective implements OnDestroy {
5
- private elementRef;
6
- private ngZone;
7
- private errorHandler;
6
+ private readonly elementRef;
7
+ private readonly ngZone;
8
+ private readonly errorHandler;
8
9
  hook: Observable<MicrozordLifecycleEvent>;
9
10
  application: Observable<Application | null>;
10
11
  set name(appName: string);
11
- private destroy$;
12
- private name$;
12
+ private readonly destroy$;
13
+ private readonly name$;
13
14
  constructor(elementRef: ElementRef, ngZone: NgZone, errorHandler: ErrorHandler);
14
15
  ngOnDestroy(): void;
15
16
  private handleError;
17
+ static ɵfac: i0.ɵɵFactoryDeclaration<MicrozordAppDirective, never>;
18
+ static ɵdir: i0.ɵɵDirectiveDeclaration<MicrozordAppDirective, "[microzordApp]:not(ng-container)", never, { "name": { "alias": "microzordApp"; "required": false; }; }, { "hook": "hook"; "application": "application"; }, never, never, false, never>;
16
19
  }
20
+ //# sourceMappingURL=microzord-app.directive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microzord-app.directive.d.ts","sourceRoot":"","sources":["../../../../../libs/angular/src/lib/microzord-app/microzord-app.directive.ts"],"names":[],"mappings":"AAAA,OAAO,EAEH,UAAU,EACV,YAAY,EAEZ,MAAM,EACN,SAAS,EAEZ,MAAM,eAAe,CAAC;AACvB,OAAO,EACH,WAAW,EAGX,uBAAuB,EAC1B,MAAM,iBAAiB,CAAC;AACzB,OAAO,EAAQ,UAAU,EAAc,MAAM,MAAM,CAAC;;AAKpD,qBAGa,qBAAsB,YAAW,SAAS;IAgB/C,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,YAAY;IAhB1B,IAAI,EAAE,UAAU,CAAC,uBAAuB,CAAC,CAAC;IAG1C,WAAW,EAAE,UAAU,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAEnD,IACW,IAAI,CAAC,OAAO,EAAE,MAAM,EAE9B;IAED,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAuB;IAChD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAyB;gBAG1B,UAAU,EAAE,UAAU,EACtB,MAAM,EAAE,MAAM,EACd,YAAY,EAAE,YAAY;IAsCxC,WAAW;IAKlB,OAAO,CAAC,WAAW;yCA7DV,qBAAqB;2CAArB,qBAAqB;CAkEjC"}
@@ -1,2 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ import * as i1 from "./microzord-app.directive";
1
3
  export declare class MicrozordAppModule {
4
+ static ɵfac: i0.ɵɵFactoryDeclaration<MicrozordAppModule, never>;
5
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MicrozordAppModule, [typeof i1.MicrozordAppDirective], never, [typeof i1.MicrozordAppDirective]>;
6
+ static ɵinj: i0.ɵɵInjectorDeclaration<MicrozordAppModule>;
2
7
  }
8
+ //# sourceMappingURL=microzord-app.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microzord-app.module.d.ts","sourceRoot":"","sources":["../../../../../libs/angular/src/lib/microzord-app/microzord-app.module.ts"],"names":[],"mappings":";;AAIA,qBAIa,kBAAkB;yCAAlB,kBAAkB;0CAAlB,kBAAkB;0CAAlB,kBAAkB;CAAG"}
@@ -2,11 +2,18 @@ import { ModuleWithProviders, Type } from '@angular/core';
2
2
  import { AppRegistrationOptions, EntityRegistrationOptions } from '@microzord/core';
3
3
  import { RegistryService } from './services/registry.service';
4
4
  import { NgModuleRegistrationOptions } from './types/ng-module';
5
+ import * as i0 from "@angular/core";
6
+ import * as i1 from "./microzord-app/microzord-app.module";
7
+ import * as i2 from "./microzord-module/microzord-ng-module.module";
5
8
  export interface MicrozordHostModuleOptions {
6
9
  apps?: AppRegistrationOptions[];
7
- modules?: EntityRegistrationOptions<Type<any>>[];
10
+ modules?: Array<EntityRegistrationOptions<Type<unknown>>>;
8
11
  }
9
12
  export declare class MicrozordHostModule {
10
13
  constructor(allApps: AppRegistrationOptions[][], allModules: NgModuleRegistrationOptions[][], registry: RegistryService);
11
14
  static register({ apps, modules, }: MicrozordHostModuleOptions): ModuleWithProviders<MicrozordHostModule>;
15
+ static ɵfac: i0.ɵɵFactoryDeclaration<MicrozordHostModule, never>;
16
+ static ɵmod: i0.ɵɵNgModuleDeclaration<MicrozordHostModule, never, never, [typeof i1.MicrozordAppModule, typeof i2.MicrozordNgModuleModule]>;
17
+ static ɵinj: i0.ɵɵInjectorDeclaration<MicrozordHostModule>;
12
18
  }
19
+ //# sourceMappingURL=microzord-host.module.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microzord-host.module.d.ts","sourceRoot":"","sources":["../../../../libs/angular/src/lib/microzord-host.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,mBAAmB,EAAY,IAAI,EAAC,MAAM,eAAe,CAAC;AAC1E,OAAO,EAAC,sBAAsB,EAAE,yBAAyB,EAAC,MAAM,iBAAiB,CAAC;AAIlF,OAAO,EAAC,eAAe,EAAC,MAAM,6BAA6B,CAAC;AAE5D,OAAO,EAAC,2BAA2B,EAAC,MAAM,mBAAmB,CAAC;;;;AAE9D,MAAM,WAAW,0BAA0B;IACvC,IAAI,CAAC,EAAE,sBAAsB,EAAE,CAAC;IAChC,OAAO,CAAC,EAAE,KAAK,CAAC,yBAAyB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;CAC7D;AAED,qBAGa,mBAAmB;gBAEA,OAAO,EAAE,sBAAsB,EAAE,EAAE,EAC7B,UAAU,EAAE,2BAA2B,EAAE,EAAE,EACzE,QAAQ,EAAE,eAAe;WAMf,QAAQ,CAAC,EACnB,IAAI,EACJ,OAAO,GACV,EAAE,0BAA0B,GAAG,mBAAmB,CAAC,mBAAmB,CAAC;yCAb/D,mBAAmB;0CAAnB,mBAAmB;0CAAnB,mBAAmB;CAkC/B"}
@@ -1,12 +1,16 @@
1
1
  import { Compiler, ComponentFactoryResolver, ComponentRef, Injector, NgModuleRef, Type, ViewContainerRef } from '@angular/core';
2
2
  import { EntryPoint, MicrozordNgModule } from '../types/ng-module';
3
+ import * as i0 from "@angular/core";
3
4
  export declare class MicrozordNgCompilerService {
4
- private compiler;
5
- private componentFactoryResolver;
6
- private injector;
7
- private viewContainerRef;
5
+ private readonly compiler;
6
+ private readonly componentFactoryResolver;
7
+ private readonly injector;
8
+ private readonly viewContainerRef;
8
9
  constructor(compiler: Compiler, componentFactoryResolver: ComponentFactoryResolver, injector: Injector, viewContainerRef: ViewContainerRef);
9
10
  createModule<T extends EntryPoint = EntryPoint, M extends MicrozordNgModule<T> = MicrozordNgModule<T>>(Module: Type<M>, injector?: Injector): Promise<NgModuleRef<M>>;
10
11
  createEntryPoint<T extends EntryPoint = EntryPoint, M extends MicrozordNgModule<T> = MicrozordNgModule<T>>(moduleRef: NgModuleRef<M>, injector?: Injector, viewContainerRef?: ViewContainerRef): Promise<ComponentRef<T>>;
11
12
  createEntryPointFromModule<T extends EntryPoint = EntryPoint, M extends MicrozordNgModule<T> = MicrozordNgModule<T>>(Module: Type<M>, injector?: Injector, viewContainerRef?: ViewContainerRef): Promise<ComponentRef<T>>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<MicrozordNgCompilerService, [null, null, { optional: true; }, { optional: true; }]>;
14
+ static ɵprov: i0.ɵɵInjectableDeclaration<MicrozordNgCompilerService>;
12
15
  }
16
+ //# sourceMappingURL=microzord-ng-compiler.service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"microzord-ng-compiler.service.d.ts","sourceRoot":"","sources":["../../../../../libs/angular/src/lib/microzord-module/microzord-ng-compiler.service.ts"],"names":[],"mappings":"AAAA,OAAO,EACH,QAAQ,EACR,wBAAwB,EACxB,YAAY,EAEZ,QAAQ,EACR,WAAW,EAEX,IAAI,EACJ,gBAAgB,EACnB,MAAM,eAAe,CAAC;AAEvB,OAAO,EAAC,UAAU,EAAE,iBAAiB,EAAC,MAAM,oBAAoB,CAAC;;AAEjE,qBACa,0BAA0B;IAE/B,OAAO,CAAC,QAAQ,CAAC,QAAQ;IACzB,OAAO,CAAC,QAAQ,CAAC,wBAAwB;IAEzC,OAAO,CAAC,QAAQ,CAAC,QAAQ;IAEzB,OAAO,CAAC,QAAQ,CAAC,gBAAgB;gBALhB,QAAQ,EAAE,QAAQ,EAClB,wBAAwB,EAAE,wBAAwB,EAElD,QAAQ,EAAE,QAAQ,EAElB,gBAAgB,EAAE,gBAAgB;IAG1C,YAAY,CACrB,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EACvD,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,QAAQ,GAAE,QAAwB,GAAG,OAAO,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC;IAMlE,gBAAgB,CACzB,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAErD,SAAS,EAAE,WAAW,CAAC,CAAC,CAAC,EACzB,QAAQ,GAAE,QAAwB,EAClC,gBAAgB,GAAE,gBAAwC,GAC3D,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;IAgBd,0BAA0B,CACnC,CAAC,SAAS,UAAU,GAAG,UAAU,EACjC,CAAC,SAAS,iBAAiB,CAAC,CAAC,CAAC,GAAG,iBAAiB,CAAC,CAAC,CAAC,EAErD,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC,EACf,QAAQ,GAAE,QAAwB,EAClC,gBAAgB,GAAE,gBAAwC,GAC3D,OAAO,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC;yCAjDlB,0BAA0B;6CAA1B,0BAA0B;CAsDtC"}