@esfaenza/extensions 13.1.5 → 13.1.6
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/lib/models/InboundMessageTypes.mjs +7 -0
- package/esm2020/lib/models/InterComMessage.mjs +14 -0
- package/esm2020/lib/modules/extensions.full.module.mjs +4 -1
- package/esm2020/lib/services/extensions.intercom.service.mjs +53 -0
- package/esm2020/public-api.mjs +5 -1
- package/fesm2015/esfaenza-extensions.mjs +72 -1
- package/fesm2015/esfaenza-extensions.mjs.map +1 -1
- package/fesm2020/esfaenza-extensions.mjs +72 -1
- package/fesm2020/esfaenza-extensions.mjs.map +1 -1
- package/lib/models/InboundMessageTypes.d.ts +5 -0
- package/lib/models/InterComMessage.d.ts +12 -0
- package/lib/modules/extensions.full.module.d.ts +1 -0
- package/lib/services/extensions.intercom.service.d.ts +28 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -0
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
/** Enumeratore dei tipi di messaggio che i moduli esterni possono contattare sull'applicazione principale */
|
|
2
|
+
export var InboundMessageTypes;
|
|
3
|
+
(function (InboundMessageTypes) {
|
|
4
|
+
/** Evento di navigazione */
|
|
5
|
+
InboundMessageTypes[InboundMessageTypes["Navigation"] = 0] = "Navigation";
|
|
6
|
+
})(InboundMessageTypes || (InboundMessageTypes = {}));
|
|
7
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW5ib3VuZE1lc3NhZ2VUeXBlcy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9tb2RlbHMvSW5ib3VuZE1lc3NhZ2VUeXBlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw2R0FBNkc7QUFFN0csTUFBTSxDQUFOLElBQVksbUJBR1g7QUFIRCxXQUFZLG1CQUFtQjtJQUMzQiw0QkFBNEI7SUFDNUIseUVBQVUsQ0FBQTtBQUNkLENBQUMsRUFIVyxtQkFBbUIsS0FBbkIsbUJBQW1CLFFBRzlCIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIEVudW1lcmF0b3JlIGRlaSB0aXBpIGRpIG1lc3NhZ2dpbyBjaGUgaSBtb2R1bGkgZXN0ZXJuaSBwb3Nzb25vIGNvbnRhdHRhcmUgc3VsbCdhcHBsaWNhemlvbmUgcHJpbmNpcGFsZSAqL1xyXG5cclxuZXhwb3J0IGVudW0gSW5ib3VuZE1lc3NhZ2VUeXBlcyB7XHJcbiAgICAvKiogRXZlbnRvIGRpIG5hdmlnYXppb25lICovXHJcbiAgICBOYXZpZ2F0aW9uXHJcbn1cclxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/** Classe che rappresenta un generico messaggio scambiato fra applicazione e moduli */
|
|
2
|
+
export class InterComMessage {
|
|
3
|
+
/**
|
|
4
|
+
* Costruttore
|
|
5
|
+
*
|
|
6
|
+
* @param type Tipo di messaggio
|
|
7
|
+
* @param message Contenuto del messaggio
|
|
8
|
+
*/
|
|
9
|
+
constructor(type, message) {
|
|
10
|
+
this.type = type;
|
|
11
|
+
this.message = message;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSW50ZXJDb21NZXNzYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL21vZGVscy9JbnRlckNvbU1lc3NhZ2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsdUZBQXVGO0FBRXZGLE1BQU0sT0FBTyxlQUFlO0lBQ3hCOzs7OztPQUtHO0lBQ0gsWUFBbUIsSUFBUyxFQUFTLE9BQVk7UUFBOUIsU0FBSSxHQUFKLElBQUksQ0FBSztRQUFTLFlBQU8sR0FBUCxPQUFPLENBQUs7SUFBSSxDQUFDO0NBQ3pEIiwic291cmNlc0NvbnRlbnQiOlsiLyoqIENsYXNzZSBjaGUgcmFwcHJlc2VudGEgdW4gZ2VuZXJpY28gbWVzc2FnZ2lvIHNjYW1iaWF0byBmcmEgYXBwbGljYXppb25lIGUgbW9kdWxpICovXHJcblxyXG5leHBvcnQgY2xhc3MgSW50ZXJDb21NZXNzYWdlIHtcclxuICAgIC8qKlxyXG4gICAgICogQ29zdHJ1dHRvcmVcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdHlwZSBUaXBvIGRpIG1lc3NhZ2dpb1xyXG4gICAgICogQHBhcmFtIG1lc3NhZ2UgQ29udGVudXRvIGRlbCBtZXNzYWdnaW9cclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IocHVibGljIHR5cGU6IGFueSwgcHVibGljIG1lc3NhZ2U6IGFueSkgeyB9XHJcbn1cclxuIl19
|
|
@@ -8,6 +8,7 @@ import { ExportService } from "../services/extensions.exports.service";
|
|
|
8
8
|
import { HashingService } from "../services/extensions.hashing.service";
|
|
9
9
|
import { MessageService } from "../services/extensions.messages.service";
|
|
10
10
|
import { UtilityService } from "../services/extensions.utilities.service";
|
|
11
|
+
import { InterComService } from '../services/extensions.intercom.service';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
/**
|
|
13
14
|
* Modulo di estensione che registra autonomamente **TUTTI** i servizi di estensione:
|
|
@@ -17,6 +18,7 @@ import * as i0 from "@angular/core";
|
|
|
17
18
|
* HashingService,
|
|
18
19
|
* MessageService,
|
|
19
20
|
* UtilityService
|
|
21
|
+
* InterComService
|
|
20
22
|
*
|
|
21
23
|
* con eventuali provider che utilizzano
|
|
22
24
|
*/
|
|
@@ -31,6 +33,7 @@ export class FullExtensionsModule {
|
|
|
31
33
|
HashingService,
|
|
32
34
|
MessageService,
|
|
33
35
|
UtilityService,
|
|
36
|
+
InterComService,
|
|
34
37
|
{ provide: EXT_LOCALE, useValue: config?.locale || 'it-IT' },
|
|
35
38
|
{ provide: EXT_FANCY_ALERTS, useValue: config?.fancy_alerts || true },
|
|
36
39
|
{ provide: APPSEARCH_PREFIX, useValue: config?.appsearch_prefix || 'Hot' },
|
|
@@ -45,4 +48,4 @@ FullExtensionsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", ve
|
|
|
45
48
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: FullExtensionsModule, decorators: [{
|
|
46
49
|
type: NgModule
|
|
47
50
|
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5mdWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL2xpYi9tb2R1bGVzL2V4dGVuc2lvbnMuZnVsbC5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxRQUFRLEVBQXVCLE1BQU0sZUFBZSxDQUFDO0FBSTlELE9BQU8sRUFBRSxVQUFVLEVBQUUsZ0JBQWdCLEVBQUUsZ0JBQWdCLEVBQUUsYUFBYSxFQUFFLE1BQU0sV0FBVyxDQUFDO0FBRTFGLFVBQVU7QUFDVixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUM1RSxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDbkUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx3Q0FBd0MsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDekUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzFFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQzs7QUFFMUU7Ozs7Ozs7Ozs7O0dBV0c7QUFFSCxNQUFNLE9BQU8sb0JBQW9CO0lBQy9CLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBK0I7UUFDNUMsT0FBTztZQUNMLFFBQVEsRUFBRSxvQkFBb0I7WUFDOUIsU0FBUyxFQUFFO2dCQUNULGdCQUFnQjtnQkFDaEIsV0FBVztnQkFDWCxhQUFhO2dCQUNiLGNBQWM7Z0JBQ2QsY0FBYztnQkFDZCxjQUFjO2dCQUNkLGVBQWU7Z0JBQ2YsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsTUFBTSxJQUFJLE9BQU8sRUFBRTtnQkFDNUQsRUFBRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxZQUFZLElBQUksSUFBSSxFQUFFO2dCQUNyRSxFQUFFLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGdCQUFnQixJQUFJLEtBQUssRUFBQztnQkFDekUsRUFBRSxPQUFPLEVBQUUsYUFBYSxFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsU0FBUyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLEVBQUUsU0FBUyxFQUFDO2FBQzNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7O2lIQWxCVSxvQkFBb0I7a0hBQXBCLG9CQUFvQjtrSEFBcEIsb0JBQW9COzJGQUFwQixvQkFBb0I7a0JBRGhDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEV4dGVuc2lvbnNNb2R1bGVDb25maWcgfSBmcm9tICcuLi9tb2RlbHMvRXh0ZW5zaW9uc01vZHVsZUNvbmZpZyc7XHJcbmltcG9ydCB7IEVYVF9MT0NBTEUsIEVYVF9GQU5DWV9BTEVSVFMsIEFQUFNFQVJDSF9QUkVGSVgsIEVYVF9BTExPV19VVEMgfSBmcm9tICcuLi90b2tlbnMnO1xyXG5cclxuLy8gU2Vydml6aVxyXG5pbXBvcnQgeyBDbGlwYm9hcmRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2V4dGVuc2lvbnMuY2xpcGJvYXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgRGF0ZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5kYXRlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IEV4cG9ydFNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5leHBvcnRzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSGFzaGluZ1NlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5oYXNoaW5nLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgTWVzc2FnZVNlcnZpY2UgfSBmcm9tIFwiLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5tZXNzYWdlcy5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFV0aWxpdHlTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2V4dGVuc2lvbnMudXRpbGl0aWVzLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgSW50ZXJDb21TZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvZXh0ZW5zaW9ucy5pbnRlcmNvbS5zZXJ2aWNlJztcclxuXHJcbi8qKlxyXG4gKiBNb2R1bG8gZGkgZXN0ZW5zaW9uZSBjaGUgcmVnaXN0cmEgYXV0b25vbWFtZW50ZSAqKlRVVFRJKiogaSBzZXJ2aXppIGRpIGVzdGVuc2lvbmU6IFxyXG4gKiBDbGlwYm9hcmRTZXJ2aWNlLCBcclxuICogRGF0ZVNlcnZpY2UsIFxyXG4gKiBFeHBvcnRTZXJ2aWNlLCBcclxuICogSGFzaGluZ1NlcnZpY2UsIFxyXG4gKiBNZXNzYWdlU2VydmljZSwgXHJcbiAqIFV0aWxpdHlTZXJ2aWNlXHJcbiAqIEludGVyQ29tU2VydmljZVxyXG4gKiBcclxuICogY29uIGV2ZW50dWFsaSBwcm92aWRlciBjaGUgdXRpbGl6emFub1xyXG4gKi9cclxuQE5nTW9kdWxlKClcclxuZXhwb3J0IGNsYXNzIEZ1bGxFeHRlbnNpb25zTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBFeHRlbnNpb25zTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxGdWxsRXh0ZW5zaW9uc01vZHVsZT4ge1xyXG4gICAgcmV0dXJuIHtcclxuICAgICAgbmdNb2R1bGU6IEZ1bGxFeHRlbnNpb25zTW9kdWxlLFxyXG4gICAgICBwcm92aWRlcnM6IFtcclxuICAgICAgICBDbGlwYm9hcmRTZXJ2aWNlLFxyXG4gICAgICAgIERhdGVTZXJ2aWNlLFxyXG4gICAgICAgIEV4cG9ydFNlcnZpY2UsXHJcbiAgICAgICAgSGFzaGluZ1NlcnZpY2UsXHJcbiAgICAgICAgTWVzc2FnZVNlcnZpY2UsXHJcbiAgICAgICAgVXRpbGl0eVNlcnZpY2UsXHJcbiAgICAgICAgSW50ZXJDb21TZXJ2aWNlLFxyXG4gICAgICAgIHsgcHJvdmlkZTogRVhUX0xPQ0FMRSwgdXNlVmFsdWU6IGNvbmZpZz8ubG9jYWxlIHx8ICdpdC1JVCcgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEVYVF9GQU5DWV9BTEVSVFMsIHVzZVZhbHVlOiBjb25maWc/LmZhbmN5X2FsZXJ0cyB8fCB0cnVlIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBBUFBTRUFSQ0hfUFJFRklYLCB1c2VWYWx1ZTogY29uZmlnPy5hcHBzZWFyY2hfcHJlZml4IHx8ICdIb3QnfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEVYVF9BTExPV19VVEMsIHVzZVZhbHVlOiBjb25maWc/LmFsbG93X3V0YyA9PSBudWxsID8gZmFsc2UgOiBjb25maWc/LmFsbG93X3V0Y31cclxuICAgICAgXVxyXG4gICAgfTtcclxuICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
// Librerie
|
|
4
|
+
import { Subject } from "rxjs";
|
|
5
|
+
// Modelli
|
|
6
|
+
import { InterComMessage } from "../models/InterComMessage";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
/** Service che si occupa di gestire la comunicazione fra i moduli interni ed esterni dell'applicativo */
|
|
9
|
+
export class InterComService {
|
|
10
|
+
constructor() {
|
|
11
|
+
/** Messaggi in uscita, uno per ogni recipient registratosi dall'entrypoint **register** */
|
|
12
|
+
this.outbounds = {};
|
|
13
|
+
/** Messaggi in entrata, unico per applicazione principale */
|
|
14
|
+
this.inbounds = new Subject();
|
|
15
|
+
}
|
|
16
|
+
/**
|
|
17
|
+
* Metodo che permette di inviare un messaggio dall'applicazione ad un modulo esterno o viceversa
|
|
18
|
+
*
|
|
19
|
+
* @param {any} messageType Tipologia di messaggio. Sarà di tipo **InboundMessageTypes** per tutti i messaggi inbound, dinamico per tutti i mesaggi outbound (il tipo dipenderà dagli enum dei messaggi dei moduli esterni)
|
|
20
|
+
* @param {any} message Messaggio da inviare che può essere un dto in casi complessi ma dovrà essere gestito a dovere lato implementativo
|
|
21
|
+
* @param {string} recipient Destinatario del messaggio. Per i messaggi inbound dev'essere lasciato vuoto, per i messaggi outbound sarà valorizzato alla chiave del modulo a cui si vuole inviare il messaggio
|
|
22
|
+
*/
|
|
23
|
+
send(messageType, message, recipient) {
|
|
24
|
+
let msg = new InterComMessage(messageType, message);
|
|
25
|
+
// Se non c'è un recipient significa che è un modulo esterno che invia messaggi al modulo main (quindi messaggio in entrata - inbound)
|
|
26
|
+
// Altrimenti significa che è il modulo main ad inviare messaggi ai moduli esterni (messaggio in uscita - outbound)
|
|
27
|
+
if (!recipient) {
|
|
28
|
+
this.inbounds.next(msg);
|
|
29
|
+
}
|
|
30
|
+
else {
|
|
31
|
+
if (!this.outbounds[recipient])
|
|
32
|
+
console.warn("@esfaenza/extensions - InterComService: Impossibile inviare il messaggio al recipient " + recipient + " assicurarsi che il modulo sia caricato e che effettui la chiamata al metodo 'regisster'");
|
|
33
|
+
else
|
|
34
|
+
this.outbounds[recipient].next(msg);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Permette di registrare un modulo esterno alla lista dei moduli in listening sulla coda di messaggi
|
|
39
|
+
*
|
|
40
|
+
* @param {string} key Chiave del modulo da registrare. Tutti i messaggi inbound saranno inviati dall'applicazione principale su questa chiave
|
|
41
|
+
*/
|
|
42
|
+
register(key) {
|
|
43
|
+
if (this.outbounds[key])
|
|
44
|
+
throw "@esfaenza/extensions - InterComService: Impossibile registrare più volte lo stesso modulo";
|
|
45
|
+
this.outbounds[key] = new Subject();
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
InterComService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
49
|
+
InterComService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService });
|
|
50
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService, decorators: [{
|
|
51
|
+
type: Injectable
|
|
52
|
+
}] });
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5pbnRlcmNvbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuaW50ZXJjb20uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxXQUFXO0FBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixVQUFVO0FBQ1YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDOztBQUU1RCx5R0FBeUc7QUFFekcsTUFBTSxPQUFPLGVBQWU7SUFENUI7UUFHSSwyRkFBMkY7UUFDcEYsY0FBUyxHQUErQyxFQUFFLENBQUM7UUFDbEUsNkRBQTZEO1FBQ3RELGFBQVEsR0FBNkIsSUFBSSxPQUFPLEVBQW1CLENBQUM7S0FtQzlFO0lBakNHOzs7Ozs7T0FNRztJQUNJLElBQUksQ0FBQyxXQUFnQixFQUFFLE9BQVksRUFBRSxTQUFrQjtRQUMxRCxJQUFJLEdBQUcsR0FBRyxJQUFJLGVBQWUsQ0FBQyxXQUFXLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFFcEQsc0lBQXNJO1FBQ3RJLG1IQUFtSDtRQUNuSCxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ1osSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7U0FDM0I7YUFDSTtZQUNELElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQztnQkFDMUIsT0FBTyxDQUFDLElBQUksQ0FBQyx3RkFBd0YsR0FBRyxTQUFTLEdBQUcsMEZBQTBGLENBQUMsQ0FBQzs7Z0JBRWhOLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFBO1NBQzFDO0lBQ0wsQ0FBQztJQUVEOzs7O09BSUc7SUFDSSxRQUFRLENBQUMsR0FBVztRQUN2QixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDO1lBQ25CLE1BQU0sMkZBQTJGLENBQUM7UUFDdEcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLE9BQU8sRUFBbUIsQ0FBQztJQUN6RCxDQUFDOzs0R0F2Q1EsZUFBZTtnSEFBZixlQUFlOzJGQUFmLGVBQWU7a0JBRDNCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gTGlicmVyaWVcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEludGVyQ29tTWVzc2FnZSB9IGZyb20gXCIuLi9tb2RlbHMvSW50ZXJDb21NZXNzYWdlXCI7XHJcblxyXG4vKiogU2VydmljZSBjaGUgc2kgb2NjdXBhIGRpIGdlc3RpcmUgbGEgY29tdW5pY2F6aW9uZSBmcmEgaSBtb2R1bGkgaW50ZXJuaSBlZCBlc3Rlcm5pIGRlbGwnYXBwbGljYXRpdm8gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW50ZXJDb21TZXJ2aWNlIHtcclxuXHJcbiAgICAvKiogTWVzc2FnZ2kgaW4gdXNjaXRhLCB1bm8gcGVyIG9nbmkgcmVjaXBpZW50IHJlZ2lzdHJhdG9zaSBkYWxsJ2VudHJ5cG9pbnQgKipyZWdpc3RlcioqICovXHJcbiAgICBwdWJsaWMgb3V0Ym91bmRzOiB7IFtpZDogc3RyaW5nXTogU3ViamVjdDxJbnRlckNvbU1lc3NhZ2U+IH0gPSB7fTtcclxuICAgIC8qKiBNZXNzYWdnaSBpbiBlbnRyYXRhLCB1bmljbyBwZXIgYXBwbGljYXppb25lIHByaW5jaXBhbGUgKi9cclxuICAgIHB1YmxpYyBpbmJvdW5kczogU3ViamVjdDxJbnRlckNvbU1lc3NhZ2U+ID0gbmV3IFN1YmplY3Q8SW50ZXJDb21NZXNzYWdlPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBwZXJtZXR0ZSBkaSBpbnZpYXJlIHVuIG1lc3NhZ2dpbyBkYWxsJ2FwcGxpY2F6aW9uZSBhZCB1biBtb2R1bG8gZXN0ZXJubyBvIHZpY2V2ZXJzYVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbWVzc2FnZVR5cGUgVGlwb2xvZ2lhIGRpIG1lc3NhZ2dpby4gU2Fyw6AgZGkgdGlwbyAqKkluYm91bmRNZXNzYWdlVHlwZXMqKiBwZXIgdHV0dGkgaSBtZXNzYWdnaSBpbmJvdW5kLCBkaW5hbWljbyBwZXIgdHV0dGkgaSBtZXNhZ2dpIG91dGJvdW5kIChpbCB0aXBvIGRpcGVuZGVyw6AgZGFnbGkgZW51bSBkZWkgbWVzc2FnZ2kgZGVpIG1vZHVsaSBlc3Rlcm5pKVxyXG4gICAgICogQHBhcmFtIHthbnl9IG1lc3NhZ2UgTWVzc2FnZ2lvIGRhIGludmlhcmUgY2hlIHB1w7IgZXNzZXJlIHVuIGR0byBpbiBjYXNpIGNvbXBsZXNzaSBtYSBkb3Zyw6AgZXNzZXJlIGdlc3RpdG8gYSBkb3ZlcmUgbGF0byBpbXBsZW1lbnRhdGl2b1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHJlY2lwaWVudCBEZXN0aW5hdGFyaW8gZGVsIG1lc3NhZ2dpby4gUGVyIGkgbWVzc2FnZ2kgaW5ib3VuZCBkZXYnZXNzZXJlIGxhc2NpYXRvIHZ1b3RvLCBwZXIgaSBtZXNzYWdnaSBvdXRib3VuZCBzYXLDoCB2YWxvcml6emF0byBhbGxhIGNoaWF2ZSBkZWwgbW9kdWxvIGEgY3VpIHNpIHZ1b2xlIGludmlhcmUgaWwgbWVzc2FnZ2lvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZW5kKG1lc3NhZ2VUeXBlOiBhbnksIG1lc3NhZ2U6IGFueSwgcmVjaXBpZW50Pzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IG1zZyA9IG5ldyBJbnRlckNvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIG1lc3NhZ2UpO1xyXG5cclxuICAgICAgICAvLyBTZSBub24gYyfDqCB1biByZWNpcGllbnQgc2lnbmlmaWNhIGNoZSDDqCB1biBtb2R1bG8gZXN0ZXJubyBjaGUgaW52aWEgbWVzc2FnZ2kgYWwgbW9kdWxvIG1haW4gKHF1aW5kaSBtZXNzYWdnaW8gaW4gZW50cmF0YSAtIGluYm91bmQpXHJcbiAgICAgICAgLy8gQWx0cmltZW50aSBzaWduaWZpY2EgY2hlIMOoIGlsIG1vZHVsbyBtYWluIGFkIGludmlhcmUgbWVzc2FnZ2kgYWkgbW9kdWxpIGVzdGVybmkgKG1lc3NhZ2dpbyBpbiB1c2NpdGEgLSBvdXRib3VuZClcclxuICAgICAgICBpZiAoIXJlY2lwaWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmluYm91bmRzLm5leHQobXNnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5vdXRib3VuZHNbcmVjaXBpZW50XSlcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkBlc2ZhZW56YS9leHRlbnNpb25zIC0gSW50ZXJDb21TZXJ2aWNlOiBJbXBvc3NpYmlsZSBpbnZpYXJlIGlsIG1lc3NhZ2dpbyBhbCByZWNpcGllbnQgXCIgKyByZWNpcGllbnQgKyBcIiBhc3NpY3VyYXJzaSBjaGUgaWwgbW9kdWxvIHNpYSBjYXJpY2F0byBlIGNoZSBlZmZldHR1aSBsYSBjaGlhbWF0YSBhbCBtZXRvZG8gJ3JlZ2lzc3RlcidcIik7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMub3V0Ym91bmRzW3JlY2lwaWVudF0ubmV4dChtc2cpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVybWV0dGUgZGkgcmVnaXN0cmFyZSB1biBtb2R1bG8gZXN0ZXJubyBhbGxhIGxpc3RhIGRlaSBtb2R1bGkgaW4gbGlzdGVuaW5nIHN1bGxhIGNvZGEgZGkgbWVzc2FnZ2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGVsIG1vZHVsbyBkYSByZWdpc3RyYXJlLiBUdXR0aSBpIG1lc3NhZ2dpIGluYm91bmQgc2FyYW5ubyBpbnZpYXRpIGRhbGwnYXBwbGljYXppb25lIHByaW5jaXBhbGUgc3UgcXVlc3RhIGNoaWF2ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXIoa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5vdXRib3VuZHNba2V5XSlcclxuICAgICAgICAgICAgdGhyb3cgXCJAZXNmYWVuemEvZXh0ZW5zaW9ucyAtIEludGVyQ29tU2VydmljZTogSW1wb3NzaWJpbGUgcmVnaXN0cmFyZSBwacO5IHZvbHRlIGxvIHN0ZXNzbyBtb2R1bG9cIjtcclxuICAgICAgICB0aGlzLm91dGJvdW5kc1trZXldID0gbmV3IFN1YmplY3Q8SW50ZXJDb21NZXNzYWdlPigpO1xyXG4gICAgfVxyXG59Il19
|
package/esm2020/public-api.mjs
CHANGED
|
@@ -13,4 +13,8 @@ export * from './lib/tokens';
|
|
|
13
13
|
export * from './lib/models/CallResult';
|
|
14
14
|
export * from './lib/models/CsvHeaders';
|
|
15
15
|
export * from './lib/models/GenericItem';
|
|
16
|
-
|
|
16
|
+
/** Intercom */
|
|
17
|
+
export * from './lib/models/InboundMessageTypes';
|
|
18
|
+
export * from './lib/models/InterComMessage';
|
|
19
|
+
export * from './lib/services/extensions.intercom.service';
|
|
20
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYyxjQUFjLENBQUM7QUFDN0IsY0FBYyx5QkFBeUIsQ0FBQztBQUN4QyxjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMsMEJBQTBCLENBQUM7QUFFekMsZUFBZTtBQUNmLGNBQWMsa0NBQWtDLENBQUM7QUFDakQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLDRDQUE0QyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcclxuICogUHVibGljIEFQSSBTdXJmYWNlIG9mIGV4dGVuc2lvbnNcclxuICovXHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZXh0ZW5zaW9ucy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2R1bGVzL2V4dGVuc2lvbnMuZnVsbC5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmRhdGVzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmV4cG9ydHMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuY2xpcGJvYXJkLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmhhc2hpbmcuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMubWVzc2FnZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMudXRpbGl0aWVzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvQ2FsbFJlc3VsdCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9Dc3ZIZWFkZXJzJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL0dlbmVyaWNJdGVtJztcclxuXHJcbi8qKiBJbnRlcmNvbSAqL1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvSW5ib3VuZE1lc3NhZ2VUeXBlcyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9JbnRlckNvbU1lc3NhZ2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9leHRlbnNpb25zLmludGVyY29tLnNlcnZpY2UnOyJdfQ==
|
|
@@ -3,6 +3,7 @@ import { InjectionToken, NgModule, Injectable, Optional, Inject } from '@angular
|
|
|
3
3
|
import swal from 'sweetalert2';
|
|
4
4
|
import * as i1 from 'ngx-toastr';
|
|
5
5
|
import { Deserialize } from 'cerialize';
|
|
6
|
+
import { Subject } from 'rxjs';
|
|
6
7
|
|
|
7
8
|
/**
|
|
8
9
|
* Token che identifica il locale da utilizzare per questa libreria, sono supportati i locali 'it-IT' ed 'en-US'
|
|
@@ -1766,6 +1767,67 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
1766
1767
|
type: Injectable
|
|
1767
1768
|
}] });
|
|
1768
1769
|
|
|
1770
|
+
/** Classe che rappresenta un generico messaggio scambiato fra applicazione e moduli */
|
|
1771
|
+
class InterComMessage {
|
|
1772
|
+
/**
|
|
1773
|
+
* Costruttore
|
|
1774
|
+
*
|
|
1775
|
+
* @param type Tipo di messaggio
|
|
1776
|
+
* @param message Contenuto del messaggio
|
|
1777
|
+
*/
|
|
1778
|
+
constructor(type, message) {
|
|
1779
|
+
this.type = type;
|
|
1780
|
+
this.message = message;
|
|
1781
|
+
}
|
|
1782
|
+
}
|
|
1783
|
+
|
|
1784
|
+
// Angular
|
|
1785
|
+
/** Service che si occupa di gestire la comunicazione fra i moduli interni ed esterni dell'applicativo */
|
|
1786
|
+
class InterComService {
|
|
1787
|
+
constructor() {
|
|
1788
|
+
/** Messaggi in uscita, uno per ogni recipient registratosi dall'entrypoint **register** */
|
|
1789
|
+
this.outbounds = {};
|
|
1790
|
+
/** Messaggi in entrata, unico per applicazione principale */
|
|
1791
|
+
this.inbounds = new Subject();
|
|
1792
|
+
}
|
|
1793
|
+
/**
|
|
1794
|
+
* Metodo che permette di inviare un messaggio dall'applicazione ad un modulo esterno o viceversa
|
|
1795
|
+
*
|
|
1796
|
+
* @param {any} messageType Tipologia di messaggio. Sarà di tipo **InboundMessageTypes** per tutti i messaggi inbound, dinamico per tutti i mesaggi outbound (il tipo dipenderà dagli enum dei messaggi dei moduli esterni)
|
|
1797
|
+
* @param {any} message Messaggio da inviare che può essere un dto in casi complessi ma dovrà essere gestito a dovere lato implementativo
|
|
1798
|
+
* @param {string} recipient Destinatario del messaggio. Per i messaggi inbound dev'essere lasciato vuoto, per i messaggi outbound sarà valorizzato alla chiave del modulo a cui si vuole inviare il messaggio
|
|
1799
|
+
*/
|
|
1800
|
+
send(messageType, message, recipient) {
|
|
1801
|
+
let msg = new InterComMessage(messageType, message);
|
|
1802
|
+
// Se non c'è un recipient significa che è un modulo esterno che invia messaggi al modulo main (quindi messaggio in entrata - inbound)
|
|
1803
|
+
// Altrimenti significa che è il modulo main ad inviare messaggi ai moduli esterni (messaggio in uscita - outbound)
|
|
1804
|
+
if (!recipient) {
|
|
1805
|
+
this.inbounds.next(msg);
|
|
1806
|
+
}
|
|
1807
|
+
else {
|
|
1808
|
+
if (!this.outbounds[recipient])
|
|
1809
|
+
console.warn("@esfaenza/extensions - InterComService: Impossibile inviare il messaggio al recipient " + recipient + " assicurarsi che il modulo sia caricato e che effettui la chiamata al metodo 'regisster'");
|
|
1810
|
+
else
|
|
1811
|
+
this.outbounds[recipient].next(msg);
|
|
1812
|
+
}
|
|
1813
|
+
}
|
|
1814
|
+
/**
|
|
1815
|
+
* Permette di registrare un modulo esterno alla lista dei moduli in listening sulla coda di messaggi
|
|
1816
|
+
*
|
|
1817
|
+
* @param {string} key Chiave del modulo da registrare. Tutti i messaggi inbound saranno inviati dall'applicazione principale su questa chiave
|
|
1818
|
+
*/
|
|
1819
|
+
register(key) {
|
|
1820
|
+
if (this.outbounds[key])
|
|
1821
|
+
throw "@esfaenza/extensions - InterComService: Impossibile registrare più volte lo stesso modulo";
|
|
1822
|
+
this.outbounds[key] = new Subject();
|
|
1823
|
+
}
|
|
1824
|
+
}
|
|
1825
|
+
InterComService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
1826
|
+
InterComService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService });
|
|
1827
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImport: i0, type: InterComService, decorators: [{
|
|
1828
|
+
type: Injectable
|
|
1829
|
+
}] });
|
|
1830
|
+
|
|
1769
1831
|
// Angular
|
|
1770
1832
|
/**
|
|
1771
1833
|
* Modulo di estensione che registra autonomamente **TUTTI** i servizi di estensione:
|
|
@@ -1775,6 +1837,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.1.1", ngImpor
|
|
|
1775
1837
|
* HashingService,
|
|
1776
1838
|
* MessageService,
|
|
1777
1839
|
* UtilityService
|
|
1840
|
+
* InterComService
|
|
1778
1841
|
*
|
|
1779
1842
|
* con eventuali provider che utilizzano
|
|
1780
1843
|
*/
|
|
@@ -1789,6 +1852,7 @@ class FullExtensionsModule {
|
|
|
1789
1852
|
HashingService,
|
|
1790
1853
|
MessageService,
|
|
1791
1854
|
UtilityService,
|
|
1855
|
+
InterComService,
|
|
1792
1856
|
{ provide: EXT_LOCALE, useValue: (config === null || config === void 0 ? void 0 : config.locale) || 'it-IT' },
|
|
1793
1857
|
{ provide: EXT_FANCY_ALERTS, useValue: (config === null || config === void 0 ? void 0 : config.fancy_alerts) || true },
|
|
1794
1858
|
{ provide: APPSEARCH_PREFIX, useValue: (config === null || config === void 0 ? void 0 : config.appsearch_prefix) || 'Hot' },
|
|
@@ -1822,6 +1886,13 @@ class CsvHeaders {
|
|
|
1822
1886
|
class GenericItem {
|
|
1823
1887
|
}
|
|
1824
1888
|
|
|
1889
|
+
/** Enumeratore dei tipi di messaggio che i moduli esterni possono contattare sull'applicazione principale */
|
|
1890
|
+
var InboundMessageTypes;
|
|
1891
|
+
(function (InboundMessageTypes) {
|
|
1892
|
+
/** Evento di navigazione */
|
|
1893
|
+
InboundMessageTypes[InboundMessageTypes["Navigation"] = 0] = "Navigation";
|
|
1894
|
+
})(InboundMessageTypes || (InboundMessageTypes = {}));
|
|
1895
|
+
|
|
1825
1896
|
/*
|
|
1826
1897
|
* Public API Surface of extensions
|
|
1827
1898
|
*/
|
|
@@ -1830,5 +1901,5 @@ class GenericItem {
|
|
|
1830
1901
|
* Generated bundle index. Do not edit.
|
|
1831
1902
|
*/
|
|
1832
1903
|
|
|
1833
|
-
export { APPSEARCH_PREFIX, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, MessageService, UtilityService };
|
|
1904
|
+
export { APPSEARCH_PREFIX, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, InboundMessageTypes, InterComMessage, InterComService, MessageService, UtilityService };
|
|
1834
1905
|
//# sourceMappingURL=esfaenza-extensions.mjs.map
|