@esfaenza/preferences 11.2.19 → 11.2.21
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/bundles/esfaenza-preferences.umd.js +316 -237
- package/bundles/esfaenza-preferences.umd.js.map +1 -1
- package/bundles/esfaenza-preferences.umd.min.js +2 -2
- package/bundles/esfaenza-preferences.umd.min.js.map +1 -1
- package/esfaenza-preferences.d.ts +5 -2
- package/esfaenza-preferences.metadata.json +1 -1
- package/esm2015/esfaenza-preferences.js +5 -3
- package/esm2015/lib/models/PreferencesModuleConfig.js +1 -1
- package/esm2015/lib/persistor/base/CachePersistor.js +31 -0
- package/esm2015/lib/persistor/base/IBasePersistor.js +2 -0
- package/esm2015/lib/persistor/base/PreferencesPersistor.js +33 -0
- package/esm2015/lib/persistor/implementation/LocalStorageCachePersistor.js +52 -0
- package/esm2015/lib/persistor/implementation/LocalStoragePreferencesPersistor.js +52 -0
- package/esm2015/lib/preferences.module.js +10 -5
- package/esm2015/lib/services/base/IBaseStorage.js +2 -0
- package/esm2015/lib/services/base/base.service.js +114 -0
- package/esm2015/lib/services/cache.service.js +21 -0
- package/esm2015/lib/services/preferences.service.js +21 -0
- package/esm2015/public-api.js +5 -3
- package/fesm2015/esfaenza-preferences.js +190 -115
- package/fesm2015/esfaenza-preferences.js.map +1 -1
- package/lib/models/PreferencesModuleConfig.d.ts +8 -2
- package/lib/persistor/base/CachePersistor.d.ts +57 -0
- package/lib/persistor/base/IBasePersistor.d.ts +17 -0
- package/lib/persistor/base/{BasePreferencesPersistor.d.ts → PreferencesPersistor.d.ts} +7 -10
- package/lib/persistor/implementation/{LocalStoragePersistor.d.ts → LocalStorageCachePersistor.d.ts} +3 -4
- package/lib/persistor/implementation/LocalStoragePreferencesPersistor.d.ts +19 -0
- package/lib/services/base/IBaseStorage.d.ts +9 -0
- package/lib/{preferences.service.d.ts → services/base/base.service.d.ts} +11 -19
- package/lib/services/cache.service.d.ts +7 -0
- package/lib/services/preferences.service.d.ts +7 -0
- package/package.json +1 -1
- package/public-api.d.ts +4 -2
- package/esm2015/lib/persistor/base/BasePreferencesPersistor.js +0 -34
- package/esm2015/lib/persistor/implementation/LocalStoragePersistor.js +0 -52
- package/esm2015/lib/preferences.service.js +0 -147
|
@@ -3,4 +3,4 @@
|
|
|
3
3
|
*/
|
|
4
4
|
export class PreferencesModuleConfig {
|
|
5
5
|
}
|
|
6
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
6
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlZmVyZW5jZXNNb2R1bGVDb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL21vZGVscy9QcmVmZXJlbmNlc01vZHVsZUNvbmZpZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFLQTs7R0FFRztBQUNILE1BQU0sT0FBTyx1QkFBdUI7Q0F5Qm5DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHlwZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IENhY2hlUGVyc2lzdG9yIH0gZnJvbSBcIi4uL3BlcnNpc3Rvci9iYXNlL0NhY2hlUGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7IFByZWZlcmVuY2VzUGVyc2lzdG9yIH0gZnJvbSBcIi4uL3BlcnNpc3Rvci9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7IEJhc2VTZXNzaW9uUmV0cmlldmVyIH0gZnJvbSBcIi4uL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5cclxuLyoqXHJcbiAqIENsYXNzZSBkaSBDb25maWd1cmF6aW9uZSBwZXIgbGEgbGlicmVyaWFcclxuICovXHJcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc01vZHVsZUNvbmZpZ3tcclxuXHJcbiAgICAvKipcclxuICAgICAqIEluZGljYSBzZSByZWN1cGVyYXJlIGF1dG9ub21hbWVudGUgdHV0dGUgbGUgY29uZmlndXJhemlvbmkgc2FsdmF0ZSBhbCBib290c3RyYXAgZGVsbGEgbGlicmVyaWEgbyBzZSBhc3BldHRhcmUgbGUgcmljaGllc3RlIHNwZWNpZmljaGUuXHJcbiAgICAgKiBcclxuICAgICAqIFV0aWxlIHNlIG5vbiB2ZW5nb25vIHNhbHZhdGUgdGFudGUgY29zZSwgcG90cmViYmUgY3JlYXJlIHVuIG1vbWVudG8gZGkgaXJyZXNwb25zaXZpdMOgIHNlIGxlIGluZm8gZGEgcmVjdXBlcmFyZSBzb25vIG1vbHRlXHJcbiAgICAgKi9cclxuICAgIHJldHJpZXZlQWxsQXRTdGFydD86IGJvb2xlYW47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDbGFzc2UgY2hlIHNpIGRldmUgb2NjdXBhcmUgZGVsbG8gc3RvcmUgXCJEZWZpbml0aXZvXCIgZGVsbGUgcHJlZmVyZW56ZS4gRGkgZGVmYXVsdCB2aWVuZSBwcm9wb3N0byB1bm8gc3RvcmUgbGF0byBsb2NhbFN0b3JhZ2UgbWEgc2kgcHXDsiBmYWNpbG1lbnRlIFxyXG4gICAgICogZm9ybmlyZSB1bm8gc3RvcmFnZSBjaGUgcG9ydGEgbGUgaW5mb3JtYXppb25pIGxhdG8gRGF0YWJhc2VcclxuICAgICAqL1xyXG4gICAgcHJlZmVyZW5jZVBlcnNpc3Rvcj86IFR5cGU8UHJlZmVyZW5jZXNQZXJzaXN0b3I+O1xyXG5cclxuICAgICAvKipcclxuICAgICAqIENsYXNzZSBjaGUgc2kgZGV2ZSBvY2N1cGFyZSBkZWxsbyBzdG9yZSBcIkRlZmluaXRpdm9cIiBkZWxsZSBjYWNoZS4gRGkgZGVmYXVsdCB2aWVuZSBwcm9wb3N0byB1bm8gc3RvcmUgbGF0byBsb2NhbFN0b3JhZ2UgbWEgc2kgcHXDsiBmYWNpbG1lbnRlIFxyXG4gICAgICogZm9ybmlyZSB1bm8gc3RvcmFnZSBjaGUgcG9ydGEgbGUgaW5mb3JtYXppb25pIGxhdG8gRGF0YWJhc2VcclxuICAgICAqL1xyXG4gICAgY2FjaGVQZXJzaXN0b3I/OiBUeXBlPENhY2hlUGVyc2lzdG9yPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENsYXNzZSBjaGUgc2kgZGV2ZSBvY2N1cGFyZSBwZXIgZ2VuZXJhcmUgdW4gSUQgdW5pdm9jbyBkaSBzZXNzaW9uZSBpbiBiYXNlIGFsIHF1YWxlIHZlcnJhbm5vIHNhbHZhdGUgbGUgcHJlZmVyZW56ZVxyXG4gICAgICovXHJcbiAgICBzZXNzaW9uUmV0cmlldmVyPzogVHlwZTxCYXNlU2Vzc2lvblJldHJpZXZlcj47XHJcbn0iXX0=
|
|
@@ -0,0 +1,31 @@
|
|
|
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
|
+
/** @ignore Costruttore */
|
|
6
|
+
constructor(session) {
|
|
7
|
+
this.session = session;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Effettua il **persist** massivo di una lista di Chiave - Valore
|
|
11
|
+
*
|
|
12
|
+
* @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
|
|
13
|
+
*/
|
|
14
|
+
persistAll(dictionary) {
|
|
15
|
+
let observables = [];
|
|
16
|
+
for (let key in dictionary)
|
|
17
|
+
observables.push(this.persist(key, dictionary[key]));
|
|
18
|
+
return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));
|
|
19
|
+
}
|
|
20
|
+
/**
|
|
21
|
+
* Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
|
|
22
|
+
*
|
|
23
|
+
* @param {string} key Chiave da storicizzare
|
|
24
|
+
*
|
|
25
|
+
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
26
|
+
*/
|
|
27
|
+
getKey(key) {
|
|
28
|
+
return this.session.getSessionKey() + "§" + key + "§";
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQ2FjaGVQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9iYXNlL0NhY2hlUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDLDRGQUE0RjtBQUM1RixNQUFNLE9BQWdCLGNBQWM7SUFFaEMsMEJBQTBCO0lBQzFCLFlBQXNCLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQUcsQ0FBQztJQXFDdkQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxVQUFxQztRQUNuRCxJQUFJLFdBQVcsR0FBMEIsRUFBRSxDQUFDO1FBQzVDLEtBQUssSUFBSSxHQUFHLElBQUksVUFBVTtZQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekQsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEJhc2VTZXNzaW9uUmV0cmlldmVyIH0gZnJvbSBcIi4uLy4uL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5pbXBvcnQgeyBJQmFzZVBlcnNpc3RvciB9IGZyb20gXCIuL0lCYXNlUGVyc2lzdG9yXCI7XHJcblxyXG4vKiogQ2xhc3NlIGFzdHJhdHRhIGNoZSByYXBwcmVzZW50YSBsbyBzdGF0byBkaSBwZXJzaXN0ZW56YSBmcmEgbGEgbGlicmVyaWEgZSB1bm8gc3RvcmFnZSAqL1xyXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ2FjaGVQZXJzaXN0b3IgaW1wbGVtZW50cyBJQmFzZVBlcnNpc3RvciB7XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgQ29zdHJ1dHRvcmUgKi9cclxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBzZXNzaW9uOiBCYXNlU2Vzc2lvblJldHJpZXZlcikge31cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNhbHZhLCBwZXIgdW5hIHNlc3Npb25lLCB1bmEgY2hpYXZlIGNvbiB1biB2YWxvcmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGEgc3RvcmljaXp6YXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCBwZXJzaXN0PFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIFJlY3VwZXJhLCBwZXIgdW5hIHNlc3Npb25lLCBpbCB2YWxvcmUgYXNzZWduYXRvIGFkIHVuYSBjaGlhdmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGEgcmVjdXBlcmFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTxUPn0gVmFsb3JlIHNhbHZhdG8gcGVyIGxhIGNoaWF2ZSAqKmtleSoqXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCByZWNvdmVyPFQ+KGtleT86IHN0cmluZyk6IE9ic2VydmFibGU8VD47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXIgdW5hIHNlc3Npb25lIHJlY3VwZXJhIHR1dHRlIGxlIGNvcHBpZSBDaGlhdmUgLSBWYWxvcmUgc2FsdmF0ZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7T2JzZXJ2YWJsZTx7IFtpbmRleDogc3RyaW5nXTogYW55IH0+fSBEaXppb25hcmlvIGNvbiB0dXR0ZSBsZSBwcmVmZXJlbmNlIHNhbHZhdGUgcGVyIGxhIHNlc3Npb25lXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhYnN0cmFjdCByZWNvdmVyQWxsKCk6IE9ic2VydmFibGU8eyBbaW5kZXg6IHN0cmluZ106IGFueSB9PjtcclxuXHJcbiAgICAvKipcclxuICAgICAqICBSaXB1bGlzY2UgbGUgcHJlZmVyZW5jZSBzYWx2YXRlIHJlbGF0aXZlIGFkIHVuYSBzZXNzaW9uZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgY2xlYXIoKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVsaW1pbmEgdW4gb2dnZXR0byBkYWxsYSBjYWNoZSBwZXJzaXN0aXRhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRhIHJpbXVvdmVyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVtb3ZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIEVmZmV0dHVhIGlsICoqcGVyc2lzdCoqIG1hc3Npdm8gZGkgdW5hIGxpc3RhIGRpIENoaWF2ZSAtIFZhbG9yZVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3sgW2tleTogc3RyaW5nXTogc3RyaW5nIH19IGRpY3Rpb25hcnkgRGl6aW9uYXJpbyAobGlzdGEgZGkgQ2hpYXZlIC0gVmFsb3JlKSBkYSBwZXJzaXN0ZXJlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBwZXJzaXN0QWxsKGRpY3Rpb25hcnk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBsZXQgb2JzZXJ2YWJsZXM6IE9ic2VydmFibGU8Ym9vbGVhbj5bXSA9IFtdO1xyXG4gICAgICAgIGZvciAobGV0IGtleSBpbiBkaWN0aW9uYXJ5KVxyXG4gICAgICAgICAgICBvYnNlcnZhYmxlcy5wdXNoKHRoaXMucGVyc2lzdChrZXksIGRpY3Rpb25hcnlba2V5XSkpO1xyXG5cclxuICAgICAgICByZXR1cm4gZm9ya0pvaW4ob2JzZXJ2YWJsZXMpLnBpcGUobWFwKHJlcyA9PiByZXMucmVkdWNlKChhY2MsIHZhbCkgPT4gYWNjICYmIHZhbCwgdHJ1ZSkpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIE90dGllbmUgbGEgY2hpYXZlIFwiUmVhbGVcIiBkYSB1dGlsaXp6YXJlIHBlciBsYSBwZXJzaXN0ZW56YSBkaSB1bmEgY2hpYXZlIGdlbmVyaWNhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRhIHN0b3JpY2l6emFyZVxyXG4gICAgICogXHJcbiAgICAgKiBAcmV0dXJucyB7c3RyaW5nfSBVbmlvbmUgZnJhIGwnaWRlbnRpZmljYXRpdm8gZGVsbGEgc2Vzc2lvbmUgZSBsYSBjaGlhdmUgc3BlY2lmaWNhdGFcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEtleShrZXk6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCkgKyBcIsKnXCIgKyBrZXkgKyBcIsKnXCI7XHJcbiAgICB9XHJcbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUJhc2VQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9iYXNlL0lCYXNlUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2UgYXN0cmF0dGEgY2hlIHJhcHByZXNlbnRhIGxvIHN0YXRvIGRpIHBlcnNpc3RlbnphIGZyYSBsYSBsaWJyZXJpYSBlIHVubyBzdG9yYWdlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIElCYXNlUGVyc2lzdG9yIHtcclxuICAgIHBlcnNpc3Q8VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgcmVjb3ZlcjxUPihrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+O1xyXG4gICAgcmVjb3ZlckFsbCgpOiBPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfT47XHJcbiAgICBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gICAgcmVtb3ZlKGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxib29sZWFuPjtcclxuICAgIHBlcnNpc3RBbGwoZGljdGlvbmFyeTogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbiAgICBnZXRLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmc7XHJcbn0iXX0=
|
|
@@ -0,0 +1,33 @@
|
|
|
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
|
+
/** @ignore Costruttore */
|
|
8
|
+
constructor(session) {
|
|
9
|
+
this.session = session;
|
|
10
|
+
}
|
|
11
|
+
/**
|
|
12
|
+
* Effettua il **persist** massivo di una lista di Chiave - Valore
|
|
13
|
+
*
|
|
14
|
+
* @param {{ [key: string]: string }} dictionary Dizionario (lista di Chiave - Valore) da persistere
|
|
15
|
+
*/
|
|
16
|
+
persistAll(dictionary) {
|
|
17
|
+
let observables = [];
|
|
18
|
+
for (let key in dictionary)
|
|
19
|
+
observables.push(this.persist(key, dictionary[key]));
|
|
20
|
+
return forkJoin(observables).pipe(map(res => res.reduce((acc, val) => acc && val, true)));
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Ottiene la chiave "Reale" da utilizzare per la persistenza di una chiave generica
|
|
24
|
+
*
|
|
25
|
+
* @param {string} key Chiave da storicizzare
|
|
26
|
+
*
|
|
27
|
+
* @returns {string} Unione fra l'identificativo della sessione e la chiave specificata
|
|
28
|
+
*/
|
|
29
|
+
getKey(key) {
|
|
30
|
+
return this.session.getSessionKey() + "§" + key + "§";
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJlZmVyZW5jZXNQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBYyxRQUFRLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDNUMsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBSXJDOztHQUVHO0FBQ0gsTUFBTSxPQUFnQixvQkFBb0I7SUFFdEMsMEJBQTBCO0lBQzFCLFlBQXNCLE9BQTZCO1FBQTdCLFlBQU8sR0FBUCxPQUFPLENBQXNCO0lBQUcsQ0FBQztJQXFDdkQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxVQUFxQztRQUNuRCxJQUFJLFdBQVcsR0FBMEIsRUFBRSxDQUFDO1FBQzVDLEtBQUssSUFBSSxHQUFHLElBQUksVUFBVTtZQUN0QixXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFekQsT0FBTyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEVBQUUsQ0FBQyxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLEdBQVc7UUFDckIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxHQUFHLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxDQUFDO0lBQzFELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE9ic2VydmFibGUsIGZvcmtKb2luIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgbWFwIH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IEJhc2VTZXNzaW9uUmV0cmlldmVyIH0gZnJvbSBcIi4uLy4uL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5pbXBvcnQgeyBJQmFzZVBlcnNpc3RvciB9IGZyb20gXCIuL0lCYXNlUGVyc2lzdG9yXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIGFzdHJhdHRhIGNoZSByYXBwcmVzZW50YSBsbyBzdGF0byBkaSBwZXJzaXN0ZW56YSBmcmEgbGEgbGlicmVyaWEgZSB1bm8gc3RvcmFnZVxyXG4gKi9cclxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIFByZWZlcmVuY2VzUGVyc2lzdG9yIGltcGxlbWVudHMgSUJhc2VQZXJzaXN0b3Ige1xyXG5cclxuICAgIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgc2Vzc2lvbjogQmFzZVNlc3Npb25SZXRyaWV2ZXIpIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTYWx2YSwgcGVyIHVuYSBzZXNzaW9uZSwgdW5hIGNoaWF2ZSBjb24gdW4gdmFsb3JlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRhIHN0b3JpY2l6emFyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgcGVyc2lzdDxUPihrZXk6IHN0cmluZywgaXRlbTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZWN1cGVyYSwgcGVyIHVuYSBzZXNzaW9uZSwgaWwgdmFsb3JlIGFzc2VnbmF0byBhZCB1bmEgY2hpYXZlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRhIHJlY3VwZXJhcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge09ic2VydmFibGU8VD59IFZhbG9yZSBzYWx2YXRvIHBlciBsYSBjaGlhdmUgKiprZXkqKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVjb3ZlcjxUPihrZXk/OiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyIHVuYSBzZXNzaW9uZSByZWN1cGVyYSB0dXR0ZSBsZSBjb3BwaWUgQ2hpYXZlIC0gVmFsb3JlIHNhbHZhdGVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge09ic2VydmFibGU8eyBbaW5kZXg6IHN0cmluZ106IGFueSB9Pn0gRGl6aW9uYXJpbyBjb24gdHV0dGUgbGUgcHJlZmVyZW5jZSBzYWx2YXRlIHBlciBsYSBzZXNzaW9uZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgYWJzdHJhY3QgcmVjb3ZlckFsbCgpOiBPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnkgfT47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiAgUmlwdWxpc2NlIGxlIHByZWZlcmVuY2Ugc2FsdmF0ZSByZWxhdGl2ZSBhZCB1bmEgc2Vzc2lvbmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFbGltaW5hIHVuIG9nZ2V0dG8gZGFsbGEgY2FjaGUgcGVyc2lzdGl0YVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkYSByaW11b3ZlcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBFZmZldHR1YSBpbCAqKnBlcnNpc3QqKiBtYXNzaXZvIGRpIHVuYSBsaXN0YSBkaSBDaGlhdmUgLSBWYWxvcmVcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHt7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9fSBkaWN0aW9uYXJ5IERpemlvbmFyaW8gKGxpc3RhIGRpIENoaWF2ZSAtIFZhbG9yZSkgZGEgcGVyc2lzdGVyZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgcGVyc2lzdEFsbChkaWN0aW9uYXJ5OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9KTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbGV0IG9ic2VydmFibGVzOiBPYnNlcnZhYmxlPGJvb2xlYW4+W10gPSBbXTtcclxuICAgICAgICBmb3IgKGxldCBrZXkgaW4gZGljdGlvbmFyeSlcclxuICAgICAgICAgICAgb2JzZXJ2YWJsZXMucHVzaCh0aGlzLnBlcnNpc3Qoa2V5LCBkaWN0aW9uYXJ5W2tleV0pKTtcclxuXHJcbiAgICAgICAgcmV0dXJuIGZvcmtKb2luKG9ic2VydmFibGVzKS5waXBlKG1hcChyZXMgPT4gcmVzLnJlZHVjZSgoYWNjLCB2YWwpID0+IGFjYyAmJiB2YWwsIHRydWUpKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBPdHRpZW5lIGxhIGNoaWF2ZSBcIlJlYWxlXCIgZGEgdXRpbGl6emFyZSBwZXIgbGEgcGVyc2lzdGVuemEgZGkgdW5hIGNoaWF2ZSBnZW5lcmljYVxyXG4gICAgICogXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30ga2V5IENoaWF2ZSBkYSBzdG9yaWNpenphcmVcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge3N0cmluZ30gVW5pb25lIGZyYSBsJ2lkZW50aWZpY2F0aXZvIGRlbGxhIHNlc3Npb25lIGUgbGEgY2hpYXZlIHNwZWNpZmljYXRhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBnZXRLZXkoa2V5OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpICsgXCLCp1wiICsga2V5ICsgXCLCp1wiO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
// Classi
|
|
4
|
+
import { BaseSessionRetriever } from "../../session/base/BaseSessionRetriever";
|
|
5
|
+
import { CachePersistor } from "../base/CachePersistor";
|
|
6
|
+
// RXJS
|
|
7
|
+
import { of } from "rxjs";
|
|
8
|
+
import { first } from "rxjs/operators";
|
|
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
|
+
}
|
|
46
|
+
LocalStorageCachePersistor.decorators = [
|
|
47
|
+
{ type: Injectable }
|
|
48
|
+
];
|
|
49
|
+
LocalStorageCachePersistor.ctorParameters = () => [
|
|
50
|
+
{ type: BaseSessionRetriever }
|
|
51
|
+
];
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9pbXBsZW1lbnRhdGlvbi9Mb2NhbFN0b3JhZ2VDYWNoZVBlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxTQUFTO0FBQ1QsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0seUNBQXlDLENBQUM7QUFDL0UsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHdCQUF3QixDQUFDO0FBR3hELE9BQU87QUFDUCxPQUFPLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSxLQUFLLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUd2QyxNQUFNLE9BQU8sMEJBQTJCLFNBQVEsY0FBYztJQUUxRCxZQUFZLE9BQTZCO1FBQ3JDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNuQixDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLE9BQU8sQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNsQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzdELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsT0FBTyxDQUFJLEdBQVc7UUFDekIsSUFBSSxHQUFHLEdBQU0sSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ2hFLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsTUFBTSxDQUFDLEdBQVc7UUFDckIsSUFBSSxHQUFHLEdBQUcsWUFBWSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDcEQsT0FBTyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVELCtCQUErQjtJQUN4QixVQUFVO1FBQ2IsSUFBSSxHQUFHLEdBQWlDLEVBQUUsQ0FBQztRQUMzQyxLQUFLLElBQUksQ0FBQyxJQUFJLFlBQVksRUFBRTtZQUN4QixJQUFJLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLGFBQWEsRUFBRSxDQUFDO2dCQUM3RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ3ZFO1FBRUQsT0FBTyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELCtCQUErQjtJQUN4QixLQUFLO1FBQ1IsS0FBSyxJQUFJLENBQUMsSUFBSSxZQUFZLEVBQUU7WUFDeEIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0QsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUNsQztRQUNELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7OztZQTNDSixVQUFVOzs7WUFSRixvQkFBb0IiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gQ2xhc3NpXHJcbmltcG9ydCB7IEJhc2VTZXNzaW9uUmV0cmlldmVyIH0gZnJvbSBcIi4uLy4uL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5pbXBvcnQgeyBDYWNoZVBlcnNpc3RvciB9IGZyb20gXCIuLi9iYXNlL0NhY2hlUGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7IElCYXNlUGVyc2lzdG9yIH0gZnJvbSBcIi4uL2Jhc2UvSUJhc2VQZXJzaXN0b3JcIjtcclxuXHJcbi8vIFJYSlNcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgZXh0ZW5kcyBDYWNoZVBlcnNpc3RvciBpbXBsZW1lbnRzIElCYXNlUGVyc2lzdG9yIHtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihzZXNzaW9uOiBCYXNlU2Vzc2lvblJldHJpZXZlcikge1xyXG4gICAgICAgIHN1cGVyKHNlc3Npb24pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyBwZXJzaXN0PFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICAgICAgbG9jYWxTdG9yYWdlLnNldEl0ZW0odGhpcy5nZXRLZXkoa2V5KSwgSlNPTi5zdHJpbmdpZnkoaXRlbSkpO1xyXG4gICAgICAgIHJldHVybiBvZih0cnVlKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyByZWNvdmVyPFQ+KGtleTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUPiB7XHJcbiAgICAgICAgdmFyIHJldCA9IDxUPkpTT04ucGFyc2UobG9jYWxTdG9yYWdlLmdldEl0ZW0odGhpcy5nZXRLZXkoa2V5KSkpO1xyXG4gICAgICAgIHJldHVybiBvZihyZXQpLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgVmVkaSBjbGFzc2UgYmFzZSAqL1xyXG4gICAgcHVibGljIHJlbW92ZShrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIHZhciByZXQgPSBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLmdldEtleShrZXkpKTtcclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSkucGlwZShmaXJzdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcmVjb3ZlckFsbCgpOiBPYnNlcnZhYmxlPHsgW2luZGV4OiBzdHJpbmddOiBhbnk7IH0+IHtcclxuICAgICAgICB2YXIgcmV0OiB7IFtpbmRleDogc3RyaW5nXTogc3RyaW5nOyB9ID0ge307XHJcbiAgICAgICAgZm9yICh2YXIgayBpbiBsb2NhbFN0b3JhZ2UpIHtcclxuICAgICAgICAgICAgaWYgKGsuaW5jbHVkZXMoXCLCp1wiKSAmJiBrLnN0YXJ0c1dpdGgodGhpcy5zZXNzaW9uLmdldFNlc3Npb25LZXkoKSkpXHJcbiAgICAgICAgICAgICAgICByZXRbay5tYXRjaCgvwqcoLiopwqcvKVsxXV0gPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKGspKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBvZihyZXQpLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgVmVkaSBjbGFzc2UgYmFzZSAqL1xyXG4gICAgcHVibGljIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGZvciAodmFyIGsgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGlmIChrLmluY2x1ZGVzKFwiwqdcIikgJiYgay5zdGFydHNXaXRoKHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCkpKVxyXG4gICAgICAgICAgICAgICAgbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oayk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBvZih0cnVlKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG59XHJcblxyXG4iXX0=
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
// RXJS
|
|
4
|
+
import { of } from "rxjs";
|
|
5
|
+
import { first } from "rxjs/operators";
|
|
6
|
+
// Classi
|
|
7
|
+
import { BaseSessionRetriever } from "../../session/base/BaseSessionRetriever";
|
|
8
|
+
import { PreferencesPersistor } from "../base/PreferencesPersistor";
|
|
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
|
+
}
|
|
46
|
+
LocalStoragePreferencesPersistor.decorators = [
|
|
47
|
+
{ type: Injectable }
|
|
48
|
+
];
|
|
49
|
+
LocalStoragePreferencesPersistor.ctorParameters = () => [
|
|
50
|
+
{ type: BaseSessionRetriever }
|
|
51
|
+
];
|
|
52
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlUHJlZmVyZW5jZXNQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9wcmVmZXJlbmNlcy9zcmMvbGliL3BlcnNpc3Rvci9pbXBsZW1lbnRhdGlvbi9Mb2NhbFN0b3JhZ2VQcmVmZXJlbmNlc1BlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPO0FBQ1AsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFdkMsU0FBUztBQUNULE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBSXBFLE1BQU0sT0FBTyxnQ0FBaUMsU0FBUSxvQkFBb0I7SUFFdEUsWUFBWSxPQUE2QjtRQUNyQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7SUFDbkIsQ0FBQztJQUVELCtCQUErQjtJQUN4QixPQUFPLENBQUksR0FBVyxFQUFFLElBQU87UUFDbEMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUM3RCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLE9BQU8sQ0FBSSxHQUFXO1FBQ3pCLElBQUksR0FBRyxHQUFNLElBQUksQ0FBQyxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUNoRSxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQsK0JBQStCO0lBQ3hCLE1BQU0sQ0FBQyxHQUFXO1FBQ3JCLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3BELE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsVUFBVTtRQUNiLElBQUksR0FBRyxHQUFpQyxFQUFFLENBQUM7UUFDM0MsS0FBSyxJQUFJLENBQUMsSUFBSSxZQUFZLEVBQUU7WUFDeEIsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztnQkFDN0QsR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztTQUN2RTtRQUVELE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsS0FBSztRQUNSLEtBQUssSUFBSSxDQUFDLElBQUksWUFBWSxFQUFFO1lBQ3hCLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxFQUFFLENBQUM7Z0JBQzdELFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7U0FDbEM7UUFDRCxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQztJQUNsQyxDQUFDOzs7WUEzQ0osVUFBVTs7O1lBSkYsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiLy8gQW5ndWxhclxyXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuXHJcbi8vIFJYSlNcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5cclxuLy8gQ2xhc3NpXHJcbmltcG9ydCB7IEJhc2VTZXNzaW9uUmV0cmlldmVyIH0gZnJvbSBcIi4uLy4uL3Nlc3Npb24vYmFzZS9CYXNlU2Vzc2lvblJldHJpZXZlclwiO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1BlcnNpc3RvciB9IGZyb20gXCIuLi9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7IElCYXNlUGVyc2lzdG9yIH0gZnJvbSBcIi4uL2Jhc2UvSUJhc2VQZXJzaXN0b3JcIjtcclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIExvY2FsU3RvcmFnZVByZWZlcmVuY2VzUGVyc2lzdG9yIGV4dGVuZHMgUHJlZmVyZW5jZXNQZXJzaXN0b3IgaW1wbGVtZW50cyBJQmFzZVBlcnNpc3RvciB7XHJcblxyXG4gICAgY29uc3RydWN0b3Ioc2Vzc2lvbjogQmFzZVNlc3Npb25SZXRyaWV2ZXIpIHtcclxuICAgICAgICBzdXBlcihzZXNzaW9uKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcGVyc2lzdDxUPihrZXk6IHN0cmluZywgaXRlbTogVCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuZ2V0S2V5KGtleSksIEpTT04uc3RyaW5naWZ5KGl0ZW0pKTtcclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSkucGlwZShmaXJzdCgpKTtcclxuICAgIH1cclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcmVjb3ZlcjxUPihrZXk6IHN0cmluZyk6IE9ic2VydmFibGU8VD4ge1xyXG4gICAgICAgIHZhciByZXQgPSA8VD5KU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuZ2V0S2V5KGtleSkpKTtcclxuICAgICAgICByZXR1cm4gb2YocmV0KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyByZW1vdmUoa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICB2YXIgcmV0ID0gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0odGhpcy5nZXRLZXkoa2V5KSk7XHJcbiAgICAgICAgcmV0dXJuIG9mKHRydWUpLnBpcGUoZmlyc3QoKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqIEBpZ25vcmUgVmVkaSBjbGFzc2UgYmFzZSAqL1xyXG4gICAgcHVibGljIHJlY292ZXJBbGwoKTogT2JzZXJ2YWJsZTx7IFtpbmRleDogc3RyaW5nXTogYW55OyB9PiB7XHJcbiAgICAgICAgdmFyIHJldDogeyBbaW5kZXg6IHN0cmluZ106IHN0cmluZzsgfSA9IHt9O1xyXG4gICAgICAgIGZvciAodmFyIGsgaW4gbG9jYWxTdG9yYWdlKSB7XHJcbiAgICAgICAgICAgIGlmIChrLmluY2x1ZGVzKFwiwqdcIikgJiYgay5zdGFydHNXaXRoKHRoaXMuc2Vzc2lvbi5nZXRTZXNzaW9uS2V5KCkpKVxyXG4gICAgICAgICAgICAgICAgcmV0W2subWF0Y2goL8KnKC4qKcKnLylbMV1dID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShrKSk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gb2YocmV0KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgICAgICBmb3IgKHZhciBrIGluIGxvY2FsU3RvcmFnZSkge1xyXG4gICAgICAgICAgICBpZiAoay5pbmNsdWRlcyhcIsKnXCIpICYmIGsuc3RhcnRzV2l0aCh0aGlzLnNlc3Npb24uZ2V0U2Vzc2lvbktleSgpKSlcclxuICAgICAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKGspO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gb2YodHJ1ZSkucGlwZShmaXJzdCgpKTtcclxuICAgIH1cclxufVxyXG4iXX0=
|
|
@@ -1,17 +1,22 @@
|
|
|
1
1
|
import { NgModule } from '@angular/core';
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
2
|
+
import { CacheService } from './services/cache.service';
|
|
3
|
+
import { PreferencesService } from './services/preferences.service';
|
|
4
4
|
import { BaseSessionRetriever } from './session/base/BaseSessionRetriever';
|
|
5
5
|
import { DefaultSessionRetriever } from './session/implementation/DefaultSessionRetriever';
|
|
6
|
-
import { PreferencesService } from './preferences.service';
|
|
7
6
|
import { PREF_FULL_RETRIEVE_AT_START } 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';
|
|
8
11
|
export class PreferencesModule {
|
|
9
12
|
static forRoot(config) {
|
|
10
13
|
return {
|
|
11
14
|
ngModule: PreferencesModule,
|
|
12
15
|
providers: [
|
|
16
|
+
CacheService,
|
|
13
17
|
PreferencesService,
|
|
14
|
-
{ provide:
|
|
18
|
+
{ provide: PreferencesPersistor, useClass: (config === null || config === void 0 ? void 0 : config.preferencePersistor) || LocalStoragePreferencesPersistor },
|
|
19
|
+
{ provide: CachePersistor, useClass: (config === null || config === void 0 ? void 0 : config.cachePersistor) || LocalStorageCachePersistor },
|
|
15
20
|
{ provide: BaseSessionRetriever, useClass: (config === null || config === void 0 ? void 0 : config.sessionRetriever) || DefaultSessionRetriever },
|
|
16
21
|
{ provide: PREF_FULL_RETRIEVE_AT_START, useValue: (config === null || config === void 0 ? void 0 : config.retrieveAllAtStart) || true }
|
|
17
22
|
]
|
|
@@ -21,4 +26,4 @@ export class PreferencesModule {
|
|
|
21
26
|
PreferencesModule.decorators = [
|
|
22
27
|
{ type: NgModule }
|
|
23
28
|
];
|
|
24
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlZmVyZW5jZXMvc3JjL2xpYi9wcmVmZXJlbmNlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUl6QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDeEQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDcEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDM0UsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sa0RBQWtELENBQUM7QUFDM0YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sVUFBVSxDQUFDO0FBQ3ZELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNqRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSx1Q0FBdUMsQ0FBQztBQUM3RSxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSx1REFBdUQsQ0FBQztBQUNuRyxPQUFPLEVBQUUsZ0NBQWdDLEVBQUUsTUFBTSw2REFBNkQsQ0FBQztBQUcvRyxNQUFNLE9BQU8saUJBQWlCO0lBQzVCLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBZ0M7UUFDN0MsT0FBTztZQUNMLFFBQVEsRUFBRSxpQkFBaUI7WUFDM0IsU0FBUyxFQUFFO2dCQUNULFlBQVk7Z0JBQ1osa0JBQWtCO2dCQUNsQixFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsbUJBQW1CLEtBQUksZ0NBQWdDLEVBQUU7Z0JBQzVHLEVBQUUsT0FBTyxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsY0FBYyxLQUFJLDBCQUEwQixFQUFFO2dCQUMzRixFQUFFLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsQ0FBQSxNQUFNLGFBQU4sTUFBTSx1QkFBTixNQUFNLENBQUUsZ0JBQWdCLEtBQUksdUJBQXVCLEVBQUU7Z0JBQ2hHLEVBQUUsT0FBTyxFQUFFLDJCQUEyQixFQUFFLFFBQVEsRUFBRSxDQUFBLE1BQU0sYUFBTixNQUFNLHVCQUFOLE1BQU0sQ0FBRSxrQkFBa0IsS0FBSSxJQUFJLEVBQUU7YUFDdkY7U0FDRixDQUFDO0lBQ0osQ0FBQzs7O1lBZEYsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcbmltcG9ydCB7IE1vZHVsZVdpdGhQcm92aWRlcnMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8vIE1vZGVsbGlcbmltcG9ydCB7IFByZWZlcmVuY2VzTW9kdWxlQ29uZmlnIH0gZnJvbSAnLi9tb2RlbHMvUHJlZmVyZW5jZXNNb2R1bGVDb25maWcnO1xuaW1wb3J0IHsgQ2FjaGVTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9jYWNoZS5zZXJ2aWNlJztcbmltcG9ydCB7IFByZWZlcmVuY2VzU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvcHJlZmVyZW5jZXMuc2VydmljZSc7XG5pbXBvcnQgeyBCYXNlU2Vzc2lvblJldHJpZXZlciB9IGZyb20gJy4vc2Vzc2lvbi9iYXNlL0Jhc2VTZXNzaW9uUmV0cmlldmVyJztcbmltcG9ydCB7IERlZmF1bHRTZXNzaW9uUmV0cmlldmVyIH0gZnJvbSAnLi9zZXNzaW9uL2ltcGxlbWVudGF0aW9uL0RlZmF1bHRTZXNzaW9uUmV0cmlldmVyJztcbmltcG9ydCB7IFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVCB9IGZyb20gJy4vdG9rZW5zJztcbmltcG9ydCB7IENhY2hlUGVyc2lzdG9yIH0gZnJvbSAnLi9wZXJzaXN0b3IvYmFzZS9DYWNoZVBlcnNpc3Rvcic7XG5pbXBvcnQgeyBQcmVmZXJlbmNlc1BlcnNpc3RvciB9IGZyb20gJy4vcGVyc2lzdG9yL2Jhc2UvUHJlZmVyZW5jZXNQZXJzaXN0b3InO1xuaW1wb3J0IHsgTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgfSBmcm9tICcuL3BlcnNpc3Rvci9pbXBsZW1lbnRhdGlvbi9Mb2NhbFN0b3JhZ2VDYWNoZVBlcnNpc3Rvcic7XG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VQcmVmZXJlbmNlc1BlcnNpc3RvciB9IGZyb20gJy4vcGVyc2lzdG9yL2ltcGxlbWVudGF0aW9uL0xvY2FsU3RvcmFnZVByZWZlcmVuY2VzUGVyc2lzdG9yJztcblxuQE5nTW9kdWxlKClcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc01vZHVsZSB7XG4gIHN0YXRpYyBmb3JSb290KGNvbmZpZz86IFByZWZlcmVuY2VzTW9kdWxlQ29uZmlnKTogTW9kdWxlV2l0aFByb3ZpZGVyczxQcmVmZXJlbmNlc01vZHVsZT4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogUHJlZmVyZW5jZXNNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ2FjaGVTZXJ2aWNlLFxuICAgICAgICBQcmVmZXJlbmNlc1NlcnZpY2UsXG4gICAgICAgIHsgcHJvdmlkZTogUHJlZmVyZW5jZXNQZXJzaXN0b3IsIHVzZUNsYXNzOiBjb25maWc/LnByZWZlcmVuY2VQZXJzaXN0b3IgfHwgTG9jYWxTdG9yYWdlUHJlZmVyZW5jZXNQZXJzaXN0b3IgfSxcbiAgICAgICAgeyBwcm92aWRlOiBDYWNoZVBlcnNpc3RvciwgdXNlQ2xhc3M6IGNvbmZpZz8uY2FjaGVQZXJzaXN0b3IgfHwgTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IgfSxcbiAgICAgICAgeyBwcm92aWRlOiBCYXNlU2Vzc2lvblJldHJpZXZlciwgdXNlQ2xhc3M6IGNvbmZpZz8uc2Vzc2lvblJldHJpZXZlciB8fCBEZWZhdWx0U2Vzc2lvblJldHJpZXZlciB9LFxuICAgICAgICB7IHByb3ZpZGU6IFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVCwgdXNlVmFsdWU6IGNvbmZpZz8ucmV0cmlldmVBbGxBdFN0YXJ0IHx8IHRydWUgfVxuICAgICAgXVxuICAgIH07XG4gIH1cbn0iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiSUJhc2VTdG9yYWdlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlZmVyZW5jZXMvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlL0lCYXNlU3RvcmFnZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuZXhwb3J0IGludGVyZmFjZSBJQmFzZVN0b3JhZ2Uge1xyXG4gIHNldEl0ZW08VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIHNldExvY2FsSXRlbTxUPihrZXk6IHN0cmluZywgaXRlbTogVCk6IGJvb2xlYW47XHJcbiAgZ2V0SXRlbTxUPihrZXk6IHN0cmluZywgY2FjaGVCdXN0OiBib29sZWFuKTogT2JzZXJ2YWJsZTxUPjtcclxuICBnZXRMb2NhbEl0ZW08VD4oa2V5OiBzdHJpbmcpOiBUO1xyXG4gIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG4gIGNsZWFyKCk6IE9ic2VydmFibGU8Ym9vbGVhbj47XHJcbn0iXX0=
|
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
// Angular
|
|
2
|
+
import { Inject, Optional } from '@angular/core';
|
|
3
|
+
import { of } from 'rxjs';
|
|
4
|
+
import { take, tap } from 'rxjs/operators';
|
|
5
|
+
// Modelli
|
|
6
|
+
import { PREF_FULL_RETRIEVE_AT_START } from '../../tokens';
|
|
7
|
+
/**
|
|
8
|
+
* Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate
|
|
9
|
+
*/
|
|
10
|
+
export class BaseService {
|
|
11
|
+
/**
|
|
12
|
+
* Costruttore
|
|
13
|
+
*
|
|
14
|
+
* @ignore
|
|
15
|
+
*/
|
|
16
|
+
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
17
|
+
this.persistor = persistor;
|
|
18
|
+
this.PREF_FULL_RETRIEVE_AT_START = PREF_FULL_RETRIEVE_AT_START;
|
|
19
|
+
/** Store in memoria delle preferenze locali che sarà persistito per mezzo della classe che fa le veci del **BasePreferencesPersistor** */
|
|
20
|
+
this.LocalStore = {};
|
|
21
|
+
if (this.PREF_FULL_RETRIEVE_AT_START) {
|
|
22
|
+
this.persistor.recoverAll().pipe(take(1)).subscribe(t => {
|
|
23
|
+
for (let cProp in t)
|
|
24
|
+
this.LocalStore[cProp] = t[cProp];
|
|
25
|
+
});
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Salva un oggetto sia nella cache locale che nel persistor
|
|
30
|
+
*
|
|
31
|
+
* @param {string} key Chiave di persistenza
|
|
32
|
+
* @param {T} item Oggetto da salvare
|
|
33
|
+
*/
|
|
34
|
+
setItem(key, item) {
|
|
35
|
+
this.setLocalItem(key, item);
|
|
36
|
+
return this.persist(key, item);
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Salva un oggetto solo nella cache locale. Dovrà essere persistito manualmente o andrà perso al riavvio dell'applicazione
|
|
40
|
+
*
|
|
41
|
+
* @param {string} key Chiave di persistenza
|
|
42
|
+
* @param {T} item Oggetto da salvare
|
|
43
|
+
*/
|
|
44
|
+
setLocalItem(key, item) {
|
|
45
|
+
this.LocalStore[key] = JSON.parse(JSON.stringify(item));
|
|
46
|
+
return true;
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Salva, per una sessione, una chiave con un valore, viene chiamato automaticamente dal metodo **store** ma dev'essere chiamato manualmente
|
|
50
|
+
* nel caso si utilizzi il metodo **storeLocal**
|
|
51
|
+
*
|
|
52
|
+
* @param {string} key Chiave da storicizzare
|
|
53
|
+
*/
|
|
54
|
+
persist(key, item) {
|
|
55
|
+
return this.persistor.persist(key, item);
|
|
56
|
+
}
|
|
57
|
+
/**
|
|
58
|
+
* Recupera un oggetto in base a una chiave. Permette di accedere alla copia locale o alla copia persistita.
|
|
59
|
+
*
|
|
60
|
+
* @param {string} key Chiave del valore da recuperare
|
|
61
|
+
* @param {boolean} cacheBust Indica se ignorare il valore della cache locale e recuperare l'oggetto dallo store persistito,
|
|
62
|
+
* in caso fosse stato modificato fuori sistema o da un altro sistema
|
|
63
|
+
*
|
|
64
|
+
* @returns {T} Oggetto richiesto
|
|
65
|
+
*/
|
|
66
|
+
getItem(key, cacheBust = false) {
|
|
67
|
+
if (this.LocalStore[key] && !cacheBust)
|
|
68
|
+
return of(this.LocalStore[key]);
|
|
69
|
+
else {
|
|
70
|
+
var obj = this.persistor.recover(key);
|
|
71
|
+
if (!obj)
|
|
72
|
+
return of(null);
|
|
73
|
+
obj.pipe(tap(item => { this.LocalStore[key] = item; }));
|
|
74
|
+
return obj;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
/**
|
|
78
|
+
* Recupera un oggetto in base a una chiave. Permette di accedere solo alla copia locale
|
|
79
|
+
*
|
|
80
|
+
* @param {string} key Chiave del valore da recuperare
|
|
81
|
+
*
|
|
82
|
+
* @returns {T} Oggetto richiesto
|
|
83
|
+
*/
|
|
84
|
+
getLocalItem(key) {
|
|
85
|
+
if (this.LocalStore[key])
|
|
86
|
+
return this.LocalStore[key];
|
|
87
|
+
else
|
|
88
|
+
return null;
|
|
89
|
+
}
|
|
90
|
+
/**
|
|
91
|
+
* Elimina un oggetto dalla cache sia locale che persistita
|
|
92
|
+
*
|
|
93
|
+
* @param {string} key Chiave da rimuovere
|
|
94
|
+
*/
|
|
95
|
+
removeItem(key) {
|
|
96
|
+
if (this.LocalStore[key])
|
|
97
|
+
delete this.LocalStore[key];
|
|
98
|
+
return this.persistor.remove(key);
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Ripulisce le impostazioni locali e le impostazioni salvate dal persistor
|
|
102
|
+
*/
|
|
103
|
+
clear() {
|
|
104
|
+
// Pulisco la cache locale
|
|
105
|
+
this.LocalStore = {};
|
|
106
|
+
// "Committo" le modifiche
|
|
107
|
+
return this.persistor.clear();
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
BaseService.ctorParameters = () => [
|
|
111
|
+
{ type: undefined },
|
|
112
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [PREF_FULL_RETRIEVE_AT_START,] }] }
|
|
113
|
+
];
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvcHJlZmVyZW5jZXMvc3JjL2xpYi9zZXJ2aWNlcy9iYXNlL2Jhc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsSUFBSSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRzNDLFVBQVU7QUFDVixPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFHM0Q7O0dBRUc7QUFDSCxNQUFNLE9BQU8sV0FBVztJQUt0Qjs7OztPQUlHO0lBQ0gsWUFBb0IsU0FBeUIsRUFBMkQsMkJBQW9DO1FBQXhILGNBQVMsR0FBVCxTQUFTLENBQWdCO1FBQTJELGdDQUEyQixHQUEzQiwyQkFBMkIsQ0FBUztRQVI1SSwwSUFBMEk7UUFDaEksZUFBVSxHQUE2QixFQUFFLENBQUM7UUFRbEQsSUFBSSxJQUFJLENBQUMsMkJBQTJCLEVBQUU7WUFFcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUN0RCxLQUFLLElBQUksS0FBSyxJQUFJLENBQUM7b0JBQ2pCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3RDLENBQUMsQ0FBQyxDQUFDO1NBQ0o7SUFDSCxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQUksR0FBVyxFQUFFLElBQU87UUFDcEMsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLENBQUE7UUFDNUIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNqQyxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxZQUFZLENBQUksR0FBVyxFQUFFLElBQU87UUFDekMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFFRDs7Ozs7T0FLRztJQUNLLE9BQU8sQ0FBSSxHQUFXLEVBQUUsSUFBTztRQUNyQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxPQUFPLENBQUksR0FBVyxFQUFFLFlBQXFCLEtBQUs7UUFDdkQsSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsU0FBUztZQUNwQyxPQUFPLEVBQUUsQ0FBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7YUFDaEM7WUFDSCxJQUFJLEdBQUcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBSSxHQUFHLENBQUMsQ0FBQztZQUN6QyxJQUFJLENBQUMsR0FBRztnQkFDTixPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNsQixHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsRUFBRSxHQUFHLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQTtZQUN2RCxPQUFPLEdBQUcsQ0FBQztTQUNaO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7T0FNRztJQUNJLFlBQVksQ0FBSSxHQUFXO1FBQ2hDLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDdEIsT0FBVSxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDOztZQUUvQixPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLFVBQVUsQ0FBQyxHQUFXO1FBQzNCLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUM7WUFDdEIsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTlCLE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVEOztPQUVHO0lBQ0ksS0FBSztRQUNWLDBCQUEwQjtRQUMxQixJQUFJLENBQUMsVUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNyQiwwQkFBMEI7UUFDMUIsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQ2hDLENBQUM7Ozs7MENBakcrQyxRQUFRLFlBQUksTUFBTSxTQUFDLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbIi8vIEFuZ3VsYXJcclxuaW1wb3J0IHsgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IElCYXNlUGVyc2lzdG9yIH0gZnJvbSAnLi4vLi4vcGVyc2lzdG9yL2Jhc2UvSUJhc2VQZXJzaXN0b3InO1xyXG5cclxuLy8gTW9kZWxsaVxyXG5pbXBvcnQgeyBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQgfSBmcm9tICcuLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBJQmFzZVN0b3JhZ2UgfSBmcm9tICcuL0lCYXNlU3RvcmFnZSc7XHJcblxyXG4vKipcclxuICogU2VydmljZSBjaGUgc2kgb2NjdXBhIGRpIHNhbHZhcmUgZSByZWN1cGVyYXJlIGxlIHByZWZlcmVuemUgdXRlbnRlIHJpc3BldHRvIGFsbGUgY2hpYXZpIHNhbHZhdGVcclxuICovXHJcbmV4cG9ydCBjbGFzcyBCYXNlU2VydmljZSBpbXBsZW1lbnRzIElCYXNlU3RvcmFnZSB7XHJcblxyXG4gIC8qKiBTdG9yZSBpbiBtZW1vcmlhIGRlbGxlIHByZWZlcmVuemUgbG9jYWxpIGNoZSBzYXLDoCBwZXJzaXN0aXRvIHBlciBtZXp6byBkZWxsYSBjbGFzc2UgY2hlIGZhIGxlIHZlY2kgZGVsICoqQmFzZVByZWZlcmVuY2VzUGVyc2lzdG9yKiogKi9cclxuICBwcm90ZWN0ZWQgTG9jYWxTdG9yZTogeyBbaW5kZXg6IHN0cmluZ106IGFueSB9ID0ge307XHJcblxyXG4gIC8qKlxyXG4gICAqIENvc3RydXR0b3JlXHJcbiAgICogXHJcbiAgICogQGlnbm9yZVxyXG4gICAqL1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcGVyc2lzdG9yOiBJQmFzZVBlcnNpc3RvciwgQE9wdGlvbmFsKCkgQEluamVjdChQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpIHByaXZhdGUgUFJFRl9GVUxMX1JFVFJJRVZFX0FUX1NUQVJUOiBib29sZWFuKSB7XHJcbiAgICBpZiAodGhpcy5QUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpIHtcclxuXHJcbiAgICAgIHRoaXMucGVyc2lzdG9yLnJlY292ZXJBbGwoKS5waXBlKHRha2UoMSkpLnN1YnNjcmliZSh0ID0+IHtcclxuICAgICAgICBmb3IgKGxldCBjUHJvcCBpbiB0KVxyXG4gICAgICAgICAgdGhpcy5Mb2NhbFN0b3JlW2NQcm9wXSA9IHRbY1Byb3BdO1xyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhbHZhIHVuIG9nZ2V0dG8gc2lhIG5lbGxhIGNhY2hlIGxvY2FsZSBjaGUgbmVsIHBlcnNpc3RvclxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRpIHBlcnNpc3RlbnphXHJcbiAgICogQHBhcmFtIHtUfSBpdGVtIE9nZ2V0dG8gZGEgc2FsdmFyZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRJdGVtPFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICB0aGlzLnNldExvY2FsSXRlbShrZXksIGl0ZW0pXHJcbiAgICByZXR1cm4gdGhpcy5wZXJzaXN0KGtleSwgaXRlbSk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBTYWx2YSB1biBvZ2dldHRvIHNvbG8gbmVsbGEgY2FjaGUgbG9jYWxlLiBEb3Zyw6AgZXNzZXJlIHBlcnNpc3RpdG8gbWFudWFsbWVudGUgbyBhbmRyw6AgcGVyc28gYWwgcmlhdnZpbyBkZWxsJ2FwcGxpY2F6aW9uZVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRpIHBlcnNpc3RlbnphXHJcbiAgICogQHBhcmFtIHtUfSBpdGVtIE9nZ2V0dG8gZGEgc2FsdmFyZVxyXG4gICAqL1xyXG4gIHB1YmxpYyBzZXRMb2NhbEl0ZW08VD4oa2V5OiBzdHJpbmcsIGl0ZW06IFQpOiBib29sZWFuIHtcclxuICAgIHRoaXMuTG9jYWxTdG9yZVtrZXldID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeShpdGVtKSk7XHJcbiAgICByZXR1cm4gdHJ1ZTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFNhbHZhLCBwZXIgdW5hIHNlc3Npb25lLCB1bmEgY2hpYXZlIGNvbiB1biB2YWxvcmUsIHZpZW5lIGNoaWFtYXRvIGF1dG9tYXRpY2FtZW50ZSBkYWwgbWV0b2RvICoqc3RvcmUqKiBtYSBkZXYnZXNzZXJlIGNoaWFtYXRvIG1hbnVhbG1lbnRlXHJcbiAgICogbmVsIGNhc28gc2kgdXRpbGl6emkgaWwgbWV0b2RvICoqc3RvcmVMb2NhbCoqXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGEgc3RvcmljaXp6YXJlXHJcbiAgICovXHJcbiAgcHJpdmF0ZSBwZXJzaXN0PFQ+KGtleTogc3RyaW5nLCBpdGVtOiBUKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XHJcbiAgICByZXR1cm4gdGhpcy5wZXJzaXN0b3IucGVyc2lzdChrZXksIGl0ZW0pO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjdXBlcmEgdW4gb2dnZXR0byBpbiBiYXNlIGEgdW5hIGNoaWF2ZS4gUGVybWV0dGUgZGkgYWNjZWRlcmUgYWxsYSBjb3BpYSBsb2NhbGUgbyBhbGxhIGNvcGlhIHBlcnNpc3RpdGEuXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGVsIHZhbG9yZSBkYSByZWN1cGVyYXJlXHJcbiAgICogQHBhcmFtIHtib29sZWFufSBjYWNoZUJ1c3QgSW5kaWNhIHNlIGlnbm9yYXJlIGlsIHZhbG9yZSBkZWxsYSBjYWNoZSBsb2NhbGUgZSByZWN1cGVyYXJlIGwnb2dnZXR0byBkYWxsbyBzdG9yZSBwZXJzaXN0aXRvLCBcclxuICAgKiBpbiBjYXNvIGZvc3NlIHN0YXRvIG1vZGlmaWNhdG8gZnVvcmkgc2lzdGVtYSBvIGRhIHVuIGFsdHJvIHNpc3RlbWFcclxuICAgKiBcclxuICAgKiBAcmV0dXJucyB7VH0gT2dnZXR0byByaWNoaWVzdG9cclxuICAgKi9cclxuICBwdWJsaWMgZ2V0SXRlbTxUPihrZXk6IHN0cmluZywgY2FjaGVCdXN0OiBib29sZWFuID0gZmFsc2UpOiBPYnNlcnZhYmxlPFQ+IHtcclxuICAgIGlmICh0aGlzLkxvY2FsU3RvcmVba2V5XSAmJiAhY2FjaGVCdXN0KVxyXG4gICAgICByZXR1cm4gb2YoPFQ+dGhpcy5Mb2NhbFN0b3JlW2tleV0pO1xyXG4gICAgZWxzZSB7XHJcbiAgICAgIHZhciBvYmogPSB0aGlzLnBlcnNpc3Rvci5yZWNvdmVyPFQ+KGtleSk7XHJcbiAgICAgIGlmICghb2JqKVxyXG4gICAgICAgIHJldHVybiBvZihudWxsKTtcclxuICAgICAgb2JqLnBpcGUodGFwKGl0ZW0gPT4geyB0aGlzLkxvY2FsU3RvcmVba2V5XSA9IGl0ZW07IH0pKVxyXG4gICAgICByZXR1cm4gb2JqO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogUmVjdXBlcmEgdW4gb2dnZXR0byBpbiBiYXNlIGEgdW5hIGNoaWF2ZS4gUGVybWV0dGUgZGkgYWNjZWRlcmUgc29sbyBhbGxhIGNvcGlhIGxvY2FsZVxyXG4gICAqIFxyXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBrZXkgQ2hpYXZlIGRlbCB2YWxvcmUgZGEgcmVjdXBlcmFyZVxyXG4gICAqIFxyXG4gICAqIEByZXR1cm5zIHtUfSBPZ2dldHRvIHJpY2hpZXN0b1xyXG4gICAqL1xyXG4gIHB1YmxpYyBnZXRMb2NhbEl0ZW08VD4oa2V5OiBzdHJpbmcpOiBUIHtcclxuICAgIGlmICh0aGlzLkxvY2FsU3RvcmVba2V5XSlcclxuICAgICAgcmV0dXJuIDxUPnRoaXMuTG9jYWxTdG9yZVtrZXldO1xyXG4gICAgZWxzZVxyXG4gICAgICByZXR1cm4gbnVsbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEVsaW1pbmEgdW4gb2dnZXR0byBkYWxsYSBjYWNoZSBzaWEgbG9jYWxlIGNoZSBwZXJzaXN0aXRhXHJcbiAgICogXHJcbiAgICogQHBhcmFtIHtzdHJpbmd9IGtleSBDaGlhdmUgZGEgcmltdW92ZXJlXHJcbiAgICovXHJcbiAgcHVibGljIHJlbW92ZUl0ZW0oa2V5OiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIGlmICh0aGlzLkxvY2FsU3RvcmVba2V5XSlcclxuICAgICAgZGVsZXRlIHRoaXMuTG9jYWxTdG9yZVtrZXldO1xyXG5cclxuICAgIHJldHVybiB0aGlzLnBlcnNpc3Rvci5yZW1vdmUoa2V5KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJpcHVsaXNjZSBsZSBpbXBvc3RhemlvbmkgbG9jYWxpIGUgbGUgaW1wb3N0YXppb25pIHNhbHZhdGUgZGFsIHBlcnNpc3RvclxyXG4gICAqL1xyXG4gIHB1YmxpYyBjbGVhcigpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcclxuICAgIC8vIFB1bGlzY28gbGEgY2FjaGUgbG9jYWxlXHJcbiAgICB0aGlzLkxvY2FsU3RvcmUgPSB7fTtcclxuICAgIC8vIFwiQ29tbWl0dG9cIiBsZSBtb2RpZmljaGVcclxuICAgIHJldHVybiB0aGlzLnBlcnNpc3Rvci5jbGVhcigpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
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 { CachePersistor } from '../persistor/base/CachePersistor';
|
|
7
|
+
/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
|
|
8
|
+
export class CacheService extends BaseService {
|
|
9
|
+
/** @ignore Costruttore */
|
|
10
|
+
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
11
|
+
super(persistor, PREF_FULL_RETRIEVE_AT_START);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
CacheService.decorators = [
|
|
15
|
+
{ type: Injectable }
|
|
16
|
+
];
|
|
17
|
+
CacheService.ctorParameters = () => [
|
|
18
|
+
{ type: CachePersistor },
|
|
19
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [PREF_FULL_RETRIEVE_AT_START,] }] }
|
|
20
|
+
];
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FjaGUuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZWZlcmVuY2VzL3NyYy9saWIvc2VydmljZXMvY2FjaGUuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUVsRSxzR0FBc0c7QUFFdEcsTUFBTSxPQUFPLFlBQWEsU0FBUSxXQUFXO0lBRTNDLDBCQUEwQjtJQUMxQixZQUFZLFNBQXlCLEVBQW1ELDJCQUFvQztRQUMxSCxLQUFLLENBQUMsU0FBUyxFQUFFLDJCQUEyQixDQUFDLENBQUM7SUFDaEQsQ0FBQzs7O1lBTkYsVUFBVTs7O1lBSEYsY0FBYzswQ0FPbUIsUUFBUSxZQUFJLE1BQU0sU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UvYmFzZS5zZXJ2aWNlJztcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgUFJFRl9GVUxMX1JFVFJJRVZFX0FUX1NUQVJUIH0gZnJvbSAnLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBDYWNoZVBlcnNpc3RvciB9IGZyb20gJy4uL3BlcnNpc3Rvci9iYXNlL0NhY2hlUGVyc2lzdG9yJztcclxuXHJcbi8qKiBTZXJ2aWNlIGNoZSBzaSBvY2N1cGEgZGkgc2FsdmFyZSBlIHJlY3VwZXJhcmUgbGUgcHJlZmVyZW56ZSB1dGVudGUgcmlzcGV0dG8gYWxsZSBjaGlhdmkgc2FsdmF0ZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBDYWNoZVNlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblxyXG4gIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgY29uc3RydWN0b3IocGVyc2lzdG9yOiBDYWNoZVBlcnNpc3RvciwgQE9wdGlvbmFsKCkgQEluamVjdChQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpIFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVDogYm9vbGVhbikge1xyXG4gICAgc3VwZXIocGVyc2lzdG9yLCBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpO1xyXG4gIH1cclxufSJdfQ==
|
|
@@ -0,0 +1,21 @@
|
|
|
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 { PreferencesPersistor } from '../persistor/base/PreferencesPersistor';
|
|
7
|
+
/** Service che si occupa di salvare e recuperare le preferenze utente rispetto alle chiavi salvate */
|
|
8
|
+
export class PreferencesService extends BaseService {
|
|
9
|
+
/** @ignore Costruttore */
|
|
10
|
+
constructor(persistor, PREF_FULL_RETRIEVE_AT_START) {
|
|
11
|
+
super(persistor, PREF_FULL_RETRIEVE_AT_START);
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
PreferencesService.decorators = [
|
|
15
|
+
{ type: Injectable }
|
|
16
|
+
];
|
|
17
|
+
PreferencesService.ctorParameters = () => [
|
|
18
|
+
{ type: PreferencesPersistor },
|
|
19
|
+
{ type: Boolean, decorators: [{ type: Optional }, { type: Inject, args: [PREF_FULL_RETRIEVE_AT_START,] }] }
|
|
20
|
+
];
|
|
21
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJlZmVyZW5jZXMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ByZWZlcmVuY2VzL3NyYy9saWIvc2VydmljZXMvcHJlZmVyZW5jZXMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzdELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUVsRCxVQUFVO0FBQ1YsT0FBTyxFQUFFLDJCQUEyQixFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzFELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLHdDQUF3QyxDQUFDO0FBRTlFLHNHQUFzRztBQUV0RyxNQUFNLE9BQU8sa0JBQW1CLFNBQVEsV0FBVztJQUVqRCwwQkFBMEI7SUFDMUIsWUFBWSxTQUErQixFQUFtRCwyQkFBb0M7UUFDaEksS0FBSyxDQUFDLFNBQVMsRUFBRSwyQkFBMkIsQ0FBQyxDQUFDO0lBQ2hELENBQUM7OztZQU5GLFVBQVU7OztZQUhGLG9CQUFvQjswQ0FPbUIsUUFBUSxZQUFJLE1BQU0sU0FBQywyQkFBMkIiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuL2Jhc2UvYmFzZS5zZXJ2aWNlJztcclxuXHJcbi8vIE1vZGVsbGlcclxuaW1wb3J0IHsgUFJFRl9GVUxMX1JFVFJJRVZFX0FUX1NUQVJUIH0gZnJvbSAnLi8uLi90b2tlbnMnO1xyXG5pbXBvcnQgeyBQcmVmZXJlbmNlc1BlcnNpc3RvciB9IGZyb20gJy4uL3BlcnNpc3Rvci9iYXNlL1ByZWZlcmVuY2VzUGVyc2lzdG9yJztcclxuXHJcbi8qKiBTZXJ2aWNlIGNoZSBzaSBvY2N1cGEgZGkgc2FsdmFyZSBlIHJlY3VwZXJhcmUgbGUgcHJlZmVyZW56ZSB1dGVudGUgcmlzcGV0dG8gYWxsZSBjaGlhdmkgc2FsdmF0ZSAqL1xyXG5ASW5qZWN0YWJsZSgpXHJcbmV4cG9ydCBjbGFzcyBQcmVmZXJlbmNlc1NlcnZpY2UgZXh0ZW5kcyBCYXNlU2VydmljZSB7XHJcblxyXG4gIC8qKiBAaWdub3JlIENvc3RydXR0b3JlICovXHJcbiAgY29uc3RydWN0b3IocGVyc2lzdG9yOiBQcmVmZXJlbmNlc1BlcnNpc3RvciwgQE9wdGlvbmFsKCkgQEluamVjdChQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpIFBSRUZfRlVMTF9SRVRSSUVWRV9BVF9TVEFSVDogYm9vbGVhbikge1xyXG4gICAgc3VwZXIocGVyc2lzdG9yLCBQUkVGX0ZVTExfUkVUUklFVkVfQVRfU1RBUlQpO1xyXG4gIH1cclxufSJdfQ==
|
package/esm2015/public-api.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
export * from './lib/
|
|
1
|
+
export * from './lib/services/cache.service';
|
|
2
|
+
export * from './lib/services/preferences.service';
|
|
2
3
|
export * from './lib/models/PreferencesModuleConfig';
|
|
3
4
|
export * from './lib/tokens';
|
|
4
5
|
export * from './lib/preferences.module';
|
|
5
|
-
export * from './lib/persistor/base/
|
|
6
|
+
export * from './lib/persistor/base/CachePersistor';
|
|
7
|
+
export * from './lib/persistor/base/PreferencesPersistor';
|
|
6
8
|
export * from './lib/session/base/BaseSessionRetriever';
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
9
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL3ByZWZlcmVuY2VzL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsOEJBQThCLENBQUM7QUFDN0MsY0FBYyxvQ0FBb0MsQ0FBQztBQUNuRCxjQUFjLHNDQUFzQyxDQUFDO0FBQ3JELGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsMEJBQTBCLENBQUM7QUFDekMsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMseUNBQXlDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2xpYi9zZXJ2aWNlcy9jYWNoZS5zZXJ2aWNlJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3NlcnZpY2VzL3ByZWZlcmVuY2VzLnNlcnZpY2UnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvbW9kZWxzL1ByZWZlcmVuY2VzTW9kdWxlQ29uZmlnJztcbmV4cG9ydCAqIGZyb20gJy4vbGliL3Rva2Vucyc7XG5leHBvcnQgKiBmcm9tICcuL2xpYi9wcmVmZXJlbmNlcy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVyc2lzdG9yL2Jhc2UvQ2FjaGVQZXJzaXN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvcGVyc2lzdG9yL2Jhc2UvUHJlZmVyZW5jZXNQZXJzaXN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi9saWIvc2Vzc2lvbi9iYXNlL0Jhc2VTZXNzaW9uUmV0cmlldmVyJzsiXX0=
|