@esfaenza/preferences 20.3.6 → 20.3.7
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/fesm2022/esfaenza-preferences.mjs +24 -24
- package/fesm2022/esfaenza-preferences.mjs.map +1 -1
- package/index.d.ts +26 -26
- package/package.json +1 -1
|
@@ -38,7 +38,7 @@ let BaseService = class BaseService {
|
|
|
38
38
|
* @param {string} key Chiave di persistenza
|
|
39
39
|
* @param {T} item Oggetto da salvare
|
|
40
40
|
*/
|
|
41
|
-
setItem(key, item) {
|
|
41
|
+
setItem(key, item, global) {
|
|
42
42
|
let detatched = JSON.parse(JSON.stringify(item));
|
|
43
43
|
if (detatched) {
|
|
44
44
|
if (detatched.selfsearch)
|
|
@@ -47,7 +47,7 @@ let BaseService = class BaseService {
|
|
|
47
47
|
detatched.items = [];
|
|
48
48
|
}
|
|
49
49
|
this.setLocalItem(key, detatched);
|
|
50
|
-
return this.persist(key, detatched);
|
|
50
|
+
return this.persist(key, detatched, global);
|
|
51
51
|
}
|
|
52
52
|
/**
|
|
53
53
|
* Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione
|
|
@@ -65,8 +65,8 @@ let BaseService = class BaseService {
|
|
|
65
65
|
*
|
|
66
66
|
* @param {string} key Chiave da storicizzare
|
|
67
67
|
*/
|
|
68
|
-
persist(key, item) {
|
|
69
|
-
return this.persistor.persist(key, item);
|
|
68
|
+
persist(key, item, global) {
|
|
69
|
+
return this.persistor.persist(key, item, global);
|
|
70
70
|
}
|
|
71
71
|
/**
|
|
72
72
|
* Recupera un oggetto in base a una chiave. Permette di accedere alla copia locale o alla copia persistita.
|
|
@@ -77,16 +77,16 @@ let BaseService = class BaseService {
|
|
|
77
77
|
*
|
|
78
78
|
* @returns {Observable<T>} Oggetto richiesto
|
|
79
79
|
*/
|
|
80
|
-
getItem(key, cacheBust = false) {
|
|
80
|
+
getItem(key, cacheBust = false, global) {
|
|
81
81
|
if (this.PREF_FULL_RETRIEVE_AT_START && !this.AllRetrieved) {
|
|
82
|
-
let retrieveObservable = this.persistor.recoverAll().pipe(take(1), tap(t => {
|
|
82
|
+
let retrieveObservable = this.persistor.recoverAll(global).pipe(take(1), tap(t => {
|
|
83
83
|
this.AllRetrieved = true;
|
|
84
84
|
for (let cProp in t)
|
|
85
85
|
this.LocalStore[cProp] = t[cProp];
|
|
86
86
|
}));
|
|
87
|
-
return retrieveObservable.pipe(switchMap(r => this.doGetItem(key, cacheBust)));
|
|
87
|
+
return retrieveObservable.pipe(switchMap(r => this.doGetItem(key, cacheBust, global)));
|
|
88
88
|
}
|
|
89
|
-
return this.doGetItem(key, cacheBust);
|
|
89
|
+
return this.doGetItem(key, cacheBust, global);
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
92
|
* Funzione interna che effettivamente recupera le cache
|
|
@@ -96,11 +96,11 @@ let BaseService = class BaseService {
|
|
|
96
96
|
*
|
|
97
97
|
* @returns Observable che alla sottoscrizione restituisce l'oggetto richiesto
|
|
98
98
|
*/
|
|
99
|
-
doGetItem(key, cacheBust = false) {
|
|
99
|
+
doGetItem(key, cacheBust = false, global) {
|
|
100
100
|
if (this.LocalStore[key] && !cacheBust)
|
|
101
101
|
return of(this.LocalStore[key]);
|
|
102
102
|
else {
|
|
103
|
-
var obj = this.persistor.recover(key);
|
|
103
|
+
var obj = this.persistor.recover(key, global);
|
|
104
104
|
if (!obj)
|
|
105
105
|
return of(null);
|
|
106
106
|
obj.pipe(tap(item => { this.LocalStore[key] = item; }));
|
|
@@ -125,19 +125,19 @@ let BaseService = class BaseService {
|
|
|
125
125
|
*
|
|
126
126
|
* @param {string} key Chiave da rimuovere
|
|
127
127
|
*/
|
|
128
|
-
removeItem(key) {
|
|
128
|
+
removeItem(key, global) {
|
|
129
129
|
if (this.LocalStore[key])
|
|
130
130
|
delete this.LocalStore[key];
|
|
131
|
-
return this.persistor.remove(key);
|
|
131
|
+
return this.persistor.remove(key, global);
|
|
132
132
|
}
|
|
133
133
|
/**
|
|
134
134
|
* Ripulisce le impostazioni locali e le impostazioni salvate dal persistor
|
|
135
135
|
*/
|
|
136
|
-
clear() {
|
|
136
|
+
clear(global) {
|
|
137
137
|
// Pulisco la cache locale
|
|
138
138
|
this.LocalStore = {};
|
|
139
139
|
// "Committo" le modifiche
|
|
140
|
-
return this.persistor.clear();
|
|
140
|
+
return this.persistor.clear(global);
|
|
141
141
|
}
|
|
142
142
|
};
|
|
143
143
|
BaseService = __decorate([
|
|
@@ -157,10 +157,10 @@ class CachePersistor {
|
|
|
157
157
|
*
|
|
158
158
|
* @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
|
|
159
159
|
*/
|
|
160
|
-
persistAll(dictionary) {
|
|
160
|
+
persistAll(dictionary, global) {
|
|
161
161
|
let observables = [];
|
|
162
162
|
for (let key in dictionary)
|
|
163
|
-
observables.push(this.persist(key, dictionary[key]));
|
|
163
|
+
observables.push(this.persist(key, dictionary[key], global));
|
|
164
164
|
return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));
|
|
165
165
|
}
|
|
166
166
|
/**
|
|
@@ -170,8 +170,8 @@ class CachePersistor {
|
|
|
170
170
|
*
|
|
171
171
|
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
172
172
|
*/
|
|
173
|
-
getKey(key) {
|
|
174
|
-
return this.session.getSessionKey() + "§" + key + "§";
|
|
173
|
+
getKey(key, global) {
|
|
174
|
+
return this.session.getSessionKey(global) + "§" + key + "§";
|
|
175
175
|
}
|
|
176
176
|
}
|
|
177
177
|
|
|
@@ -208,10 +208,10 @@ class PreferencesPersistor {
|
|
|
208
208
|
*
|
|
209
209
|
* @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
|
|
210
210
|
*/
|
|
211
|
-
persistAll(dictionary) {
|
|
211
|
+
persistAll(dictionary, global) {
|
|
212
212
|
let observables = [];
|
|
213
213
|
for (let key in dictionary)
|
|
214
|
-
observables.push(this.persist(key, dictionary[key]));
|
|
214
|
+
observables.push(this.persist(key, dictionary[key], global));
|
|
215
215
|
return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));
|
|
216
216
|
}
|
|
217
217
|
/**
|
|
@@ -221,8 +221,8 @@ class PreferencesPersistor {
|
|
|
221
221
|
*
|
|
222
222
|
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
223
223
|
*/
|
|
224
|
-
getKey(key) {
|
|
225
|
-
return this.session.getSessionKey() + "§" + key + "§";
|
|
224
|
+
getKey(key, global) {
|
|
225
|
+
return this.session.getSessionKey(global) + "§" + key + "§";
|
|
226
226
|
}
|
|
227
227
|
}
|
|
228
228
|
|
|
@@ -292,8 +292,8 @@ class DefaultSessionRetriever extends BaseSessionRetriever {
|
|
|
292
292
|
*
|
|
293
293
|
* @returns {string} ID sessione
|
|
294
294
|
*/
|
|
295
|
-
getSessionKey() {
|
|
296
|
-
return "DUMMY_SESSION";
|
|
295
|
+
getSessionKey(global) {
|
|
296
|
+
return global ? "DUMMY_SESSION_GLOBAL" : "DUMMY_SESSION";
|
|
297
297
|
}
|
|
298
298
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DefaultSessionRetriever, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
299
299
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.24", ngImport: i0, type: DefaultSessionRetriever });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"esfaenza-preferences.mjs","sources":["../../../projects/preferences/src/lib/tokens.ts","../../../projects/preferences/src/lib/services/base/base.service.ts","../../../projects/preferences/src/lib/persistor/base/CachePersistor.ts","../../../projects/preferences/src/lib/services/cache.service.ts","../../../projects/preferences/src/lib/persistor/base/PreferencesPersistor.ts","../../../projects/preferences/src/lib/services/preferences.service.ts","../../../projects/preferences/src/lib/models/PreferencesModuleConfig.ts","../../../projects/preferences/src/lib/session/base/BaseSessionRetriever.ts","../../../projects/preferences/src/lib/session/implementation/DefaultSessionRetriever.ts","../../../projects/preferences/src/lib/persistor/implementation/LocalStorageCachePersistor.ts","../../../projects/preferences/src/lib/persistor/implementation/LocalStoragePreferencesPersistor.ts","../../../projects/preferences/src/lib/preferences.module.ts","../../../projects/preferences/src/esfaenza-preferences.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.\r\n * \r\n * Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte\r\n */\r\nexport const PREF_FULL_RETRIEVE_AT_START: InjectionToken<boolean> = new InjectionToken<boolean>('PREF_FULL_RETRIEVE_AT_START');\r\n\r\n/** Modalità di Debug */\r\nexport const PREF_DEBUG_MODE: InjectionToken<boolean> = new InjectionToken<boolean>('PREF_DEBUG_MODE');","// Angular\r\nimport { Inject, Optional } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { switchMap, take, tap } from 'rxjs/operators';\r\nimport { IBasePersistor } from '../../persistor/base/IBasePersistor';\r\n\r\n// Modelli\r\nimport { PREF_FULL_RETRIEVE_AT_START } from '../../tokens';\r\nimport { IBaseStorage } from './IBaseStorage';\r\n\r\n/**\r\n * Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate\r\n */\r\nexport class BaseService implements IBaseStorage {\r\n\r\n /** Store in memoria delle preferenze locali che sarà persistito per mezzo della classe che fa le veci del **BasePreferencesPersistor** */\r\n protected LocalStore: { [index: string]: any } = {};\r\n\r\n /** Indica se ho già effettuato il retrieve di tutta la roba salvata */\r\n private AllRetrieved: boolean = false;\r\n\r\n /**\r\n * Costruttore\r\n * \r\n * @ignore\r\n */\r\n constructor(private persistor: IBasePersistor, @Optional() @Inject(PREF_FULL_RETRIEVE_AT_START) private PREF_FULL_RETRIEVE_AT_START: boolean) {\r\n }\r\n\r\n /**\r\n * Salva un oggetto sia nella cache locale che nel persistor\r\n * \r\n * @param {string} key Chiave di persistenza\r\n * @param {T} item Oggetto da salvare\r\n */\r\n public setItem<T>(key: string, item: T): Observable<boolean> {\r\n let detatched = JSON.parse(JSON.stringify(item));\r\n if (detatched) {\r\n if (detatched.selfsearch)\r\n detatched.selfsearch = false;\r\n if (detatched.page && detatched.items && detatched.items.length > 0)\r\n detatched.items = [];\r\n }\r\n \r\n this.setLocalItem(key, detatched)\r\n return this.persist(key, detatched);\r\n }\r\n\r\n /**\r\n * Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione\r\n * \r\n * @param {string} key Chiave di persistenza\r\n * @param {T} item Oggetto da salvare\r\n */\r\n public setLocalItem<T>(key: string, item: T): boolean {\r\n this.LocalStore[key] = item;\r\n return true;\r\n }\r\n\r\n /**\r\n * Salva, per una sessione, una chiave con un valore, viene chiamato automaticamente dal metodo **store** ma dev'essere chiamato manualmente\r\n * nel caso si utilizzi il metodo **storeLocal**\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n */\r\n private persist<T>(key: string, item: T): Observable<boolean> {\r\n return this.persistor.persist(key, item);\r\n }\r\n\r\n /**\r\n * Recupera un oggetto in base a una chiave. Permette di accedere alla copia locale o alla copia persistita.\r\n * \r\n * @param {string} key Chiave del valore da recuperare\r\n * @param {boolean} cacheBust Indica se ignorare il valore della cache locale e recuperare l'oggetto dallo store persistito, \r\n * in caso fosse stato modificato fuori sistema o da un altro sistema\r\n * \r\n * @returns {Observable<T>} Oggetto richiesto\r\n */\r\n public getItem<T>(key: string, cacheBust: boolean = false): Observable<T> {\r\n if (this.PREF_FULL_RETRIEVE_AT_START && !this.AllRetrieved) {\r\n\r\n let retrieveObservable = this.persistor.recoverAll().pipe(take(1), tap(t => {\r\n this.AllRetrieved = true;\r\n for (let cProp in t) this.LocalStore[cProp] = t[cProp];\r\n }));\r\n\r\n return retrieveObservable.pipe(switchMap(r => this.doGetItem<T>(key, cacheBust)));\r\n }\r\n\r\n return this.doGetItem(key, cacheBust);\r\n }\r\n\r\n /**\r\n * Funzione interna che effettivamente recupera le cache\r\n * \r\n * @param key Chiave da recuperare\r\n * @param cacheBust Indica se raccogliere dagli elementi locali o se prendere una copia nuova dell'oggetto dalla cache persistita\r\n * \r\n * @returns Observable che alla sottoscrizione restituisce l'oggetto richiesto\r\n */\r\n private doGetItem<T>(key: string, cacheBust: boolean = false): Observable<T> {\r\n if (this.LocalStore[key] && !cacheBust)\r\n return of(<T>this.LocalStore[key]);\r\n else {\r\n var obj = this.persistor.recover<T>(key);\r\n if (!obj)\r\n return of(null as T);\r\n obj.pipe(tap(item => { this.LocalStore[key] = item; }))\r\n return obj;\r\n }\r\n }\r\n\r\n /**\r\n * Recupera un oggetto in base a una chiave. Permette di accedere solo alla copia locale\r\n * \r\n * @param {string} key Chiave del valore da recuperare\r\n * \r\n * @returns {T} Oggetto richiesto\r\n */\r\n public getLocalItem<T>(key: string): T {\r\n if (this.LocalStore[key])\r\n return <T>this.LocalStore[key];\r\n else\r\n return null;\r\n }\r\n\r\n /**\r\n * Elimina un oggetto dalla cache sia locale che persistita\r\n * \r\n * @param {string} key Chiave da rimuovere\r\n */\r\n public removeItem(key: string): Observable<boolean> {\r\n if (this.LocalStore[key])\r\n delete this.LocalStore[key];\r\n\r\n return this.persistor.remove(key);\r\n }\r\n\r\n /**\r\n * Ripulisce le impostazioni locali e le impostazioni salvate dal persistor\r\n */\r\n public clear(): Observable<boolean> {\r\n // Pulisco la cache locale\r\n this.LocalStore = {};\r\n // \"Committo\" le modifiche\r\n return this.persistor.clear();\r\n }\r\n}","import { Observable, forkJoin } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { IBasePersistor } from \"./IBasePersistor\";\r\n\r\n/** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */\r\nexport abstract class CachePersistor implements IBasePersistor {\r\n\r\n /** @ignore Costruttore */\r\n constructor(protected session: BaseSessionRetriever) {}\r\n\r\n /**\r\n * Salva, per una sessione, una chiave con un valore\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n */\r\n public abstract persist<T>(key: string, item: T): Observable<boolean>;\r\n\r\n /**\r\n * Recupera, per una sessione, il valore assegnato ad una chiave\r\n * \r\n * @param {string} key Chiave da recuperare\r\n * \r\n * @returns {Observable<T>} Valore salvato per la chiave **key**\r\n */\r\n public abstract recover<T>(key?: string): Observable<T>;\r\n\r\n /**\r\n * Per una sessione recupera tutte le coppie Chiave - Valore salvate\r\n * \r\n * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione\r\n */\r\n public abstract recoverAll(): Observable<{ [index: string]: any }>;\r\n\r\n /**\r\n * Ripulisce le preference salvate relative ad una sessione\r\n */\r\n public abstract clear(): Observable<boolean>;\r\n\r\n /**\r\n * Elimina un oggetto dalla cache persistita\r\n * \r\n * @param {string} key Chiave da rimuovere\r\n */\r\n public abstract remove(key: string): Observable<boolean>;\r\n\r\n /**\r\n * Effettua il **persist** massivo di una lista di Chiave - Valore\r\n * \r\n * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere\r\n */\r\n public persistAll(dictionary: { [key: string]: string }): Observable<boolean> {\r\n let observables: Observable<boolean>[] = [];\r\n for (let key in dictionary)\r\n observables.push(this.persist(key, dictionary[key]));\r\n\r\n return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));\r\n }\r\n\r\n /**\r\n * Ottiene la chiave \"Reale\" da utilizzare per la persistenza di una chiave generica\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n * \r\n * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata\r\n */\r\n public getKey(key: string): string {\r\n return this.session.getSessionKey() + \"§\" + key + \"§\";\r\n }\r\n}","// Angular\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { BaseService } from './base/base.service';\r\n\r\n// Modelli\r\nimport { PREF_FULL_RETRIEVE_AT_START } from './../tokens';\r\nimport { CachePersistor } from '../persistor/base/CachePersistor';\r\n\r\n/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */\r\n@Injectable()\r\nexport class CacheService extends BaseService {\r\n\r\n /** @ignore Costruttore */\r\n constructor(persistor: CachePersistor, @Optional() @Inject(PREF_FULL_RETRIEVE_AT_START) PREF_FULL_RETRIEVE_AT_START: boolean) {\r\n super(persistor, PREF_FULL_RETRIEVE_AT_START);\r\n }\r\n}","import { Observable, forkJoin } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { IBasePersistor } from \"./IBasePersistor\";\r\n\r\n/**\r\n * Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage\r\n */\r\nexport abstract class PreferencesPersistor implements IBasePersistor {\r\n\r\n /** @ignore Costruttore */\r\n constructor(protected session: BaseSessionRetriever) {}\r\n\r\n /**\r\n * Salva, per una sessione, una chiave con un valore\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n */\r\n public abstract persist<T>(key: string, item: T): Observable<boolean>;\r\n\r\n /**\r\n * Recupera, per una sessione, il valore assegnato ad una chiave\r\n * \r\n * @param {string} key Chiave da recuperare\r\n * \r\n * @returns {Observable<T>} Valore salvato per la chiave **key**\r\n */\r\n public abstract recover<T>(key?: string): Observable<T>;\r\n\r\n /**\r\n * Per una sessione recupera tutte le coppie Chiave - Valore salvate\r\n * \r\n * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione\r\n */\r\n public abstract recoverAll(): Observable<{ [index: string]: any }>;\r\n\r\n /**\r\n * Ripulisce le preference salvate relative ad una sessione\r\n */\r\n public abstract clear(): Observable<boolean>;\r\n\r\n /**\r\n * Elimina un oggetto dalla cache persistita\r\n * \r\n * @param {string} key Chiave da rimuovere\r\n */\r\n public abstract remove(key: string): Observable<boolean>;\r\n\r\n /**\r\n * Effettua il **persist** massivo di una lista di Chiave - Valore\r\n * \r\n * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere\r\n */\r\n public persistAll(dictionary: { [key: string]: string }): Observable<boolean> {\r\n let observables: Observable<boolean>[] = [];\r\n for (let key in dictionary)\r\n observables.push(this.persist(key, dictionary[key]));\r\n\r\n return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));\r\n }\r\n\r\n /**\r\n * Ottiene la chiave \"Reale\" da utilizzare per la persistenza di una chiave generica\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n * \r\n * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata\r\n */\r\n public getKey(key: string): string {\r\n return this.session.getSessionKey() + \"§\" + key + \"§\";\r\n }\r\n}","// Angular\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { BaseService } from './base/base.service';\r\n\r\n// Modelli\r\nimport { PREF_FULL_RETRIEVE_AT_START } from './../tokens';\r\nimport { PreferencesPersistor } from '../persistor/base/PreferencesPersistor';\r\n\r\n/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */\r\n@Injectable()\r\nexport class PreferencesService extends BaseService {\r\n\r\n /** @ignore Costruttore */\r\n constructor(persistor: PreferencesPersistor, @Optional() @Inject(PREF_FULL_RETRIEVE_AT_START) PREF_FULL_RETRIEVE_AT_START: boolean) {\r\n super(persistor, PREF_FULL_RETRIEVE_AT_START);\r\n }\r\n}","import { Type } from \"@angular/core\";\r\nimport { CachePersistor } from \"../persistor/base/CachePersistor\";\r\nimport { PreferencesPersistor } from \"../persistor/base/PreferencesPersistor\";\r\nimport { BaseSessionRetriever } from \"../session/base/BaseSessionRetriever\";\r\n\r\n/**\r\n * Classe di Configurazione per la libreria\r\n */\r\nexport class PreferencesModuleConfig{\r\n\r\n /**\r\n * Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.\r\n * \r\n * Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte\r\n */\r\n retrieveAllAtStart?: boolean;\r\n\r\n /**\r\n * Classe che si deve occupare dello store \"Definitivo\" delle preferenze. Di default viene proposto uno store lato localStorage ma si può facilmente \r\n * fornire uno storage che porta le informazioni lato Database\r\n */\r\n preferencePersistor?: Type<PreferencesPersistor>;\r\n\r\n /**\r\n * Classe che si deve occupare dello store \"Definitivo\" delle cache. Di default viene proposto uno store lato localStorage ma si può facilmente \r\n * fornire uno storage che porta le informazioni lato Database\r\n */\r\n cachePersistor?: Type<CachePersistor>;\r\n\r\n /** Classe che si deve occupare per generare un ID univoco di sessione in base al quale verranno salvate le preferenze */\r\n sessionRetriever?: Type<BaseSessionRetriever>;\r\n \r\n /** Attiva la modalità di debug per l'esposizione di messaggi significativi */\r\n debugMode?: boolean;\r\n}","/**\r\n * Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato\r\n */\r\nexport abstract class BaseSessionRetriever {\r\n\r\n /**\r\n * Ottiene un ID sessione\r\n * \r\n * @returns {string} ID sessione\r\n */\r\n public abstract getSessionKey(): string;\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { BaseSessionRetriever } from \"../base/BaseSessionRetriever\";\r\n\r\n/**\r\n * Implementazione di default per la classe **BaseSessionRetriever**\r\n */\r\n@Injectable()\r\nexport class DefaultSessionRetriever extends BaseSessionRetriever {\r\n\r\n /**\r\n * Costruttore\r\n * \r\n * @ignore\r\n */\r\n constructor() { super(); }\r\n\r\n /**\r\n * Ottiene un ID sessione\r\n * \r\n * @returns {string} ID sessione\r\n */\r\n getSessionKey(): string {\r\n return \"DUMMY_SESSION\";\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Classi\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { CachePersistor } from \"../base/CachePersistor\";\r\nimport { IBasePersistor } from \"../base/IBasePersistor\";\r\n\r\n// RXJS\r\nimport { Observable, of } from \"rxjs\";\r\nimport { first } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class LocalStorageCachePersistor extends CachePersistor implements IBasePersistor {\r\n\r\n constructor(session: BaseSessionRetriever) {\r\n super(session);\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.setItem(this.getKey(key), JSON.stringify(item));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recover<T>(key: string): Observable<T> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n var ret = <T>JSON.parse(localStorage.getItem(this.getKey(key)));\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public remove(key: string): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.removeItem(this.getKey(key));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n\r\n var ret: { [index: string]: string; } = {};\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n ret[k.match(/§(.*)§/)[1]] = JSON.parse(localStorage.getItem(k));\r\n }\r\n\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public clear(): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n localStorage.removeItem(k);\r\n }\r\n return of(true).pipe(first());\r\n }\r\n}\r\n\r\n","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// RXJS\r\nimport { Observable, of } from \"rxjs\";\r\nimport { first } from \"rxjs/operators\";\r\n\r\n// Classi\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { PreferencesPersistor } from \"../base/PreferencesPersistor\";\r\nimport { IBasePersistor } from \"../base/IBasePersistor\";\r\n\r\n@Injectable()\r\nexport class LocalStoragePreferencesPersistor extends PreferencesPersistor implements IBasePersistor {\r\n\r\n constructor(session: BaseSessionRetriever) {\r\n super(session);\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.setItem(this.getKey(key), JSON.stringify(item));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recover<T>(key: string): Observable<T> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n var ret = <T>JSON.parse(localStorage.getItem(this.getKey(key)));\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public remove(key: string): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.removeItem(this.getKey(key));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n var ret: { [index: string]: string; } = {};\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n ret[k.match(/§(.*)§/)[1]] = JSON.parse(localStorage.getItem(k));\r\n }\r\n\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public clear(): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n localStorage.removeItem(k);\r\n }\r\n return of(true).pipe(first());\r\n }\r\n}\r\n","// Angular\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgModule } from '@angular/core';\r\n\r\n// Modelli\r\nimport { PreferencesModuleConfig } from './models/PreferencesModuleConfig';\r\nimport { CacheService } from './services/cache.service';\r\nimport { PreferencesService } from './services/preferences.service';\r\nimport { BaseSessionRetriever } from './session/base/BaseSessionRetriever';\r\nimport { DefaultSessionRetriever } from './session/implementation/DefaultSessionRetriever';\r\nimport { PREF_FULL_RETRIEVE_AT_START, PREF_DEBUG_MODE } from './tokens';\r\nimport { CachePersistor } from './persistor/base/CachePersistor';\r\nimport { PreferencesPersistor } from './persistor/base/PreferencesPersistor';\r\nimport { LocalStorageCachePersistor } from './persistor/implementation/LocalStorageCachePersistor';\r\nimport { LocalStoragePreferencesPersistor } from './persistor/implementation/LocalStoragePreferencesPersistor';\r\n\r\n@NgModule()\r\nexport class PreferencesModule {\r\n static forRoot(config?: PreferencesModuleConfig): ModuleWithProviders<PreferencesModule> {\r\n return {\r\n ngModule: PreferencesModule,\r\n providers: [\r\n CacheService,\r\n PreferencesService,\r\n { provide: PreferencesPersistor, useClass: config?.preferencePersistor || LocalStoragePreferencesPersistor },\r\n { provide: CachePersistor, useClass: config?.cachePersistor || LocalStorageCachePersistor },\r\n { provide: BaseSessionRetriever, useClass: config?.sessionRetriever || DefaultSessionRetriever },\r\n { provide: PREF_FULL_RETRIEVE_AT_START, useValue: config?.retrieveAllAtStart || true },\r\n { provide: PREF_DEBUG_MODE, useValue: config?.debugMode || false },\r\n ]\r\n };\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BaseSessionRetriever"],"mappings":";;;;;;AAEA;;;;AAIG;MACU,2BAA2B,GAA4B,IAAI,cAAc,CAAU,6BAA6B;AAE7H;MACa,eAAe,GAA4B,IAAI,cAAc,CAAU,iBAAiB;;ACArG;;AAEG;AACI,IAAM,WAAW,GAAjB,MAAM,WAAW,CAAA;AAaF,IAAA,SAAA;AAAoF,IAAA,2BAAA;;IAV9F,UAAU,GAA6B,EAAE;;IAG3C,YAAY,GAAY,KAAK;AAErC;;;;AAIG;IACH,WAAA,CAAoB,SAAyB,EAA2D,2BAAoC,EAAA;QAAxH,IAAA,CAAA,SAAS,GAAT,SAAS;QAA2E,IAAA,CAAA,2BAA2B,GAA3B,2BAA2B;IACnI;AAEA;;;;;AAKG;IACI,OAAO,CAAI,GAAW,EAAE,IAAO,EAAA;AACpC,QAAA,IAAI,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,SAAS,EAAE;YACb,IAAI,SAAS,CAAC,UAAU;AACtB,gBAAA,SAAS,CAAC,UAAU,GAAG,KAAK;AAC9B,YAAA,IAAI,SAAS,CAAC,IAAI,IAAI,SAAS,CAAC,KAAK,IAAI,SAAS,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC;AACjE,gBAAA,SAAS,CAAC,KAAK,GAAG,EAAE;QACxB;AAEA,QAAA,IAAI,CAAC,YAAY,CAAC,GAAG,EAAE,SAAS,CAAC;QACjC,OAAO,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,SAAS,CAAC;IACrC;AAEA;;;;;AAKG;IACI,YAAY,CAAI,GAAW,EAAE,IAAO,EAAA;AACzC,QAAA,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI;AAC3B,QAAA,OAAO,IAAI;IACb;AAEA;;;;;AAKG;IACK,OAAO,CAAI,GAAW,EAAE,IAAO,EAAA;QACrC,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC;IAC1C;AAEA;;;;;;;;AAQG;AACI,IAAA,OAAO,CAAI,GAAW,EAAE,SAAA,GAAqB,KAAK,EAAA;QACvD,IAAI,IAAI,CAAC,2BAA2B,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE;YAE1D,IAAI,kBAAkB,GAAG,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAG;AACzE,gBAAA,IAAI,CAAC,YAAY,GAAG,IAAI;gBACxB,KAAK,IAAI,KAAK,IAAI,CAAC;oBAAE,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC;YACxD,CAAC,CAAC,CAAC;YAEH,OAAO,kBAAkB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,IAAI,CAAC,SAAS,CAAI,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC;QACnF;QAEA,OAAO,IAAI,CAAC,SAAS,CAAC,GAAG,EAAE,SAAS,CAAC;IACvC;AAEA;;;;;;;AAOG;AACK,IAAA,SAAS,CAAI,GAAW,EAAE,SAAA,GAAqB,KAAK,EAAA;QAC1D,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS;YACpC,OAAO,EAAE,CAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;aAC/B;YACH,IAAI,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAI,GAAG,CAAC;AACxC,YAAA,IAAI,CAAC,GAAG;AACN,gBAAA,OAAO,EAAE,CAAC,IAAS,CAAC;YACtB,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAG,EAAG,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AACvD,YAAA,OAAO,GAAG;QACZ;IACF;AAEA;;;;;;AAMG;AACI,IAAA,YAAY,CAAI,GAAW,EAAA;AAChC,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACtB,YAAA,OAAU,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;;AAE9B,YAAA,OAAO,IAAI;IACf;AAEA;;;;AAIG;AACI,IAAA,UAAU,CAAC,GAAW,EAAA;AAC3B,QAAA,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;AACtB,YAAA,OAAO,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;QAE7B,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,GAAG,CAAC;IACnC;AAEA;;AAEG;IACI,KAAK,GAAA;;AAEV,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE;;AAEpB,QAAA,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE;IAC/B;CACD;AAtIY,WAAW,GAAA,UAAA,CAAA;IAa0B,OAAA,CAAA,CAAA,EAAA,QAAQ,EAAE,CAAA;AAAE,IAAA,OAAA,CAAA,CAAA,EAAA,MAAM,CAAC,2BAA2B,CAAC;AAbpF,CAAA,EAAA,WAAW,CAsIvB;;AC9ID;MACsB,cAAc,CAAA;AAGV,IAAA,OAAA;;AAAtB,IAAA,WAAA,CAAsB,OAA6B,EAAA;QAA7B,IAAA,CAAA,OAAO,GAAP,OAAO;IAAyB;AAqCtD;;;;AAIG;AACI,IAAA,UAAU,CAAC,UAAqC,EAAA;QACnD,IAAI,WAAW,GAA0B,EAAE;QAC3C,KAAK,IAAI,GAAG,IAAI,UAAU;AACtB,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAExD,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7F;AAEA;;;;;;AAMG;AACI,IAAA,MAAM,CAAC,GAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;IACzD;AACH;;ACrED;AAQA;AAEM,MAAO,YAAa,SAAQ,WAAW,CAAA;;IAG3C,WAAA,CAAY,SAAyB,EAAmD,2BAAoC,EAAA;AAC1H,QAAA,KAAK,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAC/C;AALW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,6CAGoC,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAH3E,YAAY,EAAA,CAAA;;4FAAZ,YAAY,EAAA,UAAA,EAAA,CAAA;kBADxB;;0BAIyC;;0BAAY,MAAM;2BAAC,2BAA2B;;;ACRxF;;AAEG;MACmB,oBAAoB,CAAA;AAGhB,IAAA,OAAA;;AAAtB,IAAA,WAAA,CAAsB,OAA6B,EAAA;QAA7B,IAAA,CAAA,OAAO,GAAP,OAAO;IAAyB;AAqCtD;;;;AAIG;AACI,IAAA,UAAU,CAAC,UAAqC,EAAA;QACnD,IAAI,WAAW,GAA0B,EAAE;QAC3C,KAAK,IAAI,GAAG,IAAI,UAAU;AACtB,YAAA,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC;AAExD,QAAA,OAAO,QAAQ,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,GAAG,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,GAAG,KAAK,GAAG,IAAI,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;IAC7F;AAEA;;;;;;AAMG;AACI,IAAA,MAAM,CAAC,GAAW,EAAA;AACrB,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG;IACzD;AACH;;ACvED;AAQA;AAEM,MAAO,kBAAmB,SAAQ,WAAW,CAAA;;IAGjD,WAAA,CAAY,SAA+B,EAAmD,2BAAoC,EAAA;AAChI,QAAA,KAAK,CAAC,SAAS,EAAE,2BAA2B,CAAC;IAC/C;AALW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,mDAGoC,2BAA2B,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAHjF,kBAAkB,EAAA,CAAA;;4FAAlB,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAD9B;;0BAI+C;;0BAAY,MAAM;2BAAC,2BAA2B;;;ACR9F;;AAEG;MACU,uBAAuB,CAAA;AAEhC;;;;AAIG;AACH,IAAA,kBAAkB;AAElB;;;AAGG;AACH,IAAA,mBAAmB;AAElB;;;AAGE;AACH,IAAA,cAAc;;AAGd,IAAA,gBAAgB;;AAGhB,IAAA,SAAS;AACZ;;AClCD;;AAEG;MACmB,oBAAoB,CAAA;AAQzC;;ACRD;;AAEG;AAEG,MAAO,uBAAwB,SAAQ,oBAAoB,CAAA;AAE7D;;;;AAIG;AACH,IAAA,WAAA,GAAA,EAAgB,KAAK,EAAE,CAAC,CAAC;AAEzB;;;;AAIG;IACH,aAAa,GAAA;AACT,QAAA,OAAO,eAAe;IAC1B;wGAhBS,uBAAuB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAvB,uBAAuB,EAAA,CAAA;;4FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBADnC;;;ACND;AAaM,MAAO,0BAA2B,SAAQ,cAAc,CAAA;AAE1D,IAAA,WAAA,CAAY,OAA6B,EAAA;QACrC,KAAK,CAAC,OAAO,CAAC;IAClB;;IAGO,OAAO,CAAI,GAAW,EAAE,IAAO,EAAA;QAClC,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,2KAA2K,CAAC;YAC1L,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;AACA,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjC;;AAGO,IAAA,OAAO,CAAI,GAAW,EAAA;QACzB,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,2KAA2K,CAAC;YAC1L,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;AACA,QAAA,IAAI,GAAG,GAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAChC;;AAGO,IAAA,MAAM,CAAC,GAAW,EAAA;QACrB,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,2KAA2K,CAAC;YAC1L,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;QACA,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjC;;IAGO,UAAU,GAAA;QACb,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,2KAA2K,CAAC;YAC1L,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;QAEA,IAAI,GAAG,GAAiC,EAAE;AAC1C,QAAA,KAAK,IAAI,CAAC,IAAI,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC7D,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvE;QAEA,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAChC;;IAGO,KAAK,GAAA;QACR,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,2KAA2K,CAAC;YAC1L,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;AACA,QAAA,KAAK,IAAI,CAAC,IAAI,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;AAC7D,gBAAA,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC;QACA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjC;wGA/DS,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAA1B,0BAA0B,EAAA,CAAA;;4FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBADtC;;;ACZD;AAaM,MAAO,gCAAiC,SAAQ,oBAAoB,CAAA;AAEtE,IAAA,WAAA,CAAY,OAA6B,EAAA;QACrC,KAAK,CAAC,OAAO,CAAC;IAClB;;IAGO,OAAO,CAAI,GAAW,EAAE,IAAO,EAAA;QAClC,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,iLAAiL,CAAC;YAChM,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;AACA,QAAA,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QAC5D,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjC;;AAGO,IAAA,OAAO,CAAI,GAAW,EAAA;QACzB,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,iLAAiL,CAAC;YAChM,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;AACA,QAAA,IAAI,GAAG,GAAM,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QAC/D,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAChC;;AAGO,IAAA,MAAM,CAAC,GAAW,EAAA;QACrB,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,iLAAiL,CAAC;YAChM,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;QACA,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QACzC,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjC;;IAGO,UAAU,GAAA;QACb,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,iLAAiL,CAAC;YAChM,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;QACA,IAAI,GAAG,GAAiC,EAAE;AAC1C,QAAA,KAAK,IAAI,CAAC,IAAI,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;gBAC7D,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;QACvE;QAEA,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IAChC;;IAGO,KAAK,GAAA;QACR,IAAI,CAAC,YAAY,EAAE;AACf,YAAA,OAAO,CAAC,KAAK,CAAC,iLAAiL,CAAC;YAChM,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;QACjC;AACA,QAAA,KAAK,IAAI,CAAC,IAAI,YAAY,EAAE;AACxB,YAAA,IAAI,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,CAAC;AAC7D,gBAAA,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC;QAClC;QACA,OAAO,EAAE,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,EAAE,CAAC;IACjC;wGA9DS,gCAAgC,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;4GAAhC,gCAAgC,EAAA,CAAA;;4FAAhC,gCAAgC,EAAA,UAAA,EAAA,CAAA;kBAD5C;;;MCKY,iBAAiB,CAAA;IAC5B,OAAO,OAAO,CAAC,MAAgC,EAAA;QAC7C,OAAO;AACL,YAAA,QAAQ,EAAE,iBAAiB;AAC3B,YAAA,SAAS,EAAE;gBACT,YAAY;gBACZ,kBAAkB;gBAClB,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,mBAAmB,IAAI,gCAAgC,EAAE;gBAC5G,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,EAAE,cAAc,IAAI,0BAA0B,EAAE;gBAC3F,EAAE,OAAO,EAAE,oBAAoB,EAAE,QAAQ,EAAE,MAAM,EAAE,gBAAgB,IAAI,uBAAuB,EAAE;gBAChG,EAAE,OAAO,EAAE,2BAA2B,EAAE,QAAQ,EAAE,MAAM,EAAE,kBAAkB,IAAI,IAAI,EAAE;gBACtF,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,EAAE,SAAS,IAAI,KAAK,EAAE;AACnE;SACF;IACH;wGAdW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA;yGAAjB,iBAAiB,EAAA,CAAA;yGAAjB,iBAAiB,EAAA,CAAA;;4FAAjB,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAD7B;;;AChBD;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"esfaenza-preferences.mjs","sources":["../../../projects/preferences/src/lib/tokens.ts","../../../projects/preferences/src/lib/services/base/base.service.ts","../../../projects/preferences/src/lib/persistor/base/CachePersistor.ts","../../../projects/preferences/src/lib/services/cache.service.ts","../../../projects/preferences/src/lib/persistor/base/PreferencesPersistor.ts","../../../projects/preferences/src/lib/services/preferences.service.ts","../../../projects/preferences/src/lib/models/PreferencesModuleConfig.ts","../../../projects/preferences/src/lib/session/base/BaseSessionRetriever.ts","../../../projects/preferences/src/lib/session/implementation/DefaultSessionRetriever.ts","../../../projects/preferences/src/lib/persistor/implementation/LocalStorageCachePersistor.ts","../../../projects/preferences/src/lib/persistor/implementation/LocalStoragePreferencesPersistor.ts","../../../projects/preferences/src/lib/preferences.module.ts","../../../projects/preferences/src/esfaenza-preferences.ts"],"sourcesContent":["import { InjectionToken } from '@angular/core';\r\n\r\n/**\r\n * Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.\r\n * \r\n * Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte\r\n */\r\nexport const PREF_FULL_RETRIEVE_AT_START: InjectionToken<boolean> = new InjectionToken<boolean>('PREF_FULL_RETRIEVE_AT_START');\r\n\r\n/** Modalità di Debug */\r\nexport const PREF_DEBUG_MODE: InjectionToken<boolean> = new InjectionToken<boolean>('PREF_DEBUG_MODE');","// Angular\r\nimport { Inject, Optional } from '@angular/core';\r\nimport { Observable, of } from 'rxjs';\r\nimport { switchMap, take, tap } from 'rxjs/operators';\r\nimport { IBasePersistor } from '../../persistor/base/IBasePersistor';\r\n\r\n// Modelli\r\nimport { PREF_FULL_RETRIEVE_AT_START } from '../../tokens';\r\nimport { IBaseStorage } from './IBaseStorage';\r\n\r\n/**\r\n * Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate\r\n */\r\nexport class BaseService implements IBaseStorage {\r\n\r\n /** Store in memoria delle preferenze locali che sarà persistito per mezzo della classe che fa le veci del **BasePreferencesPersistor** */\r\n protected LocalStore: { [index: string]: any } = {};\r\n\r\n /** Indica se ho già effettuato il retrieve di tutta la roba salvata */\r\n private AllRetrieved: boolean = false;\r\n\r\n /**\r\n * Costruttore\r\n * \r\n * @ignore\r\n */\r\n constructor(private persistor: IBasePersistor, @Optional() @Inject(PREF_FULL_RETRIEVE_AT_START) private PREF_FULL_RETRIEVE_AT_START: boolean) {\r\n }\r\n\r\n /**\r\n * Salva un oggetto sia nella cache locale che nel persistor\r\n * \r\n * @param {string} key Chiave di persistenza\r\n * @param {T} item Oggetto da salvare\r\n */\r\n public setItem<T>(key: string, item: T, global?: boolean): Observable<boolean> {\r\n let detatched = JSON.parse(JSON.stringify(item));\r\n if (detatched) {\r\n if (detatched.selfsearch)\r\n detatched.selfsearch = false;\r\n if (detatched.page && detatched.items && detatched.items.length > 0)\r\n detatched.items = [];\r\n }\r\n \r\n this.setLocalItem(key, detatched)\r\n return this.persist(key, detatched, global);\r\n }\r\n\r\n /**\r\n * Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione\r\n * \r\n * @param {string} key Chiave di persistenza\r\n * @param {T} item Oggetto da salvare\r\n */\r\n public setLocalItem<T>(key: string, item: T): boolean {\r\n this.LocalStore[key] = item;\r\n return true;\r\n }\r\n\r\n /**\r\n * Salva, per una sessione, una chiave con un valore, viene chiamato automaticamente dal metodo **store** ma dev'essere chiamato manualmente\r\n * nel caso si utilizzi il metodo **storeLocal**\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n */\r\n private persist<T>(key: string, item: T, global?: boolean): Observable<boolean> {\r\n return this.persistor.persist(key, item, global);\r\n }\r\n\r\n /**\r\n * Recupera un oggetto in base a una chiave. Permette di accedere alla copia locale o alla copia persistita.\r\n * \r\n * @param {string} key Chiave del valore da recuperare\r\n * @param {boolean} cacheBust Indica se ignorare il valore della cache locale e recuperare l'oggetto dallo store persistito, \r\n * in caso fosse stato modificato fuori sistema o da un altro sistema\r\n * \r\n * @returns {Observable<T>} Oggetto richiesto\r\n */\r\n public getItem<T>(key: string, cacheBust: boolean = false, global?: boolean): Observable<T> {\r\n if (this.PREF_FULL_RETRIEVE_AT_START && !this.AllRetrieved) {\r\n\r\n let retrieveObservable = this.persistor.recoverAll(global).pipe(take(1), tap(t => {\r\n this.AllRetrieved = true;\r\n for (let cProp in t) this.LocalStore[cProp] = t[cProp];\r\n }));\r\n\r\n return retrieveObservable.pipe(switchMap(r => this.doGetItem<T>(key, cacheBust, global)));\r\n }\r\n\r\n return this.doGetItem(key, cacheBust, global);\r\n }\r\n\r\n /**\r\n * Funzione interna che effettivamente recupera le cache\r\n * \r\n * @param key Chiave da recuperare\r\n * @param cacheBust Indica se raccogliere dagli elementi locali o se prendere una copia nuova dell'oggetto dalla cache persistita\r\n * \r\n * @returns Observable che alla sottoscrizione restituisce l'oggetto richiesto\r\n */\r\n private doGetItem<T>(key: string, cacheBust: boolean = false, global?: boolean): Observable<T> {\r\n if (this.LocalStore[key] && !cacheBust)\r\n return of(<T>this.LocalStore[key]);\r\n else {\r\n var obj = this.persistor.recover<T>(key, global);\r\n if (!obj)\r\n return of(null as T);\r\n obj.pipe(tap(item => { this.LocalStore[key] = item; }))\r\n return obj;\r\n }\r\n }\r\n\r\n /**\r\n * Recupera un oggetto in base a una chiave. Permette di accedere solo alla copia locale\r\n * \r\n * @param {string} key Chiave del valore da recuperare\r\n * \r\n * @returns {T} Oggetto richiesto\r\n */\r\n public getLocalItem<T>(key: string): T {\r\n if (this.LocalStore[key])\r\n return <T>this.LocalStore[key];\r\n else\r\n return null;\r\n }\r\n\r\n /**\r\n * Elimina un oggetto dalla cache sia locale che persistita\r\n * \r\n * @param {string} key Chiave da rimuovere\r\n */\r\n public removeItem(key: string, global?: boolean): Observable<boolean> {\r\n if (this.LocalStore[key])\r\n delete this.LocalStore[key];\r\n\r\n return this.persistor.remove(key, global);\r\n }\r\n\r\n /**\r\n * Ripulisce le impostazioni locali e le impostazioni salvate dal persistor\r\n */\r\n public clear(global?: boolean): Observable<boolean> {\r\n // Pulisco la cache locale\r\n this.LocalStore = {};\r\n // \"Committo\" le modifiche\r\n return this.persistor.clear(global);\r\n }\r\n}","import { Observable, forkJoin } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { IBasePersistor } from \"./IBasePersistor\";\r\n\r\n/** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */\r\nexport abstract class CachePersistor implements IBasePersistor {\r\n\r\n /** @ignore Costruttore */\r\n constructor(protected session: BaseSessionRetriever) { }\r\n\r\n /**\r\n * Salva, per una sessione, una chiave con un valore\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n */\r\n public abstract persist<T>(key: string, item: T, global?: boolean): Observable<boolean>;\r\n\r\n /**\r\n * Recupera, per una sessione, il valore assegnato ad una chiave\r\n * \r\n * @param {string} key Chiave da recuperare\r\n * \r\n * @returns {Observable<T>} Valore salvato per la chiave **key**\r\n */\r\n public abstract recover<T>(key?: string, global?: boolean): Observable<T>;\r\n\r\n /**\r\n * Per una sessione recupera tutte le coppie Chiave - Valore salvate\r\n * \r\n * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione\r\n */\r\n public abstract recoverAll(global?: boolean): Observable<{ [index: string]: any }>;\r\n\r\n /**\r\n * Ripulisce le preference salvate relative ad una sessione\r\n */\r\n public abstract clear(global?: boolean): Observable<boolean>;\r\n\r\n /**\r\n * Elimina un oggetto dalla cache persistita\r\n * \r\n * @param {string} key Chiave da rimuovere\r\n */\r\n public abstract remove(key: string, global?: boolean): Observable<boolean>;\r\n\r\n /**\r\n * Effettua il **persist** massivo di una lista di Chiave - Valore\r\n * \r\n * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere\r\n */\r\n public persistAll(dictionary: { [key: string]: string }, global?: boolean): Observable<boolean> {\r\n let observables: Observable<boolean>[] = [];\r\n for (let key in dictionary)\r\n observables.push(this.persist(key, dictionary[key], global));\r\n\r\n return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));\r\n }\r\n\r\n /**\r\n * Ottiene la chiave \"Reale\" da utilizzare per la persistenza di una chiave generica\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n * \r\n * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata\r\n */\r\n public getKey(key: string, global?: boolean): string {\r\n return this.session.getSessionKey(global) + \"§\" + key + \"§\";\r\n }\r\n}","// Angular\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { BaseService } from './base/base.service';\r\n\r\n// Modelli\r\nimport { PREF_FULL_RETRIEVE_AT_START } from './../tokens';\r\nimport { CachePersistor } from '../persistor/base/CachePersistor';\r\n\r\n/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */\r\n@Injectable()\r\nexport class CacheService extends BaseService {\r\n\r\n /** @ignore Costruttore */\r\n constructor(persistor: CachePersistor, @Optional() @Inject(PREF_FULL_RETRIEVE_AT_START) PREF_FULL_RETRIEVE_AT_START: boolean) {\r\n super(persistor, PREF_FULL_RETRIEVE_AT_START);\r\n }\r\n}","import { Observable, forkJoin } from \"rxjs\";\r\nimport { map } from \"rxjs/operators\";\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { IBasePersistor } from \"./IBasePersistor\";\r\n\r\n/**\r\n * Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage\r\n */\r\nexport abstract class PreferencesPersistor implements IBasePersistor {\r\n\r\n /** @ignore Costruttore */\r\n constructor(protected session: BaseSessionRetriever) { }\r\n\r\n /**\r\n * Salva, per una sessione, una chiave con un valore\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n */\r\n public abstract persist<T>(key: string, item: T, global?: boolean): Observable<boolean>;\r\n\r\n /**\r\n * Recupera, per una sessione, il valore assegnato ad una chiave\r\n * \r\n * @param {string} key Chiave da recuperare\r\n * \r\n * @returns {Observable<T>} Valore salvato per la chiave **key**\r\n */\r\n public abstract recover<T>(key?: string, global?: boolean): Observable<T>;\r\n\r\n /**\r\n * Per una sessione recupera tutte le coppie Chiave - Valore salvate\r\n * \r\n * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione\r\n */\r\n public abstract recoverAll(global?: boolean): Observable<{ [index: string]: any }>;\r\n\r\n /**\r\n * Ripulisce le preference salvate relative ad una sessione\r\n */\r\n public abstract clear(global?: boolean): Observable<boolean>;\r\n\r\n /**\r\n * Elimina un oggetto dalla cache persistita\r\n * \r\n * @param {string} key Chiave da rimuovere\r\n */\r\n public abstract remove(key: string, global?: boolean): Observable<boolean>;\r\n\r\n /**\r\n * Effettua il **persist** massivo di una lista di Chiave - Valore\r\n * \r\n * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere\r\n */\r\n public persistAll(dictionary: { [key: string]: string }, global?: boolean): Observable<boolean> {\r\n let observables: Observable<boolean>[] = [];\r\n for (let key in dictionary)\r\n observables.push(this.persist(key, dictionary[key], global));\r\n\r\n return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));\r\n }\r\n\r\n /**\r\n * Ottiene la chiave \"Reale\" da utilizzare per la persistenza di una chiave generica\r\n * \r\n * @param {string} key Chiave da storicizzare\r\n * \r\n * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata\r\n */\r\n public getKey(key: string, global?: boolean): string {\r\n return this.session.getSessionKey(global) + \"§\" + key + \"§\";\r\n }\r\n}","// Angular\r\nimport { Inject, Injectable, Optional } from '@angular/core';\r\nimport { BaseService } from './base/base.service';\r\n\r\n// Modelli\r\nimport { PREF_FULL_RETRIEVE_AT_START } from './../tokens';\r\nimport { PreferencesPersistor } from '../persistor/base/PreferencesPersistor';\r\n\r\n/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */\r\n@Injectable()\r\nexport class PreferencesService extends BaseService {\r\n\r\n /** @ignore Costruttore */\r\n constructor(persistor: PreferencesPersistor, @Optional() @Inject(PREF_FULL_RETRIEVE_AT_START) PREF_FULL_RETRIEVE_AT_START: boolean) {\r\n super(persistor, PREF_FULL_RETRIEVE_AT_START);\r\n }\r\n}","import { Type } from \"@angular/core\";\r\nimport { CachePersistor } from \"../persistor/base/CachePersistor\";\r\nimport { PreferencesPersistor } from \"../persistor/base/PreferencesPersistor\";\r\nimport { BaseSessionRetriever } from \"../session/base/BaseSessionRetriever\";\r\n\r\n/**\r\n * Classe di Configurazione per la libreria\r\n */\r\nexport class PreferencesModuleConfig{\r\n\r\n /**\r\n * Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.\r\n * \r\n * Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte\r\n */\r\n retrieveAllAtStart?: boolean;\r\n\r\n /**\r\n * Classe che si deve occupare dello store \"Definitivo\" delle preferenze. Di default viene proposto uno store lato localStorage ma si può facilmente \r\n * fornire uno storage che porta le informazioni lato Database\r\n */\r\n preferencePersistor?: Type<PreferencesPersistor>;\r\n\r\n /**\r\n * Classe che si deve occupare dello store \"Definitivo\" delle cache. Di default viene proposto uno store lato localStorage ma si può facilmente \r\n * fornire uno storage che porta le informazioni lato Database\r\n */\r\n cachePersistor?: Type<CachePersistor>;\r\n\r\n /** Classe che si deve occupare per generare un ID univoco di sessione in base al quale verranno salvate le preferenze */\r\n sessionRetriever?: Type<BaseSessionRetriever>;\r\n \r\n /** Attiva la modalità di debug per l'esposizione di messaggi significativi */\r\n debugMode?: boolean;\r\n}","/**\r\n * Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato\r\n */\r\nexport abstract class BaseSessionRetriever {\r\n\r\n /**\r\n * Ottiene un ID sessione\r\n * \r\n * @returns {string} ID sessione\r\n */\r\n public abstract getSessionKey(global?: boolean): string;\r\n}","import { Injectable } from \"@angular/core\";\r\nimport { BaseSessionRetriever } from \"../base/BaseSessionRetriever\";\r\n\r\n/**\r\n * Implementazione di default per la classe **BaseSessionRetriever**\r\n */\r\n@Injectable()\r\nexport class DefaultSessionRetriever extends BaseSessionRetriever {\r\n\r\n /**\r\n * Costruttore\r\n * \r\n * @ignore\r\n */\r\n constructor() { super(); }\r\n\r\n /**\r\n * Ottiene un ID sessione\r\n * \r\n * @returns {string} ID sessione\r\n */\r\n getSessionKey(global?: boolean): string {\r\n return global ? \"DUMMY_SESSION_GLOBAL\" : \"DUMMY_SESSION\";\r\n }\r\n}","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// Classi\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { CachePersistor } from \"../base/CachePersistor\";\r\nimport { IBasePersistor } from \"../base/IBasePersistor\";\r\n\r\n// RXJS\r\nimport { Observable, of } from \"rxjs\";\r\nimport { first } from \"rxjs/operators\";\r\n\r\n@Injectable()\r\nexport class LocalStorageCachePersistor extends CachePersistor implements IBasePersistor {\r\n\r\n constructor(session: BaseSessionRetriever) {\r\n super(session);\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.setItem(this.getKey(key), JSON.stringify(item));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recover<T>(key: string): Observable<T> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n var ret = <T>JSON.parse(localStorage.getItem(this.getKey(key)));\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public remove(key: string): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.removeItem(this.getKey(key));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n\r\n var ret: { [index: string]: string; } = {};\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n ret[k.match(/§(.*)§/)[1]] = JSON.parse(localStorage.getItem(k));\r\n }\r\n\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public clear(): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the CachePersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n localStorage.removeItem(k);\r\n }\r\n return of(true).pipe(first());\r\n }\r\n}\r\n\r\n","// Angular\r\nimport { Injectable } from \"@angular/core\";\r\n\r\n// RXJS\r\nimport { Observable, of } from \"rxjs\";\r\nimport { first } from \"rxjs/operators\";\r\n\r\n// Classi\r\nimport { BaseSessionRetriever } from \"../../session/base/BaseSessionRetriever\";\r\nimport { PreferencesPersistor } from \"../base/PreferencesPersistor\";\r\nimport { IBasePersistor } from \"../base/IBasePersistor\";\r\n\r\n@Injectable()\r\nexport class LocalStoragePreferencesPersistor extends PreferencesPersistor implements IBasePersistor {\r\n\r\n constructor(session: BaseSessionRetriever) {\r\n super(session);\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public persist<T>(key: string, item: T): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.setItem(this.getKey(key), JSON.stringify(item));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recover<T>(key: string): Observable<T> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n var ret = <T>JSON.parse(localStorage.getItem(this.getKey(key)));\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public remove(key: string): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n localStorage.removeItem(this.getKey(key));\r\n return of(true).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public recoverAll(): Observable<{ [index: string]: any; }> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(null).pipe(first());\r\n }\r\n var ret: { [index: string]: string; } = {};\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n ret[k.match(/§(.*)§/)[1]] = JSON.parse(localStorage.getItem(k));\r\n }\r\n\r\n return of(ret).pipe(first());\r\n }\r\n\r\n /** @ignore Vedi classe base */\r\n public clear(): Observable<boolean> {\r\n if (!localStorage) {\r\n console.error(\"Local storage does not xist. This doesn't seem to be a browser environment. Please implement the PreferencesPersistor, otherwise it will fallback to the browser's LocalStorage\");\r\n return of(true).pipe(first());\r\n }\r\n for (var k in localStorage) {\r\n if (k.includes(\"§\") && k.startsWith(this.session.getSessionKey()))\r\n localStorage.removeItem(k);\r\n }\r\n return of(true).pipe(first());\r\n }\r\n}\r\n","// Angular\r\nimport { ModuleWithProviders } from '@angular/core';\r\nimport { NgModule } from '@angular/core';\r\n\r\n// Modelli\r\nimport { PreferencesModuleConfig } from './models/PreferencesModuleConfig';\r\nimport { CacheService } from './services/cache.service';\r\nimport { PreferencesService } from './services/preferences.service';\r\nimport { BaseSessionRetriever } from './session/base/BaseSessionRetriever';\r\nimport { DefaultSessionRetriever } from './session/implementation/DefaultSessionRetriever';\r\nimport { PREF_FULL_RETRIEVE_AT_START, PREF_DEBUG_MODE } from './tokens';\r\nimport { CachePersistor } from './persistor/base/CachePersistor';\r\nimport { PreferencesPersistor } from './persistor/base/PreferencesPersistor';\r\nimport { LocalStorageCachePersistor } from './persistor/implementation/LocalStorageCachePersistor';\r\nimport { LocalStoragePreferencesPersistor } from './persistor/implementation/LocalStoragePreferencesPersistor';\r\n\r\n@NgModule()\r\nexport class PreferencesModule {\r\n static forRoot(config?: PreferencesModuleConfig): ModuleWithProviders<PreferencesModule> {\r\n return {\r\n ngModule: PreferencesModule,\r\n providers: [\r\n CacheService,\r\n PreferencesService,\r\n { provide: PreferencesPersistor, useClass: config?.preferencePersistor || LocalStoragePreferencesPersistor },\r\n { provide: CachePersistor, useClass: config?.cachePersistor || LocalStorageCachePersistor },\r\n { provide: BaseSessionRetriever, useClass: config?.sessionRetriever || DefaultSessionRetriever },\r\n { provide: PREF_FULL_RETRIEVE_AT_START, useValue: config?.retrieveAllAtStart || true },\r\n { provide: PREF_DEBUG_MODE, useValue: config?.debugMode || false },\r\n ]\r\n };\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.BaseSessionRetriever"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -6,17 +6,17 @@ import { Type, InjectionToken, ModuleWithProviders } from '@angular/core';
|
|
|
6
6
|
* Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage
|
|
7
7
|
*/
|
|
8
8
|
interface IBasePersistor {
|
|
9
|
-
persist<T>(key: string, item: T): Observable<boolean>;
|
|
10
|
-
recover<T>(key?: string): Observable<T>;
|
|
11
|
-
recoverAll(): Observable<{
|
|
9
|
+
persist<T>(key: string, item: T, global?: boolean): Observable<boolean>;
|
|
10
|
+
recover<T>(key?: string, global?: boolean): Observable<T>;
|
|
11
|
+
recoverAll(global?: boolean): Observable<{
|
|
12
12
|
[index: string]: any;
|
|
13
13
|
}>;
|
|
14
|
-
clear(): Observable<boolean>;
|
|
15
|
-
remove(key: string): Observable<boolean>;
|
|
14
|
+
clear(global?: boolean): Observable<boolean>;
|
|
15
|
+
remove(key: string, global?: boolean): Observable<boolean>;
|
|
16
16
|
persistAll(dictionary: {
|
|
17
17
|
[key: string]: string;
|
|
18
|
-
}): Observable<boolean>;
|
|
19
|
-
getKey(key: string): string;
|
|
18
|
+
}, global?: boolean): Observable<boolean>;
|
|
19
|
+
getKey(key: string, global?: boolean): string;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
22
|
interface IBaseStorage {
|
|
@@ -52,7 +52,7 @@ declare class BaseService implements IBaseStorage {
|
|
|
52
52
|
* @param {string} key Chiave di persistenza
|
|
53
53
|
* @param {T} item Oggetto da salvare
|
|
54
54
|
*/
|
|
55
|
-
setItem<T>(key: string, item: T): Observable<boolean>;
|
|
55
|
+
setItem<T>(key: string, item: T, global?: boolean): Observable<boolean>;
|
|
56
56
|
/**
|
|
57
57
|
* Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione
|
|
58
58
|
*
|
|
@@ -76,7 +76,7 @@ declare class BaseService implements IBaseStorage {
|
|
|
76
76
|
*
|
|
77
77
|
* @returns {Observable<T>} Oggetto richiesto
|
|
78
78
|
*/
|
|
79
|
-
getItem<T>(key: string, cacheBust?: boolean): Observable<T>;
|
|
79
|
+
getItem<T>(key: string, cacheBust?: boolean, global?: boolean): Observable<T>;
|
|
80
80
|
/**
|
|
81
81
|
* Funzione interna che effettivamente recupera le cache
|
|
82
82
|
*
|
|
@@ -99,11 +99,11 @@ declare class BaseService implements IBaseStorage {
|
|
|
99
99
|
*
|
|
100
100
|
* @param {string} key Chiave da rimuovere
|
|
101
101
|
*/
|
|
102
|
-
removeItem(key: string): Observable<boolean>;
|
|
102
|
+
removeItem(key: string, global?: boolean): Observable<boolean>;
|
|
103
103
|
/**
|
|
104
104
|
* Ripulisce le impostazioni locali e le impostazioni salvate dal persistor
|
|
105
105
|
*/
|
|
106
|
-
clear(): Observable<boolean>;
|
|
106
|
+
clear(global?: boolean): Observable<boolean>;
|
|
107
107
|
}
|
|
108
108
|
|
|
109
109
|
/**
|
|
@@ -115,7 +115,7 @@ declare abstract class BaseSessionRetriever {
|
|
|
115
115
|
*
|
|
116
116
|
* @returns {string} ID sessione
|
|
117
117
|
*/
|
|
118
|
-
abstract getSessionKey(): string;
|
|
118
|
+
abstract getSessionKey(global?: boolean): string;
|
|
119
119
|
}
|
|
120
120
|
|
|
121
121
|
/** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */
|
|
@@ -128,7 +128,7 @@ declare abstract class CachePersistor implements IBasePersistor {
|
|
|
128
128
|
*
|
|
129
129
|
* @param {string} key Chiave da storicizzare
|
|
130
130
|
*/
|
|
131
|
-
abstract persist<T>(key: string, item: T): Observable<boolean>;
|
|
131
|
+
abstract persist<T>(key: string, item: T, global?: boolean): Observable<boolean>;
|
|
132
132
|
/**
|
|
133
133
|
* Recupera, per una sessione, il valore assegnato ad una chiave
|
|
134
134
|
*
|
|
@@ -136,25 +136,25 @@ declare abstract class CachePersistor implements IBasePersistor {
|
|
|
136
136
|
*
|
|
137
137
|
* @returns {Observable<T>} Valore salvato per la chiave **key**
|
|
138
138
|
*/
|
|
139
|
-
abstract recover<T>(key?: string): Observable<T>;
|
|
139
|
+
abstract recover<T>(key?: string, global?: boolean): Observable<T>;
|
|
140
140
|
/**
|
|
141
141
|
* Per una sessione recupera tutte le coppie Chiave - Valore salvate
|
|
142
142
|
*
|
|
143
143
|
* @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione
|
|
144
144
|
*/
|
|
145
|
-
abstract recoverAll(): Observable<{
|
|
145
|
+
abstract recoverAll(global?: boolean): Observable<{
|
|
146
146
|
[index: string]: any;
|
|
147
147
|
}>;
|
|
148
148
|
/**
|
|
149
149
|
* Ripulisce le preference salvate relative ad una sessione
|
|
150
150
|
*/
|
|
151
|
-
abstract clear(): Observable<boolean>;
|
|
151
|
+
abstract clear(global?: boolean): Observable<boolean>;
|
|
152
152
|
/**
|
|
153
153
|
* Elimina un oggetto dalla cache persistita
|
|
154
154
|
*
|
|
155
155
|
* @param {string} key Chiave da rimuovere
|
|
156
156
|
*/
|
|
157
|
-
abstract remove(key: string): Observable<boolean>;
|
|
157
|
+
abstract remove(key: string, global?: boolean): Observable<boolean>;
|
|
158
158
|
/**
|
|
159
159
|
* Effettua il **persist** massivo di una lista di Chiave - Valore
|
|
160
160
|
*
|
|
@@ -162,7 +162,7 @@ declare abstract class CachePersistor implements IBasePersistor {
|
|
|
162
162
|
*/
|
|
163
163
|
persistAll(dictionary: {
|
|
164
164
|
[key: string]: string;
|
|
165
|
-
}): Observable<boolean>;
|
|
165
|
+
}, global?: boolean): Observable<boolean>;
|
|
166
166
|
/**
|
|
167
167
|
* Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
|
|
168
168
|
*
|
|
@@ -170,7 +170,7 @@ declare abstract class CachePersistor implements IBasePersistor {
|
|
|
170
170
|
*
|
|
171
171
|
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
172
172
|
*/
|
|
173
|
-
getKey(key: string): string;
|
|
173
|
+
getKey(key: string, global?: boolean): string;
|
|
174
174
|
}
|
|
175
175
|
|
|
176
176
|
/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
|
|
@@ -193,7 +193,7 @@ declare abstract class PreferencesPersistor implements IBasePersistor {
|
|
|
193
193
|
*
|
|
194
194
|
* @param {string} key Chiave da storicizzare
|
|
195
195
|
*/
|
|
196
|
-
abstract persist<T>(key: string, item: T): Observable<boolean>;
|
|
196
|
+
abstract persist<T>(key: string, item: T, global?: boolean): Observable<boolean>;
|
|
197
197
|
/**
|
|
198
198
|
* Recupera, per una sessione, il valore assegnato ad una chiave
|
|
199
199
|
*
|
|
@@ -201,25 +201,25 @@ declare abstract class PreferencesPersistor implements IBasePersistor {
|
|
|
201
201
|
*
|
|
202
202
|
* @returns {Observable<T>} Valore salvato per la chiave **key**
|
|
203
203
|
*/
|
|
204
|
-
abstract recover<T>(key?: string): Observable<T>;
|
|
204
|
+
abstract recover<T>(key?: string, global?: boolean): Observable<T>;
|
|
205
205
|
/**
|
|
206
206
|
* Per una sessione recupera tutte le coppie Chiave - Valore salvate
|
|
207
207
|
*
|
|
208
208
|
* @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione
|
|
209
209
|
*/
|
|
210
|
-
abstract recoverAll(): Observable<{
|
|
210
|
+
abstract recoverAll(global?: boolean): Observable<{
|
|
211
211
|
[index: string]: any;
|
|
212
212
|
}>;
|
|
213
213
|
/**
|
|
214
214
|
* Ripulisce le preference salvate relative ad una sessione
|
|
215
215
|
*/
|
|
216
|
-
abstract clear(): Observable<boolean>;
|
|
216
|
+
abstract clear(global?: boolean): Observable<boolean>;
|
|
217
217
|
/**
|
|
218
218
|
* Elimina un oggetto dalla cache persistita
|
|
219
219
|
*
|
|
220
220
|
* @param {string} key Chiave da rimuovere
|
|
221
221
|
*/
|
|
222
|
-
abstract remove(key: string): Observable<boolean>;
|
|
222
|
+
abstract remove(key: string, global?: boolean): Observable<boolean>;
|
|
223
223
|
/**
|
|
224
224
|
* Effettua il **persist** massivo di una lista di Chiave - Valore
|
|
225
225
|
*
|
|
@@ -227,7 +227,7 @@ declare abstract class PreferencesPersistor implements IBasePersistor {
|
|
|
227
227
|
*/
|
|
228
228
|
persistAll(dictionary: {
|
|
229
229
|
[key: string]: string;
|
|
230
|
-
}): Observable<boolean>;
|
|
230
|
+
}, global?: boolean): Observable<boolean>;
|
|
231
231
|
/**
|
|
232
232
|
* Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
|
|
233
233
|
*
|
|
@@ -235,7 +235,7 @@ declare abstract class PreferencesPersistor implements IBasePersistor {
|
|
|
235
235
|
*
|
|
236
236
|
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
237
237
|
*/
|
|
238
|
-
getKey(key: string): string;
|
|
238
|
+
getKey(key: string, global?: boolean): string;
|
|
239
239
|
}
|
|
240
240
|
|
|
241
241
|
/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
|