@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.
Files changed (213) hide show
  1. package/LICENSE +296 -296
  2. package/README.md +26 -26
  3. package/assets/i18n-eui/bg.json +114 -114
  4. package/assets/i18n-eui/cs.json +114 -114
  5. package/assets/i18n-eui/da.json +114 -114
  6. package/assets/i18n-eui/de.json +114 -114
  7. package/assets/i18n-eui/el.json +114 -114
  8. package/assets/i18n-eui/en.json +113 -113
  9. package/assets/i18n-eui/es.json +114 -114
  10. package/assets/i18n-eui/et.json +114 -114
  11. package/assets/i18n-eui/fi.json +114 -114
  12. package/assets/i18n-eui/fr.json +114 -114
  13. package/assets/i18n-eui/ga.json +114 -114
  14. package/assets/i18n-eui/hr.json +114 -114
  15. package/assets/i18n-eui/hu.json +114 -114
  16. package/assets/i18n-eui/it.json +114 -114
  17. package/assets/i18n-eui/lt.json +114 -114
  18. package/assets/i18n-eui/lv.json +114 -114
  19. package/assets/i18n-eui/mt.json +114 -114
  20. package/assets/i18n-eui/nl.json +114 -114
  21. package/assets/i18n-eui/pl.json +114 -114
  22. package/assets/i18n-eui/pt.json +114 -114
  23. package/assets/i18n-eui/ro.json +114 -114
  24. package/assets/i18n-eui/sk.json +114 -114
  25. package/assets/i18n-eui/sl.json +114 -114
  26. package/assets/i18n-eui/sv.json +114 -114
  27. package/docs/classes/RouterMock.html +5 -5
  28. package/docs/dependencies.html +7 -95
  29. package/docs/index.html +59 -36
  30. package/docs/injectables/CoreAppEffects.html +51 -51
  31. package/docs/js/menu-wc.js +7 -12
  32. package/docs/js/menu-wc_es5.js +1 -1
  33. package/docs/js/search/search_index.js +2 -2
  34. package/docs/miscellaneous/variables.html +1211 -1211
  35. package/esm2020/eui-core.mjs +4 -4
  36. package/esm2020/index.mjs +13 -13
  37. package/esm2020/lib/eui-core.module.mjs +78 -78
  38. package/esm2020/lib/helpers/date-helpers.mjs +3 -3
  39. package/esm2020/lib/helpers/dom-helpers.mjs +87 -87
  40. package/esm2020/lib/helpers/event-helpers.mjs +9 -9
  41. package/esm2020/lib/helpers/form-helpers.mjs +42 -42
  42. package/esm2020/lib/helpers/format-helpers.mjs +66 -66
  43. package/esm2020/lib/helpers/http-helpers.mjs +7 -7
  44. package/esm2020/lib/helpers/index.mjs +8 -8
  45. package/esm2020/lib/helpers/utils.mjs +7 -7
  46. package/esm2020/lib/interceptors/add-lang-param.interceptor.mjs +35 -35
  47. package/esm2020/lib/interceptors/cache-prevention.interceptor.mjs +21 -21
  48. package/esm2020/lib/interceptors/cors-security.interceptor.mjs +15 -15
  49. package/esm2020/lib/interceptors/csrf-prevention.interceptor.mjs +15 -15
  50. package/esm2020/lib/interceptors/eu-login-session-timeout-handling.interceptor.mjs +72 -72
  51. package/esm2020/lib/interceptors/index.mjs +8 -8
  52. package/esm2020/lib/interceptors/openid/index.mjs +4 -4
  53. package/esm2020/lib/interceptors/openid/openid-connect.interceptor.mjs +149 -149
  54. package/esm2020/lib/interceptors/openid/openid-connect.service.mjs +56 -56
  55. package/esm2020/lib/interceptors/openid/openid-connect.service.mock.mjs +8 -8
  56. package/esm2020/lib/interceptors/ux-request-error-model.interceptor.mjs +31 -31
  57. package/esm2020/lib/services/app/eui-init-app.mjs +29 -29
  58. package/esm2020/lib/services/app/eui-pre-init-app.mjs +43 -43
  59. package/esm2020/lib/services/app/eui-startup.mjs +40 -40
  60. package/esm2020/lib/services/app/factories/log.mjs +55 -55
  61. package/esm2020/lib/services/app/index.mjs +2 -2
  62. package/esm2020/lib/services/config/defaults.mjs +68 -68
  63. package/esm2020/lib/services/config/tokens.mjs +74 -74
  64. package/esm2020/lib/services/errors/eui.error.mjs +38 -38
  65. package/esm2020/lib/services/errors/global-error-handler.mjs +24 -24
  66. package/esm2020/lib/services/errors/http-error-handler-callback-functions.mjs +17 -17
  67. package/esm2020/lib/services/errors/http-error-handler.interceptor.mjs +55 -55
  68. package/esm2020/lib/services/errors/index.mjs +5 -5
  69. package/esm2020/lib/services/i18n/i18n.loader.mjs +198 -198
  70. package/esm2020/lib/services/i18n/i18n.resource.mjs +43 -43
  71. package/esm2020/lib/services/i18n/i18n.service.mjs +228 -228
  72. package/esm2020/lib/services/i18n/i18n.service.mock.mjs +38 -38
  73. package/esm2020/lib/services/i18n/index.mjs +6 -6
  74. package/esm2020/lib/services/index.mjs +19 -19
  75. package/esm2020/lib/services/locale/index.mjs +3 -3
  76. package/esm2020/lib/services/locale/locale.service.mjs +232 -232
  77. package/esm2020/lib/services/locale/locale.service.mock.mjs +43 -43
  78. package/esm2020/lib/services/log/index.mjs +4 -4
  79. package/esm2020/lib/services/log/log.module.mjs +38 -38
  80. package/esm2020/lib/services/log/log.service.mjs +51 -51
  81. package/esm2020/lib/services/log/log.service.mock.mjs +7 -7
  82. package/esm2020/lib/services/permission/permission.service.mjs +110 -110
  83. package/esm2020/lib/services/queue/api-queue.service.mjs +137 -137
  84. package/esm2020/lib/services/queue/api-queue.service.mock.mjs +23 -23
  85. package/esm2020/lib/services/queue/index.mjs +3 -3
  86. package/esm2020/lib/services/storage/async-storage.service.mjs +17 -17
  87. package/esm2020/lib/services/storage/async-storage.service.mock.mjs +22 -22
  88. package/esm2020/lib/services/storage/index.mjs +8 -8
  89. package/esm2020/lib/services/storage/local-forage.service.mjs +93 -93
  90. package/esm2020/lib/services/storage/local-storage.service.mjs +75 -75
  91. package/esm2020/lib/services/storage/session-storage.service.mjs +75 -75
  92. package/esm2020/lib/services/storage/storage.service.mjs +6 -6
  93. package/esm2020/lib/services/storage/storage.service.mock.mjs +12 -12
  94. package/esm2020/lib/services/store/actions/app.actions.mjs +74 -74
  95. package/esm2020/lib/services/store/actions/i18n.actions.mjs +11 -11
  96. package/esm2020/lib/services/store/actions/index.mjs +6 -6
  97. package/esm2020/lib/services/store/actions/locale.actions.mjs +11 -11
  98. package/esm2020/lib/services/store/actions/notifications.actions.mjs +11 -11
  99. package/esm2020/lib/services/store/actions/user.actions.mjs +39 -39
  100. package/esm2020/lib/services/store/effects/app.effects.mjs +55 -55
  101. package/esm2020/lib/services/store/effects/index.mjs +4 -4
  102. package/esm2020/lib/services/store/index.mjs +6 -6
  103. package/esm2020/lib/services/store/reducers/app.reducers.mjs +56 -56
  104. package/esm2020/lib/services/store/reducers/core.reducers.mjs +13 -13
  105. package/esm2020/lib/services/store/reducers/i18n.reducers.mjs +16 -16
  106. package/esm2020/lib/services/store/reducers/index.mjs +8 -8
  107. package/esm2020/lib/services/store/reducers/locale.reducers.mjs +16 -16
  108. package/esm2020/lib/services/store/reducers/meta.reducers.mjs +89 -89
  109. package/esm2020/lib/services/store/reducers/notifications.reducers.mjs +13 -13
  110. package/esm2020/lib/services/store/reducers/user.reducers.mjs +43 -43
  111. package/esm2020/lib/services/store/store.service.mjs +112 -112
  112. package/esm2020/lib/services/store/store.service.mock.mjs +22 -22
  113. package/esm2020/lib/services/user/index.mjs +3 -3
  114. package/esm2020/lib/services/user/user.service.mjs +64 -64
  115. package/esm2020/lib/services/user/user.service.mock.mjs +32 -32
  116. package/esm2020/lib/services/ux-app-shell.service.mjs +690 -690
  117. package/esm2020/lib/services/ux-dynamic-component/ux-dynamic-component.service.mjs +63 -63
  118. package/esm2020/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.mjs +66 -66
  119. package/esm2020/lib/services/ux-error-feedback/ux-error-feedback.service.mjs +99 -99
  120. package/esm2020/lib/services/ux-error-feedback/ux-error-handler.operator.mjs +16 -16
  121. package/esm2020/lib/services/ux-timezone.service.mjs +716 -716
  122. package/fesm2015/eui-core.mjs +4484 -4484
  123. package/fesm2015/eui-core.mjs.map +1 -1
  124. package/fesm2020/eui-core.mjs +4538 -4538
  125. package/fesm2020/eui-core.mjs.map +1 -1
  126. package/index.d.ts +5 -5
  127. package/lib/eui-core.module.d.ts +20 -20
  128. package/lib/helpers/date-helpers.d.ts +2 -2
  129. package/lib/helpers/dom-helpers.d.ts +26 -26
  130. package/lib/helpers/event-helpers.d.ts +1 -1
  131. package/lib/helpers/form-helpers.d.ts +10 -10
  132. package/lib/helpers/format-helpers.d.ts +12 -12
  133. package/lib/helpers/http-helpers.d.ts +2 -2
  134. package/lib/helpers/index.d.ts +7 -7
  135. package/lib/helpers/utils.d.ts +6 -6
  136. package/lib/interceptors/add-lang-param.interceptor.d.ts +16 -16
  137. package/lib/interceptors/cache-prevention.interceptor.d.ts +8 -8
  138. package/lib/interceptors/cors-security.interceptor.d.ts +8 -8
  139. package/lib/interceptors/csrf-prevention.interceptor.d.ts +8 -8
  140. package/lib/interceptors/eu-login-session-timeout-handling.interceptor.d.ts +12 -12
  141. package/lib/interceptors/index.d.ts +7 -7
  142. package/lib/interceptors/openid/index.d.ts +3 -3
  143. package/lib/interceptors/openid/openid-connect.interceptor.d.ts +14 -14
  144. package/lib/interceptors/openid/openid-connect.service.d.ts +17 -17
  145. package/lib/interceptors/openid/openid-connect.service.mock.d.ts +5 -5
  146. package/lib/interceptors/ux-request-error-model.interceptor.d.ts +13 -13
  147. package/lib/services/app/eui-init-app.d.ts +2 -2
  148. package/lib/services/app/eui-pre-init-app.d.ts +16 -16
  149. package/lib/services/app/eui-startup.d.ts +4 -4
  150. package/lib/services/app/factories/log.d.ts +25 -25
  151. package/lib/services/app/index.d.ts +1 -1
  152. package/lib/services/config/defaults.d.ts +11 -11
  153. package/lib/services/config/tokens.d.ts +19 -19
  154. package/lib/services/errors/eui.error.d.ts +15 -15
  155. package/lib/services/errors/global-error-handler.d.ts +10 -10
  156. package/lib/services/errors/http-error-handler-callback-functions.d.ts +6 -6
  157. package/lib/services/errors/http-error-handler.interceptor.d.ts +22 -22
  158. package/lib/services/errors/index.d.ts +4 -4
  159. package/lib/services/i18n/i18n.loader.d.ts +79 -79
  160. package/lib/services/i18n/i18n.resource.d.ts +35 -35
  161. package/lib/services/i18n/i18n.service.d.ts +73 -73
  162. package/lib/services/i18n/i18n.service.mock.d.ts +19 -19
  163. package/lib/services/i18n/index.d.ts +4 -4
  164. package/lib/services/index.d.ts +18 -18
  165. package/lib/services/locale/index.d.ts +2 -2
  166. package/lib/services/locale/locale.service.d.ts +68 -68
  167. package/lib/services/locale/locale.service.mock.d.ts +15 -15
  168. package/lib/services/log/index.d.ts +3 -3
  169. package/lib/services/log/log.module.d.ts +15 -15
  170. package/lib/services/log/log.service.d.ts +27 -27
  171. package/lib/services/log/log.service.mock.d.ts +4 -4
  172. package/lib/services/permission/permission.service.d.ts +52 -52
  173. package/lib/services/queue/api-queue.service.d.ts +76 -76
  174. package/lib/services/queue/api-queue.service.mock.d.ts +13 -13
  175. package/lib/services/queue/index.d.ts +2 -2
  176. package/lib/services/storage/async-storage.service.d.ts +44 -44
  177. package/lib/services/storage/async-storage.service.mock.d.ts +11 -11
  178. package/lib/services/storage/index.d.ts +7 -7
  179. package/lib/services/storage/local-forage.service.d.ts +48 -48
  180. package/lib/services/storage/local-storage.service.d.ts +34 -34
  181. package/lib/services/storage/session-storage.service.d.ts +34 -34
  182. package/lib/services/storage/storage.service.d.ts +28 -28
  183. package/lib/services/storage/storage.service.mock.d.ts +7 -7
  184. package/lib/services/store/actions/app.actions.d.ts +82 -82
  185. package/lib/services/store/actions/i18n.actions.d.ts +11 -11
  186. package/lib/services/store/actions/index.d.ts +5 -5
  187. package/lib/services/store/actions/locale.actions.d.ts +11 -11
  188. package/lib/services/store/actions/notifications.actions.d.ts +10 -10
  189. package/lib/services/store/actions/user.actions.d.ts +35 -35
  190. package/lib/services/store/effects/app.effects.d.ts +19 -19
  191. package/lib/services/store/effects/index.d.ts +3 -3
  192. package/lib/services/store/index.d.ts +5 -5
  193. package/lib/services/store/reducers/app.reducers.d.ts +3 -3
  194. package/lib/services/store/reducers/core.reducers.d.ts +3 -3
  195. package/lib/services/store/reducers/i18n.reducers.d.ts +3 -3
  196. package/lib/services/store/reducers/index.d.ts +7 -7
  197. package/lib/services/store/reducers/locale.reducers.d.ts +3 -3
  198. package/lib/services/store/reducers/meta.reducers.d.ts +17 -17
  199. package/lib/services/store/reducers/notifications.reducers.d.ts +3 -3
  200. package/lib/services/store/reducers/user.reducers.d.ts +3 -3
  201. package/lib/services/store/store.service.d.ts +43 -43
  202. package/lib/services/store/store.service.mock.d.ts +12 -12
  203. package/lib/services/user/index.d.ts +2 -2
  204. package/lib/services/user/user.service.d.ts +15 -15
  205. package/lib/services/user/user.service.mock.d.ts +16 -16
  206. package/lib/services/ux-app-shell.service.d.ts +155 -155
  207. package/lib/services/ux-dynamic-component/ux-dynamic-component.service.d.ts +36 -36
  208. package/lib/services/ux-dynamic-menu/ux-dynamic-menu.service.d.ts +14 -14
  209. package/lib/services/ux-error-feedback/ux-error-feedback.service.d.ts +35 -35
  210. package/lib/services/ux-error-feedback/ux-error-handler.operator.d.ts +3 -3
  211. package/lib/services/ux-timezone.service.d.ts +269 -269
  212. package/package.json +2 -2
  213. 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5yZXNvdXJjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvc2VydmljZXMvaTE4bi9pMThuLnJlc291cmNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE1BQU0sT0FBTyxnQkFBZ0I7SUFDekI7Ozs7OztPQU1HO0lBQ0gsWUFDYyxNQUFjLEVBQ2QsU0FBaUIsRUFBRSxFQUNuQix3QkFBa0UsQ0FBQyxZQUFpQixFQUFFLEVBQUUsQ0FBQyxZQUFZO1FBRnJHLFdBQU0sR0FBTixNQUFNLENBQVE7UUFDZCxXQUFNLEdBQU4sTUFBTSxDQUFhO1FBQ25CLDBCQUFxQixHQUFyQixxQkFBcUIsQ0FBZ0Y7SUFDaEgsQ0FBQztJQUVKOzs7Ozs7T0FNRztJQUNJLG1CQUFtQixDQUFDLFlBQWlCLEVBQUUsSUFBWTtRQUN0RCxPQUFPLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksTUFBTSxDQUFDLEdBQXFCO1FBQy9CLE9BQU8sSUFBSSxDQUFDLE1BQU0sS0FBSyxHQUFHLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxNQUFNLEtBQUssR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUNwRSxDQUFDO0lBRUQ7Ozs7O09BS0c7SUFDSSxPQUFPLENBQUMsSUFBWTtRQUN2QixPQUFPLEdBQUcsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLEdBQUcsSUFBSSxDQUFDLE1BQU0sRUFBRSxDQUFDO0lBQ2pELENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBjbGFzcyBJMThuUmVzb3VyY2VJbXBsIHtcclxuICAgIC8qKlxyXG4gICAgICogUmVzb3VyY2UgY29uc3RydWN0b3JcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gcHJlZml4IHRoZSBwcmVmaXggb2YgdGhlIHJlc291cmNlXHJcbiAgICAgKiBAcGFyYW0gc3VmZml4IHRoZSBzdWZmaXggb2YgdGhlIHJlc291cmNlLCBvcHRpb25hbCBwYXJhbWV0ZXJcclxuICAgICAqIEBwYXJhbSBjb21waWxlVHJhbnNsYXRpb25zIGNvbXBpbGVyIGZ1bmN0aW9uLCBvcHRpb25hbCBwYXJhbWV0ZXJcclxuICAgICAqL1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJvdGVjdGVkIHByZWZpeDogc3RyaW5nLFxyXG4gICAgICAgIHByb3RlY3RlZCBzdWZmaXg6IHN0cmluZyA9ICcnLFxyXG4gICAgICAgIHByb3RlY3RlZCBjb21waWxlVHJhbnNsYXRpb25zRm46ICh0cmFuc2xhdGlvbnM6IGFueSwgbGFuZzogc3RyaW5nKSA9PiBhbnkgPSAodHJhbnNsYXRpb25zOiBhbnkpID0+IHRyYW5zbGF0aW9uc1xyXG4gICAgKSB7fVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNsYXRpb25zIHByZS1wcm9jZXNzb3JcclxuICAgICAqXHJcbiAgICAgKiBAcGFyYW0gdHJhbnNsYXRpb25zIHRoZSBvYmplY3QgdG8gYmUgcHJlLXByb2Nlc3NlZFxyXG4gICAgICogQHBhcmFtIGxhbmcgdGhlIHRyYW5zbGF0aW9ucyBsYW5ndWFnZVxyXG4gICAgICogQHJldHVybnMgdGhlIHByZS1wcm9jZXNzZWQgdHJhbnNsYXRpb25zXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBjb21waWxlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uczogYW55LCBsYW5nOiBzdHJpbmcpOiBhbnkge1xyXG4gICAgICAgIHJldHVybiB0aGlzLmNvbXBpbGVUcmFuc2xhdGlvbnNGbih0cmFuc2xhdGlvbnMsIGxhbmcpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogSW5kaWNhdGVzIHdoZXRoZXIgb3RoZXIgb2JqZWN0IGlzIGVxdWFsLXRvIHRoaXMgb25lLlxyXG4gICAgICpcclxuICAgICAqIEBwYXJhbSBvYmogdGhlIHJlZmVyZW5jZSBvYmplY3Qgd2l0aCB3aGljaCB0byBjb21wYXJlXHJcbiAgICAgKiBAcmV0dXJucyB0cnVlIGlmIHRoaXMgb2JqZWN0IGlzIHRoZSBzYW1lIGFzIG9iaiwgZmFsc2Ugb3RoZXJ3aXNlXHJcbiAgICAgKi9cclxuICAgIHB1YmxpYyBlcXVhbHMob2JqOiBJMThuUmVzb3VyY2VJbXBsKTogYm9vbGVhbiB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMucHJlZml4ID09PSBvYmoucHJlZml4ICYmIHRoaXMuc3VmZml4ID09PSBvYmouc3VmZml4O1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVGhlIHBhdGggdG8gdGhlIHJlc291cmNlXHJcbiAgICAgKlxyXG4gICAgICogQHBhcmFtIGxhbmcgdGhlIHJlc291cmNlIGxhbmd1YWdlXHJcbiAgICAgKiBAcmV0dXJucyB0aGUgcGF0aFxyXG4gICAgICovXHJcbiAgICBwdWJsaWMgZ2V0UGF0aChsYW5nOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiBgJHt0aGlzLnByZWZpeH0ke2xhbmd9JHt0aGlzLnN1ZmZpeH1gO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
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==