@pepperi-addons/ngx-lib 0.4.0-angular14.13 → 0.4.0-angular14.16
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/plugin/plugin-proxy.component.mjs +3 -2
- package/esm2020/remote-loader/remote-loader.component.mjs +13 -23
- package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs +2 -1
- package/fesm2015/pepperi-addons-ngx-lib-plugin.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs +15 -25
- package/fesm2015/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs +2 -1
- package/fesm2020/pepperi-addons-ngx-lib-plugin.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs +12 -22
- package/fesm2020/pepperi-addons-ngx-lib-remote-loader.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -2,6 +2,7 @@ import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } f
|
|
|
2
2
|
import { loadRemoteModule } from '@angular-architects/module-federation';
|
|
3
3
|
import * as i0 from "@angular/core";
|
|
4
4
|
import * as i1 from "@pepperi-addons/ngx-lib";
|
|
5
|
+
// declare let __webpack_public_path__;
|
|
5
6
|
export class PepPluginProxyComponent {
|
|
6
7
|
constructor(pepAddonService) {
|
|
7
8
|
this.pepAddonService = pepAddonService;
|
|
@@ -44,8 +45,8 @@ export class PepPluginProxyComponent {
|
|
|
44
45
|
if (lastSlashIndex > 0) {
|
|
45
46
|
// const publicPathArr = this.options.remoteEntry?.split('/');
|
|
46
47
|
// const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
|
|
48
|
+
// __webpack_public_path__ = publicPath;
|
|
47
49
|
const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
|
|
48
|
-
__webpack_public_path__ = publicPath;
|
|
49
50
|
this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
50
51
|
}
|
|
51
52
|
}
|
|
@@ -94,4 +95,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
94
95
|
}], load: [{
|
|
95
96
|
type: Output
|
|
96
97
|
}] } });
|
|
97
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
98
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGx1Z2luLXByb3h5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvcGx1Z2luL3BsdWdpbi1wcm94eS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBZ0IsWUFBWSxFQUFFLEtBQUssRUFBd0IsTUFBTSxFQUFFLFNBQVMsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN4SSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBSXpFLHVDQUF1QztBQVN2QyxNQUFNLE9BQU8sdUJBQXVCO0lBaUNoQyxZQUNZLGVBQWdDO1FBQWhDLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQTlCcEMsYUFBUSxHQUFxQixJQUFJLENBQUM7UUFZMUMsMkRBQTJEO1FBQ25ELGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBVXRCLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFPcEQsQ0FBQztJQTlCTCxJQUNJLE9BQU8sQ0FBQyxLQUF1QjtRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUlELElBQ0ksVUFBVSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLGdDQUFnQyxFQUFFLENBQUM7SUFDNUMsQ0FBQztJQUNELElBQUksVUFBVTtRQUNWLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQztJQUM1QixDQUFDO0lBWU8sZ0NBQWdDO1FB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c291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBDb21wb25lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbG9hZFJlbW90ZU1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyLWFyY2hpdGVjdHMvbW9kdWxlLWZlZGVyYXRpb24nO1xuaW1wb3J0IHsgUGVwQWRkb25TZXJ2aWNlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgUGVwUGx1Z2luT3B0aW9ucyB9IGZyb20gJy4vcGx1Z2luLm1vZGVsJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuLy8gZGVjbGFyZSBsZXQgX193ZWJwYWNrX3B1YmxpY19wYXRoX187XG5cbkBDb21wb25lbnQoe1xuICAgIHN0YW5kYWxvbmU6IHRydWUsXG4gICAgc2VsZWN0b3I6ICdwZXAtcGx1Z2luLXByb3h5JyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8bmctY29udGFpbmVyICNwbGFjZUhvbGRlcj48L25nLWNvbnRhaW5lcj5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIFBlcFBsdWdpblByb3h5Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkRlc3Ryb3kge1xuICAgIEBWaWV3Q2hpbGQoJ3BsYWNlSG9sZGVyJywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIFxuICAgIHByaXZhdGUgX29wdGlvbnM6IFBlcFBsdWdpbk9wdGlvbnMgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG9wdGlvbnModmFsdWU6IFBlcFBsdWdpbk9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE1vZHVsZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcHRpb25zKCk6IFBlcFBsdWdpbk9wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICB9XG5cbiAgICAvLyBUaGlzIGlzIHRoZSBkYXRhIHBhc3NlZCBieSB0aGUgQVBJIERlc2lnbiBkb2N1bWVudGF0aW9uLlxuICAgIHByaXZhdGUgX2hvc3RPYmplY3Q6IGFueSA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBzZXQgaG9zdE9iamVjdCh2YWx1ZTogYW55KSB7IFxuICAgICAgICB0aGlzLl9ob3N0T2JqZWN0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0SG9zdENvbXBvbmVudEludG9Db21wb25lbnRSZWYoKTtcbiAgICB9XG4gICAgZ2V0IGhvc3RPYmplY3QoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3RPYmplY3Q7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGhvc3RFdmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSAgbmV3IEV2ZW50RW1pdHRlcigpO1xuXG4gICAgcHJpdmF0ZSBjb21wUmVmOiBDb21wb25lbnRSZWY8YW55PjtcbiAgICBwcml2YXRlIGhvc3RFdmVudHMkOiBTdWJzY3JpcHRpb247XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBwZXBBZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICApIHsgfVxuXG4gICAgcHJpdmF0ZSBzZXRIb3N0Q29tcG9uZW50SW50b0NvbXBvbmVudFJlZigpIHtcbiAgICAgICAgaWYgKHRoaXMuaG9zdE9iamVjdCAmJiB0aGlzLmNvbXBSZWY/Lmluc3RhbmNlKSB7XG4gICAgICAgICAgICB0aGlzLmNvbXBSZWYuaW5zdGFuY2VbJ2hvc3RPYmplY3QnXSA9IHRoaXMuaG9zdE9iamVjdDtcblxuICAgICAgICAgICAgLy8gVE9ETzogQ2hlY2sgaWYgdGhpcyBpcyBuZWVkZWQ/PyBpZiBub3QgcmVtb3ZlIHRoaXMuXG4gICAgICAgICAgICAvLyBpZiAodGhpcy5jb21wUmVmPy5pbnN0YW5jZT8ubmdPbkNoYW5nZXMpIHtcbiAgICAgICAgICAgIC8vICAgICB0aGlzLmNvbXBSZWYuaW5zdGFuY2UubmdPbkNoYW5nZXModGhpcy5ob3N0T2JqZWN0KTtcbiAgICAgICAgICAgIC8vIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZE1vZHVsZSgpIHtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyLmNsZWFyKCk7XG4gICAgXG4gICAgICAgIGRlYnVnZ2VyO1xuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMub3B0aW9ucz8uYWRkb25JZCAmJiAodGhpcy5vcHRpb25zLnR5cGUgPT09ICdtb2R1bGUnIHx8IHRoaXMub3B0aW9ucy50eXBlID09PSAnc2NyaXB0JykpIHtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgY29uc3QgbGFzdFNsYXNoSW5kZXggPSB0aGlzLm9wdGlvbnMucmVtb3RlRW50cnk/Lmxhc3RJbmRleE9mKCcvJykgfHwgLTE7XG4gICAgICAgICAgICBpZiAobGFzdFNsYXNoSW5kZXggPiAwKSB7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgcHVibGljUGF0aEFyciA9IHRoaXMub3B0aW9ucy5yZW1vdGVFbnRyeT8uc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBwdWJsaWNQYXRoID0gcHVibGljUGF0aEFyci5zbGljZSgwLCBwdWJsaWNQYXRoQXJyLmxlbmd0aCAtIDEpLmpvaW4oJy8nKSsnLyc7XG4gICAgICAgICAgICAgICAgLy8gX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBwdWJsaWNQYXRoO1xuICAgIFxuICAgICAgICAgICAgICAgIGNvbnN0IHB1YmxpY1BhdGggPSB0aGlzLm9wdGlvbnMucmVtb3RlRW50cnkuc3Vic3RyaW5nKDAsIGxhc3RTbGFzaEluZGV4ICsgMSk7XG4gICAgICAgICAgICAgICAgdGhpcy5wZXBBZGRvblNlcnZpY2Uuc2V0QWRkb25TdGF0aWNGb2xkZXIocHVibGljUGF0aCwgdGhpcy5vcHRpb25zLmFkZG9uSWQpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgY29uc3QgY29tcG9uZW50VHlwZSA9IGF3YWl0IGxvYWRSZW1vdGVNb2R1bGUodGhpcy5vcHRpb25zKS50aGVuKG0gPT4gbVt0aGlzLm9wdGlvbnMuY29tcG9uZW50TmFtZV0pO1xuICAgICAgICB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudFR5cGUpO1xuICAgICAgICBcbiAgICAgICAgaWYgKHRoaXMuY29tcFJlZikge1xuICAgICAgICAgICAgdGhpcy5zZXRIb3N0Q29tcG9uZW50SW50b0NvbXBvbmVudFJlZigpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmhvc3RFdmVudHMkID0gdGhpcy5jb21wUmVmLmluc3RhbmNlWydob3N0RXZlbnRzJ10/LnN1YnNjcmliZSgoZTogYW55KSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RXZlbnRzLmVtaXQoZSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG5cbiAgICAgICAgdGhpcy5sb2FkLmVtaXQoKTtcbiAgICB9XG5cbiAgICBuZ09uQ2hhbmdlcygpIHtcbiAgICB9XG4gICAgXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIGlmICh0aGlzLmhvc3RFdmVudHMkKSB7XG4gICAgICAgICAgICB0aGlzLmhvc3RFdmVudHMkLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cblxuICAgICAgICB0aGlzLmNvbXBSZWY/LmRlc3Ryb3koKTtcbiAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyPy5jbGVhcigpO1xuICAgIH1cbn1cblxuIl19
|
|
@@ -48,18 +48,6 @@ export class PepRemoteLoaderComponent {
|
|
|
48
48
|
const t0 = performance.now();
|
|
49
49
|
// Check if only need update
|
|
50
50
|
if (!this.options?.update) {
|
|
51
|
-
this.viewContainer?.clear();
|
|
52
|
-
// try {
|
|
53
|
-
// if (this.options.addonId) {
|
|
54
|
-
// const publicPathArr = this.options.remoteEntry.split('/');
|
|
55
|
-
// const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
|
|
56
|
-
// __webpack_public_path__ = publicPath;
|
|
57
|
-
// this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
58
|
-
// }
|
|
59
|
-
// const module = await loadRemoteModule(this.options).then(m => m);
|
|
60
|
-
// const component = module[this.options.componentName];
|
|
61
|
-
// this.compRef = this.viewContainer.createComponent(component);
|
|
62
|
-
// } catch (e) {
|
|
63
51
|
this.viewContainer?.clear();
|
|
64
52
|
// Load Component
|
|
65
53
|
if (this.options?.noModule) {
|
|
@@ -68,28 +56,30 @@ export class PepRemoteLoaderComponent {
|
|
|
68
56
|
// this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });
|
|
69
57
|
// Old code
|
|
70
58
|
const componentFactory = this.cfr.resolveComponentFactory(component);
|
|
71
|
-
this.compRef = this.viewContainer.createComponent(componentFactory,
|
|
59
|
+
this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector);
|
|
72
60
|
}
|
|
73
61
|
// Load Module
|
|
74
62
|
else {
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
63
|
+
const publicPathArr = this.options.remoteEntry.split('/');
|
|
64
|
+
const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/') + '/';
|
|
65
|
+
__webpack_public_path__ = publicPath;
|
|
66
|
+
this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
79
67
|
const module = await loadRemoteModule(this.options).then(m => m);
|
|
80
68
|
// New code
|
|
81
|
-
const moduleRef = createNgModuleRef(module, this.injector);
|
|
82
|
-
const component = module[this.options.componentName];
|
|
83
|
-
this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
|
|
69
|
+
// const moduleRef = createNgModuleRef(module, this.injector);
|
|
70
|
+
// const component = module[this.options.componentName];
|
|
71
|
+
// this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
|
|
84
72
|
// Old code
|
|
85
73
|
// const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./','')]);
|
|
86
74
|
// const moduleRef = moduleFactory.create(this.injector);
|
|
87
75
|
// const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);
|
|
88
|
-
// this.compRef = this.viewContainer.createComponent(componentFactory,
|
|
76
|
+
// this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector, null, moduleRef);
|
|
77
|
+
// New New code
|
|
78
|
+
const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./', '')], this.injector);
|
|
79
|
+
this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });
|
|
89
80
|
const t1 = performance.now();
|
|
90
81
|
console.log('remote module load performance: ' + (t1 - t0) / 1000);
|
|
91
82
|
}
|
|
92
|
-
// }
|
|
93
83
|
this.load.emit();
|
|
94
84
|
}
|
|
95
85
|
if (this.compRef) {
|
|
@@ -134,4 +124,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImpor
|
|
|
134
124
|
}], load: [{
|
|
135
125
|
type: Output
|
|
136
126
|
}] } });
|
|
137
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3JlbW90ZS1sb2FkZXIvcmVtb3RlLWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLGdCQUFnQixFQUMxQixZQUFZLEVBQUUsTUFBTSxFQUF1QyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBV3pFLE1BQU0sT0FBTyx3QkFBd0I7SUFnQ2pDLFlBQ1ksUUFBa0IsRUFDbEIsR0FBNkIsRUFDN0IsUUFBa0IsRUFDbEIsZUFBZ0M7UUFIaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWpDcEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFZaEQsMkRBQTJEO1FBQ25ELGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBVXRCLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFXcEQsQ0FBQztJQWxDTCxJQUNJLE9BQU8sQ0FBQyxLQUE2QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUlELElBQ0ksVUFBVSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxL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aWNlIH0gZnJvbSAnQHBlcHBlcmktYWRkb25zL25neC1saWInO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25DaGFuZ2VzLCBWaWV3Q2hpbGQsIFZpZXdDb250YWluZXJSZWYsIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgSW5qZWN0b3IsIE5nTW9kdWxlRmFjdG9yeSwgQ29tcGlsZXIsIEV2ZW50RW1pdHRlciwgT3V0cHV0LCBDb21wb25lbnRSZWYsIFNpbXBsZUNoYW5nZXMsIE5nWm9uZSwgY3JlYXRlTmdNb2R1bGVSZWYgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IGxvYWRSZW1vdGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci1hcmNoaXRlY3RzL21vZHVsZS1mZWRlcmF0aW9uJztcbmltcG9ydCB7IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMgfSBmcm9tICcuL3JlbW90ZS1sb2FkZXIubW9kZWwnO1xuZGVjbGFyZSBsZXQgX193ZWJwYWNrX3B1YmxpY19wYXRoX187XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLXJlbW90ZS1sb2FkZXInLFxuICAgIHRlbXBsYXRlOiBgXG4gICAgICAgIDwhLS0gPG1hdC1zcGlubmVyICpuZ0lmPVwic2hvd1NwaW5uZXI7IGVsc2UgcGxhY2VIb2xkZXJcIj48L21hdC1zcGlubmVyPiAtLT5cbiAgICAgICAgPG5nLXRlbXBsYXRlICNwbGFjZUhvbGRlcj48L25nLXRlbXBsYXRlPlxuICAgIGBcbn0pXG5leHBvcnQgY2xhc3MgUGVwUmVtb3RlTG9hZGVyQ29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgICBAVmlld0NoaWxkKCdwbGFjZUhvbGRlcicsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHZpZXdDb250YWluZXI6IFZpZXdDb250YWluZXJSZWY7XG4gICAgXG4gICAgcHJpdmF0ZSBfb3B0aW9uczogUGVwUmVtb3RlTG9hZGVyT3B0aW9ucyA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBzZXQgb3B0aW9ucyh2YWx1ZTogUGVwUmVtb3RlTG9hZGVyT3B0aW9ucykge1xuICAgICAgICB0aGlzLl9vcHRpb25zID0gdmFsdWU7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgICAgdGhpcy5sb2FkTW9kdWxlKCk7XG4gICAgICAgIH1cbiAgICB9XG4gICAgZ2V0IG9wdGlvbnMoKTogUGVwUmVtb3RlTG9hZGVyT3B0aW9ucyB7XG4gICAgICAgIHJldHVybiB0aGlzLl9vcHRpb25zO1xuICAgIH1cbiAgICBcbiAgICAvLyBUaGlzIGlzIHRoZSBkYXRhIHBhc3NlZCBieSB0aGUgQVBJIERlc2lnbiBkb2N1bWVudGF0aW9uLlxuICAgIHByaXZhdGUgX2hvc3RPYmplY3Q6IGFueSA9IG51bGw7XG4gICAgQElucHV0KClcbiAgICBzZXQgaG9zdE9iamVjdCh2YWx1ZTogYW55KSB7IFxuICAgICAgICB0aGlzLl9ob3N0T2JqZWN0ID0gdmFsdWU7XG4gICAgICAgIHRoaXMuc2V0SG9zdENvbXBvbmVudEludG9Db21wb25lbnRSZWYoKTtcbiAgICB9XG4gICAgZ2V0IGhvc3RPYmplY3QoKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2hvc3RPYmplY3Q7XG4gICAgfVxuXG4gICAgQE91dHB1dCgpIGhvc3RFdmVudHM6IEV2ZW50RW1pdHRlcjxhbnk+ID0gIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICBAT3V0cHV0KCkgbG9hZDogRXZlbnRFbWl0dGVyPGFueT4gPSAgbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgIC8vIHNob3dTcGlubmVyID0gdHJ1ZTtcbiAgICBcbiAgICBwcml2YXRlIGNvbXBSZWY6IENvbXBvbmVudFJlZjxhbnk+O1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgICAgICBwcml2YXRlIGNmcjogQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICAgICAgICBwcml2YXRlIGNvbXBpbGVyOiBDb21waWxlcixcbiAgICAgICAgcHJpdmF0ZSBwZXBBZGRvblNlcnZpY2U6IFBlcEFkZG9uU2VydmljZSxcbiAgICAgICAgLy8gcHJpdmF0ZSB6b25lOiBOZ1pvbmUsXG4gICAgKSB7IH1cblxuICAgIHByaXZhdGUgc2V0SG9zdENvbXBvbmVudEludG9Db21wb25lbnRSZWYoKSB7XG4gICAgICAgIGlmICh0aGlzLmhvc3RPYmplY3QgJiYgdGhpcy5jb21wUmVmPy5pbnN0YW5jZSkge1xuICAgICAgICAgICAgdGhpcy5jb21wUmVmLmluc3RhbmNlLmhvc3RPYmplY3QgPSB0aGlzLmhvc3RPYmplY3Q7XG5cbiAgICAgICAgICAgIC8vIFRPRE86IENoZWNrIGlmIHRoaXMgaXMgbmVlZGVkPz8gaWYgbm90IHJlbW92ZSB0aGlzLlxuICAgICAgICAgICAgaWYgKHRoaXMuY29tcFJlZj8uaW5zdGFuY2U/Lm5nT25DaGFuZ2VzKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wUmVmLmluc3RhbmNlLm5nT25DaGFuZ2VzKHRoaXMuaG9zdE9iamVjdCk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBhc3luYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKSB7XG4gICAgICAgIC8vIGlmIChjaGFuZ2VzPy5vcHRpb25zPy5jdXJyZW50VmFsdWUpIHtcbiAgICAgICAgLy8gICAgIHRoaXMubG9hZE1vZHVsZShjaGFuZ2VzPy5vcHRpb25zPy5jdXJyZW50VmFsdWUpO1xuICAgICAgICAvLyB9XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBhc3luYyBsb2FkTW9kdWxlKCkge1xuICAgICAgICBjb25zdCB0MCA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICBcbiAgICAgICAgLy8gQ2hlY2sgaWYgb25seSBuZWVkIHVwZGF0ZVxuICAgICAgICBpZiAoIXRoaXMub3B0aW9ucz8udXBkYXRlKSB7XG4gICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXI/LmNsZWFyKCk7XG4gICAgICAgICAgICBcbiAgICAgICAgICAgIC8vIHRyeSB7XG4gICAgICAgICAgICAgICAgLy8gaWYgKHRoaXMub3B0aW9ucy5hZGRvbklkKSB7XG4gICAgICAgICAgICAgICAgLy8gICAgIGNvbnN0IHB1YmxpY1BhdGhBcnIgPSB0aGlzLm9wdGlvbnMucmVtb3RlRW50cnkuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICAvLyAgICAgY29uc3QgcHVibGljUGF0aCA9IHB1YmxpY1BhdGhBcnIuc2xpY2UoMCwgcHVibGljUGF0aEFyci5sZW5ndGggLSAxKS5qb2luKCcvJykrJy8nO1xuICAgICAgICAgICAgICAgIC8vICAgICBfX3dlYnBhY2tfcHVibGljX3BhdGhfXyA9IHB1YmxpY1BhdGg7XG4gICAgICAgICAgICAgICAgLy8gICAgIHRoaXMucGVwQWRkb25TZXJ2aWNlLnNldEFkZG9uU3RhdGljRm9sZGVyKHB1YmxpY1BhdGgsIHRoaXMub3B0aW9ucy5hZGRvbklkKTtcbiAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgbW9kdWxlID0gIGF3YWl0IGxvYWRSZW1vdGVNb2R1bGUodGhpcy5vcHRpb25zKS50aGVuKG0gPT4gbSk7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgY29tcG9uZW50ID0gbW9kdWxlW3RoaXMub3B0aW9ucy5jb21wb25lbnROYW1lXTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudCk7XG5cbiAgICAgICAgICAgIC8vIH0gY2F0Y2ggKGUpIHtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICB0aGlzLnZpZXdDb250YWluZXI/LmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBDb21wb25lbnRcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5vcHRpb25zPy5ub01vZHVsZSkge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBhd2FpdCBsb2FkUmVtb3RlTW9kdWxlKHRoaXMub3B0aW9ucykudGhlbihtID0+IG1bdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIE5ldyBjb2RlXG4gICAgICAgICAgICAgICAgICAgIC8vIHRoaXMuY29tcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pO1xuICAgIFxuICAgICAgICAgICAgICAgICAgICAvLyBPbGQgY29kZVxuICAgICAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb21wUmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5LCBudWxsLCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgLy8gTG9hZCBNb2R1bGVcbiAgICAgICAgICAgICAgICBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgcHVibGljUGF0aEFyciA9IHRoaXMub3B0aW9ucy5yZW1vdGVFbnRyeS5zcGxpdCgnLycpO1xuICAgICAgICAgICAgICAgICAgICAvLyBjb25zdCBwdWJsaWNQYXRoID0gcHVibGljUGF0aEFyci5zbGljZSgwLCBwdWJsaWNQYXRoQXJyLmxlbmd0aCAtIDEpLmpvaW4oJy8nKSsnLyc7XG4gICAgICAgICAgICAgICAgICAgIC8vIF9fd2VicGFja19wdWJsaWNfcGF0aF9fID0gcHVibGljUGF0aDtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5wZXBBZGRvblNlcnZpY2Uuc2V0QWRkb25TdGF0aWNGb2xkZXIocHVibGljUGF0aCwgdGhpcy5vcHRpb25zLmFkZG9uSWQpO1xuICAgIFxuICAgICAgICAgICAgICAgICAgICBjb25zdCBtb2R1bGUgPSAgYXdhaXQgbG9hZFJlbW90ZU1vZHVsZSh0aGlzLm9wdGlvbnMpLnRoZW4obSA9PiBtKTtcbiAgICAgICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgICAgIC8vIE5ldyBjb2RlXG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZVJlZiA9IGNyZWF0ZU5nTW9kdWxlUmVmKG1vZHVsZSwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IGNvbXBvbmVudCA9IG1vZHVsZVt0aGlzLm9wdGlvbnMuY29tcG9uZW50TmFtZV07XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29tcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yLCBuZ01vZHVsZVJlZjogbW9kdWxlUmVmIH0pO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gT2xkIGNvZGVcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgbW9kdWxlRmFjdG9yeTogTmdNb2R1bGVGYWN0b3J5PGFueT4gPSB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVTeW5jKG1vZHVsZVt0aGlzLm9wdGlvbnMuZXhwb3NlZE1vZHVsZS5yZXBsYWNlKCcuLycsJycpXSk7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnN0IG1vZHVsZVJlZiA9IG1vZHVsZUZhY3RvcnkuY3JlYXRlKHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAgICAgLy8gY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IG1vZHVsZVJlZj8uY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPy5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShtb2R1bGVbdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdKTtcbiAgICAgICAgICAgICAgICAgICAgLy8gdGhpcy5jb21wUmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChjb21wb25lbnRGYWN0b3J5LCBudWxsLCB0aGlzLmluamVjdG9yLCBudWxsLCBtb2R1bGVSZWYpO1xuICAgIFxuICAgICAgICAgICAgICAgICAgICBjb25zdCB0MSA9IHBlcmZvcm1hbmNlLm5vdygpO1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVtb3RlIG1vZHVsZSBsb2FkIHBlcmZvcm1hbmNlOiAnICsgKHQxLXQwKS8xMDAwKTtcbiAgICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIH1cblxuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmxvYWQuZW1pdCgpO1xuICAgICAgICB9XG5cbiAgICAgICAgaWYgKHRoaXMuY29tcFJlZikge1xuICAgICAgICAgICAgdGhpcy5zZXRIb3N0Q29tcG9uZW50SW50b0NvbXBvbmVudFJlZigpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICB0aGlzLmNvbXBSZWY/Lmluc3RhbmNlWydob3N0RXZlbnRzJ10/LnN1YnNjcmliZShlID0+IHtcbiAgICAgICAgICAgICAgICAvLyBzd2l0Y2goZS5hY3Rpb24pe1xuICAgICAgICAgICAgICAgIC8vICAgICBjYXNlICdhZGRvbi1sb2FkZWQnOlxuICAgICAgICAgICAgICAgIC8vICAgICAgICAgdGhpcy5zaG93U3Bpbm5lciA9IGZhbHNlO1xuICAgICAgICAgICAgICAgIC8vIH1cbiAgICAgICAgICAgICAgICB0aGlzLmhvc3RFdmVudHMuZW1pdChlKVxuICAgICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5jb21wUmVmPy5kZXN0cm95KCk7XG4gICAgICAgIHRoaXMudmlld0NvbnRhaW5lcj8uY2xlYXIoKTtcbiAgICB9XG59XG5cbiJdfQ==
|
|
127
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVtb3RlLWxvYWRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtbGliL3JlbW90ZS1sb2FkZXIvcmVtb3RlLWxvYWRlci5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsU0FBUyxFQUFFLGdCQUFnQixFQUMxQixZQUFZLEVBQUUsTUFBTSxFQUF1QyxpQkFBaUIsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzSSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQzs7O0FBV3pFLE1BQU0sT0FBTyx3QkFBd0I7SUFnQ2pDLFlBQ1ksUUFBa0IsRUFDbEIsR0FBNkIsRUFDN0IsUUFBa0IsRUFDbEIsZUFBZ0M7UUFIaEMsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUNsQixRQUFHLEdBQUgsR0FBRyxDQUEwQjtRQUM3QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBQ2xCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQWpDcEMsYUFBUSxHQUEyQixJQUFJLENBQUM7UUFZaEQsMkRBQTJEO1FBQ25ELGdCQUFXLEdBQVEsSUFBSSxDQUFDO1FBVXRCLGVBQVUsR0FBdUIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNwRCxTQUFJLEdBQXVCLElBQUksWUFBWSxFQUFFLENBQUM7SUFXcEQsQ0FBQztJQWxDTCxJQUNJLE9BQU8sQ0FBQyxLQUE2QjtRQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLEtBQUssRUFBRTtZQUNQLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztTQUNyQjtJQUNMLENBQUM7SUFDRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUlELElBQ0ksVUFBVSxDQUFDLEtBQVU7UUFDckIsSUFBSSxDQUFDLFdBQVcsR0FBRyxL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QWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJOUQsT0FBTztzQkFEVixLQUFLO2dCQWNGLFVBQVU7c0JBRGIsS0FBSztnQkFTSSxVQUFVO3NCQUFuQixNQUFNO2dCQUNHLElBQUk7c0JBQWIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBlcEFkZG9uU2VydmljZSB9IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uQ2hhbmdlcywgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmLCBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gIEluamVjdG9yLCBOZ01vZHVsZUZhY3RvcnksIENvbXBpbGVyLCBFdmVudEVtaXR0ZXIsIE91dHB1dCwgQ29tcG9uZW50UmVmLCBTaW1wbGVDaGFuZ2VzLCBOZ1pvbmUsIGNyZWF0ZU5nTW9kdWxlUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBsb2FkUmVtb3RlTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXItYXJjaGl0ZWN0cy9tb2R1bGUtZmVkZXJhdGlvbic7XG5pbXBvcnQgeyBQZXBSZW1vdGVMb2FkZXJPcHRpb25zIH0gZnJvbSAnLi9yZW1vdGUtbG9hZGVyLm1vZGVsJztcbmRlY2xhcmUgbGV0IF9fd2VicGFja19wdWJsaWNfcGF0aF9fO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3BlcC1yZW1vdGUtbG9hZGVyJyxcbiAgICB0ZW1wbGF0ZTogYFxuICAgICAgICA8IS0tIDxtYXQtc3Bpbm5lciAqbmdJZj1cInNob3dTcGlubmVyOyBlbHNlIHBsYWNlSG9sZGVyXCI+PC9tYXQtc3Bpbm5lcj4gLS0+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjcGxhY2VIb2xkZXI+PC9uZy10ZW1wbGF0ZT5cbiAgICBgXG59KVxuZXhwb3J0IGNsYXNzIFBlcFJlbW90ZUxvYWRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gICAgQFZpZXdDaGlsZCgncGxhY2VIb2xkZXInLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KSB2aWV3Q29udGFpbmVyOiBWaWV3Q29udGFpbmVyUmVmO1xuICAgIFxuICAgIHByaXZhdGUgX29wdGlvbnM6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IG9wdGlvbnModmFsdWU6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMpIHtcbiAgICAgICAgdGhpcy5fb3B0aW9ucyA9IHZhbHVlO1xuICAgICAgICBpZiAodmFsdWUpIHtcbiAgICAgICAgICAgIHRoaXMubG9hZE1vZHVsZSgpO1xuICAgICAgICB9XG4gICAgfVxuICAgIGdldCBvcHRpb25zKCk6IFBlcFJlbW90ZUxvYWRlck9wdGlvbnMge1xuICAgICAgICByZXR1cm4gdGhpcy5fb3B0aW9ucztcbiAgICB9XG4gICAgXG4gICAgLy8gVGhpcyBpcyB0aGUgZGF0YSBwYXNzZWQgYnkgdGhlIEFQSSBEZXNpZ24gZG9jdW1lbnRhdGlvbi5cbiAgICBwcml2YXRlIF9ob3N0T2JqZWN0OiBhbnkgPSBudWxsO1xuICAgIEBJbnB1dCgpXG4gICAgc2V0IGhvc3RPYmplY3QodmFsdWU6IGFueSkgeyBcbiAgICAgICAgdGhpcy5faG9zdE9iamVjdCA9IHZhbHVlO1xuICAgICAgICB0aGlzLnNldEhvc3RDb21wb25lbnRJbnRvQ29tcG9uZW50UmVmKCk7XG4gICAgfVxuICAgIGdldCBob3N0T2JqZWN0KCk6IGFueSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9ob3N0T2JqZWN0O1xuICAgIH1cblxuICAgIEBPdXRwdXQoKSBob3N0RXZlbnRzOiBFdmVudEVtaXR0ZXI8YW55PiA9ICBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQE91dHB1dCgpIGxvYWQ6IEV2ZW50RW1pdHRlcjxhbnk+ID0gIG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAvLyBzaG93U3Bpbm5lciA9IHRydWU7XG4gICAgXG4gICAgcHJpdmF0ZSBjb21wUmVmOiBDb21wb25lbnRSZWY8YW55PjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGluamVjdG9yOiBJbmplY3RvcixcbiAgICAgICAgcHJpdmF0ZSBjZnI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlcixcbiAgICAgICAgcHJpdmF0ZSBjb21waWxlcjogQ29tcGlsZXIsXG4gICAgICAgIHByaXZhdGUgcGVwQWRkb25TZXJ2aWNlOiBQZXBBZGRvblNlcnZpY2UsXG4gICAgICAgIC8vIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgICkgeyB9XG5cbiAgICBwcml2YXRlIHNldEhvc3RDb21wb25lbnRJbnRvQ29tcG9uZW50UmVmKCkge1xuICAgICAgICBpZiAodGhpcy5ob3N0T2JqZWN0ICYmIHRoaXMuY29tcFJlZj8uaW5zdGFuY2UpIHtcbiAgICAgICAgICAgIHRoaXMuY29tcFJlZi5pbnN0YW5jZS5ob3N0T2JqZWN0ID0gdGhpcy5ob3N0T2JqZWN0O1xuXG4gICAgICAgICAgICAvLyBUT0RPOiBDaGVjayBpZiB0aGlzIGlzIG5lZWRlZD8/IGlmIG5vdCByZW1vdmUgdGhpcy5cbiAgICAgICAgICAgIGlmICh0aGlzLmNvbXBSZWY/Lmluc3RhbmNlPy5uZ09uQ2hhbmdlcykge1xuICAgICAgICAgICAgICAgIHRoaXMuY29tcFJlZi5pbnN0YW5jZS5uZ09uQ2hhbmdlcyh0aGlzLmhvc3RPYmplY3QpO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgfVxuXG4gICAgYXN5bmMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgICAgICAvLyBpZiAoY2hhbmdlcz8ub3B0aW9ucz8uY3VycmVudFZhbHVlKSB7XG4gICAgICAgIC8vICAgICB0aGlzLmxvYWRNb2R1bGUoY2hhbmdlcz8ub3B0aW9ucz8uY3VycmVudFZhbHVlKTtcbiAgICAgICAgLy8gfVxuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgbG9hZE1vZHVsZSgpIHtcbiAgICAgICAgY29uc3QgdDAgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgXG4gICAgICAgIC8vIENoZWNrIGlmIG9ubHkgbmVlZCB1cGRhdGVcbiAgICAgICAgaWYgKCF0aGlzLm9wdGlvbnM/LnVwZGF0ZSkge1xuICAgICAgICAgICAgdGhpcy52aWV3Q29udGFpbmVyPy5jbGVhcigpO1xuICAgICAgICAgICAgXG4gICAgICAgICAgICAvLyBMb2FkIENvbXBvbmVudFxuICAgICAgICAgICAgaWYgKHRoaXMub3B0aW9ucz8ubm9Nb2R1bGUpIHtcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnQgPSBhd2FpdCBsb2FkUmVtb3RlTW9kdWxlKHRoaXMub3B0aW9ucykudGhlbihtID0+IG1bdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdKTtcbiAgICAgICAgICAgICAgICBcbiAgICAgICAgICAgICAgICAvLyBOZXcgY29kZVxuICAgICAgICAgICAgICAgIC8vIHRoaXMuY29tcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yIH0pO1xuXG4gICAgICAgICAgICAgICAgLy8gT2xkIGNvZGVcbiAgICAgICAgICAgICAgICBjb25zdCBjb21wb25lbnRGYWN0b3J5ID0gdGhpcy5jZnIucmVzb2x2ZUNvbXBvbmVudEZhY3RvcnkoY29tcG9uZW50KTtcbiAgICAgICAgICAgICAgICB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIDAsIHRoaXMuaW5qZWN0b3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgLy8gTG9hZCBNb2R1bGVcbiAgICAgICAgICAgIGVsc2Uge1xuICAgICAgICAgICAgICAgIGNvbnN0IHB1YmxpY1BhdGhBcnIgPSB0aGlzLm9wdGlvbnMucmVtb3RlRW50cnkuc3BsaXQoJy8nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwdWJsaWNQYXRoID0gcHVibGljUGF0aEFyci5zbGljZSgwLCBwdWJsaWNQYXRoQXJyLmxlbmd0aCAtIDEpLmpvaW4oJy8nKSsnLyc7XG4gICAgICAgICAgICAgICAgX193ZWJwYWNrX3B1YmxpY19wYXRoX18gPSBwdWJsaWNQYXRoO1xuICAgICAgICAgICAgICAgIHRoaXMucGVwQWRkb25TZXJ2aWNlLnNldEFkZG9uU3RhdGljRm9sZGVyKHB1YmxpY1BhdGgsIHRoaXMub3B0aW9ucy5hZGRvbklkKTtcblxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZSA9ICBhd2FpdCBsb2FkUmVtb3RlTW9kdWxlKHRoaXMub3B0aW9ucykudGhlbihtID0+IG0pO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIE5ldyBjb2RlXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgbW9kdWxlUmVmID0gY3JlYXRlTmdNb2R1bGVSZWYobW9kdWxlLCB0aGlzLmluamVjdG9yKTtcbiAgICAgICAgICAgICAgICAvLyBjb25zdCBjb21wb25lbnQgPSBtb2R1bGVbdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdO1xuICAgICAgICAgICAgICAgIC8vIHRoaXMuY29tcFJlZiA9IHRoaXMudmlld0NvbnRhaW5lci5jcmVhdGVDb21wb25lbnQoY29tcG9uZW50LCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yLCBuZ01vZHVsZVJlZjogbW9kdWxlUmVmIH0pO1xuICAgICAgICAgICAgICAgIFxuICAgICAgICAgICAgICAgIC8vIE9sZCBjb2RlXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgbW9kdWxlRmFjdG9yeTogTmdNb2R1bGVGYWN0b3J5PGFueT4gPSB0aGlzLmNvbXBpbGVyLmNvbXBpbGVNb2R1bGVTeW5jKG1vZHVsZVt0aGlzLm9wdGlvbnMuZXhwb3NlZE1vZHVsZS5yZXBsYWNlKCcuLycsJycpXSk7XG4gICAgICAgICAgICAgICAgLy8gY29uc3QgbW9kdWxlUmVmID0gbW9kdWxlRmFjdG9yeS5jcmVhdGUodGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgXG4gICAgICAgICAgICAgICAgLy8gY29uc3QgY29tcG9uZW50RmFjdG9yeSA9IG1vZHVsZVJlZj8uY29tcG9uZW50RmFjdG9yeVJlc29sdmVyPy5yZXNvbHZlQ29tcG9uZW50RmFjdG9yeShtb2R1bGVbdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdKTtcbiAgICAgICAgICAgICAgICAvLyB0aGlzLmNvbXBSZWYgPSB0aGlzLnZpZXdDb250YWluZXIuY3JlYXRlQ29tcG9uZW50KGNvbXBvbmVudEZhY3RvcnksIDAsIHRoaXMuaW5qZWN0b3IsIG51bGwsIG1vZHVsZVJlZik7XG5cblxuICAgICAgICAgICAgICAgIC8vIE5ldyBOZXcgY29kZVxuICAgICAgICAgICAgICAgIGNvbnN0IG1vZHVsZVJlZiA9IGNyZWF0ZU5nTW9kdWxlUmVmKG1vZHVsZVt0aGlzLm9wdGlvbnMuZXhwb3NlZE1vZHVsZS5yZXBsYWNlKCcuLycsJycpXSwgdGhpcy5pbmplY3Rvcik7XG4gICAgICAgICAgICAgICAgdGhpcy5jb21wUmVmID0gdGhpcy52aWV3Q29udGFpbmVyLmNyZWF0ZUNvbXBvbmVudChtb2R1bGVbdGhpcy5vcHRpb25zLmNvbXBvbmVudE5hbWVdLCB7IGluamVjdG9yOiB0aGlzLmluamVjdG9yLCBuZ01vZHVsZVJlZjogbW9kdWxlUmVmIH0pO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgdDEgPSBwZXJmb3JtYW5jZS5ub3coKTtcbiAgICAgICAgICAgICAgICBjb25zb2xlLmxvZygncmVtb3RlIG1vZHVsZSBsb2FkIHBlcmZvcm1hbmNlOiAnICsgKHQxLXQwKS8xMDAwKTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgdGhpcy5sb2FkLmVtaXQoKTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmICh0aGlzLmNvbXBSZWYpIHtcbiAgICAgICAgICAgIHRoaXMuc2V0SG9zdENvbXBvbmVudEludG9Db21wb25lbnRSZWYoKTtcbiAgICAgICAgICAgIFxuICAgICAgICAgICAgdGhpcy5jb21wUmVmPy5pbnN0YW5jZVsnaG9zdEV2ZW50cyddPy5zdWJzY3JpYmUoZSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gc3dpdGNoKGUuYWN0aW9uKXtcbiAgICAgICAgICAgICAgICAvLyAgICAgY2FzZSAnYWRkb24tbG9hZGVkJzpcbiAgICAgICAgICAgICAgICAvLyAgICAgICAgIHRoaXMuc2hvd1NwaW5uZXIgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAvLyB9XG4gICAgICAgICAgICAgICAgdGhpcy5ob3N0RXZlbnRzLmVtaXQoZSlcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuY29tcFJlZj8uZGVzdHJveSgpO1xuICAgICAgICB0aGlzLnZpZXdDb250YWluZXI/LmNsZWFyKCk7XG4gICAgfVxufVxuXG4iXX0=
|
|
@@ -4,6 +4,7 @@ import { EventEmitter, ViewContainerRef, Component, ViewChild, Input, Output } f
|
|
|
4
4
|
import { loadRemoteModule } from '@angular-architects/module-federation';
|
|
5
5
|
import * as i1 from '@pepperi-addons/ngx-lib';
|
|
6
6
|
|
|
7
|
+
// declare let __webpack_public_path__;
|
|
7
8
|
class PepPluginProxyComponent {
|
|
8
9
|
constructor(pepAddonService) {
|
|
9
10
|
this.pepAddonService = pepAddonService;
|
|
@@ -49,8 +50,8 @@ class PepPluginProxyComponent {
|
|
|
49
50
|
if (lastSlashIndex > 0) {
|
|
50
51
|
// const publicPathArr = this.options.remoteEntry?.split('/');
|
|
51
52
|
// const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
|
|
53
|
+
// __webpack_public_path__ = publicPath;
|
|
52
54
|
const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
|
|
53
|
-
__webpack_public_path__ = publicPath;
|
|
54
55
|
this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
55
56
|
}
|
|
56
57
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-plugin.mjs","sources":["../../../projects/ngx-lib/plugin/plugin-proxy.component.ts","../../../projects/ngx-lib/plugin/public-api.ts","../../../projects/ngx-lib/plugin/pepperi-addons-ngx-lib-plugin.ts"],"sourcesContent":["import { Component, ComponentRef, EventEmitter, Input, OnChanges, OnDestroy, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { PepPluginOptions } from './plugin.model';\nimport { Subscription } from 'rxjs';\
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-plugin.mjs","sources":["../../../projects/ngx-lib/plugin/plugin-proxy.component.ts","../../../projects/ngx-lib/plugin/public-api.ts","../../../projects/ngx-lib/plugin/pepperi-addons-ngx-lib-plugin.ts"],"sourcesContent":["import { Component, ComponentRef, EventEmitter, Input, OnChanges, OnDestroy, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { PepPluginOptions } from './plugin.model';\nimport { Subscription } from 'rxjs';\n// declare let __webpack_public_path__;\n\n@Component({\n standalone: true,\n selector: 'pep-plugin-proxy',\n template: `\n <ng-container #placeHolder></ng-container>\n `\n})\nexport class PepPluginProxyComponent implements OnChanges, OnDestroy {\n @ViewChild('placeHolder', { read: ViewContainerRef, static: true })\n viewContainer: ViewContainerRef;\n \n private _options: PepPluginOptions = null;\n @Input()\n set options(value: PepPluginOptions) {\n this._options = value;\n if (value) {\n this.loadModule();\n }\n }\n get options(): PepPluginOptions {\n return this._options;\n }\n\n // This is the data passed by the API Design documentation.\n private _hostObject: any = null;\n @Input()\n set hostObject(value: any) { \n this._hostObject = value;\n this.setHostComponentIntoComponentRef();\n }\n get hostObject(): any {\n return this._hostObject;\n }\n\n @Output() hostEvents: EventEmitter<any> = new EventEmitter();\n @Output() load: EventEmitter<any> = new EventEmitter();\n\n private compRef: ComponentRef<any>;\n private hostEvents$: Subscription;\n\n constructor(\n private pepAddonService: PepAddonService,\n ) { }\n\n private setHostComponentIntoComponentRef() {\n if (this.hostObject && this.compRef?.instance) {\n this.compRef.instance['hostObject'] = this.hostObject;\n\n // TODO: Check if this is needed?? if not remove this.\n // if (this.compRef?.instance?.ngOnChanges) {\n // this.compRef.instance.ngOnChanges(this.hostObject);\n // }\n }\n }\n\n private async loadModule() {\n this.viewContainer.clear();\n \n debugger;\n \n if (this.options?.addonId && (this.options.type === 'module' || this.options.type === 'script')) {\n \n const lastSlashIndex = this.options.remoteEntry?.lastIndexOf('/') || -1;\n if (lastSlashIndex > 0) {\n // const publicPathArr = this.options.remoteEntry?.split('/');\n // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n // __webpack_public_path__ = publicPath;\n \n const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);\n this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n }\n }\n\n const componentType = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);\n this.compRef = this.viewContainer.createComponent(componentType);\n \n if (this.compRef) {\n this.setHostComponentIntoComponentRef();\n \n this.hostEvents$ = this.compRef.instance['hostEvents']?.subscribe((e: any) => {\n this.hostEvents.emit(e)\n });\n }\n\n this.load.emit();\n }\n\n ngOnChanges() {\n }\n \n ngOnDestroy(): void {\n if (this.hostEvents$) {\n this.hostEvents$.unsubscribe();\n }\n\n this.compRef?.destroy();\n this.viewContainer?.clear();\n }\n}\n\n","/*\r\n * Public API Surface of ngx-lib/plugin\r\n */\r\nexport * from './plugin-proxy.component';\r\nexport * from './plugin.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -113,58 +113,48 @@ class PepRemoteLoaderComponent {
|
|
|
113
113
|
});
|
|
114
114
|
}
|
|
115
115
|
loadModule() {
|
|
116
|
-
var _a, _b, _c, _d, _e
|
|
116
|
+
var _a, _b, _c, _d, _e;
|
|
117
117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
118
118
|
const t0 = performance.now();
|
|
119
119
|
// Check if only need update
|
|
120
120
|
if (!((_a = this.options) === null || _a === void 0 ? void 0 : _a.update)) {
|
|
121
121
|
(_b = this.viewContainer) === null || _b === void 0 ? void 0 : _b.clear();
|
|
122
|
-
// try {
|
|
123
|
-
// if (this.options.addonId) {
|
|
124
|
-
// const publicPathArr = this.options.remoteEntry.split('/');
|
|
125
|
-
// const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
|
|
126
|
-
// __webpack_public_path__ = publicPath;
|
|
127
|
-
// this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
128
|
-
// }
|
|
129
|
-
// const module = await loadRemoteModule(this.options).then(m => m);
|
|
130
|
-
// const component = module[this.options.componentName];
|
|
131
|
-
// this.compRef = this.viewContainer.createComponent(component);
|
|
132
|
-
// } catch (e) {
|
|
133
|
-
(_c = this.viewContainer) === null || _c === void 0 ? void 0 : _c.clear();
|
|
134
122
|
// Load Component
|
|
135
|
-
if ((
|
|
123
|
+
if ((_c = this.options) === null || _c === void 0 ? void 0 : _c.noModule) {
|
|
136
124
|
const component = yield loadRemoteModule(this.options).then(m => m[this.options.componentName]);
|
|
137
125
|
// New code
|
|
138
126
|
// this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });
|
|
139
127
|
// Old code
|
|
140
128
|
const componentFactory = this.cfr.resolveComponentFactory(component);
|
|
141
|
-
this.compRef = this.viewContainer.createComponent(componentFactory,
|
|
129
|
+
this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector);
|
|
142
130
|
}
|
|
143
131
|
// Load Module
|
|
144
132
|
else {
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
133
|
+
const publicPathArr = this.options.remoteEntry.split('/');
|
|
134
|
+
const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/') + '/';
|
|
135
|
+
__webpack_public_path__ = publicPath;
|
|
136
|
+
this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
149
137
|
const module = yield loadRemoteModule(this.options).then(m => m);
|
|
150
138
|
// New code
|
|
151
|
-
const moduleRef = createNgModuleRef(module, this.injector);
|
|
152
|
-
const component = module[this.options.componentName];
|
|
153
|
-
this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
|
|
139
|
+
// const moduleRef = createNgModuleRef(module, this.injector);
|
|
140
|
+
// const component = module[this.options.componentName];
|
|
141
|
+
// this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
|
|
154
142
|
// Old code
|
|
155
143
|
// const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./','')]);
|
|
156
144
|
// const moduleRef = moduleFactory.create(this.injector);
|
|
157
145
|
// const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);
|
|
158
|
-
// this.compRef = this.viewContainer.createComponent(componentFactory,
|
|
146
|
+
// this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector, null, moduleRef);
|
|
147
|
+
// New New code
|
|
148
|
+
const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./', '')], this.injector);
|
|
149
|
+
this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });
|
|
159
150
|
const t1 = performance.now();
|
|
160
151
|
console.log('remote module load performance: ' + (t1 - t0) / 1000);
|
|
161
152
|
}
|
|
162
|
-
// }
|
|
163
153
|
this.load.emit();
|
|
164
154
|
}
|
|
165
155
|
if (this.compRef) {
|
|
166
156
|
this.setHostComponentIntoComponentRef();
|
|
167
|
-
(
|
|
157
|
+
(_e = (_d = this.compRef) === null || _d === void 0 ? void 0 : _d.instance['hostEvents']) === null || _e === void 0 ? void 0 : _e.subscribe(e => {
|
|
168
158
|
// switch(e.action){
|
|
169
159
|
// case 'addon-loaded':
|
|
170
160
|
// this.showSpinner = false;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-remote-loader.mjs","sources":["../../../projects/ngx-lib/remote-loader/remote-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.html","../../../projects/ngx-lib/remote-loader/addon-block-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.module.ts","../../../projects/ngx-lib/remote-loader/public-api.ts","../../../projects/ngx-lib/remote-loader/pepperi-addons-ngx-lib-remote-loader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { PepAddonService, PepHttpService, PepSessionService} from '@pepperi-addons/ngx-lib';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { IBlockLoaderData } from './remote-loader.model';\nimport { ActivatedRoute } from '@angular/router';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepRemoteLoaderService {\n \n constructor(\n private httpService: PepHttpService,\n private sessionService: PepSessionService,\n private addonService: PepAddonService,\n private route: ActivatedRoute,\n ) {\n //\n }\n\n getRemoteLoaderOptions(blockLoaderData: IBlockLoaderData, remoteEntry = ''): PepRemoteLoaderOptions {\n return {\n addonId: blockLoaderData.relation.AddonUUID,\n remoteEntry: remoteEntry.length > 0 ? remoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,\n remoteName: blockLoaderData.relation.AddonRelativeURL,\n exposedModule: `./${blockLoaderData.relation.ModuleName}`,\n componentName: blockLoaderData.relation.ComponentName, \n }\n }\n\n private getAddonBaseUrl(addonUUID: string, fileName = 'api'): string {\n // For devServer run server on localhost.\n const devServer = this.route.snapshot.queryParamMap.get('devServer') === 'true';\n if(devServer) {\n return `http://localhost:4500/${fileName}`;\n } else {\n const baseUrl = this.sessionService.getPapiBaseUrl();\n return `${baseUrl}/addons/api/${addonUUID}/${fileName}`;\n }\n }\n \n async getBlockRemoteLoaderOptions(name: string, blockType: PepBlockDataType = 'AddonBlock', remoteEntry = ''): Promise<PepRemoteLoaderOptions> {\n return new Promise((resolve, reject) => {\n const pagesAddonUuid = this.addonService.getPagesAddonUUID();\n const pagesBaseUrl = this.getAddonBaseUrl(pagesAddonUuid, 'addon_blocks');\n const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${name}&blockType=${blockType}`;\n this.httpService.getHttpCall(url).toPromise().then((data: IBlockLoaderData) => {\n if (data) {\n resolve(this.getRemoteLoaderOptions(data, remoteEntry));\n } else {\n reject(`Addon block with name - ${name} is not found for type - ${blockType}`);\n }\n }); \n });\n }\n}\n","import { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { Component, Input, OnChanges, ViewChild, ViewContainerRef, ComponentFactoryResolver,\n Injector, NgModuleFactory, Compiler, EventEmitter, Output, ComponentRef, SimpleChanges, NgZone, createNgModuleRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepRemoteLoaderOptions } from './remote-loader.model';\ndeclare let __webpack_public_path__;\n\n@Component({\n selector: 'pep-remote-loader',\n template: `\n <!-- <mat-spinner *ngIf=\"showSpinner; else placeHolder\"></mat-spinner> -->\n <ng-template #placeHolder></ng-template>\n `\n})\nexport class PepRemoteLoaderComponent implements OnChanges {\n @ViewChild('placeHolder', { read: ViewContainerRef, static: true }) viewContainer: ViewContainerRef;\n \n private _options: PepRemoteLoaderOptions = null;\n @Input()\n set options(value: PepRemoteLoaderOptions) {\n this._options = value;\n if (value) {\n this.loadModule();\n }\n }\n get options(): PepRemoteLoaderOptions {\n return this._options;\n }\n \n // This is the data passed by the API Design documentation.\n private _hostObject: any = null;\n @Input()\n set hostObject(value: any) { \n this._hostObject = value;\n this.setHostComponentIntoComponentRef();\n }\n get hostObject(): any {\n return this._hostObject;\n }\n\n @Output() hostEvents: EventEmitter<any> = new EventEmitter();\n @Output() load: EventEmitter<any> = new EventEmitter();\n // showSpinner = true;\n \n private compRef: ComponentRef<any>;\n\n constructor(\n private injector: Injector,\n private cfr: ComponentFactoryResolver,\n private compiler: Compiler,\n private pepAddonService: PepAddonService,\n // private zone: NgZone,\n ) { }\n\n private setHostComponentIntoComponentRef() {\n if (this.hostObject && this.compRef?.instance) {\n this.compRef.instance.hostObject = this.hostObject;\n\n // TODO: Check if this is needed?? if not remove this.\n if (this.compRef?.instance?.ngOnChanges) {\n this.compRef.instance.ngOnChanges(this.hostObject);\n }\n }\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n // if (changes?.options?.currentValue) {\n // this.loadModule(changes?.options?.currentValue);\n // }\n }\n\n private async loadModule() {\n const t0 = performance.now();\n \n // Check if only need update\n if (!this.options?.update) {\n this.viewContainer?.clear();\n \n // try {\n // if (this.options.addonId) {\n // const publicPathArr = this.options.remoteEntry.split('/');\n // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n // __webpack_public_path__ = publicPath;\n // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n // }\n \n // const module = await loadRemoteModule(this.options).then(m => m);\n // const component = module[this.options.componentName];\n // this.compRef = this.viewContainer.createComponent(component);\n\n // } catch (e) {\n \n this.viewContainer?.clear();\n // Load Component\n if (this.options?.noModule) {\n const component = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);\n \n // New code\n // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });\n \n // Old code\n const componentFactory = this.cfr.resolveComponentFactory(component);\n this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector);\n }\n // Load Module\n else {\n // const publicPathArr = this.options.remoteEntry.split('/');\n // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n // __webpack_public_path__ = publicPath;\n // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n \n const module = await loadRemoteModule(this.options).then(m => m);\n \n // New code\n const moduleRef = createNgModuleRef(module, this.injector);\n const component = module[this.options.componentName];\n this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });\n \n // Old code\n // const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./','')]);\n // const moduleRef = moduleFactory.create(this.injector);\n \n // const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);\n // this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector, null, moduleRef);\n \n const t1 = performance.now();\n console.log('remote module load performance: ' + (t1-t0)/1000);\n }\n\n // }\n\n \n this.load.emit();\n }\n\n if (this.compRef) {\n this.setHostComponentIntoComponentRef();\n \n this.compRef?.instance['hostEvents']?.subscribe(e => {\n // switch(e.action){\n // case 'addon-loaded':\n // this.showSpinner = false;\n // }\n this.hostEvents.emit(e)\n });\n }\n }\n\n ngOnDestroy(): void {\n this.compRef?.destroy();\n this.viewContainer?.clear();\n }\n}\n\n","import { Component, OnInit, Input, Output, EventEmitter, TemplateRef, ViewChild, OnDestroy } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@Component({\n selector: 'pep-addon-block-loader',\n templateUrl: './addon-block-loader.component.html',\n styleUrls: ['./addon-block-loader.component.scss']\n})\nexport class PepAddonBlockLoaderComponent implements OnInit, OnDestroy {\n @ViewChild('dialogTemplate', { static: true, read: TemplateRef }) dialogTemplate!: TemplateRef<any>;\n \n @Input() remoteEntry: string = '';\n\n private _blockType: PepBlockDataType = 'AddonBlock';\n @Input() \n set blockType(value: PepBlockDataType) {\n this._blockType = value;\n }\n get blockType(): PepBlockDataType {\n return this._blockType;\n }\n\n private _name = '';\n @Input() \n set name(value: string) {\n this._name = value;\n }\n get name(): string {\n return this._name;\n }\n\n @Input() hostObject = null;\n \n private _dialogRef: MatDialogRef<any> = null;\n @Input()\n set dialogRef(value: MatDialogRef<any>) {\n this._dialogRef = value;\n this.inDialog = this._dialogRef != null;\n }\n get dialogRef(): MatDialogRef<any> {\n return this._dialogRef;\n }\n \n @Output() hostEvents: EventEmitter<any> = new EventEmitter<any>();\n @Output() blockLoad: EventEmitter<void> = new EventEmitter<void>();\n \n inDialog = false;\n remotePathOptions: PepRemoteLoaderOptions = null;\n \n constructor(private remoteLoaderService: PepRemoteLoaderService) {\n //\n }\n \n ngOnInit() {\n this.remoteLoaderService.getBlockRemoteLoaderOptions(this.name, this.blockType, this.remoteEntry).then(options => {\n this.remotePathOptions = options;\n });\n }\n\n ngOnDestroy(): void {\n if (this.dialogRef) {\n this.dialogRef = null;\n }\n\n this.remotePathOptions = null;\n }\n\n onBlockLoad() {\n this.blockLoad.emit();\n }\n\n onHostEvents(event: any) {\n this.hostEvents.emit(event);\n }\n\n closeDialog(event) {\n this.dialogRef?.close(event);\n }\n}","<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n</ng-template>","import { ComponentFactoryResolver, ComponentRef, Injectable, Injector } from '@angular/core';\nimport { IAddonBlockLoaderDialogOptions, IAddonBlockLoaderOptions, IBlockLoaderData } from './remote-loader.model';\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepAddonBlockLoaderService {\n \n constructor(\n private resolver: ComponentFactoryResolver,\n private dialogService: PepDialogService,\n ) {\n //\n }\n\n private loadAddonBlockInternal(options: IAddonBlockLoaderDialogOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n if (options.container !== null) {\n const factory = this.resolver.resolveComponentFactory(PepAddonBlockLoaderComponent);\n const componentRef = options.container.createComponent(factory);\n const addonBlockInstance = componentRef.instance;\n\n addonBlockInstance.blockType = options.blockType || 'AddonBlock';\n addonBlockInstance.name = options.name;\n addonBlockInstance.hostObject = options.hostObject;\n\n addonBlockInstance.hostEvents.subscribe((event) => {\n if (options.hostEventsCallback) {\n options.hostEventsCallback(event);\n }\n });\n\n return componentRef;\n } else {\n return null;\n }\n }\n\n loadAddonBlockInContainer(options: IAddonBlockLoaderOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n return this.loadAddonBlockInternal(options);\n }\n\n loadAddonBlockInDialog(options: IAddonBlockLoaderDialogOptions): MatDialogRef<any> | null {\n const componentRef = this.loadAddonBlockInternal(options);\n \n if (componentRef) {\n const addonBlockInstance = componentRef.instance;\n const pepConfig = this.dialogService.getDialogConfig({ disableClose: false, panelClass: 'remote-loader-dialog' }, options.size || 'full-screen');\n const mergeConfig = {...options.config, ...pepConfig}; \n const data = options.data || null;\n addonBlockInstance.dialogRef = this.dialogService.openDialog(addonBlockInstance.dialogTemplate, data, mergeConfig);\n addonBlockInstance.dialogRef.afterClosed().subscribe(() => {\n componentRef.hostView.detach();\n componentRef.hostView.destroy();\n componentRef.destroy();\n });\n return addonBlockInstance.dialogRef;\n\n } else {\n return null;\n }\n }\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { PepAddonBlockLoaderService } from './addon-block-loader.service';\n\nimport { PepRemoteLoaderComponent } from './remote-loader.component';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@NgModule({\n declarations: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n // Material modules,\n MatDialogModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepDialogModule,\n ],\n exports: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n providers: [\n PepAddonBlockLoaderService,\n PepRemoteLoaderService\n ]\n})\nexport class PepRemoteLoaderModule {\n\n\n}\n","/*\n * Public API Surface of remote-loader\n */\nexport * from './addon-block-loader.component';\nexport * from './addon-block-loader.service';\nexport * from './remote-loader.component';\nexport * from './remote-loader.module';\nexport * from './remote-loader.model';\nexport * from './remote-loader.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepRemoteLoaderService","i2","i3","i4.PepRemoteLoaderComponent","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-remote-loader.mjs","sources":["../../../projects/ngx-lib/remote-loader/remote-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.html","../../../projects/ngx-lib/remote-loader/addon-block-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.module.ts","../../../projects/ngx-lib/remote-loader/public-api.ts","../../../projects/ngx-lib/remote-loader/pepperi-addons-ngx-lib-remote-loader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { PepAddonService, PepHttpService, PepSessionService} from '@pepperi-addons/ngx-lib';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { IBlockLoaderData } from './remote-loader.model';\nimport { ActivatedRoute } from '@angular/router';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepRemoteLoaderService {\n \n constructor(\n private httpService: PepHttpService,\n private sessionService: PepSessionService,\n private addonService: PepAddonService,\n private route: ActivatedRoute,\n ) {\n //\n }\n\n getRemoteLoaderOptions(blockLoaderData: IBlockLoaderData, remoteEntry = ''): PepRemoteLoaderOptions {\n return {\n addonId: blockLoaderData.relation.AddonUUID,\n remoteEntry: remoteEntry.length > 0 ? remoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,\n remoteName: blockLoaderData.relation.AddonRelativeURL,\n exposedModule: `./${blockLoaderData.relation.ModuleName}`,\n componentName: blockLoaderData.relation.ComponentName, \n }\n }\n\n private getAddonBaseUrl(addonUUID: string, fileName = 'api'): string {\n // For devServer run server on localhost.\n const devServer = this.route.snapshot.queryParamMap.get('devServer') === 'true';\n if(devServer) {\n return `http://localhost:4500/${fileName}`;\n } else {\n const baseUrl = this.sessionService.getPapiBaseUrl();\n return `${baseUrl}/addons/api/${addonUUID}/${fileName}`;\n }\n }\n \n async getBlockRemoteLoaderOptions(name: string, blockType: PepBlockDataType = 'AddonBlock', remoteEntry = ''): Promise<PepRemoteLoaderOptions> {\n return new Promise((resolve, reject) => {\n const pagesAddonUuid = this.addonService.getPagesAddonUUID();\n const pagesBaseUrl = this.getAddonBaseUrl(pagesAddonUuid, 'addon_blocks');\n const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${name}&blockType=${blockType}`;\n this.httpService.getHttpCall(url).toPromise().then((data: IBlockLoaderData) => {\n if (data) {\n resolve(this.getRemoteLoaderOptions(data, remoteEntry));\n } else {\n reject(`Addon block with name - ${name} is not found for type - ${blockType}`);\n }\n }); \n });\n }\n}\n","import { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { Component, Input, OnChanges, ViewChild, ViewContainerRef, ComponentFactoryResolver,\n Injector, NgModuleFactory, Compiler, EventEmitter, Output, ComponentRef, SimpleChanges, NgZone, createNgModuleRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepRemoteLoaderOptions } from './remote-loader.model';\ndeclare let __webpack_public_path__;\n\n@Component({\n selector: 'pep-remote-loader',\n template: `\n <!-- <mat-spinner *ngIf=\"showSpinner; else placeHolder\"></mat-spinner> -->\n <ng-template #placeHolder></ng-template>\n `\n})\nexport class PepRemoteLoaderComponent implements OnChanges {\n @ViewChild('placeHolder', { read: ViewContainerRef, static: true }) viewContainer: ViewContainerRef;\n \n private _options: PepRemoteLoaderOptions = null;\n @Input()\n set options(value: PepRemoteLoaderOptions) {\n this._options = value;\n if (value) {\n this.loadModule();\n }\n }\n get options(): PepRemoteLoaderOptions {\n return this._options;\n }\n \n // This is the data passed by the API Design documentation.\n private _hostObject: any = null;\n @Input()\n set hostObject(value: any) { \n this._hostObject = value;\n this.setHostComponentIntoComponentRef();\n }\n get hostObject(): any {\n return this._hostObject;\n }\n\n @Output() hostEvents: EventEmitter<any> = new EventEmitter();\n @Output() load: EventEmitter<any> = new EventEmitter();\n // showSpinner = true;\n \n private compRef: ComponentRef<any>;\n\n constructor(\n private injector: Injector,\n private cfr: ComponentFactoryResolver,\n private compiler: Compiler,\n private pepAddonService: PepAddonService,\n // private zone: NgZone,\n ) { }\n\n private setHostComponentIntoComponentRef() {\n if (this.hostObject && this.compRef?.instance) {\n this.compRef.instance.hostObject = this.hostObject;\n\n // TODO: Check if this is needed?? if not remove this.\n if (this.compRef?.instance?.ngOnChanges) {\n this.compRef.instance.ngOnChanges(this.hostObject);\n }\n }\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n // if (changes?.options?.currentValue) {\n // this.loadModule(changes?.options?.currentValue);\n // }\n }\n\n private async loadModule() {\n const t0 = performance.now();\n \n // Check if only need update\n if (!this.options?.update) {\n this.viewContainer?.clear();\n \n // Load Component\n if (this.options?.noModule) {\n const component = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);\n \n // New code\n // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });\n\n // Old code\n const componentFactory = this.cfr.resolveComponentFactory(component);\n this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector);\n }\n // Load Module\n else {\n const publicPathArr = this.options.remoteEntry.split('/');\n const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n __webpack_public_path__ = publicPath;\n this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n\n const module = await loadRemoteModule(this.options).then(m => m);\n \n // New code\n // const moduleRef = createNgModuleRef(module, this.injector);\n // const component = module[this.options.componentName];\n // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });\n \n // Old code\n // const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./','')]);\n // const moduleRef = moduleFactory.create(this.injector);\n \n // const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);\n // this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector, null, moduleRef);\n\n\n // New New code\n const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./','')], this.injector);\n this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });\n\n const t1 = performance.now();\n console.log('remote module load performance: ' + (t1-t0)/1000);\n }\n\n this.load.emit();\n }\n\n if (this.compRef) {\n this.setHostComponentIntoComponentRef();\n \n this.compRef?.instance['hostEvents']?.subscribe(e => {\n // switch(e.action){\n // case 'addon-loaded':\n // this.showSpinner = false;\n // }\n this.hostEvents.emit(e)\n });\n }\n }\n\n ngOnDestroy(): void {\n this.compRef?.destroy();\n this.viewContainer?.clear();\n }\n}\n\n","import { Component, OnInit, Input, Output, EventEmitter, TemplateRef, ViewChild, OnDestroy } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@Component({\n selector: 'pep-addon-block-loader',\n templateUrl: './addon-block-loader.component.html',\n styleUrls: ['./addon-block-loader.component.scss']\n})\nexport class PepAddonBlockLoaderComponent implements OnInit, OnDestroy {\n @ViewChild('dialogTemplate', { static: true, read: TemplateRef }) dialogTemplate!: TemplateRef<any>;\n \n @Input() remoteEntry: string = '';\n\n private _blockType: PepBlockDataType = 'AddonBlock';\n @Input() \n set blockType(value: PepBlockDataType) {\n this._blockType = value;\n }\n get blockType(): PepBlockDataType {\n return this._blockType;\n }\n\n private _name = '';\n @Input() \n set name(value: string) {\n this._name = value;\n }\n get name(): string {\n return this._name;\n }\n\n @Input() hostObject = null;\n \n private _dialogRef: MatDialogRef<any> = null;\n @Input()\n set dialogRef(value: MatDialogRef<any>) {\n this._dialogRef = value;\n this.inDialog = this._dialogRef != null;\n }\n get dialogRef(): MatDialogRef<any> {\n return this._dialogRef;\n }\n \n @Output() hostEvents: EventEmitter<any> = new EventEmitter<any>();\n @Output() blockLoad: EventEmitter<void> = new EventEmitter<void>();\n \n inDialog = false;\n remotePathOptions: PepRemoteLoaderOptions = null;\n \n constructor(private remoteLoaderService: PepRemoteLoaderService) {\n //\n }\n \n ngOnInit() {\n this.remoteLoaderService.getBlockRemoteLoaderOptions(this.name, this.blockType, this.remoteEntry).then(options => {\n this.remotePathOptions = options;\n });\n }\n\n ngOnDestroy(): void {\n if (this.dialogRef) {\n this.dialogRef = null;\n }\n\n this.remotePathOptions = null;\n }\n\n onBlockLoad() {\n this.blockLoad.emit();\n }\n\n onHostEvents(event: any) {\n this.hostEvents.emit(event);\n }\n\n closeDialog(event) {\n this.dialogRef?.close(event);\n }\n}","<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n</ng-template>","import { ComponentFactoryResolver, ComponentRef, Injectable, Injector } from '@angular/core';\nimport { IAddonBlockLoaderDialogOptions, IAddonBlockLoaderOptions, IBlockLoaderData } from './remote-loader.model';\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepAddonBlockLoaderService {\n \n constructor(\n private resolver: ComponentFactoryResolver,\n private dialogService: PepDialogService,\n ) {\n //\n }\n\n private loadAddonBlockInternal(options: IAddonBlockLoaderDialogOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n if (options.container !== null) {\n const factory = this.resolver.resolveComponentFactory(PepAddonBlockLoaderComponent);\n const componentRef = options.container.createComponent(factory);\n const addonBlockInstance = componentRef.instance;\n\n addonBlockInstance.blockType = options.blockType || 'AddonBlock';\n addonBlockInstance.name = options.name;\n addonBlockInstance.hostObject = options.hostObject;\n\n addonBlockInstance.hostEvents.subscribe((event) => {\n if (options.hostEventsCallback) {\n options.hostEventsCallback(event);\n }\n });\n\n return componentRef;\n } else {\n return null;\n }\n }\n\n loadAddonBlockInContainer(options: IAddonBlockLoaderOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n return this.loadAddonBlockInternal(options);\n }\n\n loadAddonBlockInDialog(options: IAddonBlockLoaderDialogOptions): MatDialogRef<any> | null {\n const componentRef = this.loadAddonBlockInternal(options);\n \n if (componentRef) {\n const addonBlockInstance = componentRef.instance;\n const pepConfig = this.dialogService.getDialogConfig({ disableClose: false, panelClass: 'remote-loader-dialog' }, options.size || 'full-screen');\n const mergeConfig = {...options.config, ...pepConfig}; \n const data = options.data || null;\n addonBlockInstance.dialogRef = this.dialogService.openDialog(addonBlockInstance.dialogTemplate, data, mergeConfig);\n addonBlockInstance.dialogRef.afterClosed().subscribe(() => {\n componentRef.hostView.detach();\n componentRef.hostView.destroy();\n componentRef.destroy();\n });\n return addonBlockInstance.dialogRef;\n\n } else {\n return null;\n }\n }\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { PepAddonBlockLoaderService } from './addon-block-loader.service';\n\nimport { PepRemoteLoaderComponent } from './remote-loader.component';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@NgModule({\n declarations: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n // Material modules,\n MatDialogModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepDialogModule,\n ],\n exports: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n providers: [\n PepAddonBlockLoaderService,\n PepRemoteLoaderService\n ]\n})\nexport class PepRemoteLoaderModule {\n\n\n}\n","/*\n * Public API Surface of remote-loader\n */\nexport * from './addon-block-loader.component';\nexport * from './addon-block-loader.service';\nexport * from './remote-loader.component';\nexport * from './remote-loader.module';\nexport * from './remote-loader.model';\nexport * from './remote-loader.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepRemoteLoaderService","i2","i3","i4.PepRemoteLoaderComponent","i1"],"mappings":";;;;;;;;;;;;;;MASa,sBAAsB,CAAA;AAE/B,IAAA,WAAA,CACY,WAA2B,EAC3B,cAAiC,EACjC,YAA6B,EAC7B,KAAqB,EAAA;AAHrB,QAAA,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;AAC3B,QAAA,IAAc,CAAA,cAAA,GAAd,cAAc,CAAmB;AACjC,QAAA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAiB;AAC7B,QAAA,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;;KAGhC;AAED,IAAA,sBAAsB,CAAC,eAAiC,EAAE,WAAW,GAAG,EAAE,EAAA;QACtE,OAAO;AACH,YAAA,OAAO,EAAE,eAAe,CAAC,QAAQ,CAAC,SAAS;YAC3C,WAAW,EAAE,WAAW,CAAC,MAAM,GAAG,CAAC,GAAG,WAAW,GAAG,CAAA,EAAG,eAAe,CAAC,kBAAkB,CAAA,EAAG,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAK,GAAA,CAAA;AAC1I,YAAA,UAAU,EAAE,eAAe,CAAC,QAAQ,CAAC,gBAAgB;AACrD,YAAA,aAAa,EAAE,CAAK,EAAA,EAAA,eAAe,CAAC,QAAQ,CAAC,UAAU,CAAE,CAAA;AACzD,YAAA,aAAa,EAAE,eAAe,CAAC,QAAQ,CAAC,aAAa;SACxD,CAAA;KACJ;AAEO,IAAA,eAAe,CAAC,SAAiB,EAAE,QAAQ,GAAG,KAAK,EAAA;;AAEvD,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,WAAW,CAAC,KAAK,MAAM,CAAC;AAChF,QAAA,IAAG,SAAS,EAAE;YACV,OAAO,CAAA,sBAAA,EAAyB,QAAQ,CAAA,CAAE,CAAC;AAC9C,SAAA;AAAM,aAAA;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,cAAc,CAAC,cAAc,EAAE,CAAC;AACrD,YAAA,OAAO,GAAG,OAAO,CAAA,YAAA,EAAe,SAAS,CAAI,CAAA,EAAA,QAAQ,EAAE,CAAC;AAC3D,SAAA;KACJ;IAEK,2BAA2B,CAAC,IAAY,EAAE,YAA8B,YAAY,EAAE,WAAW,GAAG,EAAE,EAAA;;YACxG,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,MAAM,KAAI;gBACnC,MAAM,cAAc,GAAG,IAAI,CAAC,YAAY,CAAC,iBAAiB,EAAE,CAAC;gBAC7D,MAAM,YAAY,GAAG,IAAI,CAAC,eAAe,CAAC,cAAc,EAAE,cAAc,CAAC,CAAC;gBAC1E,MAAM,GAAG,GAAG,CAAG,EAAA,YAAY,qCAAqC,IAAI,CAAA,WAAA,EAAc,SAAS,CAAA,CAAE,CAAC;AAC9F,gBAAA,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,CAAC,IAAsB,KAAI;AAC1E,oBAAA,IAAI,IAAI,EAAE;wBACN,OAAO,CAAC,IAAI,CAAC,sBAAsB,CAAC,IAAI,EAAE,WAAW,CAAC,CAAC,CAAC;AAC3D,qBAAA;AAAM,yBAAA;AACH,wBAAA,MAAM,CAAC,CAA2B,wBAAA,EAAA,IAAI,4BAA4B,SAAS,CAAA,CAAE,CAAC,CAAC;AAClF,qBAAA;AACL,iBAAC,CAAC,CAAC;AACP,aAAC,CAAC,CAAC;SACN,CAAA,CAAA;AAAA,KAAA;;mHA7CQ,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAtB,sBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,cAFnB,MAAM,EAAA,CAAA,CAAA;2FAET,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBAHlC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;MCMY,wBAAwB,CAAA;AAgCjC,IAAA,WAAA,CACY,QAAkB,EAClB,GAA6B,EAC7B,QAAkB,EAClB,eAAgC,EAAA;AAHhC,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAG,CAAA,GAAA,GAAH,GAAG,CAA0B;AAC7B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;AAClB,QAAA,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;AAjCpC,QAAA,IAAQ,CAAA,QAAA,GAA2B,IAAI,CAAC;;AAaxC,QAAA,IAAW,CAAA,WAAA,GAAQ,IAAI,CAAC;AAUtB,QAAA,IAAA,CAAA,UAAU,GAAuB,IAAI,YAAY,EAAE,CAAC;AACpD,QAAA,IAAA,CAAA,IAAI,GAAuB,IAAI,YAAY,EAAE,CAAC;KAWnD;IAlCL,IACI,OAAO,CAAC,KAA6B,EAAA;AACrC,QAAA,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AACtB,QAAA,IAAI,KAAK,EAAE;YACP,IAAI,CAAC,UAAU,EAAE,CAAC;AACrB,SAAA;KACJ;AACD,IAAA,IAAI,OAAO,GAAA;QACP,OAAO,IAAI,CAAC,QAAQ,CAAC;KACxB;IAID,IACI,UAAU,CAAC,KAAU,EAAA;AACrB,QAAA,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,gCAAgC,EAAE,CAAC;KAC3C;AACD,IAAA,IAAI,UAAU,GAAA;QACV,OAAO,IAAI,CAAC,WAAW,CAAC;KAC3B;IAgBO,gCAAgC,GAAA;;QACpC,IAAI,IAAI,CAAC,UAAU,KAAI,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,CAAA,EAAE;YAC3C,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;;YAGnD,IAAI,CAAA,EAAA,GAAA,MAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,QAAQ,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,WAAW,EAAE;gBACrC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AACtD,aAAA;AACJ,SAAA;KACJ;AAEK,IAAA,WAAW,CAAC,OAAsB,EAAA;;;;;SAIvC,CAAA,CAAA;AAAA,KAAA;IAEa,UAAU,GAAA;;;AACpB,YAAA,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;;YAG7B,IAAI,EAAC,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,MAAM,CAAA,EAAE;AACvB,gBAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;;AAG5B,gBAAA,IAAI,MAAA,IAAI,CAAC,OAAO,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,QAAQ,EAAE;oBACxB,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;;;;oBAMhG,MAAM,gBAAgB,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC,SAAS,CAAC,CAAC;AACrE,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,gBAAgB,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACzF,iBAAA;;AAEI,qBAAA;AACD,oBAAA,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;oBAC1D,MAAM,UAAU,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAC,GAAG,CAAC;oBAClF,uBAAuB,GAAG,UAAU,CAAC;AACrC,oBAAA,IAAI,CAAC,eAAe,CAAC,oBAAoB,CAAC,UAAU,EAAE,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;AAE5E,oBAAA,MAAM,MAAM,GAAI,MAAM,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC;;;;;;;;;;;oBAgBlE,MAAM,SAAS,GAAG,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,IAAI,EAAC,EAAE,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;AACxG,oBAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,WAAW,EAAE,SAAS,EAAE,CAAC,CAAC;AAE3I,oBAAA,MAAM,EAAE,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;AAC7B,oBAAA,OAAO,CAAC,GAAG,CAAC,kCAAkC,GAAG,CAAC,EAAE,GAAC,EAAE,IAAE,IAAI,CAAC,CAAC;AAClE,iBAAA;AAED,gBAAA,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;AACpB,aAAA;YAED,IAAI,IAAI,CAAC,OAAO,EAAE;gBACd,IAAI,CAAC,gCAAgC,EAAE,CAAC;AAExC,gBAAA,CAAA,EAAA,GAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,0CAAE,QAAQ,CAAC,YAAY,CAAC,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,SAAS,CAAC,CAAC,IAAG;;;;;AAKhD,oBAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;AAC3B,iBAAC,CAAC,CAAC;AACN,aAAA;;AACJ,KAAA;IAED,WAAW,GAAA;;AACP,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,OAAO,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,OAAO,EAAE,CAAC;AACxB,QAAA,CAAA,EAAA,GAAA,IAAI,CAAC,aAAa,MAAE,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAA,KAAK,EAAE,CAAC;KAC/B;;qHA5HQ,wBAAwB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;yGAAxB,wBAAwB,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,EAAA,OAAA,EAAA,SAAA,EAAA,UAAA,EAAA,YAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,eAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,aAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACC,gBAAgB,EANxC,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,aAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;AAGT,IAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,CAAA;2FAEQ,wBAAwB,EAAA,UAAA,EAAA,CAAA;kBAPpC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACP,oBAAA,QAAQ,EAAE,mBAAmB;AAC7B,oBAAA,QAAQ,EAAE,CAAA;;;AAGT,IAAA,CAAA;iBACJ,CAAA;2LAEuE,aAAa,EAAA,CAAA;sBAAhF,SAAS;uBAAC,aAAa,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI9D,OAAO,EAAA,CAAA;sBADV,KAAK;gBAcF,UAAU,EAAA,CAAA;sBADb,KAAK;gBASI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,IAAI,EAAA,CAAA;sBAAb,MAAM;;;MC/BE,4BAA4B,CAAA;AAyCrC,IAAA,WAAA,CAAoB,mBAA2C,EAAA;AAA3C,QAAA,IAAmB,CAAA,mBAAA,GAAnB,mBAAmB,CAAwB;AAtCtD,QAAA,IAAW,CAAA,WAAA,GAAW,EAAE,CAAC;AAE1B,QAAA,IAAU,CAAA,UAAA,GAAqB,YAAY,CAAC;AAS5C,QAAA,IAAK,CAAA,KAAA,GAAG,EAAE,CAAC;AASV,QAAA,IAAU,CAAA,UAAA,GAAG,IAAI,CAAC;AAEnB,QAAA,IAAU,CAAA,UAAA,GAAsB,IAAI,CAAC;AAUnC,QAAA,IAAA,CAAA,UAAU,GAAsB,IAAI,YAAY,EAAO,CAAC;AACxD,QAAA,IAAA,CAAA,SAAS,GAAuB,IAAI,YAAY,EAAQ,CAAC;AAEnE,QAAA,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAiB,CAAA,iBAAA,GAA2B,IAAI,CAAC;;KAIhD;IArCD,IACI,SAAS,CAAC,KAAuB,EAAA;AACjC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;KAC3B;AACD,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAGD,IACI,IAAI,CAAC,KAAa,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;AACD,IAAA,IAAI,IAAI,GAAA;QACJ,OAAO,IAAI,CAAC,KAAK,CAAC;KACrB;IAKD,IACI,SAAS,CAAC,KAAwB,EAAA;AAClC,QAAA,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC;QACxB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,UAAU,IAAI,IAAI,CAAC;KAC3C;AACD,IAAA,IAAI,SAAS,GAAA;QACT,OAAO,IAAI,CAAC,UAAU,CAAC;KAC1B;IAYD,QAAQ,GAAA;QACJ,IAAI,CAAC,mBAAmB,CAAC,2BAA2B,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,OAAO,IAAG;AAC7G,YAAA,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC;AACrC,SAAC,CAAC,CAAC;KACN;IAED,WAAW,GAAA;QACP,IAAI,IAAI,CAAC,SAAS,EAAE;AAChB,YAAA,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;AACzB,SAAA;AAED,QAAA,IAAI,CAAC,iBAAiB,GAAG,IAAI,CAAC;KACjC;IAED,WAAW,GAAA;AACP,QAAA,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;KACzB;AAED,IAAA,YAAY,CAAC,KAAU,EAAA;AACnB,QAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;KAC/B;AAED,IAAA,WAAW,CAAC,KAAK,EAAA;;QACb,CAAA,EAAA,GAAA,IAAI,CAAC,SAAS,MAAA,IAAA,IAAA,EAAA,KAAA,KAAA,CAAA,GAAA,KAAA,CAAA,GAAA,EAAA,CAAE,KAAK,CAAC,KAAK,CAAC,CAAC;KAChC;;yHArEQ,4BAA4B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,sBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;6GAA5B,4BAA4B,EAAA,QAAA,EAAA,wBAAA,EAAA,MAAA,EAAA,EAAA,WAAA,EAAA,aAAA,EAAA,SAAA,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,OAAA,EAAA,EAAA,UAAA,EAAA,YAAA,EAAA,SAAA,EAAA,WAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,gBAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EACc,WAAW,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECXlE,8zBAmBc,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,WAAA,EAAA,YAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,wBAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,YAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,EAAA,MAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDTD,4BAA4B,EAAA,UAAA,EAAA,CAAA;kBALxC,SAAS;+BACI,wBAAwB,EAAA,QAAA,EAAA,8zBAAA,EAAA,CAAA;0GAKgC,cAAc,EAAA,CAAA;sBAA/E,SAAS;uBAAC,gBAAgB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAA;gBAEvD,WAAW,EAAA,CAAA;sBAAnB,KAAK;gBAIF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBAUF,IAAI,EAAA,CAAA;sBADP,KAAK;gBAQG,UAAU,EAAA,CAAA;sBAAlB,KAAK;gBAIF,SAAS,EAAA,CAAA;sBADZ,KAAK;gBASI,UAAU,EAAA,CAAA;sBAAnB,MAAM;gBACG,SAAS,EAAA,CAAA;sBAAlB,MAAM;;;MErCE,0BAA0B,CAAA;IAEnC,WACY,CAAA,QAAkC,EAClC,aAA+B,EAAA;AAD/B,QAAA,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAA0B;AAClC,QAAA,IAAa,CAAA,aAAA,GAAb,aAAa,CAAkB;;KAG1C;AAEO,IAAA,sBAAsB,CAAC,OAAuC,EAAA;AAClE,QAAA,IAAI,OAAO,CAAC,SAAS,KAAK,IAAI,EAAE;YAC5B,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,uBAAuB,CAAC,4BAA4B,CAAC,CAAC;YACpF,MAAM,YAAY,GAAG,OAAO,CAAC,SAAS,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAChE,YAAA,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC;YAEjD,kBAAkB,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,YAAY,CAAC;AACjE,YAAA,kBAAkB,CAAC,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC;AACvC,YAAA,kBAAkB,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;YAEnD,kBAAkB,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;gBAC9C,IAAI,OAAO,CAAC,kBAAkB,EAAE;AAC5B,oBAAA,OAAO,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACrC,iBAAA;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,OAAO,YAAY,CAAC;AACvB,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;AAED,IAAA,yBAAyB,CAAC,OAAiC,EAAA;AACvD,QAAA,OAAO,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;KAC/C;AAED,IAAA,sBAAsB,CAAC,OAAuC,EAAA;QAC1D,MAAM,YAAY,GAAG,IAAI,CAAC,sBAAsB,CAAC,OAAO,CAAC,CAAC;AAE1D,QAAA,IAAI,YAAY,EAAE;AACd,YAAA,MAAM,kBAAkB,GAAG,YAAY,CAAC,QAAQ,CAAC;YACjD,MAAM,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,eAAe,CAAC,EAAE,YAAY,EAAE,KAAK,EAAE,UAAU,EAAE,sBAAsB,EAAE,EAAE,OAAO,CAAC,IAAI,IAAI,aAAa,CAAC,CAAC;YACjJ,MAAM,WAAW,mCAAO,OAAO,CAAC,MAAM,CAAK,EAAA,SAAS,CAAC,CAAC;AACtD,YAAA,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,IAAI,IAAI,CAAC;AAClC,YAAA,kBAAkB,CAAC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,kBAAkB,CAAC,cAAc,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;YACnH,kBAAkB,CAAC,SAAS,CAAC,WAAW,EAAE,CAAC,SAAS,CAAC,MAAK;AACtD,gBAAA,YAAY,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC;AAC/B,gBAAA,YAAY,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;gBAChC,YAAY,CAAC,OAAO,EAAE,CAAC;AAC3B,aAAC,CAAC,CAAC;YACH,OAAO,kBAAkB,CAAC,SAAS,CAAC;AAEvC,SAAA;AAAM,aAAA;AACH,YAAA,OAAO,IAAI,CAAC;AACf,SAAA;KACJ;;uHAtDQ,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAA1B,0BAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,0BAA0B,cAFvB,MAAM,EAAA,CAAA,CAAA;2FAET,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAHtC,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;iBACrB,CAAA;;;MC8BY,qBAAqB,CAAA;;kHAArB,qBAAqB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAArB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,iBArB1B,4BAA4B;AAC5B,QAAA,wBAAwB,aAGxB,YAAY;QACZ,gBAAgB;;QAEhB,eAAe;;QAEf,eAAe;AACf,QAAA,eAAe,aAGf,4BAA4B;QAC5B,wBAAwB,CAAA,EAAA,CAAA,CAAA;AAOnB,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,qBAAqB,EALnB,SAAA,EAAA;QACP,0BAA0B;QAC1B,sBAAsB;KACzB,EAAA,OAAA,EAAA,CAfG,YAAY;QACZ,gBAAgB;;QAEhB,eAAe;;QAEf,eAAe;QACf,eAAe,CAAA,EAAA,CAAA,CAAA;2FAWV,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAvBjC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,4BAA4B;wBAC5B,wBAAwB;AAC3B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,YAAY;wBACZ,gBAAgB;;wBAEhB,eAAe;;wBAEf,eAAe;wBACf,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,4BAA4B;wBAC5B,wBAAwB;AAC3B,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,0BAA0B;wBAC1B,sBAAsB;AACzB,qBAAA;iBACJ,CAAA;;;ACrCD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
@@ -3,6 +3,7 @@ import { EventEmitter, ViewContainerRef, Component, ViewChild, Input, Output } f
|
|
|
3
3
|
import { loadRemoteModule } from '@angular-architects/module-federation';
|
|
4
4
|
import * as i1 from '@pepperi-addons/ngx-lib';
|
|
5
5
|
|
|
6
|
+
// declare let __webpack_public_path__;
|
|
6
7
|
class PepPluginProxyComponent {
|
|
7
8
|
constructor(pepAddonService) {
|
|
8
9
|
this.pepAddonService = pepAddonService;
|
|
@@ -45,8 +46,8 @@ class PepPluginProxyComponent {
|
|
|
45
46
|
if (lastSlashIndex > 0) {
|
|
46
47
|
// const publicPathArr = this.options.remoteEntry?.split('/');
|
|
47
48
|
// const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
|
|
49
|
+
// __webpack_public_path__ = publicPath;
|
|
48
50
|
const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);
|
|
49
|
-
__webpack_public_path__ = publicPath;
|
|
50
51
|
this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
51
52
|
}
|
|
52
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-plugin.mjs","sources":["../../../projects/ngx-lib/plugin/plugin-proxy.component.ts","../../../projects/ngx-lib/plugin/public-api.ts","../../../projects/ngx-lib/plugin/pepperi-addons-ngx-lib-plugin.ts"],"sourcesContent":["import { Component, ComponentRef, EventEmitter, Input, OnChanges, OnDestroy, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { PepPluginOptions } from './plugin.model';\nimport { Subscription } from 'rxjs';\
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-plugin.mjs","sources":["../../../projects/ngx-lib/plugin/plugin-proxy.component.ts","../../../projects/ngx-lib/plugin/public-api.ts","../../../projects/ngx-lib/plugin/pepperi-addons-ngx-lib-plugin.ts"],"sourcesContent":["import { Component, ComponentRef, EventEmitter, Input, OnChanges, OnDestroy, Output, ViewChild, ViewContainerRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { PepPluginOptions } from './plugin.model';\nimport { Subscription } from 'rxjs';\n// declare let __webpack_public_path__;\n\n@Component({\n standalone: true,\n selector: 'pep-plugin-proxy',\n template: `\n <ng-container #placeHolder></ng-container>\n `\n})\nexport class PepPluginProxyComponent implements OnChanges, OnDestroy {\n @ViewChild('placeHolder', { read: ViewContainerRef, static: true })\n viewContainer: ViewContainerRef;\n \n private _options: PepPluginOptions = null;\n @Input()\n set options(value: PepPluginOptions) {\n this._options = value;\n if (value) {\n this.loadModule();\n }\n }\n get options(): PepPluginOptions {\n return this._options;\n }\n\n // This is the data passed by the API Design documentation.\n private _hostObject: any = null;\n @Input()\n set hostObject(value: any) { \n this._hostObject = value;\n this.setHostComponentIntoComponentRef();\n }\n get hostObject(): any {\n return this._hostObject;\n }\n\n @Output() hostEvents: EventEmitter<any> = new EventEmitter();\n @Output() load: EventEmitter<any> = new EventEmitter();\n\n private compRef: ComponentRef<any>;\n private hostEvents$: Subscription;\n\n constructor(\n private pepAddonService: PepAddonService,\n ) { }\n\n private setHostComponentIntoComponentRef() {\n if (this.hostObject && this.compRef?.instance) {\n this.compRef.instance['hostObject'] = this.hostObject;\n\n // TODO: Check if this is needed?? if not remove this.\n // if (this.compRef?.instance?.ngOnChanges) {\n // this.compRef.instance.ngOnChanges(this.hostObject);\n // }\n }\n }\n\n private async loadModule() {\n this.viewContainer.clear();\n \n debugger;\n \n if (this.options?.addonId && (this.options.type === 'module' || this.options.type === 'script')) {\n \n const lastSlashIndex = this.options.remoteEntry?.lastIndexOf('/') || -1;\n if (lastSlashIndex > 0) {\n // const publicPathArr = this.options.remoteEntry?.split('/');\n // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n // __webpack_public_path__ = publicPath;\n \n const publicPath = this.options.remoteEntry.substring(0, lastSlashIndex + 1);\n this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n }\n }\n\n const componentType = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);\n this.compRef = this.viewContainer.createComponent(componentType);\n \n if (this.compRef) {\n this.setHostComponentIntoComponentRef();\n \n this.hostEvents$ = this.compRef.instance['hostEvents']?.subscribe((e: any) => {\n this.hostEvents.emit(e)\n });\n }\n\n this.load.emit();\n }\n\n ngOnChanges() {\n }\n \n ngOnDestroy(): void {\n if (this.hostEvents$) {\n this.hostEvents$.unsubscribe();\n }\n\n this.compRef?.destroy();\n this.viewContainer?.clear();\n }\n}\n\n","/*\r\n * Public API Surface of ngx-lib/plugin\r\n */\r\nexport * from './plugin-proxy.component';\r\nexport * from './plugin.model';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}
|
|
@@ -110,18 +110,6 @@ class PepRemoteLoaderComponent {
|
|
|
110
110
|
const t0 = performance.now();
|
|
111
111
|
// Check if only need update
|
|
112
112
|
if (!this.options?.update) {
|
|
113
|
-
this.viewContainer?.clear();
|
|
114
|
-
// try {
|
|
115
|
-
// if (this.options.addonId) {
|
|
116
|
-
// const publicPathArr = this.options.remoteEntry.split('/');
|
|
117
|
-
// const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';
|
|
118
|
-
// __webpack_public_path__ = publicPath;
|
|
119
|
-
// this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
120
|
-
// }
|
|
121
|
-
// const module = await loadRemoteModule(this.options).then(m => m);
|
|
122
|
-
// const component = module[this.options.componentName];
|
|
123
|
-
// this.compRef = this.viewContainer.createComponent(component);
|
|
124
|
-
// } catch (e) {
|
|
125
113
|
this.viewContainer?.clear();
|
|
126
114
|
// Load Component
|
|
127
115
|
if (this.options?.noModule) {
|
|
@@ -130,28 +118,30 @@ class PepRemoteLoaderComponent {
|
|
|
130
118
|
// this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });
|
|
131
119
|
// Old code
|
|
132
120
|
const componentFactory = this.cfr.resolveComponentFactory(component);
|
|
133
|
-
this.compRef = this.viewContainer.createComponent(componentFactory,
|
|
121
|
+
this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector);
|
|
134
122
|
}
|
|
135
123
|
// Load Module
|
|
136
124
|
else {
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
125
|
+
const publicPathArr = this.options.remoteEntry.split('/');
|
|
126
|
+
const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/') + '/';
|
|
127
|
+
__webpack_public_path__ = publicPath;
|
|
128
|
+
this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);
|
|
141
129
|
const module = await loadRemoteModule(this.options).then(m => m);
|
|
142
130
|
// New code
|
|
143
|
-
const moduleRef = createNgModuleRef(module, this.injector);
|
|
144
|
-
const component = module[this.options.componentName];
|
|
145
|
-
this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
|
|
131
|
+
// const moduleRef = createNgModuleRef(module, this.injector);
|
|
132
|
+
// const component = module[this.options.componentName];
|
|
133
|
+
// this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });
|
|
146
134
|
// Old code
|
|
147
135
|
// const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./','')]);
|
|
148
136
|
// const moduleRef = moduleFactory.create(this.injector);
|
|
149
137
|
// const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);
|
|
150
|
-
// this.compRef = this.viewContainer.createComponent(componentFactory,
|
|
138
|
+
// this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector, null, moduleRef);
|
|
139
|
+
// New New code
|
|
140
|
+
const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./', '')], this.injector);
|
|
141
|
+
this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });
|
|
151
142
|
const t1 = performance.now();
|
|
152
143
|
console.log('remote module load performance: ' + (t1 - t0) / 1000);
|
|
153
144
|
}
|
|
154
|
-
// }
|
|
155
145
|
this.load.emit();
|
|
156
146
|
}
|
|
157
147
|
if (this.compRef) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pepperi-addons-ngx-lib-remote-loader.mjs","sources":["../../../projects/ngx-lib/remote-loader/remote-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.html","../../../projects/ngx-lib/remote-loader/addon-block-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.module.ts","../../../projects/ngx-lib/remote-loader/public-api.ts","../../../projects/ngx-lib/remote-loader/pepperi-addons-ngx-lib-remote-loader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { PepAddonService, PepHttpService, PepSessionService} from '@pepperi-addons/ngx-lib';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { IBlockLoaderData } from './remote-loader.model';\nimport { ActivatedRoute } from '@angular/router';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepRemoteLoaderService {\n \n constructor(\n private httpService: PepHttpService,\n private sessionService: PepSessionService,\n private addonService: PepAddonService,\n private route: ActivatedRoute,\n ) {\n //\n }\n\n getRemoteLoaderOptions(blockLoaderData: IBlockLoaderData, remoteEntry = ''): PepRemoteLoaderOptions {\n return {\n addonId: blockLoaderData.relation.AddonUUID,\n remoteEntry: remoteEntry.length > 0 ? remoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,\n remoteName: blockLoaderData.relation.AddonRelativeURL,\n exposedModule: `./${blockLoaderData.relation.ModuleName}`,\n componentName: blockLoaderData.relation.ComponentName, \n }\n }\n\n private getAddonBaseUrl(addonUUID: string, fileName = 'api'): string {\n // For devServer run server on localhost.\n const devServer = this.route.snapshot.queryParamMap.get('devServer') === 'true';\n if(devServer) {\n return `http://localhost:4500/${fileName}`;\n } else {\n const baseUrl = this.sessionService.getPapiBaseUrl();\n return `${baseUrl}/addons/api/${addonUUID}/${fileName}`;\n }\n }\n \n async getBlockRemoteLoaderOptions(name: string, blockType: PepBlockDataType = 'AddonBlock', remoteEntry = ''): Promise<PepRemoteLoaderOptions> {\n return new Promise((resolve, reject) => {\n const pagesAddonUuid = this.addonService.getPagesAddonUUID();\n const pagesBaseUrl = this.getAddonBaseUrl(pagesAddonUuid, 'addon_blocks');\n const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${name}&blockType=${blockType}`;\n this.httpService.getHttpCall(url).toPromise().then((data: IBlockLoaderData) => {\n if (data) {\n resolve(this.getRemoteLoaderOptions(data, remoteEntry));\n } else {\n reject(`Addon block with name - ${name} is not found for type - ${blockType}`);\n }\n }); \n });\n }\n}\n","import { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { Component, Input, OnChanges, ViewChild, ViewContainerRef, ComponentFactoryResolver,\n Injector, NgModuleFactory, Compiler, EventEmitter, Output, ComponentRef, SimpleChanges, NgZone, createNgModuleRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepRemoteLoaderOptions } from './remote-loader.model';\ndeclare let __webpack_public_path__;\n\n@Component({\n selector: 'pep-remote-loader',\n template: `\n <!-- <mat-spinner *ngIf=\"showSpinner; else placeHolder\"></mat-spinner> -->\n <ng-template #placeHolder></ng-template>\n `\n})\nexport class PepRemoteLoaderComponent implements OnChanges {\n @ViewChild('placeHolder', { read: ViewContainerRef, static: true }) viewContainer: ViewContainerRef;\n \n private _options: PepRemoteLoaderOptions = null;\n @Input()\n set options(value: PepRemoteLoaderOptions) {\n this._options = value;\n if (value) {\n this.loadModule();\n }\n }\n get options(): PepRemoteLoaderOptions {\n return this._options;\n }\n \n // This is the data passed by the API Design documentation.\n private _hostObject: any = null;\n @Input()\n set hostObject(value: any) { \n this._hostObject = value;\n this.setHostComponentIntoComponentRef();\n }\n get hostObject(): any {\n return this._hostObject;\n }\n\n @Output() hostEvents: EventEmitter<any> = new EventEmitter();\n @Output() load: EventEmitter<any> = new EventEmitter();\n // showSpinner = true;\n \n private compRef: ComponentRef<any>;\n\n constructor(\n private injector: Injector,\n private cfr: ComponentFactoryResolver,\n private compiler: Compiler,\n private pepAddonService: PepAddonService,\n // private zone: NgZone,\n ) { }\n\n private setHostComponentIntoComponentRef() {\n if (this.hostObject && this.compRef?.instance) {\n this.compRef.instance.hostObject = this.hostObject;\n\n // TODO: Check if this is needed?? if not remove this.\n if (this.compRef?.instance?.ngOnChanges) {\n this.compRef.instance.ngOnChanges(this.hostObject);\n }\n }\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n // if (changes?.options?.currentValue) {\n // this.loadModule(changes?.options?.currentValue);\n // }\n }\n\n private async loadModule() {\n const t0 = performance.now();\n \n // Check if only need update\n if (!this.options?.update) {\n this.viewContainer?.clear();\n \n // try {\n // if (this.options.addonId) {\n // const publicPathArr = this.options.remoteEntry.split('/');\n // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n // __webpack_public_path__ = publicPath;\n // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n // }\n \n // const module = await loadRemoteModule(this.options).then(m => m);\n // const component = module[this.options.componentName];\n // this.compRef = this.viewContainer.createComponent(component);\n\n // } catch (e) {\n \n this.viewContainer?.clear();\n // Load Component\n if (this.options?.noModule) {\n const component = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);\n \n // New code\n // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });\n \n // Old code\n const componentFactory = this.cfr.resolveComponentFactory(component);\n this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector);\n }\n // Load Module\n else {\n // const publicPathArr = this.options.remoteEntry.split('/');\n // const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n // __webpack_public_path__ = publicPath;\n // this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n \n const module = await loadRemoteModule(this.options).then(m => m);\n \n // New code\n const moduleRef = createNgModuleRef(module, this.injector);\n const component = module[this.options.componentName];\n this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });\n \n // Old code\n // const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./','')]);\n // const moduleRef = moduleFactory.create(this.injector);\n \n // const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);\n // this.compRef = this.viewContainer.createComponent(componentFactory, null, this.injector, null, moduleRef);\n \n const t1 = performance.now();\n console.log('remote module load performance: ' + (t1-t0)/1000);\n }\n\n // }\n\n \n this.load.emit();\n }\n\n if (this.compRef) {\n this.setHostComponentIntoComponentRef();\n \n this.compRef?.instance['hostEvents']?.subscribe(e => {\n // switch(e.action){\n // case 'addon-loaded':\n // this.showSpinner = false;\n // }\n this.hostEvents.emit(e)\n });\n }\n }\n\n ngOnDestroy(): void {\n this.compRef?.destroy();\n this.viewContainer?.clear();\n }\n}\n\n","import { Component, OnInit, Input, Output, EventEmitter, TemplateRef, ViewChild, OnDestroy } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@Component({\n selector: 'pep-addon-block-loader',\n templateUrl: './addon-block-loader.component.html',\n styleUrls: ['./addon-block-loader.component.scss']\n})\nexport class PepAddonBlockLoaderComponent implements OnInit, OnDestroy {\n @ViewChild('dialogTemplate', { static: true, read: TemplateRef }) dialogTemplate!: TemplateRef<any>;\n \n @Input() remoteEntry: string = '';\n\n private _blockType: PepBlockDataType = 'AddonBlock';\n @Input() \n set blockType(value: PepBlockDataType) {\n this._blockType = value;\n }\n get blockType(): PepBlockDataType {\n return this._blockType;\n }\n\n private _name = '';\n @Input() \n set name(value: string) {\n this._name = value;\n }\n get name(): string {\n return this._name;\n }\n\n @Input() hostObject = null;\n \n private _dialogRef: MatDialogRef<any> = null;\n @Input()\n set dialogRef(value: MatDialogRef<any>) {\n this._dialogRef = value;\n this.inDialog = this._dialogRef != null;\n }\n get dialogRef(): MatDialogRef<any> {\n return this._dialogRef;\n }\n \n @Output() hostEvents: EventEmitter<any> = new EventEmitter<any>();\n @Output() blockLoad: EventEmitter<void> = new EventEmitter<void>();\n \n inDialog = false;\n remotePathOptions: PepRemoteLoaderOptions = null;\n \n constructor(private remoteLoaderService: PepRemoteLoaderService) {\n //\n }\n \n ngOnInit() {\n this.remoteLoaderService.getBlockRemoteLoaderOptions(this.name, this.blockType, this.remoteEntry).then(options => {\n this.remotePathOptions = options;\n });\n }\n\n ngOnDestroy(): void {\n if (this.dialogRef) {\n this.dialogRef = null;\n }\n\n this.remotePathOptions = null;\n }\n\n onBlockLoad() {\n this.blockLoad.emit();\n }\n\n onHostEvents(event: any) {\n this.hostEvents.emit(event);\n }\n\n closeDialog(event) {\n this.dialogRef?.close(event);\n }\n}","<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n</ng-template>","import { ComponentFactoryResolver, ComponentRef, Injectable, Injector } from '@angular/core';\nimport { IAddonBlockLoaderDialogOptions, IAddonBlockLoaderOptions, IBlockLoaderData } from './remote-loader.model';\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepAddonBlockLoaderService {\n \n constructor(\n private resolver: ComponentFactoryResolver,\n private dialogService: PepDialogService,\n ) {\n //\n }\n\n private loadAddonBlockInternal(options: IAddonBlockLoaderDialogOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n if (options.container !== null) {\n const factory = this.resolver.resolveComponentFactory(PepAddonBlockLoaderComponent);\n const componentRef = options.container.createComponent(factory);\n const addonBlockInstance = componentRef.instance;\n\n addonBlockInstance.blockType = options.blockType || 'AddonBlock';\n addonBlockInstance.name = options.name;\n addonBlockInstance.hostObject = options.hostObject;\n\n addonBlockInstance.hostEvents.subscribe((event) => {\n if (options.hostEventsCallback) {\n options.hostEventsCallback(event);\n }\n });\n\n return componentRef;\n } else {\n return null;\n }\n }\n\n loadAddonBlockInContainer(options: IAddonBlockLoaderOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n return this.loadAddonBlockInternal(options);\n }\n\n loadAddonBlockInDialog(options: IAddonBlockLoaderDialogOptions): MatDialogRef<any> | null {\n const componentRef = this.loadAddonBlockInternal(options);\n \n if (componentRef) {\n const addonBlockInstance = componentRef.instance;\n const pepConfig = this.dialogService.getDialogConfig({ disableClose: false, panelClass: 'remote-loader-dialog' }, options.size || 'full-screen');\n const mergeConfig = {...options.config, ...pepConfig}; \n const data = options.data || null;\n addonBlockInstance.dialogRef = this.dialogService.openDialog(addonBlockInstance.dialogTemplate, data, mergeConfig);\n addonBlockInstance.dialogRef.afterClosed().subscribe(() => {\n componentRef.hostView.detach();\n componentRef.hostView.destroy();\n componentRef.destroy();\n });\n return addonBlockInstance.dialogRef;\n\n } else {\n return null;\n }\n }\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { PepAddonBlockLoaderService } from './addon-block-loader.service';\n\nimport { PepRemoteLoaderComponent } from './remote-loader.component';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@NgModule({\n declarations: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n // Material modules,\n MatDialogModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepDialogModule,\n ],\n exports: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n providers: [\n PepAddonBlockLoaderService,\n PepRemoteLoaderService\n ]\n})\nexport class PepRemoteLoaderModule {\n\n\n}\n","/*\n * Public API Surface of remote-loader\n */\nexport * from './addon-block-loader.component';\nexport * from './addon-block-loader.service';\nexport * from './remote-loader.component';\nexport * from './remote-loader.module';\nexport * from './remote-loader.model';\nexport * from './remote-loader.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepRemoteLoaderService","i2","i3","i4.PepRemoteLoaderComponent","i1"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"pepperi-addons-ngx-lib-remote-loader.mjs","sources":["../../../projects/ngx-lib/remote-loader/remote-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.ts","../../../projects/ngx-lib/remote-loader/addon-block-loader.component.html","../../../projects/ngx-lib/remote-loader/addon-block-loader.service.ts","../../../projects/ngx-lib/remote-loader/remote-loader.module.ts","../../../projects/ngx-lib/remote-loader/public-api.ts","../../../projects/ngx-lib/remote-loader/pepperi-addons-ngx-lib-remote-loader.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\nimport { PepAddonService, PepHttpService, PepSessionService} from '@pepperi-addons/ngx-lib';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { IBlockLoaderData } from './remote-loader.model';\nimport { ActivatedRoute } from '@angular/router';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepRemoteLoaderService {\n \n constructor(\n private httpService: PepHttpService,\n private sessionService: PepSessionService,\n private addonService: PepAddonService,\n private route: ActivatedRoute,\n ) {\n //\n }\n\n getRemoteLoaderOptions(blockLoaderData: IBlockLoaderData, remoteEntry = ''): PepRemoteLoaderOptions {\n return {\n addonId: blockLoaderData.relation.AddonUUID,\n remoteEntry: remoteEntry.length > 0 ? remoteEntry : `${blockLoaderData.addonPublicBaseURL}${blockLoaderData.relation.AddonRelativeURL}.js`,\n remoteName: blockLoaderData.relation.AddonRelativeURL,\n exposedModule: `./${blockLoaderData.relation.ModuleName}`,\n componentName: blockLoaderData.relation.ComponentName, \n }\n }\n\n private getAddonBaseUrl(addonUUID: string, fileName = 'api'): string {\n // For devServer run server on localhost.\n const devServer = this.route.snapshot.queryParamMap.get('devServer') === 'true';\n if(devServer) {\n return `http://localhost:4500/${fileName}`;\n } else {\n const baseUrl = this.sessionService.getPapiBaseUrl();\n return `${baseUrl}/addons/api/${addonUUID}/${fileName}`;\n }\n }\n \n async getBlockRemoteLoaderOptions(name: string, blockType: PepBlockDataType = 'AddonBlock', remoteEntry = ''): Promise<PepRemoteLoaderOptions> {\n return new Promise((resolve, reject) => {\n const pagesAddonUuid = this.addonService.getPagesAddonUUID();\n const pagesBaseUrl = this.getAddonBaseUrl(pagesAddonUuid, 'addon_blocks');\n const url = `${pagesBaseUrl}/get_addon_block_loader_data?name=${name}&blockType=${blockType}`;\n this.httpService.getHttpCall(url).toPromise().then((data: IBlockLoaderData) => {\n if (data) {\n resolve(this.getRemoteLoaderOptions(data, remoteEntry));\n } else {\n reject(`Addon block with name - ${name} is not found for type - ${blockType}`);\n }\n }); \n });\n }\n}\n","import { PepAddonService } from '@pepperi-addons/ngx-lib';\nimport { Component, Input, OnChanges, ViewChild, ViewContainerRef, ComponentFactoryResolver,\n Injector, NgModuleFactory, Compiler, EventEmitter, Output, ComponentRef, SimpleChanges, NgZone, createNgModuleRef } from '@angular/core';\nimport { loadRemoteModule } from '@angular-architects/module-federation';\nimport { PepRemoteLoaderOptions } from './remote-loader.model';\ndeclare let __webpack_public_path__;\n\n@Component({\n selector: 'pep-remote-loader',\n template: `\n <!-- <mat-spinner *ngIf=\"showSpinner; else placeHolder\"></mat-spinner> -->\n <ng-template #placeHolder></ng-template>\n `\n})\nexport class PepRemoteLoaderComponent implements OnChanges {\n @ViewChild('placeHolder', { read: ViewContainerRef, static: true }) viewContainer: ViewContainerRef;\n \n private _options: PepRemoteLoaderOptions = null;\n @Input()\n set options(value: PepRemoteLoaderOptions) {\n this._options = value;\n if (value) {\n this.loadModule();\n }\n }\n get options(): PepRemoteLoaderOptions {\n return this._options;\n }\n \n // This is the data passed by the API Design documentation.\n private _hostObject: any = null;\n @Input()\n set hostObject(value: any) { \n this._hostObject = value;\n this.setHostComponentIntoComponentRef();\n }\n get hostObject(): any {\n return this._hostObject;\n }\n\n @Output() hostEvents: EventEmitter<any> = new EventEmitter();\n @Output() load: EventEmitter<any> = new EventEmitter();\n // showSpinner = true;\n \n private compRef: ComponentRef<any>;\n\n constructor(\n private injector: Injector,\n private cfr: ComponentFactoryResolver,\n private compiler: Compiler,\n private pepAddonService: PepAddonService,\n // private zone: NgZone,\n ) { }\n\n private setHostComponentIntoComponentRef() {\n if (this.hostObject && this.compRef?.instance) {\n this.compRef.instance.hostObject = this.hostObject;\n\n // TODO: Check if this is needed?? if not remove this.\n if (this.compRef?.instance?.ngOnChanges) {\n this.compRef.instance.ngOnChanges(this.hostObject);\n }\n }\n }\n\n async ngOnChanges(changes: SimpleChanges) {\n // if (changes?.options?.currentValue) {\n // this.loadModule(changes?.options?.currentValue);\n // }\n }\n\n private async loadModule() {\n const t0 = performance.now();\n \n // Check if only need update\n if (!this.options?.update) {\n this.viewContainer?.clear();\n \n // Load Component\n if (this.options?.noModule) {\n const component = await loadRemoteModule(this.options).then(m => m[this.options.componentName]);\n \n // New code\n // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector });\n\n // Old code\n const componentFactory = this.cfr.resolveComponentFactory(component);\n this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector);\n }\n // Load Module\n else {\n const publicPathArr = this.options.remoteEntry.split('/');\n const publicPath = publicPathArr.slice(0, publicPathArr.length - 1).join('/')+'/';\n __webpack_public_path__ = publicPath;\n this.pepAddonService.setAddonStaticFolder(publicPath, this.options.addonId);\n\n const module = await loadRemoteModule(this.options).then(m => m);\n \n // New code\n // const moduleRef = createNgModuleRef(module, this.injector);\n // const component = module[this.options.componentName];\n // this.compRef = this.viewContainer.createComponent(component, { injector: this.injector, ngModuleRef: moduleRef });\n \n // Old code\n // const moduleFactory: NgModuleFactory<any> = this.compiler.compileModuleSync(module[this.options.exposedModule.replace('./','')]);\n // const moduleRef = moduleFactory.create(this.injector);\n \n // const componentFactory = moduleRef?.componentFactoryResolver?.resolveComponentFactory(module[this.options.componentName]);\n // this.compRef = this.viewContainer.createComponent(componentFactory, 0, this.injector, null, moduleRef);\n\n\n // New New code\n const moduleRef = createNgModuleRef(module[this.options.exposedModule.replace('./','')], this.injector);\n this.compRef = this.viewContainer.createComponent(module[this.options.componentName], { injector: this.injector, ngModuleRef: moduleRef });\n\n const t1 = performance.now();\n console.log('remote module load performance: ' + (t1-t0)/1000);\n }\n\n this.load.emit();\n }\n\n if (this.compRef) {\n this.setHostComponentIntoComponentRef();\n \n this.compRef?.instance['hostEvents']?.subscribe(e => {\n // switch(e.action){\n // case 'addon-loaded':\n // this.showSpinner = false;\n // }\n this.hostEvents.emit(e)\n });\n }\n }\n\n ngOnDestroy(): void {\n this.compRef?.destroy();\n this.viewContainer?.clear();\n }\n}\n\n","import { Component, OnInit, Input, Output, EventEmitter, TemplateRef, ViewChild, OnDestroy } from '@angular/core';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepBlockDataType, PepRemoteLoaderOptions } from './remote-loader.model';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@Component({\n selector: 'pep-addon-block-loader',\n templateUrl: './addon-block-loader.component.html',\n styleUrls: ['./addon-block-loader.component.scss']\n})\nexport class PepAddonBlockLoaderComponent implements OnInit, OnDestroy {\n @ViewChild('dialogTemplate', { static: true, read: TemplateRef }) dialogTemplate!: TemplateRef<any>;\n \n @Input() remoteEntry: string = '';\n\n private _blockType: PepBlockDataType = 'AddonBlock';\n @Input() \n set blockType(value: PepBlockDataType) {\n this._blockType = value;\n }\n get blockType(): PepBlockDataType {\n return this._blockType;\n }\n\n private _name = '';\n @Input() \n set name(value: string) {\n this._name = value;\n }\n get name(): string {\n return this._name;\n }\n\n @Input() hostObject = null;\n \n private _dialogRef: MatDialogRef<any> = null;\n @Input()\n set dialogRef(value: MatDialogRef<any>) {\n this._dialogRef = value;\n this.inDialog = this._dialogRef != null;\n }\n get dialogRef(): MatDialogRef<any> {\n return this._dialogRef;\n }\n \n @Output() hostEvents: EventEmitter<any> = new EventEmitter<any>();\n @Output() blockLoad: EventEmitter<void> = new EventEmitter<void>();\n \n inDialog = false;\n remotePathOptions: PepRemoteLoaderOptions = null;\n \n constructor(private remoteLoaderService: PepRemoteLoaderService) {\n //\n }\n \n ngOnInit() {\n this.remoteLoaderService.getBlockRemoteLoaderOptions(this.name, this.blockType, this.remoteEntry).then(options => {\n this.remotePathOptions = options;\n });\n }\n\n ngOnDestroy(): void {\n if (this.dialogRef) {\n this.dialogRef = null;\n }\n\n this.remotePathOptions = null;\n }\n\n onBlockLoad() {\n this.blockLoad.emit();\n }\n\n onHostEvents(event: any) {\n this.hostEvents.emit(event);\n }\n\n closeDialog(event) {\n this.dialogRef?.close(event);\n }\n}","<ng-container *ngIf=\"!inDialog\">\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n</ng-container>\n\n<ng-template #dialogTemplate let-data>\n <pep-dialog [showClose]=\"data?.showClose\" [showHeader]=\"data?.showHeader\" [showFooter]=\"data?.showFooter\" [title]=\"data?.title\" (close)=\"closeDialog($event)\">\n <ng-container pep-dialog-content>\n <ng-container *ngTemplateOutlet=\"remoteLoaderTemplate\"></ng-container>\n </ng-container>\n </pep-dialog>\n</ng-template>\n\n<ng-template #remoteLoaderTemplate>\n <pep-remote-loader *ngIf=\"remotePathOptions\"\n [options]=\"remotePathOptions\"\n [hostObject]=\"hostObject\"\n (hostEvents)=\"onHostEvents($event);\"\n (load)=\"onBlockLoad()\">\n </pep-remote-loader>\n</ng-template>","import { ComponentFactoryResolver, ComponentRef, Injectable, Injector } from '@angular/core';\nimport { IAddonBlockLoaderDialogOptions, IAddonBlockLoaderOptions, IBlockLoaderData } from './remote-loader.model';\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { MatDialogRef } from '@angular/material/dialog';\nimport { PepDialogService } from '@pepperi-addons/ngx-lib/dialog';\n\n@Injectable({ \n providedIn: 'root' \n})\nexport class PepAddonBlockLoaderService {\n \n constructor(\n private resolver: ComponentFactoryResolver,\n private dialogService: PepDialogService,\n ) {\n //\n }\n\n private loadAddonBlockInternal(options: IAddonBlockLoaderDialogOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n if (options.container !== null) {\n const factory = this.resolver.resolveComponentFactory(PepAddonBlockLoaderComponent);\n const componentRef = options.container.createComponent(factory);\n const addonBlockInstance = componentRef.instance;\n\n addonBlockInstance.blockType = options.blockType || 'AddonBlock';\n addonBlockInstance.name = options.name;\n addonBlockInstance.hostObject = options.hostObject;\n\n addonBlockInstance.hostEvents.subscribe((event) => {\n if (options.hostEventsCallback) {\n options.hostEventsCallback(event);\n }\n });\n\n return componentRef;\n } else {\n return null;\n }\n }\n\n loadAddonBlockInContainer(options: IAddonBlockLoaderOptions): ComponentRef<PepAddonBlockLoaderComponent> | null {\n return this.loadAddonBlockInternal(options);\n }\n\n loadAddonBlockInDialog(options: IAddonBlockLoaderDialogOptions): MatDialogRef<any> | null {\n const componentRef = this.loadAddonBlockInternal(options);\n \n if (componentRef) {\n const addonBlockInstance = componentRef.instance;\n const pepConfig = this.dialogService.getDialogConfig({ disableClose: false, panelClass: 'remote-loader-dialog' }, options.size || 'full-screen');\n const mergeConfig = {...options.config, ...pepConfig}; \n const data = options.data || null;\n addonBlockInstance.dialogRef = this.dialogService.openDialog(addonBlockInstance.dialogTemplate, data, mergeConfig);\n addonBlockInstance.dialogRef.afterClosed().subscribe(() => {\n componentRef.hostView.detach();\n componentRef.hostView.destroy();\n componentRef.destroy();\n });\n return addonBlockInstance.dialogRef;\n\n } else {\n return null;\n }\n }\n}\n","import { HttpClientModule } from '@angular/common/http';\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { PepNgxLibModule } from '@pepperi-addons/ngx-lib';\nimport { PepDialogModule } from '@pepperi-addons/ngx-lib/dialog';\n\nimport { PepAddonBlockLoaderComponent } from './addon-block-loader.component';\nimport { PepAddonBlockLoaderService } from './addon-block-loader.service';\n\nimport { PepRemoteLoaderComponent } from './remote-loader.component';\nimport { PepRemoteLoaderService } from './remote-loader.service';\n\n@NgModule({\n declarations: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n imports: [\n CommonModule,\n HttpClientModule,\n // Material modules,\n MatDialogModule,\n // ngx-lib modules\n PepNgxLibModule,\n PepDialogModule,\n ],\n exports: [\n PepAddonBlockLoaderComponent,\n PepRemoteLoaderComponent,\n ],\n providers: [\n PepAddonBlockLoaderService,\n PepRemoteLoaderService\n ]\n})\nexport class PepRemoteLoaderModule {\n\n\n}\n","/*\n * Public API Surface of remote-loader\n */\nexport * from './addon-block-loader.component';\nexport * from './addon-block-loader.service';\nexport * from './remote-loader.component';\nexport * from './remote-loader.module';\nexport * from './remote-loader.model';\nexport * from './remote-loader.service';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PepRemoteLoaderService","i2","i3","i4.PepRemoteLoaderComponent","i1"],"mappings":"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"}
|