ngx-edu-sharing-ui 9.2.0 → 9999.0.0

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.
@@ -12,7 +12,7 @@ import { Inject, Optional } from '@angular/core';
12
12
  import { LANGUAGES } from 'ngx-edu-sharing-api';
13
13
  import * as rxjs from 'rxjs';
14
14
  import { concat, of } from 'rxjs';
15
- import { catchError, first, map, reduce } from 'rxjs/operators';
15
+ import { catchError, filter, first, map, reduce, switchMap } from 'rxjs/operators';
16
16
  import { ASSETS_BASE_PATH } from '../types/injection-tokens';
17
17
  import { TranslationSource } from './translation-source';
18
18
  export const TRANSLATION_LIST = [
@@ -57,6 +57,7 @@ let TranslationLoader = TranslationLoader_1 = class TranslationLoader {
57
57
  if (!LANGUAGES[lang]) {
58
58
  console.error('unknown locale for language ' + lang);
59
59
  }
60
+ console.log('lang', lang);
60
61
  this.configService.setLocale(LANGUAGES[lang]);
61
62
  return rxjs
62
63
  .forkJoin({
@@ -67,9 +68,10 @@ let TranslationLoader = TranslationLoader_1 = class TranslationLoader {
67
68
  .observeTranslationOverrides()
68
69
  .pipe(first()),
69
70
  })
70
- .pipe(map(({ originalTranslations, translationOverrides }) =>
71
- // FIXME: This will alter the object returned by `getOriginalTranslations`.
72
- this.applyOverrides(originalTranslations, translationOverrides)), map((translations) => this.replaceGenderCharacter(translations)), catchError((error, obs) => {
71
+ .pipe(map(({ originalTranslations, translationOverrides }) => {
72
+ // FIXME: This will alter the object returned by `getOriginalTranslations`.
73
+ return this.applyOverrides(originalTranslations, translationOverrides);
74
+ }), map((translations) => this.replaceGenderCharacter(translations)), catchError((error, obs) => {
73
75
  console.error(error);
74
76
  return of(error);
75
77
  }));
@@ -77,7 +79,7 @@ let TranslationLoader = TranslationLoader_1 = class TranslationLoader {
77
79
  getOriginalTranslations(lang) {
78
80
  switch (this.getSource()) {
79
81
  case 'repository':
80
- return this.configService.observeDefaultTranslations().pipe(first());
82
+ return this.configService.observeDefaultTranslations().pipe(filter((arg) => !arg || arg.locale === LANGUAGES[lang]), switchMap((arg) => arg?.dict?.pipe(first()) || of(null)), first());
81
83
  case 'local':
82
84
  return this.mergeTranslations(this.fetchTranslations(lang));
83
85
  }
@@ -178,4 +180,4 @@ TranslationLoader = TranslationLoader_1 = __decorate([
178
180
  __param(0, Inject(ASSETS_BASE_PATH))
179
181
  ], TranslationLoader);
180
182
  export { TranslationLoader };
181
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi90cmFuc2xhdGlvbnMvdHJhbnNsYXRpb24tbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQWlCLFNBQVMsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQy9ELE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixRQUFRO0lBQ1IsT0FBTztJQUNQLFNBQVM7SUFDVCxXQUFXO0lBQ1gsUUFBUTtJQUNSLGFBQWE7SUFDYixPQUFPO0lBQ1AsYUFBYTtJQUNiLEtBQUs7SUFDTCxVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsUUFBUTtJQUNSLFVBQVU7Q0FDYixDQUFDO0FBSUssSUFBTSxpQkFBaUIseUJBQXZCLE1BQU0saUJBQWlCO0lBQ25CLEFBQVAsTUFBTSxDQUFDLE1BQU0sQ0FDVCxJQUFnQixFQUNoQixhQUE0QixFQUM1QixhQUF3QyxFQUNGLGNBQXVCO1FBRTdELE9BQU8sSUFBSSxtQkFBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRSxhQUFhLENB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WUFBWSxDQUFDLEdBQUcsQ0FBWSxDQUFDLE9BQU8sQ0FDckQsdUJBQXVCLEVBQ3ZCLEdBQUcsQ0FDTixDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQzNDLFlBQVksQ0FBQyxHQUFHLENBQWUsRUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FDbkIsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztDQUNKLENBQUE7QUEvS1U7SUFJRixXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtxQ0FHeEM7QUFSUSxpQkFBaUI7SUFXckIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtJQUFFLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7R0FYaEMsaUJBQWlCLENBZ0w3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIExBTkdVQUdFUyB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpcnN0LCBtYXAsIHJlZHVjZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVkdVNoYXJpbmdVaUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9lZHUtc2hhcmluZy11aS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEFTU0VUU19CQVNFX1BBVEggfSBmcm9tICcuLi90eXBlcy9pbmplY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU291cmNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi1zb3VyY2UnO1xuXG5leHBvcnQgY29uc3QgVFJBTlNMQVRJT05fTElTVCA9IFtcbiAgICAnY29tbW9uJyxcbiAgICAnYWRtaW4nLFxuICAgICdyZWN5Y2xlJyxcbiAgICAnd29ya3NwYWNlJyxcbiAgICAnc2VhcmNoJyxcbiAgICAnY29sbGVjdGlvbnMnLFxuICAgICdsb2dpbicsXG4gICAgJ3Blcm1pc3Npb25zJyxcbiAgICAnb2VyJyxcbiAgICAnbWVzc2FnZXMnLFxuICAgICdyZWdpc3RlcicsXG4gICAgJ3Byb2ZpbGVzJyxcbiAgICAnc2VydmljZXMnLFxuICAgICdzdHJlYW0nLFxuICAgICdvdmVycmlkZScsXG5dO1xuXG50eXBlIERpY3Rpb25hcnkgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IERpY3Rpb25hcnkgfTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgICBzdGF0aWMgY3JlYXRlKFxuICAgICAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgICAgICBjb25maWd1cmF0aW9uOiBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFTU0VUU19CQVNFX1BBVEgpIGFzc2V0c0Jhc2VQYXRoPzogc3RyaW5nLFxuICAgICkge1xuICAgICAgICByZXR1cm4gbmV3IFRyYW5zbGF0aW9uTG9hZGVyKGFzc2V0c0Jhc2VQYXRoLCBodHRwLCBjb25maWdTZXJ2aWNlLCBjb25maWd1cmF0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFTU0VUU19CQVNFX1BBVEgpIHByaXZhdGUgYXNzZXRzQmFzZVBhdGg6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogRWR1U2hhcmluZ1VpQ29uZmlndXJhdGlvbixcbiAgICAgICAgcHJpdmF0ZSBwcmVmaXg6IHN0cmluZyA9IChhc3NldHNCYXNlUGF0aCA/PyAnJykgKyAnYXNzZXRzL2kxOG4nLFxuICAgICAgICBwcml2YXRlIHN1ZmZpeDogc3RyaW5nID0gJy5qc29uJyxcbiAgICApIHt9XG5cbiAgICAvLyBJZiB5b3UgbmVlZCB0byBjb25maWd1cmUgdGhpcywgZGVmaW5lIGFuIGluamVjdGFibGUgY29uZmlndXJhdGlvbiBvYmplY3QuIFNlZVxuICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9kZXBlbmRlbmN5LWluamVjdGlvbi1wcm92aWRlcnMjaW5qZWN0aW5nLWEtY29uZmlndXJhdGlvbi1vYmplY3QuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IFRyYW5zbGF0aW9uU291cmNlID0gVHJhbnNsYXRpb25Tb3VyY2UuQXV0bztcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk+IHtcbiAgICAgICAgaWYgKGxhbmcgPT09ICdub25lJykge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIUxBTkdVQUdFU1tsYW5nXSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcigndW5rbm93biBsb2NhbGUgZm9yIGxhbmd1YWdlICcgKyBsYW5nKTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2Uuc2V0TG9jYWxlKExBTkdVQUdFU1tsYW5nXSk7XG4gICAgICAgIHJldHVybiByeGpzXG4gICAgICAgICAgICAuZm9ya0pvaW4oe1xuICAgICAgICAgICAgICAgIG9yaWdpbmFsVHJhbnNsYXRpb25zOiB0aGlzLmdldE9yaWdpbmFsVHJhbnNsYXRpb25zKGxhbmcpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gZW1wdHkgZGljdGlvbmFyeSBpZiB3ZSBnb3Qgbm90aGluZ1xuICAgICAgICAgICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4gdHJhbnNsYXRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT3ZlcnJpZGVzOiB0aGlzLmNvbmZpZ1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLm9ic2VydmVUcmFuc2xhdGlvbk92ZXJyaWRlcygpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoeyBvcmlnaW5hbFRyYW5zbGF0aW9ucywgdHJhbnNsYXRpb25PdmVycmlkZXMgfSkgPT5cbiAgICAgICAgICAgICAgICAgICAgLy8gRklYTUU6IFRoaXMgd2lsbCBhbHRlciB0aGUgb2JqZWN0IHJldHVybmVkIGJ5IGBnZXRPcmlnaW5hbFRyYW5zbGF0aW9uc2AuXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYXBwbHlPdmVycmlkZXMob3JpZ2luYWxUcmFuc2xhdGlvbnMsIHRyYW5zbGF0aW9uT3ZlcnJpZGVzKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcCgodHJhbnNsYXRpb25zKSA9PiB0aGlzLnJlcGxhY2VHZW5kZXJDaGFyYWN0ZXIodHJhbnNsYXRpb25zKSksXG4gICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IsIG9icykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zb2xlLmVycm9yKGVycm9yKTtcbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKGVycm9yKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBnZXRPcmlnaW5hbFRyYW5zbGF0aW9ucyhsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk+IHtcbiAgICAgICAgc3dpdGNoICh0aGlzLmdldFNvdXJjZSgpKSB7XG4gICAgICAgICAgICBjYXNlICdyZXBvc2l0b3J5JzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5jb25maWdTZXJ2aWNlLm9ic2VydmVEZWZhdWx0VHJhbnNsYXRpb25zKCkucGlwZShmaXJzdCgpKTtcbiAgICAgICAgICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZXJnZVRyYW5zbGF0aW9ucyh0aGlzLmZldGNoVHJhbnNsYXRpb25zKGxhbmcpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U291cmNlKCk6ICdyZXBvc2l0b3J5JyB8ICdsb2NhbCcge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uLnByb2R1Y3Rpb24gJiYgdGhpcy5zb3VyY2UgPT09IFRyYW5zbGF0aW9uU291cmNlLkF1dG8pIHx8XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9PT0gVHJhbnNsYXRpb25Tb3VyY2UuUmVwb3NpdG9yeVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAncmVwb3NpdG9yeSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2xvY2FsJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZXMgdGhhdCB3aWxsIGVhY2ggZmV0Y2ggYSB0cmFuc2xhdGlvbnMganNvblxuICAgICAqIGZpbGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmZXRjaFRyYW5zbGF0aW9ucyhsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk+W10ge1xuICAgICAgICByZXR1cm4gVFJBTlNMQVRJT05fTElTVC5tYXAoXG4gICAgICAgICAgICAodHJhbnNsYXRpb24pID0+IGAke3RoaXMucHJlZml4fS8ke3RyYW5zbGF0aW9ufS8ke2xhbmd9JHt0aGlzLnN1ZmZpeH1gLFxuICAgICAgICApXG4gICAgICAgICAgICAubWFwKCh1cmwpID0+IHRoaXMuaHR0cC5nZXQodXJsKSBhcyBPYnNlcnZhYmxlPERpY3Rpb25hcnk+KVxuICAgICAgICAgICAgLm1hcCgob2JzKSA9PlxuICAgICAgICAgICAgICAgIG9icy5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pc3NpbmcgdHJhbnNsYXRpb24gZmlsZSBmb3IgbGFuZ3VhZ2UgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLCB0cmFuc2xhdGlvbnMgd2lsbCBiZSBtaXNzaW5nIC8gZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGxhbmd1YWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhbiBhcnJheSBhcyByZXR1cm5lZCBieSBgZmV0Y2hUcmFuc2xhdGlvbnNgIGFuZCBjb252ZXJ0cyBpdCB0byBhblxuICAgICAqIE9ic2VydmFibGUgdGhhdCB5aWVsZHMgYSBzaW5nbGUgRGljdGlvbmFyeSBvYmplY3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSBtZXJnZVRyYW5zbGF0aW9ucyh0cmFuc2xhdGlvbnM6IE9ic2VydmFibGU8RGljdGlvbmFyeT5bXSk6IE9ic2VydmFibGU8RGljdGlvbmFyeT4ge1xuICAgICAgICByZXR1cm4gY29uY2F0KC4uLnRyYW5zbGF0aW9ucykucGlwZShcbiAgICAgICAgICAgIHJlZHVjZSgoYWNjOiBEaWN0aW9uYXJ5LCB2YWx1ZTogRGljdGlvbmFyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY1twcm9wXSA9IHZhbHVlW3Byb3BdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyBgb3ZlcnJpZGVzYCB0byBgdHJhbnNsYXRpb25zYCBhbmQgcmV0dXJucyBgdHJhbnNsYXRpb25zYC5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICogIHRyYW5zbGF0aW9ucyA9IHsgZm9vOiB7IGJhcjogJ2JhcicgfSB9XG4gICAgICogIG92ZXJyaWRlcyA9IHsgJ2Zvby5iYXInOiAnYmF6JyB9XG4gICAgICogcmVzdWx0cyBpblxuICAgICAqICB0cmFuc2xhdGlvbnMgPSB7IGZvbzoge2JhcjogJ2JheicgfSB9XG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHJhbnNsYXRpb25zIE5lc3RlZCB0cmFuc2xhdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvdmVycmlkZXMgRmxhdCBvYmplY3Qgd2l0aCBkb3RzICguKSBpbiBrZXlzIGludGVycHJldGVkIGFzXG4gICAgICogc2VwYXJhdG9ycy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5T3ZlcnJpZGVzKFxuICAgICAgICB0cmFuc2xhdGlvbnM6IERpY3Rpb25hcnksXG4gICAgICAgIG92ZXJyaWRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICApOiBEaWN0aW9uYXJ5IHtcbiAgICAgICAgaWYgKG92ZXJyaWRlcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXM8c3RyaW5nPihvdmVycmlkZXMpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlZiA9IHRyYW5zbGF0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0ga2V5LnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aExhc3QgPSBwYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBwYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVmW2l0ZW1dKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZbaXRlbV0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZJdGVtID0gcmVmW2l0ZW1dO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlZkl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byBvdmVycmlkZSBsZWF2ZSB3aXRoIHN1YiB0cmVlOiAnICsgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVmID0gcmVmSXRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVmW3BhdGhMYXN0XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cmFuc2xhdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlR2VuZGVyQ2hhcmFjdGVyKHRyYW5zbGF0aW9uczogRGljdGlvbmFyeSwgcGF0aDogc3RyaW5nW10gPSBbXSkge1xuICAgICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXModHJhbnNsYXRpb25zKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0cmFuc2xhdGlvbnNba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAvLyBETyBOT1QgUkVNT1ZFIChyZXF1aXJlZCBmb3IgY3N2IGxhbmd1YWdlIGR1bXBpbmcpXG4gICAgICAgICAgICAgICAgLypjb25zb2xlLmxvZyhDc3ZIZWxwZXIuZnJvbUFycmF5KG51bGwsIFtbXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmNvbmNhdChrZXkpLmpvaW4oJy4nKSwgdHJhbnNsYXRpb25zW2tleV1cbiAgICAgICAgICAgICAgICBdXSkpOyovXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zW2tleV0gPSAodHJhbnNsYXRpb25zW2tleV0gYXMgc3RyaW5nKS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAve3tHRU5ERVJfU0VQQVJBVE9SfX0vZyxcbiAgICAgICAgICAgICAgICAgICAgJyonLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1trZXldID0gdGhpcy5yZXBsYWNlR2VuZGVyQ2hhcmFjdGVyKFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNba2V5XSBhcyBEaWN0aW9uYXJ5LFxuICAgICAgICAgICAgICAgICAgICBwYXRoLmNvbmNhdChrZXkpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJhbnNsYXRpb25zO1xuICAgIH1cbn1cbiJdfQ==
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi90cmFuc2xhdGlvbnMvdHJhbnNsYXRpb24tbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7QUFDQSxPQUFPLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQWlCLFNBQVMsRUFBb0IsTUFBTSxxQkFBcUIsQ0FBQztBQUNqRixPQUFPLEtBQUssSUFBSSxNQUFNLE1BQU0sQ0FBQztBQUM3QixPQUFPLEVBQUUsTUFBTSxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM5QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQU8sTUFBTSxnQkFBZ0IsQ0FBQztBQUV4RixPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQztBQUM3RCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUV6RCxNQUFNLENBQUMsTUFBTSxnQkFBZ0IsR0FBRztJQUM1QixRQUFRO0lBQ1IsT0FBTztJQUNQLFNBQVM7SUFDVCxXQUFXO0lBQ1gsUUFBUTtJQUNSLGFBQWE7SUFDYixPQUFPO0lBQ1AsYUFBYTtJQUNiLEtBQUs7SUFDTCxVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixVQUFVO0lBQ1YsUUFBUTtJQUNSLFVBQVU7Q0FDYixDQUFDO0FBSUssSUFBTSxpQkFBaUIseUJBQXZCLE1BQU0saUJBQWlCO0lBQ25CLEFBQVAsTUFBTSxDQUFDLE1BQU0sQ0FDVCxJQUFnQixFQUNoQixhQUE0QixFQUM1QixhQUF3QyxFQUNGLGNBQXVCO1FBRTdELE9BQU8sSUFBSSxtQkFBaUIsQ0FBQyxjQUFjLEVBQUUsSUFBSSxF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RCxHQUFHLENBQUMsUUFBUSxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQzFCLENBQUM7UUFDTCxDQUFDO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQXdCLEVBQUUsT0FBaUIsRUFBRTtRQUN4RSxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQztZQUN4QyxJQUFJLE9BQU8sWUFBWSxDQUFDLEdBQUcsQ0FBQyxLQUFLLFFBQVEsRUFBRSxDQUFDO2dCQUN4QyxvREFBb0Q7Z0JBQ3BEOzt1QkFFTztnQkFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUksWUFBWSxDQUFDLEdBQUcsQ0FBWSxDQUFDLE9BQU8sQ0FDckQsdUJBQXVCLEVBQ3ZCLEdBQUcsQ0FDTixDQUFDO1lBQ04sQ0FBQztpQkFBTSxDQUFDO2dCQUNKLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQzNDLFlBQVksQ0FBQyxHQUFHLENBQWUsRUFDL0IsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FDbkIsQ0FBQztZQUNOLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztDQUNKLENBQUE7QUFwTFU7SUFJRixXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtxQ0FHeEM7QUFSUSxpQkFBaUI7SUFXckIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtJQUFFLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7R0FYaEMsaUJBQWlCLENBcUw3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UsIExBTkdVQUdFUywgVHJhbnNsYXRpb25zRGljdCB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0ICogYXMgcnhqcyBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNvbmNhdCwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpbHRlciwgZmlyc3QsIG1hcCwgcmVkdWNlLCBzd2l0Y2hNYXAsIHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IEVkdVNoYXJpbmdVaUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9lZHUtc2hhcmluZy11aS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEFTU0VUU19CQVNFX1BBVEggfSBmcm9tICcuLi90eXBlcy9pbmplY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uU291cmNlIH0gZnJvbSAnLi90cmFuc2xhdGlvbi1zb3VyY2UnO1xuXG5leHBvcnQgY29uc3QgVFJBTlNMQVRJT05fTElTVCA9IFtcbiAgICAnY29tbW9uJyxcbiAgICAnYWRtaW4nLFxuICAgICdyZWN5Y2xlJyxcbiAgICAnd29ya3NwYWNlJyxcbiAgICAnc2VhcmNoJyxcbiAgICAnY29sbGVjdGlvbnMnLFxuICAgICdsb2dpbicsXG4gICAgJ3Blcm1pc3Npb25zJyxcbiAgICAnb2VyJyxcbiAgICAnbWVzc2FnZXMnLFxuICAgICdyZWdpc3RlcicsXG4gICAgJ3Byb2ZpbGVzJyxcbiAgICAnc2VydmljZXMnLFxuICAgICdzdHJlYW0nLFxuICAgICdvdmVycmlkZScsXG5dO1xuXG50eXBlIERpY3Rpb25hcnkgPSB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB8IERpY3Rpb25hcnkgfTtcblxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgICBzdGF0aWMgY3JlYXRlKFxuICAgICAgICBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgICAgICBjb25maWd1cmF0aW9uOiBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uLFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFTU0VUU19CQVNFX1BBVEgpIGFzc2V0c0Jhc2VQYXRoPzogc3RyaW5nLFxuICAgICkge1xuICAgICAgICByZXR1cm4gbmV3IFRyYW5zbGF0aW9uTG9hZGVyKGFzc2V0c0Jhc2VQYXRoLCBodHRwLCBjb25maWdTZXJ2aWNlLCBjb25maWd1cmF0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KEFTU0VUU19CQVNFX1BBVEgpIHByaXZhdGUgYXNzZXRzQmFzZVBhdGg6IHN0cmluZyxcbiAgICAgICAgcHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LFxuICAgICAgICBwcml2YXRlIGNvbmZpZ1NlcnZpY2U6IENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgY29uZmlndXJhdGlvbjogRWR1U2hhcmluZ1VpQ29uZmlndXJhdGlvbixcbiAgICAgICAgcHJpdmF0ZSBwcmVmaXg6IHN0cmluZyA9IChhc3NldHNCYXNlUGF0aCA/PyAnJykgKyAnYXNzZXRzL2kxOG4nLFxuICAgICAgICBwcml2YXRlIHN1ZmZpeDogc3RyaW5nID0gJy5qc29uJyxcbiAgICApIHt9XG5cbiAgICAvLyBJZiB5b3UgbmVlZCB0byBjb25maWd1cmUgdGhpcywgZGVmaW5lIGFuIGluamVjdGFibGUgY29uZmlndXJhdGlvbiBvYmplY3QuIFNlZVxuICAgIC8vIGh0dHBzOi8vYW5ndWxhci5pby9ndWlkZS9kZXBlbmRlbmN5LWluamVjdGlvbi1wcm92aWRlcnMjaW5qZWN0aW5nLWEtY29uZmlndXJhdGlvbi1vYmplY3QuXG4gICAgcHJpdmF0ZSByZWFkb25seSBzb3VyY2U6IFRyYW5zbGF0aW9uU291cmNlID0gVHJhbnNsYXRpb25Tb3VyY2UuQXV0bztcblxuICAgIC8qKlxuICAgICAqIEdldHMgdGhlIHRyYW5zbGF0aW9ucyBmcm9tIHRoZSBzZXJ2ZXJcbiAgICAgKi9cbiAgICBnZXRUcmFuc2xhdGlvbihsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk+IHtcbiAgICAgICAgaWYgKGxhbmcgPT09ICdub25lJykge1xuICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoIUxBTkdVQUdFU1tsYW5nXSkge1xuICAgICAgICAgICAgY29uc29sZS5lcnJvcigndW5rbm93biBsb2NhbGUgZm9yIGxhbmd1YWdlICcgKyBsYW5nKTtcbiAgICAgICAgfVxuICAgICAgICBjb25zb2xlLmxvZygnbGFuZycsIGxhbmcpO1xuICAgICAgICB0aGlzLmNvbmZpZ1NlcnZpY2Uuc2V0TG9jYWxlKExBTkdVQUdFU1tsYW5nXSk7XG4gICAgICAgIHJldHVybiByeGpzXG4gICAgICAgICAgICAuZm9ya0pvaW4oe1xuICAgICAgICAgICAgICAgIG9yaWdpbmFsVHJhbnNsYXRpb25zOiB0aGlzLmdldE9yaWdpbmFsVHJhbnNsYXRpb25zKGxhbmcpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gZW1wdHkgZGljdGlvbmFyeSBpZiB3ZSBnb3Qgbm90aGluZ1xuICAgICAgICAgICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4gdHJhbnNsYXRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT3ZlcnJpZGVzOiB0aGlzLmNvbmZpZ1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLm9ic2VydmVUcmFuc2xhdGlvbk92ZXJyaWRlcygpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoeyBvcmlnaW5hbFRyYW5zbGF0aW9ucywgdHJhbnNsYXRpb25PdmVycmlkZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGFsdGVyIHRoZSBvYmplY3QgcmV0dXJuZWQgYnkgYGdldE9yaWdpbmFsVHJhbnNsYXRpb25zYC5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlPdmVycmlkZXMob3JpZ2luYWxUcmFuc2xhdGlvbnMsIHRyYW5zbGF0aW9uT3ZlcnJpZGVzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4gdGhpcy5yZXBsYWNlR2VuZGVyQ2hhcmFjdGVyKHRyYW5zbGF0aW9ucykpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yLCBvYnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihlcnJvcik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3JpZ2luYWxUcmFuc2xhdGlvbnMobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5nZXRTb3VyY2UoKSkge1xuICAgICAgICAgICAgY2FzZSAncmVwb3NpdG9yeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5vYnNlcnZlRGVmYXVsdFRyYW5zbGF0aW9ucygpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoYXJnKSA9PiAhYXJnIHx8IGFyZy5sb2NhbGUgPT09IExBTkdVQUdFU1tsYW5nXSksXG4gICAgICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoYXJnKSA9PiBhcmc/LmRpY3Q/LnBpcGUoZmlyc3QoKSkgfHwgb2YobnVsbCkpLFxuICAgICAgICAgICAgICAgICAgICBmaXJzdCgpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICBjYXNlICdsb2NhbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVyZ2VUcmFuc2xhdGlvbnModGhpcy5mZXRjaFRyYW5zbGF0aW9ucyhsYW5nKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNvdXJjZSgpOiAncmVwb3NpdG9yeScgfCAnbG9jYWwnIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvbi5wcm9kdWN0aW9uICYmIHRoaXMuc291cmNlID09PSBUcmFuc2xhdGlvblNvdXJjZS5BdXRvKSB8fFxuICAgICAgICAgICAgdGhpcy5zb3VyY2UgPT09IFRyYW5zbGF0aW9uU291cmNlLlJlcG9zaXRvcnlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3JlcG9zaXRvcnknO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdsb2NhbCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIE9ic2VydmFibGVzIHRoYXQgd2lsbCBlYWNoIGZldGNoIGEgdHJhbnNsYXRpb25zIGpzb25cbiAgICAgKiBmaWxlLlxuICAgICAqL1xuICAgIHByaXZhdGUgZmV0Y2hUcmFuc2xhdGlvbnMobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PltdIHtcbiAgICAgICAgcmV0dXJuIFRSQU5TTEFUSU9OX0xJU1QubWFwKFxuICAgICAgICAgICAgKHRyYW5zbGF0aW9uKSA9PiBgJHt0aGlzLnByZWZpeH0vJHt0cmFuc2xhdGlvbn0vJHtsYW5nfSR7dGhpcy5zdWZmaXh9YCxcbiAgICAgICAgKVxuICAgICAgICAgICAgLm1hcCgodXJsKSA9PiB0aGlzLmh0dHAuZ2V0KHVybCkgYXMgT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PilcbiAgICAgICAgICAgIC5tYXAoKG9icykgPT5cbiAgICAgICAgICAgICAgICBvYnMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICdtaXNzaW5nIHRyYW5zbGF0aW9uIGZpbGUgZm9yIGxhbmd1YWdlICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBsYW5nICtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJywgdHJhbnNsYXRpb25zIHdpbGwgYmUgbWlzc2luZyAvIGZhbGxpbmcgYmFjayB0byB0aGUgZGVmYXVsdCBsYW5ndWFnZScsXG4gICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKHt9KTtcbiAgICAgICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogVGFrZXMgYW4gYXJyYXkgYXMgcmV0dXJuZWQgYnkgYGZldGNoVHJhbnNsYXRpb25zYCBhbmQgY29udmVydHMgaXQgdG8gYW5cbiAgICAgKiBPYnNlcnZhYmxlIHRoYXQgeWllbGRzIGEgc2luZ2xlIERpY3Rpb25hcnkgb2JqZWN0LlxuICAgICAqL1xuICAgIHByaXZhdGUgbWVyZ2VUcmFuc2xhdGlvbnModHJhbnNsYXRpb25zOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk+W10pOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk+IHtcbiAgICAgICAgcmV0dXJuIGNvbmNhdCguLi50cmFuc2xhdGlvbnMpLnBpcGUoXG4gICAgICAgICAgICByZWR1Y2UoKGFjYzogRGljdGlvbmFyeSwgdmFsdWU6IERpY3Rpb25hcnkpID0+IHtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IHByb3AgaW4gdmFsdWUpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHZhbHVlLmhhc093blByb3BlcnR5KHByb3ApKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBhY2NbcHJvcF0gPSB2YWx1ZVtwcm9wXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZXR1cm4gYWNjO1xuICAgICAgICAgICAgfSwge30pLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIEFwcGxpZXMgYG92ZXJyaWRlc2AgdG8gYHRyYW5zbGF0aW9uc2AgYW5kIHJldHVybnMgYHRyYW5zbGF0aW9uc2AuXG4gICAgICpcbiAgICAgKiBFeGFtcGxlOlxuICAgICAqICB0cmFuc2xhdGlvbnMgPSB7IGZvbzogeyBiYXI6ICdiYXInIH0gfVxuICAgICAqICBvdmVycmlkZXMgPSB7ICdmb28uYmFyJzogJ2JheicgfVxuICAgICAqIHJlc3VsdHMgaW5cbiAgICAgKiAgdHJhbnNsYXRpb25zID0geyBmb286IHtiYXI6ICdiYXonIH0gfVxuICAgICAqXG4gICAgICogQHBhcmFtIHRyYW5zbGF0aW9ucyBOZXN0ZWQgdHJhbnNsYXRpb25zIG9iamVjdC5cbiAgICAgKiBAcGFyYW0gb3ZlcnJpZGVzIEZsYXQgb2JqZWN0IHdpdGggZG90cyAoLikgaW4ga2V5cyBpbnRlcnByZXRlZCBhc1xuICAgICAqIHNlcGFyYXRvcnMuXG4gICAgICovXG4gICAgcHJpdmF0ZSBhcHBseU92ZXJyaWRlcyhcbiAgICAgICAgdHJhbnNsYXRpb25zOiBEaWN0aW9uYXJ5LFxuICAgICAgICBvdmVycmlkZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0sXG4gICAgKTogRGljdGlvbmFyeSB7XG4gICAgICAgIGlmIChvdmVycmlkZXMpIHtcbiAgICAgICAgICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzPHN0cmluZz4ob3ZlcnJpZGVzKSkge1xuICAgICAgICAgICAgICAgIGxldCByZWYgPSB0cmFuc2xhdGlvbnM7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aCA9IGtleS5zcGxpdCgnLicpO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGhMYXN0ID0gcGF0aC5wb3AoKTtcbiAgICAgICAgICAgICAgICBmb3IgKGNvbnN0IGl0ZW0gb2YgcGF0aCkge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXJlZltpdGVtXSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgcmVmW2l0ZW1dID0ge307XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgY29uc3QgcmVmSXRlbSA9IHJlZltpdGVtXTtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHR5cGVvZiByZWZJdGVtID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKCdUcnlpbmcgdG8gb3ZlcnJpZGUgbGVhdmUgd2l0aCBzdWIgdHJlZTogJyArIHBhdGgpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIHJlZiA9IHJlZkl0ZW07XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJlZltwYXRoTGFzdF0gPSB2YWx1ZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdHJhbnNsYXRpb25zO1xuICAgIH1cblxuICAgIHByaXZhdGUgcmVwbGFjZUdlbmRlckNoYXJhY3Rlcih0cmFuc2xhdGlvbnM6IERpY3Rpb25hcnksIHBhdGg6IHN0cmluZ1tdID0gW10pIHtcbiAgICAgICAgZm9yIChsZXQga2V5IG9mIE9iamVjdC5rZXlzKHRyYW5zbGF0aW9ucykpIHtcbiAgICAgICAgICAgIGlmICh0eXBlb2YgdHJhbnNsYXRpb25zW2tleV0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgLy8gRE8gTk9UIFJFTU9WRSAocmVxdWlyZWQgZm9yIGNzdiBsYW5ndWFnZSBkdW1waW5nKVxuICAgICAgICAgICAgICAgIC8qY29uc29sZS5sb2coQ3N2SGVscGVyLmZyb21BcnJheShudWxsLCBbW1xuICAgICAgICAgICAgICAgICAgICAgICAgcGF0aC5jb25jYXQoa2V5KS5qb2luKCcuJyksIHRyYW5zbGF0aW9uc1trZXldXG4gICAgICAgICAgICAgICAgXV0pKTsqL1xuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1trZXldID0gKHRyYW5zbGF0aW9uc1trZXldIGFzIHN0cmluZykucmVwbGFjZShcbiAgICAgICAgICAgICAgICAgICAgL3t7R0VOREVSX1NFUEFSQVRPUn19L2csXG4gICAgICAgICAgICAgICAgICAgICcqJyxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNba2V5XSA9IHRoaXMucmVwbGFjZUdlbmRlckNoYXJhY3RlcihcbiAgICAgICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zW2tleV0gYXMgRGljdGlvbmFyeSxcbiAgICAgICAgICAgICAgICAgICAgcGF0aC5jb25jYXQoa2V5KSxcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9ucztcbiAgICB9XG59XG4iXX0=
@@ -6882,6 +6882,7 @@ let TranslationLoader = TranslationLoader_1 = class TranslationLoader {
6882
6882
  if (!LANGUAGES[lang]) {
6883
6883
  console.error('unknown locale for language ' + lang);
6884
6884
  }
6885
+ console.log('lang', lang);
6885
6886
  this.configService.setLocale(LANGUAGES[lang]);
6886
6887
  return rxjs
6887
6888
  .forkJoin({
@@ -6892,9 +6893,10 @@ let TranslationLoader = TranslationLoader_1 = class TranslationLoader {
6892
6893
  .observeTranslationOverrides()
6893
6894
  .pipe(first()),
6894
6895
  })
6895
- .pipe(map(({ originalTranslations, translationOverrides }) =>
6896
- // FIXME: This will alter the object returned by `getOriginalTranslations`.
6897
- this.applyOverrides(originalTranslations, translationOverrides)), map((translations) => this.replaceGenderCharacter(translations)), catchError((error, obs) => {
6896
+ .pipe(map(({ originalTranslations, translationOverrides }) => {
6897
+ // FIXME: This will alter the object returned by `getOriginalTranslations`.
6898
+ return this.applyOverrides(originalTranslations, translationOverrides);
6899
+ }), map((translations) => this.replaceGenderCharacter(translations)), catchError((error, obs) => {
6898
6900
  console.error(error);
6899
6901
  return of(error);
6900
6902
  }));
@@ -6902,7 +6904,7 @@ let TranslationLoader = TranslationLoader_1 = class TranslationLoader {
6902
6904
  getOriginalTranslations(lang) {
6903
6905
  switch (this.getSource()) {
6904
6906
  case 'repository':
6905
- return this.configService.observeDefaultTranslations().pipe(first());
6907
+ return this.configService.observeDefaultTranslations().pipe(filter((arg) => !arg || arg.locale === LANGUAGES[lang]), switchMap((arg) => arg?.dict?.pipe(first()) || of(null)), first());
6906
6908
  case 'local':
6907
6909
  return this.mergeTranslations(this.fetchTranslations(lang));
6908
6910
  }