@esfaenza/extensions 20.3.2 → 20.3.3

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.
@@ -0,0 +1,121 @@
1
+ import * as i0 from "@angular/core";
2
+ /**
3
+ * Service che fornisce alcuni semplici funzioni di Hashing / GUID / ecc...
4
+ */
5
+ export declare class HashingService {
6
+ /**
7
+ * Generazione di un GUID pseudo-univoco
8
+ *
9
+ * @returns {string} il GUID generato
10
+ */
11
+ getGUID(): string;
12
+ /**
13
+ * Calcolo dell'hash su un oggetto
14
+ *
15
+ * @param {any} o Oggetto di cui calcolare l'hash
16
+ * @param {number} level Livello di ricorsione nel caso venga effettuato l'hash di un oggetto che contiene altri oggetti
17
+ * @param {boolean} navigateFullDepth Indica se navigare l'oggetto per l'intera lunghezza. In caso contrario si ferma al secondo livello
18
+ *
19
+ * @returns {string} Hash generato per l'oggetto in questione
20
+ */
21
+ hashObject(o: any, level?: number, navigateFullDepth?: boolean, precise?: boolean): string;
22
+ /**
23
+ * Hash più semplice e più veloce dell'md5, ma meno sicuro
24
+ *
25
+ * Vedi https://stackoverflow.com/questions/7616461/generate-a-hash-from-string-in-javascript
26
+ *
27
+ * @param {string} str Stringa di cui calcolare l'hash
28
+ */
29
+ private simpleHash;
30
+ /**
31
+ * Blacklist dei tipi da ignorare quando si effettua l'hashing degli oggetti
32
+ */
33
+ private objBlacklist;
34
+ /**
35
+ * Genera una stringa che identifica univocamente l'oggetto in questione
36
+ *
37
+ * @param {any} o Oggetto di cui calcolare la stringa univoca
38
+ * @param {number} level Livello di ricorsione nel caso venga effettuato l'hash di un oggetto che contiene altri oggetti
39
+ * @param {boolean} navigateFullDepth Indica se navigare l'oggetto per l'intera lunghezza. In caso contrario si ferma al secondo livello
40
+ */
41
+ private stringify;
42
+ /**
43
+ * Data una stringa restituisce l'md5
44
+ *
45
+ * @param {string} s Stringa di cui calcolare l'md5
46
+ * @returns {string} md5 della stringa **s**
47
+ */
48
+ md5(s: string): string;
49
+ /**
50
+ * @ignore
51
+ *
52
+ * Metodo di utilità per il calcolo dell'md5
53
+ */
54
+ private md5cycle;
55
+ /**
56
+ * @ignore
57
+ *
58
+ * Metodo di utilità per il calcolo dell'md5
59
+ */
60
+ private cmn;
61
+ /**
62
+ * @ignore
63
+ *
64
+ * Metodo di utilità per il calcolo dell'md5
65
+ */
66
+ private ff;
67
+ /**
68
+ * @ignore
69
+ *
70
+ * Metodo di utilità per il calcolo dell'md5
71
+ */
72
+ private gg;
73
+ /**
74
+ * @ignore
75
+ *
76
+ * Metodo di utilità per il calcolo dell'md5
77
+ */
78
+ private hh;
79
+ /**
80
+ * @ignore
81
+ *
82
+ * Metodo di utilità per il calcolo dell'md5
83
+ */
84
+ private ii;
85
+ /**
86
+ * @ignore
87
+ *
88
+ * Metodo di utilità per il calcolo dell'md5
89
+ */
90
+ private md51;
91
+ /**
92
+ * @ignore
93
+ *
94
+ * Metodo di utilità per il calcolo dell'md5
95
+ */
96
+ private md5blk;
97
+ /**
98
+ * Array dei possibili valori di un simbolo esadecimale
99
+ */
100
+ private hex_chr;
101
+ /**
102
+ * @ignore
103
+ *
104
+ * Metodo di utilità per il calcolo dell'md5
105
+ */
106
+ private rhex;
107
+ /**
108
+ * @ignore
109
+ *
110
+ * Metodo di utilità per il calcolo dell'md5
111
+ */
112
+ private hex;
113
+ /**
114
+ * @ignore
115
+ *
116
+ * Metodo di utilità per il calcolo dell'md5
117
+ */
118
+ private add32;
119
+ static ɵfac: i0.ɵɵFactoryDeclaration<HashingService, never>;
120
+ static ɵprov: i0.ɵɵInjectableDeclaration<HashingService>;
121
+ }
@@ -0,0 +1,28 @@
1
+ import { Subject } from "rxjs";
2
+ import { InterComMessage } from "../models/InterComMessage";
3
+ import * as i0 from "@angular/core";
4
+ /** Service che si occupa di gestire la comunicazione fra i moduli interni ed esterni dell'applicativo */
5
+ export declare class InterComService {
6
+ /** Messaggi in uscita, uno per ogni recipient registratosi dall'entrypoint **register** */
7
+ outbounds: {
8
+ [id: string]: Subject<InterComMessage>;
9
+ };
10
+ /** Messaggi in entrata, unico per applicazione principale */
11
+ inbounds: Subject<InterComMessage>;
12
+ /**
13
+ * Metodo che permette di inviare un messaggio dall'applicazione ad un modulo esterno o viceversa
14
+ *
15
+ * @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)
16
+ * @param {any} message Messaggio da inviare che può essere un dto in casi complessi ma dovrà essere gestito a dovere lato implementativo
17
+ * @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
18
+ */
19
+ send(messageType: any, message: any, recipient?: string): void;
20
+ /**
21
+ * Permette di registrare un modulo esterno alla lista dei moduli in listening sulla coda di messaggi
22
+ *
23
+ * @param {string} key Chiave del modulo da registrare. Tutti i messaggi inbound saranno inviati dall'applicazione principale su questa chiave
24
+ */
25
+ register(key: string): void;
26
+ static ɵfac: i0.ɵɵFactoryDeclaration<InterComService, never>;
27
+ static ɵprov: i0.ɵɵInjectableDeclaration<InterComService>;
28
+ }
@@ -0,0 +1,197 @@
1
+ import { Injector } from "@angular/core";
2
+ import { BaseLocalization } from "@esfaenza/localizations";
3
+ import { Observable, Subject } from "rxjs";
4
+ import { CallResult } from "../models/CallResult";
5
+ import { HashingService } from "./extensions.hashing.service";
6
+ import * as i0 from "@angular/core";
7
+ /**
8
+ * Service che fornisce funzionalità di alert nei tipi fondamentali: success, info, warning e danger
9
+ */
10
+ export declare class MessageService {
11
+ private injector;
12
+ private locProvider;
13
+ private hash;
14
+ /** Oggetto statico in supporto alla localizzazione */
15
+ private loc;
16
+ /** Template di un warning con richiesta di conferma */
17
+ private warningSwalWithCancel;
18
+ /** Template di un warning con richiesta di conferma */
19
+ private successSwalWithCancel;
20
+ /** Template di un errore */
21
+ private errorSwal;
22
+ /** Template di un messaggio di successo */
23
+ private successSwal;
24
+ /** Template di un avviso */
25
+ private warningSwal;
26
+ /** Template di un messaggio informativo */
27
+ private infoSwal;
28
+ /** Template di un warning per la sessione scaduta */
29
+ private expiredSessionSwal;
30
+ /** Getter per il servizio dei toast. ngx-toastr è fatta talmente male che la service dev'essere recuperata in questo modo */
31
+ private get toastr();
32
+ /** Supporto all'Embedding */
33
+ Embedded: boolean;
34
+ MainWindow: Window;
35
+ MessageObserver: Subject<{
36
+ event: any;
37
+ data: any;
38
+ }>;
39
+ isBrowser: boolean;
40
+ /** Costruttore @ignore */
41
+ constructor(injector: Injector, locProvider: BaseLocalization, hash: HashingService, platformId: Object);
42
+ browserCheck(): boolean;
43
+ configureEmbeddability(mainWindow: Window, messageObserver: Subject<{
44
+ event: any;
45
+ data: any;
46
+ }>): void;
47
+ init(): Promise<void>;
48
+ /**
49
+ * Presentazione di un semplice messaggio di successo
50
+ *
51
+ * Se viene chiamato con le impostazioni di default e toastr è abilitato, viene mostrato al centro
52
+ * Se viene chiamato con override su toastr vuol dire che è una notifica secondaria e appare in alto a destra
53
+ *
54
+ * @param {string} text Testo da mostrare
55
+ * @param {"toastr" | "swal" | null} secondaryNotificationType Qualora sia una notifica secondaria, ne indica il tipo
56
+ */
57
+ simpleSuccess(text: string, secondaryNotificationType?: "toastr" | "swal" | null, secondaryNotificationTimeout?: number): void;
58
+ /**
59
+ * Presentazione di un semplice messaggio di informazione
60
+ *
61
+ * Se viene chiamato con le impostazioni di default e toastr è abilitato, viene mostrato al centro
62
+ * Se viene chiamato con override su toastr vuol dire che è una notifica secondaria e appare in alto a destra
63
+ *
64
+ * @param {string} text Testo da mostrare
65
+ * @param {"toastr" | "swal" | null} secondaryNotificationType Qualora sia una notifica secondaria, ne indica il tipo
66
+ */
67
+ simpleInfo(text: string, secondaryNotificationType?: "toastr" | "swal" | null, secondaryNotificationTimeout?: number): void;
68
+ /**
69
+ * Presentazione di un semplice messaggio di errore
70
+ *
71
+ * Se viene chiamato con le impostazioni di default e toastr è abilitato, viene mostrato al centro
72
+ * Se viene chiamato con override su toastr vuol dire che è una notifica secondaria e appare in alto a destra
73
+ *
74
+ * @param {string} text Testo da mostrare
75
+ * @param {"toastr" | "swal" | null} secondaryNotificationType Qualora sia una notifica secondaria, ne indica il tipo
76
+ */
77
+ simpleError(text: string, secondaryNotificationType?: "toastr" | "swal" | null, secondaryNotificationTimeout?: number): void;
78
+ /**
79
+ * Presentazione di un semplice messaggio di avviso
80
+ *
81
+ * Se viene chiamato con le impostazioni di default e toastr è abilitato, viene mostrato al centro
82
+ * Se viene chiamato con override su toastr vuol dire che è una notifica secondaria e appare in alto a destra
83
+ *
84
+ * @param {string} text Testo da mostrare
85
+ * @param {"toastr" | "swal" | null} secondaryNotificationType Qualora sia una notifica secondaria, ne indica il tipo
86
+ */
87
+ simpleWarning(text: string, secondaryNotificationType?: "toastr" | "swal" | null, secondaryNotificationTimeout?: number): void;
88
+ /**
89
+ * Ripulisce tutti i messaggi presenti in un dato momento sullo schermo
90
+ */
91
+ clearMessages(): void;
92
+ /**
93
+ * Mostra un messaggio di avviso con richiesta di conferma
94
+ *
95
+ * @param {string} title Titolo del messaggio
96
+ * @param {string} text Contenuto del messaggio
97
+ *
98
+ * @returns {Promise} Restituisce una Promise col risultato scelto dall'utente (conferma o no)
99
+ */
100
+ promiseWarningWithChoice(title: string, text: string): Promise<any>;
101
+ /**
102
+ * In base alla configurazione attuale e all'eventuale override per la chiamata del caso indica se bisogna utilizzare toastr o sweetalert
103
+ *
104
+ * @param {"toastr" | "swal" | null} providerOverride Override alla modalità configurata
105
+ *
106
+ * @returns {"toastr" | "swal"} Indicazione su che provider di messaggi di avviso debba essere utilizzato
107
+ */
108
+ private toastrOrSwal;
109
+ private GuidRepsonseFunctionsMap;
110
+ simpleWarningWithChoice(title: string, text: string, onsuccess?: Function, onerror?: Function, confirmtext?: string, aborttext?: string): void;
111
+ simpleSuccessWithChoice(title: string, text: string, onsuccess?: Function, onerror?: Function, confirmtext?: string, aborttext?: string): void;
112
+ private withChoiceBase;
113
+ /**
114
+ * Mostra un messaggio di avviso con richiesta di conferma e gestisce il risultato chiamato i callback **onsuccess** o **onerror**
115
+ *
116
+ * @param {string} title Titolo del messaggio
117
+ * @param {string} text Contenuto del messaggio
118
+ * @param {Function} onsuccess Callback da chimare su conferma
119
+ * @param {Function} onerror Callback da chimare su errori
120
+ */
121
+ private _simpleWarningWithChoice;
122
+ /**
123
+ * Mostra un messaggio di success con richiesta di conferma e gestisce il risultato chiamato i callback **onconfirm** o **onabort**
124
+ *
125
+ * @param {string} title Titolo del messaggio
126
+ * @param {string} text Contenuto del messaggio
127
+ * @param {Function} onconfirm Callback da chimare su conferma
128
+ * @param {Function} onabort Callback da chimare su annullamento
129
+ * @param {string} confirmtext Testo del pulsante di azione
130
+ * @param {string} aborttext Testo del pulsante di annullamento
131
+ */
132
+ private _simpleSuccessWithChoice;
133
+ /**
134
+ * Metodo base per richiedere una scelta all'utente
135
+ *
136
+ * @param {any} swal Swal mixin da utilizzare per visualizzare il messaggio di choice
137
+ * @param {string} title Titolo del messaggio
138
+ * @param {string} text Contenuto del messaggio
139
+ * @param {Function} onconfirm Callback da chimare su conferma
140
+ * @param {Function} onabort Callback da chimare su annullamento
141
+ * @param {string} confirmtext Testo del pulsante di azione
142
+ * @param {string} aborttext Testo del pulsante di annullamento
143
+ */
144
+ private _simpleWithChoice;
145
+ /**
146
+ * Mostra un messaggio di avviso con richiesta di conferma e gestisce il risultato chiamato i callback **onsuccess** o **onerror**
147
+ *
148
+ * @param {string} title Titolo del messaggio
149
+ * @param {string} text Contenuto del messaggio
150
+ */
151
+ observableSimpleWarningWithChoice(title: string, text: string): Observable<boolean>;
152
+ /**
153
+ * Mostra un messaggio di avviso che la sessione corrente è scaduta e propone all'utente di navigare al login. Qualora l'utente decidesse di farlo
154
+ * verrà chiamata la funzione di callback **onnavigate
155
+ *
156
+ * @param {string} title Titolo del messaggio
157
+ * @param {string} text Contenuto del messaggio
158
+ * @param {Function} onnavigate Callback da chimare su navigazione in corso
159
+ */
160
+ expiredSessionMessage(title: string, text: string, onnavigate?: Function): void;
161
+ /**
162
+ * Metodo helper per gestire in maniera standardizzata una risposta di tipo **CallResult**
163
+ *
164
+ * @param {CallResult} response Risposta ricevuta dal server
165
+ * @param {string} successMsg Messaggio da visualizzare in caso di successo
166
+ * @param {string} errorMsg Messaggio da visualizzare in caso di fallimento
167
+ * @param {Function} postSuccess Callback da chimare in caso di successo
168
+ * @param {Function} postFailure Callback da chimare in caso di fallimento
169
+ */
170
+ manageCallResultResponse(response: CallResult, successMsg: string, errorMsg: string, postSuccess?: Function, postFailure?: Function): void;
171
+ /**
172
+ * Metodo helper per gestire in maniera standardizzata una risposta di tipo **string**, considerando che:
173
+ *
174
+ * Stringa vuota --> Tutto bene
175
+ *
176
+ * Stringa piena --> Questo è il messaggio d'errore per cui la chiamata è fallita
177
+ *
178
+ * @param {string} response Risposta ricevuta dal server
179
+ * @param {string} successMsg Messaggio da visualizzare in caso di successo
180
+ * @param {string} errorMsg Messaggio da visualizzare in caso di fallimento
181
+ * @param {Function} postSuccess Callback da chimare in caso di successo
182
+ * @param {Function} postFailure Callback da chimare in caso di fallimento
183
+ */
184
+ manageStringResponse(response: string, successMsg: string, errorMsg: string, postSuccess?: Function, postFailure?: Function): void;
185
+ /**
186
+ * Metodo helper per gestire in maniera standardizzata una risposta di tipo **boolean**
187
+ *
188
+ * @param {string} response Risposta ricevuta dal server
189
+ * @param {string} successMsg Messaggio da visualizzare in caso di successo
190
+ * @param {string} errorMsg Messaggio da visualizzare in caso di fallimento
191
+ * @param {Function} postSuccess Callback da chimare in caso di successo
192
+ * @param {Function} postFailure Callback da chimare in caso di fallimento
193
+ */
194
+ manageStringResponseBool(response: boolean, successMsg: string, errorMsg: string, postSuccess?: Function, postFailure?: Function): void;
195
+ static ɵfac: i0.ɵɵFactoryDeclaration<MessageService, [null, { optional: true; }, null, null]>;
196
+ static ɵprov: i0.ɵɵInjectableDeclaration<MessageService>;
197
+ }
@@ -0,0 +1,107 @@
1
+ import { Type } from "@angular/core";
2
+ import { NgForm } from "@angular/forms";
3
+ import { TypeCode } from '../models/TypeCode';
4
+ import * as i0 from "@angular/core";
5
+ /**
6
+ * Service che fornisce metodi di pubblica utilità
7
+ */
8
+ export declare class UtilityService {
9
+ /**
10
+ * Deseleziona il testo eventualmente selezionato
11
+ */
12
+ clearTextSelection(): void;
13
+ /**
14
+ * Partendo da una lista, dato il nome della proprietà chiave e il valore della chiave selezionata,
15
+ * trova e restituisce l'oggetto desiderato
16
+ *
17
+ * @param {T[]} sourceList Lista di oggetti dentro cui cercare
18
+ * @param {string} sourceItemIdField Nome della proprietà che rappresenta la chiave di un oggetto di tipo T
19
+ * @param {string} selectedValue Valore di chiave selezionato
20
+ *
21
+ * @returns {T} Oggetto la cui proprietà **sourceItemIdField** assume il valore **selectedValue**
22
+ */
23
+ getSelectedItem<T>(sourceList: T[], sourceItemIdField: string, selectedValue: string): T;
24
+ /**
25
+ * Effettua il reset di un Form di Angular
26
+ *
27
+ * @param {NgForm} form Form da resettare
28
+ * @param {string} exception1 Campo da non resettare
29
+ * @param {string} exception2 Campo da non resettare
30
+ */
31
+ cleanForm(form: NgForm, exception1?: string, exception2?: string): void;
32
+ /**
33
+ * Helper che permette di scaricare un file dato un URL (Generato da una chiamata ad **window.URL.createObjectURL**)
34
+ *
35
+ * @param {string} url ObjectURL che rappresenta il file da scaricare
36
+ * @param {string} filename Nome del file suggerito in fase di salvataggio
37
+ */
38
+ fileDownload(url: string, fileName: string): void;
39
+ /**
40
+ * Helper per la formattazione di un numero di millisecondi in una stringa più comprensibile per un umano
41
+ *
42
+ * @param {number} duration Tempo espresso in millisecondi
43
+ *
44
+ * @returns {string} Durata formattata
45
+ */
46
+ msToTime(duration: number): string;
47
+ /**
48
+ * Helper che permette di scaricare un file in Base64
49
+ *
50
+ * @param {string} base64Data Base64 che rappresenta il file da scaricare
51
+ * @param {string} filename Nome del file suggerito in fase di salvataggio
52
+ */
53
+ saveFile(base64Data: string, filename: string): void;
54
+ /**
55
+ * Trasforma un Base64 in un ArrayBuffer
56
+ *
57
+ * @param {string} base64Data Base64 da trasformare
58
+ *
59
+ * @returns {Uint8Array} Array UTF8
60
+ */
61
+ private base64ToArrayBuffer;
62
+ /**
63
+ * Helper che permette di scaricare un file dato un array di Byte (**Uint8Array**)
64
+ *
65
+ * @param {Uint8Array} byte Rappresentazione del file da scaricare
66
+ * @param {string} filename Nome del file suggerito in fase di salvataggio
67
+ */
68
+ private saveByteArray;
69
+ /**
70
+ * Utility per lo swap di due elementi di un array
71
+ *
72
+ * @param {any[]} array Array di cui invertire due elementi
73
+ * @param {number} x Indice del primo elemento
74
+ * @param {number} y Indice del secondo elemento
75
+ */
76
+ swap(array: any[], x: number, y: number): void;
77
+ /**
78
+ * Helper di trascodifica da tipo c# a tipo Typescript
79
+ *
80
+ * @param {TypeCode} type Tipo da trascodificare
81
+ *
82
+ * @returns {"boolean" | "number" | "string" | "date"} Tipo Typescript corrispondente
83
+ */
84
+ getJsTypeFromTypeCode(type: TypeCode): "boolean" | "number" | "string" | "date";
85
+ /**
86
+ * Effettua la clonazione profonda di un oggetto in maniera molto più performante che JSON.parse(JSON.stringify()).
87
+ *
88
+ * Usare solo per oggetti puri e quantomeno semplici per evitare complicazioni derivanti dalle semplificazioni che questo metodo assume
89
+ *
90
+ * @param {any} source Oggetto da clonare
91
+ *
92
+ * @return {any} Clone dell'oggetto passato
93
+ */
94
+ deepClone(source: any, type?: Type<any>): any;
95
+ /**
96
+ * @ignore
97
+ * Step ricorsivo per la clonatura degli oggetti. Vedere **deepClone**
98
+ */
99
+ private recursiveStep;
100
+ cast(object: any, clss: Type<any>): any;
101
+ /** @ignore */
102
+ private executionTimers;
103
+ /** @ignore */
104
+ throttla(id: string, func: Function, throttleTime: number): void;
105
+ static ɵfac: i0.ɵɵFactoryDeclaration<UtilityService, never>;
106
+ static ɵprov: i0.ɵɵInjectableDeclaration<UtilityService>;
107
+ }
@@ -0,0 +1,11 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * Token che indica il prefisso delle searchView che serve per storicizzarle evitando di tirarsi in memoria anche tutti gli oggetti. Se vuoto viene supposto 'Hot'
4
+ */
5
+ export declare const APPSEARCH_PREFIX: InjectionToken<string>;
6
+ /**
7
+ * Token che indica se i metodi di estensione che utilizzano le date permettono l'uso di date in utc
8
+ */
9
+ export declare const EXT_ALLOW_UTC: InjectionToken<boolean>;
10
+ /** Modalità di Debug */
11
+ export declare const EXT_DEBUG_MODE: InjectionToken<boolean>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@esfaenza/extensions",
3
- "version": "20.3.2",
3
+ "version": "20.3.3",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
@@ -0,0 +1,18 @@
1
+ export * from './lib/modules/extensions.module';
2
+ export * from './lib/services/extensions.base';
3
+ export * from './lib/services/extensions.dates.service';
4
+ export * from './lib/services/extensions.exports.service';
5
+ export * from './lib/services/extensions.clipboard.service';
6
+ export * from './lib/services/extensions.hashing.service';
7
+ export * from './lib/services/extensions.messages.service';
8
+ export * from './lib/services/extensions.utilities.service';
9
+ export * from './lib/services/extensions.embedding.service';
10
+ export * from './lib/tokens';
11
+ export * from './lib/models/CallResult';
12
+ export * from './lib/models/CsvHeaders';
13
+ export * from './lib/models/GenericItem';
14
+ export * from './lib/pipes/loc_date.pipe';
15
+ /** Intercom */
16
+ export * from './lib/models/InboundMessageTypes';
17
+ export * from './lib/models/InterComMessage';
18
+ export * from './lib/services/extensions.intercom.service';