@esfaenza/localizations 16.2.29 → 17.3.15
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/esm2022/esfaenza-localizations.mjs +4 -4
- package/esm2022/lib/core/localization.base.mjs +80 -80
- package/esm2022/lib/core/localization.persistor.mjs +103 -103
- package/esm2022/lib/locale-persistor/LocalStorageCachePersistor.mjs +24 -24
- package/esm2022/lib/locale-persistor/LocalePersistor.mjs +7 -7
- package/esm2022/lib/localizations.module.mjs +37 -37
- package/esm2022/lib/localizations.service.mjs +145 -145
- package/esm2022/lib/models/BaseLocalizationTokens.mjs +13 -13
- package/esm2022/lib/models/ItemLocalization.mjs +17 -17
- package/esm2022/lib/models/LocaleDefinitions.mjs +25 -25
- package/esm2022/lib/models/LocaleObject.mjs +19 -19
- package/esm2022/lib/models/LocalizationMissingPolicy.mjs +10 -10
- package/esm2022/lib/models/LocalizationModuleConfig.mjs +5 -5
- package/esm2022/lib/models/SpecializedLocalization.mjs +15 -15
- package/esm2022/lib/pipes/localize.pipe.mjs +38 -38
- package/esm2022/lib/tokens.mjs +7 -7
- package/esm2022/public-api.mjs +11 -11
- package/fesm2022/esfaenza-localizations.mjs +494 -494
- package/fesm2022/esfaenza-localizations.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/core/localization.base.d.ts +32 -32
- package/lib/core/localization.persistor.d.ts +57 -57
- package/lib/locale-persistor/LocalStorageCachePersistor.d.ts +11 -11
- package/lib/locale-persistor/LocalePersistor.d.ts +18 -18
- package/lib/localizations.module.d.ts +10 -10
- package/lib/localizations.service.d.ts +74 -74
- package/lib/models/BaseLocalizationTokens.d.ts +12 -12
- package/lib/models/ItemLocalization.d.ts +17 -17
- package/lib/models/LocaleDefinitions.d.ts +20 -20
- package/lib/models/LocaleObject.d.ts +18 -18
- package/lib/models/LocalizationMissingPolicy.d.ts +9 -9
- package/lib/models/LocalizationModuleConfig.d.ts +19 -19
- package/lib/models/SpecializedLocalization.d.ts +14 -14
- package/lib/pipes/localize.pipe.d.ts +28 -28
- package/lib/tokens.d.ts +8 -8
- package/package.json +3 -3
- package/public-api.d.ts +8 -8
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Generated bundle index. Do not edit.
|
|
3
|
-
*/
|
|
4
|
-
export * from './public-api';
|
|
1
|
+
/**
|
|
2
|
+
* Generated bundle index. Do not edit.
|
|
3
|
+
*/
|
|
4
|
+
export * from './public-api';
|
|
5
5
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXNmYWVuemEtbG9jYWxpemF0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2VzZmFlbnphLWxvY2FsaXphdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
|
|
@@ -1,80 +1,80 @@
|
|
|
1
|
-
import { Inject, Injectable } from "@angular/core";
|
|
2
|
-
import { LocalizationPersistor } from "./localization.persistor";
|
|
3
|
-
import { BaseLocalizationTokens } from "../models/BaseLocalizationTokens";
|
|
4
|
-
import { take } from "rxjs/operators";
|
|
5
|
-
import { ReplaySubject } from "rxjs";
|
|
6
|
-
import { LOC_LOCALE } from "../tokens";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../locale-persistor/LocalePersistor";
|
|
9
|
-
/**
|
|
10
|
-
* Classe singleton che contiene le traduzioni di base (per evitare di ripeterle in oggi classe di traduzione) e le funzioni base per
|
|
11
|
-
* inserire e leggere traduzioni in/da una cache
|
|
12
|
-
*/
|
|
13
|
-
export class BaseLocalization {
|
|
14
|
-
/**
|
|
15
|
-
* Costruttore. Da qui utilizzando il metodo statico **BaseLocalization.set** si va a popolare la cache delle traduzioni **BaseTranslations**
|
|
16
|
-
*/
|
|
17
|
-
constructor(LocalePersistor, defaultLocale) {
|
|
18
|
-
this.LocalePersistor = LocalePersistor;
|
|
19
|
-
/**
|
|
20
|
-
* Cache di tutte le localizzazioni di base
|
|
21
|
-
*/
|
|
22
|
-
this.LocCache = {};
|
|
23
|
-
/**
|
|
24
|
-
* Locale di riferimento per tutte le traduzioni
|
|
25
|
-
*/
|
|
26
|
-
this.Locale = new ReplaySubject(1);
|
|
27
|
-
// Recupero il locale alla partenza del BaseLocalization in modo, spero di dare tempo all'applicazione di tirarlo su
|
|
28
|
-
this.LocalePersistor.recover().pipe(take(1)).subscribe(async (l) => {
|
|
29
|
-
if (!l) {
|
|
30
|
-
l = defaultLocale;
|
|
31
|
-
this.LocalePersistor.persist(defaultLocale);
|
|
32
|
-
}
|
|
33
|
-
this.Locale.next(l);
|
|
34
|
-
});
|
|
35
|
-
this.Persistor = new LocalizationPersistor(this.LocCache);
|
|
36
|
-
this.Persistor.set("it->en", "Sì", ["Yes"]);
|
|
37
|
-
this.Persistor.set("it->en", "No", ["No"]);
|
|
38
|
-
this.Persistor.set("it->en", "Errore", ["Error"]);
|
|
39
|
-
this.Persistor.set("it->en", "Avviso", ["Warning"]);
|
|
40
|
-
this.Persistor.set("it->en", "Informazione", ["Information"]);
|
|
41
|
-
this.Persistor.set("it->en", "Salva", ["Save"]);
|
|
42
|
-
this.Persistor.set("it->en", "Indietro", ["Back"]);
|
|
43
|
-
this.Persistor.set("it->en", "Da", ["From"]);
|
|
44
|
-
this.Persistor.set("it->en", "A", ["To"]);
|
|
45
|
-
this.Persistor.set("it->en", "Note", ["Notes"]);
|
|
46
|
-
this.Persistor.set("it->en", "Modifica Note", ["Edit Notes"]);
|
|
47
|
-
this.Persistor.set("it->en", "Annulla", ["Cancel"]);
|
|
48
|
-
this.Persistor.set("it->en", "Conferma", ["Confirm"]);
|
|
49
|
-
this.Persistor.set("it->en", "Visualizza", ["View"]);
|
|
50
|
-
this.Persistor.set("it->en", "Elimina", ["Delete"]);
|
|
51
|
-
this.Persistor.set("it->en", "Chiudi", ["Close"]);
|
|
52
|
-
this.Persistor.set("it->en", "Seleziona", ["Select"]);
|
|
53
|
-
this.Persistor.set("it->en", "Elettricità", ["Electricity"]);
|
|
54
|
-
this.Persistor.set("it->en", "Gas", ["Gas"]);
|
|
55
|
-
this.Persistor.set("it->en", "Acqua", ["Water"]);
|
|
56
|
-
this.Persistor.set("it->en", "Questa operazione non può essere annullata", ["This operation cannot be reverted"]);
|
|
57
|
-
this.Persistor.set("it->en", "Nascondi", ["Hide"]);
|
|
58
|
-
// Informazioni sulle date
|
|
59
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDateMonthPosition, "0", ["1"]);
|
|
60
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDisplayDateMonthPosition, "1", ["1"]);
|
|
61
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getLocale, "en-US", ["it-IT"]);
|
|
62
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getSmallDateFormat, "MM/DD/YYYY", ["DD/MM/YYYY"]);
|
|
63
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDefaultDateFormat, "MM/DD/YYYY", ["MM/DD/YYYY"]);
|
|
64
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getSmallDateDisplayFormat, "DD/MM/YYYY", ["DD/MM/YYYY"]);
|
|
65
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateFormat, "MM/DD/YYYY HH:mm:ss", ["DD/MM/YYYY HH:mm:ss"]);
|
|
66
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateDisplayFormat, "DD/MM/YYYY HH:mm:ss", ["DD/MM/YYYY HH:mm:ss"]);
|
|
67
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateFormatNoSeconds, "MM/DD/YYYY HH:mm", ["DD/MM/YYYY HH:mm"]);
|
|
68
|
-
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateDisplayFormatNoSeconds, "DD/MM/YYYY HH:mm", ["DD/MM/YYYY HH:mm"]);
|
|
69
|
-
}
|
|
70
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
71
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
72
|
-
}
|
|
73
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
74
|
-
type: Injectable,
|
|
75
|
-
args: [{ providedIn: 'root' }]
|
|
76
|
-
}], ctorParameters:
|
|
77
|
-
type: Inject,
|
|
78
|
-
args: [LOC_LOCALE]
|
|
79
|
-
}] }]
|
|
80
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2NhbGl6YXRpb25zL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24uYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFdkM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQWlCekI7O09BRUc7SUFDSCxZQUFtQixlQUFnQyxFQUFzQixhQUFxQjtRQUEzRSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFsQm5EOztXQUVHO1FBQ0ksYUFBUSxHQUF1QyxFQUFFLENBQUM7UUFPekQ7O1dBRUc7UUFDSSxXQUFNLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBT2hFLG9IQUFvSDtRQUNwSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO1lBQzdELElBQUksQ0FBQyxDQUFDLEVBQUU7Z0JBQ0osQ0FBQyxHQUFHLGFBQWEsQ0FBQztnQkFDbEIsSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLENBQUM7YUFDL0M7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQTtRQUN2QixDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxxQkFBcUIsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUM7UUFFMUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDNUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDM0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGNBQWMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDbkQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7UUFDMUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE1BQU0sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDaEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFFBQVEsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLGFBQWEsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDN0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLEtBQUssRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7UUFDN0MsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLDRDQUE0QyxFQUFFLENBQUMsbUNBQW1DLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBRW5ELDBCQUEwQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUMzRixJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsMkJBQTJCLEVBQUUsR0FBRyxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsU0FBUyxFQUFFLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7UUFDeEYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLGtCQUFrQixFQUFFLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDM0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLG9CQUFvQixFQUFFLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDN0csSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLHlCQUF5QixFQUFFLFlBQVksRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDbEgsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLGlCQUFpQixFQUFFLHFCQUFxQixFQUFFLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO1FBQzVILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyx3QkFBd0IsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUNuSSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsMEJBQTBCLEVBQUUsa0JBQWtCLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUM7UUFDL0gsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLGlDQUFpQyxFQUFFLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO0lBQzFJLENBQUM7K0dBbkVRLGdCQUFnQixpREFvQm9DLFVBQVU7bUhBcEI5RCxnQkFBZ0IsY0FESCxNQUFNOzs0RkFDbkIsZ0JBQWdCO2tCQUQ1QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRTs7MEJBcUJ3QixNQUFNOzJCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBJdGVtTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9JdGVtTG9jYWxpemF0aW9uXCI7XHJcbmltcG9ydCB7IExvY2FsaXphdGlvblBlcnNpc3RvciB9IGZyb20gXCIuL2xvY2FsaXphdGlvbi5wZXJzaXN0b3JcIjtcclxuaW1wb3J0IHsgQmFzZUxvY2FsaXphdGlvblRva2VucyB9IGZyb20gXCIuLi9tb2RlbHMvQmFzZUxvY2FsaXphdGlvblRva2Vuc1wiO1xyXG5pbXBvcnQgeyBMb2NhbGVQZXJzaXN0b3IgfSBmcm9tIFwiLi4vbG9jYWxlLXBlcnNpc3Rvci9Mb2NhbGVQZXJzaXN0b3JcIjtcclxuaW1wb3J0IHsgdGFrZSB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xyXG5pbXBvcnQgeyBSZXBsYXlTdWJqZWN0IH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgTE9DX0xPQ0FMRSB9IGZyb20gXCIuLi90b2tlbnNcIjtcclxuXHJcbi8qKlxyXG4gKiBDbGFzc2Ugc2luZ2xldG9uIGNoZSBjb250aWVuZSBsZSB0cmFkdXppb25pIGRpIGJhc2UgKHBlciBldml0YXJlIGRpIHJpcGV0ZXJsZSBpbiBvZ2dpIGNsYXNzZSBkaSB0cmFkdXppb25lKSBlIGxlIGZ1bnppb25pIGJhc2UgcGVyIFxyXG4gKiBpbnNlcmlyZSBlIGxlZ2dlcmUgdHJhZHV6aW9uaSBpbi9kYSB1bmEgY2FjaGVcclxuICovXHJcbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXHJcbmV4cG9ydCBjbGFzcyBCYXNlTG9jYWxpemF0aW9uIHtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENhY2hlIGRpIHR1dHRlIGxlIGxvY2FsaXp6YXppb25pIGRpIGJhc2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIExvY0NhY2hlOiB7IFtpZDogc3RyaW5nXTogSXRlbUxvY2FsaXphdGlvbiB9ID0ge307XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBQZXJzaXN0b3IgZGVsbGUgbG9jYWxpenphemlvbmkgcmVsYXRpdm8gYSBxdWVzdGEgY2xhc3NlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBQZXJzaXN0b3I6IExvY2FsaXphdGlvblBlcnNpc3RvcjtcclxuXHJcbiAgICAvKipcclxuICAgICAqIExvY2FsZSBkaSByaWZlcmltZW50byBwZXIgdHV0dGUgbGUgdHJhZHV6aW9uaVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgTG9jYWxlOiBSZXBsYXlTdWJqZWN0PHN0cmluZz4gPSBuZXcgUmVwbGF5U3ViamVjdDxzdHJpbmc+KDEpO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogQ29zdHJ1dHRvcmUuIERhIHF1aSB1dGlsaXp6YW5kbyBpbCBtZXRvZG8gc3RhdGljbyAqKkJhc2VMb2NhbGl6YXRpb24uc2V0Kiogc2kgdmEgYSBwb3BvbGFyZSBsYSBjYWNoZSBkZWxsZSB0cmFkdXppb25pICoqQmFzZVRyYW5zbGF0aW9ucyoqXHJcbiAgICAgKi9cclxuICAgIGNvbnN0cnVjdG9yKHB1YmxpYyBMb2NhbGVQZXJzaXN0b3I6IExvY2FsZVBlcnNpc3RvciwgQEluamVjdChMT0NfTE9DQUxFKSBkZWZhdWx0TG9jYWxlOiBzdHJpbmcpIHtcclxuXHJcbiAgICAgICAgLy8gUmVjdXBlcm8gaWwgbG9jYWxlIGFsbGEgcGFydGVuemEgZGVsIEJhc2VMb2NhbGl6YXRpb24gaW4gbW9kbywgc3Blcm8gZGkgZGFyZSB0ZW1wbyBhbGwnYXBwbGljYXppb25lIGRpIHRpcmFybG8gc3VcclxuICAgICAgICB0aGlzLkxvY2FsZVBlcnNpc3Rvci5yZWNvdmVyKCkucGlwZSh0YWtlKDEpKS5zdWJzY3JpYmUoYXN5bmMgbCA9PiB7XHJcbiAgICAgICAgICAgIGlmICghbCkge1xyXG4gICAgICAgICAgICAgICAgbCA9IGRlZmF1bHRMb2NhbGU7XHJcbiAgICAgICAgICAgICAgICB0aGlzLkxvY2FsZVBlcnNpc3Rvci5wZXJzaXN0KGRlZmF1bHRMb2NhbGUpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIHRoaXMuTG9jYWxlLm5leHQobClcclxuICAgICAgICB9KTtcclxuXHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3IgPSBuZXcgTG9jYWxpemF0aW9uUGVyc2lzdG9yKHRoaXMuTG9jQ2FjaGUpOyBcclxuXHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiU8OsXCIsIFtcIlllc1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTm9cIiwgW1wiTm9cIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkVycm9yZVwiLCBbXCJFcnJvclwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQXZ2aXNvXCIsIFtcIldhcm5pbmdcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkluZm9ybWF6aW9uZVwiLCBbXCJJbmZvcm1hdGlvblwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiU2FsdmFcIiwgW1wiU2F2ZVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiSW5kaWV0cm9cIiwgW1wiQmFja1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiRGFcIiwgW1wiRnJvbVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQVwiLCBbXCJUb1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTm90ZVwiLCBbXCJOb3Rlc1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTW9kaWZpY2EgTm90ZVwiLCBbXCJFZGl0IE5vdGVzXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJBbm51bGxhXCIsIFtcIkNhbmNlbFwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQ29uZmVybWFcIiwgW1wiQ29uZmlybVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiVmlzdWFsaXp6YVwiLCBbXCJWaWV3XCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJFbGltaW5hXCIsIFtcIkRlbGV0ZVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQ2hpdWRpXCIsIFtcIkNsb3NlXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJTZWxlemlvbmFcIiwgW1wiU2VsZWN0XCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJFbGV0dHJpY2l0w6BcIiwgW1wiRWxlY3RyaWNpdHlcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkdhc1wiLCBbXCJHYXNcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkFjcXVhXCIsIFtcIldhdGVyXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJRdWVzdGEgb3BlcmF6aW9uZSBub24gcHXDsiBlc3NlcmUgYW5udWxsYXRhXCIsIFtcIlRoaXMgb3BlcmF0aW9uIGNhbm5vdCBiZSByZXZlcnRlZFwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiTmFzY29uZGlcIiwgW1wiSGlkZVwiXSk7XHJcblxyXG4gICAgICAgIC8vIEluZm9ybWF6aW9uaSBzdWxsZSBkYXRlXHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXREYXRlTW9udGhQb3NpdGlvbiwgXCIwXCIsIFtcIjFcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RGlzcGxheURhdGVNb250aFBvc2l0aW9uLCBcIjFcIiwgW1wiMVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXRMb2NhbGUsIFwiZW4tVVNcIiwgW1wiaXQtSVRcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0U21hbGxEYXRlRm9ybWF0LCBcIk1NL0REL1lZWVlcIiwgW1wiREQvTU0vWVlZWVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXREZWZhdWx0RGF0ZUZvcm1hdCwgXCJNTS9ERC9ZWVlZXCIsIFtcIk1NL0REL1lZWVlcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0U21hbGxEYXRlRGlzcGxheUZvcm1hdCwgXCJERC9NTS9ZWVlZXCIsIFtcIkREL01NL1lZWVlcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RnVsbERhdGVGb3JtYXQsIFwiTU0vREQvWVlZWSBISDptbTpzc1wiLCBbXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdCwgXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCIsIFtcIkREL01NL1lZWVkgSEg6bW06c3NcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RnVsbERhdGVGb3JtYXROb1NlY29uZHMsIFwiTU0vREQvWVlZWSBISDptbVwiLCBbXCJERC9NTS9ZWVlZIEhIOm1tXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldEZ1bGxEYXRlRGlzcGxheUZvcm1hdE5vU2Vjb25kcywgXCJERC9NTS9ZWVlZIEhIOm1tXCIsIFtcIkREL01NL1lZWVkgSEg6bW1cIl0pO1xyXG4gICAgfVxyXG59Il19
|
|
1
|
+
import { Inject, Injectable } from "@angular/core";
|
|
2
|
+
import { LocalizationPersistor } from "./localization.persistor";
|
|
3
|
+
import { BaseLocalizationTokens } from "../models/BaseLocalizationTokens";
|
|
4
|
+
import { take } from "rxjs/operators";
|
|
5
|
+
import { ReplaySubject } from "rxjs";
|
|
6
|
+
import { LOC_LOCALE } from "../tokens";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
import * as i1 from "../locale-persistor/LocalePersistor";
|
|
9
|
+
/**
|
|
10
|
+
* Classe singleton che contiene le traduzioni di base (per evitare di ripeterle in oggi classe di traduzione) e le funzioni base per
|
|
11
|
+
* inserire e leggere traduzioni in/da una cache
|
|
12
|
+
*/
|
|
13
|
+
export class BaseLocalization {
|
|
14
|
+
/**
|
|
15
|
+
* Costruttore. Da qui utilizzando il metodo statico **BaseLocalization.set** si va a popolare la cache delle traduzioni **BaseTranslations**
|
|
16
|
+
*/
|
|
17
|
+
constructor(LocalePersistor, defaultLocale) {
|
|
18
|
+
this.LocalePersistor = LocalePersistor;
|
|
19
|
+
/**
|
|
20
|
+
* Cache di tutte le localizzazioni di base
|
|
21
|
+
*/
|
|
22
|
+
this.LocCache = {};
|
|
23
|
+
/**
|
|
24
|
+
* Locale di riferimento per tutte le traduzioni
|
|
25
|
+
*/
|
|
26
|
+
this.Locale = new ReplaySubject(1);
|
|
27
|
+
// Recupero il locale alla partenza del BaseLocalization in modo, spero di dare tempo all'applicazione di tirarlo su
|
|
28
|
+
this.LocalePersistor.recover().pipe(take(1)).subscribe(async (l) => {
|
|
29
|
+
if (!l) {
|
|
30
|
+
l = defaultLocale;
|
|
31
|
+
this.LocalePersistor.persist(defaultLocale);
|
|
32
|
+
}
|
|
33
|
+
this.Locale.next(l);
|
|
34
|
+
});
|
|
35
|
+
this.Persistor = new LocalizationPersistor(this.LocCache);
|
|
36
|
+
this.Persistor.set("it->en", "Sì", ["Yes"]);
|
|
37
|
+
this.Persistor.set("it->en", "No", ["No"]);
|
|
38
|
+
this.Persistor.set("it->en", "Errore", ["Error"]);
|
|
39
|
+
this.Persistor.set("it->en", "Avviso", ["Warning"]);
|
|
40
|
+
this.Persistor.set("it->en", "Informazione", ["Information"]);
|
|
41
|
+
this.Persistor.set("it->en", "Salva", ["Save"]);
|
|
42
|
+
this.Persistor.set("it->en", "Indietro", ["Back"]);
|
|
43
|
+
this.Persistor.set("it->en", "Da", ["From"]);
|
|
44
|
+
this.Persistor.set("it->en", "A", ["To"]);
|
|
45
|
+
this.Persistor.set("it->en", "Note", ["Notes"]);
|
|
46
|
+
this.Persistor.set("it->en", "Modifica Note", ["Edit Notes"]);
|
|
47
|
+
this.Persistor.set("it->en", "Annulla", ["Cancel"]);
|
|
48
|
+
this.Persistor.set("it->en", "Conferma", ["Confirm"]);
|
|
49
|
+
this.Persistor.set("it->en", "Visualizza", ["View"]);
|
|
50
|
+
this.Persistor.set("it->en", "Elimina", ["Delete"]);
|
|
51
|
+
this.Persistor.set("it->en", "Chiudi", ["Close"]);
|
|
52
|
+
this.Persistor.set("it->en", "Seleziona", ["Select"]);
|
|
53
|
+
this.Persistor.set("it->en", "Elettricità", ["Electricity"]);
|
|
54
|
+
this.Persistor.set("it->en", "Gas", ["Gas"]);
|
|
55
|
+
this.Persistor.set("it->en", "Acqua", ["Water"]);
|
|
56
|
+
this.Persistor.set("it->en", "Questa operazione non può essere annullata", ["This operation cannot be reverted"]);
|
|
57
|
+
this.Persistor.set("it->en", "Nascondi", ["Hide"]);
|
|
58
|
+
// Informazioni sulle date
|
|
59
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDateMonthPosition, "0", ["1"]);
|
|
60
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDisplayDateMonthPosition, "1", ["1"]);
|
|
61
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getLocale, "en-US", ["it-IT"]);
|
|
62
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getSmallDateFormat, "MM/DD/YYYY", ["DD/MM/YYYY"]);
|
|
63
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getDefaultDateFormat, "MM/DD/YYYY", ["MM/DD/YYYY"]);
|
|
64
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getSmallDateDisplayFormat, "DD/MM/YYYY", ["DD/MM/YYYY"]);
|
|
65
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateFormat, "MM/DD/YYYY HH:mm:ss", ["DD/MM/YYYY HH:mm:ss"]);
|
|
66
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateDisplayFormat, "DD/MM/YYYY HH:mm:ss", ["DD/MM/YYYY HH:mm:ss"]);
|
|
67
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateFormatNoSeconds, "MM/DD/YYYY HH:mm", ["DD/MM/YYYY HH:mm"]);
|
|
68
|
+
this.Persistor.setToken("en->it", BaseLocalizationTokens.getFullDateDisplayFormatNoSeconds, "DD/MM/YYYY HH:mm", ["DD/MM/YYYY HH:mm"]);
|
|
69
|
+
}
|
|
70
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseLocalization, deps: [{ token: i1.LocalePersistor }, { token: LOC_LOCALE }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
71
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseLocalization, providedIn: 'root' }); }
|
|
72
|
+
}
|
|
73
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BaseLocalization, decorators: [{
|
|
74
|
+
type: Injectable,
|
|
75
|
+
args: [{ providedIn: 'root' }]
|
|
76
|
+
}], ctorParameters: () => [{ type: i1.LocalePersistor }, { type: undefined, decorators: [{
|
|
77
|
+
type: Inject,
|
|
78
|
+
args: [LOC_LOCALE]
|
|
79
|
+
}] }] });
|
|
80
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLmJhc2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2NhbGl6YXRpb25zL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24uYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVuRCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUNqRSxPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUxRSxPQUFPLEVBQUUsSUFBSSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNyQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sV0FBVyxDQUFDOzs7QUFFdkM7OztHQUdHO0FBRUgsTUFBTSxPQUFPLGdCQUFnQjtJQWlCekI7O09BRUc7SUFDSCxZQUFtQixlQUFnQyxFQUFzQixhQUFxQjtRQUEzRSxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFsQm5EOztXQUVHO1FBQ0ksYUFBUSxHQUF1QyxFQUFFLENBQUM7UUFPekQ7O1dBRUc7UUFDSSxXQUFNLEdBQTBCLElBQUksYUFBYSxDQUFTLENBQUMsQ0FBQyxDQUFDO1FBT2hFLG9IQUFvSDtRQUNwSCxJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFDLENBQUMsRUFBQyxFQUFFO1lBQzdELElBQUksQ0FBQyxDQUFDLEVBQUUsQ0FBQztnQkFDTCxDQUFDLEdBQUcsYUFBYSxDQUFDO2dCQUNsQixJQUFJLENBQUMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsQ0FBQztZQUNoRCxDQUFDO1lBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUE7UUFDdkIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUkscUJBQXFCLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBRTFELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzNDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxjQUFjLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ25ELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxNQUFNLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2hELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxVQUFVLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxZQUFZLEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3JELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxTQUFTLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxRQUFRLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDO1FBQzdELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQzdDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSw0Q0FBNEMsRUFBRSxDQUFDLG1DQUFtQyxDQUFDLENBQUMsQ0FBQztRQUNsSCxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLEVBQUUsVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUVuRCwwQkFBMEI7UUFDMUIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLG9CQUFvQixFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDM0YsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLDJCQUEyQixFQUFFLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDO1FBQ3hGLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxrQkFBa0IsRUFBRSxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzNHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxvQkFBb0IsRUFBRSxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQzdHLElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyx5QkFBeUIsRUFBRSxZQUFZLEVBQUUsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBQ2xILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxpQkFBaUIsRUFBRSxxQkFBcUIsRUFBRSxDQUFDLHFCQUFxQixDQUFDLENBQUMsQ0FBQztRQUM1SCxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsc0JBQXNCLENBQUMsd0JBQXdCLEVBQUUscUJBQXFCLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLENBQUM7UUFDbkksSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLHNCQUFzQixDQUFDLDBCQUEwQixFQUFFLGtCQUFrQixFQUFFLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxDQUFDO1FBQy9ILElBQUksQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxzQkFBc0IsQ0FBQyxpQ0FBaUMsRUFBRSxrQkFBa0IsRUFBRSxDQUFDLGtCQUFrQixDQUFDLENBQUMsQ0FBQztJQUMxSSxDQUFDOytHQW5FUSxnQkFBZ0IsaURBb0JvQyxVQUFVO21IQXBCOUQsZ0JBQWdCLGNBREgsTUFBTTs7NEZBQ25CLGdCQUFnQjtrQkFENUIsVUFBVTttQkFBQyxFQUFFLFVBQVUsRUFBRSxNQUFNLEVBQUU7OzBCQXFCd0IsTUFBTTsyQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgSXRlbUxvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvSXRlbUxvY2FsaXphdGlvblwiO1xyXG5pbXBvcnQgeyBMb2NhbGl6YXRpb25QZXJzaXN0b3IgfSBmcm9tIFwiLi9sb2NhbGl6YXRpb24ucGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7IEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMgfSBmcm9tIFwiLi4vbW9kZWxzL0Jhc2VMb2NhbGl6YXRpb25Ub2tlbnNcIjtcclxuaW1wb3J0IHsgTG9jYWxlUGVyc2lzdG9yIH0gZnJvbSBcIi4uL2xvY2FsZS1wZXJzaXN0b3IvTG9jYWxlUGVyc2lzdG9yXCI7XHJcbmltcG9ydCB7IHRha2UgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcclxuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IExPQ19MT0NBTEUgfSBmcm9tIFwiLi4vdG9rZW5zXCI7XHJcblxyXG4vKipcclxuICogQ2xhc3NlIHNpbmdsZXRvbiBjaGUgY29udGllbmUgbGUgdHJhZHV6aW9uaSBkaSBiYXNlIChwZXIgZXZpdGFyZSBkaSByaXBldGVybGUgaW4gb2dnaSBjbGFzc2UgZGkgdHJhZHV6aW9uZSkgZSBsZSBmdW56aW9uaSBiYXNlIHBlciBcclxuICogaW5zZXJpcmUgZSBsZWdnZXJlIHRyYWR1emlvbmkgaW4vZGEgdW5hIGNhY2hlXHJcbiAqL1xyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgQmFzZUxvY2FsaXphdGlvbiB7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBDYWNoZSBkaSB0dXR0ZSBsZSBsb2NhbGl6emF6aW9uaSBkaSBiYXNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBMb2NDYWNoZTogeyBbaWQ6IHN0cmluZ106IEl0ZW1Mb2NhbGl6YXRpb24gfSA9IHt9O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGVyc2lzdG9yIGRlbGxlIGxvY2FsaXp6YXppb25pIHJlbGF0aXZvIGEgcXVlc3RhIGNsYXNzZVxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgUGVyc2lzdG9yOiBMb2NhbGl6YXRpb25QZXJzaXN0b3I7XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBMb2NhbGUgZGkgcmlmZXJpbWVudG8gcGVyIHR1dHRlIGxlIHRyYWR1emlvbmlcclxuICAgICAqL1xyXG4gICAgcHVibGljIExvY2FsZTogUmVwbGF5U3ViamVjdDxzdHJpbmc+ID0gbmV3IFJlcGxheVN1YmplY3Q8c3RyaW5nPigxKTtcclxuXHJcbiAgICAvKipcclxuICAgICAqIENvc3RydXR0b3JlLiBEYSBxdWkgdXRpbGl6emFuZG8gaWwgbWV0b2RvIHN0YXRpY28gKipCYXNlTG9jYWxpemF0aW9uLnNldCoqIHNpIHZhIGEgcG9wb2xhcmUgbGEgY2FjaGUgZGVsbGUgdHJhZHV6aW9uaSAqKkJhc2VUcmFuc2xhdGlvbnMqKlxyXG4gICAgICovXHJcbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgTG9jYWxlUGVyc2lzdG9yOiBMb2NhbGVQZXJzaXN0b3IsIEBJbmplY3QoTE9DX0xPQ0FMRSkgZGVmYXVsdExvY2FsZTogc3RyaW5nKSB7XHJcblxyXG4gICAgICAgIC8vIFJlY3VwZXJvIGlsIGxvY2FsZSBhbGxhIHBhcnRlbnphIGRlbCBCYXNlTG9jYWxpemF0aW9uIGluIG1vZG8sIHNwZXJvIGRpIGRhcmUgdGVtcG8gYWxsJ2FwcGxpY2F6aW9uZSBkaSB0aXJhcmxvIHN1XHJcbiAgICAgICAgdGhpcy5Mb2NhbGVQZXJzaXN0b3IucmVjb3ZlcigpLnBpcGUodGFrZSgxKSkuc3Vic2NyaWJlKGFzeW5jIGwgPT4ge1xyXG4gICAgICAgICAgICBpZiAoIWwpIHtcclxuICAgICAgICAgICAgICAgIGwgPSBkZWZhdWx0TG9jYWxlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5Mb2NhbGVQZXJzaXN0b3IucGVyc2lzdChkZWZhdWx0TG9jYWxlKTtcclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB0aGlzLkxvY2FsZS5uZXh0KGwpXHJcbiAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yID0gbmV3IExvY2FsaXphdGlvblBlcnNpc3Rvcih0aGlzLkxvY0NhY2hlKTsgXHJcblxyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIlPDrFwiLCBbXCJZZXNcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIk5vXCIsIFtcIk5vXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJFcnJvcmVcIiwgW1wiRXJyb3JcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkF2dmlzb1wiLCBbXCJXYXJuaW5nXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJJbmZvcm1hemlvbmVcIiwgW1wiSW5mb3JtYXRpb25cIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIlNhbHZhXCIsIFtcIlNhdmVcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkluZGlldHJvXCIsIFtcIkJhY2tcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkRhXCIsIFtcIkZyb21cIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkFcIiwgW1wiVG9cIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIk5vdGVcIiwgW1wiTm90ZXNcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIk1vZGlmaWNhIE5vdGVcIiwgW1wiRWRpdCBOb3Rlc1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiQW5udWxsYVwiLCBbXCJDYW5jZWxcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkNvbmZlcm1hXCIsIFtcIkNvbmZpcm1cIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIlZpc3VhbGl6emFcIiwgW1wiVmlld1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiRWxpbWluYVwiLCBbXCJEZWxldGVcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIkNoaXVkaVwiLCBbXCJDbG9zZVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiU2VsZXppb25hXCIsIFtcIlNlbGVjdFwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiRWxldHRyaWNpdMOgXCIsIFtcIkVsZWN0cmljaXR5XCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJHYXNcIiwgW1wiR2FzXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXQoXCJpdC0+ZW5cIiwgXCJBY3F1YVwiLCBbXCJXYXRlclwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0KFwiaXQtPmVuXCIsIFwiUXVlc3RhIG9wZXJhemlvbmUgbm9uIHB1w7IgZXNzZXJlIGFubnVsbGF0YVwiLCBbXCJUaGlzIG9wZXJhdGlvbiBjYW5ub3QgYmUgcmV2ZXJ0ZWRcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldChcIml0LT5lblwiLCBcIk5hc2NvbmRpXCIsIFtcIkhpZGVcIl0pO1xyXG5cclxuICAgICAgICAvLyBJbmZvcm1hemlvbmkgc3VsbGUgZGF0ZVxyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RGF0ZU1vbnRoUG9zaXRpb24sIFwiMFwiLCBbXCIxXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldERpc3BsYXlEYXRlTW9udGhQb3NpdGlvbiwgXCIxXCIsIFtcIjFcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0TG9jYWxlLCBcImVuLVVTXCIsIFtcIml0LUlUXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldFNtYWxsRGF0ZUZvcm1hdCwgXCJNTS9ERC9ZWVlZXCIsIFtcIkREL01NL1lZWVlcIl0pO1xyXG4gICAgICAgIHRoaXMuUGVyc2lzdG9yLnNldFRva2VuKFwiZW4tPml0XCIsIEJhc2VMb2NhbGl6YXRpb25Ub2tlbnMuZ2V0RGVmYXVsdERhdGVGb3JtYXQsIFwiTU0vREQvWVlZWVwiLCBbXCJNTS9ERC9ZWVlZXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldFNtYWxsRGF0ZURpc3BsYXlGb3JtYXQsIFwiREQvTU0vWVlZWVwiLCBbXCJERC9NTS9ZWVlZXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldEZ1bGxEYXRlRm9ybWF0LCBcIk1NL0REL1lZWVkgSEg6bW06c3NcIiwgW1wiREQvTU0vWVlZWSBISDptbTpzc1wiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXQsIFwiREQvTU0vWVlZWSBISDptbTpzc1wiLCBbXCJERC9NTS9ZWVlZIEhIOm1tOnNzXCJdKTtcclxuICAgICAgICB0aGlzLlBlcnNpc3Rvci5zZXRUb2tlbihcImVuLT5pdFwiLCBCYXNlTG9jYWxpemF0aW9uVG9rZW5zLmdldEZ1bGxEYXRlRm9ybWF0Tm9TZWNvbmRzLCBcIk1NL0REL1lZWVkgSEg6bW1cIiwgW1wiREQvTU0vWVlZWSBISDptbVwiXSk7XHJcbiAgICAgICAgdGhpcy5QZXJzaXN0b3Iuc2V0VG9rZW4oXCJlbi0+aXRcIiwgQmFzZUxvY2FsaXphdGlvblRva2Vucy5nZXRGdWxsRGF0ZURpc3BsYXlGb3JtYXROb1NlY29uZHMsIFwiREQvTU0vWVlZWSBISDptbVwiLCBbXCJERC9NTS9ZWVlZIEhIOm1tXCJdKTtcclxuICAgIH1cclxufSJdfQ==
|
|
@@ -1,103 +1,103 @@
|
|
|
1
|
-
import { ItemLocalization } from "../models/ItemLocalization";
|
|
2
|
-
import { LocaleDefinitions } from "../models/LocaleDefinitions";
|
|
3
|
-
import { SpecializedLocalization } from "../models/SpecializedLocalization";
|
|
4
|
-
export class LocalizationPersistor {
|
|
5
|
-
constructor(LocCache = null) {
|
|
6
|
-
this.LocCache = LocCache;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Imposta la localizzazione di un token all'interno della cache scelta
|
|
10
|
-
*
|
|
11
|
-
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
12
|
-
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
13
|
-
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
14
|
-
* @param {string} token Nome del token
|
|
15
|
-
* @param {string} left Valore del token per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
16
|
-
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
17
|
-
*/
|
|
18
|
-
setToken(direction, token, left, right) {
|
|
19
|
-
let parsingRegex = /([a-zA-Z]+)[\s]*->[\s]*([a-zA-Z,\s]+)+/g;
|
|
20
|
-
var parsingRes = parsingRegex.exec(direction);
|
|
21
|
-
let from = parsingRes[1];
|
|
22
|
-
let to = parsingRes[2].replace(/\s/g, '').split(',');
|
|
23
|
-
let localeFrom = LocaleDefinitions.getByAlias(from);
|
|
24
|
-
this._set(token, localeFrom.id, left, true);
|
|
25
|
-
to.forEach((t, index) => {
|
|
26
|
-
let localeTo = LocaleDefinitions.getByAlias(t);
|
|
27
|
-
this._set(token, localeTo.id, right[index], true);
|
|
28
|
-
});
|
|
29
|
-
}
|
|
30
|
-
/**
|
|
31
|
-
* Imposta la localizzazione di una frase all'interno della cache scelta
|
|
32
|
-
*
|
|
33
|
-
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
34
|
-
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
35
|
-
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
36
|
-
* @param {string} left Valore della frase per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
37
|
-
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
38
|
-
*/
|
|
39
|
-
set(direction, left, right) {
|
|
40
|
-
let parsingRegex = /([a-zA-Z]+)[\s]*->[\s]*([a-zA-Z,\s]+)+/g;
|
|
41
|
-
var parsingRes = parsingRegex.exec(direction);
|
|
42
|
-
let from = parsingRes[1];
|
|
43
|
-
let to = parsingRes[2].replace(/\s/g, '').split(',');
|
|
44
|
-
let localeFrom = LocaleDefinitions.getByAlias(from);
|
|
45
|
-
this._set(left, localeFrom.id, left);
|
|
46
|
-
to.forEach((t, index) => {
|
|
47
|
-
let localeTo = LocaleDefinitions.getByAlias(t);
|
|
48
|
-
this._set(left, localeTo.id, right[index]);
|
|
49
|
-
});
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Imposta all'interno della cache specificata un'unica traduzione partendo da un testo di base
|
|
53
|
-
*
|
|
54
|
-
* @param {string} text Testo da tradurre
|
|
55
|
-
* @param {string} culture Lingua per cui inserire la traduzione
|
|
56
|
-
* @param {string} translation Traduzione del **text** nella lingua specificata da **culture**
|
|
57
|
-
* @param {boolean} token Indica se il **text** è un token o è una frase normale
|
|
58
|
-
*/
|
|
59
|
-
_set(text, culture, translation, token) {
|
|
60
|
-
let item = this.get(text, token);
|
|
61
|
-
if (!item) {
|
|
62
|
-
this.LocCache[text] = new ItemLocalization(token, text, [new SpecializedLocalization(culture, translation)]);
|
|
63
|
-
return;
|
|
64
|
-
}
|
|
65
|
-
var trs = this.translationByCulture(item, culture);
|
|
66
|
-
if (trs) {
|
|
67
|
-
console.warn("Localization already loaded for sentence '" + text + "' and culture " + culture);
|
|
68
|
-
return;
|
|
69
|
-
}
|
|
70
|
-
item.translations.push(new SpecializedLocalization(culture, translation));
|
|
71
|
-
}
|
|
72
|
-
/**
|
|
73
|
-
* Partendo da una cache di localizzazione, dato un testo che può essere o meno un token, cerca quell'elemento all'interno della cache
|
|
74
|
-
*
|
|
75
|
-
* @param {string} text Testo da cercare nella **LocCache**
|
|
76
|
-
* @param {boolean} allowtokens Indica se l'elemento cercato può essere un token o se dev'essere per forza una frase (per evitare rari
|
|
77
|
-
* casi di collisione in cui magari un token è uguale a una frase tradotta)
|
|
78
|
-
*
|
|
79
|
-
* @returns {ItemLocalization} Informazioni di localizzazione per il **text** cercato
|
|
80
|
-
*/
|
|
81
|
-
get(text, allowtokens) {
|
|
82
|
-
let possibleItem = this.LocCache[text];
|
|
83
|
-
var item = possibleItem && (allowtokens || !possibleItem.token) ? possibleItem : null;
|
|
84
|
-
return item;
|
|
85
|
-
}
|
|
86
|
-
/**
|
|
87
|
-
* Date le informazioni di localizzazione per un testo cerca e restituisce la traduzione per una lingua specifica
|
|
88
|
-
*
|
|
89
|
-
* @param {ItemLocalization} Informazioni di localizzazione
|
|
90
|
-
* @param {string} culture Lingua della traduzione richiesta
|
|
91
|
-
*
|
|
92
|
-
* @returns {SpecializedLocalization} Informazioni di localizzazione specifiche della lingua richiesta
|
|
93
|
-
*/
|
|
94
|
-
translationByCulture(item, culture) {
|
|
95
|
-
for (let i = 0; i < item.translations.length; i++) {
|
|
96
|
-
let trl = item.translations[i];
|
|
97
|
-
if (trl.culture == culture)
|
|
98
|
-
return trl;
|
|
99
|
-
}
|
|
100
|
-
return null;
|
|
101
|
-
}
|
|
102
|
-
}
|
|
103
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnBlcnNpc3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi5wZXJzaXN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUFvQixXQUErQyxJQUFJO1FBQW5ELGFBQVEsR0FBUixRQUFRLENBQTJDO0lBQUksQ0FBQztJQUU1RTs7Ozs7Ozs7O09BU0c7SUFDSSxRQUFRLENBQUMsU0FBaUIsRUFBRSxLQUFhLEVBQUUsSUFBWSxFQUFFLEtBQWU7UUFDM0UsSUFBSSxZQUFZLEdBQUcseUNBQXlDLENBQUM7UUFDN0QsSUFBSSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxFQUFFLEdBQWEsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU1QyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFF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QUUsQ0FBQyxFQUFFLEVBQUU7WUFDL0MsSUFBSSxHQUFHLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMvQixJQUFJLEdBQUcsQ0FBQyxPQUFPLElBQUksT0FBTztnQkFDdEIsT0FBTyxHQUFHLENBQUM7U0FDbEI7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJdGVtTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9JdGVtTG9jYWxpemF0aW9uXCI7XHJcbmltcG9ydCB7IExvY2FsZURlZmluaXRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9Mb2NhbGVEZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBTcGVjaWFsaXplZExvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU3BlY2lhbGl6ZWRMb2NhbGl6YXRpb25cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25QZXJzaXN0b3Ige1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgTG9jQ2FjaGU6IHsgW2lkOiBzdHJpbmddOiBJdGVtTG9jYWxpemF0aW9uIH0gPSBudWxsKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGEgbG9jYWxpenphemlvbmUgZGkgdW4gdG9rZW4gYWxsJ2ludGVybm8gZGVsbGEgY2FjaGUgc2NlbHRhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb24gRGlyZXppb25lIGRlbGxhIHRyYWR1emlvbmUsIHJhcHByZXNlbnRhIGxhIGxpbmd1YSBiYXNlIGluIGN1aSBhc3BldHRhcnNpIGlsIHRlc3RvIGUgbGUgdmFyaWUgbGluZ3VlIGluIGN1aSB2aWVuZSB0cmFkb3R0YS5cclxuICAgICAqIEFkIGVzZW1waW8sIFwiZW4tPml0XCIgaW5kaWNhIGNoZSBpbCBwYXJhbWV0cm8gKipsZWZ0Kiogw6ggdmFsaWRvIHBlciBsZSBsb2NhbGl6emF6aW9uaSBpbiBpbmdsZXNlLCBtZW50cmUgbmVsbCdlbGVtZW50byAwIGRlbCBwYXJhbWV0cm8gKipyaWdodCoqIFxyXG4gICAgICogw6ggcHJlc2VudGUgbCd1bmljYSB0cmFkdXppb25lIGluIGl0YWxpYW5vLCBwZXIgZGVmaW5pcmUgcGnDuSB0cmFkdXppb25pIHN1bCBsYXRvIGRlc3RybyBkZWxsYSBmcmVjY2lhIGJpc29nbmEgY29uY2F0ZW5hcmxlIGNvbiBsYSB2aXJnb2xhLCBhZCBlc2VtcGlvIFwiZW4tPml0LGpwLGVjY1wiXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdG9rZW4gTm9tZSBkZWwgdG9rZW5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZWZ0IFZhbG9yZSBkZWwgdG9rZW4gcGVyIGxhIGxpbmd1YSBzcGVjaWZpY2F0YSBuZWwgbGF0byBpbW1lZGlhdGFtZW50ZSBzaW5pc3RybyBhbGxhIGZyZWNjaWEgZGVsIHBhcmFtZXRybyAqKmRpcmVjdGlvbioqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmlnaHQgQXJyYXkgY29uIGkgdmFsb3JpIGZhY2VudGkgcmlmZXJpbWVudG8gYWxsJ04tZXNpbWEgbGluZ3VhIGRlbCBsYXRvIGRlc3RybyBkZWwgcGFyYW1ldHJvICoqZGlyZWN0aW9uKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFRva2VuKGRpcmVjdGlvbjogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmdbXSkge1xyXG4gICAgICAgIGxldCBwYXJzaW5nUmVnZXggPSAvKFthLXpBLVpdKylbXFxzXSotPltcXHNdKihbYS16QS1aLFxcc10rKSsvZztcclxuICAgICAgICB2YXIgcGFyc2luZ1JlcyA9IHBhcnNpbmdSZWdleC5leGVjKGRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIGxldCBmcm9tID0gcGFyc2luZ1Jlc1sxXTtcclxuICAgICAgICBsZXQgdG86IHN0cmluZ1tdID0gcGFyc2luZ1Jlc1syXS5yZXBsYWNlKC9cXHMvZywgJycpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgbGV0IGxvY2FsZUZyb20gPSBMb2NhbGVEZWZpbml0aW9ucy5nZXRCeUFsaWFzKGZyb20pO1xyXG4gICAgICAgIHRoaXMuX3NldCh0b2tlbiwgbG9jYWxlRnJvbS5pZCwgbGVmdCwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIHRvLmZvckVhY2goKHQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhbGVUbyA9IExvY2FsZURlZmluaXRpb25zLmdldEJ5QWxpYXModCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldCh0b2tlbiwgbG9jYWxlVG8uaWQsIHJpZ2h0W2luZGV4XSwgdHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBvc3RhIGxhIGxvY2FsaXp6YXppb25lIGRpIHVuYSBmcmFzZSBhbGwnaW50ZXJubyBkZWxsYSBjYWNoZSBzY2VsdGFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRpcmVjdGlvbiBEaXJlemlvbmUgZGVsbGEgdHJhZHV6aW9uZSwgcmFwcHJlc2VudGEgbGEgbGluZ3VhIGJhc2UgaW4gY3VpIGFzcGV0dGFyc2kgaWwgdGVzdG8gZSBsZSB2YXJpZSBsaW5ndWUgaW4gY3VpIHZpZW5lIHRyYWRvdHRhLlxyXG4gICAgICogQWQgZXNlbXBpbywgXCJlbi0+aXRcIiBpbmRpY2EgY2hlIGlsIHBhcmFtZXRybyAqKmxlZnQqKiDDqCB2YWxpZG8gcGVyIGxlIGxvY2FsaXp6YXppb25pIGluIGluZ2xlc2UsIG1lbnRyZSBuZWxsJ2VsZW1lbnRvIDAgZGVsIHBhcmFtZXRybyAqKnJpZ2h0KiogXHJcbiAgICAgKiDDqCBwcmVzZW50ZSBsJ3VuaWNhIHRyYWR1emlvbmUgaW4gaXRhbGlhbm8sIHBlciBkZWZpbmlyZSBwacO5IHRyYWR1emlvbmkgc3VsIGxhdG8gZGVzdHJvIGRlbGxhIGZyZWNjaWEgYmlzb2duYSBjb25jYXRlbmFybGUgY29uIGxhIHZpcmdvbGEsIGFkIGVzZW1waW8gXCJlbi0+aXQsanAsZWNjXCJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZWZ0IFZhbG9yZSBkZWxsYSBmcmFzZSBwZXIgbGEgbGluZ3VhIHNwZWNpZmljYXRhIG5lbCBsYXRvIGltbWVkaWF0YW1lbnRlIHNpbmlzdHJvIGFsbGEgZnJlY2NpYSBkZWwgcGFyYW1ldHJvICoqZGlyZWN0aW9uKipcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSByaWdodCBBcnJheSBjb24gaSB2YWxvcmkgZmFjZW50aSByaWZlcmltZW50byBhbGwnTi1lc2ltYSBsaW5ndWEgZGVsIGxhdG8gZGVzdHJvIGRlbCBwYXJhbWV0cm8gKipkaXJlY3Rpb24qKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0KGRpcmVjdGlvbjogc3RyaW5nLCBsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmdbXSkge1xyXG4gICAgICAgIGxldCBwYXJzaW5nUmVnZXggPSAvKFthLXpBLVpdKylbXFxzXSotPltcXHNdKihbYS16QS1aLFxcc10rKSsvZztcclxuICAgICAgICB2YXIgcGFyc2luZ1JlcyA9IHBhcnNpbmdSZWdleC5leGVjKGRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIGxldCBmcm9tID0gcGFyc2luZ1Jlc1sxXTtcclxuICAgICAgICBsZXQgdG86IHN0cmluZ1tdID0gcGFyc2luZ1Jlc1syXS5yZXBsYWNlKC9cXHMvZywgJycpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgbGV0IGxvY2FsZUZyb20gPSBMb2NhbGVEZWZpbml0aW9ucy5nZXRCeUFsaWFzKGZyb20pO1xyXG4gICAgICAgIHRoaXMuX3NldChsZWZ0LCBsb2NhbGVGcm9tLmlkLCBsZWZ0KTtcclxuXHJcbiAgICAgICAgdG8uZm9yRWFjaCgodCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGxvY2FsZVRvID0gTG9jYWxlRGVmaW5pdGlvbnMuZ2V0QnlBbGlhcyh0KTtcclxuICAgICAgICAgICAgdGhpcy5fc2V0KGxlZnQsIGxvY2FsZVRvLmlkLCByaWdodFtpbmRleF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBhbGwnaW50ZXJubyBkZWxsYSBjYWNoZSBzcGVjaWZpY2F0YSB1bid1bmljYSB0cmFkdXppb25lIHBhcnRlbmRvIGRhIHVuIHRlc3RvIGRpIGJhc2VcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgVGVzdG8gZGEgdHJhZHVycmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjdWx0dXJlIExpbmd1YSBwZXIgY3VpIGluc2VyaXJlIGxhIHRyYWR1emlvbmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0cmFuc2xhdGlvbiBUcmFkdXppb25lIGRlbCAqKnRleHQqKiBuZWxsYSBsaW5ndWEgc3BlY2lmaWNhdGEgZGEgKipjdWx0dXJlKipcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdG9rZW4gSW5kaWNhIHNlIGlsICoqdGV4dCoqIMOoIHVuIHRva2VuIG8gw6ggdW5hIGZyYXNlIG5vcm1hbGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc2V0KHRleHQ6IHN0cmluZywgY3VsdHVyZTogc3RyaW5nLCB0cmFuc2xhdGlvbjogc3RyaW5nLCB0b2tlbj86IGJvb2xlYW4pIHtcclxuICAgICAgICBsZXQgaXRlbSA9IHRoaXMuZ2V0KHRleHQsIHRva2VuKTtcclxuICAgICAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5Mb2NDYWNoZVt0ZXh0XSA9IG5ldyBJdGVtTG9jYWxpemF0aW9uKHRva2VuLCB0ZXh0LCBbbmV3IFNwZWNpYWxpemVkTG9jYWxpemF0aW9uKGN1bHR1cmUsIHRyYW5zbGF0aW9uKV0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdHJzID0gdGhpcy50cmFuc2xhdGlvbkJ5Q3VsdHVyZShpdGVtLCBjdWx0dXJlKTtcclxuICAgICAgICBpZiAodHJzKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkxvY2FsaXphdGlvbiBhbHJlYWR5IGxvYWRlZCBmb3Igc2VudGVuY2UgJ1wiICsgdGV4dCArIFwiJyBhbmQgY3VsdHVyZSBcIiArIGN1bHR1cmUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpdGVtLnRyYW5zbGF0aW9ucy5wdXNoKG5ldyBTcGVjaWFsaXplZExvY2FsaXphdGlvbihjdWx0dXJlLCB0cmFuc2xhdGlvbikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGFydGVuZG8gZGEgdW5hIGNhY2hlIGRpIGxvY2FsaXp6YXppb25lLCBkYXRvIHVuIHRlc3RvIGNoZSBwdcOyIGVzc2VyZSBvIG1lbm8gdW4gdG9rZW4sIGNlcmNhIHF1ZWxsJ2VsZW1lbnRvIGFsbCdpbnRlcm5vIGRlbGxhIGNhY2hlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRlc3RvIGRhIGNlcmNhcmUgbmVsbGEgKipMb2NDYWNoZSoqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFsbG93dG9rZW5zIEluZGljYSBzZSBsJ2VsZW1lbnRvIGNlcmNhdG8gcHXDsiBlc3NlcmUgdW4gdG9rZW4gbyBzZSBkZXYnZXNzZXJlIHBlciBmb3J6YSB1bmEgZnJhc2UgKHBlciBldml0YXJlIHJhcmkgXHJcbiAgICAgKiBjYXNpIGRpIGNvbGxpc2lvbmUgaW4gY3VpIG1hZ2FyaSB1biB0b2tlbiDDqCB1Z3VhbGUgYSB1bmEgZnJhc2UgdHJhZG90dGEpXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtJdGVtTG9jYWxpemF0aW9ufSBJbmZvcm1hemlvbmkgZGkgbG9jYWxpenphemlvbmUgcGVyIGlsICoqdGV4dCoqIGNlcmNhdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCh0ZXh0OiBzdHJpbmcsIGFsbG93dG9rZW5zOiBib29sZWFuKTogSXRlbUxvY2FsaXphdGlvbiB7XHJcbiAgICAgICAgbGV0IHBvc3NpYmxlSXRlbTogSXRlbUxvY2FsaXphdGlvbiA9IHRoaXMuTG9jQ2FjaGVbdGV4dF07XHJcbiAgICAgICAgdmFyIGl0ZW0gPSBwb3NzaWJsZUl0ZW0gJiYgKGFsbG93dG9rZW5zIHx8ICFwb3NzaWJsZUl0ZW0udG9rZW4pID8gcG9zc2libGVJdGVtIDogbnVsbDtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgbGUgaW5mb3JtYXppb25pIGRpIGxvY2FsaXp6YXppb25lIHBlciB1biB0ZXN0byBjZXJjYSBlIHJlc3RpdHVpc2NlIGxhIHRyYWR1emlvbmUgcGVyIHVuYSBsaW5ndWEgc3BlY2lmaWNhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7SXRlbUxvY2FsaXphdGlvbn0gSW5mb3JtYXppb25pIGRpIGxvY2FsaXp6YXppb25lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3VsdHVyZSBMaW5ndWEgZGVsbGEgdHJhZHV6aW9uZSByaWNoaWVzdGFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge1NwZWNpYWxpemVkTG9jYWxpemF0aW9ufSBJbmZvcm1hemlvbmkgZGkgbG9jYWxpenphemlvbmUgc3BlY2lmaWNoZSBkZWxsYSBsaW5ndWEgcmljaGllc3RhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmFuc2xhdGlvbkJ5Q3VsdHVyZShpdGVtOiBJdGVtTG9jYWxpemF0aW9uLCBjdWx0dXJlOiBzdHJpbmcpOiBTcGVjaWFsaXplZExvY2FsaXphdGlvbiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtLnRyYW5zbGF0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgdHJsID0gaXRlbS50cmFuc2xhdGlvbnNbaV07XHJcbiAgICAgICAgICAgIGlmICh0cmwuY3VsdHVyZSA9PSBjdWx0dXJlKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRybDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59Il19
|
|
1
|
+
import { ItemLocalization } from "../models/ItemLocalization";
|
|
2
|
+
import { LocaleDefinitions } from "../models/LocaleDefinitions";
|
|
3
|
+
import { SpecializedLocalization } from "../models/SpecializedLocalization";
|
|
4
|
+
export class LocalizationPersistor {
|
|
5
|
+
constructor(LocCache = null) {
|
|
6
|
+
this.LocCache = LocCache;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Imposta la localizzazione di un token all'interno della cache scelta
|
|
10
|
+
*
|
|
11
|
+
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
12
|
+
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
13
|
+
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
14
|
+
* @param {string} token Nome del token
|
|
15
|
+
* @param {string} left Valore del token per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
16
|
+
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
17
|
+
*/
|
|
18
|
+
setToken(direction, token, left, right) {
|
|
19
|
+
let parsingRegex = /([a-zA-Z]+)[\s]*->[\s]*([a-zA-Z,\s]+)+/g;
|
|
20
|
+
var parsingRes = parsingRegex.exec(direction);
|
|
21
|
+
let from = parsingRes[1];
|
|
22
|
+
let to = parsingRes[2].replace(/\s/g, '').split(',');
|
|
23
|
+
let localeFrom = LocaleDefinitions.getByAlias(from);
|
|
24
|
+
this._set(token, localeFrom.id, left, true);
|
|
25
|
+
to.forEach((t, index) => {
|
|
26
|
+
let localeTo = LocaleDefinitions.getByAlias(t);
|
|
27
|
+
this._set(token, localeTo.id, right[index], true);
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Imposta la localizzazione di una frase all'interno della cache scelta
|
|
32
|
+
*
|
|
33
|
+
* @param {string} direction Direzione della traduzione, rappresenta la lingua base in cui aspettarsi il testo e le varie lingue in cui viene tradotta.
|
|
34
|
+
* Ad esempio, "en->it" indica che il parametro **left** è valido per le localizzazioni in inglese, mentre nell'elemento 0 del parametro **right**
|
|
35
|
+
* è presente l'unica traduzione in italiano, per definire più traduzioni sul lato destro della freccia bisogna concatenarle con la virgola, ad esempio "en->it,jp,ecc"
|
|
36
|
+
* @param {string} left Valore della frase per la lingua specificata nel lato immediatamente sinistro alla freccia del parametro **direction**
|
|
37
|
+
* @param {string} right Array con i valori facenti riferimento all'N-esima lingua del lato destro del parametro **direction**
|
|
38
|
+
*/
|
|
39
|
+
set(direction, left, right) {
|
|
40
|
+
let parsingRegex = /([a-zA-Z]+)[\s]*->[\s]*([a-zA-Z,\s]+)+/g;
|
|
41
|
+
var parsingRes = parsingRegex.exec(direction);
|
|
42
|
+
let from = parsingRes[1];
|
|
43
|
+
let to = parsingRes[2].replace(/\s/g, '').split(',');
|
|
44
|
+
let localeFrom = LocaleDefinitions.getByAlias(from);
|
|
45
|
+
this._set(left, localeFrom.id, left);
|
|
46
|
+
to.forEach((t, index) => {
|
|
47
|
+
let localeTo = LocaleDefinitions.getByAlias(t);
|
|
48
|
+
this._set(left, localeTo.id, right[index]);
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Imposta all'interno della cache specificata un'unica traduzione partendo da un testo di base
|
|
53
|
+
*
|
|
54
|
+
* @param {string} text Testo da tradurre
|
|
55
|
+
* @param {string} culture Lingua per cui inserire la traduzione
|
|
56
|
+
* @param {string} translation Traduzione del **text** nella lingua specificata da **culture**
|
|
57
|
+
* @param {boolean} token Indica se il **text** è un token o è una frase normale
|
|
58
|
+
*/
|
|
59
|
+
_set(text, culture, translation, token) {
|
|
60
|
+
let item = this.get(text, token);
|
|
61
|
+
if (!item) {
|
|
62
|
+
this.LocCache[text] = new ItemLocalization(token, text, [new SpecializedLocalization(culture, translation)]);
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
var trs = this.translationByCulture(item, culture);
|
|
66
|
+
if (trs) {
|
|
67
|
+
console.warn("Localization already loaded for sentence '" + text + "' and culture " + culture);
|
|
68
|
+
return;
|
|
69
|
+
}
|
|
70
|
+
item.translations.push(new SpecializedLocalization(culture, translation));
|
|
71
|
+
}
|
|
72
|
+
/**
|
|
73
|
+
* Partendo da una cache di localizzazione, dato un testo che può essere o meno un token, cerca quell'elemento all'interno della cache
|
|
74
|
+
*
|
|
75
|
+
* @param {string} text Testo da cercare nella **LocCache**
|
|
76
|
+
* @param {boolean} allowtokens Indica se l'elemento cercato può essere un token o se dev'essere per forza una frase (per evitare rari
|
|
77
|
+
* casi di collisione in cui magari un token è uguale a una frase tradotta)
|
|
78
|
+
*
|
|
79
|
+
* @returns {ItemLocalization} Informazioni di localizzazione per il **text** cercato
|
|
80
|
+
*/
|
|
81
|
+
get(text, allowtokens) {
|
|
82
|
+
let possibleItem = this.LocCache[text];
|
|
83
|
+
var item = possibleItem && (allowtokens || !possibleItem.token) ? possibleItem : null;
|
|
84
|
+
return item;
|
|
85
|
+
}
|
|
86
|
+
/**
|
|
87
|
+
* Date le informazioni di localizzazione per un testo cerca e restituisce la traduzione per una lingua specifica
|
|
88
|
+
*
|
|
89
|
+
* @param {ItemLocalization} Informazioni di localizzazione
|
|
90
|
+
* @param {string} culture Lingua della traduzione richiesta
|
|
91
|
+
*
|
|
92
|
+
* @returns {SpecializedLocalization} Informazioni di localizzazione specifiche della lingua richiesta
|
|
93
|
+
*/
|
|
94
|
+
translationByCulture(item, culture) {
|
|
95
|
+
for (let i = 0; i < item.translations.length; i++) {
|
|
96
|
+
let trl = item.translations[i];
|
|
97
|
+
if (trl.culture == culture)
|
|
98
|
+
return trl;
|
|
99
|
+
}
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnBlcnNpc3Rvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2xvY2FsaXphdGlvbnMvc3JjL2xpYi9jb3JlL2xvY2FsaXphdGlvbi5wZXJzaXN0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDOUQsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDaEUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFFNUUsTUFBTSxPQUFPLHFCQUFxQjtJQUU5QixZQUFvQixXQUErQyxJQUFJO1FBQW5ELGFBQVEsR0FBUixRQUFRLENBQTJDO0lBQUksQ0FBQztJQUU1RTs7Ozs7Ozs7O09BU0c7SUFDSSxRQUFRLENBQUMsU0FBaUIsRUFBRSxLQUFhLEVBQUUsSUFBWSxFQUFFLEtBQWU7UUFDM0UsSUFBSSxZQUFZLEdBQUcseUNBQXlDLENBQUM7UUFDN0QsSUFBSSxVQUFVLEdBQUcsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUU5QyxJQUFJLElBQUksR0FBRyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDekIsSUFBSSxFQUFFLEdBQWEsVUFBVSxDQUFDLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQy9ELElBQUksVUFBVSxHQUFHLGlCQUFpQixDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQztRQUU1QyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFF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QUMsWUFBWSxDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDO1lBQ2hELElBQUksR0FBRyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDL0IsSUFBSSxHQUFHLENBQUMsT0FBTyxJQUFJLE9BQU87Z0JBQ3RCLE9BQU8sR0FBRyxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLElBQUksQ0FBQztJQUNoQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJdGVtTG9jYWxpemF0aW9uIH0gZnJvbSBcIi4uL21vZGVscy9JdGVtTG9jYWxpemF0aW9uXCI7XHJcbmltcG9ydCB7IExvY2FsZURlZmluaXRpb25zIH0gZnJvbSBcIi4uL21vZGVscy9Mb2NhbGVEZWZpbml0aW9uc1wiO1xyXG5pbXBvcnQgeyBTcGVjaWFsaXplZExvY2FsaXphdGlvbiB9IGZyb20gXCIuLi9tb2RlbHMvU3BlY2lhbGl6ZWRMb2NhbGl6YXRpb25cIjtcclxuXHJcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25QZXJzaXN0b3Ige1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgTG9jQ2FjaGU6IHsgW2lkOiBzdHJpbmddOiBJdGVtTG9jYWxpemF0aW9uIH0gPSBudWxsKSB7IH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIEltcG9zdGEgbGEgbG9jYWxpenphemlvbmUgZGkgdW4gdG9rZW4gYWxsJ2ludGVybm8gZGVsbGEgY2FjaGUgc2NlbHRhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBkaXJlY3Rpb24gRGlyZXppb25lIGRlbGxhIHRyYWR1emlvbmUsIHJhcHByZXNlbnRhIGxhIGxpbmd1YSBiYXNlIGluIGN1aSBhc3BldHRhcnNpIGlsIHRlc3RvIGUgbGUgdmFyaWUgbGluZ3VlIGluIGN1aSB2aWVuZSB0cmFkb3R0YS5cclxuICAgICAqIEFkIGVzZW1waW8sIFwiZW4tPml0XCIgaW5kaWNhIGNoZSBpbCBwYXJhbWV0cm8gKipsZWZ0Kiogw6ggdmFsaWRvIHBlciBsZSBsb2NhbGl6emF6aW9uaSBpbiBpbmdsZXNlLCBtZW50cmUgbmVsbCdlbGVtZW50byAwIGRlbCBwYXJhbWV0cm8gKipyaWdodCoqIFxyXG4gICAgICogw6ggcHJlc2VudGUgbCd1bmljYSB0cmFkdXppb25lIGluIGl0YWxpYW5vLCBwZXIgZGVmaW5pcmUgcGnDuSB0cmFkdXppb25pIHN1bCBsYXRvIGRlc3RybyBkZWxsYSBmcmVjY2lhIGJpc29nbmEgY29uY2F0ZW5hcmxlIGNvbiBsYSB2aXJnb2xhLCBhZCBlc2VtcGlvIFwiZW4tPml0LGpwLGVjY1wiXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gdG9rZW4gTm9tZSBkZWwgdG9rZW5cclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZWZ0IFZhbG9yZSBkZWwgdG9rZW4gcGVyIGxhIGxpbmd1YSBzcGVjaWZpY2F0YSBuZWwgbGF0byBpbW1lZGlhdGFtZW50ZSBzaW5pc3RybyBhbGxhIGZyZWNjaWEgZGVsIHBhcmFtZXRybyAqKmRpcmVjdGlvbioqXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gcmlnaHQgQXJyYXkgY29uIGkgdmFsb3JpIGZhY2VudGkgcmlmZXJpbWVudG8gYWxsJ04tZXNpbWEgbGluZ3VhIGRlbCBsYXRvIGRlc3RybyBkZWwgcGFyYW1ldHJvICoqZGlyZWN0aW9uKipcclxuICAgICAqL1xyXG4gICAgcHVibGljIHNldFRva2VuKGRpcmVjdGlvbjogc3RyaW5nLCB0b2tlbjogc3RyaW5nLCBsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmdbXSkge1xyXG4gICAgICAgIGxldCBwYXJzaW5nUmVnZXggPSAvKFthLXpBLVpdKylbXFxzXSotPltcXHNdKihbYS16QS1aLFxcc10rKSsvZztcclxuICAgICAgICB2YXIgcGFyc2luZ1JlcyA9IHBhcnNpbmdSZWdleC5leGVjKGRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIGxldCBmcm9tID0gcGFyc2luZ1Jlc1sxXTtcclxuICAgICAgICBsZXQgdG86IHN0cmluZ1tdID0gcGFyc2luZ1Jlc1syXS5yZXBsYWNlKC9cXHMvZywgJycpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgbGV0IGxvY2FsZUZyb20gPSBMb2NhbGVEZWZpbml0aW9ucy5nZXRCeUFsaWFzKGZyb20pO1xyXG4gICAgICAgIHRoaXMuX3NldCh0b2tlbiwgbG9jYWxlRnJvbS5pZCwgbGVmdCwgdHJ1ZSk7XHJcblxyXG4gICAgICAgIHRvLmZvckVhY2goKHQsIGluZGV4KSA9PiB7XHJcbiAgICAgICAgICAgIGxldCBsb2NhbGVUbyA9IExvY2FsZURlZmluaXRpb25zLmdldEJ5QWxpYXModCk7XHJcbiAgICAgICAgICAgIHRoaXMuX3NldCh0b2tlbiwgbG9jYWxlVG8uaWQsIHJpZ2h0W2luZGV4XSwgdHJ1ZSk7XHJcbiAgICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBJbXBvc3RhIGxhIGxvY2FsaXp6YXppb25lIGRpIHVuYSBmcmFzZSBhbGwnaW50ZXJubyBkZWxsYSBjYWNoZSBzY2VsdGFcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IGRpcmVjdGlvbiBEaXJlemlvbmUgZGVsbGEgdHJhZHV6aW9uZSwgcmFwcHJlc2VudGEgbGEgbGluZ3VhIGJhc2UgaW4gY3VpIGFzcGV0dGFyc2kgaWwgdGVzdG8gZSBsZSB2YXJpZSBsaW5ndWUgaW4gY3VpIHZpZW5lIHRyYWRvdHRhLlxyXG4gICAgICogQWQgZXNlbXBpbywgXCJlbi0+aXRcIiBpbmRpY2EgY2hlIGlsIHBhcmFtZXRybyAqKmxlZnQqKiDDqCB2YWxpZG8gcGVyIGxlIGxvY2FsaXp6YXppb25pIGluIGluZ2xlc2UsIG1lbnRyZSBuZWxsJ2VsZW1lbnRvIDAgZGVsIHBhcmFtZXRybyAqKnJpZ2h0KiogXHJcbiAgICAgKiDDqCBwcmVzZW50ZSBsJ3VuaWNhIHRyYWR1emlvbmUgaW4gaXRhbGlhbm8sIHBlciBkZWZpbmlyZSBwacO5IHRyYWR1emlvbmkgc3VsIGxhdG8gZGVzdHJvIGRlbGxhIGZyZWNjaWEgYmlzb2duYSBjb25jYXRlbmFybGUgY29uIGxhIHZpcmdvbGEsIGFkIGVzZW1waW8gXCJlbi0+aXQsanAsZWNjXCJcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsZWZ0IFZhbG9yZSBkZWxsYSBmcmFzZSBwZXIgbGEgbGluZ3VhIHNwZWNpZmljYXRhIG5lbCBsYXRvIGltbWVkaWF0YW1lbnRlIHNpbmlzdHJvIGFsbGEgZnJlY2NpYSBkZWwgcGFyYW1ldHJvICoqZGlyZWN0aW9uKipcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSByaWdodCBBcnJheSBjb24gaSB2YWxvcmkgZmFjZW50aSByaWZlcmltZW50byBhbGwnTi1lc2ltYSBsaW5ndWEgZGVsIGxhdG8gZGVzdHJvIGRlbCBwYXJhbWV0cm8gKipkaXJlY3Rpb24qKlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgc2V0KGRpcmVjdGlvbjogc3RyaW5nLCBsZWZ0OiBzdHJpbmcsIHJpZ2h0OiBzdHJpbmdbXSkge1xyXG4gICAgICAgIGxldCBwYXJzaW5nUmVnZXggPSAvKFthLXpBLVpdKylbXFxzXSotPltcXHNdKihbYS16QS1aLFxcc10rKSsvZztcclxuICAgICAgICB2YXIgcGFyc2luZ1JlcyA9IHBhcnNpbmdSZWdleC5leGVjKGRpcmVjdGlvbik7XHJcblxyXG4gICAgICAgIGxldCBmcm9tID0gcGFyc2luZ1Jlc1sxXTtcclxuICAgICAgICBsZXQgdG86IHN0cmluZ1tdID0gcGFyc2luZ1Jlc1syXS5yZXBsYWNlKC9cXHMvZywgJycpLnNwbGl0KCcsJyk7XHJcbiAgICAgICAgbGV0IGxvY2FsZUZyb20gPSBMb2NhbGVEZWZpbml0aW9ucy5nZXRCeUFsaWFzKGZyb20pO1xyXG4gICAgICAgIHRoaXMuX3NldChsZWZ0LCBsb2NhbGVGcm9tLmlkLCBsZWZ0KTtcclxuXHJcbiAgICAgICAgdG8uZm9yRWFjaCgodCwgaW5kZXgpID0+IHtcclxuICAgICAgICAgICAgbGV0IGxvY2FsZVRvID0gTG9jYWxlRGVmaW5pdGlvbnMuZ2V0QnlBbGlhcyh0KTtcclxuICAgICAgICAgICAgdGhpcy5fc2V0KGxlZnQsIGxvY2FsZVRvLmlkLCByaWdodFtpbmRleF0pO1xyXG4gICAgICAgIH0pO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW1wb3N0YSBhbGwnaW50ZXJubyBkZWxsYSBjYWNoZSBzcGVjaWZpY2F0YSB1bid1bmljYSB0cmFkdXppb25lIHBhcnRlbmRvIGRhIHVuIHRlc3RvIGRpIGJhc2VcclxuICAgICAqIFxyXG4gICAgICogQHBhcmFtIHtzdHJpbmd9IHRleHQgVGVzdG8gZGEgdHJhZHVycmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBjdWx0dXJlIExpbmd1YSBwZXIgY3VpIGluc2VyaXJlIGxhIHRyYWR1emlvbmVcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0cmFuc2xhdGlvbiBUcmFkdXppb25lIGRlbCAqKnRleHQqKiBuZWxsYSBsaW5ndWEgc3BlY2lmaWNhdGEgZGEgKipjdWx0dXJlKipcclxuICAgICAqIEBwYXJhbSB7Ym9vbGVhbn0gdG9rZW4gSW5kaWNhIHNlIGlsICoqdGV4dCoqIMOoIHVuIHRva2VuIG8gw6ggdW5hIGZyYXNlIG5vcm1hbGVcclxuICAgICAqL1xyXG4gICAgcHJpdmF0ZSBfc2V0KHRleHQ6IHN0cmluZywgY3VsdHVyZTogc3RyaW5nLCB0cmFuc2xhdGlvbjogc3RyaW5nLCB0b2tlbj86IGJvb2xlYW4pIHtcclxuICAgICAgICBsZXQgaXRlbSA9IHRoaXMuZ2V0KHRleHQsIHRva2VuKTtcclxuICAgICAgICBpZiAoIWl0ZW0pIHtcclxuICAgICAgICAgICAgdGhpcy5Mb2NDYWNoZVt0ZXh0XSA9IG5ldyBJdGVtTG9jYWxpemF0aW9uKHRva2VuLCB0ZXh0LCBbbmV3IFNwZWNpYWxpemVkTG9jYWxpemF0aW9uKGN1bHR1cmUsIHRyYW5zbGF0aW9uKV0pO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICB2YXIgdHJzID0gdGhpcy50cmFuc2xhdGlvbkJ5Q3VsdHVyZShpdGVtLCBjdWx0dXJlKTtcclxuICAgICAgICBpZiAodHJzKSB7XHJcbiAgICAgICAgICAgIGNvbnNvbGUud2FybihcIkxvY2FsaXphdGlvbiBhbHJlYWR5IGxvYWRlZCBmb3Igc2VudGVuY2UgJ1wiICsgdGV4dCArIFwiJyBhbmQgY3VsdHVyZSBcIiArIGN1bHR1cmUpO1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICBpdGVtLnRyYW5zbGF0aW9ucy5wdXNoKG5ldyBTcGVjaWFsaXplZExvY2FsaXphdGlvbihjdWx0dXJlLCB0cmFuc2xhdGlvbikpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUGFydGVuZG8gZGEgdW5hIGNhY2hlIGRpIGxvY2FsaXp6YXppb25lLCBkYXRvIHVuIHRlc3RvIGNoZSBwdcOyIGVzc2VyZSBvIG1lbm8gdW4gdG9rZW4sIGNlcmNhIHF1ZWxsJ2VsZW1lbnRvIGFsbCdpbnRlcm5vIGRlbGxhIGNhY2hlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSB0ZXh0IFRlc3RvIGRhIGNlcmNhcmUgbmVsbGEgKipMb2NDYWNoZSoqXHJcbiAgICAgKiBAcGFyYW0ge2Jvb2xlYW59IGFsbG93dG9rZW5zIEluZGljYSBzZSBsJ2VsZW1lbnRvIGNlcmNhdG8gcHXDsiBlc3NlcmUgdW4gdG9rZW4gbyBzZSBkZXYnZXNzZXJlIHBlciBmb3J6YSB1bmEgZnJhc2UgKHBlciBldml0YXJlIHJhcmkgXHJcbiAgICAgKiBjYXNpIGRpIGNvbGxpc2lvbmUgaW4gY3VpIG1hZ2FyaSB1biB0b2tlbiDDqCB1Z3VhbGUgYSB1bmEgZnJhc2UgdHJhZG90dGEpXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtJdGVtTG9jYWxpemF0aW9ufSBJbmZvcm1hemlvbmkgZGkgbG9jYWxpenphemlvbmUgcGVyIGlsICoqdGV4dCoqIGNlcmNhdG9cclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldCh0ZXh0OiBzdHJpbmcsIGFsbG93dG9rZW5zOiBib29sZWFuKTogSXRlbUxvY2FsaXphdGlvbiB7XHJcbiAgICAgICAgbGV0IHBvc3NpYmxlSXRlbTogSXRlbUxvY2FsaXphdGlvbiA9IHRoaXMuTG9jQ2FjaGVbdGV4dF07XHJcbiAgICAgICAgdmFyIGl0ZW0gPSBwb3NzaWJsZUl0ZW0gJiYgKGFsbG93dG9rZW5zIHx8ICFwb3NzaWJsZUl0ZW0udG9rZW4pID8gcG9zc2libGVJdGVtIDogbnVsbDtcclxuICAgICAgICByZXR1cm4gaXRlbTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIERhdGUgbGUgaW5mb3JtYXppb25pIGRpIGxvY2FsaXp6YXppb25lIHBlciB1biB0ZXN0byBjZXJjYSBlIHJlc3RpdHVpc2NlIGxhIHRyYWR1emlvbmUgcGVyIHVuYSBsaW5ndWEgc3BlY2lmaWNhXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7SXRlbUxvY2FsaXphdGlvbn0gSW5mb3JtYXppb25pIGRpIGxvY2FsaXp6YXppb25lXHJcbiAgICAgKiBAcGFyYW0ge3N0cmluZ30gY3VsdHVyZSBMaW5ndWEgZGVsbGEgdHJhZHV6aW9uZSByaWNoaWVzdGFcclxuICAgICAqIFxyXG4gICAgICogQHJldHVybnMge1NwZWNpYWxpemVkTG9jYWxpemF0aW9ufSBJbmZvcm1hemlvbmkgZGkgbG9jYWxpenphemlvbmUgc3BlY2lmaWNoZSBkZWxsYSBsaW5ndWEgcmljaGllc3RhXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyB0cmFuc2xhdGlvbkJ5Q3VsdHVyZShpdGVtOiBJdGVtTG9jYWxpemF0aW9uLCBjdWx0dXJlOiBzdHJpbmcpOiBTcGVjaWFsaXplZExvY2FsaXphdGlvbiB7XHJcbiAgICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBpdGVtLnRyYW5zbGF0aW9ucy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgICAgICBsZXQgdHJsID0gaXRlbS50cmFuc2xhdGlvbnNbaV07XHJcbiAgICAgICAgICAgIGlmICh0cmwuY3VsdHVyZSA9PSBjdWx0dXJlKVxyXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRybDtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIHJldHVybiBudWxsO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,25 +1,25 @@
|
|
|
1
|
-
// Angular
|
|
2
|
-
import { Injectable } from "@angular/core";
|
|
3
|
-
// RXJS
|
|
4
|
-
import { of } from "rxjs";
|
|
5
|
-
import { first } from "rxjs/operators";
|
|
6
|
-
import { LocalePersistor } from "./LocalePersistor";
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
export class LocalStorageLocalePersistor extends LocalePersistor {
|
|
9
|
-
/** @ignore Vedi classe base */
|
|
10
|
-
persist(locale) {
|
|
11
|
-
localStorage.setItem(this.LOCALE, locale);
|
|
12
|
-
return of(true).pipe(first());
|
|
13
|
-
}
|
|
14
|
-
/** @ignore Vedi classe base */
|
|
15
|
-
recover() {
|
|
16
|
-
var ret = localStorage.getItem(this.LOCALE);
|
|
17
|
-
return of(ret).pipe(first());
|
|
18
|
-
}
|
|
19
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
20
|
-
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "
|
|
21
|
-
}
|
|
22
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
23
|
-
type: Injectable
|
|
24
|
-
}] });
|
|
1
|
+
// Angular
|
|
2
|
+
import { Injectable } from "@angular/core";
|
|
3
|
+
// RXJS
|
|
4
|
+
import { of } from "rxjs";
|
|
5
|
+
import { first } from "rxjs/operators";
|
|
6
|
+
import { LocalePersistor } from "./LocalePersistor";
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export class LocalStorageLocalePersistor extends LocalePersistor {
|
|
9
|
+
/** @ignore Vedi classe base */
|
|
10
|
+
persist(locale) {
|
|
11
|
+
localStorage.setItem(this.LOCALE, locale);
|
|
12
|
+
return of(true).pipe(first());
|
|
13
|
+
}
|
|
14
|
+
/** @ignore Vedi classe base */
|
|
15
|
+
recover() {
|
|
16
|
+
var ret = localStorage.getItem(this.LOCALE);
|
|
17
|
+
return of(ret).pipe(first());
|
|
18
|
+
}
|
|
19
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalStorageLocalePersistor, deps: null, target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
20
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalStorageLocalePersistor }); }
|
|
21
|
+
}
|
|
22
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: LocalStorageLocalePersistor, decorators: [{
|
|
23
|
+
type: Injectable
|
|
24
|
+
}] });
|
|
25
25
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxTdG9yYWdlQ2FjaGVQZXJzaXN0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9sb2NhbGl6YXRpb25zL3NyYy9saWIvbG9jYWxlLXBlcnNpc3Rvci9Mb2NhbFN0b3JhZ2VDYWNoZVBlcnNpc3Rvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxVQUFVO0FBQ1YsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPO0FBQ1AsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdkMsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLG1CQUFtQixDQUFDOztBQUdwRCxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsZUFBZTtJQUU1RCwrQkFBK0I7SUFDeEIsT0FBTyxDQUFDLE1BQWM7UUFDekIsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRCwrQkFBK0I7SUFDeEIsT0FBTztRQUNWLElBQUksR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQzVDLE9BQU8sRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7K0dBWlEsMkJBQTJCO21IQUEzQiwyQkFBMkI7OzRGQUEzQiwyQkFBMkI7a0JBRHZDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBBbmd1bGFyXHJcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5cclxuLy8gUlhKU1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gXCJyeGpzXCI7XHJcbmltcG9ydCB7IGZpcnN0IH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XHJcbmltcG9ydCB7IExvY2FsZVBlcnNpc3RvciB9IGZyb20gXCIuL0xvY2FsZVBlcnNpc3RvclwiO1xyXG5cclxuQEluamVjdGFibGUoKVxyXG5leHBvcnQgY2xhc3MgTG9jYWxTdG9yYWdlTG9jYWxlUGVyc2lzdG9yIGV4dGVuZHMgTG9jYWxlUGVyc2lzdG9yIHtcclxuXHJcbiAgICAvKiogQGlnbm9yZSBWZWRpIGNsYXNzZSBiYXNlICovXHJcbiAgICBwdWJsaWMgcGVyc2lzdChsb2NhbGU6IHN0cmluZyk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xyXG4gICAgICAgIGxvY2FsU3RvcmFnZS5zZXRJdGVtKHRoaXMuTE9DQUxFLCBsb2NhbGUpO1xyXG4gICAgICAgIHJldHVybiBvZih0cnVlKS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKiBAaWdub3JlIFZlZGkgY2xhc3NlIGJhc2UgKi9cclxuICAgIHB1YmxpYyByZWNvdmVyKCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XHJcbiAgICAgICAgdmFyIHJldCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKHRoaXMuTE9DQUxFKTtcclxuICAgICAgICByZXR1cm4gb2YocmV0KS5waXBlKGZpcnN0KCkpO1xyXG4gICAgfVxyXG59Il19
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
/** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */
|
|
2
|
-
export class LocalePersistor {
|
|
3
|
-
constructor() {
|
|
4
|
-
/** Chiave su cui salvare il locale */
|
|
5
|
-
this.LOCALE = "LOCALE";
|
|
6
|
-
}
|
|
7
|
-
}
|
|
1
|
+
/** Classe astratta che rappresenta lo stato di persistenza fra la libreria e uno storage */
|
|
2
|
+
export class LocalePersistor {
|
|
3
|
+
constructor() {
|
|
4
|
+
/** Chiave su cui salvare il locale */
|
|
5
|
+
this.LOCALE = "LOCALE";
|
|
6
|
+
}
|
|
7
|
+
}
|
|
8
8
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTG9jYWxlUGVyc2lzdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbG9jYWxpemF0aW9ucy9zcmMvbGliL2xvY2FsZS1wZXJzaXN0b3IvTG9jYWxlUGVyc2lzdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLDRGQUE0RjtBQUM1RixNQUFNLE9BQWdCLGVBQWU7SUFBckM7UUFFSSxzQ0FBc0M7UUFDNUIsV0FBTSxHQUFXLFFBQVEsQ0FBQztJQWV4QyxDQUFDO0NBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcclxuXHJcbi8qKiBDbGFzc2UgYXN0cmF0dGEgY2hlIHJhcHByZXNlbnRhIGxvIHN0YXRvIGRpIHBlcnNpc3RlbnphIGZyYSBsYSBsaWJyZXJpYSBlIHVubyBzdG9yYWdlICovXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBMb2NhbGVQZXJzaXN0b3Ige1xyXG5cclxuICAgIC8qKiBDaGlhdmUgc3UgY3VpIHNhbHZhcmUgaWwgbG9jYWxlICovXHJcbiAgICBwcm90ZWN0ZWQgTE9DQUxFOiBzdHJpbmcgPSBcIkxPQ0FMRVwiO1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2FsdmEgaWwgTG9jYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEBwYXJhbSB7c3RyaW5nfSBsb2NhbGUgTG9jYWxlIGRhIHNhbHZhcmVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHBlcnNpc3QobG9jYWxlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGJvb2xlYW4+O1xyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmVjdXBlcmEgaWwgTG9jYWxlXHJcbiAgICAgKiBcclxuICAgICAqIEByZXR1cm5zIHtPYnNlcnZhYmxlPHN0cmluZz59IFZhbG9yZSBzYWx2YXRvIHBlciBpbCBsb2NhbGVcclxuICAgICAqL1xyXG4gICAgcHVibGljIGFic3RyYWN0IHJlY292ZXIoKTogT2JzZXJ2YWJsZTxzdHJpbmc+O1xyXG59Il19
|