@eui/core 15.4.1 → 15.4.2
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/LICENSE +296 -296
- package/README.md +26 -26
- package/assets/i18n-eui/bg.json +114 -114
- package/assets/i18n-eui/cs.json +114 -114
- package/assets/i18n-eui/da.json +114 -114
- package/assets/i18n-eui/de.json +114 -114
- package/assets/i18n-eui/el.json +114 -114
- package/assets/i18n-eui/en.json +113 -113
- package/assets/i18n-eui/es.json +114 -114
- package/assets/i18n-eui/et.json +114 -114
- package/assets/i18n-eui/fi.json +114 -114
- package/assets/i18n-eui/fr.json +114 -114
- package/assets/i18n-eui/ga.json +114 -114
- package/assets/i18n-eui/hr.json +114 -114
- package/assets/i18n-eui/hu.json +114 -114
- package/assets/i18n-eui/it.json +114 -114
- package/assets/i18n-eui/lt.json +114 -114
- package/assets/i18n-eui/lv.json +114 -114
- package/assets/i18n-eui/mt.json +114 -114
- package/assets/i18n-eui/nl.json +114 -114
- package/assets/i18n-eui/pl.json +114 -114
- package/assets/i18n-eui/pt.json +114 -114
- package/assets/i18n-eui/ro.json +114 -114
- package/assets/i18n-eui/sk.json +114 -114
- package/assets/i18n-eui/sl.json +114 -114
- package/assets/i18n-eui/sv.json +114 -114
- package/docs/classes/RouterMock.html +5 -5
- package/docs/dependencies.html +7 -95
- package/docs/index.html +59 -36
- package/docs/injectables/CoreAppEffects.html +51 -51
- package/docs/js/menu-wc.js +7 -12
- package/docs/js/menu-wc_es5.js +1 -1
- package/docs/js/search/search_index.js +2 -2
- package/docs/miscellaneous/variables.html +1211 -1211
- package/esm2020/eui-core.mjs +4 -4
- package/esm2020/index.mjs +13 -13
- package/esm2020/lib/eui-core.module.mjs +78 -78
- package/esm2020/lib/helpers/date-helpers.mjs +3 -3
- package/esm2020/lib/helpers/dom-helpers.mjs +87 -87
- package/esm2020/lib/helpers/event-helpers.mjs +9 -9
- package/esm2020/lib/helpers/form-helpers.mjs +42 -42
- package/esm2020/lib/helpers/format-helpers.mjs +66 -66
- package/esm2020/lib/helpers/http-helpers.mjs +7 -7
- package/esm2020/lib/helpers/index.mjs +8 -8
- package/esm2020/lib/helpers/utils.mjs +7 -7
- package/esm2020/lib/interceptors/add-lang-param.interceptor.mjs +35 -35
- package/esm2020/lib/interceptors/cache-prevention.interceptor.mjs +21 -21
- package/esm2020/lib/interceptors/cors-security.interceptor.mjs +15 -15
- package/esm2020/lib/interceptors/csrf-prevention.interceptor.mjs +15 -15
- package/esm2020/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +72 -72
- package/esm2020/lib/interceptors/index.mjs +8 -8
- package/esm2020/lib/interceptors/openid/index.mjs +4 -4
- package/esm2020/lib/interceptors/openid/openid-connect.interceptor.mjs +149 -149
- package/esm2020/lib/interceptors/openid/openid-connect.service.mjs +56 -56
- package/esm2020/lib/interceptors/openid/openid-connect.service.mock.mjs +8 -8
- package/esm2020/lib/interceptors/ux-request-error-model.interceptor.mjs +31 -31
- package/esm2020/lib/services/app/eui-init-app.mjs +29 -29
- package/esm2020/lib/services/app/eui-pre-init-app.mjs +43 -43
- package/esm2020/lib/services/app/eui-startup.mjs +40 -40
- package/esm2020/lib/services/app/factories/log.mjs +55 -55
- package/esm2020/lib/services/app/index.mjs +2 -2
- package/esm2020/lib/services/config/defaults.mjs +68 -68
- package/esm2020/lib/services/config/tokens.mjs +74 -74
- package/esm2020/lib/services/errors/eui.error.mjs +38 -38
- package/esm2020/lib/services/errors/global-error-handler.mjs +24 -24
- package/esm2020/lib/services/errors/http-error-handler-callback-functions.mjs +17 -17
- package/esm2020/lib/services/errors/http-error-handler.interceptor.mjs +55 -55
- package/esm2020/lib/services/errors/index.mjs +5 -5
- package/esm2020/lib/services/i18n/i18n.loader.mjs +198 -198
- package/esm2020/lib/services/i18n/i18n.resource.mjs +43 -43
- package/esm2020/lib/services/i18n/i18n.service.mjs +228 -228
- package/esm2020/lib/services/i18n/i18n.service.mock.mjs +38 -38
- package/esm2020/lib/services/i18n/index.mjs +6 -6
- package/esm2020/lib/services/index.mjs +19 -19
- package/esm2020/lib/services/locale/index.mjs +3 -3
- package/esm2020/lib/services/locale/locale.service.mjs +232 -232
- package/esm2020/lib/services/locale/locale.service.mock.mjs +43 -43
- package/esm2020/lib/services/log/index.mjs +4 -4
- package/esm2020/lib/services/log/log.module.mjs +38 -38
- package/esm2020/lib/services/log/log.service.mjs +51 -51
- package/esm2020/lib/services/log/log.service.mock.mjs +7 -7
- package/esm2020/lib/services/permission/permission.service.mjs +110 -110
- package/esm2020/lib/services/queue/api-queue.service.mjs +137 -137
- package/esm2020/lib/services/queue/api-queue.service.mock.mjs +23 -23
- package/esm2020/lib/services/queue/index.mjs +3 -3
- package/esm2020/lib/services/storage/async-storage.service.mjs +17 -17
- package/esm2020/lib/services/storage/async-storage.service.mock.mjs +22 -22
- package/esm2020/lib/services/storage/index.mjs +8 -8
- package/esm2020/lib/services/storage/local-forage.service.mjs +93 -93
- package/esm2020/lib/services/storage/local-storage.service.mjs +75 -75
- package/esm2020/lib/services/storage/session-storage.service.mjs +75 -75
- package/esm2020/lib/services/storage/storage.service.mjs +6 -6
- package/esm2020/lib/services/storage/storage.service.mock.mjs +12 -12
- package/esm2020/lib/services/store/actions/app.actions.mjs +74 -74
- package/esm2020/lib/services/store/actions/i18n.actions.mjs +11 -11
- package/esm2020/lib/services/store/actions/index.mjs +6 -6
- package/esm2020/lib/services/store/actions/locale.actions.mjs +11 -11
- package/esm2020/lib/services/store/actions/notifications.actions.mjs +11 -11
- package/esm2020/lib/services/store/actions/user.actions.mjs +39 -39
- package/esm2020/lib/services/store/effects/app.effects.mjs +55 -55
- package/esm2020/lib/services/store/effects/index.mjs +4 -4
- package/esm2020/lib/services/store/index.mjs +6 -6
- package/esm2020/lib/services/store/reducers/app.reducers.mjs +56 -56
- package/esm2020/lib/services/store/reducers/core.reducers.mjs +13 -13
- package/esm2020/lib/services/store/reducers/i18n.reducers.mjs +16 -16
- package/esm2020/lib/services/store/reducers/index.mjs +8 -8
- package/esm2020/lib/services/store/reducers/locale.reducers.mjs +16 -16
- package/esm2020/lib/services/store/reducers/meta.reducers.mjs +89 -89
- package/esm2020/lib/services/store/reducers/notifications.reducers.mjs +13 -13
- package/esm2020/lib/services/store/reducers/user.reducers.mjs +43 -43
- package/esm2020/lib/services/store/store.service.mjs +112 -112
- package/esm2020/lib/services/store/store.service.mock.mjs +22 -22
- package/esm2020/lib/services/user/index.mjs +3 -3
- package/esm2020/lib/services/user/user.service.mjs +64 -64
- package/esm2020/lib/services/user/user.service.mock.mjs +32 -32
- package/esm2020/lib/services/ux-app-shell.service.mjs +690 -690
- package/esm2020/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs +63 -63
- package/esm2020/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs +66 -66
- package/esm2020/lib/services/ux-error-feedback/ux-error-feedback.service.mjs +99 -99
- package/esm2020/lib/services/ux-error-feedback/ux-error-handler.operator.mjs +16 -16
- package/esm2020/lib/services/ux-timezone.service.mjs +716 -716
- package/fesm2015/eui-core.mjs +4484 -4484
- package/fesm2015/eui-core.mjs.map +1 -1
- package/fesm2020/eui-core.mjs +4538 -4538
- package/fesm2020/eui-core.mjs.map +1 -1
- package/index.d.ts +5 -5
- package/lib/eui-core.module.d.ts +20 -20
- package/lib/helpers/date-helpers.d.ts +2 -2
- package/lib/helpers/dom-helpers.d.ts +26 -26
- package/lib/helpers/event-helpers.d.ts +1 -1
- package/lib/helpers/form-helpers.d.ts +10 -10
- package/lib/helpers/format-helpers.d.ts +12 -12
- package/lib/helpers/http-helpers.d.ts +2 -2
- package/lib/helpers/index.d.ts +7 -7
- package/lib/helpers/utils.d.ts +6 -6
- package/lib/interceptors/add-lang-param.interceptor.d.ts +16 -16
- package/lib/interceptors/cache-prevention.interceptor.d.ts +8 -8
- package/lib/interceptors/cors-security.interceptor.d.ts +8 -8
- package/lib/interceptors/csrf-prevention.interceptor.d.ts +8 -8
- package/lib/interceptors/eu-login-session-timeout-handling.interceptor.d.ts +12 -12
- package/lib/interceptors/index.d.ts +7 -7
- package/lib/interceptors/openid/index.d.ts +3 -3
- package/lib/interceptors/openid/openid-connect.interceptor.d.ts +14 -14
- package/lib/interceptors/openid/openid-connect.service.d.ts +17 -17
- package/lib/interceptors/openid/openid-connect.service.mock.d.ts +5 -5
- package/lib/interceptors/ux-request-error-model.interceptor.d.ts +13 -13
- package/lib/services/app/eui-init-app.d.ts +2 -2
- package/lib/services/app/eui-pre-init-app.d.ts +16 -16
- package/lib/services/app/eui-startup.d.ts +4 -4
- package/lib/services/app/factories/log.d.ts +25 -25
- package/lib/services/app/index.d.ts +1 -1
- package/lib/services/config/defaults.d.ts +11 -11
- package/lib/services/config/tokens.d.ts +19 -19
- package/lib/services/errors/eui.error.d.ts +15 -15
- package/lib/services/errors/global-error-handler.d.ts +10 -10
- package/lib/services/errors/http-error-handler-callback-functions.d.ts +6 -6
- package/lib/services/errors/http-error-handler.interceptor.d.ts +22 -22
- package/lib/services/errors/index.d.ts +4 -4
- package/lib/services/i18n/i18n.loader.d.ts +79 -79
- package/lib/services/i18n/i18n.resource.d.ts +35 -35
- package/lib/services/i18n/i18n.service.d.ts +73 -73
- package/lib/services/i18n/i18n.service.mock.d.ts +19 -19
- package/lib/services/i18n/index.d.ts +4 -4
- package/lib/services/index.d.ts +18 -18
- package/lib/services/locale/index.d.ts +2 -2
- package/lib/services/locale/locale.service.d.ts +68 -68
- package/lib/services/locale/locale.service.mock.d.ts +15 -15
- package/lib/services/log/index.d.ts +3 -3
- package/lib/services/log/log.module.d.ts +15 -15
- package/lib/services/log/log.service.d.ts +27 -27
- package/lib/services/log/log.service.mock.d.ts +4 -4
- package/lib/services/permission/permission.service.d.ts +52 -52
- package/lib/services/queue/api-queue.service.d.ts +76 -76
- package/lib/services/queue/api-queue.service.mock.d.ts +13 -13
- package/lib/services/queue/index.d.ts +2 -2
- package/lib/services/storage/async-storage.service.d.ts +44 -44
- package/lib/services/storage/async-storage.service.mock.d.ts +11 -11
- package/lib/services/storage/index.d.ts +7 -7
- package/lib/services/storage/local-forage.service.d.ts +48 -48
- package/lib/services/storage/local-storage.service.d.ts +34 -34
- package/lib/services/storage/session-storage.service.d.ts +34 -34
- package/lib/services/storage/storage.service.d.ts +28 -28
- package/lib/services/storage/storage.service.mock.d.ts +7 -7
- package/lib/services/store/actions/app.actions.d.ts +82 -82
- package/lib/services/store/actions/i18n.actions.d.ts +11 -11
- package/lib/services/store/actions/index.d.ts +5 -5
- package/lib/services/store/actions/locale.actions.d.ts +11 -11
- package/lib/services/store/actions/notifications.actions.d.ts +10 -10
- package/lib/services/store/actions/user.actions.d.ts +35 -35
- package/lib/services/store/effects/app.effects.d.ts +19 -19
- package/lib/services/store/effects/index.d.ts +3 -3
- package/lib/services/store/index.d.ts +5 -5
- package/lib/services/store/reducers/app.reducers.d.ts +3 -3
- package/lib/services/store/reducers/core.reducers.d.ts +3 -3
- package/lib/services/store/reducers/i18n.reducers.d.ts +3 -3
- package/lib/services/store/reducers/index.d.ts +7 -7
- package/lib/services/store/reducers/locale.reducers.d.ts +3 -3
- package/lib/services/store/reducers/meta.reducers.d.ts +17 -17
- package/lib/services/store/reducers/notifications.reducers.d.ts +3 -3
- package/lib/services/store/reducers/user.reducers.d.ts +3 -3
- package/lib/services/store/store.service.d.ts +43 -43
- package/lib/services/store/store.service.mock.d.ts +12 -12
- package/lib/services/user/index.d.ts +2 -2
- package/lib/services/user/user.service.d.ts +15 -15
- package/lib/services/user/user.service.mock.d.ts +16 -16
- package/lib/services/ux-app-shell.service.d.ts +155 -155
- package/lib/services/ux-dynamic-component/ux-dynamic-component.service.d.ts +36 -36
- package/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.d.ts +14 -14
- package/lib/services/ux-error-feedback/ux-error-feedback.service.d.ts +35 -35
- package/lib/services/ux-error-feedback/ux-error-handler.operator.d.ts +3 -3
- package/lib/services/ux-timezone.service.d.ts +269 -269
- package/package.json +2 -2
- package/docs/overview.html +0 -171
|
@@ -1,198 +1,198 @@
|
|
|
1
|
-
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
-
import { TranslateLoader } from '@ngx-translate/core';
|
|
3
|
-
import { forkJoin, of } from 'rxjs';
|
|
4
|
-
import { catchError, map } from 'rxjs/operators';
|
|
5
|
-
import { getI18nLoaderConfig } from '@eui/base';
|
|
6
|
-
import { I18nResourceImpl } from './i18n.resource';
|
|
7
|
-
import { mergeAll } from '@eui/base';
|
|
8
|
-
import { CONFIG_TOKEN } from '../config/tokens';
|
|
9
|
-
import * as i0 from "@angular/core";
|
|
10
|
-
import * as i1 from "@angular/common/http";
|
|
11
|
-
import * as i2 from "../log/log.service";
|
|
12
|
-
export class I18nLoader {
|
|
13
|
-
constructor(http, logService, euiAppConfig) {
|
|
14
|
-
this.http = http;
|
|
15
|
-
this.logService = logService;
|
|
16
|
-
this.euiAppConfig = euiAppConfig;
|
|
17
|
-
this.resources = [];
|
|
18
|
-
this.failedResources = [];
|
|
19
|
-
// create the resources from the config object
|
|
20
|
-
const i18nConfig = this.euiAppConfig.global && this.euiAppConfig.global.i18n;
|
|
21
|
-
const i18nLoaderConfig = i18nConfig && i18nConfig.i18nLoader;
|
|
22
|
-
this.resources.push(...this.createResources(i18nLoaderConfig));
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Gets the translations from the server
|
|
26
|
-
*
|
|
27
|
-
* @param lang
|
|
28
|
-
* @returns Observable<any>
|
|
29
|
-
*/
|
|
30
|
-
getTranslation(lang) {
|
|
31
|
-
return this.loadResources(this.resources, lang).pipe(map((loadedResources) => {
|
|
32
|
-
this.failedResources = loadedResources.hasError ? loadedResources.errors : [];
|
|
33
|
-
return loadedResources.translations;
|
|
34
|
-
}));
|
|
35
|
-
}
|
|
36
|
-
/**
|
|
37
|
-
* Adds resources
|
|
38
|
-
*
|
|
39
|
-
* @param config loader configuration
|
|
40
|
-
* @returns Observable<any> | false
|
|
41
|
-
*/
|
|
42
|
-
addResources(config) {
|
|
43
|
-
// create the resources
|
|
44
|
-
let resources = this.createResources(config);
|
|
45
|
-
// filter the resources first, to avoid duplicates
|
|
46
|
-
resources = resources.filter((resource) => !this.resources.some((res) => res.equals(resource)));
|
|
47
|
-
// add the new resources to the list of existing resources
|
|
48
|
-
this.resources.push(...resources);
|
|
49
|
-
// return the filtered resources
|
|
50
|
-
return resources;
|
|
51
|
-
}
|
|
52
|
-
/**
|
|
53
|
-
* Removes resources from the loader instance
|
|
54
|
-
*/
|
|
55
|
-
removeResources(removedResources) {
|
|
56
|
-
this.resources = this.resources.filter((res) => !removedResources.some((removedResource) => removedResource.equals(res)));
|
|
57
|
-
}
|
|
58
|
-
/**
|
|
59
|
-
* Loads an array of resources, by language
|
|
60
|
-
*
|
|
61
|
-
* @param resources the definition of the resources
|
|
62
|
-
* @param lang the resource language to load
|
|
63
|
-
* @returns Observable<any>
|
|
64
|
-
*/
|
|
65
|
-
loadResources(resources, lang) {
|
|
66
|
-
// if there are resources to load
|
|
67
|
-
if (Array.isArray(resources) && resources.length > 0) {
|
|
68
|
-
// load all the resources in an array of Observable
|
|
69
|
-
const requests = resources.map((resource) => this.loadResource(resource, lang));
|
|
70
|
-
// group all the observables with forkJoin and deep merge them
|
|
71
|
-
return forkJoin(requests).pipe(map((response) => {
|
|
72
|
-
const successResp = [];
|
|
73
|
-
const errResp = [];
|
|
74
|
-
response.forEach((item) => {
|
|
75
|
-
if (item.isError) {
|
|
76
|
-
errResp.push({ resource: item.resource, error: item.error });
|
|
77
|
-
}
|
|
78
|
-
else {
|
|
79
|
-
successResp.push(item);
|
|
80
|
-
}
|
|
81
|
-
});
|
|
82
|
-
if (successResp.length === response.length) {
|
|
83
|
-
return { hasError: false, translations: mergeAll(successResp) };
|
|
84
|
-
}
|
|
85
|
-
else {
|
|
86
|
-
return { hasError: true, translations: mergeAll(successResp), errors: errResp };
|
|
87
|
-
}
|
|
88
|
-
}));
|
|
89
|
-
}
|
|
90
|
-
else {
|
|
91
|
-
// no resources to load
|
|
92
|
-
return of({ hasError: false, translations: {} });
|
|
93
|
-
}
|
|
94
|
-
}
|
|
95
|
-
/**
|
|
96
|
-
* Returns resources that failed
|
|
97
|
-
*/
|
|
98
|
-
getFailedResources() {
|
|
99
|
-
return this.failedResources;
|
|
100
|
-
}
|
|
101
|
-
/**
|
|
102
|
-
* Create resources from a config file
|
|
103
|
-
*
|
|
104
|
-
* @param config loader configuration
|
|
105
|
-
* @returns I18nResourceImpl[] resources
|
|
106
|
-
*/
|
|
107
|
-
createResources(config) {
|
|
108
|
-
// use the default config as a reference base
|
|
109
|
-
config = getI18nLoaderConfig(config);
|
|
110
|
-
const resources = [];
|
|
111
|
-
// extract the i18n folders from config
|
|
112
|
-
const i18nFolders = Array.isArray(config.i18nFolders)
|
|
113
|
-
? config.i18nFolders
|
|
114
|
-
: config.i18nFolders
|
|
115
|
-
? [config.i18nFolders]
|
|
116
|
-
: [];
|
|
117
|
-
if (i18nFolders) {
|
|
118
|
-
// add the i18n folders to resources
|
|
119
|
-
resources.push(...i18nFolders.map((folder) => new I18nResourceImpl(`assets/${folder}/`, '.json')));
|
|
120
|
-
}
|
|
121
|
-
// extract the i18n services from config
|
|
122
|
-
const i18nServices = Array.isArray(config.i18nServices)
|
|
123
|
-
? config.i18nServices
|
|
124
|
-
: config.i18nServices
|
|
125
|
-
? [config.i18nServices]
|
|
126
|
-
: [];
|
|
127
|
-
if (i18nServices) {
|
|
128
|
-
// add the i18n services to resources
|
|
129
|
-
resources.push(...i18nServices.map((service) => new I18nResourceImpl(service)));
|
|
130
|
-
}
|
|
131
|
-
// extract the i18n resources from config
|
|
132
|
-
const i18nResources = Array.isArray(config.i18nResources)
|
|
133
|
-
? config.i18nResources
|
|
134
|
-
: config.i18nResources
|
|
135
|
-
? [config.i18nResources]
|
|
136
|
-
: [];
|
|
137
|
-
if (i18nResources) {
|
|
138
|
-
// add the i18n resources to resources
|
|
139
|
-
resources.push(...i18nResources.map((resource) => new I18nResourceImpl(resource.prefix, resource.suffix, this.getResourceCompileFunction(resource.compileTranslations))));
|
|
140
|
-
}
|
|
141
|
-
return resources;
|
|
142
|
-
}
|
|
143
|
-
/**
|
|
144
|
-
* Loads a resource, by language
|
|
145
|
-
*
|
|
146
|
-
* @param resource the definition of the resource
|
|
147
|
-
* @param lang the resource language to load
|
|
148
|
-
* @returns Observable<any>
|
|
149
|
-
*/
|
|
150
|
-
loadResource(resource, lang) {
|
|
151
|
-
// the path to the resource
|
|
152
|
-
const path = resource.getPath(lang);
|
|
153
|
-
// load the translations from the path
|
|
154
|
-
return this.http.get(path).pipe(
|
|
155
|
-
// preprocess the translations using the resource compiler
|
|
156
|
-
map((translations) => resource.compileTranslations(translations, lang)), map((translations) => {
|
|
157
|
-
// resource loaded properly, send a info message
|
|
158
|
-
if (this.logService) {
|
|
159
|
-
this.logService.info(`I18n resource loaded from path ${path}`);
|
|
160
|
-
}
|
|
161
|
-
// return the translations
|
|
162
|
-
return translations;
|
|
163
|
-
}), catchError((err) => {
|
|
164
|
-
// remove failed resource from loaded resource array
|
|
165
|
-
this.removeResources([resource]);
|
|
166
|
-
// resource not loaded properly, send a warning message
|
|
167
|
-
if (this.logService) {
|
|
168
|
-
this.logService.warn(`I18n resource NOT loaded from path ${path}`, err);
|
|
169
|
-
}
|
|
170
|
-
const resourceError = { error: `I18n resource NOT loaded from path ${path}`, resource, isError: true };
|
|
171
|
-
return of(resourceError);
|
|
172
|
-
}));
|
|
173
|
-
}
|
|
174
|
-
getResourceCompileFunction(id) {
|
|
175
|
-
const customHandlers = this.euiAppConfig.customHandler;
|
|
176
|
-
if (customHandlers && typeof customHandlers[id] === 'function') {
|
|
177
|
-
return customHandlers[id];
|
|
178
|
-
}
|
|
179
|
-
return undefined;
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
/** @nocollapse */ I18nLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nLoader, deps: [{ token: i1.HttpClient }, { token: i2.LogService, optional: true }, { token: CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
183
|
-
/** @nocollapse */ I18nLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nLoader });
|
|
184
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nLoader, decorators: [{
|
|
185
|
-
type: Injectable
|
|
186
|
-
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.LogService, decorators: [{
|
|
187
|
-
type: Optional
|
|
188
|
-
}] }, { type: undefined, decorators: [{
|
|
189
|
-
type: Inject,
|
|
190
|
-
args: [CONFIG_TOKEN]
|
|
191
|
-
}] }]; } });
|
|
192
|
-
export const translateConfig = {
|
|
193
|
-
loader: {
|
|
194
|
-
provide: TranslateLoader,
|
|
195
|
-
useClass: I18nLoader,
|
|
196
|
-
},
|
|
197
|
-
};
|
|
198
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2kxOG4vaTE4bi5sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUMsTUFBTSxXQUFXLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFzQmhELE1BQU0sT0FBTyxVQUFVO0lBSW5CLFlBQ2MsSUFBZ0IsRUFDSixVQUFzQixFQUNaLFlBQTBCO1FBRmhELFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1osaUJBQVksR0FBWixZQUFZLENBQWM7UUFOcEQsY0FBUyxHQUF1QixFQUFFLENBQUM7UUFDbkMsb0JBQWUsR0FBZ0MsRUFBRSxDQUFDO1FBT3hELDhDQUE4QztRQUM5QyxNQUFNLFVBQVUsR0FBZSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekYsTUFBTSxnQkFBZ0IsR0FBcUIsVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDL0UsSUFBSSxDQUFDLFNBQVMsQ0FB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Q0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs7MEhBeE1RLFVBQVUsc0ZBT1AsWUFBWTs4SEFQZixVQUFVOzJGQUFWLFVBQVU7a0JBRHRCLFVBQVU7OzBCQU9GLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsWUFBWTs7QUFvTTVCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixNQUFNLEVBQUU7UUFDSixPQUFPLEVBQUUsZUFBZTtRQUN4QixRQUFRLEVBQUUsVUFBVTtLQUN2QjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZUxvYWRlciB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuaW1wb3J0IHsgZ2V0STE4bkxvYWRlckNvbmZpZywgSTE4blJlc291cmNlLCB0eXBlIEV1aUFwcENvbmZpZyB9IGZyb20gJ0BldWkvYmFzZSc7XHJcbmltcG9ydCB7IEkxOG5SZXNvdXJjZUltcGwgfSBmcm9tICcuL2kxOG4ucmVzb3VyY2UnO1xyXG5pbXBvcnQgeyBtZXJnZUFsbCB9IGZyb20gJ0BldWkvYmFzZSc7XHJcbmltcG9ydCB7IEkxOG5Mb2FkZXJDb25maWcsIEkxOG5Db25maWcsIFRyYW5zbGF0aW9uc0NvbXBpbGVyIH0gZnJvbSAnQGV1aS9iYXNlJztcclxuaW1wb3J0IHsgQ09ORklHX1RPS0VOIH0gZnJvbSAnLi4vY29uZmlnL3Rva2Vucyc7XHJcbmltcG9ydCB7IExvZ1NlcnZpY2UgfSBmcm9tICcuLi9sb2cvbG9nLnNlcnZpY2UnO1xyXG5cclxuLy8gZXhwb3J0IGNvbnN0IEkxOE5fTE9BREVSX0NPTkZJR19UT0tFTiA9IG5ldyBJbmplY3Rpb25Ub2tlbjxJMThuTG9hZGVyQ29uZmlnPignSTE4Tl9MT0FERVJfQ09ORklHJyk7XHJcbmludGVyZmFjZSBSZXNvdXJjZUVycm9yIHtcclxuICAgIGlzRXJyb3I6IGJvb2xlYW47XHJcbiAgICBlcnJvcj86IHN0cmluZztcclxuICAgIHJlc291cmNlPzogSTE4blJlc291cmNlSW1wbDtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb2FkZWRSZXNvdXJjZXMge1xyXG4gICAgdHJhbnNsYXRpb25zOiBvYmplY3Q7XHJcbiAgICBoYXNFcnJvcjogYm9vbGVhbjtcclxuICAgIGVycm9ycz86IEFycmF5PExvYWRlZFJlc291cmNlc0Vycm9yPjtcclxufVxyXG5cclxuZXhwb3J0IGludGVyZmFjZSBMb2FkZWRSZXNvdXJjZXNFcnJvciB7XHJcbiAgICByZXNvdXJjZTogSTE4blJlc291cmNlSW1wbDtcclxuICAgIGVycm9yOiBzdHJpbmc7XHJcbn1cclxuXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIEkxOG5Mb2FkZXIgaW1wbGVtZW50cyBUcmFuc2xhdGVMb2FkZXIge1xyXG4gICAgcHJvdGVjdGVkIHJlc291cmNlczogSTE4blJlc291cmNlSW1wbFtdID0gW107XHJcbiAgICBwcm90ZWN0ZWQgZmFpbGVkUmVzb3VyY2VzOiBBcnJheTxMb2FkZWRSZXNvdXJjZXNFcnJvcj4gPSBbXTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCxcclxuICAgICAgICBAT3B0aW9uYWwoKSBwcm90ZWN0ZWQgbG9nU2VydmljZTogTG9nU2VydmljZSxcclxuICAgICAgICBASW5qZWN0KENPTkZJR19UT0tFTikgcHJvdGVjdGVkIGV1aUFwcENvbmZpZzogRXVpQXBwQ29uZmlnXHJcbiAgICApIHtcclxuICAgICAgICAvLyBjcmVhdGUgdGhlIHJlc291cmNlcyBmcm9tIHRoZSBjb25maWcgb2JqZWN0XHJcbiAgICAgICAgY29uc3QgaTE4bkNvbmZpZzogSTE4bkNvbmZpZyA9IHRoaXMuZXVpQXBwQ29uZmlnLmdsb2JhbCAmJiB0aGlzLmV1aUFwcENvbmZpZy5nbG9iYWwuaTE4bjtcclxuICAgICAgICBjb25zdCBpMThuTG9hZGVyQ29uZmlnOiBJMThuTG9hZGVyQ29uZmlnID0gaTE4bkNvbmZpZyAmJiBpMThuQ29uZmlnLmkxOG5Mb2FkZXI7XHJcbiAgICAgICAgdGhpcy5yZXNvdXJjZXMucHVzaCguLi50aGlzLmNyZWF0ZVJlc291cmNlcyhpMThuTG9hZGVyQ29uZmlnKSk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBHZXRzIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSB0aGUgc2VydmVyXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGxhbmdcclxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICByZXR1cm4gdGhpcy5sb2FkUmVzb3VyY2VzKHRoaXMucmVzb3VyY2VzLCBsYW5nKS5waXBlKFxyXG4gICAgICAgICAgICBtYXAoKGxvYWRlZFJlc291cmNlczogTG9hZGVkUmVzb3VyY2VzKSA9PiB7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmZhaWxlZFJlc291cmNlcyA9IGxvYWRlZFJlc291cmNlcy5oYXNFcnJvciA/IGxvYWRlZFJlc291cmNlcy5lcnJvcnMgOiBbXTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBsb2FkZWRSZXNvdXJjZXMudHJhbnNsYXRpb25zO1xyXG4gICAgICAgICAgICB9KVxyXG4gICAgICAgICk7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBBZGRzIHJlc291cmNlc1xyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBjb25maWcgbG9hZGVyIGNvbmZpZ3VyYXRpb25cclxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PiB8IGZhbHNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBhZGRSZXNvdXJjZXMoY29uZmlnOiBJMThuTG9hZGVyQ29uZmlnKTogSTE4blJlc291cmNlSW1wbFtdIHtcclxuICAgICAgICAvLyBjcmVhdGUgdGhlIHJlc291cmNlc1xyXG4gICAgICAgIGxldCByZXNvdXJjZXMgPSB0aGlzLmNyZWF0ZVJlc291cmNlcyhjb25maWcpO1xyXG5cclxuICAgICAgICAvLyBmaWx0ZXIgdGhlIHJlc291cmNlcyBmaXJzdCwgdG8gYXZvaWQgZHVwbGljYXRlc1xyXG4gICAgICAgIHJlc291cmNlcyA9IHJlc291cmNlcy5maWx0ZXIoKHJlc291cmNlKSA9PiAhdGhpcy5yZXNvdXJjZXMuc29tZSgocmVzKSA9PiByZXMuZXF1YWxzKHJlc291cmNlKSkpO1xyXG5cclxuICAgICAgICAvLyBhZGQgdGhlIG5ldyByZXNvdXJjZXMgdG8gdGhlIGxpc3Qgb2YgZXhpc3RpbmcgcmVzb3VyY2VzXHJcbiAgICAgICAgdGhpcy5yZXNvdXJjZXMucHVzaCguLi5yZXNvdXJjZXMpO1xyXG5cclxuICAgICAgICAvLyByZXR1cm4gdGhlIGZpbHRlcmVkIHJlc291cmNlc1xyXG4gICAgICAgIHJldHVybiByZXNvdXJjZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBSZW1vdmVzIHJlc291cmNlcyBmcm9tIHRoZSBsb2FkZXIgaW5zdGFuY2VcclxuICAgICAqL1xyXG4gICAgcHVibGljIHJlbW92ZVJlc291cmNlcyhyZW1vdmVkUmVzb3VyY2VzOiBJMThuUmVzb3VyY2VJbXBsW10pOiB2b2lkIHtcclxuICAgICAgICB0aGlzLnJlc291cmNlcyA9IHRoaXMucmVzb3VyY2VzLmZpbHRlcigocmVzKSA9PiAhcmVtb3ZlZFJlc291cmNlcy5zb21lKChyZW1vdmVkUmVzb3VyY2UpID0+IHJlbW92ZWRSZXNvdXJjZS5lcXVhbHMocmVzKSkpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9hZHMgYW4gYXJyYXkgb2YgcmVzb3VyY2VzLCBieSBsYW5ndWFnZVxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSByZXNvdXJjZXMgdGhlIGRlZmluaXRpb24gb2YgdGhlIHJlc291cmNlc1xyXG4gICAgICogQHBhcmFtIGxhbmcgdGhlIHJlc291cmNlIGxhbmd1YWdlIHRvIGxvYWRcclxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgbG9hZFJlc291cmNlcyhyZXNvdXJjZXM6IEkxOG5SZXNvdXJjZUltcGxbXSwgbGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgICAgICAvLyBpZiB0aGVyZSBhcmUgcmVzb3VyY2VzIHRvIGxvYWRcclxuICAgICAgICBpZiAoQXJyYXkuaXNBcnJheShyZXNvdXJjZXMpICYmIHJlc291cmNlcy5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgICAgIC8vIGxvYWQgYWxsIHRoZSByZXNvdXJjZXMgaW4gYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZVxyXG4gICAgICAgICAgICBjb25zdCByZXF1ZXN0cyA9IHJlc291cmNlcy5tYXAoKHJlc291cmNlKSA9PiB0aGlzLmxvYWRSZXNvdXJjZShyZXNvdXJjZSwgbGFuZykpO1xyXG4gICAgICAgICAgICAvLyBncm91cCBhbGwgdGhlIG9ic2VydmFibGVzIHdpdGggZm9ya0pvaW4gYW5kIGRlZXAgbWVyZ2UgdGhlbVxyXG4gICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBtYXAoKHJlc3BvbnNlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgY29uc3Qgc3VjY2Vzc1Jlc3AgPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJSZXNwOiBBcnJheTxMb2FkZWRSZXNvdXJjZXNFcnJvcj4gPSBbXTtcclxuICAgICAgICAgICAgICAgICAgICByZXNwb25zZS5mb3JFYWNoKChpdGVtKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlmICgoPFJlc291cmNlRXJyb3I+aXRlbSkuaXNFcnJvcikge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyUmVzcC5wdXNoKHsgcmVzb3VyY2U6ICg8UmVzb3VyY2VFcnJvcj5pdGVtKS5yZXNvdXJjZSwgZXJyb3I6ICg8UmVzb3VyY2VFcnJvcj5pdGVtKS5lcnJvciB9KTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1Y2Nlc3NSZXNwLnB1c2goaXRlbSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoc3VjY2Vzc1Jlc3AubGVuZ3RoID09PSByZXNwb25zZS5sZW5ndGgpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaGFzRXJyb3I6IGZhbHNlLCB0cmFuc2xhdGlvbnM6IG1lcmdlQWxsKHN1Y2Nlc3NSZXNwKSB9O1xyXG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7IGhhc0Vycm9yOiB0cnVlLCB0cmFuc2xhdGlvbnM6IG1lcmdlQWxsKHN1Y2Nlc3NSZXNwKSwgZXJyb3JzOiBlcnJSZXNwIH07XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgICAvLyBubyByZXNvdXJjZXMgdG8gbG9hZFxyXG4gICAgICAgICAgICByZXR1cm4gb2YoeyBoYXNFcnJvcjogZmFsc2UsIHRyYW5zbGF0aW9uczoge30gfSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyByZXNvdXJjZXMgdGhhdCBmYWlsZWRcclxuICAgICAqL1xyXG4gICAgcHVibGljIGdldEZhaWxlZFJlc291cmNlcygpOiBBcnJheTxMb2FkZWRSZXNvdXJjZXNFcnJvcj4ge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmZhaWxlZFJlc291cmNlcztcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIENyZWF0ZSByZXNvdXJjZXMgZnJvbSBhIGNvbmZpZyBmaWxlXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGNvbmZpZyBsb2FkZXIgY29uZmlndXJhdGlvblxyXG4gICAgICogQHJldHVybnMgSTE4blJlc291cmNlSW1wbFtdIHJlc291cmNlc1xyXG4gICAgICovXHJcbiAgICBwcm90ZWN0ZWQgY3JlYXRlUmVzb3VyY2VzKGNvbmZpZzogSTE4bkxvYWRlckNvbmZpZyk6IEkxOG5SZXNvdXJjZUltcGxbXSB7XHJcbiAgICAgICAgLy8gdXNlIHRoZSBkZWZhdWx0IGNvbmZpZyBhcyBhIHJlZmVyZW5jZSBiYXNlXHJcbiAgICAgICAgY29uZmlnID0gZ2V0STE4bkxvYWRlckNvbmZpZyhjb25maWcpO1xyXG5cclxuICAgICAgICBjb25zdCByZXNvdXJjZXMgPSBbXTtcclxuXHJcbiAgICAgICAgLy8gZXh0cmFjdCB0aGUgaTE4biBmb2xkZXJzIGZyb20gY29uZmlnXHJcbiAgICAgICAgY29uc3QgaTE4bkZvbGRlcnM6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheShjb25maWcuaTE4bkZvbGRlcnMpXHJcbiAgICAgICAgICAgID8gY29uZmlnLmkxOG5Gb2xkZXJzXHJcbiAgICAgICAgICAgIDogY29uZmlnLmkxOG5Gb2xkZXJzXHJcbiAgICAgICAgICAgID8gW2NvbmZpZy5pMThuRm9sZGVyc11cclxuICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICBpZiAoaTE4bkZvbGRlcnMpIHtcclxuICAgICAgICAgICAgLy8gYWRkIHRoZSBpMThuIGZvbGRlcnMgdG8gcmVzb3VyY2VzXHJcbiAgICAgICAgICAgIHJlc291cmNlcy5wdXNoKC4uLmkxOG5Gb2xkZXJzLm1hcCgoZm9sZGVyKSA9PiBuZXcgSTE4blJlc291cmNlSW1wbChgYXNzZXRzLyR7Zm9sZGVyfS9gLCAnLmpzb24nKSkpO1xyXG4gICAgICAgIH1cclxuXHJcbiAgICAgICAgLy8gZXh0cmFjdCB0aGUgaTE4biBzZXJ2aWNlcyBmcm9tIGNvbmZpZ1xyXG4gICAgICAgIGNvbnN0IGkxOG5TZXJ2aWNlczogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pMThuU2VydmljZXMpXHJcbiAgICAgICAgICAgID8gY29uZmlnLmkxOG5TZXJ2aWNlc1xyXG4gICAgICAgICAgICA6IGNvbmZpZy5pMThuU2VydmljZXNcclxuICAgICAgICAgICAgPyBbY29uZmlnLmkxOG5TZXJ2aWNlc11cclxuICAgICAgICAgICAgOiBbXTtcclxuICAgICAgICBpZiAoaTE4blNlcnZpY2VzKSB7XHJcbiAgICAgICAgICAgIC8vIGFkZCB0aGUgaTE4biBzZXJ2aWNlcyB0byByZXNvdXJjZXNcclxuICAgICAgICAgICAgcmVzb3VyY2VzLnB1c2goLi4uaTE4blNlcnZpY2VzLm1hcCgoc2VydmljZSkgPT4gbmV3IEkxOG5SZXNvdXJjZUltcGwoc2VydmljZSkpKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIC8vIGV4dHJhY3QgdGhlIGkxOG4gcmVzb3VyY2VzIGZyb20gY29uZmlnXHJcbiAgICAgICAgY29uc3QgaTE4blJlc291cmNlczogSTE4blJlc291cmNlW10gPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pMThuUmVzb3VyY2VzKVxyXG4gICAgICAgICAgICA/IGNvbmZpZy5pMThuUmVzb3VyY2VzXHJcbiAgICAgICAgICAgIDogY29uZmlnLmkxOG5SZXNvdXJjZXNcclxuICAgICAgICAgICAgPyBbY29uZmlnLmkxOG5SZXNvdXJjZXNdXHJcbiAgICAgICAgICAgIDogW107XHJcbiAgICAgICAgaWYgKGkxOG5SZXNvdXJjZXMpIHtcclxuICAgICAgICAgICAgLy8gYWRkIHRoZSBpMThuIHJlc291cmNlcyB0byByZXNvdXJjZXNcclxuICAgICAgICAgICAgcmVzb3VyY2VzLnB1c2goXHJcbiAgICAgICAgICAgICAgICAuLi5pMThuUmVzb3VyY2VzLm1hcChcclxuICAgICAgICAgICAgICAgICAgICAocmVzb3VyY2UpID0+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIG5ldyBJMThuUmVzb3VyY2VJbXBsKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2UucHJlZml4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2Uuc3VmZml4LFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy5nZXRSZXNvdXJjZUNvbXBpbGVGdW5jdGlvbihyZXNvdXJjZS5jb21waWxlVHJhbnNsYXRpb25zKVxyXG4gICAgICAgICAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICAgICApXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG5cclxuICAgICAgICByZXR1cm4gcmVzb3VyY2VzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogTG9hZHMgYSByZXNvdXJjZSwgYnkgbGFuZ3VhZ2VcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcmVzb3VyY2UgdGhlIGRlZmluaXRpb24gb2YgdGhlIHJlc291cmNlXHJcbiAgICAgKiBAcGFyYW0gbGFuZyB0aGUgcmVzb3VyY2UgbGFuZ3VhZ2UgdG8gbG9hZFxyXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XHJcbiAgICAgKi9cclxuICAgIHByb3RlY3RlZCBsb2FkUmVzb3VyY2UocmVzb3VyY2U6IEkxOG5SZXNvdXJjZUltcGwsIGxhbmc6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICAgICAgLy8gdGhlIHBhdGggdG8gdGhlIHJlc291cmNlXHJcbiAgICAgICAgY29uc3QgcGF0aCA9IHJlc291cmNlLmdldFBhdGgobGFuZyk7XHJcblxyXG4gICAgICAgIC8vIGxvYWQgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIHRoZSBwYXRoXHJcbiAgICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQocGF0aCkucGlwZShcclxuICAgICAgICAgICAgLy8gcHJlcHJvY2VzcyB0aGUgdHJhbnNsYXRpb25zIHVzaW5nIHRoZSByZXNvdXJjZSBjb21waWxlclxyXG4gICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9uczogYW55KSA9PiByZXNvdXJjZS5jb21waWxlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9ucywgbGFuZykpLFxyXG4gICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9uczogYW55KSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyByZXNvdXJjZSBsb2FkZWQgcHJvcGVybHksIHNlbmQgYSBpbmZvIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ1NlcnZpY2UuaW5mbyhgSTE4biByZXNvdXJjZSBsb2FkZWQgZnJvbSBwYXRoICR7cGF0aH1gKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgdHJhbnNsYXRpb25zXHJcbiAgICAgICAgICAgICAgICByZXR1cm4gdHJhbnNsYXRpb25zO1xyXG4gICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAvLyByZW1vdmUgZmFpbGVkIHJlc291cmNlIGZyb20gbG9hZGVkIHJlc291cmNlIGFycmF5XHJcbiAgICAgICAgICAgICAgICB0aGlzLnJlbW92ZVJlc291cmNlcyhbcmVzb3VyY2VdKTtcclxuICAgICAgICAgICAgICAgIC8vIHJlc291cmNlIG5vdCBsb2FkZWQgcHJvcGVybHksIHNlbmQgYSB3YXJuaW5nIG1lc3NhZ2VcclxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmxvZ1NlcnZpY2Uud2FybihgSTE4biByZXNvdXJjZSBOT1QgbG9hZGVkIGZyb20gcGF0aCAke3BhdGh9YCwgZXJyKTtcclxuICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgIGNvbnN0IHJlc291cmNlRXJyb3I6IFJlc291cmNlRXJyb3IgPSB7IGVycm9yOiBgSTE4biByZXNvdXJjZSBOT1QgbG9hZGVkIGZyb20gcGF0aCAke3BhdGh9YCwgcmVzb3VyY2UsIGlzRXJyb3I6IHRydWUgfTtcclxuICAgICAgICAgICAgICAgIHJldHVybiBvZihyZXNvdXJjZUVycm9yKTtcclxuICAgICAgICAgICAgfSlcclxuICAgICAgICApO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0UmVzb3VyY2VDb21waWxlRnVuY3Rpb24oaWQ6IHN0cmluZyk6IFRyYW5zbGF0aW9uc0NvbXBpbGVyIHtcclxuICAgICAgICBjb25zdCBjdXN0b21IYW5kbGVycyA9IHRoaXMuZXVpQXBwQ29uZmlnLmN1c3RvbUhhbmRsZXI7XHJcbiAgICAgICAgaWYgKGN1c3RvbUhhbmRsZXJzICYmIHR5cGVvZiBjdXN0b21IYW5kbGVyc1tpZF0gPT09ICdmdW5jdGlvbicpIHtcclxuICAgICAgICAgICAgcmV0dXJuIGN1c3RvbUhhbmRsZXJzW2lkXTtcclxuICAgICAgICB9XHJcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGNvbnN0IHRyYW5zbGF0ZUNvbmZpZyA9IHtcclxuICAgIGxvYWRlcjoge1xyXG4gICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcclxuICAgICAgICB1c2VDbGFzczogSTE4bkxvYWRlcixcclxuICAgIH0sXHJcbn07XHJcbiJdfQ==
|
|
1
|
+
import { Inject, Injectable, Optional } from '@angular/core';
|
|
2
|
+
import { TranslateLoader } from '@ngx-translate/core';
|
|
3
|
+
import { forkJoin, of } from 'rxjs';
|
|
4
|
+
import { catchError, map } from 'rxjs/operators';
|
|
5
|
+
import { getI18nLoaderConfig } from '@eui/base';
|
|
6
|
+
import { I18nResourceImpl } from './i18n.resource';
|
|
7
|
+
import { mergeAll } from '@eui/base';
|
|
8
|
+
import { CONFIG_TOKEN } from '../config/tokens';
|
|
9
|
+
import * as i0 from "@angular/core";
|
|
10
|
+
import * as i1 from "@angular/common/http";
|
|
11
|
+
import * as i2 from "../log/log.service";
|
|
12
|
+
export class I18nLoader {
|
|
13
|
+
constructor(http, logService, euiAppConfig) {
|
|
14
|
+
this.http = http;
|
|
15
|
+
this.logService = logService;
|
|
16
|
+
this.euiAppConfig = euiAppConfig;
|
|
17
|
+
this.resources = [];
|
|
18
|
+
this.failedResources = [];
|
|
19
|
+
// create the resources from the config object
|
|
20
|
+
const i18nConfig = this.euiAppConfig.global && this.euiAppConfig.global.i18n;
|
|
21
|
+
const i18nLoaderConfig = i18nConfig && i18nConfig.i18nLoader;
|
|
22
|
+
this.resources.push(...this.createResources(i18nLoaderConfig));
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Gets the translations from the server
|
|
26
|
+
*
|
|
27
|
+
* @param lang
|
|
28
|
+
* @returns Observable<any>
|
|
29
|
+
*/
|
|
30
|
+
getTranslation(lang) {
|
|
31
|
+
return this.loadResources(this.resources, lang).pipe(map((loadedResources) => {
|
|
32
|
+
this.failedResources = loadedResources.hasError ? loadedResources.errors : [];
|
|
33
|
+
return loadedResources.translations;
|
|
34
|
+
}));
|
|
35
|
+
}
|
|
36
|
+
/**
|
|
37
|
+
* Adds resources
|
|
38
|
+
*
|
|
39
|
+
* @param config loader configuration
|
|
40
|
+
* @returns Observable<any> | false
|
|
41
|
+
*/
|
|
42
|
+
addResources(config) {
|
|
43
|
+
// create the resources
|
|
44
|
+
let resources = this.createResources(config);
|
|
45
|
+
// filter the resources first, to avoid duplicates
|
|
46
|
+
resources = resources.filter((resource) => !this.resources.some((res) => res.equals(resource)));
|
|
47
|
+
// add the new resources to the list of existing resources
|
|
48
|
+
this.resources.push(...resources);
|
|
49
|
+
// return the filtered resources
|
|
50
|
+
return resources;
|
|
51
|
+
}
|
|
52
|
+
/**
|
|
53
|
+
* Removes resources from the loader instance
|
|
54
|
+
*/
|
|
55
|
+
removeResources(removedResources) {
|
|
56
|
+
this.resources = this.resources.filter((res) => !removedResources.some((removedResource) => removedResource.equals(res)));
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Loads an array of resources, by language
|
|
60
|
+
*
|
|
61
|
+
* @param resources the definition of the resources
|
|
62
|
+
* @param lang the resource language to load
|
|
63
|
+
* @returns Observable<any>
|
|
64
|
+
*/
|
|
65
|
+
loadResources(resources, lang) {
|
|
66
|
+
// if there are resources to load
|
|
67
|
+
if (Array.isArray(resources) && resources.length > 0) {
|
|
68
|
+
// load all the resources in an array of Observable
|
|
69
|
+
const requests = resources.map((resource) => this.loadResource(resource, lang));
|
|
70
|
+
// group all the observables with forkJoin and deep merge them
|
|
71
|
+
return forkJoin(requests).pipe(map((response) => {
|
|
72
|
+
const successResp = [];
|
|
73
|
+
const errResp = [];
|
|
74
|
+
response.forEach((item) => {
|
|
75
|
+
if (item.isError) {
|
|
76
|
+
errResp.push({ resource: item.resource, error: item.error });
|
|
77
|
+
}
|
|
78
|
+
else {
|
|
79
|
+
successResp.push(item);
|
|
80
|
+
}
|
|
81
|
+
});
|
|
82
|
+
if (successResp.length === response.length) {
|
|
83
|
+
return { hasError: false, translations: mergeAll(successResp) };
|
|
84
|
+
}
|
|
85
|
+
else {
|
|
86
|
+
return { hasError: true, translations: mergeAll(successResp), errors: errResp };
|
|
87
|
+
}
|
|
88
|
+
}));
|
|
89
|
+
}
|
|
90
|
+
else {
|
|
91
|
+
// no resources to load
|
|
92
|
+
return of({ hasError: false, translations: {} });
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Returns resources that failed
|
|
97
|
+
*/
|
|
98
|
+
getFailedResources() {
|
|
99
|
+
return this.failedResources;
|
|
100
|
+
}
|
|
101
|
+
/**
|
|
102
|
+
* Create resources from a config file
|
|
103
|
+
*
|
|
104
|
+
* @param config loader configuration
|
|
105
|
+
* @returns I18nResourceImpl[] resources
|
|
106
|
+
*/
|
|
107
|
+
createResources(config) {
|
|
108
|
+
// use the default config as a reference base
|
|
109
|
+
config = getI18nLoaderConfig(config);
|
|
110
|
+
const resources = [];
|
|
111
|
+
// extract the i18n folders from config
|
|
112
|
+
const i18nFolders = Array.isArray(config.i18nFolders)
|
|
113
|
+
? config.i18nFolders
|
|
114
|
+
: config.i18nFolders
|
|
115
|
+
? [config.i18nFolders]
|
|
116
|
+
: [];
|
|
117
|
+
if (i18nFolders) {
|
|
118
|
+
// add the i18n folders to resources
|
|
119
|
+
resources.push(...i18nFolders.map((folder) => new I18nResourceImpl(`assets/${folder}/`, '.json')));
|
|
120
|
+
}
|
|
121
|
+
// extract the i18n services from config
|
|
122
|
+
const i18nServices = Array.isArray(config.i18nServices)
|
|
123
|
+
? config.i18nServices
|
|
124
|
+
: config.i18nServices
|
|
125
|
+
? [config.i18nServices]
|
|
126
|
+
: [];
|
|
127
|
+
if (i18nServices) {
|
|
128
|
+
// add the i18n services to resources
|
|
129
|
+
resources.push(...i18nServices.map((service) => new I18nResourceImpl(service)));
|
|
130
|
+
}
|
|
131
|
+
// extract the i18n resources from config
|
|
132
|
+
const i18nResources = Array.isArray(config.i18nResources)
|
|
133
|
+
? config.i18nResources
|
|
134
|
+
: config.i18nResources
|
|
135
|
+
? [config.i18nResources]
|
|
136
|
+
: [];
|
|
137
|
+
if (i18nResources) {
|
|
138
|
+
// add the i18n resources to resources
|
|
139
|
+
resources.push(...i18nResources.map((resource) => new I18nResourceImpl(resource.prefix, resource.suffix, this.getResourceCompileFunction(resource.compileTranslations))));
|
|
140
|
+
}
|
|
141
|
+
return resources;
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Loads a resource, by language
|
|
145
|
+
*
|
|
146
|
+
* @param resource the definition of the resource
|
|
147
|
+
* @param lang the resource language to load
|
|
148
|
+
* @returns Observable<any>
|
|
149
|
+
*/
|
|
150
|
+
loadResource(resource, lang) {
|
|
151
|
+
// the path to the resource
|
|
152
|
+
const path = resource.getPath(lang);
|
|
153
|
+
// load the translations from the path
|
|
154
|
+
return this.http.get(path).pipe(
|
|
155
|
+
// preprocess the translations using the resource compiler
|
|
156
|
+
map((translations) => resource.compileTranslations(translations, lang)), map((translations) => {
|
|
157
|
+
// resource loaded properly, send a info message
|
|
158
|
+
if (this.logService) {
|
|
159
|
+
this.logService.info(`I18n resource loaded from path ${path}`);
|
|
160
|
+
}
|
|
161
|
+
// return the translations
|
|
162
|
+
return translations;
|
|
163
|
+
}), catchError((err) => {
|
|
164
|
+
// remove failed resource from loaded resource array
|
|
165
|
+
this.removeResources([resource]);
|
|
166
|
+
// resource not loaded properly, send a warning message
|
|
167
|
+
if (this.logService) {
|
|
168
|
+
this.logService.warn(`I18n resource NOT loaded from path ${path}`, err);
|
|
169
|
+
}
|
|
170
|
+
const resourceError = { error: `I18n resource NOT loaded from path ${path}`, resource, isError: true };
|
|
171
|
+
return of(resourceError);
|
|
172
|
+
}));
|
|
173
|
+
}
|
|
174
|
+
getResourceCompileFunction(id) {
|
|
175
|
+
const customHandlers = this.euiAppConfig.customHandler;
|
|
176
|
+
if (customHandlers && typeof customHandlers[id] === 'function') {
|
|
177
|
+
return customHandlers[id];
|
|
178
|
+
}
|
|
179
|
+
return undefined;
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
/** @nocollapse */ I18nLoader.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nLoader, deps: [{ token: i1.HttpClient }, { token: i2.LogService, optional: true }, { token: CONFIG_TOKEN }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
183
|
+
/** @nocollapse */ I18nLoader.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nLoader });
|
|
184
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.9", ngImport: i0, type: I18nLoader, decorators: [{
|
|
185
|
+
type: Injectable
|
|
186
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }, { type: i2.LogService, decorators: [{
|
|
187
|
+
type: Optional
|
|
188
|
+
}] }, { type: undefined, decorators: [{
|
|
189
|
+
type: Inject,
|
|
190
|
+
args: [CONFIG_TOKEN]
|
|
191
|
+
}] }]; } });
|
|
192
|
+
export const translateConfig = {
|
|
193
|
+
loader: {
|
|
194
|
+
provide: TranslateLoader,
|
|
195
|
+
useClass: I18nLoader,
|
|
196
|
+
},
|
|
197
|
+
};
|
|
198
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9zcmMvbGliL3NlcnZpY2VzL2kxOG4vaTE4bi5sb2FkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTdELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN0RCxPQUFPLEVBQUUsUUFBUSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUNoRCxPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWpELE9BQU8sRUFBRSxtQkFBbUIsRUFBbUMsTUFBTSxXQUFXLENBQUM7QUFDakYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLFdBQVcsQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0JBQWtCLENBQUM7Ozs7QUFzQmhELE1BQU0sT0FBTyxVQUFVO0lBSW5CLFlBQ2MsSUFBZ0IsRUFDSixVQUFzQixFQUNaLFlBQTBCO1FBRmhELFNBQUksR0FBSixJQUFJLENBQVk7UUFDSixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ1osaUJBQVksR0FBWixZQUFZLENBQWM7UUFOcEQsY0FBUyxHQUF1QixFQUFFLENBQUM7UUFDbkMsb0JBQWUsR0FBZ0MsRUFBRSxDQUFDO1FBT3hELDhDQUE4QztRQUM5QyxNQUFNLFVBQVUsR0FBZSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUM7UUFDekYsTUFBTSxnQkFBZ0IsR0FBcUIsVUFBVSxJQUFJLFVBQVUsQ0FBQyxVQUFVLENBQUM7UUFDL0UsSUFBSSxDQUFDLFNBQVMsQ0FB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Q0FBQyxDQUFDO1NBQzdCO1FBQ0QsT0FBTyxTQUFTLENBQUM7SUFDckIsQ0FBQzs7MEhBeE1RLFVBQVUsc0ZBT1AsWUFBWTs4SEFQZixVQUFVOzJGQUFWLFVBQVU7a0JBRHRCLFVBQVU7OzBCQU9GLFFBQVE7OzBCQUNSLE1BQU07MkJBQUMsWUFBWTs7QUFvTTVCLE1BQU0sQ0FBQyxNQUFNLGVBQWUsR0FBRztJQUMzQixNQUFNLEVBQUU7UUFDSixPQUFPLEVBQUUsZUFBZTtRQUN4QixRQUFRLEVBQUUsVUFBVTtLQUN2QjtDQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBmb3JrSm9pbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcblxuaW1wb3J0IHsgZ2V0STE4bkxvYWRlckNvbmZpZywgSTE4blJlc291cmNlLCB0eXBlIEV1aUFwcENvbmZpZyB9IGZyb20gJ0BldWkvYmFzZSc7XG5pbXBvcnQgeyBJMThuUmVzb3VyY2VJbXBsIH0gZnJvbSAnLi9pMThuLnJlc291cmNlJztcbmltcG9ydCB7IG1lcmdlQWxsIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IEkxOG5Mb2FkZXJDb25maWcsIEkxOG5Db25maWcsIFRyYW5zbGF0aW9uc0NvbXBpbGVyIH0gZnJvbSAnQGV1aS9iYXNlJztcbmltcG9ydCB7IENPTkZJR19UT0tFTiB9IGZyb20gJy4uL2NvbmZpZy90b2tlbnMnO1xuaW1wb3J0IHsgTG9nU2VydmljZSB9IGZyb20gJy4uL2xvZy9sb2cuc2VydmljZSc7XG5cbi8vIGV4cG9ydCBjb25zdCBJMThOX0xPQURFUl9DT05GSUdfVE9LRU4gPSBuZXcgSW5qZWN0aW9uVG9rZW48STE4bkxvYWRlckNvbmZpZz4oJ0kxOE5fTE9BREVSX0NPTkZJRycpO1xuaW50ZXJmYWNlIFJlc291cmNlRXJyb3Ige1xuICAgIGlzRXJyb3I6IGJvb2xlYW47XG4gICAgZXJyb3I/OiBzdHJpbmc7XG4gICAgcmVzb3VyY2U/OiBJMThuUmVzb3VyY2VJbXBsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRlZFJlc291cmNlcyB7XG4gICAgdHJhbnNsYXRpb25zOiBvYmplY3Q7XG4gICAgaGFzRXJyb3I6IGJvb2xlYW47XG4gICAgZXJyb3JzPzogQXJyYXk8TG9hZGVkUmVzb3VyY2VzRXJyb3I+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIExvYWRlZFJlc291cmNlc0Vycm9yIHtcbiAgICByZXNvdXJjZTogSTE4blJlc291cmNlSW1wbDtcbiAgICBlcnJvcjogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgSTE4bkxvYWRlciBpbXBsZW1lbnRzIFRyYW5zbGF0ZUxvYWRlciB7XG4gICAgcHJvdGVjdGVkIHJlc291cmNlczogSTE4blJlc291cmNlSW1wbFtdID0gW107XG4gICAgcHJvdGVjdGVkIGZhaWxlZFJlc291cmNlczogQXJyYXk8TG9hZGVkUmVzb3VyY2VzRXJyb3I+ID0gW107XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBsb2dTZXJ2aWNlOiBMb2dTZXJ2aWNlLFxuICAgICAgICBASW5qZWN0KENPTkZJR19UT0tFTikgcHJvdGVjdGVkIGV1aUFwcENvbmZpZzogRXVpQXBwQ29uZmlnXG4gICAgKSB7XG4gICAgICAgIC8vIGNyZWF0ZSB0aGUgcmVzb3VyY2VzIGZyb20gdGhlIGNvbmZpZyBvYmplY3RcbiAgICAgICAgY29uc3QgaTE4bkNvbmZpZzogSTE4bkNvbmZpZyA9IHRoaXMuZXVpQXBwQ29uZmlnLmdsb2JhbCAmJiB0aGlzLmV1aUFwcENvbmZpZy5nbG9iYWwuaTE4bjtcbiAgICAgICAgY29uc3QgaTE4bkxvYWRlckNvbmZpZzogSTE4bkxvYWRlckNvbmZpZyA9IGkxOG5Db25maWcgJiYgaTE4bkNvbmZpZy5pMThuTG9hZGVyO1xuICAgICAgICB0aGlzLnJlc291cmNlcy5wdXNoKC4uLnRoaXMuY3JlYXRlUmVzb3VyY2VzKGkxOG5Mb2FkZXJDb25maWcpKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSB0aGUgc2VydmVyXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGFuZ1xuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PlxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgICAgICByZXR1cm4gdGhpcy5sb2FkUmVzb3VyY2VzKHRoaXMucmVzb3VyY2VzLCBsYW5nKS5waXBlKFxuICAgICAgICAgICAgbWFwKChsb2FkZWRSZXNvdXJjZXM6IExvYWRlZFJlc291cmNlcykgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmFpbGVkUmVzb3VyY2VzID0gbG9hZGVkUmVzb3VyY2VzLmhhc0Vycm9yID8gbG9hZGVkUmVzb3VyY2VzLmVycm9ycyA6IFtdO1xuICAgICAgICAgICAgICAgIHJldHVybiBsb2FkZWRSZXNvdXJjZXMudHJhbnNsYXRpb25zO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBZGRzIHJlc291cmNlc1xuICAgICAqXG4gICAgICogQHBhcmFtIGNvbmZpZyBsb2FkZXIgY29uZmlndXJhdGlvblxuICAgICAqIEByZXR1cm5zIE9ic2VydmFibGU8YW55PiB8IGZhbHNlXG4gICAgICovXG4gICAgcHVibGljIGFkZFJlc291cmNlcyhjb25maWc6IEkxOG5Mb2FkZXJDb25maWcpOiBJMThuUmVzb3VyY2VJbXBsW10ge1xuICAgICAgICAvLyBjcmVhdGUgdGhlIHJlc291cmNlc1xuICAgICAgICBsZXQgcmVzb3VyY2VzID0gdGhpcy5jcmVhdGVSZXNvdXJjZXMoY29uZmlnKTtcblxuICAgICAgICAvLyBmaWx0ZXIgdGhlIHJlc291cmNlcyBmaXJzdCwgdG8gYXZvaWQgZHVwbGljYXRlc1xuICAgICAgICByZXNvdXJjZXMgPSByZXNvdXJjZXMuZmlsdGVyKChyZXNvdXJjZSkgPT4gIXRoaXMucmVzb3VyY2VzLnNvbWUoKHJlcykgPT4gcmVzLmVxdWFscyhyZXNvdXJjZSkpKTtcblxuICAgICAgICAvLyBhZGQgdGhlIG5ldyByZXNvdXJjZXMgdG8gdGhlIGxpc3Qgb2YgZXhpc3RpbmcgcmVzb3VyY2VzXG4gICAgICAgIHRoaXMucmVzb3VyY2VzLnB1c2goLi4ucmVzb3VyY2VzKTtcblxuICAgICAgICAvLyByZXR1cm4gdGhlIGZpbHRlcmVkIHJlc291cmNlc1xuICAgICAgICByZXR1cm4gcmVzb3VyY2VzO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJlbW92ZXMgcmVzb3VyY2VzIGZyb20gdGhlIGxvYWRlciBpbnN0YW5jZVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVSZXNvdXJjZXMocmVtb3ZlZFJlc291cmNlczogSTE4blJlc291cmNlSW1wbFtdKTogdm9pZCB7XG4gICAgICAgIHRoaXMucmVzb3VyY2VzID0gdGhpcy5yZXNvdXJjZXMuZmlsdGVyKChyZXMpID0+ICFyZW1vdmVkUmVzb3VyY2VzLnNvbWUoKHJlbW92ZWRSZXNvdXJjZSkgPT4gcmVtb3ZlZFJlc291cmNlLmVxdWFscyhyZXMpKSk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogTG9hZHMgYW4gYXJyYXkgb2YgcmVzb3VyY2VzLCBieSBsYW5ndWFnZVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlcyB0aGUgZGVmaW5pdGlvbiBvZiB0aGUgcmVzb3VyY2VzXG4gICAgICogQHBhcmFtIGxhbmcgdGhlIHJlc291cmNlIGxhbmd1YWdlIHRvIGxvYWRcbiAgICAgKiBAcmV0dXJucyBPYnNlcnZhYmxlPGFueT5cbiAgICAgKi9cbiAgICBwdWJsaWMgbG9hZFJlc291cmNlcyhyZXNvdXJjZXM6IEkxOG5SZXNvdXJjZUltcGxbXSwgbGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gaWYgdGhlcmUgYXJlIHJlc291cmNlcyB0byBsb2FkXG4gICAgICAgIGlmIChBcnJheS5pc0FycmF5KHJlc291cmNlcykgJiYgcmVzb3VyY2VzLmxlbmd0aCA+IDApIHtcbiAgICAgICAgICAgIC8vIGxvYWQgYWxsIHRoZSByZXNvdXJjZXMgaW4gYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZVxuICAgICAgICAgICAgY29uc3QgcmVxdWVzdHMgPSByZXNvdXJjZXMubWFwKChyZXNvdXJjZSkgPT4gdGhpcy5sb2FkUmVzb3VyY2UocmVzb3VyY2UsIGxhbmcpKTtcbiAgICAgICAgICAgIC8vIGdyb3VwIGFsbCB0aGUgb2JzZXJ2YWJsZXMgd2l0aCBmb3JrSm9pbiBhbmQgZGVlcCBtZXJnZSB0aGVtXG4gICAgICAgICAgICByZXR1cm4gZm9ya0pvaW4ocmVxdWVzdHMpLnBpcGUoXG4gICAgICAgICAgICAgICAgbWFwKChyZXNwb25zZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBzdWNjZXNzUmVzcCA9IFtdO1xuICAgICAgICAgICAgICAgICAgICBjb25zdCBlcnJSZXNwOiBBcnJheTxMb2FkZWRSZXNvdXJjZXNFcnJvcj4gPSBbXTtcbiAgICAgICAgICAgICAgICAgICAgcmVzcG9uc2UuZm9yRWFjaCgoaXRlbSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgaWYgKCg8UmVzb3VyY2VFcnJvcj5pdGVtKS5pc0Vycm9yKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZXJyUmVzcC5wdXNoKHsgcmVzb3VyY2U6ICg8UmVzb3VyY2VFcnJvcj5pdGVtKS5yZXNvdXJjZSwgZXJyb3I6ICg8UmVzb3VyY2VFcnJvcj5pdGVtKS5lcnJvciB9KTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VjY2Vzc1Jlc3AucHVzaChpdGVtKTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzdWNjZXNzUmVzcC5sZW5ndGggPT09IHJlc3BvbnNlLmxlbmd0aCkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaGFzRXJyb3I6IGZhbHNlLCB0cmFuc2xhdGlvbnM6IG1lcmdlQWxsKHN1Y2Nlc3NSZXNwKSB9O1xuICAgICAgICAgICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHsgaGFzRXJyb3I6IHRydWUsIHRyYW5zbGF0aW9uczogbWVyZ2VBbGwoc3VjY2Vzc1Jlc3ApLCBlcnJvcnM6IGVyclJlc3AgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgLy8gbm8gcmVzb3VyY2VzIHRvIGxvYWRcbiAgICAgICAgICAgIHJldHVybiBvZih7IGhhc0Vycm9yOiBmYWxzZSwgdHJhbnNsYXRpb25zOiB7fSB9KTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgcmVzb3VyY2VzIHRoYXQgZmFpbGVkXG4gICAgICovXG4gICAgcHVibGljIGdldEZhaWxlZFJlc291cmNlcygpOiBBcnJheTxMb2FkZWRSZXNvdXJjZXNFcnJvcj4ge1xuICAgICAgICByZXR1cm4gdGhpcy5mYWlsZWRSZXNvdXJjZXM7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQ3JlYXRlIHJlc291cmNlcyBmcm9tIGEgY29uZmlnIGZpbGVcbiAgICAgKlxuICAgICAqIEBwYXJhbSBjb25maWcgbG9hZGVyIGNvbmZpZ3VyYXRpb25cbiAgICAgKiBAcmV0dXJucyBJMThuUmVzb3VyY2VJbXBsW10gcmVzb3VyY2VzXG4gICAgICovXG4gICAgcHJvdGVjdGVkIGNyZWF0ZVJlc291cmNlcyhjb25maWc6IEkxOG5Mb2FkZXJDb25maWcpOiBJMThuUmVzb3VyY2VJbXBsW10ge1xuICAgICAgICAvLyB1c2UgdGhlIGRlZmF1bHQgY29uZmlnIGFzIGEgcmVmZXJlbmNlIGJhc2VcbiAgICAgICAgY29uZmlnID0gZ2V0STE4bkxvYWRlckNvbmZpZyhjb25maWcpO1xuXG4gICAgICAgIGNvbnN0IHJlc291cmNlcyA9IFtdO1xuXG4gICAgICAgIC8vIGV4dHJhY3QgdGhlIGkxOG4gZm9sZGVycyBmcm9tIGNvbmZpZ1xuICAgICAgICBjb25zdCBpMThuRm9sZGVyczogc3RyaW5nW10gPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pMThuRm9sZGVycylcbiAgICAgICAgICAgID8gY29uZmlnLmkxOG5Gb2xkZXJzXG4gICAgICAgICAgICA6IGNvbmZpZy5pMThuRm9sZGVyc1xuICAgICAgICAgICAgPyBbY29uZmlnLmkxOG5Gb2xkZXJzXVxuICAgICAgICAgICAgOiBbXTtcbiAgICAgICAgaWYgKGkxOG5Gb2xkZXJzKSB7XG4gICAgICAgICAgICAvLyBhZGQgdGhlIGkxOG4gZm9sZGVycyB0byByZXNvdXJjZXNcbiAgICAgICAgICAgIHJlc291cmNlcy5wdXNoKC4uLmkxOG5Gb2xkZXJzLm1hcCgoZm9sZGVyKSA9PiBuZXcgSTE4blJlc291cmNlSW1wbChgYXNzZXRzLyR7Zm9sZGVyfS9gLCAnLmpzb24nKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXh0cmFjdCB0aGUgaTE4biBzZXJ2aWNlcyBmcm9tIGNvbmZpZ1xuICAgICAgICBjb25zdCBpMThuU2VydmljZXM6IHN0cmluZ1tdID0gQXJyYXkuaXNBcnJheShjb25maWcuaTE4blNlcnZpY2VzKVxuICAgICAgICAgICAgPyBjb25maWcuaTE4blNlcnZpY2VzXG4gICAgICAgICAgICA6IGNvbmZpZy5pMThuU2VydmljZXNcbiAgICAgICAgICAgID8gW2NvbmZpZy5pMThuU2VydmljZXNdXG4gICAgICAgICAgICA6IFtdO1xuICAgICAgICBpZiAoaTE4blNlcnZpY2VzKSB7XG4gICAgICAgICAgICAvLyBhZGQgdGhlIGkxOG4gc2VydmljZXMgdG8gcmVzb3VyY2VzXG4gICAgICAgICAgICByZXNvdXJjZXMucHVzaCguLi5pMThuU2VydmljZXMubWFwKChzZXJ2aWNlKSA9PiBuZXcgSTE4blJlc291cmNlSW1wbChzZXJ2aWNlKSkpO1xuICAgICAgICB9XG5cbiAgICAgICAgLy8gZXh0cmFjdCB0aGUgaTE4biByZXNvdXJjZXMgZnJvbSBjb25maWdcbiAgICAgICAgY29uc3QgaTE4blJlc291cmNlczogSTE4blJlc291cmNlW10gPSBBcnJheS5pc0FycmF5KGNvbmZpZy5pMThuUmVzb3VyY2VzKVxuICAgICAgICAgICAgPyBjb25maWcuaTE4blJlc291cmNlc1xuICAgICAgICAgICAgOiBjb25maWcuaTE4blJlc291cmNlc1xuICAgICAgICAgICAgPyBbY29uZmlnLmkxOG5SZXNvdXJjZXNdXG4gICAgICAgICAgICA6IFtdO1xuICAgICAgICBpZiAoaTE4blJlc291cmNlcykge1xuICAgICAgICAgICAgLy8gYWRkIHRoZSBpMThuIHJlc291cmNlcyB0byByZXNvdXJjZXNcbiAgICAgICAgICAgIHJlc291cmNlcy5wdXNoKFxuICAgICAgICAgICAgICAgIC4uLmkxOG5SZXNvdXJjZXMubWFwKFxuICAgICAgICAgICAgICAgICAgICAocmVzb3VyY2UpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBuZXcgSTE4blJlc291cmNlSW1wbChcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXNvdXJjZS5wcmVmaXgsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmVzb3VyY2Uuc3VmZml4LFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuZ2V0UmVzb3VyY2VDb21waWxlRnVuY3Rpb24ocmVzb3VyY2UuY29tcGlsZVRyYW5zbGF0aW9ucylcbiAgICAgICAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc291cmNlcztcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBMb2FkcyBhIHJlc291cmNlLCBieSBsYW5ndWFnZVxuICAgICAqXG4gICAgICogQHBhcmFtIHJlc291cmNlIHRoZSBkZWZpbml0aW9uIG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBsYW5nIHRoZSByZXNvdXJjZSBsYW5ndWFnZSB0byBsb2FkXG4gICAgICogQHJldHVybnMgT2JzZXJ2YWJsZTxhbnk+XG4gICAgICovXG4gICAgcHJvdGVjdGVkIGxvYWRSZXNvdXJjZShyZXNvdXJjZTogSTE4blJlc291cmNlSW1wbCwgbGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAgICAgLy8gdGhlIHBhdGggdG8gdGhlIHJlc291cmNlXG4gICAgICAgIGNvbnN0IHBhdGggPSByZXNvdXJjZS5nZXRQYXRoKGxhbmcpO1xuXG4gICAgICAgIC8vIGxvYWQgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIHRoZSBwYXRoXG4gICAgICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KHBhdGgpLnBpcGUoXG4gICAgICAgICAgICAvLyBwcmVwcm9jZXNzIHRoZSB0cmFuc2xhdGlvbnMgdXNpbmcgdGhlIHJlc291cmNlIGNvbXBpbGVyXG4gICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9uczogYW55KSA9PiByZXNvdXJjZS5jb21waWxlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9ucywgbGFuZykpLFxuICAgICAgICAgICAgbWFwKCh0cmFuc2xhdGlvbnM6IGFueSkgPT4ge1xuICAgICAgICAgICAgICAgIC8vIHJlc291cmNlIGxvYWRlZCBwcm9wZXJseSwgc2VuZCBhIGluZm8gbWVzc2FnZVxuICAgICAgICAgICAgICAgIGlmICh0aGlzLmxvZ1NlcnZpY2UpIHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5sb2dTZXJ2aWNlLmluZm8oYEkxOG4gcmVzb3VyY2UgbG9hZGVkIGZyb20gcGF0aCAke3BhdGh9YCk7XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIC8vIHJldHVybiB0aGUgdHJhbnNsYXRpb25zXG4gICAgICAgICAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9ucztcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gcmVtb3ZlIGZhaWxlZCByZXNvdXJjZSBmcm9tIGxvYWRlZCByZXNvdXJjZSBhcnJheVxuICAgICAgICAgICAgICAgIHRoaXMucmVtb3ZlUmVzb3VyY2VzKFtyZXNvdXJjZV0pO1xuICAgICAgICAgICAgICAgIC8vIHJlc291cmNlIG5vdCBsb2FkZWQgcHJvcGVybHksIHNlbmQgYSB3YXJuaW5nIG1lc3NhZ2VcbiAgICAgICAgICAgICAgICBpZiAodGhpcy5sb2dTZXJ2aWNlKSB7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubG9nU2VydmljZS53YXJuKGBJMThuIHJlc291cmNlIE5PVCBsb2FkZWQgZnJvbSBwYXRoICR7cGF0aH1gLCBlcnIpO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICBjb25zdCByZXNvdXJjZUVycm9yOiBSZXNvdXJjZUVycm9yID0geyBlcnJvcjogYEkxOG4gcmVzb3VyY2UgTk9UIGxvYWRlZCBmcm9tIHBhdGggJHtwYXRofWAsIHJlc291cmNlLCBpc0Vycm9yOiB0cnVlIH07XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKHJlc291cmNlRXJyb3IpO1xuICAgICAgICAgICAgfSlcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFJlc291cmNlQ29tcGlsZUZ1bmN0aW9uKGlkOiBzdHJpbmcpOiBUcmFuc2xhdGlvbnNDb21waWxlciB7XG4gICAgICAgIGNvbnN0IGN1c3RvbUhhbmRsZXJzID0gdGhpcy5ldWlBcHBDb25maWcuY3VzdG9tSGFuZGxlcjtcbiAgICAgICAgaWYgKGN1c3RvbUhhbmRsZXJzICYmIHR5cGVvZiBjdXN0b21IYW5kbGVyc1tpZF0gPT09ICdmdW5jdGlvbicpIHtcbiAgICAgICAgICAgIHJldHVybiBjdXN0b21IYW5kbGVyc1tpZF07XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICB9XG59XG5cbmV4cG9ydCBjb25zdCB0cmFuc2xhdGVDb25maWcgPSB7XG4gICAgbG9hZGVyOiB7XG4gICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcbiAgICAgICAgdXNlQ2xhc3M6IEkxOG5Mb2FkZXIsXG4gICAgfSxcbn07XG4iXX0=
|
|
@@ -1,43 +1,43 @@
|
|
|
1
|
-
export class I18nResourceImpl {
|
|
2
|
-
/**
|
|
3
|
-
* Resource constructor
|
|
4
|
-
*
|
|
5
|
-
* @param prefix the prefix of the resource
|
|
6
|
-
* @param suffix the suffix of the resource, optional parameter
|
|
7
|
-
* @param compileTranslations compiler function, optional parameter
|
|
8
|
-
*/
|
|
9
|
-
constructor(prefix, suffix = '', compileTranslationsFn = (translations) => translations) {
|
|
10
|
-
this.prefix = prefix;
|
|
11
|
-
this.suffix = suffix;
|
|
12
|
-
this.compileTranslationsFn = compileTranslationsFn;
|
|
13
|
-
}
|
|
14
|
-
/**
|
|
15
|
-
* Translations pre-processor
|
|
16
|
-
*
|
|
17
|
-
* @param translations the object to be pre-processed
|
|
18
|
-
* @param lang the translations language
|
|
19
|
-
* @returns the pre-processed translations
|
|
20
|
-
*/
|
|
21
|
-
compileTranslations(translations, lang) {
|
|
22
|
-
return this.compileTranslationsFn(translations, lang);
|
|
23
|
-
}
|
|
24
|
-
/**
|
|
25
|
-
* Indicates whether other object is equal-to this one.
|
|
26
|
-
*
|
|
27
|
-
* @param obj the reference object with which to compare
|
|
28
|
-
* @returns true if this object is the same as obj, false otherwise
|
|
29
|
-
*/
|
|
30
|
-
equals(obj) {
|
|
31
|
-
return this.prefix === obj.prefix && this.suffix === obj.suffix;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* The path to the resource
|
|
35
|
-
*
|
|
36
|
-
* @param lang the resource language
|
|
37
|
-
* @returns the path
|
|
38
|
-
*/
|
|
39
|
-
getPath(lang) {
|
|
40
|
-
return `${this.prefix}${lang}${this.suffix}`;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
1
|
+
export class I18nResourceImpl {
|
|
2
|
+
/**
|
|
3
|
+
* Resource constructor
|
|
4
|
+
*
|
|
5
|
+
* @param prefix the prefix of the resource
|
|
6
|
+
* @param suffix the suffix of the resource, optional parameter
|
|
7
|
+
* @param compileTranslations compiler function, optional parameter
|
|
8
|
+
*/
|
|
9
|
+
constructor(prefix, suffix = '', compileTranslationsFn = (translations) => translations) {
|
|
10
|
+
this.prefix = prefix;
|
|
11
|
+
this.suffix = suffix;
|
|
12
|
+
this.compileTranslationsFn = compileTranslationsFn;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Translations pre-processor
|
|
16
|
+
*
|
|
17
|
+
* @param translations the object to be pre-processed
|
|
18
|
+
* @param lang the translations language
|
|
19
|
+
* @returns the pre-processed translations
|
|
20
|
+
*/
|
|
21
|
+
compileTranslations(translations, lang) {
|
|
22
|
+
return this.compileTranslationsFn(translations, lang);
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Indicates whether other object is equal-to this one.
|
|
26
|
+
*
|
|
27
|
+
* @param obj the reference object with which to compare
|
|
28
|
+
* @returns true if this object is the same as obj, false otherwise
|
|
29
|
+
*/
|
|
30
|
+
equals(obj) {
|
|
31
|
+
return this.prefix === obj.prefix && this.suffix === obj.suffix;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* The path to the resource
|
|
35
|
+
*
|
|
36
|
+
* @param lang the resource language
|
|
37
|
+
* @returns the path
|
|
38
|
+
*/
|
|
39
|
+
getPath(lang) {
|
|
40
|
+
return `${this.prefix}${lang}${this.suffix}`;
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvaTE4bi9pMThuLnJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekI7Ozs7OztPQU1HO0lBQ0gsWUFDYyxNQUFjLEVBQ2QsU0FBaUIsRUFBRSxFQUNuQix3QkFBa0UsQ0FBQyxZQUFpQixFQUFFLEVBQUUsQ0FBQyxZQUFZO1FBRnJHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFhO1FBQ25CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBZ0Y7SUFDaEgsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNJLG1CQUFtQixDQUFDLFlBQWlCLEVBQUUsSUFBWTtRQUN0RCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQXFCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQUMsSUFBWTtRQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJMThuUmVzb3VyY2VJbXBsIHtcbiAgICAvKipcbiAgICAgKiBSZXNvdXJjZSBjb25zdHJ1Y3RvclxuICAgICAqXG4gICAgICogQHBhcmFtIHByZWZpeCB0aGUgcHJlZml4IG9mIHRoZSByZXNvdXJjZVxuICAgICAqIEBwYXJhbSBzdWZmaXggdGhlIHN1ZmZpeCBvZiB0aGUgcmVzb3VyY2UsIG9wdGlvbmFsIHBhcmFtZXRlclxuICAgICAqIEBwYXJhbSBjb21waWxlVHJhbnNsYXRpb25zIGNvbXBpbGVyIGZ1bmN0aW9uLCBvcHRpb25hbCBwYXJhbWV0ZXJcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJvdGVjdGVkIHByZWZpeDogc3RyaW5nLFxuICAgICAgICBwcm90ZWN0ZWQgc3VmZml4OiBzdHJpbmcgPSAnJyxcbiAgICAgICAgcHJvdGVjdGVkIGNvbXBpbGVUcmFuc2xhdGlvbnNGbjogKHRyYW5zbGF0aW9uczogYW55LCBsYW5nOiBzdHJpbmcpID0+IGFueSA9ICh0cmFuc2xhdGlvbnM6IGFueSkgPT4gdHJhbnNsYXRpb25zXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogVHJhbnNsYXRpb25zIHByZS1wcm9jZXNzb3JcbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmFuc2xhdGlvbnMgdGhlIG9iamVjdCB0byBiZSBwcmUtcHJvY2Vzc2VkXG4gICAgICogQHBhcmFtIGxhbmcgdGhlIHRyYW5zbGF0aW9ucyBsYW5ndWFnZVxuICAgICAqIEByZXR1cm5zIHRoZSBwcmUtcHJvY2Vzc2VkIHRyYW5zbGF0aW9uc1xuICAgICAqL1xuICAgIHB1YmxpYyBjb21waWxlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uczogYW55LCBsYW5nOiBzdHJpbmcpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5jb21waWxlVHJhbnNsYXRpb25zRm4odHJhbnNsYXRpb25zLCBsYW5nKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBJbmRpY2F0ZXMgd2hldGhlciBvdGhlciBvYmplY3QgaXMgZXF1YWwtdG8gdGhpcyBvbmUuXG4gICAgICpcbiAgICAgKiBAcGFyYW0gb2JqIHRoZSByZWZlcmVuY2Ugb2JqZWN0IHdpdGggd2hpY2ggdG8gY29tcGFyZVxuICAgICAqIEByZXR1cm5zIHRydWUgaWYgdGhpcyBvYmplY3QgaXMgdGhlIHNhbWUgYXMgb2JqLCBmYWxzZSBvdGhlcndpc2VcbiAgICAgKi9cbiAgICBwdWJsaWMgZXF1YWxzKG9iajogSTE4blJlc291cmNlSW1wbCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5wcmVmaXggPT09IG9iai5wcmVmaXggJiYgdGhpcy5zdWZmaXggPT09IG9iai5zdWZmaXg7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGhlIHBhdGggdG8gdGhlIHJlc291cmNlXG4gICAgICpcbiAgICAgKiBAcGFyYW0gbGFuZyB0aGUgcmVzb3VyY2UgbGFuZ3VhZ2VcbiAgICAgKiBAcmV0dXJucyB0aGUgcGF0aFxuICAgICAqL1xuICAgIHB1YmxpYyBnZXRQYXRoKGxhbmc6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBgJHt0aGlzLnByZWZpeH0ke2xhbmd9JHt0aGlzLnN1ZmZpeH1gO1xuICAgIH1cbn1cbiJdfQ==
|