@esfaenza/preferences 18.2.1 → 19.2.0
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 +19 -19
- package/fesm2022/esfaenza-preferences.mjs.map +1 -1
- package/package.json +3 -5
- package/esm2022/esfaenza-preferences.mjs +0 -5
- package/esm2022/lib/models/PreferencesModuleConfig.mjs +0 -26
- package/esm2022/lib/persistor/base/CachePersistor.mjs +0 -32
- package/esm2022/lib/persistor/base/IBasePersistor.mjs +0 -2
- package/esm2022/lib/persistor/base/PreferencesPersistor.mjs +0 -34
- package/esm2022/lib/persistor/implementation/LocalStorageCachePersistor.mjs +0 -51
- package/esm2022/lib/persistor/implementation/LocalStoragePreferencesPersistor.mjs +0 -51
- package/esm2022/lib/preferences.module.mjs +0 -34
- package/esm2022/lib/services/base/IBaseStorage.mjs +0 -2
- package/esm2022/lib/services/base/base.service.mjs +0 -140
- package/esm2022/lib/services/cache.service.mjs +0 -25
- package/esm2022/lib/services/preferences.service.mjs +0 -25
- package/esm2022/lib/session/base/BaseSessionRetriever.mjs +0 -6
- package/esm2022/lib/session/implementation/DefaultSessionRetriever.mjs +0 -28
- package/esm2022/lib/tokens.mjs +0 -10
- package/esm2022/public-api.mjs +0 -11
|
@@ -182,10 +182,10 @@ class CacheService extends BaseService {
|
|
|
182
182
|
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
183
183
|
super(persistor, PREF_FULL_RETRIEVE_AT_START);
|
|
184
184
|
}
|
|
185
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
186
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
185
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CacheService, deps: [{ token: CachePersistor }, { token: PREF_FULL_RETRIEVE_AT_START, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
186
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CacheService });
|
|
187
187
|
}
|
|
188
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
188
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: CacheService, decorators: [{
|
|
189
189
|
type: Injectable
|
|
190
190
|
}], ctorParameters: () => [{ type: CachePersistor }, { type: undefined, decorators: [{
|
|
191
191
|
type: Optional
|
|
@@ -233,10 +233,10 @@ class PreferencesService extends BaseService {
|
|
|
233
233
|
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
234
234
|
super(persistor, PREF_FULL_RETRIEVE_AT_START);
|
|
235
235
|
}
|
|
236
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
237
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
236
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PreferencesService, deps: [{ token: PreferencesPersistor }, { token: PREF_FULL_RETRIEVE_AT_START, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
237
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PreferencesService });
|
|
238
238
|
}
|
|
239
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
239
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PreferencesService, decorators: [{
|
|
240
240
|
type: Injectable
|
|
241
241
|
}], ctorParameters: () => [{ type: PreferencesPersistor }, { type: undefined, decorators: [{
|
|
242
242
|
type: Optional
|
|
@@ -295,10 +295,10 @@ class DefaultSessionRetriever extends BaseSessionRetriever {
|
|
|
295
295
|
getSessionKey() {
|
|
296
296
|
return "DUMMY_SESSION";
|
|
297
297
|
}
|
|
298
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
299
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
298
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DefaultSessionRetriever, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
299
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DefaultSessionRetriever });
|
|
300
300
|
}
|
|
301
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
301
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: DefaultSessionRetriever, decorators: [{
|
|
302
302
|
type: Injectable
|
|
303
303
|
}], ctorParameters: () => [] });
|
|
304
304
|
|
|
@@ -339,10 +339,10 @@ class LocalStorageCachePersistor extends CachePersistor {
|
|
|
339
339
|
}
|
|
340
340
|
return of(true).pipe(first());
|
|
341
341
|
}
|
|
342
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
343
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
342
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LocalStorageCachePersistor, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
343
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LocalStorageCachePersistor });
|
|
344
344
|
}
|
|
345
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
345
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LocalStorageCachePersistor, decorators: [{
|
|
346
346
|
type: Injectable
|
|
347
347
|
}], ctorParameters: () => [{ type: BaseSessionRetriever }] });
|
|
348
348
|
|
|
@@ -383,10 +383,10 @@ class LocalStoragePreferencesPersistor extends PreferencesPersistor {
|
|
|
383
383
|
}
|
|
384
384
|
return of(true).pipe(first());
|
|
385
385
|
}
|
|
386
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
387
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
386
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LocalStoragePreferencesPersistor, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
387
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LocalStoragePreferencesPersistor });
|
|
388
388
|
}
|
|
389
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
389
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: LocalStoragePreferencesPersistor, decorators: [{
|
|
390
390
|
type: Injectable
|
|
391
391
|
}], ctorParameters: () => [{ type: BaseSessionRetriever }] });
|
|
392
392
|
|
|
@@ -405,11 +405,11 @@ class PreferencesModule {
|
|
|
405
405
|
]
|
|
406
406
|
};
|
|
407
407
|
}
|
|
408
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
409
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "
|
|
410
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "
|
|
408
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PreferencesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
409
|
+
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.14", ngImport: i0, type: PreferencesModule });
|
|
410
|
+
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PreferencesModule });
|
|
411
411
|
}
|
|
412
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
412
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.14", ngImport: i0, type: PreferencesModule, decorators: [{
|
|
413
413
|
type: NgModule
|
|
414
414
|
}] });
|
|
415
415
|
|
|
@@ -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 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 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 var ret = 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 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 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 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 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 var ret = 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 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 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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"}
|
|
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 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 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 var ret = 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 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 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 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 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 var ret = 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 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 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/package.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@esfaenza/preferences",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "19.2.0",
|
|
4
4
|
"dependencies": {
|
|
5
5
|
"tslib": "^2.0.0"
|
|
6
6
|
},
|
|
7
7
|
"peerDependencies": {
|
|
8
|
-
"@angular/common": "^
|
|
9
|
-
"@angular/core": "^
|
|
8
|
+
"@angular/common": "^19.2.14",
|
|
9
|
+
"@angular/core": "^19.2.14"
|
|
10
10
|
},
|
|
11
11
|
"module": "fesm2022/esfaenza-preferences.mjs",
|
|
12
12
|
"typings": "index.d.ts",
|
|
@@ -16,8 +16,6 @@
|
|
|
16
16
|
},
|
|
17
17
|
".": {
|
|
18
18
|
"types": "./index.d.ts",
|
|
19
|
-
"esm2022": "./esm2022/esfaenza-preferences.mjs",
|
|
20
|
-
"esm": "./esm2022/esfaenza-preferences.mjs",
|
|
21
19
|
"default": "./fesm2022/esfaenza-preferences.mjs"
|
|
22
20
|
}
|
|
23
21
|
},
|
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
5
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtcHJlZmVyZW5jZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvZXNmYWVuemEtcHJlZmVyZW5jZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,26 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Classe di Configurazione per la libreria
|
|
3
|
-
*/
|
|
4
|
-
export class PreferencesModuleConfig {
|
|
5
|
-
/**
|
|
6
|
-
* Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.
|
|
7
|
-
*
|
|
8
|
-
* Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte
|
|
9
|
-
*/
|
|
10
|
-
retrieveAllAtStart;
|
|
11
|
-
/**
|
|
12
|
-
* Classe che si deve occupare dello store "Definitivo" delle preferenze. Di default viene proposto uno store lato localStorage ma si può facilmente
|
|
13
|
-
* fornire uno storage che porta le informazioni lato Database
|
|
14
|
-
*/
|
|
15
|
-
preferencePersistor;
|
|
16
|
-
/**
|
|
17
|
-
* Classe che si deve occupare dello store "Definitivo" delle cache. Di default viene proposto uno store lato localStorage ma si può facilmente
|
|
18
|
-
* fornire uno storage che porta le informazioni lato Database
|
|
19
|
-
*/
|
|
20
|
-
cachePersistor;
|
|
21
|
-
/** Classe che si deve occupare per generare un ID univoco di sessione in base al quale verranno salvate le preferenze */
|
|
22
|
-
sessionRetriever;
|
|
23
|
-
/** Attiva la modalità di debug per l'esposizione di messaggi significativi */
|
|
24
|
-
debugMode;
|
|
25
|
-
}
|
|
26
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlZmVyZW5jZXNNb2R1bGVDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL21vZGVscy9QcmVmZXJlbmNlc01vZHVsZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7SUFFaEM7Ozs7T0FJRztJQUNILGtCQUFrQixDQUFXO0lBRTdCOzs7T0FHRztJQUNILG1CQUFtQixDQUE4QjtJQUVoRDs7O01BR0U7SUFDSCxjQUFjLENBQXdCO0lBRXRDLHlIQUF5SDtJQUN6SCxnQkFBZ0IsQ0FBOEI7SUFFOUMsOEVBQThFO0lBQzlFLFNBQVMsQ0FBVztDQUN2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFR5cGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBDYWNoZVBlcnNpc3RvciB9IGZyb20gXCIuLi9wZXJzaXN0b3IvYmFzZS9DYWNoZVBlcnNpc3RvclwiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1BlcnNpc3RvciB9IGZyb20gXCIuLi9wZXJzaXN0b3IvYmFzZS9QcmVmZXJlbmNlc1BlcnNpc3RvclwiO1xyXG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciB9IGZyb20gXCIuLi9zZXNzaW9uL2Jhc2UvQmFzZVNlc3Npb25SZXRyaWV2ZXJcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgZGkgQ29uZmlndXJhemlvbmUgcGVyIGxhIGxpYnJlcmlhXHJcbiAqL1xyXG5leHBvcnQgY2xhc3MgUHJlZmVyZW5jZXNNb2R1bGVDb25maWd7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbmRpY2Egc2UgcmVjdXBlcmFyZSBhdXRvbm9tYW1lbnRlIHR1dHRlIGxlIGNvbmZpZ3VyYXppb25pIHNhbHZhdGUgYWwgYm9vdHN0cmFwIGRlbGxhIGxpYnJlcmlhIG8gc2UgYXNwZXR0YXJlIGxlIHJpY2hpZXN0ZSBzcGVjaWZpY2hlLlxyXG4gICAgICogXHJcbiAgICAgKiBVdGlsZSBzZSBub24gdmVuZ29ubyBzYWx2YXRlIHRhbnRlIGNvc2UsIHBvdHJlYmJlIGNyZWFyZSB1biBtb21lbnRvIGRpIGlycmVzcG9uc2l2aXTDoCBzZSBsZSBpbmZvIGRhIHJlY3VwZXJhcmUgc29ubyBtb2x0ZVxyXG4gICAgICovXHJcbiAgICByZXRyaWV2ZUFsbEF0U3RhcnQ/OiBib29sZWFuO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ2xhc3NlIGNoZSBzaSBkZXZlIG9jY3VwYXJlIGRlbGxvIHN0b3JlIFwiRGVmaW5pdGl2b1wiIGRlbGxlIHByZWZlcmVuemUuIERpIGRlZmF1bHQgdmllbmUgcHJvcG9zdG8gdW5vIHN0b3JlIGxhdG8gbG9jYWxTdG9yYWdlIG1hIHNpIHB1w7IgZmFjaWxtZW50ZSBcclxuICAgICAqIGZvcm5pcmUgdW5vIHN0b3JhZ2UgY2hlIHBvcnRhIGxlIGluZm9ybWF6aW9uaSBsYXRvIERhdGFiYXNlXHJcbiAgICAgKi9cclxuICAgIHByZWZlcmVuY2VQZXJzaXN0b3I/OiBUeXBlPFByZWZlcmVuY2VzUGVyc2lzdG9yPjtcclxuXHJcbiAgICAgLyoqXHJcbiAgICAgKiBDbGFzc2UgY2hlIHNpIGRldmUgb2NjdXBhcmUgZGVsbG8gc3RvcmUgXCJEZWZpbml0aXZvXCIgZGVsbGUgY2FjaGUuIERpIGRlZmF1bHQgdmllbmUgcHJvcG9zdG8gdW5vIHN0b3JlIGxhdG8gbG9jYWxTdG9yYWdlIG1hIHNpIHB1w7IgZmFjaWxtZW50ZSBcclxuICAgICAqIGZvcm5pcmUgdW5vIHN0b3JhZ2UgY2hlIHBvcnRhIGxlIGluZm9ybWF6aW9uaSBsYXRvIERhdGFiYXNlXHJcbiAgICAgKi9cclxuICAgIGNhY2hlUGVyc2lzdG9yPzogVHlwZTxDYWNoZVBlcnNpc3Rvcj47XHJcblxyXG4gICAgLyoqIENsYXNzZSBjaGUgc2kgZGV2ZSBvY2N1cGFyZSBwZXIgZ2VuZXJhcmUgdW4gSUQgdW5pdm9jbyBkaSBzZXNzaW9uZSBpbiBiYXNlIGFsIHF1YWxlIHZlcnJhbm5vIHNhbHZhdGUgbGUgcHJlZmVyZW56ZSAqL1xyXG4gICAgc2Vzc2lvblJldHJpZXZlcj86IFR5cGU8QmFzZVNlc3Npb25SZXRyaWV2ZXI+O1xyXG4gICAgXHJcbiAgICAvKiogQXR0aXZhIGxhIG1vZGFsaXTDoCBkaSBkZWJ1ZyBwZXIgbCdlc3Bvc2l6aW9uZSBkaSBtZXNzYWdnaSBzaWduaWZpY2F0aXZpICovXHJcbiAgICBkZWJ1Z01vZGU/OiBib29sZWFuO1xyXG59Il19
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
import { forkJoin } from "rxjs";
|
|
2
|
-
import { map } from "rxjs/operators";
|
|
3
|
-
/** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */
|
|
4
|
-
export class CachePersistor {
|
|
5
|
-
session;
|
|
6
|
-
/** @ignore Costruttore */
|
|
7
|
-
constructor(session) {
|
|
8
|
-
this.session = session;
|
|
9
|
-
}
|
|
10
|
-
/**
|
|
11
|
-
* Effettua il **persist** massivo di una lista di Chiave - Valore
|
|
12
|
-
*
|
|
13
|
-
* @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
|
|
14
|
-
*/
|
|
15
|
-
persistAll(dictionary) {
|
|
16
|
-
let observables = [];
|
|
17
|
-
for (let key in dictionary)
|
|
18
|
-
observables.push(this.persist(key, dictionary[key]));
|
|
19
|
-
return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));
|
|
20
|
-
}
|
|
21
|
-
/**
|
|
22
|
-
* Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
|
|
23
|
-
*
|
|
24
|
-
* @param {string} key Chiave da storicizzare
|
|
25
|
-
*
|
|
26
|
-
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
27
|
-
*/
|
|
28
|
-
getKey(key) {
|
|
29
|
-
return this.session.getSessionKey() + "§" + key + "§";
|
|
30
|
-
}
|
|
31
|
-
}
|
|
32
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGVQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9iYXNlL0NhY2hlUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLDRGQUE0RjtBQUM1RixNQUFNLE9BQWdCLGNBQWM7SUFHVjtJQUR0QiwwQkFBMEI7SUFDMUIsWUFBc0IsT0FBNkI7UUFBN0IsWUFBTyxHQUFQLE9BQU8sQ0FBc0I7SUFBRyxDQUFDO0lBcUN2RDs7OztPQUlHO0lBQ0ksVUFBVSxDQUFDLFVBQXFDO1FBQ25ELElBQUksV0FBVyxHQUEwQixFQUFFLENBQUM7UUFDNUMsS0FBSyxJQUFJLEdBQUcsSUFBSSxVQUFVO1lBQ3RCLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUV6RCxPQUFPLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLEdBQUcsRUFBRSxHQUFHLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzlGLENBQUM7SUFFRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsR0FBVztRQUNyQixPQUFPLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxHQUFHLENBQUM7SUFDMUQsQ0FBQztDQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSwgZm9ya0pvaW4gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBtYXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgQmFzZVNlc3Npb25SZXRyaWV2ZXIgfSBmcm9tIFwiLi4vLi4vc2Vzc2lvbi9iYXNlL0Jhc2VTZXNzaW9uUmV0cmlldmVyXCI7XHJcbmltcG9ydCB7IElCYXNlUGVyc2lzdG9yIH0gZnJvbSBcIi4vSUJhc2VQZXJzaXN0b3JcIjtcclxuXHJcbi8qKiBDbGFzc2UgYXN0cmF0dGEgY2hlIHJhcHByZXNlbnRhIGxvIHN0YXRvIGRpIHBlcnNpc3RlbnphIGZyYSBsYSBsaWJyZXJpYSBlIHVubyBzdG9yYWdlICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDYWNoZVBlcnNpc3RvciBpbXBsZW1lbnRzIElCYXNlUGVyc2lzdG9yIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBDb3N0cnV0dG9yZSAqL1xyXG4gICAgY29uc3RydWN0b3IocHJvdGVjdGVkIHNlc3Npb246IEJhc2VTZXNzaW9uUmV0cmlldmVyKSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2FsdmEsIHBlciB1bmEgc2Vzc2lvbmUsIHVuYSBjaGlhdmUgY29uIHVuIHZhbG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkYSBzdG9yaWNpenphcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHBlcnNpc3Q8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjdXBlcmEsIHBlciB1bmEgc2Vzc2lvbmUsIGlsIHZhbG9yZSBhc3NlZ25hdG8gYWQgdW5hIGNoaWF2ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkYSByZWN1cGVyYXJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPFQ+fSBWYWxvcmUgc2FsdmF0byBwZXIgbGEgY2hpYXZlICoqa2V5KipcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHJlY292ZXI8VD4oa2V5Pzogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFBlciB1bmEgc2Vzc2lvbmUgcmVjdXBlcmEgdHV0dGUgbGUgY29wcGllIENoaWF2ZSAtIFZhbG9yZSBzYWx2YXRlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfT59IERpemlvbmFyaW8gY29uIHR1dHRlIGxlIHByZWZlcmVuY2Ugc2FsdmF0ZSBwZXIgbGEgc2Vzc2lvbmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHJlY292ZXJBbGwoKTogT2JzZXJ2YWJsZTx7IFtpbmRleDogc3RyaW5nXTogYW55IH0+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogIFJpcHVsaXNjZSBsZSBwcmVmZXJlbmNlIHNhbHZhdGUgcmVsYXRpdmUgYWQgdW5hIHNlc3Npb25lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWxpbWluYSB1biBvZ2dldHRvIGRhbGxhIGNhY2hlIHBlcnNpc3RpdGFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGEgcmltdW92ZXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCByZW1vdmUoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogRWZmZXR0dWEgaWwgKipwZXJzaXN0KiogbWFzc2l2byBkaSB1bmEgbGlzdGEgZGkgQ2hpYXZlIC0gVmFsb3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7eyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfX0gZGljdGlvbmFyeSBEaXppb25hcmlvIChsaXN0YSBkaSBDaGlhdmUgLSBWYWxvcmUpIGRhIHBlcnNpc3RlcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIHBlcnNpc3RBbGwoZGljdGlvbmFyeTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxldCBvYnNlcnZhYmxlczogT2JzZXJ2YWJsZTxib29sZWFuPltdID0gW107XHJcbiAgICAgICAgZm9yIChsZXQga2V5IGluIGRpY3Rpb25hcnkpXHJcbiAgICAgICAgICAgIG9ic2VydmFibGVzLnB1c2godGhpcy5wZXJzaXN0KGtleSwgZGljdGlvbmFyeVtrZXldKSk7XHJcblxyXG4gICAgICAgIHJldHVybiBmb3JrSm9pbihvYnNlcnZhYmxlcykucGlwZShtYXAocmVzID0+IHJlcy5yZWR1Y2UoKGFjYywgdmFsKSA9PiBhY2MgJiYgdmFsLCB0cnVlKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogT3R0aWVuZSBsYSBjaGlhdmUgXCJSZWFsZVwiIGRhIHV0aWxpenphcmUgcGVyIGxhIHBlcnNpc3RlbnphIGRpIHVuYSBjaGlhdmUgZ2VuZXJpY2FcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGEgc3RvcmljaXp6YXJlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtzdHJpbmd9IFVuaW9uZSBmcmEgbCdpZGVudGlmaWNhdGl2byBkZWxsYSBzZXNzaW9uZSBlIGxhIGNoaWF2ZSBzcGVjaWZpY2F0YVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0S2V5KGtleTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgICAgICByZXR1cm4gdGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKSArIFwiwqdcIiArIGtleSArIFwiwqdcIjtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUJhc2VQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9iYXNlL0lCYXNlUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgYXN0cmF0dGEgY2hlIHJhcHByZXNlbnRhIGxvIHN0YXRvIGRpIHBlcnNpc3RlbnphIGZyYSBsYSBsaWJyZXJpYSBlIHVubyBzdG9yYWdlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElCYXNlUGVyc2lzdG9yIHtcclxuICAgIHBlcnNpc3Q8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgcmVjb3ZlcjxUPihrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gICAgcmVjb3ZlckFsbCgpOiBPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfT47XHJcbiAgICBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgcmVtb3ZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHBlcnNpc3RBbGwoZGljdGlvbmFyeTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBnZXRLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { forkJoin } from "rxjs";
|
|
2
|
-
import { map } from "rxjs/operators";
|
|
3
|
-
/**
|
|
4
|
-
* Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage
|
|
5
|
-
*/
|
|
6
|
-
export class PreferencesPersistor {
|
|
7
|
-
session;
|
|
8
|
-
/** @ignore Costruttore */
|
|
9
|
-
constructor(session) {
|
|
10
|
-
this.session = session;
|
|
11
|
-
}
|
|
12
|
-
/**
|
|
13
|
-
* Effettua il **persist** massivo di una lista di Chiave - Valore
|
|
14
|
-
*
|
|
15
|
-
* @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
|
|
16
|
-
*/
|
|
17
|
-
persistAll(dictionary) {
|
|
18
|
-
let observables = [];
|
|
19
|
-
for (let key in dictionary)
|
|
20
|
-
observables.push(this.persist(key, dictionary[key]));
|
|
21
|
-
return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));
|
|
22
|
-
}
|
|
23
|
-
/**
|
|
24
|
-
* Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
|
|
25
|
-
*
|
|
26
|
-
* @param {string} key Chiave da storicizzare
|
|
27
|
-
*
|
|
28
|
-
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
29
|
-
*/
|
|
30
|
-
getKey(key) {
|
|
31
|
-
return this.session.getSessionKey() + "§" + key + "§";
|
|
32
|
-
}
|
|
33
|
-
}
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlZmVyZW5jZXNQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixvQkFBb0I7SUFHaEI7SUFEdEIsMEJBQTBCO0lBQzFCLFlBQXNCLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQUcsQ0FBQztJQXFDdkQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxVQUFxQztRQUNuRCxJQUFJLFdBQVcsR0FBMEIsRUFBRSxDQUFDO1FBQzVDLEtBQUssSUFBSSxHQUFHLElBQUksVUFBVTtZQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekQsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEJhc2VTZXNzaW9uUmV0cmlldmVyIH0gZnJvbSBcIi4uLy4uL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5pbXBvcnQgeyBJQmFzZVBlcnNpc3RvciB9IGZyb20gXCIuL0lCYXNlUGVyc2lzdG9yXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGFzdHJhdHRhIGNoZSByYXBwcmVzZW50YSBsbyBzdGF0byBkaSBwZXJzaXN0ZW56YSBmcmEgbGEgbGlicmVyaWEgZSB1bm8gc3RvcmFnZVxyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByZWZlcmVuY2VzUGVyc2lzdG9yIGltcGxlbWVudHMgSUJhc2VQZXJzaXN0b3Ige1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2Vzc2lvbjogQmFzZVNlc3Npb25SZXRyaWV2ZXIpIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTYWx2YSwgcGVyIHVuYSBzZXNzaW9uZSwgdW5hIGNoaWF2ZSBjb24gdW4gdmFsb3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRhIHN0b3JpY2l6emFyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgcGVyc2lzdDxUPihrZXk6IHN0cmluZywgaXRlbTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWN1cGVyYSwgcGVyIHVuYSBzZXNzaW9uZSwgaWwgdmFsb3JlIGFzc2VnbmF0byBhZCB1bmEgY2hpYXZlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRhIHJlY3VwZXJhcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge09ic2VydmFibGU8VD59IFZhbG9yZSBzYWx2YXRvIHBlciBsYSBjaGlhdmUgKiprZXkqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVjb3ZlcjxUPihrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyIHVuYSBzZXNzaW9uZSByZWN1cGVyYSB0dXR0ZSBsZSBjb3BwaWUgQ2hpYXZlIC0gVmFsb3JlIHNhbHZhdGVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge09ic2VydmFibGU8eyBbaW5kZXg6IHN0cmluZ106IGFueSB9Pn0gRGl6aW9uYXJpbyBjb24gdHV0dGUgbGUgcHJlZmVyZW5jZSBzYWx2YXRlIHBlciBsYSBzZXNzaW9uZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVjb3ZlckFsbCgpOiBPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAgUmlwdWxpc2NlIGxlIHByZWZlcmVuY2Ugc2FsdmF0ZSByZWxhdGl2ZSBhZCB1bmEgc2Vzc2lvbmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbGltaW5hIHVuIG9nZ2V0dG8gZGFsbGEgY2FjaGUgcGVyc2lzdGl0YVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkYSByaW11b3ZlcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFZmZldHR1YSBpbCAqKnBlcnNpc3QqKiBtYXNzaXZvIGRpIHVuYSBsaXN0YSBkaSBDaGlhdmUgLSBWYWxvcmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHt7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9fSBkaWN0aW9uYXJ5IERpemlvbmFyaW8gKGxpc3RhIGRpIENoaWF2ZSAtIFZhbG9yZSkgZGEgcGVyc2lzdGVyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGVyc2lzdEFsbChkaWN0aW9uYXJ5OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGJvb2xlYW4+W10gPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gZGljdGlvbmFyeSlcclxuICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaCh0aGlzLnBlcnNpc3Qoa2V5LCBkaWN0aW9uYXJ5W2tleV0pKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKG1hcChyZXMgPT4gcmVzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyAmJiB2YWwsIHRydWUpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGxhIGNoaWF2ZSBcIlJlYWxlXCIgZGEgdXRpbGl6emFyZSBwZXIgbGEgcGVyc2lzdGVuemEgZGkgdW5hIGNoaWF2ZSBnZW5lcmljYVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkYSBzdG9yaWNpenphcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVW5pb25lIGZyYSBsJ2lkZW50aWZpY2F0aXZvIGRlbGxhIHNlc3Npb25lIGUgbGEgY2hpYXZlIHNwZWNpZmljYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpICsgXCLCp1wiICsga2V5ICsgXCLCp1wiO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
import { CachePersistor } from "../base/CachePersistor";
|
|
4
|
-
// RXJS
|
|
5
|
-
import { of } from "rxjs";
|
|
6
|
-
import { first } from "rxjs/operators";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../session/base/BaseSessionRetriever";
|
|
9
|
-
export class LocalStorageCachePersistor extends CachePersistor {
|
|
10
|
-
constructor(session) {
|
|
11
|
-
super(session);
|
|
12
|
-
}
|
|
13
|
-
/** @ignore Vedi classe base */
|
|
14
|
-
persist(key, item) {
|
|
15
|
-
localStorage.setItem(this.getKey(key), JSON.stringify(item));
|
|
16
|
-
return of(true).pipe(first());
|
|
17
|
-
}
|
|
18
|
-
/** @ignore Vedi classe base */
|
|
19
|
-
recover(key) {
|
|
20
|
-
var ret = JSON.parse(localStorage.getItem(this.getKey(key)));
|
|
21
|
-
return of(ret).pipe(first());
|
|
22
|
-
}
|
|
23
|
-
/** @ignore Vedi classe base */
|
|
24
|
-
remove(key) {
|
|
25
|
-
var ret = localStorage.removeItem(this.getKey(key));
|
|
26
|
-
return of(true).pipe(first());
|
|
27
|
-
}
|
|
28
|
-
/** @ignore Vedi classe base */
|
|
29
|
-
recoverAll() {
|
|
30
|
-
var ret = {};
|
|
31
|
-
for (var k in localStorage) {
|
|
32
|
-
if (k.includes("§") && k.startsWith(this.session.getSessionKey()))
|
|
33
|
-
ret[k.match(/§(.*)§/)[1]] = JSON.parse(localStorage.getItem(k));
|
|
34
|
-
}
|
|
35
|
-
return of(ret).pipe(first());
|
|
36
|
-
}
|
|
37
|
-
/** @ignore Vedi classe base */
|
|
38
|
-
clear() {
|
|
39
|
-
for (var k in localStorage) {
|
|
40
|
-
if (k.includes("§") && k.startsWith(this.session.getSessionKey()))
|
|
41
|
-
localStorage.removeItem(k);
|
|
42
|
-
}
|
|
43
|
-
return of(true).pipe(first());
|
|
44
|
-
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageCachePersistor, deps: [{ token: i1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageCachePersistor });
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStorageCachePersistor, decorators: [{
|
|
49
|
-
type: Injectable
|
|
50
|
-
}], ctorParameters: () => [{ type: i1.BaseSessionRetriever }] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9pbXBsZW1lbnRhdGlvbi9Mb2NhbFN0b3JhZ2VDYWNoZVBlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUkzQyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFHeEQsT0FBTztBQUNQLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7QUFHdkMsTUFBTSxPQUFPLDBCQUEyQixTQUFRLGNBQWM7SUFFMUQsWUFBWSxPQUE2QjtRQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELCtCQUErQjtJQUN4QixPQUFPLENBQUksR0FBVyxFQUFFLElBQU87UUFDbEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLE9BQU8sQ0FBSSxHQUFXO1FBQ3pCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLE1BQU0sQ0FBQyxHQUFXO1FBQ3JCLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsVUFBVTtRQUNiLElBQUksR0FBRyxHQUFpQyxFQUFFLENBQUM7UUFDM0MsS0FBSyxJQUFJLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3hFLENBQUM7UUFFRCxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLEtBQUs7UUFDUixLQUFLLElBQUksQ0FBQyxJQUFJLFlBQVksRUFBRSxDQUFDO1lBQ3pCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzdELFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDbkMsQ0FBQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7d0dBMUNRLDBCQUEwQjs0R0FBMUIsMEJBQTBCOzs0RkFBMUIsMEJBQTBCO2tCQUR0QyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciB9IGZyb20gXCIuLi8uLi9zZXNzaW9uL2Jhc2UvQmFzZVNlc3Npb25SZXRyaWV2ZXJcIjtcclxuaW1wb3J0IHsgQ2FjaGVQZXJzaXN0b3IgfSBmcm9tIFwiLi4vYmFzZS9DYWNoZVBlcnNpc3RvclwiO1xyXG5pbXBvcnQgeyBJQmFzZVBlcnNpc3RvciB9IGZyb20gXCIuLi9iYXNlL0lCYXNlUGVyc2lzdG9yXCI7XHJcblxyXG4vLyBSWEpTXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZUNhY2hlUGVyc2lzdG9yIGV4dGVuZHMgQ2FjaGVQZXJzaXN0b3IgaW1wbGVtZW50cyBJQmFzZVBlcnNpc3RvciB7XHJcblxyXG4gICAgY29uc3RydWN0b3Ioc2Vzc2lvbjogQmFzZVNlc3Npb25SZXRyaWV2ZXIpIHtcclxuICAgICAgICBzdXBlcihzZXNzaW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcGVyc2lzdDxUPihrZXk6IHN0cmluZywgaXRlbTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0S2V5KGtleSksIEpTT04uc3RyaW5naWZ5KGl0ZW0pKTtcclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSkucGlwZShmaXJzdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcmVjb3ZlcjxUPihrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHZhciByZXQgPSA8VD5KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0S2V5KGtleSkpKTtcclxuICAgICAgICByZXR1cm4gb2YocmV0KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICB2YXIgcmV0ID0gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRLZXkoa2V5KSk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgVmVkaSBjbGFzc2UgYmFzZSAqL1xyXG4gICAgcHVibGljIHJlY292ZXJBbGwoKTogT2JzZXJ2YWJsZTx7IFtpbmRleDogc3RyaW5nXTogYW55OyB9PiB7XHJcbiAgICAgICAgdmFyIHJldDogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZzsgfSA9IHt9O1xyXG4gICAgICAgIGZvciAodmFyIGsgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGlmIChrLmluY2x1ZGVzKFwiwqdcIikgJiYgay5zdGFydHNXaXRoKHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCkpKVxyXG4gICAgICAgICAgICAgICAgcmV0W2subWF0Y2goL8KnKC4qKcKnLylbMV1dID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YocmV0KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBmb3IgKHZhciBrIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICBpZiAoay5pbmNsdWRlcyhcIsKnXCIpICYmIGsuc3RhcnRzV2l0aCh0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpKSlcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGspO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSkucGlwZShmaXJzdCgpKTtcclxuICAgIH1cclxufVxyXG5cclxuIl19
|
|
@@ -1,51 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
// RXJS
|
|
4
|
-
import { of } from "rxjs";
|
|
5
|
-
import { first } from "rxjs/operators";
|
|
6
|
-
import { PreferencesPersistor } from "../base/PreferencesPersistor";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../session/base/BaseSessionRetriever";
|
|
9
|
-
export class LocalStoragePreferencesPersistor extends PreferencesPersistor {
|
|
10
|
-
constructor(session) {
|
|
11
|
-
super(session);
|
|
12
|
-
}
|
|
13
|
-
/** @ignore Vedi classe base */
|
|
14
|
-
persist(key, item) {
|
|
15
|
-
localStorage.setItem(this.getKey(key), JSON.stringify(item));
|
|
16
|
-
return of(true).pipe(first());
|
|
17
|
-
}
|
|
18
|
-
/** @ignore Vedi classe base */
|
|
19
|
-
recover(key) {
|
|
20
|
-
var ret = JSON.parse(localStorage.getItem(this.getKey(key)));
|
|
21
|
-
return of(ret).pipe(first());
|
|
22
|
-
}
|
|
23
|
-
/** @ignore Vedi classe base */
|
|
24
|
-
remove(key) {
|
|
25
|
-
var ret = localStorage.removeItem(this.getKey(key));
|
|
26
|
-
return of(true).pipe(first());
|
|
27
|
-
}
|
|
28
|
-
/** @ignore Vedi classe base */
|
|
29
|
-
recoverAll() {
|
|
30
|
-
var ret = {};
|
|
31
|
-
for (var k in localStorage) {
|
|
32
|
-
if (k.includes("§") && k.startsWith(this.session.getSessionKey()))
|
|
33
|
-
ret[k.match(/§(.*)§/)[1]] = JSON.parse(localStorage.getItem(k));
|
|
34
|
-
}
|
|
35
|
-
return of(ret).pipe(first());
|
|
36
|
-
}
|
|
37
|
-
/** @ignore Vedi classe base */
|
|
38
|
-
clear() {
|
|
39
|
-
for (var k in localStorage) {
|
|
40
|
-
if (k.includes("§") && k.startsWith(this.session.getSessionKey()))
|
|
41
|
-
localStorage.removeItem(k);
|
|
42
|
-
}
|
|
43
|
-
return of(true).pipe(first());
|
|
44
|
-
}
|
|
45
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStoragePreferencesPersistor, deps: [{ token: i1.BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
46
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStoragePreferencesPersistor });
|
|
47
|
-
}
|
|
48
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalStoragePreferencesPersistor, decorators: [{
|
|
49
|
-
type: Injectable
|
|
50
|
-
}], ctorParameters: () => [{ type: i1.BaseSessionRetriever }] });
|
|
51
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlUHJlZmVyZW5jZXNQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9pbXBsZW1lbnRhdGlvbi9Mb2NhbFN0b3JhZ2VQcmVmZXJlbmNlc1BlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPO0FBQ1AsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJdkMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sOEJBQThCLENBQUM7OztBQUlwRSxNQUFNLE9BQU8sZ0NBQWlDLFNBQVEsb0JBQW9CO0lBRXRFLFlBQVksT0FBNkI7UUFDckMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ25CLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsT0FBTyxDQUFJLEdBQVcsRUFBRSxJQUFPO1FBQ2xDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDN0QsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELCtCQUErQjtJQUN4QixPQUFPLENBQUksR0FBVztRQUN6QixJQUFJLEdBQUcsR0FBTSxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDaEUsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELCtCQUErQjtJQUN4QixNQUFNLENBQUMsR0FBVztRQUNyQixJQUFJLEdBQUcsR0FBRyxZQUFZLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNwRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLFVBQVU7UUFDYixJQUFJLEdBQUcsR0FBaUMsRUFBRSxDQUFDO1FBQzNDLEtBQUssSUFBSSxDQUFDLElBQUksWUFBWSxFQUFFLENBQUM7WUFDekIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN4RSxDQUFDO1FBRUQsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELCtCQUErQjtJQUN4QixLQUFLO1FBQ1IsS0FBSyxJQUFJLENBQUMsSUFBSSxZQUFZLEVBQUUsQ0FBQztZQUN6QixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3RCxZQUFZLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ25DLENBQUM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO3dHQTFDUSxnQ0FBZ0M7NEdBQWhDLGdDQUFnQzs7NEZBQWhDLGdDQUFnQztrQkFENUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcblxyXG4vLyBSWEpTXHJcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgZmlyc3QgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuXHJcbi8vIENsYXNzaVxyXG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciB9IGZyb20gXCIuLi8uLi9zZXNzaW9uL2Jhc2UvQmFzZVNlc3Npb25SZXRyaWV2ZXJcIjtcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNQZXJzaXN0b3IgfSBmcm9tIFwiLi4vYmFzZS9QcmVmZXJlbmNlc1BlcnNpc3RvclwiO1xyXG5pbXBvcnQgeyBJQmFzZVBlcnNpc3RvciB9IGZyb20gXCIuLi9iYXNlL0lCYXNlUGVyc2lzdG9yXCI7XHJcblxyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBMb2NhbFN0b3JhZ2VQcmVmZXJlbmNlc1BlcnNpc3RvciBleHRlbmRzIFByZWZlcmVuY2VzUGVyc2lzdG9yIGltcGxlbWVudHMgSUJhc2VQZXJzaXN0b3Ige1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHNlc3Npb246IEJhc2VTZXNzaW9uUmV0cmlldmVyKSB7XHJcbiAgICAgICAgc3VwZXIoc2Vzc2lvbik7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgVmVkaSBjbGFzc2UgYmFzZSAqL1xyXG4gICAgcHVibGljIHBlcnNpc3Q8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSh0aGlzLmdldEtleShrZXkpLCBKU09OLnN0cmluZ2lmeShpdGVtKSk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgVmVkaSBjbGFzc2UgYmFzZSAqL1xyXG4gICAgcHVibGljIHJlY292ZXI8VD4oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgICAgICB2YXIgcmV0ID0gPFQ+SlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbSh0aGlzLmdldEtleShrZXkpKSk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHJldCkucGlwZShmaXJzdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcmVtb3ZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgdmFyIHJldCA9IGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKHRoaXMuZ2V0S2V5KGtleSkpO1xyXG4gICAgICAgIHJldHVybiBvZih0cnVlKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyByZWNvdmVyQWxsKCk6IE9ic2VydmFibGU8eyBbaW5kZXg6IHN0cmluZ106IGFueTsgfT4ge1xyXG4gICAgICAgIHZhciByZXQ6IHsgW2luZGV4OiBzdHJpbmddOiBzdHJpbmc7IH0gPSB7fTtcclxuICAgICAgICBmb3IgKHZhciBrIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICBpZiAoay5pbmNsdWRlcyhcIsKnXCIpICYmIGsuc3RhcnRzV2l0aCh0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpKSlcclxuICAgICAgICAgICAgICAgIHJldFtrLm1hdGNoKC/CpyguKinCpy8pWzFdXSA9IEpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0oaykpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgcmV0dXJuIG9mKHJldCkucGlwZShmaXJzdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgY2xlYXIoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgZm9yICh2YXIgayBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGsuaW5jbHVkZXMoXCLCp1wiKSAmJiBrLnN0YXJ0c1dpdGgodGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKSkpXHJcbiAgICAgICAgICAgICAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbShrKTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcbn1cclxuIl19
|
|
@@ -1,34 +0,0 @@
|
|
|
1
|
-
import { NgModule } from '@angular/core';
|
|
2
|
-
import { CacheService } from './services/cache.service';
|
|
3
|
-
import { PreferencesService } from './services/preferences.service';
|
|
4
|
-
import { BaseSessionRetriever } from './session/base/BaseSessionRetriever';
|
|
5
|
-
import { DefaultSessionRetriever } from './session/implementation/DefaultSessionRetriever';
|
|
6
|
-
import { PREF_FULL_RETRIEVE_AT_START, PREF_DEBUG_MODE } from './tokens';
|
|
7
|
-
import { CachePersistor } from './persistor/base/CachePersistor';
|
|
8
|
-
import { PreferencesPersistor } from './persistor/base/PreferencesPersistor';
|
|
9
|
-
import { LocalStorageCachePersistor } from './persistor/implementation/LocalStorageCachePersistor';
|
|
10
|
-
import { LocalStoragePreferencesPersistor } from './persistor/implementation/LocalStoragePreferencesPersistor';
|
|
11
|
-
import * as i0 from "@angular/core";
|
|
12
|
-
export class PreferencesModule {
|
|
13
|
-
static forRoot(config) {
|
|
14
|
-
return {
|
|
15
|
-
ngModule: PreferencesModule,
|
|
16
|
-
providers: [
|
|
17
|
-
CacheService,
|
|
18
|
-
PreferencesService,
|
|
19
|
-
{ provide: PreferencesPersistor, useClass: config?.preferencePersistor || LocalStoragePreferencesPersistor },
|
|
20
|
-
{ provide: CachePersistor, useClass: config?.cachePersistor || LocalStorageCachePersistor },
|
|
21
|
-
{ provide: BaseSessionRetriever, useClass: config?.sessionRetriever || DefaultSessionRetriever },
|
|
22
|
-
{ provide: PREF_FULL_RETRIEVE_AT_START, useValue: config?.retrieveAllAtStart || true },
|
|
23
|
-
{ provide: PREF_DEBUG_MODE, useValue: config?.debugMode || false },
|
|
24
|
-
]
|
|
25
|
-
};
|
|
26
|
-
}
|
|
27
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreferencesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
28
|
-
static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: PreferencesModule });
|
|
29
|
-
static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreferencesModule });
|
|
30
|
-
}
|
|
31
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreferencesModule, decorators: [{
|
|
32
|
-
type: NgModule
|
|
33
|
-
}] });
|
|
34
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlZmVyZW5jZXMvc3JjL2xpYi9wcmVmZXJlbmNlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLGVBQWUsRUFBRSxNQUFNLFVBQVUsQ0FBQztBQUN4RSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDakUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDN0UsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sdURBQXVELENBQUM7QUFDbkcsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sNkRBQTZELENBQUM7O0FBRy9HLE1BQU0sT0FBTyxpQkFBaUI7SUFDNUIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFnQztRQUM3QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLGlCQUFpQjtZQUMzQixTQUFTLEVBQUU7Z0JBQ1QsWUFBWTtnQkFDWixrQkFBa0I7Z0JBQ2xCLEVBQUUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxNQUFNLEVBQUUsbUJBQW1CLElBQUksZ0NBQWdDLEVBQUU7Z0JBQzVHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLGNBQWMsSUFBSSwwQkFBMEIsRUFBRTtnQkFDM0YsRUFBRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxnQkFBZ0IsSUFBSSx1QkFBdUIsRUFBRTtnQkFDaEcsRUFBRSxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsUUFBUSxFQUFFLE1BQU0sRUFBRSxrQkFBa0IsSUFBSSxJQUFJLEVBQUU7Z0JBQ3RGLEVBQUUsT0FBTyxFQUFFLGVBQWUsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFNBQVMsSUFBSSxLQUFLLEVBQUU7YUFDbkU7U0FDRixDQUFDO0lBQ0osQ0FBQzt3R0FkVSxpQkFBaUI7eUdBQWpCLGlCQUFpQjt5R0FBakIsaUJBQWlCOzs0RkFBakIsaUJBQWlCO2tCQUQ3QixRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IFByZWZlcmVuY2VzTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvUHJlZmVyZW5jZXNNb2R1bGVDb25maWcnO1xyXG5pbXBvcnQgeyBDYWNoZVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NhY2hlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1NlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL3ByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciB9IGZyb20gJy4vc2Vzc2lvbi9iYXNlL0Jhc2VTZXNzaW9uUmV0cmlldmVyJztcclxuaW1wb3J0IHsgRGVmYXVsdFNlc3Npb25SZXRyaWV2ZXIgfSBmcm9tICcuL3Nlc3Npb24vaW1wbGVtZW50YXRpb24vRGVmYXVsdFNlc3Npb25SZXRyaWV2ZXInO1xyXG5pbXBvcnQgeyBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQsIFBSRUZfREVCVUdfTU9ERSB9IGZyb20gJy4vdG9rZW5zJztcclxuaW1wb3J0IHsgQ2FjaGVQZXJzaXN0b3IgfSBmcm9tICcuL3BlcnNpc3Rvci9iYXNlL0NhY2hlUGVyc2lzdG9yJztcclxuaW1wb3J0IHsgUHJlZmVyZW5jZXNQZXJzaXN0b3IgfSBmcm9tICcuL3BlcnNpc3Rvci9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgfSBmcm9tICcuL3BlcnNpc3Rvci9pbXBsZW1lbnRhdGlvbi9Mb2NhbFN0b3JhZ2VDYWNoZVBlcnNpc3Rvcic7XHJcbmltcG9ydCB7IExvY2FsU3RvcmFnZVByZWZlcmVuY2VzUGVyc2lzdG9yIH0gZnJvbSAnLi9wZXJzaXN0b3IvaW1wbGVtZW50YXRpb24vTG9jYWxTdG9yYWdlUHJlZmVyZW5jZXNQZXJzaXN0b3InO1xyXG5cclxuQE5nTW9kdWxlKClcclxuZXhwb3J0IGNsYXNzIFByZWZlcmVuY2VzTW9kdWxlIHtcclxuICBzdGF0aWMgZm9yUm9vdChjb25maWc/OiBQcmVmZXJlbmNlc01vZHVsZUNvbmZpZyk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UHJlZmVyZW5jZXNNb2R1bGU+IHtcclxuICAgIHJldHVybiB7XHJcbiAgICAgIG5nTW9kdWxlOiBQcmVmZXJlbmNlc01vZHVsZSxcclxuICAgICAgcHJvdmlkZXJzOiBbXHJcbiAgICAgICAgQ2FjaGVTZXJ2aWNlLFxyXG4gICAgICAgIFByZWZlcmVuY2VzU2VydmljZSxcclxuICAgICAgICB7IHByb3ZpZGU6IFByZWZlcmVuY2VzUGVyc2lzdG9yLCB1c2VDbGFzczogY29uZmlnPy5wcmVmZXJlbmNlUGVyc2lzdG9yIHx8IExvY2FsU3RvcmFnZVByZWZlcmVuY2VzUGVyc2lzdG9yIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBDYWNoZVBlcnNpc3RvciwgdXNlQ2xhc3M6IGNvbmZpZz8uY2FjaGVQZXJzaXN0b3IgfHwgTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgfSxcclxuICAgICAgICB7IHByb3ZpZGU6IEJhc2VTZXNzaW9uUmV0cmlldmVyLCB1c2VDbGFzczogY29uZmlnPy5zZXNzaW9uUmV0cmlldmVyIHx8IERlZmF1bHRTZXNzaW9uUmV0cmlldmVyIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQsIHVzZVZhbHVlOiBjb25maWc/LnJldHJpZXZlQWxsQXRTdGFydCB8fCB0cnVlIH0sXHJcbiAgICAgICAgeyBwcm92aWRlOiBQUkVGX0RFQlVHX01PREUsIHVzZVZhbHVlOiBjb25maWc/LmRlYnVnTW9kZSB8fCBmYWxzZSB9LFxyXG4gICAgICBdXHJcbiAgICB9O1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUJhc2VTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlZmVyZW5jZXMvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlL0lCYXNlU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmFzZVN0b3JhZ2Uge1xyXG4gIHNldEl0ZW08VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIHNldExvY2FsSXRlbTxUPihrZXk6IHN0cmluZywgaXRlbTogVCk6IGJvb2xlYW47XHJcbiAgZ2V0SXRlbTxUPihrZXk6IHN0cmluZywgY2FjaGVCdXN0OiBib29sZWFuKTogT2JzZXJ2YWJsZTxUPjtcclxuICBnZXRMb2NhbEl0ZW08VD4oa2V5OiBzdHJpbmcpOiBUO1xyXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbn0iXX0=
|
|
@@ -1,140 +0,0 @@
|
|
|
1
|
-
import { __decorate, __param } from "tslib";
|
|
2
|
-
// Angular
|
|
3
|
-
import { Inject, Optional } from '@angular/core';
|
|
4
|
-
import { of } from 'rxjs';
|
|
5
|
-
import { switchMap, take, tap } from 'rxjs/operators';
|
|
6
|
-
// Modelli
|
|
7
|
-
import { PREF_FULL_RETRIEVE_AT_START } from '../../tokens';
|
|
8
|
-
/**
|
|
9
|
-
* Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate
|
|
10
|
-
*/
|
|
11
|
-
let BaseService = class BaseService {
|
|
12
|
-
persistor;
|
|
13
|
-
PREF_FULL_RETRIEVE_AT_START;
|
|
14
|
-
/** Store in memoria delle preferenze locali che sarà persistito per mezzo della classe che fa le veci del **BasePreferencesPersistor** */
|
|
15
|
-
LocalStore = {};
|
|
16
|
-
/** Indica se ho già effettuato il retrieve di tutta la roba salvata */
|
|
17
|
-
AllRetrieved = false;
|
|
18
|
-
/**
|
|
19
|
-
* Costruttore
|
|
20
|
-
*
|
|
21
|
-
* @ignore
|
|
22
|
-
*/
|
|
23
|
-
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
24
|
-
this.persistor = persistor;
|
|
25
|
-
this.PREF_FULL_RETRIEVE_AT_START = PREF_FULL_RETRIEVE_AT_START;
|
|
26
|
-
}
|
|
27
|
-
/**
|
|
28
|
-
* Salva un oggetto sia nella cache locale che nel persistor
|
|
29
|
-
*
|
|
30
|
-
* @param {string} key Chiave di persistenza
|
|
31
|
-
* @param {T} item Oggetto da salvare
|
|
32
|
-
*/
|
|
33
|
-
setItem(key, item) {
|
|
34
|
-
let detatched = JSON.parse(JSON.stringify(item));
|
|
35
|
-
if (detatched) {
|
|
36
|
-
if (detatched.selfsearch)
|
|
37
|
-
detatched.selfsearch = false;
|
|
38
|
-
if (detatched.page && detatched.items && detatched.items.length > 0)
|
|
39
|
-
detatched.items = [];
|
|
40
|
-
}
|
|
41
|
-
this.setLocalItem(key, detatched);
|
|
42
|
-
return this.persist(key, detatched);
|
|
43
|
-
}
|
|
44
|
-
/**
|
|
45
|
-
* Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione
|
|
46
|
-
*
|
|
47
|
-
* @param {string} key Chiave di persistenza
|
|
48
|
-
* @param {T} item Oggetto da salvare
|
|
49
|
-
*/
|
|
50
|
-
setLocalItem(key, item) {
|
|
51
|
-
this.LocalStore[key] = item;
|
|
52
|
-
return true;
|
|
53
|
-
}
|
|
54
|
-
/**
|
|
55
|
-
* Salva, per una sessione, una chiave con un valore, viene chiamato automaticamente dal metodo **store** ma dev'essere chiamato manualmente
|
|
56
|
-
* nel caso si utilizzi il metodo **storeLocal**
|
|
57
|
-
*
|
|
58
|
-
* @param {string} key Chiave da storicizzare
|
|
59
|
-
*/
|
|
60
|
-
persist(key, item) {
|
|
61
|
-
return this.persistor.persist(key, item);
|
|
62
|
-
}
|
|
63
|
-
/**
|
|
64
|
-
* Recupera un oggetto in base a una chiave. Permette di accedere alla copia locale o alla copia persistita.
|
|
65
|
-
*
|
|
66
|
-
* @param {string} key Chiave del valore da recuperare
|
|
67
|
-
* @param {boolean} cacheBust Indica se ignorare il valore della cache locale e recuperare l'oggetto dallo store persistito,
|
|
68
|
-
* in caso fosse stato modificato fuori sistema o da un altro sistema
|
|
69
|
-
*
|
|
70
|
-
* @returns {Observable<T>} Oggetto richiesto
|
|
71
|
-
*/
|
|
72
|
-
getItem(key, cacheBust = false) {
|
|
73
|
-
if (this.PREF_FULL_RETRIEVE_AT_START && !this.AllRetrieved) {
|
|
74
|
-
let retrieveObservable = this.persistor.recoverAll().pipe(take(1), tap(t => {
|
|
75
|
-
this.AllRetrieved = true;
|
|
76
|
-
for (let cProp in t)
|
|
77
|
-
this.LocalStore[cProp] = t[cProp];
|
|
78
|
-
}));
|
|
79
|
-
return retrieveObservable.pipe(switchMap(r => this.doGetItem(key, cacheBust)));
|
|
80
|
-
}
|
|
81
|
-
return this.doGetItem(key, cacheBust);
|
|
82
|
-
}
|
|
83
|
-
/**
|
|
84
|
-
* Funzione interna che effettivamente recupera le cache
|
|
85
|
-
*
|
|
86
|
-
* @param key Chiave da recuperare
|
|
87
|
-
* @param cacheBust Indica se raccogliere dagli elementi locali o se prendere una copia nuova dell'oggetto dalla cache persistita
|
|
88
|
-
*
|
|
89
|
-
* @returns Observable che alla sottoscrizione restituisce l'oggetto richiesto
|
|
90
|
-
*/
|
|
91
|
-
doGetItem(key, cacheBust = false) {
|
|
92
|
-
if (this.LocalStore[key] && !cacheBust)
|
|
93
|
-
return of(this.LocalStore[key]);
|
|
94
|
-
else {
|
|
95
|
-
var obj = this.persistor.recover(key);
|
|
96
|
-
if (!obj)
|
|
97
|
-
return of(null);
|
|
98
|
-
obj.pipe(tap(item => { this.LocalStore[key] = item; }));
|
|
99
|
-
return obj;
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
/**
|
|
103
|
-
* Recupera un oggetto in base a una chiave. Permette di accedere solo alla copia locale
|
|
104
|
-
*
|
|
105
|
-
* @param {string} key Chiave del valore da recuperare
|
|
106
|
-
*
|
|
107
|
-
* @returns {T} Oggetto richiesto
|
|
108
|
-
*/
|
|
109
|
-
getLocalItem(key) {
|
|
110
|
-
if (this.LocalStore[key])
|
|
111
|
-
return this.LocalStore[key];
|
|
112
|
-
else
|
|
113
|
-
return null;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Elimina un oggetto dalla cache sia locale che persistita
|
|
117
|
-
*
|
|
118
|
-
* @param {string} key Chiave da rimuovere
|
|
119
|
-
*/
|
|
120
|
-
removeItem(key) {
|
|
121
|
-
if (this.LocalStore[key])
|
|
122
|
-
delete this.LocalStore[key];
|
|
123
|
-
return this.persistor.remove(key);
|
|
124
|
-
}
|
|
125
|
-
/**
|
|
126
|
-
* Ripulisce le impostazioni locali e le impostazioni salvate dal persistor
|
|
127
|
-
*/
|
|
128
|
-
clear() {
|
|
129
|
-
// Pulisco la cache locale
|
|
130
|
-
this.LocalStore = {};
|
|
131
|
-
// "Committo" le modifiche
|
|
132
|
-
return this.persistor.clear();
|
|
133
|
-
}
|
|
134
|
-
};
|
|
135
|
-
BaseService = __decorate([
|
|
136
|
-
__param(1, Optional()),
|
|
137
|
-
__param(1, Inject(PREF_FULL_RETRIEVE_AT_START))
|
|
138
|
-
], BaseService);
|
|
139
|
-
export { BaseService };
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlZmVyZW5jZXMvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlL2Jhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsVUFBVTtBQUNWLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2pELE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDdEMsT0FBTyxFQUFFLFNBQVMsRUFBRSxJQUFJLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHdEQsVUFBVTtBQUNWLE9BQU8sRUFBRSwyQkFBMkIsRUFBRSxNQUFNLGNBQWMsQ0FBQztBQUczRDs7R0FFRztBQUNJLElBQU0sV0FBVyxHQUFqQixNQUFNLFdBQVc7SUFhRjtJQUFvRjtJQVh4RywwSUFBMEk7SUFDaEksVUFBVSxHQUE2QixFQUFFLENBQUM7SUFFcEQsdUVBQXVFO0lBQy9ELFlBQVksR0FBWSxLQUFLLENBQUM7SUFFdEM7Ozs7T0FJRztJQUNILFlBQW9CLFNBQXlCLEVBQTJELDJCQUFvQztRQUF4SCxjQUFTLEdBQVQsU0FBUyxDQUFnQjtRQUEyRCxnQ0FBMkIsR0FBM0IsMkJBQTJCLENBQVM7SUFDNUksQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksT0FBTyxDQUFJLEdBQVcsRUFBRSxJQUFPO1FBQ3BDLElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksU0FBUyxFQUFFLENBQUM7WUFDZCxJQUFJLFNBQVMsQ0FBQyxVQUFVO2dCQUN0QixTQUFTLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUMvQixJQUFJLFNBQVMsQ0FBQyxJQUFJLElBQUksU0FBUyxDQUFDLEtBQUssSUFBSSxTQUFT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UyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUNwQyxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLO1FBQ1YsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ3JCLDBCQUEwQjtRQUMxQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDaEMsQ0FBQztDQUNGLENBQUE7QUF0SVksV0FBVztJQWEwQixXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsMkJBQTJCLENBQUMsQ0FBQTtHQWJwRixXQUFXLENBc0l2QiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBzd2l0Y2hNYXAsIHRha2UsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgSUJhc2VQZXJzaXN0b3IgfSBmcm9tICcuLi8uLi9wZXJzaXN0b3IvYmFzZS9JQmFzZVBlcnNpc3Rvcic7XHJcblxyXG4vLyBNb2RlbGxpXHJcbmltcG9ydCB7IFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVCB9IGZyb20gJy4uLy4uL3Rva2Vucyc7XHJcbmltcG9ydCB7IElCYXNlU3RvcmFnZSB9IGZyb20gJy4vSUJhc2VTdG9yYWdlJztcclxuXHJcbi8qKlxyXG4gKiBTZXJ2aWNlIGNoZSBzaSBvY2N1cGEgZGkgc2FsdmFyZSBlIHJlY3VwZXJhcmUgbGUgcHJlZmVyZW56ZSB1dGVudGUgcmlzcGV0dG8gYWxsZSBjaGlhdmkgc2FsdmF0ZVxyXG4gKi9cclxuZXhwb3J0IGNsYXNzIEJhc2VTZXJ2aWNlIGltcGxlbWVudHMgSUJhc2VTdG9yYWdlIHtcclxuXHJcbiAgLyoqIFN0b3JlIGluIG1lbW9yaWEgZGVsbGUgcHJlZmVyZW56ZSBsb2NhbGkgY2hlIHNhcsOgIHBlcnNpc3RpdG8gcGVyIG1lenpvIGRlbGxhIGNsYXNzZSBjaGUgZmEgbGUgdmVjaSBkZWwgKipCYXNlUHJlZmVyZW5jZXNQZXJzaXN0b3IqKiAqL1xyXG4gIHByb3RlY3RlZCBMb2NhbFN0b3JlOiB7IFtpbmRleDogc3RyaW5nXTogYW55IH0gPSB7fTtcclxuXHJcbiAgLyoqIEluZGljYSBzZSBobyBnacOgIGVmZmV0dHVhdG8gaWwgcmV0cmlldmUgZGkgdHV0dGEgbGEgcm9iYSBzYWx2YXRhICovXHJcbiAgcHJpdmF0ZSBBbGxSZXRyaWV2ZWQ6IGJvb2xlYW4gPSBmYWxzZTtcclxuXHJcbiAgLyoqXHJcbiAgICogQ29zdHJ1dHRvcmVcclxuICAgKiBcclxuICAgKiBAaWdub3JlXHJcbiAgICovXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBwZXJzaXN0b3I6IElCYXNlUGVyc2lzdG9yLCBAT3B0aW9uYWwoKSBASW5qZWN0KFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVCkgcHJpdmF0ZSBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQ6IGJvb2xlYW4pIHtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhbHZhIHVuIG9nZ2V0dG8gc2lhIG5lbGxhIGNhY2hlIGxvY2FsZSBjaGUgbmVsIHBlcnNpc3RvclxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRpIHBlcnNpc3RlbnphXHJcbiAgICogQHBhcmFtIHtUfSBpdGVtIE9nZ2V0dG8gZGEgc2FsdmFyZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRJdGVtPFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICBsZXQgZGV0YXRjaGVkID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtKSk7XHJcbiAgICBpZiAoZGV0YXRjaGVkKSB7XHJcbiAgICAgIGlmIChkZXRhdGNoZWQuc2VsZnNlYXJjaClcclxuICAgICAgICBkZXRhdGNoZWQuc2VsZnNlYXJjaCA9IGZhbHNlO1xyXG4gICAgICBpZiAoZGV0YXRjaGVkLnBhZ2UgJiYgZGV0YXRjaGVkLml0ZW1zICYmIGRldGF0Y2hlZC5pdGVtcy5sZW5ndGggPiAwKVxyXG4gICAgICAgIGRldGF0Y2hlZC5pdGVtcyA9IFtdO1xyXG4gICAgfVxyXG4gICAgXHJcbiAgICB0aGlzLnNldExvY2FsSXRlbShrZXksIGRldGF0Y2hlZClcclxuICAgIHJldHVybiB0aGlzLnBlcnNpc3Qoa2V5LCBkZXRhdGNoZWQpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogU2FsdmEgdW4gb2dnZXR0byBzb2xvIG5lbGxhIGNhY2hlIGxvY2FsZS4gRG92csOgIGVzc2VyZSBwZXJzaXN0aXRvIG1hbnVhbG1lbnRlIG8gYW5kcsOgIHBlcnNvIGFsIHJpYXZ2aW8gZGVsbCdhcHBsaWNhemlvbmVcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkaSBwZXJzaXN0ZW56YVxyXG4gICAqIEBwYXJhbSB7VH0gaXRlbSBPZ2dldHRvIGRhIHNhbHZhcmVcclxuICAgKi9cclxuICBwdWJsaWMgc2V0TG9jYWxJdGVtPFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogYm9vbGVhbiB7XHJcbiAgICB0aGlzLkxvY2FsU3RvcmVba2V5XSA9IGl0ZW07XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhbHZhLCBwZXIgdW5hIHNlc3Npb25lLCB1bmEgY2hpYXZlIGNvbiB1biB2YWxvcmUsIHZpZW5lIGNoaWFtYXRvIGF1dG9tYXRpY2FtZW50ZSBkYWwgbWV0b2RvICoqc3RvcmUqKiBtYSBkZXYnZXNzZXJlIGNoaWFtYXRvIG1hbnVhbG1lbnRlXHJcbiAgICogbmVsIGNhc28gc2kgdXRpbGl6emkgaWwgbWV0b2RvICoqc3RvcmVMb2NhbCoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGEgc3RvcmljaXp6YXJlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBwZXJzaXN0PFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJzaXN0b3IucGVyc2lzdChrZXksIGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjdXBlcmEgdW4gb2dnZXR0byBpbiBiYXNlIGEgdW5hIGNoaWF2ZS4gUGVybWV0dGUgZGkgYWNjZWRlcmUgYWxsYSBjb3BpYSBsb2NhbGUgbyBhbGxhIGNvcGlhIHBlcnNpc3RpdGEuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGVsIHZhbG9yZSBkYSByZWN1cGVyYXJlXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBjYWNoZUJ1c3QgSW5kaWNhIHNlIGlnbm9yYXJlIGlsIHZhbG9yZSBkZWxsYSBjYWNoZSBsb2NhbGUgZSByZWN1cGVyYXJlIGwnb2dnZXR0byBkYWxsbyBzdG9yZSBwZXJzaXN0aXRvLCBcclxuICAgKiBpbiBjYXNvIGZvc3NlIHN0YXRvIG1vZGlmaWNhdG8gZnVvcmkgc2lzdGVtYSBvIGRhIHVuIGFsdHJvIHNpc3RlbWFcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxUPn0gT2dnZXR0byByaWNoaWVzdG9cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SXRlbTxUPihrZXk6IHN0cmluZywgY2FjaGVCdXN0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGlmICh0aGlzLlBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVCAmJiAhdGhpcy5BbGxSZXRyaWV2ZWQpIHtcclxuXHJcbiAgICAgIGxldCByZXRyaWV2ZU9ic2VydmFibGUgPSB0aGlzLnBlcnNpc3Rvci5yZWNvdmVyQWxsKCkucGlwZSh0YWtlKDEpLCB0YXAodCA9PiB7XHJcbiAgICAgICAgdGhpcy5BbGxSZXRyaWV2ZWQgPSB0cnVlO1xyXG4gICAgICAgIGZvciAobGV0IGNQcm9wIGluIHQpIHRoaXMuTG9jYWxTdG9yZVtjUHJvcF0gPSB0W2NQcm9wXTtcclxuICAgICAgfSkpO1xyXG5cclxuICAgICAgcmV0dXJuIHJldHJpZXZlT2JzZXJ2YWJsZS5waXBlKHN3aXRjaE1hcChyID0+IHRoaXMuZG9HZXRJdGVtPFQ+KGtleSwgY2FjaGVCdXN0KSkpO1xyXG4gICAgfVxyXG5cclxuICAgIHJldHVybiB0aGlzLmRvR2V0SXRlbShrZXksIGNhY2hlQnVzdCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBGdW56aW9uZSBpbnRlcm5hIGNoZSBlZmZldHRpdmFtZW50ZSByZWN1cGVyYSBsZSBjYWNoZVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSBrZXkgQ2hpYXZlIGRhIHJlY3VwZXJhcmVcclxuICAgKiBAcGFyYW0gY2FjaGVCdXN0IEluZGljYSBzZSByYWNjb2dsaWVyZSBkYWdsaSBlbGVtZW50aSBsb2NhbGkgbyBzZSBwcmVuZGVyZSB1bmEgY29waWEgbnVvdmEgZGVsbCdvZ2dldHRvIGRhbGxhIGNhY2hlIHBlcnNpc3RpdGFcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlIGNoZSBhbGxhIHNvdHRvc2NyaXppb25lIHJlc3RpdHVpc2NlIGwnb2dnZXR0byByaWNoaWVzdG9cclxuICAgKi9cclxuICBwcml2YXRlIGRvR2V0SXRlbTxUPihrZXk6IHN0cmluZywgY2FjaGVCdXN0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGlmICh0aGlzLkxvY2FsU3RvcmVba2V5XSAmJiAhY2FjaGVCdXN0KVxyXG4gICAgICByZXR1cm4gb2YoPFQ+dGhpcy5Mb2NhbFN0b3JlW2tleV0pO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHZhciBvYmogPSB0aGlzLnBlcnNpc3Rvci5yZWNvdmVyPFQ+KGtleSk7XHJcbiAgICAgIGlmICghb2JqKVxyXG4gICAgICAgIHJldHVybiBvZihudWxsIGFzIFQpO1xyXG4gICAgICBvYmoucGlwZSh0YXAoaXRlbSA9PiB7IHRoaXMuTG9jYWxTdG9yZVtrZXldID0gaXRlbTsgfSkpXHJcbiAgICAgIHJldHVybiBvYmo7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBSZWN1cGVyYSB1biBvZ2dldHRvIGluIGJhc2UgYSB1bmEgY2hpYXZlLiBQZXJtZXR0ZSBkaSBhY2NlZGVyZSBzb2xvIGFsbGEgY29waWEgbG9jYWxlXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGVsIHZhbG9yZSBkYSByZWN1cGVyYXJlXHJcbiAgICogXHJcbiAgICogQHJldHVybnMge1R9IE9nZ2V0dG8gcmljaGllc3RvXHJcbiAgICovXHJcbiAgcHVibGljIGdldExvY2FsSXRlbTxUPihrZXk6IHN0cmluZyk6IFQge1xyXG4gICAgaWYgKHRoaXMuTG9jYWxTdG9yZVtrZXldKVxyXG4gICAgICByZXR1cm4gPFQ+dGhpcy5Mb2NhbFN0b3JlW2tleV07XHJcbiAgICBlbHNlXHJcbiAgICAgIHJldHVybiBudWxsO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogRWxpbWluYSB1biBvZ2dldHRvIGRhbGxhIGNhY2hlIHNpYSBsb2NhbGUgY2hlIHBlcnNpc3RpdGFcclxuICAgKiBcclxuICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkYSByaW11b3ZlcmVcclxuICAgKi9cclxuICBwdWJsaWMgcmVtb3ZlSXRlbShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgaWYgKHRoaXMuTG9jYWxTdG9yZVtrZXldKVxyXG4gICAgICBkZWxldGUgdGhpcy5Mb2NhbFN0b3JlW2tleV07XHJcblxyXG4gICAgcmV0dXJuIHRoaXMucGVyc2lzdG9yLnJlbW92ZShrZXkpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmlwdWxpc2NlIGxlIGltcG9zdGF6aW9uaSBsb2NhbGkgZSBsZSBpbXBvc3Rhemlvbmkgc2FsdmF0ZSBkYWwgcGVyc2lzdG9yXHJcbiAgICovXHJcbiAgcHVibGljIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgLy8gUHVsaXNjbyBsYSBjYWNoZSBsb2NhbGVcclxuICAgIHRoaXMuTG9jYWxTdG9yZSA9IHt9O1xyXG4gICAgLy8gXCJDb21taXR0b1wiIGxlIG1vZGlmaWNoZVxyXG4gICAgcmV0dXJuIHRoaXMucGVyc2lzdG9yLmNsZWFyKCk7XHJcbiAgfVxyXG59Il19
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { BaseService } from './base/base.service';
|
|
4
|
-
// Modelli
|
|
5
|
-
import { PREF_FULL_RETRIEVE_AT_START } from './../tokens';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../persistor/base/CachePersistor";
|
|
8
|
-
/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
|
|
9
|
-
export class CacheService extends BaseService {
|
|
10
|
-
/** @ignore Costruttore */
|
|
11
|
-
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
12
|
-
super(persistor, PREF_FULL_RETRIEVE_AT_START);
|
|
13
|
-
}
|
|
14
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CacheService, deps: [{ token: i1.CachePersistor }, { token: PREF_FULL_RETRIEVE_AT_START, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CacheService });
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CacheService, decorators: [{
|
|
18
|
-
type: Injectable
|
|
19
|
-
}], ctorParameters: () => [{ type: i1.CachePersistor }, { type: undefined, decorators: [{
|
|
20
|
-
type: Optional
|
|
21
|
-
}, {
|
|
22
|
-
type: Inject,
|
|
23
|
-
args: [PREF_FULL_RETRIEVE_AT_START]
|
|
24
|
-
}] }] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZWZlcmVuY2VzL3NyYy9saWIvc2VydmljZXMvY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFHMUQsc0dBQXNHO0FBRXRHLE1BQU0sT0FBTyxZQUFhLFNBQVEsV0FBVztJQUUzQywwQkFBMEI7SUFDMUIsWUFBWSxTQUF5QixFQUFtRCwyQkFBb0M7UUFDMUgsS0FBSyxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7d0dBTFUsWUFBWSxnREFHb0MsMkJBQTJCOzRHQUgzRSxZQUFZOzs0RkFBWixZQUFZO2tCQUR4QixVQUFVOzswQkFJK0IsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UvYmFzZS5zZXJ2aWNlJztcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgUFJFRl9GVUxMX1JFVFJJRVZFX0FUX1NUQVJUIH0gZnJvbSAnLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBDYWNoZVBlcnNpc3RvciB9IGZyb20gJy4uL3BlcnNpc3Rvci9iYXNlL0NhY2hlUGVyc2lzdG9yJztcclxuXHJcbi8qKiBTZXJ2aWNlIGNoZSBzaSBvY2N1cGEgZGkgc2FsdmFyZSBlIHJlY3VwZXJhcmUgbGUgcHJlZmVyZW56ZSB1dGVudGUgcmlzcGV0dG8gYWxsZSBjaGlhdmkgc2FsdmF0ZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYWNoZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblxyXG4gIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgY29uc3RydWN0b3IocGVyc2lzdG9yOiBDYWNoZVBlcnNpc3RvciwgQE9wdGlvbmFsKCkgQEluamVjdChQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpIFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVDogYm9vbGVhbikge1xyXG4gICAgc3VwZXIocGVyc2lzdG9yLCBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,25 +0,0 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
3
|
-
import { BaseService } from './base/base.service';
|
|
4
|
-
// Modelli
|
|
5
|
-
import { PREF_FULL_RETRIEVE_AT_START } from './../tokens';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
import * as i1 from "../persistor/base/PreferencesPersistor";
|
|
8
|
-
/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
|
|
9
|
-
export class PreferencesService extends BaseService {
|
|
10
|
-
/** @ignore Costruttore */
|
|
11
|
-
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
12
|
-
super(persistor, PREF_FULL_RETRIEVE_AT_START);
|
|
13
|
-
}
|
|
14
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreferencesService, deps: [{ token: i1.PreferencesPersistor }, { token: PREF_FULL_RETRIEVE_AT_START, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
15
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreferencesService });
|
|
16
|
-
}
|
|
17
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PreferencesService, decorators: [{
|
|
18
|
-
type: Injectable
|
|
19
|
-
}], ctorParameters: () => [{ type: i1.PreferencesPersistor }, { type: undefined, decorators: [{
|
|
20
|
-
type: Optional
|
|
21
|
-
}, {
|
|
22
|
-
type: Inject,
|
|
23
|
-
args: [PREF_FULL_RETRIEVE_AT_START]
|
|
24
|
-
}] }] });
|
|
25
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZWZlcmVuY2VzL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDOzs7QUFHMUQsc0dBQXNHO0FBRXRHLE1BQU0sT0FBTyxrQkFBbUIsU0FBUSxXQUFXO0lBRWpELDBCQUEwQjtJQUMxQixZQUFZLFNBQStCLEVBQW1ELDJCQUFvQztRQUNoSSxLQUFLLENBQUMsU0FBUyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDaEQsQ0FBQzt3R0FMVSxrQkFBa0Isc0RBR29DLDJCQUEyQjs0R0FIakYsa0JBQWtCOzs0RkFBbEIsa0JBQWtCO2tCQUQ5QixVQUFVOzswQkFJcUMsUUFBUTs7MEJBQUksTUFBTTsyQkFBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UvYmFzZS5zZXJ2aWNlJztcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgUFJFRl9GVUxMX1JFVFJJRVZFX0FUX1NUQVJUIH0gZnJvbSAnLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1BlcnNpc3RvciB9IGZyb20gJy4uL3BlcnNpc3Rvci9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yJztcclxuXHJcbi8qKiBTZXJ2aWNlIGNoZSBzaSBvY2N1cGEgZGkgc2FsdmFyZSBlIHJlY3VwZXJhcmUgbGUgcHJlZmVyZW56ZSB1dGVudGUgcmlzcGV0dG8gYWxsZSBjaGlhdmkgc2FsdmF0ZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblxyXG4gIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgY29uc3RydWN0b3IocGVyc2lzdG9yOiBQcmVmZXJlbmNlc1BlcnNpc3RvciwgQE9wdGlvbmFsKCkgQEluamVjdChQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpIFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVDogYm9vbGVhbikge1xyXG4gICAgc3VwZXIocGVyc2lzdG9yLCBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -1,6 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
|
|
3
|
-
*/
|
|
4
|
-
export class BaseSessionRetriever {
|
|
5
|
-
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQmFzZVNlc3Npb25SZXRyaWV2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUNILE1BQU0sT0FBZ0Isb0JBQW9CO0NBUXpDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIENsYXNzZSBhc3RyYXR0YSBjaGUgc2kgb2NjdXBhIGRpIHJlY3VwZXJhcmUgbCdJZCBzZXNzaW9uZSB1bml2b2NvIHBlciBhcHBsaWNhemlvbmUgZWQgdXRlbnRlIGNvbGxlZ2F0b1xyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEJhc2VTZXNzaW9uUmV0cmlldmVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgdW4gSUQgc2Vzc2lvbmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gSUQgc2Vzc2lvbmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IGdldFNlc3Npb25LZXkoKTogc3RyaW5nO1xyXG59Il19
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
import { Injectable } from "@angular/core";
|
|
2
|
-
import { BaseSessionRetriever } from "../base/BaseSessionRetriever";
|
|
3
|
-
import * as i0 from "@angular/core";
|
|
4
|
-
/**
|
|
5
|
-
* Implementazione di default per la classe **BaseSessionRetriever**
|
|
6
|
-
*/
|
|
7
|
-
export class DefaultSessionRetriever extends BaseSessionRetriever {
|
|
8
|
-
/**
|
|
9
|
-
* Costruttore
|
|
10
|
-
*
|
|
11
|
-
* @ignore
|
|
12
|
-
*/
|
|
13
|
-
constructor() { super(); }
|
|
14
|
-
/**
|
|
15
|
-
* Ottiene un ID sessione
|
|
16
|
-
*
|
|
17
|
-
* @returns {string} ID sessione
|
|
18
|
-
*/
|
|
19
|
-
getSessionKey() {
|
|
20
|
-
return "DUMMY_SESSION";
|
|
21
|
-
}
|
|
22
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultSessionRetriever, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
23
|
-
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultSessionRetriever });
|
|
24
|
-
}
|
|
25
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DefaultSessionRetriever, decorators: [{
|
|
26
|
-
type: Injectable
|
|
27
|
-
}], ctorParameters: () => [] });
|
|
28
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiRGVmYXVsdFNlc3Npb25SZXRyaWV2ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3Nlc3Npb24vaW1wbGVtZW50YXRpb24vRGVmYXVsdFNlc3Npb25SZXRyaWV2ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7QUFFcEU7O0dBRUc7QUFFSCxNQUFNLE9BQU8sdUJBQXdCLFNBQVEsb0JBQW9CO0lBRTdEOzs7O09BSUc7SUFDSCxnQkFBZ0IsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBRTFCOzs7O09BSUc7SUFDSCxhQUFhO1FBQ1QsT0FBTyxlQUFlLENBQUM7SUFDM0IsQ0FBQzt3R0FoQlEsdUJBQXVCOzRHQUF2Qix1QkFBdUI7OzRGQUF2Qix1QkFBdUI7a0JBRG5DLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgQmFzZVNlc3Npb25SZXRyaWV2ZXIgfSBmcm9tIFwiLi4vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5cclxuLyoqXHJcbiAqIEltcGxlbWVudGF6aW9uZSBkaSBkZWZhdWx0IHBlciBsYSBjbGFzc2UgKipCYXNlU2Vzc2lvblJldHJpZXZlcioqXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBEZWZhdWx0U2Vzc2lvblJldHJpZXZlciBleHRlbmRzIEJhc2VTZXNzaW9uUmV0cmlldmVyIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBpZ25vcmVcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoKSB7IHN1cGVyKCk7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgdW4gSUQgc2Vzc2lvbmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gSUQgc2Vzc2lvbmVcclxuICAgICAqL1xyXG4gICAgZ2V0U2Vzc2lvbktleSgpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBcIkRVTU1ZX1NFU1NJT05cIjtcclxuICAgIH1cclxufSJdfQ==
|
package/esm2022/lib/tokens.mjs
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
import { InjectionToken } from '@angular/core';
|
|
2
|
-
/**
|
|
3
|
-
* Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.
|
|
4
|
-
*
|
|
5
|
-
* Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte
|
|
6
|
-
*/
|
|
7
|
-
export const PREF_FULL_RETRIEVE_AT_START = new InjectionToken('PREF_FULL_RETRIEVE_AT_START');
|
|
8
|
-
/** Modalità di Debug */
|
|
9
|
-
export const PREF_DEBUG_MODE = new InjectionToken('PREF_DEBUG_MODE');
|
|
10
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9rZW5zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlZmVyZW5jZXMvc3JjL2xpYi90b2tlbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUvQzs7OztHQUlHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sMkJBQTJCLEdBQTRCLElBQUksY0FBYyxDQUFVLDZCQUE2QixDQUFDLENBQUM7QUFFL0gsd0JBQXdCO0FBQ3hCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBNEIsSUFBSSxjQUFjLENBQVUsaUJBQWlCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcblxyXG4vKipcclxuICogSW5kaWNhIHNlIHJlY3VwZXJhcmUgYXV0b25vbWFtZW50ZSB0dXR0ZSBsZSBjb25maWd1cmF6aW9uaSBzYWx2YXRlIGFsIGJvb3RzdHJhcCBkZWxsYSBsaWJyZXJpYSBvIHNlIGFzcGV0dGFyZSBsZSByaWNoaWVzdGUgc3BlY2lmaWNoZS5cclxuICogXHJcbiAqIFV0aWxlIHNlIG5vbiB2ZW5nb25vIHNhbHZhdGUgdGFudGUgY29zZSwgcG90cmViYmUgY3JlYXJlIHVuIG1vbWVudG8gZGkgaXJyZXNwb25zaXZpdMOgIHNlIGxlIGluZm8gZGEgcmVjdXBlcmFyZSBzb25vIG1vbHRlXHJcbiAqL1xyXG5leHBvcnQgY29uc3QgUFJFRl9GVUxMX1JFVFJJRVZFX0FUX1NUQVJUOiBJbmplY3Rpb25Ub2tlbjxib29sZWFuPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxib29sZWFuPignUFJFRl9GVUxMX1JFVFJJRVZFX0FUX1NUQVJUJyk7XHJcblxyXG4vKiogTW9kYWxpdMOgIGRpIERlYnVnICovXHJcbmV4cG9ydCBjb25zdCBQUkVGX0RFQlVHX01PREU6IEluamVjdGlvblRva2VuPGJvb2xlYW4+ID0gbmV3IEluamVjdGlvblRva2VuPGJvb2xlYW4+KCdQUkVGX0RFQlVHX01PREUnKTsiXX0=
|
package/esm2022/public-api.mjs
DELETED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from './lib/services/cache.service';
|
|
2
|
-
export * from './lib/services/preferences.service';
|
|
3
|
-
export * from './lib/models/PreferencesModuleConfig';
|
|
4
|
-
export * from './lib/tokens';
|
|
5
|
-
export * from './lib/preferences.module';
|
|
6
|
-
export * from './lib/persistor/base/CachePersistor';
|
|
7
|
-
export * from './lib/persistor/base/PreferencesPersistor';
|
|
8
|
-
export * from './lib/session/base/BaseSessionRetriever';
|
|
9
|
-
export * from './lib/persistor/implementation/LocalStorageCachePersistor';
|
|
10
|
-
export * from './lib/persistor/implementation/LocalStoragePreferencesPersistor';
|
|
11
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ByZWZlcmVuY2VzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywyREFBMkQsQ0FBQztBQUMxRSxjQUFjLGlFQUFpRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvc2VydmljZXMvY2FjaGUuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3ByZWZlcmVuY2VzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9tb2RlbHMvUHJlZmVyZW5jZXNNb2R1bGVDb25maWcnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90b2tlbnMnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcmVmZXJlbmNlcy5tb2R1bGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9wZXJzaXN0b3IvYmFzZS9DYWNoZVBlcnNpc3Rvcic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3BlcnNpc3Rvci9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvc2Vzc2lvbi9iYXNlL0Jhc2VTZXNzaW9uUmV0cmlldmVyJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVyc2lzdG9yL2ltcGxlbWVudGF0aW9uL0xvY2FsU3RvcmFnZUNhY2hlUGVyc2lzdG9yJztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVyc2lzdG9yL2ltcGxlbWVudGF0aW9uL0xvY2FsU3RvcmFnZVByZWZlcmVuY2VzUGVyc2lzdG9yJzsiXX0=
|