ng-wsl-library 0.3.3 → 0.3.5

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.
@@ -3,4 +3,5 @@
3
3
  */
4
4
  export * from './wsl-cms.service';
5
5
  export * from './wsl-config.service';
6
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdzbC1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXHJcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZSBvZiBuZy13c2wtbGlicmFyeVxyXG4gKi9cclxuXHJcbmV4cG9ydCAqIGZyb20gJy4vd3NsLWNtcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi93c2wtY29uZmlnLnNlcnZpY2UnO1xyXG4iXX0=
6
+ export * from './wsl-microfrontend.service';
7
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdzbC1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMsbUJBQW1CLENBQUM7QUFDbEMsY0FBYyxzQkFBc0IsQ0FBQztBQUNyQyxjQUFjLDZCQUE2QixDQUFBIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIG5nLXdzbC1saWJyYXJ5XHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi93c2wtY21zLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL3dzbC1jb25maWcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vd3NsLW1pY3JvZnJvbnRlbmQuc2VydmljZSdcclxuIl19
@@ -0,0 +1,61 @@
1
+ import { registerApplication, start } from 'single-spa';
2
+ class WslMicroFrontendService {
3
+ constructor() {
4
+ this.sharedData = {};
5
+ this.eventBus = {};
6
+ }
7
+ // Configurar aplicación principal y micro frontends hijos
8
+ configure(config) {
9
+ this.sharedData = config.sharedData || {};
10
+ // Registrar todas las aplicaciones
11
+ config.applications.forEach(appConfig => {
12
+ registerApplication({
13
+ name: appConfig.name,
14
+ app: appConfig.app,
15
+ activeWhen: appConfig.activeWhen,
16
+ customProps: {
17
+ ...appConfig.customProps,
18
+ eventBus: {
19
+ emit: this.emit.bind(this),
20
+ on: this.on.bind(this)
21
+ },
22
+ sharedData: {
23
+ get: this.getSharedData.bind(this),
24
+ set: this.setSharedData.bind(this)
25
+ }
26
+ }
27
+ });
28
+ });
29
+ // Iniciar single-spa
30
+ start();
31
+ }
32
+ // Sistema de eventos
33
+ emit(eventName, data) {
34
+ if (!this.eventBus[eventName]) {
35
+ return;
36
+ }
37
+ this.eventBus[eventName].forEach(callback => {
38
+ callback(data);
39
+ });
40
+ }
41
+ on(eventName, callback) {
42
+ if (!this.eventBus[eventName]) {
43
+ this.eventBus[eventName] = [];
44
+ }
45
+ this.eventBus[eventName].push(callback);
46
+ // Retornar función para eliminar el oyente
47
+ return () => {
48
+ this.eventBus[eventName] = this.eventBus[eventName].filter(cb => cb !== callback);
49
+ };
50
+ }
51
+ // Gestión de datos compartidos
52
+ getSharedData(key) {
53
+ return this.sharedData[key];
54
+ }
55
+ setSharedData(key, value) {
56
+ this.sharedData[key] = value;
57
+ this.emit('sharedData:changed', { key, value });
58
+ }
59
+ }
60
+ export const wslMicroFrontendService = new WslMicroFrontendService();
61
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid3NsLW1pY3JvZnJvbnRlbmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25nLXdzbC1saWJyYXJ5L3NyYy9saWIvc2VydmljZXMvd3NsLW1pY3JvZnJvbnRlbmQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsS0FBSyxFQUFFLE1BQU0sWUFBWSxDQUFDO0FBZXhELE1BQU0sdUJBQXVCO0lBQTdCO1FBQ1UsZUFBVSxHQUF3QixFQUFFLENBQUM7UUFDckMsYUFBUSxHQUErQixFQUFFLENBQUM7SUErRHBELENBQUM7SUE3REMsMERBQTBEO0lBQzFELFNBQVMsQ0FBQyxNQUFxQjtRQUM3QixJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxVQUFVLElBQUksRUFBRSxDQUFDO1FBRTFDLG1DQUFtQztRQUNuQyxNQUFNLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUN0QyxtQkFBbUIsQ0FBQztnQkFDbEIsSUFBSSxFQUFFLFNBQVMsQ0FBQyxJQUFJO2dCQUNwQixHQUFHLEVBQUUsU0FBUyxDQUFDLEdBQUc7Z0JBQ2xCLFVBQVUsRUFBRSxTQUFTLENBQUMsVUFBVTtnQkFDaEMsV0FBVyxFQUFFO29CQUNYLEdBQUcsU0FBUyxDQUFDLFdBQVc7b0JBQ3hCLFFBQVEsRUFBRTt3QkFDUixJQUFJLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3dCQUMxQixFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO3FCQUN2QjtvQkFDRCxVQUFVLEVBQUU7d0JBQ1YsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzt3QkFDbEMsR0FBRyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztxQkFDbkM7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILHFCQUFxQjtRQUNyQixLQUFLLEVBQUUsQ0FBQztJQUNWLENBQUM7SUFFRCxxQkFBcUI7SUFDckIsSUFBSSxDQUFDLFNBQWlCLEVBQUUsSUFBVTtRQUNoQyxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsRUFBRTtZQUM3QixPQUFPO1NBQ1I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUMxQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsRUFBRSxDQUFDLFNBQWlCLEVBQUUsUUFBa0I7UUFDdEMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLEVBQUU7WUFDN0IsSUFBSSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFLENBQUM7U0FDL0I7UUFFRCxJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUV4QywyQ0FBMkM7UUFDM0MsT0FBTyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxFQUFFLENBQUMsRUFBRSxLQUFLLFFBQVEsQ0FBQyxDQUFDO1FBQ3BGLENBQUMsQ0FBQztJQUNKLENBQUM7SUFFRCwrQkFBK0I7SUFDL0IsYUFBYSxDQUFDLEdBQVc7UUFDdkIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRCxhQUFhLENBQUMsR0FBVyxFQUFFLEtBQVU7UUFDbkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDN0IsSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xELENBQUM7Q0FDRjtBQUVELE1BQU0sQ0FBQyxNQUFNLHVCQUF1QixHQUFHLElBQUksdUJBQXVCLEVBQUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJlZ2lzdGVyQXBwbGljYXRpb24sIHN0YXJ0IH0gZnJvbSAnc2luZ2xlLXNwYSc7XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1pY3JvRnJvbnRDb25maWcge1xyXG4gIG5hbWU6IHN0cmluZztcclxuICBhcHA6ICgpID0+IFByb21pc2U8YW55PjtcclxuICBhY3RpdmVXaGVuOiBzdHJpbmcgfCAoKGxvY2F0aW9uOiBMb2NhdGlvbikgPT4gYm9vbGVhbik7XHJcbiAgY3VzdG9tUHJvcHM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIE1haW5BcHBDb25maWcge1xyXG4gIGRvbUVsZW1lbnRJZDogc3RyaW5nO1xyXG4gIGFwcGxpY2F0aW9uczogTWljcm9Gcm9udENvbmZpZ1tdO1xyXG4gIHNoYXJlZERhdGE/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+O1xyXG59XHJcblxyXG5jbGFzcyBXc2xNaWNyb0Zyb250ZW5kU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzaGFyZWREYXRhOiBSZWNvcmQ8c3RyaW5nLCBhbnk+ID0ge307XHJcbiAgcHJpdmF0ZSBldmVudEJ1czogUmVjb3JkPHN0cmluZywgRnVuY3Rpb25bXT4gPSB7fTtcclxuICBcclxuICAvLyBDb25maWd1cmFyIGFwbGljYWNpw7NuIHByaW5jaXBhbCB5IG1pY3JvIGZyb250ZW5kcyBoaWpvc1xyXG4gIGNvbmZpZ3VyZShjb25maWc6IE1haW5BcHBDb25maWcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2hhcmVkRGF0YSA9IGNvbmZpZy5zaGFyZWREYXRhIHx8IHt9O1xyXG4gICAgXHJcbiAgICAvLyBSZWdpc3RyYXIgdG9kYXMgbGFzIGFwbGljYWNpb25lc1xyXG4gICAgY29uZmlnLmFwcGxpY2F0aW9ucy5mb3JFYWNoKGFwcENvbmZpZyA9PiB7XHJcbiAgICAgIHJlZ2lzdGVyQXBwbGljYXRpb24oe1xyXG4gICAgICAgIG5hbWU6IGFwcENvbmZpZy5uYW1lLFxyXG4gICAgICAgIGFwcDogYXBwQ29uZmlnLmFwcCxcclxuICAgICAgICBhY3RpdmVXaGVuOiBhcHBDb25maWcuYWN0aXZlV2hlbixcclxuICAgICAgICBjdXN0b21Qcm9wczoge1xyXG4gICAgICAgICAgLi4uYXBwQ29uZmlnLmN1c3RvbVByb3BzLFxyXG4gICAgICAgICAgZXZlbnRCdXM6IHtcclxuICAgICAgICAgICAgZW1pdDogdGhpcy5lbWl0LmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIG9uOiB0aGlzLm9uLmJpbmQodGhpcylcclxuICAgICAgICAgIH0sXHJcbiAgICAgICAgICBzaGFyZWREYXRhOiB7XHJcbiAgICAgICAgICAgIGdldDogdGhpcy5nZXRTaGFyZWREYXRhLmJpbmQodGhpcyksXHJcbiAgICAgICAgICAgIHNldDogdGhpcy5zZXRTaGFyZWREYXRhLmJpbmQodGhpcylcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSk7XHJcbiAgICBcclxuICAgIC8vIEluaWNpYXIgc2luZ2xlLXNwYVxyXG4gICAgc3RhcnQoKTtcclxuICB9XHJcbiAgXHJcbiAgLy8gU2lzdGVtYSBkZSBldmVudG9zXHJcbiAgZW1pdChldmVudE5hbWU6IHN0cmluZywgZGF0YT86IGFueSk6IHZvaWQge1xyXG4gICAgaWYgKCF0aGlzLmV2ZW50QnVzW2V2ZW50TmFtZV0pIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmV2ZW50QnVzW2V2ZW50TmFtZV0uZm9yRWFjaChjYWxsYmFjayA9PiB7XHJcbiAgICAgIGNhbGxiYWNrKGRhdGEpO1xyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIG9uKGV2ZW50TmFtZTogc3RyaW5nLCBjYWxsYmFjazogRnVuY3Rpb24pOiAoKSA9PiB2b2lkIHtcclxuICAgIGlmICghdGhpcy5ldmVudEJ1c1tldmVudE5hbWVdKSB7XHJcbiAgICAgIHRoaXMuZXZlbnRCdXNbZXZlbnROYW1lXSA9IFtdO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLmV2ZW50QnVzW2V2ZW50TmFtZV0ucHVzaChjYWxsYmFjayk7XHJcbiAgICBcclxuICAgIC8vIFJldG9ybmFyIGZ1bmNpw7NuIHBhcmEgZWxpbWluYXIgZWwgb3llbnRlXHJcbiAgICByZXR1cm4gKCkgPT4ge1xyXG4gICAgICB0aGlzLmV2ZW50QnVzW2V2ZW50TmFtZV0gPSB0aGlzLmV2ZW50QnVzW2V2ZW50TmFtZV0uZmlsdGVyKGNiID0+IGNiICE9PSBjYWxsYmFjayk7XHJcbiAgICB9O1xyXG4gIH1cclxuICBcclxuICAvLyBHZXN0acOzbiBkZSBkYXRvcyBjb21wYXJ0aWRvc1xyXG4gIGdldFNoYXJlZERhdGEoa2V5OiBzdHJpbmcpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMuc2hhcmVkRGF0YVtrZXldO1xyXG4gIH1cclxuICBcclxuICBzZXRTaGFyZWREYXRhKGtleTogc3RyaW5nLCB2YWx1ZTogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnNoYXJlZERhdGFba2V5XSA9IHZhbHVlO1xyXG4gICAgdGhpcy5lbWl0KCdzaGFyZWREYXRhOmNoYW5nZWQnLCB7IGtleSwgdmFsdWUgfSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgY29uc3Qgd3NsTWljcm9Gcm9udGVuZFNlcnZpY2UgPSBuZXcgV3NsTWljcm9Gcm9udGVuZFNlcnZpY2UoKTsgIl19
@@ -6,6 +6,7 @@ import { CommonModule } from '@angular/common';
6
6
  import * as i2$1 from 'ngx-slick-carousel';
7
7
  import { SlickCarouselModule } from 'ngx-slick-carousel';
8
8
  import { cloneDeep } from 'lodash';
9
+ import { registerApplication, start } from 'single-spa';
9
10
  import * as i4 from '@angular/cdk/drag-drop';
10
11
  import { moveItemInArray, DragDropModule } from '@angular/cdk/drag-drop';
11
12
  import * as i2$2 from '@angular/material/form-field';
@@ -469,6 +470,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
469
470
  }]
470
471
  }], ctorParameters: function () { return []; } });
471
472
 
473
+ class WslMicroFrontendService {
474
+ constructor() {
475
+ this.sharedData = {};
476
+ this.eventBus = {};
477
+ }
478
+ // Configurar aplicación principal y micro frontends hijos
479
+ configure(config) {
480
+ this.sharedData = config.sharedData || {};
481
+ // Registrar todas las aplicaciones
482
+ config.applications.forEach(appConfig => {
483
+ registerApplication({
484
+ name: appConfig.name,
485
+ app: appConfig.app,
486
+ activeWhen: appConfig.activeWhen,
487
+ customProps: Object.assign(Object.assign({}, appConfig.customProps), { eventBus: {
488
+ emit: this.emit.bind(this),
489
+ on: this.on.bind(this)
490
+ }, sharedData: {
491
+ get: this.getSharedData.bind(this),
492
+ set: this.setSharedData.bind(this)
493
+ } })
494
+ });
495
+ });
496
+ // Iniciar single-spa
497
+ start();
498
+ }
499
+ // Sistema de eventos
500
+ emit(eventName, data) {
501
+ if (!this.eventBus[eventName]) {
502
+ return;
503
+ }
504
+ this.eventBus[eventName].forEach(callback => {
505
+ callback(data);
506
+ });
507
+ }
508
+ on(eventName, callback) {
509
+ if (!this.eventBus[eventName]) {
510
+ this.eventBus[eventName] = [];
511
+ }
512
+ this.eventBus[eventName].push(callback);
513
+ // Retornar función para eliminar el oyente
514
+ return () => {
515
+ this.eventBus[eventName] = this.eventBus[eventName].filter(cb => cb !== callback);
516
+ };
517
+ }
518
+ // Gestión de datos compartidos
519
+ getSharedData(key) {
520
+ return this.sharedData[key];
521
+ }
522
+ setSharedData(key, value) {
523
+ this.sharedData[key] = value;
524
+ this.emit('sharedData:changed', { key, value });
525
+ }
526
+ }
527
+ const wslMicroFrontendService = new WslMicroFrontendService();
528
+
472
529
  /*
473
530
  * Public API Surface of ng-wsl-library
474
531
  */
@@ -1261,5 +1318,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.3.0", ngImpor
1261
1318
  * Generated bundle index. Do not edit.
1262
1319
  */
1263
1320
 
1264
- export { CLASS_OPTIONS, CMS_COMPONENTS, CmsEditorComponent, CmsEditorMainMenuComponent, CmsEditorSliderComponent, CmsItemComponent, CmsItemOptionsComponent, DEFAULT_DATA, DEFAULT_MAIN_MENU, DEFAULT_SLIDER, DIRECTION_OPEN, MOCK_CMS, RelativePosition, TYPE_COMPONENTS, WslButtonComponent, WslCmsAddComponentsComponent, WslCmsComponent, WslCmsEditorModule, WslCmsModule, WslCmsService, WslComponentsModule, WslConfigService, WslCurrencyPipe, WslDirectivesModule, WslDynamicComponentDirective, WslHeaderComponent, WslPipesModule, WslSliderComponent };
1321
+ export { CLASS_OPTIONS, CMS_COMPONENTS, CmsEditorComponent, CmsEditorMainMenuComponent, CmsEditorSliderComponent, CmsItemComponent, CmsItemOptionsComponent, DEFAULT_DATA, DEFAULT_MAIN_MENU, DEFAULT_SLIDER, DIRECTION_OPEN, MOCK_CMS, RelativePosition, TYPE_COMPONENTS, WslButtonComponent, WslCmsAddComponentsComponent, WslCmsComponent, WslCmsEditorModule, WslCmsModule, WslCmsService, WslComponentsModule, WslConfigService, WslCurrencyPipe, WslDirectivesModule, WslDynamicComponentDirective, WslHeaderComponent, WslPipesModule, WslSliderComponent, wslMicroFrontendService };
1265
1322
  //# sourceMappingURL=ng-wsl-library.mjs.map