@esfaenza/extensions 11.2.19 → 11.2.23

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (35) hide show
  1. package/bundles/esfaenza-extensions.umd.js +75 -551
  2. package/bundles/esfaenza-extensions.umd.js.map +1 -1
  3. package/bundles/esfaenza-extensions.umd.min.js +1 -16
  4. package/bundles/esfaenza-extensions.umd.min.js.map +1 -1
  5. package/esfaenza-extensions.d.ts +0 -2
  6. package/esfaenza-extensions.metadata.json +1 -1
  7. package/esm2015/esfaenza-extensions.js +1 -3
  8. package/esm2015/lib/models/CsvHeaders.js +1 -1
  9. package/esm2015/lib/models/ExtensionsModuleConfig.js +1 -1
  10. package/esm2015/lib/models/InboundMessageTypes.js +7 -0
  11. package/esm2015/lib/models/InterComMessage.js +14 -0
  12. package/esm2015/lib/modules/extensions.full.module.js +6 -13
  13. package/esm2015/lib/services/extensions.exports.service.js +16 -9
  14. package/esm2015/lib/services/extensions.intercom.service.js +50 -0
  15. package/esm2015/public-api.js +5 -4
  16. package/fesm2015/esfaenza-extensions.js +68 -222
  17. package/fesm2015/esfaenza-extensions.js.map +1 -1
  18. package/lib/models/CsvHeaders.d.ts +4 -0
  19. package/lib/models/ExtensionsModuleConfig.d.ts +0 -11
  20. package/lib/models/InboundMessageTypes.d.ts +5 -0
  21. package/lib/models/InterComMessage.d.ts +12 -0
  22. package/lib/modules/extensions.full.module.d.ts +2 -2
  23. package/lib/services/extensions.intercom.service.d.ts +25 -0
  24. package/package.json +1 -1
  25. package/public-api.d.ts +4 -3
  26. package/esm2015/lib/models/providers/base/BaseStorageProvider.js +0 -25
  27. package/esm2015/lib/models/providers/implementation/DefaultStorageProvider.js +0 -79
  28. package/esm2015/lib/models/session/base/BaseSessionRetriever.js +0 -6
  29. package/esm2015/lib/models/session/implementation/DefaultSessionRetriever.js +0 -26
  30. package/esm2015/lib/services/extensions.storage.service.js +0 -100
  31. package/lib/models/providers/base/BaseStorageProvider.d.ts +0 -65
  32. package/lib/models/providers/implementation/DefaultStorageProvider.d.ts +0 -20
  33. package/lib/models/session/base/BaseSessionRetriever.d.ts +0 -11
  34. package/lib/models/session/implementation/DefaultSessionRetriever.d.ts +0 -18
  35. package/lib/services/extensions.storage.service.d.ts +0 -56
@@ -0,0 +1,50 @@
1
+ // Angular
2
+ import { Injectable } from "@angular/core";
3
+ // Librerie
4
+ import { Subject } from "rxjs";
5
+ // Modelli
6
+ import { InterComMessage } from "../models/InterComMessage";
7
+ /** Service che si occupa di gestire la comunicazione fra i moduli interni ed esterni dell'applicativo */
8
+ export class InterComService {
9
+ constructor() {
10
+ /** Messaggi in uscita, uno per ogni recipient registratosi dall'entrypoint **register** */
11
+ this.outbounds = {};
12
+ /** Messaggi in entrata, unico per applicazione principale */
13
+ this.inbounds = new Subject();
14
+ }
15
+ /**
16
+ * Metodo che permette di inviare un messaggio dall'applicazione ad un modulo esterno o viceversa
17
+ *
18
+ * @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)
19
+ * @param {any} message Messaggio da inviare che può essere un dto in casi complessi ma dovrà essere gestito a dovere lato implementativo
20
+ * @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
21
+ */
22
+ send(messageType, message, recipient) {
23
+ let msg = new InterComMessage(messageType, message);
24
+ // Se non c'è un recipient significa che è un modulo esterno che invia messaggi al modulo main (quindi messaggio in entrata - inbound)
25
+ // Altrimenti significa che è il modulo main ad inviare messaggi ai moduli esterni (messaggio in uscita - outbound)
26
+ if (!recipient) {
27
+ this.inbounds.next(msg);
28
+ }
29
+ else {
30
+ if (!this.outbounds[recipient])
31
+ 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'");
32
+ else
33
+ this.outbounds[recipient].next(msg);
34
+ }
35
+ }
36
+ /**
37
+ * Permette di registrare un modulo esterno alla lista dei moduli in listening sulla coda di messaggi
38
+ *
39
+ * @param {string} key Chiave del modulo da registrare. Tutti i messaggi inbound saranno inviati dall'applicazione principale su questa chiave
40
+ */
41
+ register(key) {
42
+ if (this.outbounds[key])
43
+ throw "@esfaenza/extensions - InterComService: Impossibile registrare più volte lo stesso modulo";
44
+ this.outbounds[key] = new Subject();
45
+ }
46
+ }
47
+ InterComService.decorators = [
48
+ { type: Injectable }
49
+ ];
50
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXh0ZW5zaW9ucy5pbnRlcmNvbS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZXh0ZW5zaW9ucy9zcmMvbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuaW50ZXJjb20uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxXQUFXO0FBQ1gsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUUvQixVQUFVO0FBQ1YsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBRTVELHlHQUF5RztBQUV6RyxNQUFNLE9BQU8sZUFBZTtJQUQ1QjtRQUdJLDJGQUEyRjtRQUNwRixjQUFTLEdBQStDLEVBQUUsQ0FBQztRQUNsRSw2REFBNkQ7UUFDdEQsYUFBUSxHQUE2QixJQUFJLE9BQU8sRUFBbUIsQ0FBQztJQW1DL0UsQ0FBQztJQWpDRzs7Ozs7O09BTUc7SUFDSSxJQUFJLENBQUMsV0FBZ0IsRUFBRSxPQUFZLEVBQUUsU0FBa0I7UUFDMUQsSUFBSSxHQUFHLEdBQUcsSUFBSSxlQUFlLENBQUMsV0FBVyxFQUFFLE9BQU8sQ0FBQyxDQUFDO1FBRXBELHNJQUFzSTtRQUN0SSxtSEFBbUg7UUFDbkgsSUFBSSxDQUFDLFNBQVMsRUFBRTtZQUNaLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1NBQzNCO2FBQ0k7WUFDRCxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUM7Z0JBQzFCLE9BQU8sQ0FBQyxJQUFJLENBQUMsd0ZBQXdGLEdBQUcsU0FBUyxHQUFHLDBGQUEwRixDQUFDLENBQUM7O2dCQUVoTixJQUFJLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQTtTQUMxQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksUUFBUSxDQUFDLEdBQVc7UUFDdkIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQztZQUNuQixNQUFNLDJGQUEyRixDQUFDO1FBQ3RHLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxPQUFPLEVBQW1CLENBQUM7SUFDekQsQ0FBQzs7O1lBeENKLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gTGlicmVyaWVcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IEludGVyQ29tTWVzc2FnZSB9IGZyb20gXCIuLi9tb2RlbHMvSW50ZXJDb21NZXNzYWdlXCI7XHJcblxyXG4vKiogU2VydmljZSBjaGUgc2kgb2NjdXBhIGRpIGdlc3RpcmUgbGEgY29tdW5pY2F6aW9uZSBmcmEgaSBtb2R1bGkgaW50ZXJuaSBlZCBlc3Rlcm5pIGRlbGwnYXBwbGljYXRpdm8gKi9cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgSW50ZXJDb21TZXJ2aWNlIHtcclxuXHJcbiAgICAvKiogTWVzc2FnZ2kgaW4gdXNjaXRhLCB1bm8gcGVyIG9nbmkgcmVjaXBpZW50IHJlZ2lzdHJhdG9zaSBkYWxsJ2VudHJ5cG9pbnQgKipyZWdpc3RlcioqICovXHJcbiAgICBwdWJsaWMgb3V0Ym91bmRzOiB7IFtpZDogc3RyaW5nXTogU3ViamVjdDxJbnRlckNvbU1lc3NhZ2U+IH0gPSB7fTtcclxuICAgIC8qKiBNZXNzYWdnaSBpbiBlbnRyYXRhLCB1bmljbyBwZXIgYXBwbGljYXppb25lIHByaW5jaXBhbGUgKi9cclxuICAgIHB1YmxpYyBpbmJvdW5kczogU3ViamVjdDxJbnRlckNvbU1lc3NhZ2U+ID0gbmV3IFN1YmplY3Q8SW50ZXJDb21NZXNzYWdlPigpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogTWV0b2RvIGNoZSBwZXJtZXR0ZSBkaSBpbnZpYXJlIHVuIG1lc3NhZ2dpbyBkYWxsJ2FwcGxpY2F6aW9uZSBhZCB1biBtb2R1bG8gZXN0ZXJubyBvIHZpY2V2ZXJzYVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge2FueX0gbWVzc2FnZVR5cGUgVGlwb2xvZ2lhIGRpIG1lc3NhZ2dpby4gU2Fyw6AgZGkgdGlwbyAqKkluYm91bmRNZXNzYWdlVHlwZXMqKiBwZXIgdHV0dGkgaSBtZXNzYWdnaSBpbmJvdW5kLCBkaW5hbWljbyBwZXIgdHV0dGkgaSBtZXNhZ2dpIG91dGJvdW5kIChpbCB0aXBvIGRpcGVuZGVyw6AgZGFnbGkgZW51bSBkZWkgbWVzc2FnZ2kgZGVpIG1vZHVsaSBlc3Rlcm5pKVxyXG4gICAgICogQHBhcmFtIHthbnl9IG1lc3NhZ2UgTWVzc2FnZ2lvIGRhIGludmlhcmUgY2hlIHB1w7IgZXNzZXJlIHVuIGR0byBpbiBjYXNpIGNvbXBsZXNzaSBtYSBkb3Zyw6AgZXNzZXJlIGdlc3RpdG8gYSBkb3ZlcmUgbGF0byBpbXBsZW1lbnRhdGl2b1xyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHJlY2lwaWVudCBEZXN0aW5hdGFyaW8gZGVsIG1lc3NhZ2dpby4gUGVyIGkgbWVzc2FnZ2kgaW5ib3VuZCBkZXYnZXNzZXJlIGxhc2NpYXRvIHZ1b3RvLCBwZXIgaSBtZXNzYWdnaSBvdXRib3VuZCBzYXLDoCB2YWxvcml6emF0byBhbGxhIGNoaWF2ZSBkZWwgbW9kdWxvIGEgY3VpIHNpIHZ1b2xlIGludmlhcmUgaWwgbWVzc2FnZ2lvXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBzZW5kKG1lc3NhZ2VUeXBlOiBhbnksIG1lc3NhZ2U6IGFueSwgcmVjaXBpZW50Pzogc3RyaW5nKTogdm9pZCB7XHJcbiAgICAgICAgbGV0IG1zZyA9IG5ldyBJbnRlckNvbU1lc3NhZ2UobWVzc2FnZVR5cGUsIG1lc3NhZ2UpO1xyXG5cclxuICAgICAgICAvLyBTZSBub24gYyfDqCB1biByZWNpcGllbnQgc2lnbmlmaWNhIGNoZSDDqCB1biBtb2R1bG8gZXN0ZXJubyBjaGUgaW52aWEgbWVzc2FnZ2kgYWwgbW9kdWxvIG1haW4gKHF1aW5kaSBtZXNzYWdnaW8gaW4gZW50cmF0YSAtIGluYm91bmQpXHJcbiAgICAgICAgLy8gQWx0cmltZW50aSBzaWduaWZpY2EgY2hlIMOoIGlsIG1vZHVsbyBtYWluIGFkIGludmlhcmUgbWVzc2FnZ2kgYWkgbW9kdWxpIGVzdGVybmkgKG1lc3NhZ2dpbyBpbiB1c2NpdGEgLSBvdXRib3VuZClcclxuICAgICAgICBpZiAoIXJlY2lwaWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmluYm91bmRzLm5leHQobXNnKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgZWxzZSB7XHJcbiAgICAgICAgICAgIGlmICghdGhpcy5vdXRib3VuZHNbcmVjaXBpZW50XSlcclxuICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkBlc2ZhZW56YS9leHRlbnNpb25zIC0gSW50ZXJDb21TZXJ2aWNlOiBJbXBvc3NpYmlsZSBpbnZpYXJlIGlsIG1lc3NhZ2dpbyBhbCByZWNpcGllbnQgXCIgKyByZWNpcGllbnQgKyBcIiBhc3NpY3VyYXJzaSBjaGUgaWwgbW9kdWxvIHNpYSBjYXJpY2F0byBlIGNoZSBlZmZldHR1aSBsYSBjaGlhbWF0YSBhbCBtZXRvZG8gJ3JlZ2lzc3RlcidcIik7XHJcbiAgICAgICAgICAgIGVsc2VcclxuICAgICAgICAgICAgICAgIHRoaXMub3V0Ym91bmRzW3JlY2lwaWVudF0ubmV4dChtc2cpXHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVybWV0dGUgZGkgcmVnaXN0cmFyZSB1biBtb2R1bG8gZXN0ZXJubyBhbGxhIGxpc3RhIGRlaSBtb2R1bGkgaW4gbGlzdGVuaW5nIHN1bGxhIGNvZGEgZGkgbWVzc2FnZ2lcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGVsIG1vZHVsbyBkYSByZWdpc3RyYXJlLiBUdXR0aSBpIG1lc3NhZ2dpIGluYm91bmQgc2FyYW5ubyBpbnZpYXRpIGRhbGwnYXBwbGljYXppb25lIHByaW5jaXBhbGUgc3UgcXVlc3RhIGNoaWF2ZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcmVnaXN0ZXIoa2V5OiBzdHJpbmcpOiB2b2lkIHtcclxuICAgICAgICBpZiAodGhpcy5vdXRib3VuZHNba2V5XSlcclxuICAgICAgICAgICAgdGhyb3cgXCJAZXNmYWVuemEvZXh0ZW5zaW9ucyAtIEludGVyQ29tU2VydmljZTogSW1wb3NzaWJpbGUgcmVnaXN0cmFyZSBwacO5IHZvbHRlIGxvIHN0ZXNzbyBtb2R1bG9cIjtcclxuICAgICAgICB0aGlzLm91dGJvdW5kc1trZXldID0gbmV3IFN1YmplY3Q8SW50ZXJDb21NZXNzYWdlPigpO1xyXG4gICAgfVxyXG59Il19
@@ -9,11 +9,12 @@ export * from './lib/services/extensions.clipboard.service';
9
9
  export * from './lib/services/extensions.hashing.service';
10
10
  export * from './lib/services/extensions.messages.service';
11
11
  export * from './lib/services/extensions.utilities.service';
12
- export * from './lib/services/extensions.storage.service';
13
12
  export * from './lib/tokens';
14
13
  export * from './lib/models/CallResult';
15
14
  export * from './lib/models/CsvHeaders';
16
15
  export * from './lib/models/GenericItem';
17
- export * from './lib/models/providers/base/BaseStorageProvider';
18
- export * from './lib/models/session/base/BaseSessionRetriever';
19
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2V4dGVuc2lvbnMvc3JjL3B1YmxpYy1hcGkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFDSCxjQUFjLGlDQUFpQyxDQUFDO0FBQ2hELGNBQWMsc0NBQXNDLENBQUM7QUFDckQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFDNUQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHlCQUF5QixDQUFDO0FBQ3hDLGNBQWMseUJBQXlCLENBQUM7QUFDeEMsY0FBYywwQkFBMEIsQ0FBQztBQUN6QyxjQUFjLGlEQUFpRCxDQUFDO0FBQ2hFLGNBQWMsZ0RBQWdELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgZXh0ZW5zaW9uc1xyXG4gKi9cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kdWxlcy9leHRlbnNpb25zLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZHVsZXMvZXh0ZW5zaW9ucy5mdWxsLm1vZHVsZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZGF0ZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuZXhwb3J0cy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5jbGlwYm9hcmQuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuaGFzaGluZy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy5tZXNzYWdlcy5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvZXh0ZW5zaW9ucy51dGlsaXRpZXMuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL2V4dGVuc2lvbnMuc3RvcmFnZS5zZXJ2aWNlJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvdG9rZW5zJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL0NhbGxSZXN1bHQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvQ3N2SGVhZGVycyc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9HZW5lcmljSXRlbSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVscy9wcm92aWRlcnMvYmFzZS9CYXNlU3RvcmFnZVByb3ZpZGVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlcic7Il19
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==
@@ -2,8 +2,7 @@ import { InjectionToken, NgModule, Injectable, Optional, Inject } from '@angular
2
2
  import { ToastrService } from 'ngx-toastr';
3
3
  import swal from 'sweetalert2';
4
4
  import { Deserialize } from 'cerialize';
5
- import { first, tap } from 'rxjs/operators';
6
- import { of } from 'rxjs';
5
+ import { Subject } from 'rxjs';
7
6
 
8
7
  /**
9
8
  * Token che identifica il locale da utilizzare per questa libreria, sono supportati i locali 'it-IT' ed 'en-US'
@@ -982,7 +981,7 @@ class ExportService {
982
981
  columns.forEach(t => {
983
982
  var propValue = obj.properties[t.key];
984
983
  Object.defineProperty(obj, t.key + "_exp", { value: propValue, writable: false, enumerable: true });
985
- headers.push({ label: t.label, key: t.key + "_exp", order: t.order });
984
+ headers.push({ label: t.label, key: t.key + "_exp", order: t.order, type: t.type });
986
985
  });
987
986
  //Tirati fuori tutti gli header faccio sort sull'ordinamento
988
987
  return headers.sort((a, b) => { return a.order - b.order; });
@@ -1035,7 +1034,7 @@ class ExportService {
1035
1034
  // Se è un formato data mi assicuro di non stampare mai una data 00:00:00 altrimenti in esportazione viene uno schifo
1036
1035
  var val = obj[prop] ? this.dates.trimSeconds(obj[prop].toString()) : "";
1037
1036
  Object.defineProperty(obj, prop + "_nofmt", { value: val, writable: false, enumerable: true });
1038
- headers.push({ label: lbl ? lbl : prop + "_nofmt", key: prop + "_nofmt", order: order });
1037
+ headers.push({ label: lbl ? lbl : prop + "_nofmt", key: prop + "_nofmt", order: order, type: "string" });
1039
1038
  }
1040
1039
  else {
1041
1040
  // Caso formato numerico
@@ -1047,7 +1046,7 @@ class ExportService {
1047
1046
  // Il singolo punto che c'è, se presente (separatore decimali) lo trasformo in virgola
1048
1047
  let valConverted = val.replace(".", ",");
1049
1048
  Object.defineProperty(obj, prop + "_fmt", { value: valConverted, writable: false, enumerable: true });
1050
- headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order });
1049
+ headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order, type: "number" });
1051
1050
  }
1052
1051
  else {
1053
1052
  // Se ho un formato data trasformo in dayjs, formatto ed esporto
@@ -1055,7 +1054,7 @@ class ExportService {
1055
1054
  // Se non funziona provo a definirgli la formattazione standard del metering per quel linguaggio
1056
1055
  let val = this.dates.getFormatted(obj[prop], format.length <= 10, false);
1057
1056
  Object.defineProperty(obj, prop + "_fmt", { value: val !== null && val !== void 0 ? val : "", writable: false, enumerable: true });
1058
- headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order });
1057
+ headers.push({ label: lbl ? lbl : prop + "_fmt", key: prop + "_fmt", order: order, type: "date" });
1059
1058
  }
1060
1059
  }
1061
1060
  }
@@ -1088,16 +1087,19 @@ class ExportService {
1088
1087
  let order = obj[prop + csvOrdPrefix];
1089
1088
  //Se per questa proprietà ho un formato lo applico
1090
1089
  let format = obj[prop + csvFormatPrefix];
1090
+ let type = "string";
1091
1091
  if (format == "F") {
1092
1092
  let val = value.toString();
1093
1093
  val = val.replace(/,/, "");
1094
1094
  value = val.replace(".", ",");
1095
+ type = "number";
1095
1096
  }
1096
1097
  else if (format) {
1097
1098
  value = this.dates.getFormatted(value, format.length <= 10, false);
1099
+ type = "date";
1098
1100
  }
1099
1101
  Object.defineProperty(obj, prop, { value: value, writable: false, enumerable: true });
1100
- headers.push({ label: lbl ? lbl : prop, key: prop, order: order });
1102
+ headers.push({ label: lbl ? lbl : prop, key: prop, order: order, type: type });
1101
1103
  }
1102
1104
  /**
1103
1105
  * Setup per l'esportazione di una lista di valori pivottati dinamicamente:
@@ -1139,15 +1141,19 @@ class ExportService {
1139
1141
  tmpRes = JSON.parse(JSON.stringify(listitem));
1140
1142
  jumps.forEach(pp => { tmpRes = tmpRes[pp]; });
1141
1143
  let value = tmpRes;
1144
+ let type = "string";
1142
1145
  if (valueformat == "F") {
1143
1146
  let val = value != null ? value.toString() : "";
1144
1147
  val = val.replace(/,/, "");
1145
1148
  value = val.replace(".", ",");
1149
+ type = "number";
1146
1150
  }
1147
- else if (valueformat)
1151
+ else if (valueformat) {
1148
1152
  value = this.dates.getFormatted(obj[prop], valueformat.length <= 10, false);
1153
+ type = "date";
1154
+ }
1149
1155
  Object.defineProperty(obj, prop + idx, { value: value, writable: false });
1150
- headers.push({ label: header, key: prop + idx, order: order + idx });
1156
+ headers.push({ label: header, key: prop + idx, order: order + idx, type: type });
1151
1157
  }
1152
1158
  }
1153
1159
  /**
@@ -1194,7 +1200,7 @@ class ExportService {
1194
1200
  let value = tmpRes;
1195
1201
  let propname = prop + idx.toString() + idxinternal.toString();
1196
1202
  Object.defineProperty(obj, propname, { value: value, writable: false });
1197
- headers.push({ label: header + " " + desc, key: propname, order: order + idx });
1203
+ headers.push({ label: header + " " + desc, key: propname, order: order + idx, type: 'string' });
1198
1204
  });
1199
1205
  }
1200
1206
  }
@@ -1730,228 +1736,63 @@ UtilityService.decorators = [
1730
1736
  { type: Injectable }
1731
1737
  ];
1732
1738
 
1733
- /**
1734
- * Classe che gestisce la scrittura delle informazioni nello store locale.
1735
- * Questo store locale potrebbe essere il localStorage (implementazione di default data dal **DefaultStorageProvider**),
1736
- * oppure un'implementazione custom facente capo a un DB esterno.
1737
- *
1738
- * In questo ultimo caso però sarà necessario implementarsi un proprio **BaseSessionRetriever**
1739
- * che generi una chiave univoca di sessione su cui tutte le operazioni di questa classe saranno eseguite
1740
- */
1741
- class BaseStorageProvider {
1742
- /** @ignore Costruttore */
1743
- constructor(session) {
1744
- this.session = session;
1745
- }
1739
+ /** Classe che rappresenta un generico messaggio scambiato fra applicazione e moduli */
1740
+ class InterComMessage {
1746
1741
  /**
1747
- * Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
1748
- *
1749
- * @param {string} key Chiave da storicizzare
1750
- *
1751
- * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
1752
- */
1753
- getKey(key) {
1754
- return this.session.getSessionKey() + "§" + key + "§";
1742
+ * Costruttore
1743
+ *
1744
+ * @param type Tipo di messaggio
1745
+ * @param message Contenuto del messaggio
1746
+ */
1747
+ constructor(type, message) {
1748
+ this.type = type;
1749
+ this.message = message;
1755
1750
  }
1756
1751
  }
1757
1752
 
1758
- /**
1759
- * Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
1760
- */
1761
- class BaseSessionRetriever {
1762
- }
1763
-
1764
1753
  // Angular
1765
- /**
1766
- * Service che fornisce funzionalità di base per storicizzazione e recupero oggetti dallo Storage Locale
1767
- *
1768
- * N.B: In ogni chiamata è presente l'operatore rxjs **first()** per far che a prescindere dall'implementazione utente/default gli
1769
- * observable effettuino l'unsubscribe automaticamente terminata la prima operazine
1770
- */
1771
- class StorageService {
1772
- /**
1773
- * Costruttore
1774
- *
1775
- * @ignore
1776
- */
1777
- constructor(APPSEARCH_PREFIX, _session, _storage) {
1778
- this.APPSEARCH_PREFIX = APPSEARCH_PREFIX;
1779
- this._session = _session;
1780
- this._storage = _storage;
1754
+ /** Service che si occupa di gestire la comunicazione fra i moduli interni ed esterni dell'applicativo */
1755
+ class InterComService {
1756
+ constructor() {
1757
+ /** Messaggi in uscita, uno per ogni recipient registratosi dall'entrypoint **register** */
1758
+ this.outbounds = {};
1759
+ /** Messaggi in entrata, unico per applicazione principale */
1760
+ this.inbounds = new Subject();
1781
1761
  }
1782
1762
  /**
1783
- * Inserisce un oggetto che funga da contenitore di oggetti nel local storage, ripulendone gli oggetti (supponendo che sia una view di ricerca) e marcandolo come
1784
- * salvato, in modo che quando viene recuperato il sistema non pensi che sia un oggetto vuoto ma che sappia che gli oggetti son stati ripuliti per risparmiare spazio
1763
+ * Metodo che permette di inviare un messaggio dall'applicazione ad un modulo esterno o viceversa
1785
1764
  *
1786
- * @param {string} storeName Chiave del localStorage in cui storicizzare l'oggetto **itemsContainer**
1787
- * @param {{ items: any[] }} itemsContainer Oggetto da storicizzare
1765
+ * @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)
1766
+ * @param {any} message Messaggio da inviare che può essere un dto in casi complessi ma dovrà essere gestito a dovere lato implementativo
1767
+ * @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
1788
1768
  */
1789
- setItem(storeName, item) {
1790
- var finalItem;
1791
- //Se sto salvando un oggetto con "items" e "page" vuol dire che è un appsearch, la ripulisco
1792
- if (item.items && item.page) {
1793
- finalItem = JSON.parse(JSON.stringify(item));
1794
- finalItem.items = [];
1795
- finalItem.savedstate = true;
1796
- finalItem.savedprefix = this.APPSEARCH_PREFIX || 'Hot';
1769
+ send(messageType, message, recipient) {
1770
+ let msg = new InterComMessage(messageType, message);
1771
+ // Se non c'è un recipient significa che è un modulo esterno che invia messaggi al modulo main (quindi messaggio in entrata - inbound)
1772
+ // Altrimenti significa che è il modulo main ad inviare messaggi ai moduli esterni (messaggio in uscita - outbound)
1773
+ if (!recipient) {
1774
+ this.inbounds.next(msg);
1775
+ }
1776
+ else {
1777
+ if (!this.outbounds[recipient])
1778
+ 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'");
1779
+ else
1780
+ this.outbounds[recipient].next(msg);
1797
1781
  }
1798
- else
1799
- finalItem = item;
1800
- return this._storage.setItem(storeName, finalItem).pipe(first(), tap(res => {
1801
- if (res == false)
1802
- console.error("Impossibile effettuare il salvataggio dell'oggetto all'interno dello Storage Locale per la chiave " + storeName);
1803
- }));
1804
- }
1805
- /**
1806
- * Recupera un oggetto dallo Storage Locale
1807
- *
1808
- * @param {string} storeName Chiave del localStorage da cui recuperare l'oggetto
1809
- *
1810
- * @returns {any} Oggetto recuperato e deserializzato
1811
- */
1812
- getItem(storeName) {
1813
- return this._storage.getItem(storeName).pipe(first(), tap(res => {
1814
- if (res == null)
1815
- console.warn("Impossibile ottenere l'oggetto salvato con chiave " + storeName);
1816
- }));
1817
- }
1818
- /**
1819
- * Ripulisce lo Storage Locale
1820
- *
1821
- * @param {string} storeName Chiave del localStorage da ripulire
1822
- */
1823
- removeItem(storeName) {
1824
- return this._storage.removeItem(storeName).pipe(first(), tap(res => {
1825
- if (res == false)
1826
- console.warn("Impossibile rimuovere l'oggetto salvato con chiave " + storeName);
1827
- }));
1828
- }
1829
- /**
1830
- * Ripulisce lo Storage Locale di ogni cosa salvata
1831
- *
1832
- * @param {string} storeName Chiave del localStorage da ripulire
1833
- */
1834
- clear() {
1835
- return this._storage.clear().pipe(first(), tap(res => {
1836
- if (res == false)
1837
- console.warn("Impossibile ripulire lo Storage Locale");
1838
- }));
1839
1782
  }
1840
1783
  /**
1841
- * Restituisce tutte le chiavi-valore associate alla sessione corrente
1784
+ * Permette di registrare un modulo esterno alla lista dei moduli in listening sulla coda di messaggi
1842
1785
  *
1843
- * @returns {Observable<{ [index: string]: string; }>} Risultato della query
1786
+ * @param {string} key Chiave del modulo da registrare. Tutti i messaggi inbound saranno inviati dall'applicazione principale su questa chiave
1844
1787
  */
1845
- getAll() {
1846
- return this._storage.getAll().pipe(first());
1788
+ register(key) {
1789
+ if (this.outbounds[key])
1790
+ throw "@esfaenza/extensions - InterComService: Impossibile registrare più volte lo stesso modulo";
1791
+ this.outbounds[key] = new Subject();
1847
1792
  }
1848
1793
  }
1849
- StorageService.decorators = [
1794
+ InterComService.decorators = [
1850
1795
  { type: Injectable }
1851
- ];
1852
- StorageService.ctorParameters = () => [
1853
- { type: String, decorators: [{ type: Optional }, { type: Inject, args: [APPSEARCH_PREFIX,] }] },
1854
- { type: BaseSessionRetriever },
1855
- { type: BaseStorageProvider }
1856
- ];
1857
-
1858
- /**
1859
- * Implementazione di default per la classe **BaseSessionRetriever**
1860
- */
1861
- class DefaultSessionRetriever extends BaseSessionRetriever {
1862
- /**
1863
- * Costruttore
1864
- *
1865
- * @ignore
1866
- */
1867
- constructor() { super(); }
1868
- /**
1869
- * Ottiene un ID sessione
1870
- *
1871
- * @returns {string} ID sessione
1872
- */
1873
- getSessionKey() {
1874
- return "DUMMY_SESSION";
1875
- }
1876
- }
1877
- DefaultSessionRetriever.decorators = [
1878
- { type: Injectable }
1879
- ];
1880
- DefaultSessionRetriever.ctorParameters = () => [];
1881
-
1882
- /** Implementazione di default per la classe **BaseStorageProvider** */
1883
- class DefaultStorageProvider extends BaseStorageProvider {
1884
- /** @ignore Costruttore */
1885
- constructor(session) { super(session); }
1886
- /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1887
- setItem(key, value) {
1888
- try {
1889
- localStorage.setItem(key, JSON.stringify(value));
1890
- return of(true);
1891
- }
1892
- catch (_a) {
1893
- // Potrebbe arrivarmi un prefisso di salvataggio nella modalità di default. Questo serve per ripulire le stesse cose con quel prefisso e sperare di liberare spazio
1894
- if (value.savedprefix) {
1895
- console.warn("Spazio del local Storage insufficiente, prova a ripulirlo e risalvare");
1896
- //Pulisco tutte le view con nome che parta per "Hot"
1897
- for (let key in localStorage) {
1898
- if (localStorage.hasOwnProperty(key) && key.startsWith(value.savedprefix))
1899
- delete localStorage[key];
1900
- }
1901
- try {
1902
- localStorage.setItem(key, JSON.stringify(value));
1903
- }
1904
- catch (e) {
1905
- console.error("Spazio del local Storage insufficiente per salvare i risultati di ricerca con solo filtri. Non salvo nulla");
1906
- }
1907
- }
1908
- return of(false);
1909
- }
1910
- }
1911
- /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1912
- getItem(key) {
1913
- try {
1914
- var ret = JSON.parse(localStorage.getItem(key));
1915
- return of(ret);
1916
- }
1917
- catch (_a) {
1918
- return of(null);
1919
- }
1920
- }
1921
- /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1922
- removeItem(key) {
1923
- try {
1924
- localStorage.removeItem(key);
1925
- return of(true);
1926
- }
1927
- catch (_a) {
1928
- return of(false);
1929
- }
1930
- }
1931
- /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1932
- clear() {
1933
- try {
1934
- localStorage.clear();
1935
- return of(true);
1936
- }
1937
- catch (_a) {
1938
- return of(false);
1939
- }
1940
- }
1941
- /** @ignore Implementazione di Default con localStorage. Identity viene ignorata perché essendo già nel localStorage è già per sito */
1942
- getAll() {
1943
- var ret = {};
1944
- for (let key in localStorage) {
1945
- ret[key] = localStorage[key];
1946
- }
1947
- return of(ret);
1948
- }
1949
- }
1950
- DefaultStorageProvider.decorators = [
1951
- { type: Injectable }
1952
- ];
1953
- DefaultStorageProvider.ctorParameters = () => [
1954
- { type: BaseSessionRetriever }
1955
1796
  ];
1956
1797
 
1957
1798
  // Angular
@@ -1962,8 +1803,8 @@ DefaultStorageProvider.ctorParameters = () => [
1962
1803
  * ExportService,
1963
1804
  * HashingService,
1964
1805
  * MessageService,
1965
- * UtilityService,
1966
- * StorageService,
1806
+ * UtilityService
1807
+ * InterComService
1967
1808
  *
1968
1809
  * con eventuali provider che utilizzano
1969
1810
  */
@@ -1978,13 +1819,11 @@ class FullExtensionsModule {
1978
1819
  HashingService,
1979
1820
  MessageService,
1980
1821
  UtilityService,
1981
- StorageService,
1822
+ InterComService,
1982
1823
  { provide: EXT_LOCALE, useValue: (config === null || config === void 0 ? void 0 : config.locale) || 'it-IT' },
1983
1824
  { provide: EXT_FANCY_ALERTS, useValue: (config === null || config === void 0 ? void 0 : config.fancy_alerts) || true },
1984
1825
  { provide: APPSEARCH_PREFIX, useValue: (config === null || config === void 0 ? void 0 : config.appsearch_prefix) || 'Hot' },
1985
- { provide: EXT_ALLOW_UTC, useValue: (config === null || config === void 0 ? void 0 : config.allow_utc) == null ? false : config === null || config === void 0 ? void 0 : config.allow_utc },
1986
- { provide: BaseSessionRetriever, useClass: (config === null || config === void 0 ? void 0 : config.sessionRetriever) || DefaultSessionRetriever },
1987
- { provide: BaseStorageProvider, useClass: (config === null || config === void 0 ? void 0 : config.storageProvider) || DefaultStorageProvider },
1826
+ { provide: EXT_ALLOW_UTC, useValue: (config === null || config === void 0 ? void 0 : config.allow_utc) == null ? false : config === null || config === void 0 ? void 0 : config.allow_utc }
1988
1827
  ]
1989
1828
  };
1990
1829
  }
@@ -2011,6 +1850,13 @@ class CsvHeaders {
2011
1850
  class GenericItem {
2012
1851
  }
2013
1852
 
1853
+ /** Enumeratore dei tipi di messaggio che i moduli esterni possono contattare sull'applicazione principale */
1854
+ var InboundMessageTypes;
1855
+ (function (InboundMessageTypes) {
1856
+ /** Evento di navigazione */
1857
+ InboundMessageTypes[InboundMessageTypes["Navigation"] = 0] = "Navigation";
1858
+ })(InboundMessageTypes || (InboundMessageTypes = {}));
1859
+
2014
1860
  /*
2015
1861
  * Public API Surface of extensions
2016
1862
  */
@@ -2019,5 +1865,5 @@ class GenericItem {
2019
1865
  * Generated bundle index. Do not edit.
2020
1866
  */
2021
1867
 
2022
- export { APPSEARCH_PREFIX, BaseSessionRetriever, BaseStorageProvider, CallResult, ClipboardService, CsvHeaders, DateService, EXT_ALLOW_UTC, EXT_FANCY_ALERTS, EXT_LOCALE, Export, ExportAs, ExportDictionary, ExportList, ExportService, ExtensionsModule, FullExtensionsModule, GenericItem, HashingService, MessageService, StorageService, UtilityService, DefaultSessionRetriever as ɵa, DefaultStorageProvider as ɵb };
1868
+ 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 };
2023
1869
  //# sourceMappingURL=esfaenza-extensions.js.map