@o3r/localization 10.2.0-prerelease.40 → 10.2.0-prerelease.42
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/devkit/localization-devkit.interface.d.ts +45 -2
- package/devkit/localization-devkit.interface.d.ts.map +1 -1
- package/devkit/localization-devtools.console.service.d.ts +6 -6
- package/devkit/localization-devtools.console.service.d.ts.map +1 -1
- package/devkit/localization-devtools.message.service.d.ts +11 -3
- package/devkit/localization-devtools.message.service.d.ts.map +1 -1
- package/devkit/localization-devtools.service.d.ts +30 -1
- package/devkit/localization-devtools.service.d.ts.map +1 -1
- package/devkit/localization-devtools.token.d.ts.map +1 -1
- package/esm2022/devkit/localization-devkit.interface.mjs +1 -1
- package/esm2022/devkit/localization-devtools.console.service.mjs +15 -22
- package/esm2022/devkit/localization-devtools.message.service.mjs +72 -10
- package/esm2022/devkit/localization-devtools.service.mjs +56 -5
- package/esm2022/devkit/localization-devtools.token.mjs +3 -2
- package/esm2022/tools/localization.service.mjs +7 -1
- package/fesm2022/o3r-localization.mjs +141 -29
- package/fesm2022/o3r-localization.mjs.map +1 -1
- package/package.json +6 -6
- package/tools/localization.service.d.ts +4 -0
- package/tools/localization.service.d.ts.map +1 -1
- package/builders/helpers/localization.generator.js.map +0 -1
- package/builders/i18n/index.js.map +0 -1
- package/builders/i18n/schema.js.map +0 -1
- package/builders/localization/index.js.map +0 -1
- package/builders/localization/schema.js.map +0 -1
- package/builders/localization-extractor/index.js.map +0 -1
- package/builders/localization-extractor/schema.js.map +0 -1
- package/builders/localization-extractor/validations.js.map +0 -1
- package/schematics/add-localization-key/index.js.map +0 -1
- package/schematics/add-localization-key/schema.js.map +0 -1
- package/schematics/cms-adapter/index.js.map +0 -1
- package/schematics/localization-base/index.js.map +0 -1
- package/schematics/localization-to-component/index.js.map +0 -1
- package/schematics/localization-to-component/schema.js.map +0 -1
- package/schematics/ng-add/helpers/devtools-registration.js.map +0 -1
- package/schematics/ng-add/index.js.map +0 -1
- package/schematics/ng-add/schema.js.map +0 -1
- package/schematics/ng-update/v10-0/index.js.map +0 -1
|
@@ -1,10 +1,21 @@
|
|
|
1
|
-
import { Injectable } from '@angular/core';
|
|
1
|
+
import { ApplicationRef, Injectable } from '@angular/core';
|
|
2
|
+
import { TranslateCompiler } from '@ngx-translate/core';
|
|
3
|
+
import { lastValueFrom } from 'rxjs';
|
|
2
4
|
import { LocalizationService } from '../tools';
|
|
3
5
|
import * as i0 from "@angular/core";
|
|
4
6
|
import * as i1 from "../tools";
|
|
7
|
+
import * as i2 from "@ngx-translate/core";
|
|
5
8
|
export class OtterLocalizationDevtools {
|
|
6
|
-
constructor(localizationService) {
|
|
9
|
+
constructor(localizationService, translateCompiler, appRef) {
|
|
7
10
|
this.localizationService = localizationService;
|
|
11
|
+
this.translateCompiler = translateCompiler;
|
|
12
|
+
this.appRef = appRef;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Is the translation deactivation enabled
|
|
16
|
+
*/
|
|
17
|
+
isTranslationDeactivationEnabled() {
|
|
18
|
+
return this.localizationService.isTranslationDeactivationEnabled();
|
|
8
19
|
}
|
|
9
20
|
/**
|
|
10
21
|
* Show localization keys
|
|
@@ -12,6 +23,7 @@ export class OtterLocalizationDevtools {
|
|
|
12
23
|
*/
|
|
13
24
|
showLocalizationKeys(value) {
|
|
14
25
|
this.localizationService.toggleShowKeys(value);
|
|
26
|
+
this.appRef.tick();
|
|
15
27
|
}
|
|
16
28
|
/**
|
|
17
29
|
* Returns the current language
|
|
@@ -31,10 +43,49 @@ export class OtterLocalizationDevtools {
|
|
|
31
43
|
fn(lang);
|
|
32
44
|
});
|
|
33
45
|
}
|
|
34
|
-
/**
|
|
46
|
+
/**
|
|
47
|
+
* Switch the current language to the specified value
|
|
48
|
+
* @param language new language to switch to
|
|
49
|
+
*/
|
|
50
|
+
async switchLanguage(language) {
|
|
51
|
+
await lastValueFrom(this.localizationService.useLanguage(language));
|
|
52
|
+
this.appRef.tick();
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Updates the specified localization key/values for the current language.
|
|
56
|
+
*
|
|
57
|
+
* Recommendation: To be used with a small number of keys to update to avoid performance issues.
|
|
58
|
+
* @param keyValues key/values to update
|
|
59
|
+
* @param language if not provided, the current language value
|
|
60
|
+
*/
|
|
61
|
+
updateLocalizationKeys(keyValues, language) {
|
|
62
|
+
const lang = language || this.getCurrentLanguage();
|
|
63
|
+
const translateService = this.localizationService.getTranslateService();
|
|
64
|
+
Object.entries(keyValues).forEach(([key, value]) => {
|
|
65
|
+
translateService.set(key, value, lang);
|
|
66
|
+
});
|
|
67
|
+
this.appRef.tick();
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Reload a language from the language file
|
|
71
|
+
* @see https://github.com/ngx-translate/core/blob/master/packages/core/lib/translate.service.ts#L490
|
|
72
|
+
* @param language language to reload
|
|
73
|
+
*/
|
|
74
|
+
async reloadLocalizationKeys(language) {
|
|
75
|
+
const lang = language || this.getCurrentLanguage();
|
|
76
|
+
if (this.translateCompiler.clearCache) {
|
|
77
|
+
this.translateCompiler.clearCache();
|
|
78
|
+
}
|
|
79
|
+
const initialLocs = await lastValueFrom(this.localizationService
|
|
80
|
+
.getTranslateService()
|
|
81
|
+
.reloadLang(lang));
|
|
82
|
+
this.localizationService.getTranslateService().setTranslation(language || this.getCurrentLanguage(), initialLocs);
|
|
83
|
+
this.appRef.tick();
|
|
84
|
+
}
|
|
85
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OtterLocalizationDevtools, deps: [{ token: i1.LocalizationService }, { token: i2.TranslateCompiler }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
35
86
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OtterLocalizationDevtools }); }
|
|
36
87
|
}
|
|
37
88
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OtterLocalizationDevtools, decorators: [{
|
|
38
89
|
type: Injectable
|
|
39
|
-
}], ctorParameters: () => [{ type: i1.LocalizationService }] });
|
|
40
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
90
|
+
}], ctorParameters: () => [{ type: i1.LocalizationService }, { type: i2.TranslateCompiler }, { type: i0.ApplicationRef }] });
|
|
91
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldnRvb2xzLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvZGV2a2l0L2xvY2FsaXphdGlvbi1kZXZ0b29scy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxjQUFjLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxhQUFhLEVBQWdCLE1BQU0sTUFBTSxDQUFDO0FBQ25ELE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLFVBQVUsQ0FBQzs7OztBQUkvQyxNQUFNLE9BQU8seUJBQXlCO0lBRXBDLFlBQ21CLG1CQUF3QyxFQUN4QyxpQkFBb0MsRUFDcEMsTUFBc0I7UUFGdEIsd0JBQW1CLEdBQW5CLG1CQUFtQixDQUFxQjtRQUN4QyxzQkFBaUIsR0FBakIsaUJBQWlCLENBQW1CO1FBQ3BDLFdBQU0sR0FBTixNQUFNLENBQWdCO0lBQ3RDLENBQUM7SUFFSjs7T0FFRztJQUNJLGdDQUFnQztRQUNyQyxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQ0FBZ0MsRUFBRSxDQUFDO0lBQ3JFLENBQUM7SUFFRDs7O09BR0c7SUFDSSxvQkFBb0IsQ0FBQyxLQUFlO1FBQ3pDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDL0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7O09BRUc7SUFDSSxrQkFBa0I7UUFDdkIsT0FBTyxJQUFJLENBQUMsbUJBQW1CLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztJQUN2RCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksZ0JBQWdCLENBQUMsRUFBNkI7UUFDbkQsT0FBTyxJQUFJLENBQUMsbUJBQW1CO2FBQzVCLG1CQUFtQixFQUFFO2FBQ3JCLFlBQVk7YUFDWixTQUFTLENBQUMsQ0FBQyxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUU7WUFDdEIsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ1gsQ0FBQyxDQUFDLENBQUM7SUFDUCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksS0FBSyxDQUFDLGNBQWMsQ0FBQyxRQUFnQjtRQUMxQyxNQUFNLGFBQWEsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUM7UUFDcEUsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNyQixDQUFDO0lBRUQ7Ozs7OztPQU1HO0lBQ0ksc0JBQXNCLENBQUMsU0FBb0MsRUFBRSxRQUFpQjtRQUNuRixNQUFNLElBQUksR0FBRyxRQUFRLElBQUksSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDbkQsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUN4RSxNQUFNLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUU7WUFDakQsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDekMsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksS0FBSyxDQUFDLHNCQUFzQixDQUFDLFFBQWlCO1FBQ25ELE1BQU0sSUFBSSxHQUFHLFFBQVEsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUNuRCxJQUFLLElBQUksQ0FBQyxpQkFBd0QsQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUM3RSxJQUFJLENBQUMsaUJBQXdELENBQUMsVUFBVSxFQUFFLENBQUM7UUFDOUUsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLE1BQU0sYUFBYSxDQUNyQyxJQUFJLENBQUMsbUJBQW1CO2FBQ3JCLG1CQUFtQixFQUFFO2FBQ3JCLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FDcEIsQ0FBQztRQUNGLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLGNBQWMsQ0FDM0QsUUFBUSxJQUFJLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUNyQyxXQUFXLENBQ1osQ0FBQztRQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDckIsQ0FBQztpSUF6RlUseUJBQXlCO3FJQUF6Qix5QkFBeUI7OzJGQUF6Qix5QkFBeUI7a0JBRHJDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBcHBsaWNhdGlvblJlZiwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlQ29tcGlsZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IGxhc3RWYWx1ZUZyb20sIFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgTG9jYWxpemF0aW9uU2VydmljZSB9IGZyb20gJy4uL3Rvb2xzJztcbmltcG9ydCB0eXBlIHsgVHJhbnNsYXRlTWVzc2FnZUZvcm1hdExhenlDb21waWxlciB9IGZyb20gJy4uL2NvcmUnO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgT3R0ZXJMb2NhbGl6YXRpb25EZXZ0b29scyB7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgdHJhbnNsYXRlQ29tcGlsZXI6IFRyYW5zbGF0ZUNvbXBpbGVyLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgYXBwUmVmOiBBcHBsaWNhdGlvblJlZlxuICApIHt9XG5cbiAgLyoqXG4gICAqIElzIHRoZSB0cmFuc2xhdGlvbiBkZWFjdGl2YXRpb24gZW5hYmxlZFxuICAgKi9cbiAgcHVibGljIGlzVHJhbnNsYXRpb25EZWFjdGl2YXRpb25FbmFibGVkKCkge1xuICAgIHJldHVybiB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2UuaXNUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbkVuYWJsZWQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaG93IGxvY2FsaXphdGlvbiBrZXlzXG4gICAqIEBwYXJhbSB2YWx1ZSB2YWx1ZSBlbmZvcmNlZCBieSB0aGUgRGV2VG9vbHMgZXh0ZW5zaW9uXG4gICAqL1xuICBwdWJsaWMgc2hvd0xvY2FsaXphdGlvbktleXModmFsdWU/OiBib29sZWFuKTogdm9pZCB7XG4gICAgdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLnRvZ2dsZVNob3dLZXlzKHZhbHVlKTtcbiAgICB0aGlzLmFwcFJlZi50aWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY3VycmVudCBsYW5ndWFnZVxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRMYW5ndWFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldEN1cnJlbnRMYW5ndWFnZSgpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNldHVwIGEgbGlzdGVuZXIgb24gbGFuZ3VhZ2UgY2hhbmdlXG4gICAqIEBwYXJhbSBmbiBjYWxsZWQgd2hlbiB0aGUgbGFuZ3VhZ2UgaXMgY2hhbmdlZCBpbiB0aGUgYXBwXG4gICAqL1xuICBwdWJsaWMgb25MYW5ndWFnZUNoYW5nZShmbjogKGxhbmd1YWdlOiBzdHJpbmcpID0+IGFueSk6IFN1YnNjcmlwdGlvbiB7XG4gICAgcmV0dXJuIHRoaXMubG9jYWxpemF0aW9uU2VydmljZVxuICAgICAgLmdldFRyYW5zbGF0ZVNlcnZpY2UoKVxuICAgICAgLm9uTGFuZ0NoYW5nZVxuICAgICAgLnN1YnNjcmliZSgoeyBsYW5nIH0pID0+IHtcbiAgICAgICAgZm4obGFuZyk7XG4gICAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTd2l0Y2ggdGhlIGN1cnJlbnQgbGFuZ3VhZ2UgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZVxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgbmV3IGxhbmd1YWdlIHRvIHN3aXRjaCB0b1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHN3aXRjaExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICBhd2FpdCBsYXN0VmFsdWVGcm9tKHRoaXMubG9jYWxpemF0aW9uU2VydmljZS51c2VMYW5ndWFnZShsYW5ndWFnZSkpO1xuICAgIHRoaXMuYXBwUmVmLnRpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBVcGRhdGVzIHRoZSBzcGVjaWZpZWQgbG9jYWxpemF0aW9uIGtleS92YWx1ZXMgZm9yIHRoZSBjdXJyZW50IGxhbmd1YWdlLlxuICAgKlxuICAgKiBSZWNvbW1lbmRhdGlvbjogVG8gYmUgdXNlZCB3aXRoIGEgc21hbGwgbnVtYmVyIG9mIGtleXMgdG8gdXBkYXRlIHRvIGF2b2lkIHBlcmZvcm1hbmNlIGlzc3Vlcy5cbiAgICogQHBhcmFtIGtleVZhbHVlcyBrZXkvdmFsdWVzIHRvIHVwZGF0ZVxuICAgKiBAcGFyYW0gbGFuZ3VhZ2UgaWYgbm90IHByb3ZpZGVkLCB0aGUgY3VycmVudCBsYW5ndWFnZSB2YWx1ZVxuICAgKi9cbiAgcHVibGljIHVwZGF0ZUxvY2FsaXphdGlvbktleXMoa2V5VmFsdWVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LCBsYW5ndWFnZT86IHN0cmluZyk6IHZvaWQgfCBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBsYW5nID0gbGFuZ3VhZ2UgfHwgdGhpcy5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcbiAgICBjb25zdCB0cmFuc2xhdGVTZXJ2aWNlID0gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldFRyYW5zbGF0ZVNlcnZpY2UoKTtcbiAgICBPYmplY3QuZW50cmllcyhrZXlWYWx1ZXMpLmZvckVhY2goKFtrZXksIHZhbHVlXSkgPT4ge1xuICAgICAgdHJhbnNsYXRlU2VydmljZS5zZXQoa2V5LCB2YWx1ZSwgbGFuZyk7XG4gICAgfSk7XG4gICAgdGhpcy5hcHBSZWYudGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbG9hZCBhIGxhbmd1YWdlIGZyb20gdGhlIGxhbmd1YWdlIGZpbGVcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbmd4LXRyYW5zbGF0ZS9jb3JlL2Jsb2IvbWFzdGVyL3BhY2thZ2VzL2NvcmUvbGliL3RyYW5zbGF0ZS5zZXJ2aWNlLnRzI0w0OTBcbiAgICogQHBhcmFtIGxhbmd1YWdlIGxhbmd1YWdlIHRvIHJlbG9hZFxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlbG9hZExvY2FsaXphdGlvbktleXMobGFuZ3VhZ2U/OiBzdHJpbmcpIHtcbiAgICBjb25zdCBsYW5nID0gbGFuZ3VhZ2UgfHwgdGhpcy5nZXRDdXJyZW50TGFuZ3VhZ2UoKTtcbiAgICBpZiAoKHRoaXMudHJhbnNsYXRlQ29tcGlsZXIgYXMgVHJhbnNsYXRlTWVzc2FnZUZvcm1hdExhenlDb21waWxlcikuY2xlYXJDYWNoZSkge1xuICAgICAgKHRoaXMudHJhbnNsYXRlQ29tcGlsZXIgYXMgVHJhbnNsYXRlTWVzc2FnZUZvcm1hdExhenlDb21waWxlcikuY2xlYXJDYWNoZSgpO1xuICAgIH1cbiAgICBjb25zdCBpbml0aWFsTG9jcyA9IGF3YWl0IGxhc3RWYWx1ZUZyb20oXG4gICAgICB0aGlzLmxvY2FsaXphdGlvblNlcnZpY2VcbiAgICAgICAgLmdldFRyYW5zbGF0ZVNlcnZpY2UoKVxuICAgICAgICAucmVsb2FkTGFuZyhsYW5nKVxuICAgICk7XG4gICAgdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLmdldFRyYW5zbGF0ZVNlcnZpY2UoKS5zZXRUcmFuc2xhdGlvbihcbiAgICAgIGxhbmd1YWdlIHx8IHRoaXMuZ2V0Q3VycmVudExhbmd1YWdlKCksXG4gICAgICBpbml0aWFsTG9jc1xuICAgICk7XG4gICAgdGhpcy5hcHBSZWYudGljaygpO1xuICB9XG59XG4iXX0=
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { InjectionToken } from '@angular/core';
|
|
2
2
|
export const OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS = {
|
|
3
3
|
isActivatedOnBootstrap: false,
|
|
4
|
-
isActivatedOnBootstrapWhenCMSContext: true
|
|
4
|
+
isActivatedOnBootstrapWhenCMSContext: true,
|
|
5
|
+
metadataFilePath: './metadata/localisation.metadata.json'
|
|
5
6
|
};
|
|
6
7
|
export const OTTER_LOCALIZATION_DEVTOOLS_OPTIONS = new InjectionToken('Otter Localization Devtools options');
|
|
7
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
8
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLWRldnRvb2xzLnRva2VuLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vc3JjL2RldmtpdC9sb2NhbGl6YXRpb24tZGV2dG9vbHMudG9rZW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSwyQ0FBMkMsR0FBdUM7SUFDN0Ysc0JBQXNCLEVBQUUsS0FBSztJQUM3QixvQ0FBb0MsRUFBRSxJQUFJO0lBQzFDLGdCQUFnQixFQUFFLHVDQUF1QztDQUMxRCxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sbUNBQW1DLEdBQXVELElBQUksY0FBYyxDQUFxQyxxQ0FBcUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IExvY2FsaXphdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMgfSBmcm9tICcuL2xvY2FsaXphdGlvbi1kZXZraXQuaW50ZXJmYWNlJztcblxuZXhwb3J0IGNvbnN0IE9UVEVSX0xPQ0FMSVpBVElPTl9ERVZUT09MU19ERUZBVUxUX09QVElPTlM6IExvY2FsaXphdGlvbkRldnRvb2xzU2VydmljZU9wdGlvbnMgPSB7XG4gIGlzQWN0aXZhdGVkT25Cb290c3RyYXA6IGZhbHNlLFxuICBpc0FjdGl2YXRlZE9uQm9vdHN0cmFwV2hlbkNNU0NvbnRleHQ6IHRydWUsXG4gIG1ldGFkYXRhRmlsZVBhdGg6ICcuL21ldGFkYXRhL2xvY2FsaXNhdGlvbi5tZXRhZGF0YS5qc29uJ1xufTtcblxuZXhwb3J0IGNvbnN0IE9UVEVSX0xPQ0FMSVpBVElPTl9ERVZUT09MU19PUFRJT05TOiBJbmplY3Rpb25Ub2tlbjxMb2NhbGl6YXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zPiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxMb2NhbGl6YXRpb25EZXZ0b29sc1NlcnZpY2VPcHRpb25zPignT3R0ZXIgTG9jYWxpemF0aW9uIERldnRvb2xzIG9wdGlvbnMnKTtcbiJdfQ==
|
|
@@ -113,6 +113,12 @@ export class LocalizationService {
|
|
|
113
113
|
this.translateService.setDefaultLang(language);
|
|
114
114
|
this.useLanguage(language);
|
|
115
115
|
}
|
|
116
|
+
/**
|
|
117
|
+
* Is the translation deactivation enabled
|
|
118
|
+
*/
|
|
119
|
+
isTranslationDeactivationEnabled() {
|
|
120
|
+
return this.configuration.enableTranslationDeactivation;
|
|
121
|
+
}
|
|
116
122
|
/**
|
|
117
123
|
* Wrapper to call the ngx-translate service TranslateService method getLangs().
|
|
118
124
|
*/
|
|
@@ -188,4 +194,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
188
194
|
}] }, { type: i3.Store, decorators: [{
|
|
189
195
|
type: Optional
|
|
190
196
|
}] }] });
|
|
191
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEVBQTZCLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRXhFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUNtQixnQkFBa0MsRUFDbEMsTUFBcUIsRUFDcUIsYUFBd0MsRUFDdEUsS0FBd0M7UUFIcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3FCLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUN0RSxVQUFLLEdBQUwsS0FBSyxDQUFtQztRQXRCdEQsMEJBQXFCLEdBQVcsR0FBRyxDQUFDO1FBRXJEOztXQUVHO1FBQ0gsZ0VBQWdFO1FBQy9DLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU96RDs7V0FFRztR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QUFDLElBQUksQ0FDMUIsU0FBUyxDQUFDLENBQUMsY0FBYyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsY0FBYyxFQUFFLGlCQUFpQixDQUFDLENBQUMsRUFDM0YsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUNmLENBQUM7SUFDSixDQUFDO2lJQXZNVSxtQkFBbUIsK0VBdUJwQixnQ0FBZ0M7cUlBdkIvQixtQkFBbUI7OzJGQUFuQixtQkFBbUI7a0JBRC9CLFVBQVU7OzBCQXdCTixNQUFNOzJCQUFDLGdDQUFnQzs7MEJBQ3ZDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvYmFuLXR5cGVzICovXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBzZWxlY3QsIFN0b3JlIH0gZnJvbSAnQG5ncngvc3RvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgTG9nZ2VyU2VydmljZSB9IGZyb20gJ0BvM3IvbG9nZ2VyJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgY29tYmluZUxhdGVzdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGRpc3RpbmN0VW50aWxDaGFuZ2VkLCBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uIH0gZnJvbSAnLi4vY29yZS9sb2NhbGl6YXRpb24uY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25PdmVycmlkZVN0b3JlLCBzZWxlY3RMb2NhbGl6YXRpb25PdmVycmlkZSB9IGZyb20gJy4uL3N0b3Jlcy9pbmRleCc7XG5pbXBvcnQgeyBMT0NBTElaQVRJT05fQ09ORklHVVJBVElPTl9UT0tFTiB9IGZyb20gJy4vbG9jYWxpemF0aW9uLnRva2VuJztcblxuLyoqXG4gKiBTZXJ2aWNlIHdoaWNoIGlzIHdyYXBwaW5nIHRoZSBjb25maWd1cmF0aW9uIGxvZ2ljIG9mIFRyYW5zbGF0ZVNlcnZpY2UgZnJvbSBuZ3gtdHJhbnNsYXRlXG4gKiBBbnkgYXBwbGljYXRpb24gd2lsbGluZyB0byB1c2UgbG9jYWxpemF0aW9uIGp1c3QgbmVlZHMgdG8gaW5qZWN0IExvY2FsaXphdGlvblNlcnZpY2VcbiAqIGluIHRoZSByb290IGNvbXBvbmVudCBhbmQgY2FsbCBpdHMgY29uZmlndXJlKCkgbWV0aG9kLlxuICovXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTG9jYWxpemF0aW9uU2VydmljZSB7XG5cbiAgcHJpdmF0ZSByZWFkb25seSBsb2NhbGVTcGxpdElkZW50aWZpZXI6IHN0cmluZyA9ICctJztcblxuICAvKipcbiAgICogSW50ZXJuYWwgc3ViamVjdCB0aGF0IHdlIHVzZSB0byB0cmFjayBjaGFuZ2VzIGJldHdlZW4ga2V5cyBvbmx5IGFuZCB0cmFuc2xhdGlvbiBtb2RlXG4gICAqL1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25hbWluZy1jb252ZW50aW9uXG4gIHByaXZhdGUgcmVhZG9ubHkgX3Nob3dLZXlzJCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgbG9jYWxpemF0aW9uIGtleXMgdG8gcmVwbGFjZSBhIGtleSB0byBhbm90aGVyXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGtleU1hcHBpbmckPzogT2JzZXJ2YWJsZTxSZWNvcmQ8c3RyaW5nLCBhbnk+PjtcblxuICAvKipcbiAgICogX3Nob3dLZXlzJCBleHBvc2VkIGFzIGFuIE9ic2VydmFibGVcbiAgICovXG4gIHB1YmxpYyBzaG93S2V5cyQgPSB0aGlzLl9zaG93S2V5cyQuYXNPYnNlcnZhYmxlKCk7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSByZWFkb25seSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLFxuICAgIEBJbmplY3QoTE9DQUxJWkFUSU9OX0NPTkZJR1VSQVRJT05fVE9LRU4pIHByaXZhdGUgcmVhZG9ubHkgY29uZmlndXJhdGlvbjogTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbixcbiAgICBAT3B0aW9uYWwoKSBwcml2YXRlIHJlYWRvbmx5IHN0b3JlPzogU3RvcmU8TG9jYWxpemF0aW9uT3ZlcnJpZGVTdG9yZT4pIHtcbiAgICB0aGlzLmNvbmZpZ3VyZSgpO1xuICAgIGlmICh0aGlzLnN0b3JlKSB7XG4gICAgICB0aGlzLmtleU1hcHBpbmckID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICBzZWxlY3Qoc2VsZWN0TG9jYWxpemF0aW9uT3ZlcnJpZGUpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgaGFuZGxlIHRoZSBmYWxsYmFjayBsYW5ndWFnZSBoaWVyYXJjaHkgdG8gZmluZCBvdXQgZmFsbGJhY2sgbGFuZ3VhZ2UuXG4gICAqIHN1cHBvcnRlZExvY2FsZXMgbGFuZ3VhZ2UgaGFzIGhpZ2hlc3QgcHJpb3JpdHksIG5leHQgcHJpb3JpdHkgZ29lcyB0byBmYWxsYmFja0xvY2FsZXNNYXAgYW5kIGRlZmF1bHQgd291bGQgYmVcbiAgICogZmFsbGJhY2tMYW5ndWFnZS5cbiAgICogQHBhcmFtIGxhbmd1YWdlIFNlbGVjdGVkIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBzZWxlY3RlZCBsYW5ndWFnZSBpZiBzdXBwb3J0ZWQsIGZhbGxiYWNrIGxhbmd1YWdlIG90aGVyd2lzZS5cbiAgICovXG4gIHByaXZhdGUgY2hlY2tGYWxsYmFja0xvY2FsZXNNYXA8VCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZD4obGFuZ3VhZ2U6IFQpIHtcbiAgICBpZiAobGFuZ3VhZ2UgJiYgdGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMuaW5kZXhPZihsYW5ndWFnZSkgPT09IC0xKSB7XG4gICAgICBjb25zdCBjbG9zZXN0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlID0gdGhpcy5nZXRGaXJzdENsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUobGFuZ3VhZ2UpO1xuICAgICAgY29uc3QgZmFsbGJhY2tGb3JMYW5ndWFnZSA9IHRoaXMuZ2V0RmFsbGJhY2tNYXBMYW5nQ29kZShsYW5ndWFnZSk7XG4gICAgICBjb25zdCBmYWxsYmFja1N0cmF0ZWd5RGVidWcgPSBmYWxsYmFja0Zvckxhbmd1YWdlICYmICcgYXNzb2NpYXRlZCBmYWxsYmFjayBsYW5ndWFnZSAnIHx8XG4gICAgICAgIGNsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUgJiYgJyBjbG9zZXN0IHN1cHBvcnRlZCBsYW5ndWFnZSAnIHx8XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlICYmICcgY29uZmlndXJlZCBkZWZhdWx0IGxhbmd1YWdlICc7XG4gICAgICBjb25zdCBmYWxsYmFja0xhbmcgPSBmYWxsYmFja0Zvckxhbmd1YWdlIHx8IGNsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUgfHwgdGhpcy5jb25maWd1cmF0aW9uLmZhbGxiYWNrTGFuZ3VhZ2UgfHwgbGFuZ3VhZ2U7XG4gICAgICBpZiAobGFuZ3VhZ2UgIT09IGZhbGxiYWNrTGFuZykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTm9uIHN1cHBvcnRlZCBsYW5ndWFnZXMgJHtsYW5ndWFnZX0gd2lsbCBmYWxsYmFjayB0byAke2ZhbGxiYWNrU3RyYXRlZ3lEZWJ1Z30gJHtmYWxsYmFja0xhbmd9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsbGJhY2tMYW5nO1xuICAgIH0gZWxzZSBpZiAoIWxhbmd1YWdlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTGFuZ3VhZ2UgaXMgbm90IGRlZmluZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGxhbmd1YWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGZhbGxiYWNrIGxhbmd1YWdlIGNhbiBiZSBwcm92aWRlZCBmcm9tIGZhbGxiYWNrTG9jYWxlc01hcC5cbiAgICogc3VwcG9ydGVkTG9jYWxlczogWydlbi1HQicsICdlbi1VUycsICdmci1GUiddLCBmYWxsYmFja0xvY2FsZXNNYXA6IHsnZW4tQ0EnOiAnZW4tVVMnLCAnZGUnOiAnZnItRlInfVxuICAgKiB0cmFuc2xhdGUgdG8gZW4tQ0EgLT4gZmFsbGJhY2sgdG8gZW4tVVMsIHRyYW5zbGF0ZSB0byBkZS1ERSAtPiBmYWxsYmFjayB0byBmci1GUlxuICAgKiB0cmFuc2xhdGUgdG8gZW4tTlogLT4gZmFsbGJhY2sgdG8gZW4tR0JcbiAgICogQHBhcmFtIGxhbmd1YWdlIFNlbGVjdGVkIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBGYWxsYmFjayBsYW5ndWFnZSBpZiBhdmFpbGFibGUsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAqL1xuICBwcml2YXRlIGdldEZhbGxiYWNrTWFwTGFuZ0NvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmFsbGJhY2tMb2NhbGVzTWFwID0gdGhpcy5jb25maWd1cmF0aW9uLmZhbGxiYWNrTG9jYWxlc01hcDtcbiAgICBjb25zdCBbbG9jYWxlXSA9IGxhbmd1YWdlLnNwbGl0KHRoaXMubG9jYWxlU3BsaXRJZGVudGlmaWVyKTtcblxuICAgIHJldHVybiBmYWxsYmFja0xvY2FsZXNNYXAgJiYgKGZhbGxiYWNrTG9jYWxlc01hcFtsYW5ndWFnZV0gfHwgZmFsbGJhY2tMb2NhbGVzTWFwW2xvY2FsZV0pO1xuXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgY2xvc2VzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2UgYXZhaWxhYmxlIGluY2FzZSBvZiBzZWxlY3RlZCBsYW5ndWFnZSBpcyBub3RcbiAgICogc3VwcG9ydGVkIGxhbmd1YWdlLlxuICAgKiBzdXBwb3J0ZWRMb2NhbGVzOiBbJ2VuLUdCJywgJ2VuLVVTJywgJ2ZyLUZSJ11cbiAgICogdHJhbnNsYXRlIHRvIGVuLUNBIC0+IGZhbGxiYWNrIHRvIGVuLUdCXG4gICAqIEBwYXJhbSBsYW5ndWFnZSBTZWxlY3RlZCBsYW5ndWFnZS5cbiAgICogQHJldHVybnMgQ2xvc2VzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2UgaWYgYXZhaWxhYmxlLCB1bmRlZmluZWQgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGaXJzdENsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cbiAgICBjb25zdCBbbG9jYWxlXSA9IGxhbmd1YWdlLnNwbGl0KHRoaXMubG9jYWxlU3BsaXRJZGVudGlmaWVyKTtcbiAgICBjb25zdCBmaXJzdENsb3Nlc3RSZWd4ID0gbmV3IFJlZ0V4cChgXiR7bG9jYWxlfSR7dGhpcy5sb2NhbGVTcGxpdElkZW50aWZpZXJ9P2AsICdpJyk7XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMuZmluZCgoc3VwcG9ydGVkTGFuZykgPT4gZmlyc3RDbG9zZXN0UmVneC50ZXN0KHN1cHBvcnRlZExhbmcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyZWFtIG9mIHRyYW5zbGF0ZWQgdmFsdWVzIG9mIGEga2V5IHdoaWNoIHVwZGF0ZXMgd2hlbmV2ZXIgdGhlIGxhbmd1YWdlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB0cmFuc2xhdGlvbktleSBLZXkgdG8gdHJhbnNsYXRlXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0ZVBhcmFtcyBPYmplY3QgdG8gdXNlIGluIHRyYW5zbGF0aW9uIGJpbmRpbmdcbiAgICogQHJldHVybnMgQSBzdHJlYW0gb2YgdGhlIHRyYW5zbGF0ZWQga2V5XG4gICAqL1xuICBwcml2YXRlIGdldFRyYW5zbGF0aW9uU3RyZWFtKHRyYW5zbGF0aW9uS2V5OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0KSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24kID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSh0cmFuc2xhdGlvbktleSwgaW50ZXJwb2xhdGVQYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHZhbHVlOiBzdHJpbmcpID0+IHRoaXMuY29uZmlndXJhdGlvbi5kZWJ1Z01vZGUgPyBgJHt0cmFuc2xhdGlvbktleX0gLSAke3ZhbHVlfWAgOiB2YWx1ZSlcbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24uZW5hYmxlVHJhbnNsYXRpb25EZWFjdGl2YXRpb24pIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbiQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdHJhbnNsYXRpb24kLFxuICAgICAgdGhpcy5zaG93S2V5cyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWUsIHNob3dLZXlzXSkgPT4gc2hvd0tleXMgPyB0cmFuc2xhdGlvbktleSA6IHZhbHVlKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlcyBUcmFuc2xhdGVTZXJ2aWNlIGFuZCByZWdpc3RlcnMgbG9jYWxlcy4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGxldmVsLlxuICAgKi9cbiAgcHVibGljIGNvbmZpZ3VyZSgpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuY2hlY2tGYWxsYmFja0xvY2FsZXNNYXAodGhpcy5jb25maWd1cmF0aW9uLmxhbmd1YWdlIHx8IHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ3ModGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMpO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0TGFuZyhsYW5ndWFnZSk7XG4gICAgdGhpcy51c2VMYW5ndWFnZShsYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciB0byBjYWxsIHRoZSBuZ3gtdHJhbnNsYXRlIHNlcnZpY2UgVHJhbnNsYXRlU2VydmljZSBtZXRob2QgZ2V0TGFuZ3MoKS5cbiAgICovXG4gIHB1YmxpYyBnZXRMYW5ndWFnZXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5nZXRMYW5ncygpO1xuICB9XG5cbiAgLyoqXG4gICAqIFdyYXBwZXIgdG8gY2FsbCB0aGUgbmd4LXRyYW5zbGF0ZSBzZXJ2aWNlIFRyYW5zbGF0ZVNlcnZpY2UgbWV0aG9kIHVzZShsYW5ndWFnZSkuXG4gICAqIEBwYXJhbSBsYW5ndWFnZVxuICAgKi9cbiAgcHVibGljIHVzZUxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuXG4gICAgbGFuZ3VhZ2UgPSB0aGlzLmNoZWNrRmFsbGJhY2tMb2NhbGVzTWFwKGxhbmd1YWdlKTtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciB0byBnZXQgdGhlIG5neC10cmFuc2xhdGUgc2VydmljZSBUcmFuc2xhdGVTZXJ2aWNlIGN1cnJlbnRMYW5nLlxuICAgKi9cbiAgcHVibGljIGdldEN1cnJlbnRMYW5ndWFnZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgaW5zdGFuY2Ugb2YgdGhlIG5neC10cmFuc2xhdGUgVHJhbnNsYXRlU2VydmljZSB1c2VkIGJ5IExvY2FsaXphdGlvblNlcnZpY2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0VHJhbnNsYXRlU2VydmljZSgpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRvZ2dsZSB0aGUgU2hvd0tleXMgbW9kZSBiZXR3ZWVuIGFjdGl2ZSBhbmQgaW5hY3RpdmUuXG4gICAqIEBwYXJhbSB2YWx1ZSBpZiBzcGVjaWZpZWQsIHNldCB0aGUgU2hvd0tleXMgbW9kZSB0byB2YWx1ZS4gSWYgbm90IHNwZWNpZmllZCwgdG9nZ2xlIHRoZSBTaG93S2V5cyBtb2RlLlxuICAgKi9cbiAgcHVibGljIHRvZ2dsZVNob3dLZXlzKHZhbHVlPzogYm9vbGVhbikge1xuICAgIGlmICghdGhpcy5jb25maWd1cmF0aW9uLmVuYWJsZVRyYW5zbGF0aW9uRGVhY3RpdmF0aW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyYW5zbGF0aW9uIGRlYWN0aXZhdGlvbiBpcyBub3QgZW5hYmxlZC4gUGxlYXNlIHNldCB0aGUgTG9jYWxpemF0aW9uQ29uZmlndXJhdGlvbiBwcm9wZXJ0eSBcImVuYWJsZVRyYW5zbGF0aW9uRGVhY3RpdmF0aW9uXCIgYWNjb3JkaW5nbHkuJyk7XG4gICAgfVxuICAgIGNvbnN0IG5ld1ZhbHVlID0gdmFsdWUgIT09IHVuZGVmaW5lZCA/IHZhbHVlIDogIXRoaXMuc2hvd0tleXM7XG4gICAgdGhpcy5fc2hvd0tleXMkLm5leHQobmV3VmFsdWUpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgY3VycmVudCB2YWx1ZSBvZiBkZWJ1ZyBzaG93L2hpZGUgdHJhbnNsYXRpb24ga2V5cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc2hvd0tleXMoKSB7XG4gICAgcmV0dXJuIHRoaXMuX3Nob3dLZXlzJC52YWx1ZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYW4gb2JzZXJ2YWJsZSBvZiB0cmFuc2xhdGlvbiBrZXkgYWZ0ZXIgZ2xvYmFsIG1hcHBpbmdcbiAgICogQHBhcmFtIHJlcXVlc3RlZEtleSBPcmlnaW5hbCB0cmFuc2xhdGlvbiBrZXlcbiAgICovXG4gIHB1YmxpYyBnZXRLZXkocmVxdWVzdGVkS2V5OiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5rZXlNYXBwaW5nJCkge1xuICAgICAgcmV0dXJuIHRoaXMua2V5TWFwcGluZyQucGlwZShcbiAgICAgICAgbWFwKChrZXlNYXBwaW5nKSA9PiBrZXlNYXBwaW5nICYmIGtleU1hcHBpbmdbcmVxdWVzdGVkS2V5XSB8fCByZXF1ZXN0ZWRLZXkpLFxuICAgICAgICBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpXG4gICAgICApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gb2YocmVxdWVzdGVkS2V5KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyBhIHN0cmVhbSBvZiB0cmFuc2xhdGVkIHZhbHVlcyBvZiBhIGtleSB3aGljaCB1cGRhdGVzIHdoZW5ldmVyIHRoZSBsYW5ndWFnZSBjaGFuZ2VzLlxuICAgKiBAcGFyYW0ga2V5IEtleSB0byB0cmFuc2xhdGVcbiAgICogQHBhcmFtIGludGVycG9sYXRlUGFyYW1zIE9iamVjdCB0byB1c2UgaW4gdHJhbnNsYXRpb24gYmluZGluZ1xuICAgKiBAcmV0dXJucyBBIHN0cmVhbSBvZiB0aGUgdHJhbnNsYXRlZCBrZXlcbiAgICovXG4gIHB1YmxpYyB0cmFuc2xhdGUoa2V5OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0KSB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0S2V5KGtleSkucGlwZShcbiAgICAgIHN3aXRjaE1hcCgodHJhbnNsYXRpb25LZXkpID0+IHRoaXMuZ2V0VHJhbnNsYXRpb25TdHJlYW0odHJhbnNsYXRpb25LZXksIGludGVycG9sYXRlUGFyYW1zKSksXG4gICAgICBzaGFyZVJlcGxheSgxKVxuICAgICk7XG4gIH1cbn1cbiJdfQ==
|
|
197
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvdG9vbHMvbG9jYWxpemF0aW9uLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsaURBQWlEO0FBQ2pELE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxlQUFlLEVBQUUsYUFBYSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRixPQUFPLEVBQTZCLDBCQUEwQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDeEYsT0FBTyxFQUFFLGdDQUFnQyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7O0FBRXhFOzs7O0dBSUc7QUFFSCxNQUFNLE9BQU8sbUJBQW1CO0lBb0I5QixZQUNtQixnQkFBa0MsRUFDbEMsTUFBcUIsRUFDcUIsYUFBd0MsRUFDdEUsS0FBd0M7UUFIcEQscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3FCLGtCQUFhLEdBQWIsYUFBYSxDQUEyQjtRQUN0RSxVQUFLLEdBQUwsS0FBSyxDQUFtQztRQXRCdEQsMEJBQXFCLEdBQVcsR0FBRyxDQUFDO1FBRXJEOztXQUVHO1FBQ0gsZ0VBQWdFO1FBQy9DLGVBQVUsR0FBRyxJQUFJLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQU96RDs7V0FFRztR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S0c7SUFDSSxTQUFTLENBQUMsR0FBVyxFQUFFLGlCQUEwQjtRQUN0RCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUMsSUFBSSxDQUMxQixTQUFTLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxjQUFjLEVBQUUsaUJBQWlCLENBQUMsQ0FBQyxFQUMzRixXQUFXLENBQUMsQ0FBQyxDQUFDLENBQ2YsQ0FBQztJQUNKLENBQUM7aUlBL01VLG1CQUFtQiwrRUF1QnBCLGdDQUFnQztxSUF2Qi9CLG1CQUFtQjs7MkZBQW5CLG1CQUFtQjtrQkFEL0IsVUFBVTs7MEJBd0JOLE1BQU07MkJBQUMsZ0NBQWdDOzswQkFDdkMsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9iYW4tdHlwZXMgKi9cbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tICdAbmdyeC9zdG9yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnQG8zci9sb2dnZXInO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBjb21iaW5lTGF0ZXN0LCBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgZGlzdGluY3RVbnRpbENoYW5nZWQsIG1hcCwgc2hhcmVSZXBsYXksIHN3aXRjaE1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvY2FsaXphdGlvbkNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9jb3JlL2xvY2FsaXphdGlvbi5jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IExvY2FsaXphdGlvbk92ZXJyaWRlU3RvcmUsIHNlbGVjdExvY2FsaXphdGlvbk92ZXJyaWRlIH0gZnJvbSAnLi4vc3RvcmVzL2luZGV4JztcbmltcG9ydCB7IExPQ0FMSVpBVElPTl9DT05GSUdVUkFUSU9OX1RPS0VOIH0gZnJvbSAnLi9sb2NhbGl6YXRpb24udG9rZW4nO1xuXG4vKipcbiAqIFNlcnZpY2Ugd2hpY2ggaXMgd3JhcHBpbmcgdGhlIGNvbmZpZ3VyYXRpb24gbG9naWMgb2YgVHJhbnNsYXRlU2VydmljZSBmcm9tIG5neC10cmFuc2xhdGVcbiAqIEFueSBhcHBsaWNhdGlvbiB3aWxsaW5nIHRvIHVzZSBsb2NhbGl6YXRpb24ganVzdCBuZWVkcyB0byBpbmplY3QgTG9jYWxpemF0aW9uU2VydmljZVxuICogaW4gdGhlIHJvb3QgY29tcG9uZW50IGFuZCBjYWxsIGl0cyBjb25maWd1cmUoKSBtZXRob2QuXG4gKi9cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25TZXJ2aWNlIHtcblxuICBwcml2YXRlIHJlYWRvbmx5IGxvY2FsZVNwbGl0SWRlbnRpZmllcjogc3RyaW5nID0gJy0nO1xuXG4gIC8qKlxuICAgKiBJbnRlcm5hbCBzdWJqZWN0IHRoYXQgd2UgdXNlIHRvIHRyYWNrIGNoYW5nZXMgYmV0d2VlbiBrZXlzIG9ubHkgYW5kIHRyYW5zbGF0aW9uIG1vZGVcbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbmFtaW5nLWNvbnZlbnRpb25cbiAgcHJpdmF0ZSByZWFkb25seSBfc2hvd0tleXMkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgLyoqXG4gICAqIE1hcCBvZiBsb2NhbGl6YXRpb24ga2V5cyB0byByZXBsYWNlIGEga2V5IHRvIGFub3RoZXJcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkga2V5TWFwcGluZyQ/OiBPYnNlcnZhYmxlPFJlY29yZDxzdHJpbmcsIGFueT4+O1xuXG4gIC8qKlxuICAgKiBfc2hvd0tleXMkIGV4cG9zZWQgYXMgYW4gT2JzZXJ2YWJsZVxuICAgKi9cbiAgcHVibGljIHNob3dLZXlzJCA9IHRoaXMuX3Nob3dLZXlzJC5hc09ic2VydmFibGUoKTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSByZWFkb25seSBsb2dnZXI6IExvZ2dlclNlcnZpY2UsXG4gICAgQEluamVjdChMT0NBTElaQVRJT05fQ09ORklHVVJBVElPTl9UT0tFTikgcHJpdmF0ZSByZWFkb25seSBjb25maWd1cmF0aW9uOiBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uLFxuICAgIEBPcHRpb25hbCgpIHByaXZhdGUgcmVhZG9ubHkgc3RvcmU/OiBTdG9yZTxMb2NhbGl6YXRpb25PdmVycmlkZVN0b3JlPlxuICApIHtcbiAgICB0aGlzLmNvbmZpZ3VyZSgpO1xuICAgIGlmICh0aGlzLnN0b3JlKSB7XG4gICAgICB0aGlzLmtleU1hcHBpbmckID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgICBzZWxlY3Qoc2VsZWN0TG9jYWxpemF0aW9uT3ZlcnJpZGUpXG4gICAgICApO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGlzIHdpbGwgaGFuZGxlIHRoZSBmYWxsYmFjayBsYW5ndWFnZSBoaWVyYXJjaHkgdG8gZmluZCBvdXQgZmFsbGJhY2sgbGFuZ3VhZ2UuXG4gICAqIHN1cHBvcnRlZExvY2FsZXMgbGFuZ3VhZ2UgaGFzIGhpZ2hlc3QgcHJpb3JpdHksIG5leHQgcHJpb3JpdHkgZ29lcyB0byBmYWxsYmFja0xvY2FsZXNNYXAgYW5kIGRlZmF1bHQgd291bGQgYmVcbiAgICogZmFsbGJhY2tMYW5ndWFnZS5cbiAgICogQHBhcmFtIGxhbmd1YWdlIFNlbGVjdGVkIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBzZWxlY3RlZCBsYW5ndWFnZSBpZiBzdXBwb3J0ZWQsIGZhbGxiYWNrIGxhbmd1YWdlIG90aGVyd2lzZS5cbiAgICovXG4gIHByaXZhdGUgY2hlY2tGYWxsYmFja0xvY2FsZXNNYXA8VCBleHRlbmRzIHN0cmluZyB8IHVuZGVmaW5lZD4obGFuZ3VhZ2U6IFQpIHtcbiAgICBpZiAobGFuZ3VhZ2UgJiYgdGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMuaW5kZXhPZihsYW5ndWFnZSkgPT09IC0xKSB7XG4gICAgICBjb25zdCBjbG9zZXN0U3VwcG9ydGVkTGFuZ3VhZ2VDb2RlID0gdGhpcy5nZXRGaXJzdENsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUobGFuZ3VhZ2UpO1xuICAgICAgY29uc3QgZmFsbGJhY2tGb3JMYW5ndWFnZSA9IHRoaXMuZ2V0RmFsbGJhY2tNYXBMYW5nQ29kZShsYW5ndWFnZSk7XG4gICAgICBjb25zdCBmYWxsYmFja1N0cmF0ZWd5RGVidWcgPSBmYWxsYmFja0Zvckxhbmd1YWdlICYmICcgYXNzb2NpYXRlZCBmYWxsYmFjayBsYW5ndWFnZSAnIHx8XG4gICAgICAgIGNsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUgJiYgJyBjbG9zZXN0IHN1cHBvcnRlZCBsYW5ndWFnZSAnIHx8XG4gICAgICAgIHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlICYmICcgY29uZmlndXJlZCBkZWZhdWx0IGxhbmd1YWdlICc7XG4gICAgICBjb25zdCBmYWxsYmFja0xhbmcgPSBmYWxsYmFja0Zvckxhbmd1YWdlIHx8IGNsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUgfHwgdGhpcy5jb25maWd1cmF0aW9uLmZhbGxiYWNrTGFuZ3VhZ2UgfHwgbGFuZ3VhZ2U7XG4gICAgICBpZiAobGFuZ3VhZ2UgIT09IGZhbGxiYWNrTGFuZykge1xuICAgICAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhgTm9uIHN1cHBvcnRlZCBsYW5ndWFnZXMgJHtsYW5ndWFnZX0gd2lsbCBmYWxsYmFjayB0byAke2ZhbGxiYWNrU3RyYXRlZ3lEZWJ1Z30gJHtmYWxsYmFja0xhbmd9YCk7XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsbGJhY2tMYW5nO1xuICAgIH0gZWxzZSBpZiAoIWxhbmd1YWdlKSB7XG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnTGFuZ3VhZ2UgaXMgbm90IGRlZmluZWQnKTtcbiAgICB9XG4gICAgcmV0dXJuIGxhbmd1YWdlO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoaXMgZnVuY3Rpb24gY2hlY2tzIGlmIGZhbGxiYWNrIGxhbmd1YWdlIGNhbiBiZSBwcm92aWRlZCBmcm9tIGZhbGxiYWNrTG9jYWxlc01hcC5cbiAgICogc3VwcG9ydGVkTG9jYWxlczogWydlbi1HQicsICdlbi1VUycsICdmci1GUiddLCBmYWxsYmFja0xvY2FsZXNNYXA6IHsnZW4tQ0EnOiAnZW4tVVMnLCAnZGUnOiAnZnItRlInfVxuICAgKiB0cmFuc2xhdGUgdG8gZW4tQ0EgLT4gZmFsbGJhY2sgdG8gZW4tVVMsIHRyYW5zbGF0ZSB0byBkZS1ERSAtPiBmYWxsYmFjayB0byBmci1GUlxuICAgKiB0cmFuc2xhdGUgdG8gZW4tTlogLT4gZmFsbGJhY2sgdG8gZW4tR0JcbiAgICogQHBhcmFtIGxhbmd1YWdlIFNlbGVjdGVkIGxhbmd1YWdlLlxuICAgKiBAcmV0dXJucyBGYWxsYmFjayBsYW5ndWFnZSBpZiBhdmFpbGFibGUsIHVuZGVmaW5lZCBvdGhlcndpc2UuXG4gICAqL1xuICBwcml2YXRlIGdldEZhbGxiYWNrTWFwTGFuZ0NvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgZmFsbGJhY2tMb2NhbGVzTWFwID0gdGhpcy5jb25maWd1cmF0aW9uLmZhbGxiYWNrTG9jYWxlc01hcDtcbiAgICBjb25zdCBbbG9jYWxlXSA9IGxhbmd1YWdlLnNwbGl0KHRoaXMubG9jYWxlU3BsaXRJZGVudGlmaWVyKTtcblxuICAgIHJldHVybiBmYWxsYmFja0xvY2FsZXNNYXAgJiYgKGZhbGxiYWNrTG9jYWxlc01hcFtsYW5ndWFnZV0gfHwgZmFsbGJhY2tMb2NhbGVzTWFwW2xvY2FsZV0pO1xuXG4gIH1cblxuICAvKipcbiAgICogVGhpcyBmdW5jdGlvbiBjaGVja3MgaWYgY2xvc2VzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2UgYXZhaWxhYmxlIGluY2FzZSBvZiBzZWxlY3RlZCBsYW5ndWFnZSBpcyBub3RcbiAgICogc3VwcG9ydGVkIGxhbmd1YWdlLlxuICAgKiBzdXBwb3J0ZWRMb2NhbGVzOiBbJ2VuLUdCJywgJ2VuLVVTJywgJ2ZyLUZSJ11cbiAgICogdHJhbnNsYXRlIHRvIGVuLUNBIC0+IGZhbGxiYWNrIHRvIGVuLUdCXG4gICAqIEBwYXJhbSBsYW5ndWFnZSBTZWxlY3RlZCBsYW5ndWFnZS5cbiAgICogQHJldHVybnMgQ2xvc2VzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2UgaWYgYXZhaWxhYmxlLCB1bmRlZmluZWQgb3RoZXJ3aXNlLlxuICAgKi9cbiAgcHJpdmF0ZSBnZXRGaXJzdENsb3Nlc3RTdXBwb3J0ZWRMYW5ndWFnZUNvZGUobGFuZ3VhZ2U6IHN0cmluZyk6IHN0cmluZyB8IHVuZGVmaW5lZCB7XG5cbiAgICBjb25zdCBbbG9jYWxlXSA9IGxhbmd1YWdlLnNwbGl0KHRoaXMubG9jYWxlU3BsaXRJZGVudGlmaWVyKTtcbiAgICBjb25zdCBmaXJzdENsb3Nlc3RSZWd4ID0gbmV3IFJlZ0V4cChgXiR7bG9jYWxlfSR7dGhpcy5sb2NhbGVTcGxpdElkZW50aWZpZXJ9P2AsICdpJyk7XG5cbiAgICByZXR1cm4gdGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMuZmluZCgoc3VwcG9ydGVkTGFuZykgPT4gZmlyc3RDbG9zZXN0UmVneC50ZXN0KHN1cHBvcnRlZExhbmcpKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyZWFtIG9mIHRyYW5zbGF0ZWQgdmFsdWVzIG9mIGEga2V5IHdoaWNoIHVwZGF0ZXMgd2hlbmV2ZXIgdGhlIGxhbmd1YWdlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSB0cmFuc2xhdGlvbktleSBLZXkgdG8gdHJhbnNsYXRlXG4gICAqIEBwYXJhbSBpbnRlcnBvbGF0ZVBhcmFtcyBPYmplY3QgdG8gdXNlIGluIHRyYW5zbGF0aW9uIGJpbmRpbmdcbiAgICogQHJldHVybnMgQSBzdHJlYW0gb2YgdGhlIHRyYW5zbGF0ZWQga2V5XG4gICAqL1xuICBwcml2YXRlIGdldFRyYW5zbGF0aW9uU3RyZWFtKHRyYW5zbGF0aW9uS2V5OiBzdHJpbmcsIGludGVycG9sYXRlUGFyYW1zPzogb2JqZWN0KSB7XG4gICAgY29uc3QgdHJhbnNsYXRpb24kID0gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnN0cmVhbSh0cmFuc2xhdGlvbktleSwgaW50ZXJwb2xhdGVQYXJhbXMpLnBpcGUoXG4gICAgICBtYXAoKHZhbHVlOiBzdHJpbmcpID0+IHRoaXMuY29uZmlndXJhdGlvbi5kZWJ1Z01vZGUgPyBgJHt0cmFuc2xhdGlvbktleX0gLSAke3ZhbHVlfWAgOiB2YWx1ZSlcbiAgICApO1xuXG4gICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24uZW5hYmxlVHJhbnNsYXRpb25EZWFjdGl2YXRpb24pIHtcbiAgICAgIHJldHVybiB0cmFuc2xhdGlvbiQ7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvbWJpbmVMYXRlc3QoW1xuICAgICAgdHJhbnNsYXRpb24kLFxuICAgICAgdGhpcy5zaG93S2V5cyRcbiAgICBdKS5waXBlKFxuICAgICAgbWFwKChbdmFsdWUsIHNob3dLZXlzXSkgPT4gc2hvd0tleXMgPyB0cmFuc2xhdGlvbktleSA6IHZhbHVlKVxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICogQ29uZmlndXJlcyBUcmFuc2xhdGVTZXJ2aWNlIGFuZCByZWdpc3RlcnMgbG9jYWxlcy4gVGhpcyBtZXRob2QgaXMgY2FsbGVkIGZyb20gdGhlIGFwcGxpY2F0aW9uIGxldmVsLlxuICAgKi9cbiAgcHVibGljIGNvbmZpZ3VyZSgpIHtcbiAgICBjb25zdCBsYW5ndWFnZSA9IHRoaXMuY2hlY2tGYWxsYmFja0xvY2FsZXNNYXAodGhpcy5jb25maWd1cmF0aW9uLmxhbmd1YWdlIHx8IHRoaXMuY29uZmlndXJhdGlvbi5mYWxsYmFja0xhbmd1YWdlKTtcbiAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuYWRkTGFuZ3ModGhpcy5jb25maWd1cmF0aW9uLnN1cHBvcnRlZExvY2FsZXMpO1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5zZXREZWZhdWx0TGFuZyhsYW5ndWFnZSk7XG4gICAgdGhpcy51c2VMYW5ndWFnZShsYW5ndWFnZSk7XG4gIH1cblxuICAvKipcbiAgICogSXMgdGhlIHRyYW5zbGF0aW9uIGRlYWN0aXZhdGlvbiBlbmFibGVkXG4gICAqL1xuICBwdWJsaWMgaXNUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbkVuYWJsZWQoKSB7XG4gICAgcmV0dXJuIHRoaXMuY29uZmlndXJhdGlvbi5lbmFibGVUcmFuc2xhdGlvbkRlYWN0aXZhdGlvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVyIHRvIGNhbGwgdGhlIG5neC10cmFuc2xhdGUgc2VydmljZSBUcmFuc2xhdGVTZXJ2aWNlIG1ldGhvZCBnZXRMYW5ncygpLlxuICAgKi9cbiAgcHVibGljIGdldExhbmd1YWdlcygpIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmdldExhbmdzKCk7XG4gIH1cblxuICAvKipcbiAgICogV3JhcHBlciB0byBjYWxsIHRoZSBuZ3gtdHJhbnNsYXRlIHNlcnZpY2UgVHJhbnNsYXRlU2VydmljZSBtZXRob2QgdXNlKGxhbmd1YWdlKS5cbiAgICogQHBhcmFtIGxhbmd1YWdlXG4gICAqL1xuICBwdWJsaWMgdXNlTGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG5cbiAgICBsYW5ndWFnZSA9IHRoaXMuY2hlY2tGYWxsYmFja0xvY2FsZXNNYXAobGFuZ3VhZ2UpO1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmd1YWdlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBXcmFwcGVyIHRvIGdldCB0aGUgbmd4LXRyYW5zbGF0ZSBzZXJ2aWNlIFRyYW5zbGF0ZVNlcnZpY2UgY3VycmVudExhbmcuXG4gICAqL1xuICBwdWJsaWMgZ2V0Q3VycmVudExhbmd1YWdlKCkge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuY3VycmVudExhbmc7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBpbnN0YW5jZSBvZiB0aGUgbmd4LXRyYW5zbGF0ZSBUcmFuc2xhdGVTZXJ2aWNlIHVzZWQgYnkgTG9jYWxpemF0aW9uU2VydmljZS5cbiAgICovXG4gIHB1YmxpYyBnZXRUcmFuc2xhdGVTZXJ2aWNlKCkge1xuICAgIHJldHVybiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2U7XG4gIH1cblxuICAvKipcbiAgICogVG9nZ2xlIHRoZSBTaG93S2V5cyBtb2RlIGJldHdlZW4gYWN0aXZlIGFuZCBpbmFjdGl2ZS5cbiAgICogQHBhcmFtIHZhbHVlIGlmIHNwZWNpZmllZCwgc2V0IHRoZSBTaG93S2V5cyBtb2RlIHRvIHZhbHVlLiBJZiBub3Qgc3BlY2lmaWVkLCB0b2dnbGUgdGhlIFNob3dLZXlzIG1vZGUuXG4gICAqL1xuICBwdWJsaWMgdG9nZ2xlU2hvd0tleXModmFsdWU/OiBib29sZWFuKSB7XG4gICAgaWYgKCF0aGlzLmNvbmZpZ3VyYXRpb24uZW5hYmxlVHJhbnNsYXRpb25EZWFjdGl2YXRpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignVHJhbnNsYXRpb24gZGVhY3RpdmF0aW9uIGlzIG5vdCBlbmFibGVkLiBQbGVhc2Ugc2V0IHRoZSBMb2NhbGl6YXRpb25Db25maWd1cmF0aW9uIHByb3BlcnR5IFwiZW5hYmxlVHJhbnNsYXRpb25EZWFjdGl2YXRpb25cIiBhY2NvcmRpbmdseS4nKTtcbiAgICB9XG4gICAgY29uc3QgbmV3VmFsdWUgPSB2YWx1ZSAhPT0gdW5kZWZpbmVkID8gdmFsdWUgOiAhdGhpcy5zaG93S2V5cztcbiAgICB0aGlzLl9zaG93S2V5cyQubmV4dChuZXdWYWx1ZSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBjdXJyZW50IHZhbHVlIG9mIGRlYnVnIHNob3cvaGlkZSB0cmFuc2xhdGlvbiBrZXlzLlxuICAgKi9cbiAgcHVibGljIGdldCBzaG93S2V5cygpIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0tleXMkLnZhbHVlO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBhbiBvYnNlcnZhYmxlIG9mIHRyYW5zbGF0aW9uIGtleSBhZnRlciBnbG9iYWwgbWFwcGluZ1xuICAgKiBAcGFyYW0gcmVxdWVzdGVkS2V5IE9yaWdpbmFsIHRyYW5zbGF0aW9uIGtleVxuICAgKi9cbiAgcHVibGljIGdldEtleShyZXF1ZXN0ZWRLZXk6IHN0cmluZykge1xuICAgIGlmICh0aGlzLmtleU1hcHBpbmckKSB7XG4gICAgICByZXR1cm4gdGhpcy5rZXlNYXBwaW5nJC5waXBlKFxuICAgICAgICBtYXAoKGtleU1hcHBpbmcpID0+IGtleU1hcHBpbmcgJiYga2V5TWFwcGluZ1tyZXF1ZXN0ZWRLZXldIHx8IHJlcXVlc3RlZEtleSksXG4gICAgICAgIGRpc3RpbmN0VW50aWxDaGFuZ2VkKClcbiAgICAgICk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHJldHVybiBvZihyZXF1ZXN0ZWRLZXkpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIGEgc3RyZWFtIG9mIHRyYW5zbGF0ZWQgdmFsdWVzIG9mIGEga2V5IHdoaWNoIHVwZGF0ZXMgd2hlbmV2ZXIgdGhlIGxhbmd1YWdlIGNoYW5nZXMuXG4gICAqIEBwYXJhbSBrZXkgS2V5IHRvIHRyYW5zbGF0ZVxuICAgKiBAcGFyYW0gaW50ZXJwb2xhdGVQYXJhbXMgT2JqZWN0IHRvIHVzZSBpbiB0cmFuc2xhdGlvbiBiaW5kaW5nXG4gICAqIEByZXR1cm5zIEEgc3RyZWFtIG9mIHRoZSB0cmFuc2xhdGVkIGtleVxuICAgKi9cbiAgcHVibGljIHRyYW5zbGF0ZShrZXk6IHN0cmluZywgaW50ZXJwb2xhdGVQYXJhbXM/OiBvYmplY3QpIHtcbiAgICByZXR1cm4gdGhpcy5nZXRLZXkoa2V5KS5waXBlKFxuICAgICAgc3dpdGNoTWFwKCh0cmFuc2xhdGlvbktleSkgPT4gdGhpcy5nZXRUcmFuc2xhdGlvblN0cmVhbSh0cmFuc2xhdGlvbktleSwgaW50ZXJwb2xhdGVQYXJhbXMpKSxcbiAgICAgIHNoYXJlUmVwbGF5KDEpXG4gICAgKTtcbiAgfVxufVxuIl19
|
|
@@ -1,15 +1,15 @@
|
|
|
1
|
-
import { immutablePrimitive, deepFill, otterComponentInfoPropertyName, filterMessageContent } from '@o3r/core';
|
|
1
|
+
import { immutablePrimitive, deepFill, otterComponentInfoPropertyName, sendOtterMessage, filterMessageContent } from '@o3r/core';
|
|
2
2
|
import * as i0 from '@angular/core';
|
|
3
3
|
import { InjectionToken, Injectable, Optional, Inject, NgModule, Directive, Input, Pipe, LOCALE_ID } from '@angular/core';
|
|
4
4
|
import * as i2 from '@ngx-translate/core';
|
|
5
5
|
import { TranslateCompiler, TranslateDirective, TranslatePipe, TranslateModule, TranslateLoader } from '@ngx-translate/core';
|
|
6
6
|
import { IntlMessageFormat } from 'intl-messageformat';
|
|
7
|
-
import { BehaviorSubject, combineLatest, of, from, lastValueFrom, Subscription, fromEvent } from 'rxjs';
|
|
8
|
-
import { map, distinctUntilChanged, switchMap, shareReplay, startWith, catchError, take } from 'rxjs/operators';
|
|
7
|
+
import { BehaviorSubject, combineLatest, of, from, lastValueFrom, Subscription, firstValueFrom, fromEvent } from 'rxjs';
|
|
9
8
|
import * as i3 from '@ngrx/store';
|
|
10
9
|
import { createAction, props, on, createReducer, StoreModule, createFeatureSelector, createSelector, select } from '@ngrx/store';
|
|
11
10
|
import * as i1 from '@o3r/logger';
|
|
12
11
|
import { LoggerService } from '@o3r/logger';
|
|
12
|
+
import { map, distinctUntilChanged, switchMap, shareReplay, startWith, catchError } from 'rxjs/operators';
|
|
13
13
|
import * as i2$1 from '@angular/cdk/bidi';
|
|
14
14
|
import { Directionality, DIR_DOCUMENT, BidiModule } from '@angular/cdk/bidi';
|
|
15
15
|
import { CurrencyPipe, DatePipe, DecimalPipe, CommonModule } from '@angular/common';
|
|
@@ -304,6 +304,12 @@ class LocalizationService {
|
|
|
304
304
|
this.translateService.setDefaultLang(language);
|
|
305
305
|
this.useLanguage(language);
|
|
306
306
|
}
|
|
307
|
+
/**
|
|
308
|
+
* Is the translation deactivation enabled
|
|
309
|
+
*/
|
|
310
|
+
isTranslationDeactivationEnabled() {
|
|
311
|
+
return this.configuration.enableTranslationDeactivation;
|
|
312
|
+
}
|
|
307
313
|
/**
|
|
308
314
|
* Wrapper to call the ngx-translate service TranslateService method getLangs().
|
|
309
315
|
*/
|
|
@@ -864,8 +870,16 @@ const translateLoaderProvider = {
|
|
|
864
870
|
};
|
|
865
871
|
|
|
866
872
|
class OtterLocalizationDevtools {
|
|
867
|
-
constructor(localizationService) {
|
|
873
|
+
constructor(localizationService, translateCompiler, appRef) {
|
|
868
874
|
this.localizationService = localizationService;
|
|
875
|
+
this.translateCompiler = translateCompiler;
|
|
876
|
+
this.appRef = appRef;
|
|
877
|
+
}
|
|
878
|
+
/**
|
|
879
|
+
* Is the translation deactivation enabled
|
|
880
|
+
*/
|
|
881
|
+
isTranslationDeactivationEnabled() {
|
|
882
|
+
return this.localizationService.isTranslationDeactivationEnabled();
|
|
869
883
|
}
|
|
870
884
|
/**
|
|
871
885
|
* Show localization keys
|
|
@@ -873,6 +887,7 @@ class OtterLocalizationDevtools {
|
|
|
873
887
|
*/
|
|
874
888
|
showLocalizationKeys(value) {
|
|
875
889
|
this.localizationService.toggleShowKeys(value);
|
|
890
|
+
this.appRef.tick();
|
|
876
891
|
}
|
|
877
892
|
/**
|
|
878
893
|
* Returns the current language
|
|
@@ -892,16 +907,56 @@ class OtterLocalizationDevtools {
|
|
|
892
907
|
fn(lang);
|
|
893
908
|
});
|
|
894
909
|
}
|
|
895
|
-
/**
|
|
910
|
+
/**
|
|
911
|
+
* Switch the current language to the specified value
|
|
912
|
+
* @param language new language to switch to
|
|
913
|
+
*/
|
|
914
|
+
async switchLanguage(language) {
|
|
915
|
+
await lastValueFrom(this.localizationService.useLanguage(language));
|
|
916
|
+
this.appRef.tick();
|
|
917
|
+
}
|
|
918
|
+
/**
|
|
919
|
+
* Updates the specified localization key/values for the current language.
|
|
920
|
+
*
|
|
921
|
+
* Recommendation: To be used with a small number of keys to update to avoid performance issues.
|
|
922
|
+
* @param keyValues key/values to update
|
|
923
|
+
* @param language if not provided, the current language value
|
|
924
|
+
*/
|
|
925
|
+
updateLocalizationKeys(keyValues, language) {
|
|
926
|
+
const lang = language || this.getCurrentLanguage();
|
|
927
|
+
const translateService = this.localizationService.getTranslateService();
|
|
928
|
+
Object.entries(keyValues).forEach(([key, value]) => {
|
|
929
|
+
translateService.set(key, value, lang);
|
|
930
|
+
});
|
|
931
|
+
this.appRef.tick();
|
|
932
|
+
}
|
|
933
|
+
/**
|
|
934
|
+
* Reload a language from the language file
|
|
935
|
+
* @see https://github.com/ngx-translate/core/blob/master/packages/core/lib/translate.service.ts#L490
|
|
936
|
+
* @param language language to reload
|
|
937
|
+
*/
|
|
938
|
+
async reloadLocalizationKeys(language) {
|
|
939
|
+
const lang = language || this.getCurrentLanguage();
|
|
940
|
+
if (this.translateCompiler.clearCache) {
|
|
941
|
+
this.translateCompiler.clearCache();
|
|
942
|
+
}
|
|
943
|
+
const initialLocs = await lastValueFrom(this.localizationService
|
|
944
|
+
.getTranslateService()
|
|
945
|
+
.reloadLang(lang));
|
|
946
|
+
this.localizationService.getTranslateService().setTranslation(language || this.getCurrentLanguage(), initialLocs);
|
|
947
|
+
this.appRef.tick();
|
|
948
|
+
}
|
|
949
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OtterLocalizationDevtools, deps: [{ token: LocalizationService }, { token: i2.TranslateCompiler }, { token: i0.ApplicationRef }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
896
950
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OtterLocalizationDevtools }); }
|
|
897
951
|
}
|
|
898
952
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: OtterLocalizationDevtools, decorators: [{
|
|
899
953
|
type: Injectable
|
|
900
|
-
}], ctorParameters: () => [{ type: LocalizationService }] });
|
|
954
|
+
}], ctorParameters: () => [{ type: LocalizationService }, { type: i2.TranslateCompiler }, { type: i0.ApplicationRef }] });
|
|
901
955
|
|
|
902
956
|
const OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS = {
|
|
903
957
|
isActivatedOnBootstrap: false,
|
|
904
|
-
isActivatedOnBootstrapWhenCMSContext: true
|
|
958
|
+
isActivatedOnBootstrapWhenCMSContext: true,
|
|
959
|
+
metadataFilePath: './metadata/localisation.metadata.json'
|
|
905
960
|
};
|
|
906
961
|
const OTTER_LOCALIZATION_DEVTOOLS_OPTIONS = new InjectionToken('Otter Localization Devtools options');
|
|
907
962
|
|
|
@@ -909,10 +964,8 @@ const OTTER_LOCALIZATION_DEVTOOLS_OPTIONS = new InjectionToken('Otter Localizati
|
|
|
909
964
|
class LocalizationDevtoolsConsoleService {
|
|
910
965
|
/** Name of the Window property to access to the devtools */
|
|
911
966
|
static { this.windowModuleName = 'localization'; }
|
|
912
|
-
constructor(localizationDevtools,
|
|
967
|
+
constructor(localizationDevtools, options = OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS) {
|
|
913
968
|
this.localizationDevtools = localizationDevtools;
|
|
914
|
-
this.localizationService = localizationService;
|
|
915
|
-
this.appRef = appRef;
|
|
916
969
|
this.options = options;
|
|
917
970
|
if (this.options.isActivatedOnBootstrap
|
|
918
971
|
|| (this.options.isActivatedOnBootstrapWhenCMSContext
|
|
@@ -929,12 +982,17 @@ class LocalizationDevtoolsConsoleService {
|
|
|
929
982
|
windowWithDevtools._OTTER_DEVTOOLS_[LocalizationDevtoolsConsoleService.windowModuleName] = this;
|
|
930
983
|
console.info(`Otter localization Devtools is now accessible via the _OTTER_DEVTOOLS_.${LocalizationDevtoolsConsoleService.windowModuleName} variable`);
|
|
931
984
|
}
|
|
985
|
+
/**
|
|
986
|
+
* @inheritdoc
|
|
987
|
+
*/
|
|
988
|
+
isTranslationDeactivationEnabled() {
|
|
989
|
+
return this.localizationDevtools.isTranslationDeactivationEnabled();
|
|
990
|
+
}
|
|
932
991
|
/**
|
|
933
992
|
* @inheritdoc
|
|
934
993
|
*/
|
|
935
994
|
showLocalizationKeys(value) {
|
|
936
995
|
this.localizationDevtools.showLocalizationKeys(value);
|
|
937
|
-
this.appRef.tick();
|
|
938
996
|
}
|
|
939
997
|
/**
|
|
940
998
|
* @inheritdoc
|
|
@@ -948,8 +1006,7 @@ class LocalizationDevtoolsConsoleService {
|
|
|
948
1006
|
*/
|
|
949
1007
|
async switchLanguage(language) {
|
|
950
1008
|
const previous = this.localizationDevtools.getCurrentLanguage();
|
|
951
|
-
await
|
|
952
|
-
this.appRef.tick();
|
|
1009
|
+
await this.localizationDevtools.switchLanguage(language);
|
|
953
1010
|
const current = this.localizationDevtools.getCurrentLanguage();
|
|
954
1011
|
return {
|
|
955
1012
|
requested: language,
|
|
@@ -967,25 +1024,20 @@ class LocalizationDevtoolsConsoleService {
|
|
|
967
1024
|
* @inheritdoc
|
|
968
1025
|
*/
|
|
969
1026
|
updateLocalizationKeys(keyValues, language) {
|
|
970
|
-
|
|
1027
|
+
return this.localizationDevtools.updateLocalizationKeys(keyValues, language);
|
|
971
1028
|
}
|
|
972
1029
|
/**
|
|
973
1030
|
* @inheritdoc
|
|
974
1031
|
*/
|
|
975
|
-
|
|
976
|
-
|
|
977
|
-
const initialLocs = await lastValueFrom(this.localizationService
|
|
978
|
-
.getTranslateService()
|
|
979
|
-
.reloadLang(lang)
|
|
980
|
-
.pipe(take(1)));
|
|
981
|
-
return this.updateLocalizationKeys(initialLocs, lang);
|
|
1032
|
+
reloadLocalizationKeys(language) {
|
|
1033
|
+
return this.localizationDevtools.reloadLocalizationKeys(language);
|
|
982
1034
|
}
|
|
983
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsConsoleService, deps: [{ token: OtterLocalizationDevtools }, { token:
|
|
1035
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsConsoleService, deps: [{ token: OtterLocalizationDevtools }, { token: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
984
1036
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsConsoleService }); }
|
|
985
1037
|
}
|
|
986
1038
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsConsoleService, decorators: [{
|
|
987
1039
|
type: Injectable
|
|
988
|
-
}], ctorParameters: () => [{ type: OtterLocalizationDevtools }, { type:
|
|
1040
|
+
}], ctorParameters: () => [{ type: OtterLocalizationDevtools }, { type: undefined, decorators: [{
|
|
989
1041
|
type: Optional
|
|
990
1042
|
}, {
|
|
991
1043
|
type: Inject,
|
|
@@ -993,19 +1045,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImpor
|
|
|
993
1045
|
}] }] });
|
|
994
1046
|
|
|
995
1047
|
const isLocalizationMessage = (message) => {
|
|
996
|
-
return message && message.dataType === 'displayLocalizationKeys'
|
|
1048
|
+
return message && (message.dataType === 'displayLocalizationKeys'
|
|
1049
|
+
|| message.dataType === 'languages'
|
|
1050
|
+
|| message.dataType === 'switchLanguage'
|
|
1051
|
+
|| message.dataType === 'localizations'
|
|
1052
|
+
|| message.dataType === 'updateLocalization'
|
|
1053
|
+
|| message.dataType === 'requestMessages'
|
|
1054
|
+
|| message.dataType === 'connect'
|
|
1055
|
+
|| message.dataType === 'reloadLocalizationKeys'
|
|
1056
|
+
|| message.dataType === 'isTranslationDeactivationEnabled'
|
|
1057
|
+
|| message.dataType === 'getTranslationValuesContentMessage');
|
|
997
1058
|
};
|
|
998
1059
|
class LocalizationDevtoolsMessageService {
|
|
999
|
-
constructor(logger,
|
|
1060
|
+
constructor(logger, localizationDevTools, localizationService, options = OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS) {
|
|
1000
1061
|
this.logger = logger;
|
|
1001
|
-
this.appRef = appRef;
|
|
1002
1062
|
this.localizationDevTools = localizationDevTools;
|
|
1063
|
+
this.localizationService = localizationService;
|
|
1003
1064
|
this.options = options;
|
|
1004
1065
|
this.subscriptions = new Subscription();
|
|
1066
|
+
this.sendMessage = (sendOtterMessage);
|
|
1067
|
+
this.options = {
|
|
1068
|
+
...OTTER_LOCALIZATION_DEVTOOLS_DEFAULT_OPTIONS,
|
|
1069
|
+
...this.options
|
|
1070
|
+
};
|
|
1005
1071
|
if (this.options.isActivatedOnBootstrap) {
|
|
1006
1072
|
this.activate();
|
|
1007
1073
|
}
|
|
1008
1074
|
}
|
|
1075
|
+
async sendLocalizationsMetadata() {
|
|
1076
|
+
const metadata = await (await fetch(this.options.metadataFilePath)).json();
|
|
1077
|
+
this.sendMessage('localizations', {
|
|
1078
|
+
localizations: metadata
|
|
1079
|
+
});
|
|
1080
|
+
}
|
|
1081
|
+
/**
|
|
1082
|
+
* Function to trigger a re-send a requested messages to the Otter Chrome DevTools extension
|
|
1083
|
+
* @param only restricted list of messages to re-send
|
|
1084
|
+
*/
|
|
1085
|
+
async handleReEmitRequest(only) {
|
|
1086
|
+
if (!only || only.includes('localizations')) {
|
|
1087
|
+
void this.sendLocalizationsMetadata();
|
|
1088
|
+
}
|
|
1089
|
+
if (!only || only.includes('switchLanguage')) {
|
|
1090
|
+
this.sendMessage('switchLanguage', { language: this.localizationDevTools.getCurrentLanguage() });
|
|
1091
|
+
}
|
|
1092
|
+
if (!only || only.includes('languages')) {
|
|
1093
|
+
this.sendMessage('languages', { languages: this.localizationService.getLanguages() });
|
|
1094
|
+
}
|
|
1095
|
+
if (!only || only.includes('getTranslationValuesContentMessage')) {
|
|
1096
|
+
this.sendMessage('getTranslationValuesContentMessage', {
|
|
1097
|
+
translations: await firstValueFrom(this.localizationService.getTranslateService().getTranslation(this.localizationService.getCurrentLanguage()))
|
|
1098
|
+
});
|
|
1099
|
+
}
|
|
1100
|
+
if (!only || only.includes('isTranslationDeactivationEnabled')) {
|
|
1101
|
+
this.sendMessage('isTranslationDeactivationEnabled', { enabled: this.localizationService.isTranslationDeactivationEnabled() });
|
|
1102
|
+
}
|
|
1103
|
+
}
|
|
1009
1104
|
/**
|
|
1010
1105
|
* Function to handle the incoming messages from Otter Chrome DevTools extension
|
|
1011
1106
|
* @param event Event coming from the Otter Chrome DevTools extension
|
|
@@ -1020,7 +1115,24 @@ class LocalizationDevtoolsMessageService {
|
|
|
1020
1115
|
}
|
|
1021
1116
|
case 'displayLocalizationKeys': {
|
|
1022
1117
|
this.localizationDevTools.showLocalizationKeys(message.toggle);
|
|
1023
|
-
|
|
1118
|
+
break;
|
|
1119
|
+
}
|
|
1120
|
+
case 'requestMessages': {
|
|
1121
|
+
void this.handleReEmitRequest(message.only);
|
|
1122
|
+
break;
|
|
1123
|
+
}
|
|
1124
|
+
case 'switchLanguage': {
|
|
1125
|
+
void this.localizationDevTools.switchLanguage(message.language);
|
|
1126
|
+
break;
|
|
1127
|
+
}
|
|
1128
|
+
case 'updateLocalization': {
|
|
1129
|
+
void this.localizationDevTools.updateLocalizationKeys({
|
|
1130
|
+
[message.key]: message.value
|
|
1131
|
+
}, message.lang);
|
|
1132
|
+
break;
|
|
1133
|
+
}
|
|
1134
|
+
case 'reloadLocalizationKeys': {
|
|
1135
|
+
void this.localizationDevTools.reloadLocalizationKeys(message.lang);
|
|
1024
1136
|
break;
|
|
1025
1137
|
}
|
|
1026
1138
|
default: {
|
|
@@ -1042,12 +1154,12 @@ class LocalizationDevtoolsMessageService {
|
|
|
1042
1154
|
ngOnDestroy() {
|
|
1043
1155
|
this.subscriptions.unsubscribe();
|
|
1044
1156
|
}
|
|
1045
|
-
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token:
|
|
1157
|
+
/** @nocollapse */ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsMessageService, deps: [{ token: i1.LoggerService }, { token: OtterLocalizationDevtools }, { token: LocalizationService }, { token: OTTER_LOCALIZATION_DEVTOOLS_OPTIONS, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
1046
1158
|
/** @nocollapse */ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsMessageService }); }
|
|
1047
1159
|
}
|
|
1048
1160
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.0", ngImport: i0, type: LocalizationDevtoolsMessageService, decorators: [{
|
|
1049
1161
|
type: Injectable
|
|
1050
|
-
}], ctorParameters: () => [{ type: i1.LoggerService }, { type:
|
|
1162
|
+
}], ctorParameters: () => [{ type: i1.LoggerService }, { type: OtterLocalizationDevtools }, { type: LocalizationService }, { type: undefined, decorators: [{
|
|
1051
1163
|
type: Optional
|
|
1052
1164
|
}, {
|
|
1053
1165
|
type: Inject,
|