@esfaenza/preferences 19.2.17 → 20.3.1

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.
@@ -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: "19.2.15", 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.15", ngImport: i0, type: CacheService });
185
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", 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: "20.3.13", ngImport: i0, type: CacheService });
187
187
  }
188
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: CacheService, decorators: [{
188
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", 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: "19.2.15", 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.15", ngImport: i0, type: PreferencesService });
236
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", 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: "20.3.13", ngImport: i0, type: PreferencesService });
238
238
  }
239
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PreferencesService, decorators: [{
239
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", 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: "19.2.15", ngImport: i0, type: DefaultSessionRetriever, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
299
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DefaultSessionRetriever });
298
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: DefaultSessionRetriever, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
299
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: DefaultSessionRetriever });
300
300
  }
301
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: DefaultSessionRetriever, decorators: [{
301
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", 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: "19.2.15", ngImport: i0, type: LocalStorageCachePersistor, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
343
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LocalStorageCachePersistor });
342
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: LocalStorageCachePersistor, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
343
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: LocalStorageCachePersistor });
344
344
  }
345
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LocalStorageCachePersistor, decorators: [{
345
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", 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: "19.2.15", ngImport: i0, type: LocalStoragePreferencesPersistor, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
387
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LocalStoragePreferencesPersistor });
386
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: LocalStoragePreferencesPersistor, deps: [{ token: BaseSessionRetriever }], target: i0.ɵɵFactoryTarget.Injectable });
387
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: LocalStoragePreferencesPersistor });
388
388
  }
389
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: LocalStoragePreferencesPersistor, decorators: [{
389
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", 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: "19.2.15", ngImport: i0, type: PreferencesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
409
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "19.2.15", ngImport: i0, type: PreferencesModule });
410
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PreferencesModule });
408
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: PreferencesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
409
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.13", ngImport: i0, type: PreferencesModule });
410
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.13", ngImport: i0, type: PreferencesModule });
411
411
  }
412
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.15", ngImport: i0, type: PreferencesModule, decorators: [{
412
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.13", 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/index.d.ts CHANGED
@@ -1,5 +1,327 @@
1
+ import { Observable } from 'rxjs';
2
+ import * as i0 from '@angular/core';
3
+ import { Type, InjectionToken, ModuleWithProviders } from '@angular/core';
4
+
1
5
  /**
2
- * Generated bundle index. Do not edit.
6
+ * Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage
3
7
  */
4
- /// <amd-module name="@esfaenza/preferences" />
5
- export * from './public-api';
8
+ interface IBasePersistor {
9
+ persist<T>(key: string, item: T): Observable<boolean>;
10
+ recover<T>(key?: string): Observable<T>;
11
+ recoverAll(): Observable<{
12
+ [index: string]: any;
13
+ }>;
14
+ clear(): Observable<boolean>;
15
+ remove(key: string): Observable<boolean>;
16
+ persistAll(dictionary: {
17
+ [key: string]: string;
18
+ }): Observable<boolean>;
19
+ getKey(key: string): string;
20
+ }
21
+
22
+ interface IBaseStorage {
23
+ setItem<T>(key: string, item: T): Observable<boolean>;
24
+ setLocalItem<T>(key: string, item: T): boolean;
25
+ getItem<T>(key: string, cacheBust: boolean): Observable<T>;
26
+ getLocalItem<T>(key: string): T;
27
+ removeItem(key: string): Observable<boolean>;
28
+ clear(): Observable<boolean>;
29
+ }
30
+
31
+ /**
32
+ * Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate
33
+ */
34
+ declare class BaseService implements IBaseStorage {
35
+ private persistor;
36
+ private PREF_FULL_RETRIEVE_AT_START;
37
+ /** Store in memoria delle preferenze locali che sarà persistito per mezzo della classe che fa le veci del **BasePreferencesPersistor** */
38
+ protected LocalStore: {
39
+ [index: string]: any;
40
+ };
41
+ /** Indica se ho già effettuato il retrieve di tutta la roba salvata */
42
+ private AllRetrieved;
43
+ /**
44
+ * Costruttore
45
+ *
46
+ * @ignore
47
+ */
48
+ constructor(persistor: IBasePersistor, PREF_FULL_RETRIEVE_AT_START: boolean);
49
+ /**
50
+ * Salva un oggetto sia nella cache locale che nel persistor
51
+ *
52
+ * @param {string} key Chiave di persistenza
53
+ * @param {T} item Oggetto da salvare
54
+ */
55
+ setItem<T>(key: string, item: T): Observable<boolean>;
56
+ /**
57
+ * Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione
58
+ *
59
+ * @param {string} key Chiave di persistenza
60
+ * @param {T} item Oggetto da salvare
61
+ */
62
+ setLocalItem<T>(key: string, item: T): boolean;
63
+ /**
64
+ * Salva, per una sessione, una chiave con un valore, viene chiamato automaticamente dal metodo **store** ma dev'essere chiamato manualmente
65
+ * nel caso si utilizzi il metodo **storeLocal**
66
+ *
67
+ * @param {string} key Chiave da storicizzare
68
+ */
69
+ private persist;
70
+ /**
71
+ * Recupera un oggetto in base a una chiave. Permette di accedere alla copia locale o alla copia persistita.
72
+ *
73
+ * @param {string} key Chiave del valore da recuperare
74
+ * @param {boolean} cacheBust Indica se ignorare il valore della cache locale e recuperare l'oggetto dallo store persistito,
75
+ * in caso fosse stato modificato fuori sistema o da un altro sistema
76
+ *
77
+ * @returns {Observable<T>} Oggetto richiesto
78
+ */
79
+ getItem<T>(key: string, cacheBust?: boolean): Observable<T>;
80
+ /**
81
+ * Funzione interna che effettivamente recupera le cache
82
+ *
83
+ * @param key Chiave da recuperare
84
+ * @param cacheBust Indica se raccogliere dagli elementi locali o se prendere una copia nuova dell'oggetto dalla cache persistita
85
+ *
86
+ * @returns Observable che alla sottoscrizione restituisce l'oggetto richiesto
87
+ */
88
+ private doGetItem;
89
+ /**
90
+ * Recupera un oggetto in base a una chiave. Permette di accedere solo alla copia locale
91
+ *
92
+ * @param {string} key Chiave del valore da recuperare
93
+ *
94
+ * @returns {T} Oggetto richiesto
95
+ */
96
+ getLocalItem<T>(key: string): T;
97
+ /**
98
+ * Elimina un oggetto dalla cache sia locale che persistita
99
+ *
100
+ * @param {string} key Chiave da rimuovere
101
+ */
102
+ removeItem(key: string): Observable<boolean>;
103
+ /**
104
+ * Ripulisce le impostazioni locali e le impostazioni salvate dal persistor
105
+ */
106
+ clear(): Observable<boolean>;
107
+ }
108
+
109
+ /**
110
+ * Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
111
+ */
112
+ declare abstract class BaseSessionRetriever {
113
+ /**
114
+ * Ottiene un ID sessione
115
+ *
116
+ * @returns {string} ID sessione
117
+ */
118
+ abstract getSessionKey(): string;
119
+ }
120
+
121
+ /** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */
122
+ declare abstract class CachePersistor implements IBasePersistor {
123
+ protected session: BaseSessionRetriever;
124
+ /** @ignore Costruttore */
125
+ constructor(session: BaseSessionRetriever);
126
+ /**
127
+ * Salva, per una sessione, una chiave con un valore
128
+ *
129
+ * @param {string} key Chiave da storicizzare
130
+ */
131
+ abstract persist<T>(key: string, item: T): Observable<boolean>;
132
+ /**
133
+ * Recupera, per una sessione, il valore assegnato ad una chiave
134
+ *
135
+ * @param {string} key Chiave da recuperare
136
+ *
137
+ * @returns {Observable<T>} Valore salvato per la chiave **key**
138
+ */
139
+ abstract recover<T>(key?: string): Observable<T>;
140
+ /**
141
+ * Per una sessione recupera tutte le coppie Chiave - Valore salvate
142
+ *
143
+ * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione
144
+ */
145
+ abstract recoverAll(): Observable<{
146
+ [index: string]: any;
147
+ }>;
148
+ /**
149
+ * Ripulisce le preference salvate relative ad una sessione
150
+ */
151
+ abstract clear(): Observable<boolean>;
152
+ /**
153
+ * Elimina un oggetto dalla cache persistita
154
+ *
155
+ * @param {string} key Chiave da rimuovere
156
+ */
157
+ abstract remove(key: string): Observable<boolean>;
158
+ /**
159
+ * Effettua il **persist** massivo di una lista di Chiave - Valore
160
+ *
161
+ * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
162
+ */
163
+ persistAll(dictionary: {
164
+ [key: string]: string;
165
+ }): Observable<boolean>;
166
+ /**
167
+ * Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
168
+ *
169
+ * @param {string} key Chiave da storicizzare
170
+ *
171
+ * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
172
+ */
173
+ getKey(key: string): string;
174
+ }
175
+
176
+ /** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
177
+ declare class CacheService extends BaseService {
178
+ /** @ignore Costruttore */
179
+ constructor(persistor: CachePersistor, PREF_FULL_RETRIEVE_AT_START: boolean);
180
+ static ɵfac: i0.ɵɵFactoryDeclaration<CacheService, [null, { optional: true; }]>;
181
+ static ɵprov: i0.ɵɵInjectableDeclaration<CacheService>;
182
+ }
183
+
184
+ /**
185
+ * Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage
186
+ */
187
+ declare abstract class PreferencesPersistor implements IBasePersistor {
188
+ protected session: BaseSessionRetriever;
189
+ /** @ignore Costruttore */
190
+ constructor(session: BaseSessionRetriever);
191
+ /**
192
+ * Salva, per una sessione, una chiave con un valore
193
+ *
194
+ * @param {string} key Chiave da storicizzare
195
+ */
196
+ abstract persist<T>(key: string, item: T): Observable<boolean>;
197
+ /**
198
+ * Recupera, per una sessione, il valore assegnato ad una chiave
199
+ *
200
+ * @param {string} key Chiave da recuperare
201
+ *
202
+ * @returns {Observable<T>} Valore salvato per la chiave **key**
203
+ */
204
+ abstract recover<T>(key?: string): Observable<T>;
205
+ /**
206
+ * Per una sessione recupera tutte le coppie Chiave - Valore salvate
207
+ *
208
+ * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione
209
+ */
210
+ abstract recoverAll(): Observable<{
211
+ [index: string]: any;
212
+ }>;
213
+ /**
214
+ * Ripulisce le preference salvate relative ad una sessione
215
+ */
216
+ abstract clear(): Observable<boolean>;
217
+ /**
218
+ * Elimina un oggetto dalla cache persistita
219
+ *
220
+ * @param {string} key Chiave da rimuovere
221
+ */
222
+ abstract remove(key: string): Observable<boolean>;
223
+ /**
224
+ * Effettua il **persist** massivo di una lista di Chiave - Valore
225
+ *
226
+ * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
227
+ */
228
+ persistAll(dictionary: {
229
+ [key: string]: string;
230
+ }): Observable<boolean>;
231
+ /**
232
+ * Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
233
+ *
234
+ * @param {string} key Chiave da storicizzare
235
+ *
236
+ * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
237
+ */
238
+ getKey(key: string): string;
239
+ }
240
+
241
+ /** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
242
+ declare class PreferencesService extends BaseService {
243
+ /** @ignore Costruttore */
244
+ constructor(persistor: PreferencesPersistor, PREF_FULL_RETRIEVE_AT_START: boolean);
245
+ static ɵfac: i0.ɵɵFactoryDeclaration<PreferencesService, [null, { optional: true; }]>;
246
+ static ɵprov: i0.ɵɵInjectableDeclaration<PreferencesService>;
247
+ }
248
+
249
+ /**
250
+ * Classe di Configurazione per la libreria
251
+ */
252
+ declare class PreferencesModuleConfig {
253
+ /**
254
+ * Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.
255
+ *
256
+ * Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte
257
+ */
258
+ retrieveAllAtStart?: boolean;
259
+ /**
260
+ * Classe che si deve occupare dello store "Definitivo" delle preferenze. Di default viene proposto uno store lato localStorage ma si può facilmente
261
+ * fornire uno storage che porta le informazioni lato Database
262
+ */
263
+ preferencePersistor?: Type<PreferencesPersistor>;
264
+ /**
265
+ * Classe che si deve occupare dello store "Definitivo" delle cache. Di default viene proposto uno store lato localStorage ma si può facilmente
266
+ * fornire uno storage che porta le informazioni lato Database
267
+ */
268
+ cachePersistor?: Type<CachePersistor>;
269
+ /** Classe che si deve occupare per generare un ID univoco di sessione in base al quale verranno salvate le preferenze */
270
+ sessionRetriever?: Type<BaseSessionRetriever>;
271
+ /** Attiva la modalità di debug per l'esposizione di messaggi significativi */
272
+ debugMode?: boolean;
273
+ }
274
+
275
+ /**
276
+ * Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.
277
+ *
278
+ * Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte
279
+ */
280
+ declare const PREF_FULL_RETRIEVE_AT_START: InjectionToken<boolean>;
281
+ /** Modalità di Debug */
282
+ declare const PREF_DEBUG_MODE: InjectionToken<boolean>;
283
+
284
+ declare class PreferencesModule {
285
+ static forRoot(config?: PreferencesModuleConfig): ModuleWithProviders<PreferencesModule>;
286
+ static ɵfac: i0.ɵɵFactoryDeclaration<PreferencesModule, never>;
287
+ static ɵmod: i0.ɵɵNgModuleDeclaration<PreferencesModule, never, never, never>;
288
+ static ɵinj: i0.ɵɵInjectorDeclaration<PreferencesModule>;
289
+ }
290
+
291
+ declare class LocalStorageCachePersistor extends CachePersistor implements IBasePersistor {
292
+ constructor(session: BaseSessionRetriever);
293
+ /** @ignore Vedi classe base */
294
+ persist<T>(key: string, item: T): Observable<boolean>;
295
+ /** @ignore Vedi classe base */
296
+ recover<T>(key: string): Observable<T>;
297
+ /** @ignore Vedi classe base */
298
+ remove(key: string): Observable<boolean>;
299
+ /** @ignore Vedi classe base */
300
+ recoverAll(): Observable<{
301
+ [index: string]: any;
302
+ }>;
303
+ /** @ignore Vedi classe base */
304
+ clear(): Observable<boolean>;
305
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageCachePersistor, never>;
306
+ static ɵprov: i0.ɵɵInjectableDeclaration<LocalStorageCachePersistor>;
307
+ }
308
+
309
+ declare class LocalStoragePreferencesPersistor extends PreferencesPersistor implements IBasePersistor {
310
+ constructor(session: BaseSessionRetriever);
311
+ /** @ignore Vedi classe base */
312
+ persist<T>(key: string, item: T): Observable<boolean>;
313
+ /** @ignore Vedi classe base */
314
+ recover<T>(key: string): Observable<T>;
315
+ /** @ignore Vedi classe base */
316
+ remove(key: string): Observable<boolean>;
317
+ /** @ignore Vedi classe base */
318
+ recoverAll(): Observable<{
319
+ [index: string]: any;
320
+ }>;
321
+ /** @ignore Vedi classe base */
322
+ clear(): Observable<boolean>;
323
+ static ɵfac: i0.ɵɵFactoryDeclaration<LocalStoragePreferencesPersistor, never>;
324
+ static ɵprov: i0.ɵɵInjectableDeclaration<LocalStoragePreferencesPersistor>;
325
+ }
326
+
327
+ export { BaseSessionRetriever, CachePersistor, CacheService, LocalStorageCachePersistor, LocalStoragePreferencesPersistor, PREF_DEBUG_MODE, PREF_FULL_RETRIEVE_AT_START, PreferencesModule, PreferencesModuleConfig, PreferencesPersistor, PreferencesService };
package/package.json CHANGED
@@ -1,12 +1,12 @@
1
1
  {
2
2
  "name": "@esfaenza/preferences",
3
- "version": "19.2.17",
3
+ "version": "20.3.1",
4
4
  "dependencies": {
5
5
  "tslib": "^2.0.0"
6
6
  },
7
7
  "peerDependencies": {
8
- "@angular/common": "^19.2.15",
9
- "@angular/core": "^19.2.15"
8
+ "@angular/common": "^20.3.13",
9
+ "@angular/core": "^20.3.13"
10
10
  },
11
11
  "module": "fesm2022/esfaenza-preferences.mjs",
12
12
  "typings": "index.d.ts",
@@ -1,29 +0,0 @@
1
- import { Type } from "@angular/core";
2
- import { CachePersistor } from "../persistor/base/CachePersistor";
3
- import { PreferencesPersistor } from "../persistor/base/PreferencesPersistor";
4
- import { BaseSessionRetriever } from "../session/base/BaseSessionRetriever";
5
- /**
6
- * Classe di Configurazione per la libreria
7
- */
8
- export declare class PreferencesModuleConfig {
9
- /**
10
- * Indica se recuperare autonomamente tutte le configurazioni salvate al bootstrap della libreria o se aspettare le richieste specifiche.
11
- *
12
- * Utile se non vengono salvate tante cose, potrebbe creare un momento di irresponsività se le info da recuperare sono molte
13
- */
14
- retrieveAllAtStart?: boolean;
15
- /**
16
- * Classe che si deve occupare dello store "Definitivo" delle preferenze. Di default viene proposto uno store lato localStorage ma si può facilmente
17
- * fornire uno storage che porta le informazioni lato Database
18
- */
19
- preferencePersistor?: Type<PreferencesPersistor>;
20
- /**
21
- * Classe che si deve occupare dello store "Definitivo" delle cache. Di default viene proposto uno store lato localStorage ma si può facilmente
22
- * fornire uno storage che porta le informazioni lato Database
23
- */
24
- cachePersistor?: Type<CachePersistor>;
25
- /** Classe che si deve occupare per generare un ID univoco di sessione in base al quale verranno salvate le preferenze */
26
- sessionRetriever?: Type<BaseSessionRetriever>;
27
- /** Attiva la modalità di debug per l'esposizione di messaggi significativi */
28
- debugMode?: boolean;
29
- }
@@ -1,57 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { BaseSessionRetriever } from "../../session/base/BaseSessionRetriever";
3
- import { IBasePersistor } from "./IBasePersistor";
4
- /** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */
5
- export declare abstract class CachePersistor implements IBasePersistor {
6
- protected session: BaseSessionRetriever;
7
- /** @ignore Costruttore */
8
- constructor(session: BaseSessionRetriever);
9
- /**
10
- * Salva, per una sessione, una chiave con un valore
11
- *
12
- * @param {string} key Chiave da storicizzare
13
- */
14
- abstract persist<T>(key: string, item: T): Observable<boolean>;
15
- /**
16
- * Recupera, per una sessione, il valore assegnato ad una chiave
17
- *
18
- * @param {string} key Chiave da recuperare
19
- *
20
- * @returns {Observable<T>} Valore salvato per la chiave **key**
21
- */
22
- abstract recover<T>(key?: string): Observable<T>;
23
- /**
24
- * Per una sessione recupera tutte le coppie Chiave - Valore salvate
25
- *
26
- * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione
27
- */
28
- abstract recoverAll(): Observable<{
29
- [index: string]: any;
30
- }>;
31
- /**
32
- * Ripulisce le preference salvate relative ad una sessione
33
- */
34
- abstract clear(): Observable<boolean>;
35
- /**
36
- * Elimina un oggetto dalla cache persistita
37
- *
38
- * @param {string} key Chiave da rimuovere
39
- */
40
- abstract remove(key: string): Observable<boolean>;
41
- /**
42
- * Effettua il **persist** massivo di una lista di Chiave - Valore
43
- *
44
- * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
45
- */
46
- persistAll(dictionary: {
47
- [key: string]: string;
48
- }): Observable<boolean>;
49
- /**
50
- * Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
51
- *
52
- * @param {string} key Chiave da storicizzare
53
- *
54
- * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
55
- */
56
- getKey(key: string): string;
57
- }
@@ -1,17 +0,0 @@
1
- import { Observable } from "rxjs";
2
- /**
3
- * Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage
4
- */
5
- export interface IBasePersistor {
6
- persist<T>(key: string, item: T): Observable<boolean>;
7
- recover<T>(key?: string): Observable<T>;
8
- recoverAll(): Observable<{
9
- [index: string]: any;
10
- }>;
11
- clear(): Observable<boolean>;
12
- remove(key: string): Observable<boolean>;
13
- persistAll(dictionary: {
14
- [key: string]: string;
15
- }): Observable<boolean>;
16
- getKey(key: string): string;
17
- }
@@ -1,59 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { BaseSessionRetriever } from "../../session/base/BaseSessionRetriever";
3
- import { IBasePersistor } from "./IBasePersistor";
4
- /**
5
- * Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage
6
- */
7
- export declare abstract class PreferencesPersistor implements IBasePersistor {
8
- protected session: BaseSessionRetriever;
9
- /** @ignore Costruttore */
10
- constructor(session: BaseSessionRetriever);
11
- /**
12
- * Salva, per una sessione, una chiave con un valore
13
- *
14
- * @param {string} key Chiave da storicizzare
15
- */
16
- abstract persist<T>(key: string, item: T): Observable<boolean>;
17
- /**
18
- * Recupera, per una sessione, il valore assegnato ad una chiave
19
- *
20
- * @param {string} key Chiave da recuperare
21
- *
22
- * @returns {Observable<T>} Valore salvato per la chiave **key**
23
- */
24
- abstract recover<T>(key?: string): Observable<T>;
25
- /**
26
- * Per una sessione recupera tutte le coppie Chiave - Valore salvate
27
- *
28
- * @returns {Observable<{ [index: string]: any }>} Dizionario con tutte le preference salvate per la sessione
29
- */
30
- abstract recoverAll(): Observable<{
31
- [index: string]: any;
32
- }>;
33
- /**
34
- * Ripulisce le preference salvate relative ad una sessione
35
- */
36
- abstract clear(): Observable<boolean>;
37
- /**
38
- * Elimina un oggetto dalla cache persistita
39
- *
40
- * @param {string} key Chiave da rimuovere
41
- */
42
- abstract remove(key: string): Observable<boolean>;
43
- /**
44
- * Effettua il **persist** massivo di una lista di Chiave - Valore
45
- *
46
- * @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
47
- */
48
- persistAll(dictionary: {
49
- [key: string]: string;
50
- }): Observable<boolean>;
51
- /**
52
- * Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
53
- *
54
- * @param {string} key Chiave da storicizzare
55
- *
56
- * @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
57
- */
58
- getKey(key: string): string;
59
- }
@@ -1,22 +0,0 @@
1
- import { BaseSessionRetriever } from "../../session/base/BaseSessionRetriever";
2
- import { CachePersistor } from "../base/CachePersistor";
3
- import { IBasePersistor } from "../base/IBasePersistor";
4
- import { Observable } from "rxjs";
5
- import * as i0 from "@angular/core";
6
- export declare class LocalStorageCachePersistor extends CachePersistor implements IBasePersistor {
7
- constructor(session: BaseSessionRetriever);
8
- /** @ignore Vedi classe base */
9
- persist<T>(key: string, item: T): Observable<boolean>;
10
- /** @ignore Vedi classe base */
11
- recover<T>(key: string): Observable<T>;
12
- /** @ignore Vedi classe base */
13
- remove(key: string): Observable<boolean>;
14
- /** @ignore Vedi classe base */
15
- recoverAll(): Observable<{
16
- [index: string]: any;
17
- }>;
18
- /** @ignore Vedi classe base */
19
- clear(): Observable<boolean>;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<LocalStorageCachePersistor, never>;
21
- static ɵprov: i0.ɵɵInjectableDeclaration<LocalStorageCachePersistor>;
22
- }
@@ -1,22 +0,0 @@
1
- import { Observable } from "rxjs";
2
- import { BaseSessionRetriever } from "../../session/base/BaseSessionRetriever";
3
- import { PreferencesPersistor } from "../base/PreferencesPersistor";
4
- import { IBasePersistor } from "../base/IBasePersistor";
5
- import * as i0 from "@angular/core";
6
- export declare class LocalStoragePreferencesPersistor extends PreferencesPersistor implements IBasePersistor {
7
- constructor(session: BaseSessionRetriever);
8
- /** @ignore Vedi classe base */
9
- persist<T>(key: string, item: T): Observable<boolean>;
10
- /** @ignore Vedi classe base */
11
- recover<T>(key: string): Observable<T>;
12
- /** @ignore Vedi classe base */
13
- remove(key: string): Observable<boolean>;
14
- /** @ignore Vedi classe base */
15
- recoverAll(): Observable<{
16
- [index: string]: any;
17
- }>;
18
- /** @ignore Vedi classe base */
19
- clear(): Observable<boolean>;
20
- static ɵfac: i0.ɵɵFactoryDeclaration<LocalStoragePreferencesPersistor, never>;
21
- static ɵprov: i0.ɵɵInjectableDeclaration<LocalStoragePreferencesPersistor>;
22
- }
@@ -1,9 +0,0 @@
1
- import { ModuleWithProviders } from '@angular/core';
2
- import { PreferencesModuleConfig } from './models/PreferencesModuleConfig';
3
- import * as i0 from "@angular/core";
4
- export declare class PreferencesModule {
5
- static forRoot(config?: PreferencesModuleConfig): ModuleWithProviders<PreferencesModule>;
6
- static ɵfac: i0.ɵɵFactoryDeclaration<PreferencesModule, never>;
7
- static ɵmod: i0.ɵɵNgModuleDeclaration<PreferencesModule, never, never, never>;
8
- static ɵinj: i0.ɵɵInjectorDeclaration<PreferencesModule>;
9
- }
@@ -1,9 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- export interface IBaseStorage {
3
- setItem<T>(key: string, item: T): Observable<boolean>;
4
- setLocalItem<T>(key: string, item: T): boolean;
5
- getItem<T>(key: string, cacheBust: boolean): Observable<T>;
6
- getLocalItem<T>(key: string): T;
7
- removeItem(key: string): Observable<boolean>;
8
- clear(): Observable<boolean>;
9
- }
@@ -1,80 +0,0 @@
1
- import { Observable } from 'rxjs';
2
- import { IBasePersistor } from '../../persistor/base/IBasePersistor';
3
- import { IBaseStorage } from './IBaseStorage';
4
- /**
5
- * Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate
6
- */
7
- export declare class BaseService implements IBaseStorage {
8
- private persistor;
9
- private PREF_FULL_RETRIEVE_AT_START;
10
- /** Store in memoria delle preferenze locali che sarà persistito per mezzo della classe che fa le veci del **BasePreferencesPersistor** */
11
- protected LocalStore: {
12
- [index: string]: any;
13
- };
14
- /** Indica se ho già effettuato il retrieve di tutta la roba salvata */
15
- private AllRetrieved;
16
- /**
17
- * Costruttore
18
- *
19
- * @ignore
20
- */
21
- constructor(persistor: IBasePersistor, PREF_FULL_RETRIEVE_AT_START: boolean);
22
- /**
23
- * Salva un oggetto sia nella cache locale che nel persistor
24
- *
25
- * @param {string} key Chiave di persistenza
26
- * @param {T} item Oggetto da salvare
27
- */
28
- setItem<T>(key: string, item: T): Observable<boolean>;
29
- /**
30
- * Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione
31
- *
32
- * @param {string} key Chiave di persistenza
33
- * @param {T} item Oggetto da salvare
34
- */
35
- setLocalItem<T>(key: string, item: T): boolean;
36
- /**
37
- * Salva, per una sessione, una chiave con un valore, viene chiamato automaticamente dal metodo **store** ma dev'essere chiamato manualmente
38
- * nel caso si utilizzi il metodo **storeLocal**
39
- *
40
- * @param {string} key Chiave da storicizzare
41
- */
42
- private persist;
43
- /**
44
- * Recupera un oggetto in base a una chiave. Permette di accedere alla copia locale o alla copia persistita.
45
- *
46
- * @param {string} key Chiave del valore da recuperare
47
- * @param {boolean} cacheBust Indica se ignorare il valore della cache locale e recuperare l'oggetto dallo store persistito,
48
- * in caso fosse stato modificato fuori sistema o da un altro sistema
49
- *
50
- * @returns {Observable<T>} Oggetto richiesto
51
- */
52
- getItem<T>(key: string, cacheBust?: boolean): Observable<T>;
53
- /**
54
- * Funzione interna che effettivamente recupera le cache
55
- *
56
- * @param key Chiave da recuperare
57
- * @param cacheBust Indica se raccogliere dagli elementi locali o se prendere una copia nuova dell'oggetto dalla cache persistita
58
- *
59
- * @returns Observable che alla sottoscrizione restituisce l'oggetto richiesto
60
- */
61
- private doGetItem;
62
- /**
63
- * Recupera un oggetto in base a una chiave. Permette di accedere solo alla copia locale
64
- *
65
- * @param {string} key Chiave del valore da recuperare
66
- *
67
- * @returns {T} Oggetto richiesto
68
- */
69
- getLocalItem<T>(key: string): T;
70
- /**
71
- * Elimina un oggetto dalla cache sia locale che persistita
72
- *
73
- * @param {string} key Chiave da rimuovere
74
- */
75
- removeItem(key: string): Observable<boolean>;
76
- /**
77
- * Ripulisce le impostazioni locali e le impostazioni salvate dal persistor
78
- */
79
- clear(): Observable<boolean>;
80
- }
@@ -1,10 +0,0 @@
1
- import { BaseService } from './base/base.service';
2
- import { CachePersistor } from '../persistor/base/CachePersistor';
3
- import * as i0 from "@angular/core";
4
- /** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
5
- export declare class CacheService extends BaseService {
6
- /** @ignore Costruttore */
7
- constructor(persistor: CachePersistor, PREF_FULL_RETRIEVE_AT_START: boolean);
8
- static ɵfac: i0.ɵɵFactoryDeclaration<CacheService, [null, { optional: true; }]>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<CacheService>;
10
- }
@@ -1,10 +0,0 @@
1
- import { BaseService } from './base/base.service';
2
- import { PreferencesPersistor } from '../persistor/base/PreferencesPersistor';
3
- import * as i0 from "@angular/core";
4
- /** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
5
- export declare class PreferencesService extends BaseService {
6
- /** @ignore Costruttore */
7
- constructor(persistor: PreferencesPersistor, PREF_FULL_RETRIEVE_AT_START: boolean);
8
- static ɵfac: i0.ɵɵFactoryDeclaration<PreferencesService, [null, { optional: true; }]>;
9
- static ɵprov: i0.ɵɵInjectableDeclaration<PreferencesService>;
10
- }
@@ -1,11 +0,0 @@
1
- /**
2
- * Classe astratta che si occupa di recuperare l'Id sessione univoco per applicazione ed utente collegato
3
- */
4
- export declare abstract class BaseSessionRetriever {
5
- /**
6
- * Ottiene un ID sessione
7
- *
8
- * @returns {string} ID sessione
9
- */
10
- abstract getSessionKey(): string;
11
- }
@@ -1,21 +0,0 @@
1
- import { BaseSessionRetriever } from "../base/BaseSessionRetriever";
2
- import * as i0 from "@angular/core";
3
- /**
4
- * Implementazione di default per la classe **BaseSessionRetriever**
5
- */
6
- export declare class DefaultSessionRetriever extends BaseSessionRetriever {
7
- /**
8
- * Costruttore
9
- *
10
- * @ignore
11
- */
12
- constructor();
13
- /**
14
- * Ottiene un ID sessione
15
- *
16
- * @returns {string} ID sessione
17
- */
18
- getSessionKey(): string;
19
- static ɵfac: i0.ɵɵFactoryDeclaration<DefaultSessionRetriever, never>;
20
- static ɵprov: i0.ɵɵInjectableDeclaration<DefaultSessionRetriever>;
21
- }
package/lib/tokens.d.ts DELETED
@@ -1,9 +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 declare const PREF_FULL_RETRIEVE_AT_START: InjectionToken<boolean>;
8
- /** Modalità di Debug */
9
- export declare const PREF_DEBUG_MODE: InjectionToken<boolean>;
package/public-api.d.ts DELETED
@@ -1,10 +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';