ngx-edu-sharing-ui 9.0.2 → 9.1.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 (88) hide show
  1. package/esm2022/lib/actionbar/actionbar.component.mjs +33 -18
  2. package/esm2022/lib/common/edu-sharing-ui-common.module.mjs +73 -62
  3. package/esm2022/lib/directives/check-text-overflow.directive.mjs +8 -2
  4. package/esm2022/lib/directives/icon.directive.mjs +38 -14
  5. package/esm2022/lib/directives/infinite-scroll.directive.mjs +85 -0
  6. package/esm2022/lib/dropdown/dropdown.component.mjs +17 -10
  7. package/esm2022/lib/edu-sharing-ui-configuration.mjs +8 -1
  8. package/esm2022/lib/edu-sharing-ui.module.mjs +5 -1
  9. package/esm2022/lib/list-items/list-base/list-base.component.mjs +6 -6
  10. package/esm2022/lib/list-items/list-counts/list-counts.component.mjs +3 -1
  11. package/esm2022/lib/list-items/list-text/list-text.component.mjs +17 -17
  12. package/esm2022/lib/mds/mds-helper.service.mjs +167 -0
  13. package/esm2022/lib/mds/mds.module.mjs +16 -0
  14. package/esm2022/lib/node-entries/drag-preview/drag-preview.component.mjs +3 -3
  15. package/esm2022/lib/node-entries/entries-model.mjs +2 -1
  16. package/esm2022/lib/node-entries/node-cache.mjs +9 -1
  17. package/esm2022/lib/node-entries/node-data-source.mjs +4 -2
  18. package/esm2022/lib/node-entries/node-entries-card/node-entries-card.component.mjs +16 -12
  19. package/esm2022/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.mjs +37 -22
  20. package/esm2022/lib/node-entries/node-entries-card-small/node-entries-card-small.component.mjs +5 -5
  21. package/esm2022/lib/node-entries/node-entries-global-options/node-entries-global-options.component.mjs +7 -3
  22. package/esm2022/lib/node-entries/node-entries-global.service.mjs +14 -1
  23. package/esm2022/lib/node-entries/node-entries-table/column-chooser/column-chooser.component.mjs +3 -3
  24. package/esm2022/lib/node-entries/node-entries-table/node-entries-table.component.mjs +45 -34
  25. package/esm2022/lib/node-entries/node-entries-wrapper.component.mjs +17 -5
  26. package/esm2022/lib/node-entries/node-entries.component.mjs +2 -2
  27. package/esm2022/lib/node-entries/node-rating/node-rating.component.mjs +35 -12
  28. package/esm2022/lib/node-entries/option-button/option-button.component.mjs +24 -11
  29. package/esm2022/lib/node-entries/sort-select-panel/sort-select-panel.component.mjs +3 -3
  30. package/esm2022/lib/node-url/node-url.component.mjs +7 -3
  31. package/esm2022/lib/pipes/file-size.pipe.mjs +6 -5
  32. package/esm2022/lib/pipes/node-title.pipe.mjs +7 -1
  33. package/esm2022/lib/pipes/option-tooltip.pipe.mjs +3 -3
  34. package/esm2022/lib/pipes/property-slug.pipe.mjs +16 -0
  35. package/esm2022/lib/services/abstract/options-helper.service.mjs +1 -1
  36. package/esm2022/lib/services/app-container.service.mjs +66 -0
  37. package/esm2022/lib/services/node-entries.service.mjs +47 -3
  38. package/esm2022/lib/services/node-helper.service.mjs +38 -12
  39. package/esm2022/lib/services/options-helper-data.service.mjs +5 -5
  40. package/esm2022/lib/services/repo-url.service.mjs +2 -1
  41. package/esm2022/lib/services/ui.service.mjs +22 -1
  42. package/esm2022/lib/spinner/spinner.component.mjs +4 -3
  43. package/esm2022/lib/translations/translation-loader.mjs +48 -14
  44. package/esm2022/lib/translations/translations.module.mjs +15 -4
  45. package/esm2022/lib/translations/translations.service.mjs +25 -7
  46. package/esm2022/lib/types/injection-tokens.mjs +9 -0
  47. package/esm2022/lib/types/option-item.mjs +9 -3
  48. package/esm2022/module.mjs +51 -43
  49. package/fesm2022/ngx-edu-sharing-ui.mjs +4595 -3931
  50. package/fesm2022/ngx-edu-sharing-ui.mjs.map +1 -1
  51. package/lib/actionbar/actionbar.component.d.ts +13 -3
  52. package/lib/common/edu-sharing-ui-common.module.d.ts +27 -25
  53. package/lib/directives/icon.directive.d.ts +6 -4
  54. package/lib/directives/infinite-scroll.directive.d.ts +22 -0
  55. package/lib/dropdown/dropdown.component.d.ts +6 -3
  56. package/lib/edu-sharing-ui-configuration.d.ts +5 -0
  57. package/lib/edu-sharing-ui.module.d.ts +7 -6
  58. package/lib/list-items/list-widget.d.ts +1 -1
  59. package/lib/mds/mds-helper.service.d.ts +37 -0
  60. package/lib/mds/mds.module.d.ts +6 -0
  61. package/lib/node-entries/entries-model.d.ts +3 -2
  62. package/lib/node-entries/node-data-source.d.ts +1 -1
  63. package/lib/node-entries/node-entries-card/node-entries-card.component.d.ts +2 -2
  64. package/lib/node-entries/node-entries-card-grid/node-entries-card-grid.component.d.ts +6 -1
  65. package/lib/node-entries/node-entries-global-options/node-entries-global-options.component.d.ts +1 -0
  66. package/lib/node-entries/node-entries-global.service.d.ts +7 -0
  67. package/lib/node-entries/node-entries-table/node-entries-table.component.d.ts +4 -1
  68. package/lib/node-entries/node-entries-wrapper.component.d.ts +8 -3
  69. package/lib/node-entries/node-rating/node-rating.component.d.ts +3 -3
  70. package/lib/node-entries/option-button/option-button.component.d.ts +8 -3
  71. package/lib/pipes/node-title.pipe.d.ts +2 -1
  72. package/lib/pipes/option-tooltip.pipe.d.ts +1 -1
  73. package/lib/pipes/property-slug.pipe.d.ts +7 -0
  74. package/lib/services/abstract/options-helper.service.d.ts +4 -4
  75. package/lib/services/app-container.service.d.ts +43 -0
  76. package/lib/services/node-entries.service.d.ts +31 -6
  77. package/lib/services/node-helper.service.d.ts +7 -5
  78. package/lib/services/options-helper-data.service.d.ts +6 -6
  79. package/lib/services/ui.service.d.ts +15 -2
  80. package/lib/spinner/spinner.component.d.ts +1 -1
  81. package/lib/translations/translation-loader.d.ts +2 -1
  82. package/lib/translations/translations.service.d.ts +5 -2
  83. package/lib/types/injection-tokens.d.ts +8 -0
  84. package/lib/types/option-item.d.ts +10 -6
  85. package/module.d.ts +50 -42
  86. package/package.json +1 -1
  87. package/esm2022/lib/translations/languages.mjs +0 -5
  88. package/lib/translations/languages.d.ts +0 -4
@@ -1,7 +1,18 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __param = (this && this.__param) || function (paramIndex, decorator) {
8
+ return function (target, key) { decorator(target, key, paramIndex); }
9
+ };
10
+ import { Inject, Optional } from '@angular/core';
11
+ import { LANGUAGES } from 'ngx-edu-sharing-api';
1
12
  import * as rxjs from 'rxjs';
2
13
  import { concat, of } from 'rxjs';
3
- import { catchError, first, map, reduce } from 'rxjs/operators';
4
- import { LANGUAGES } from './languages';
14
+ import { catchError, filter, first, map, reduce, switchMap } from 'rxjs/operators';
15
+ import { ASSETS_BASE_PATH } from '../types/injection-tokens';
5
16
  import { TranslationSource } from './translation-source';
6
17
  export const TRANSLATION_LIST = [
7
18
  'common',
@@ -20,11 +31,12 @@ export const TRANSLATION_LIST = [
20
31
  'stream',
21
32
  'override',
22
33
  ];
23
- export class TranslationLoader {
24
- static create(http, configService, configuration) {
25
- return new TranslationLoader(http, configService, configuration);
34
+ let TranslationLoader = class TranslationLoader {
35
+ static create(http, configService, configuration, assetsBasePath) {
36
+ return new TranslationLoader(assetsBasePath, http, configService, configuration);
26
37
  }
27
- constructor(http, configService, configuration, prefix = 'assets/i18n', suffix = '.json') {
38
+ constructor(assetsBasePath, http, configService, configuration, prefix = (assetsBasePath ?? '') + 'assets/i18n', suffix = '.json') {
39
+ this.assetsBasePath = assetsBasePath;
28
40
  this.http = http;
29
41
  this.configService = configService;
30
42
  this.configuration = configuration;
@@ -41,7 +53,12 @@ export class TranslationLoader {
41
53
  if (lang === 'none') {
42
54
  return of({});
43
55
  }
44
- this.configService.setLocale(LANGUAGES[lang]);
56
+ // backend can not handle sub-languages
57
+ const langBackend = lang.startsWith('de-') ? 'de' : lang;
58
+ if (!LANGUAGES[langBackend]) {
59
+ console.error('unknown locale for language ' + lang + ' / ' + langBackend);
60
+ }
61
+ this.configService.setLocale(LANGUAGES[langBackend], lang);
45
62
  return rxjs
46
63
  .forkJoin({
47
64
  originalTranslations: this.getOriginalTranslations(lang).pipe(
@@ -51,9 +68,10 @@ export class TranslationLoader {
51
68
  .observeTranslationOverrides()
52
69
  .pipe(first()),
53
70
  })
54
- .pipe(map(({ originalTranslations, translationOverrides }) =>
55
- // FIXME: This will alter the object returned by `getOriginalTranslations`.
56
- 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) => {
57
75
  console.error(error);
58
76
  return of(error);
59
77
  }));
@@ -61,7 +79,7 @@ export class TranslationLoader {
61
79
  getOriginalTranslations(lang) {
62
80
  switch (this.getSource()) {
63
81
  case 'repository':
64
- return this.configService.observeDefaultTranslations().pipe(first());
82
+ return this.configService.observeDefaultTranslations().pipe(filter((arg) => !arg?.locale || arg.language === lang), switchMap((arg) => arg?.dict?.pipe(first()) || of(null)), first());
65
83
  case 'local':
66
84
  return this.mergeTranslations(this.fetchTranslations(lang));
67
85
  }
@@ -80,7 +98,14 @@ export class TranslationLoader {
80
98
  * file.
81
99
  */
82
100
  fetchTranslations(lang) {
83
- return TRANSLATION_LIST.map((translation) => `${this.prefix}/${translation}/${lang}${this.suffix}`).map((url) => this.http.get(url));
101
+ return TRANSLATION_LIST.map((translation) => `${this.prefix}/${translation}/${lang}${this.suffix}`)
102
+ .map((url) => this.http.get(url))
103
+ .map((obs) => obs.pipe(catchError((e) => {
104
+ console.warn('missing translation file for language ' +
105
+ lang +
106
+ ', translations will be missing / falling back to the default language');
107
+ return of({});
108
+ })));
84
109
  }
85
110
  /**
86
111
  * Takes an array as returned by `fetchTranslations` and converts it to an
@@ -145,5 +170,14 @@ export class TranslationLoader {
145
170
  }
146
171
  return translations;
147
172
  }
148
- }
149
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi90cmFuc2xhdGlvbnMvdHJhbnNsYXRpb24tbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUdBLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxNQUFNLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVoRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLFFBQVE7SUFDUixPQUFPO0lBQ1AsU0FBUztJQUNULFdBQVc7SUFDWCxRQUFRO0lBQ1IsYUFBYTtJQUNiLE9BQU87SUFDUCxhQUFhO0lBQ2IsS0FBSztJQUNMLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixRQUFRO0lBQ1IsVUFBVTtDQUNiLENBQUM7QUFJRixNQUFNLE9BQU8saUJBQWlCO0lBQzFCLE1BQU0sQ0FBQyxNQUFNLENBQ1QsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsYUFBd0M7UUFFeEMsT0FBTyxJQUFJLGlCQUFpQixDQUFDLElBQUksRUFBRSxhQUFhLEVBQUUsYUFBYSxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELFlBQ1ksSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsYUFBd0MsRUFDeEMsU0FBaUIsYUFBYSxFQUM5QixTQUFpQixPQUFPO1FBSnhCLFNBQUksR0FBSixJQUFJLENBQVk7UUFDaEIsa0JBQWEsR0FBYixhQUFhLENBQWU7UUFD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QU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7SUFFTyxzQkFBc0IsQ0FBQyxZQUF3QixFQUFFLE9BQWlCLEVBQUU7UUFDeEUsS0FBSyxJQUFJLEdBQUcsSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3ZDLElBQUksT0FBTyxZQUFZLENBQUMsR0FBRyxDQUFDLEtBQUssUUFBUSxFQUFFO2dCQUN2QyxvREFBb0Q7Z0JBQ3BEOzt1QkFFTztnQkFDUCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUksWUFBWSxDQUFDLEdBQUcsQ0FBWSxDQUFDLE9BQU8sQ0FDckQsdUJBQXVCLEVBQ3ZCLEdBQUcsQ0FDTixDQUFDO2FBQ0w7aUJBQU07Z0JBQ0gsWUFBWSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FDM0MsWUFBWSxDQUFDLEdBQUcsQ0FBZSxFQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUNuQixDQUFDO2FBQ0w7U0FDSjtRQUVELE9BQU8sWUFBWSxDQUFDO0lBQ3hCLENBQUM7Q0FDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb25jYXQsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaXJzdCwgbWFwLCByZWR1Y2UgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZWR1LXNoYXJpbmctdWktY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBMQU5HVUFHRVMgfSBmcm9tICcuL2xhbmd1YWdlcyc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNvdXJjZSB9IGZyb20gJy4vdHJhbnNsYXRpb24tc291cmNlJztcblxuZXhwb3J0IGNvbnN0IFRSQU5TTEFUSU9OX0xJU1QgPSBbXG4gICAgJ2NvbW1vbicsXG4gICAgJ2FkbWluJyxcbiAgICAncmVjeWNsZScsXG4gICAgJ3dvcmtzcGFjZScsXG4gICAgJ3NlYXJjaCcsXG4gICAgJ2NvbGxlY3Rpb25zJyxcbiAgICAnbG9naW4nLFxuICAgICdwZXJtaXNzaW9ucycsXG4gICAgJ29lcicsXG4gICAgJ21lc3NhZ2VzJyxcbiAgICAncmVnaXN0ZXInLFxuICAgICdwcm9maWxlcycsXG4gICAgJ3NlcnZpY2VzJyxcbiAgICAnc3RyZWFtJyxcbiAgICAnb3ZlcnJpZGUnLFxuXTtcblxudHlwZSBEaWN0aW9uYXJ5ID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBEaWN0aW9uYXJ5IH07XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkxvYWRlciBpbXBsZW1lbnRzIFRyYW5zbGF0ZUxvYWRlciB7XG4gICAgc3RhdGljIGNyZWF0ZShcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICAgICAgY29uZmlndXJhdGlvbjogRWR1U2hhcmluZ1VpQ29uZmlndXJhdGlvbixcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2xhdGlvbkxvYWRlcihodHRwLCBjb25maWdTZXJ2aWNlLCBjb25maWd1cmF0aW9uKTtcbiAgICB9XG5cbiAgICBwcml2YXRlIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgICAgIHByaXZhdGUgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb25maWd1cmF0aW9uOiBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uLFxuICAgICAgICBwcml2YXRlIHByZWZpeDogc3RyaW5nID0gJ2Fzc2V0cy9pMThuJyxcbiAgICAgICAgcHJpdmF0ZSBzdWZmaXg6IHN0cmluZyA9ICcuanNvbicsXG4gICAgKSB7fVxuXG4gICAgLy8gSWYgeW91IG5lZWQgdG8gY29uZmlndXJlIHRoaXMsIGRlZmluZSBhbiBpbmplY3RhYmxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBTZWVcbiAgICAvLyBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvZGVwZW5kZW5jeS1pbmplY3Rpb24tcHJvdmlkZXJzI2luamVjdGluZy1hLWNvbmZpZ3VyYXRpb24tb2JqZWN0LlxuICAgIHByaXZhdGUgcmVhZG9ubHkgc291cmNlOiBUcmFuc2xhdGlvblNvdXJjZSA9IFRyYW5zbGF0aW9uU291cmNlLkF1dG87XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSB0aGUgc2VydmVyXG4gICAgICovXG4gICAgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PiB7XG4gICAgICAgIGlmIChsYW5nID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5jb25maWdTZXJ2aWNlLnNldExvY2FsZShMQU5HVUFHRVNbbGFuZ10pO1xuICAgICAgICByZXR1cm4gcnhqc1xuICAgICAgICAgICAgLmZvcmtKb2luKHtcbiAgICAgICAgICAgICAgICBvcmlnaW5hbFRyYW5zbGF0aW9uczogdGhpcy5nZXRPcmlnaW5hbFRyYW5zbGF0aW9ucyhsYW5nKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAvLyBEZWZhdWx0IHRvIGVtcHR5IGRpY3Rpb25hcnkgaWYgd2UgZ290IG5vdGhpbmdcbiAgICAgICAgICAgICAgICAgICAgbWFwKCh0cmFuc2xhdGlvbnMpID0+IHRyYW5zbGF0aW9ucyB8fCB7fSksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbk92ZXJyaWRlczogdGhpcy5jb25maWdTZXJ2aWNlXG4gICAgICAgICAgICAgICAgICAgIC5vYnNlcnZlVHJhbnNsYXRpb25PdmVycmlkZXMoKVxuICAgICAgICAgICAgICAgICAgICAucGlwZShmaXJzdCgpKSxcbiAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICBtYXAoKHsgb3JpZ2luYWxUcmFuc2xhdGlvbnMsIHRyYW5zbGF0aW9uT3ZlcnJpZGVzIH0pID0+XG4gICAgICAgICAgICAgICAgICAgIC8vIEZJWE1FOiBUaGlzIHdpbGwgYWx0ZXIgdGhlIG9iamVjdCByZXR1cm5lZCBieSBgZ2V0T3JpZ2luYWxUcmFuc2xhdGlvbnNgLlxuICAgICAgICAgICAgICAgICAgICB0aGlzLmFwcGx5T3ZlcnJpZGVzKG9yaWdpbmFsVHJhbnNsYXRpb25zLCB0cmFuc2xhdGlvbk92ZXJyaWRlcyksXG4gICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4gdGhpcy5yZXBsYWNlR2VuZGVyQ2hhcmFjdGVyKHRyYW5zbGF0aW9ucykpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yLCBvYnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihlcnJvcik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3JpZ2luYWxUcmFuc2xhdGlvbnMobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5nZXRTb3VyY2UoKSkge1xuICAgICAgICAgICAgY2FzZSAncmVwb3NpdG9yeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5vYnNlcnZlRGVmYXVsdFRyYW5zbGF0aW9ucygpLnBpcGUoZmlyc3QoKSk7XG4gICAgICAgICAgICBjYXNlICdsb2NhbCc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMubWVyZ2VUcmFuc2xhdGlvbnModGhpcy5mZXRjaFRyYW5zbGF0aW9ucyhsYW5nKSk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwcml2YXRlIGdldFNvdXJjZSgpOiAncmVwb3NpdG9yeScgfCAnbG9jYWwnIHtcbiAgICAgICAgaWYgKFxuICAgICAgICAgICAgKHRoaXMuY29uZmlndXJhdGlvbi5wcm9kdWN0aW9uICYmIHRoaXMuc291cmNlID09PSBUcmFuc2xhdGlvblNvdXJjZS5BdXRvKSB8fFxuICAgICAgICAgICAgdGhpcy5zb3VyY2UgPT09IFRyYW5zbGF0aW9uU291cmNlLlJlcG9zaXRvcnlcbiAgICAgICAgKSB7XG4gICAgICAgICAgICByZXR1cm4gJ3JlcG9zaXRvcnknO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuICdsb2NhbCc7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBSZXR1cm5zIGFuIGFycmF5IG9mIE9ic2VydmFibGVzIHRoYXQgd2lsbCBlYWNoIGZldGNoIGEgdHJhbnNsYXRpb25zIGpzb25cbiAgICAgKiBmaWxlLlxuICAgICAqL1xuICAgIHByaXZhdGUgZmV0Y2hUcmFuc2xhdGlvbnMobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PltdIHtcbiAgICAgICAgcmV0dXJuIFRSQU5TTEFUSU9OX0xJU1QubWFwKFxuICAgICAgICAgICAgKHRyYW5zbGF0aW9uKSA9PiBgJHt0aGlzLnByZWZpeH0vJHt0cmFuc2xhdGlvbn0vJHtsYW5nfSR7dGhpcy5zdWZmaXh9YCxcbiAgICAgICAgKS5tYXAoKHVybCkgPT4gdGhpcy5odHRwLmdldCh1cmwpIGFzIE9ic2VydmFibGU8RGljdGlvbmFyeT4pO1xuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFRha2VzIGFuIGFycmF5IGFzIHJldHVybmVkIGJ5IGBmZXRjaFRyYW5zbGF0aW9uc2AgYW5kIGNvbnZlcnRzIGl0IHRvIGFuXG4gICAgICogT2JzZXJ2YWJsZSB0aGF0IHlpZWxkcyBhIHNpbmdsZSBEaWN0aW9uYXJ5IG9iamVjdC5cbiAgICAgKi9cbiAgICBwcml2YXRlIG1lcmdlVHJhbnNsYXRpb25zKHRyYW5zbGF0aW9uczogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PltdKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PiB7XG4gICAgICAgIHJldHVybiBjb25jYXQoLi4udHJhbnNsYXRpb25zKS5waXBlKFxuICAgICAgICAgICAgcmVkdWNlKChhY2M6IERpY3Rpb25hcnksIHZhbHVlOiBEaWN0aW9uYXJ5KSA9PiB7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBwcm9wIGluIHZhbHVlKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICh2YWx1ZS5oYXNPd25Qcm9wZXJ0eShwcm9wKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgYWNjW3Byb3BdID0gdmFsdWVbcHJvcF07XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgICAgICAgIH0sIHt9KSxcbiAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBBcHBsaWVzIGBvdmVycmlkZXNgIHRvIGB0cmFuc2xhdGlvbnNgIGFuZCByZXR1cm5zIGB0cmFuc2xhdGlvbnNgLlxuICAgICAqXG4gICAgICogRXhhbXBsZTpcbiAgICAgKiAgdHJhbnNsYXRpb25zID0geyBmb286IHsgYmFyOiAnYmFyJyB9IH1cbiAgICAgKiAgb3ZlcnJpZGVzID0geyAnZm9vLmJhcic6ICdiYXonIH1cbiAgICAgKiByZXN1bHRzIGluXG4gICAgICogIHRyYW5zbGF0aW9ucyA9IHsgZm9vOiB7YmFyOiAnYmF6JyB9IH1cbiAgICAgKlxuICAgICAqIEBwYXJhbSB0cmFuc2xhdGlvbnMgTmVzdGVkIHRyYW5zbGF0aW9ucyBvYmplY3QuXG4gICAgICogQHBhcmFtIG92ZXJyaWRlcyBGbGF0IG9iamVjdCB3aXRoIGRvdHMgKC4pIGluIGtleXMgaW50ZXJwcmV0ZWQgYXNcbiAgICAgKiBzZXBhcmF0b3JzLlxuICAgICAqL1xuICAgIHByaXZhdGUgYXBwbHlPdmVycmlkZXMoXG4gICAgICAgIHRyYW5zbGF0aW9uczogRGljdGlvbmFyeSxcbiAgICAgICAgb3ZlcnJpZGVzOiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9LFxuICAgICk6IERpY3Rpb25hcnkge1xuICAgICAgICBpZiAob3ZlcnJpZGVzKSB7XG4gICAgICAgICAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllczxzdHJpbmc+KG92ZXJyaWRlcykpIHtcbiAgICAgICAgICAgICAgICBsZXQgcmVmID0gdHJhbnNsYXRpb25zO1xuICAgICAgICAgICAgICAgIGNvbnN0IHBhdGggPSBrZXkuc3BsaXQoJy4nKTtcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoTGFzdCA9IHBhdGgucG9wKCk7XG4gICAgICAgICAgICAgICAgZm9yIChjb25zdCBpdGVtIG9mIHBhdGgpIHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCFyZWZbaXRlbV0pIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJlZltpdGVtXSA9IHt9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGNvbnN0IHJlZkl0ZW0gPSByZWZbaXRlbV07XG4gICAgICAgICAgICAgICAgICAgIGlmICh0eXBlb2YgcmVmSXRlbSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVHJ5aW5nIHRvIG92ZXJyaWRlIGxlYXZlIHdpdGggc3ViIHRyZWU6ICcgKyBwYXRoKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICByZWYgPSByZWZJdGVtO1xuICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICByZWZbcGF0aExhc3RdID0gdmFsdWU7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0aW9ucztcbiAgICB9XG5cbiAgICBwcml2YXRlIHJlcGxhY2VHZW5kZXJDaGFyYWN0ZXIodHJhbnNsYXRpb25zOiBEaWN0aW9uYXJ5LCBwYXRoOiBzdHJpbmdbXSA9IFtdKSB7XG4gICAgICAgIGZvciAobGV0IGtleSBvZiBPYmplY3Qua2V5cyh0cmFuc2xhdGlvbnMpKSB7XG4gICAgICAgICAgICBpZiAodHlwZW9mIHRyYW5zbGF0aW9uc1trZXldID09PSAnc3RyaW5nJykge1xuICAgICAgICAgICAgICAgIC8vIERPIE5PVCBSRU1PVkUgKHJlcXVpcmVkIGZvciBjc3YgbGFuZ3VhZ2UgZHVtcGluZylcbiAgICAgICAgICAgICAgICAvKmNvbnNvbGUubG9nKENzdkhlbHBlci5mcm9tQXJyYXkobnVsbCwgW1tcbiAgICAgICAgICAgICAgICAgICAgICAgIHBhdGguY29uY2F0KGtleSkuam9pbignLicpLCB0cmFuc2xhdGlvbnNba2V5XVxuICAgICAgICAgICAgICAgIF1dKSk7Ki9cbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNba2V5XSA9ICh0cmFuc2xhdGlvbnNba2V5XSBhcyBzdHJpbmcpLnJlcGxhY2UoXG4gICAgICAgICAgICAgICAgICAgIC97e0dFTkRFUl9TRVBBUkFUT1J9fS9nLFxuICAgICAgICAgICAgICAgICAgICAnKicsXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zW2tleV0gPSB0aGlzLnJlcGxhY2VHZW5kZXJDaGFyYWN0ZXIoXG4gICAgICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1trZXldIGFzIERpY3Rpb25hcnksXG4gICAgICAgICAgICAgICAgICAgIHBhdGguY29uY2F0KGtleSksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuXG4gICAgICAgIHJldHVybiB0cmFuc2xhdGlvbnM7XG4gICAgfVxufVxuIl19
173
+ };
174
+ __decorate([
175
+ __param(3, Optional()),
176
+ __param(3, Inject(ASSETS_BASE_PATH))
177
+ ], TranslationLoader, "create", null);
178
+ TranslationLoader = __decorate([
179
+ __param(0, Optional()),
180
+ __param(0, Inject(ASSETS_BASE_PATH))
181
+ ], TranslationLoader);
182
+ export { TranslationLoader };
183
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb24tbG9hZGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZWR1LXNoYXJpbmctdWkvc3JjL2xpYi90cmFuc2xhdGlvbnMvdHJhbnNsYXRpb24tbG9hZGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7OztBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBaUIsU0FBUyxFQUFvQixNQUFNLHFCQUFxQixDQUFDO0FBQ2pGLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFDO0FBQzdCLE9BQU8sRUFBRSxNQUFNLEVBQWMsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzlDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxFQUFFLFNBQVMsRUFBTyxNQUFNLGdCQUFnQixDQUFDO0FBRXhGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBQzdELE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE1BQU0sQ0FBQyxNQUFNLGdCQUFnQixHQUFHO0lBQzVCLFFBQVE7SUFDUixPQUFPO0lBQ1AsU0FBUztJQUNULFdBQVc7SUFDWCxRQUFRO0lBQ1IsYUFBYTtJQUNiLE9BQU87SUFDUCxhQUFhO0lBQ2IsS0FBSztJQUNMLFVBQVU7SUFDVixVQUFVO0lBQ1YsVUFBVTtJQUNWLFVBQVU7SUFDVixRQUFRO0lBQ1IsVUFBVTtDQUNiLENBQUM7QUFJSyxJQUFNLGlCQUFpQixHQUF2QixNQUFNLGlCQUFpQjtJQUNuQixBQUFQLE1BQU0sQ0FBQyxNQUFNLENBQ1QsSUFBZ0IsRUFDaEIsYUFBNEIsRUFDNUIsYUFBd0MsRUFDRixjQUF1QjtRQUU3RCxPQUFPLElBQUksaUJBQWlCLENBQUMsY0FBYyxFQUFFLElBQUksRUFB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QUssQ0FBQzthQUN6QjtTQUNKO1FBQ0QsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztJQUVPLHNCQUFzQixDQUFDLFlBQXdCLEVBQUUsT0FBaUIsRUFBRTtRQUN4RSxLQUFLLElBQUksR0FBRyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEVBQUU7WUFDdkMsSUFBSSxPQUFPLFlBQVksQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLEVBQUU7Z0JBQ3ZDLG9EQUFvRDtnQkFDcEQ7O3VCQUVPO2dCQUNQLFlBQVksQ0FBQyxHQUFHLENBQUMsR0FBSSxZQUFZLENBQUMsR0FBRyxDQUFZLENBQUMsT0FBTyxDQUNyRCx1QkFBdUIsRUFDdkIsR0FBRyxDQUNOLENBQUM7YUFDTDtpQkFBTTtnQkFDSCxZQUFZLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLHNCQUFzQixDQUMzQyxZQUFZLENBQUMsR0FBRyxDQUFlLEVBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQ25CLENBQUM7YUFDTDtTQUNKO1FBRUQsT0FBTyxZQUFZLENBQUM7SUFDeEIsQ0FBQztDQUNKLENBQUE7QUFyTFU7SUFJRixXQUFBLFFBQVEsRUFBRSxDQUFBO0lBQUUsV0FBQSxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtxQ0FHeEM7QUFSUSxpQkFBaUI7SUFXckIsV0FBQSxRQUFRLEVBQUUsQ0FBQTtJQUFFLFdBQUEsTUFBTSxDQUFDLGdCQUFnQixDQUFDLENBQUE7R0FYaEMsaUJBQWlCLENBc0w3QjtTQXRMWSxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlTG9hZGVyIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBDb25maWdTZXJ2aWNlLCBMQU5HVUFHRVMsIFRyYW5zbGF0aW9uc0RpY3QgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCAqIGFzIHJ4anMgZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjb25jYXQsIE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaWx0ZXIsIGZpcnN0LCBtYXAsIHJlZHVjZSwgc3dpdGNoTWFwLCB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZWR1LXNoYXJpbmctdWktY29uZmlndXJhdGlvbic7XG5pbXBvcnQgeyBBU1NFVFNfQkFTRV9QQVRIIH0gZnJvbSAnLi4vdHlwZXMvaW5qZWN0aW9uLXRva2Vucyc7XG5pbXBvcnQgeyBUcmFuc2xhdGlvblNvdXJjZSB9IGZyb20gJy4vdHJhbnNsYXRpb24tc291cmNlJztcblxuZXhwb3J0IGNvbnN0IFRSQU5TTEFUSU9OX0xJU1QgPSBbXG4gICAgJ2NvbW1vbicsXG4gICAgJ2FkbWluJyxcbiAgICAncmVjeWNsZScsXG4gICAgJ3dvcmtzcGFjZScsXG4gICAgJ3NlYXJjaCcsXG4gICAgJ2NvbGxlY3Rpb25zJyxcbiAgICAnbG9naW4nLFxuICAgICdwZXJtaXNzaW9ucycsXG4gICAgJ29lcicsXG4gICAgJ21lc3NhZ2VzJyxcbiAgICAncmVnaXN0ZXInLFxuICAgICdwcm9maWxlcycsXG4gICAgJ3NlcnZpY2VzJyxcbiAgICAnc3RyZWFtJyxcbiAgICAnb3ZlcnJpZGUnLFxuXTtcblxudHlwZSBEaWN0aW9uYXJ5ID0geyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfCBEaWN0aW9uYXJ5IH07XG5cbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbkxvYWRlciBpbXBsZW1lbnRzIFRyYW5zbGF0ZUxvYWRlciB7XG4gICAgc3RhdGljIGNyZWF0ZShcbiAgICAgICAgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgY29uZmlnU2VydmljZTogQ29uZmlnU2VydmljZSxcbiAgICAgICAgY29uZmlndXJhdGlvbjogRWR1U2hhcmluZ1VpQ29uZmlndXJhdGlvbixcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBU1NFVFNfQkFTRV9QQVRIKSBhc3NldHNCYXNlUGF0aD86IHN0cmluZyxcbiAgICApIHtcbiAgICAgICAgcmV0dXJuIG5ldyBUcmFuc2xhdGlvbkxvYWRlcihhc3NldHNCYXNlUGF0aCwgaHR0cCwgY29uZmlnU2VydmljZSwgY29uZmlndXJhdGlvbik7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihcbiAgICAgICAgQE9wdGlvbmFsKCkgQEluamVjdChBU1NFVFNfQkFTRV9QQVRIKSBwcml2YXRlIGFzc2V0c0Jhc2VQYXRoOiBzdHJpbmcsXG4gICAgICAgIHByaXZhdGUgaHR0cDogSHR0cENsaWVudCxcbiAgICAgICAgcHJpdmF0ZSBjb25maWdTZXJ2aWNlOiBDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGNvbmZpZ3VyYXRpb246IEVkdVNoYXJpbmdVaUNvbmZpZ3VyYXRpb24sXG4gICAgICAgIHByaXZhdGUgcHJlZml4OiBzdHJpbmcgPSAoYXNzZXRzQmFzZVBhdGggPz8gJycpICsgJ2Fzc2V0cy9pMThuJyxcbiAgICAgICAgcHJpdmF0ZSBzdWZmaXg6IHN0cmluZyA9ICcuanNvbicsXG4gICAgKSB7fVxuXG4gICAgLy8gSWYgeW91IG5lZWQgdG8gY29uZmlndXJlIHRoaXMsIGRlZmluZSBhbiBpbmplY3RhYmxlIGNvbmZpZ3VyYXRpb24gb2JqZWN0LiBTZWVcbiAgICAvLyBodHRwczovL2FuZ3VsYXIuaW8vZ3VpZGUvZGVwZW5kZW5jeS1pbmplY3Rpb24tcHJvdmlkZXJzI2luamVjdGluZy1hLWNvbmZpZ3VyYXRpb24tb2JqZWN0LlxuICAgIHByaXZhdGUgcmVhZG9ubHkgc291cmNlOiBUcmFuc2xhdGlvblNvdXJjZSA9IFRyYW5zbGF0aW9uU291cmNlLkF1dG87XG5cbiAgICAvKipcbiAgICAgKiBHZXRzIHRoZSB0cmFuc2xhdGlvbnMgZnJvbSB0aGUgc2VydmVyXG4gICAgICovXG4gICAgZ2V0VHJhbnNsYXRpb24obGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PiB7XG4gICAgICAgIGlmIChsYW5nID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgIHJldHVybiBvZih7fSk7XG4gICAgICAgIH1cbiAgICAgICAgLy8gYmFja2VuZCBjYW4gbm90IGhhbmRsZSBzdWItbGFuZ3VhZ2VzXG4gICAgICAgIGNvbnN0IGxhbmdCYWNrZW5kID0gbGFuZy5zdGFydHNXaXRoKCdkZS0nKSA/ICdkZScgOiBsYW5nO1xuICAgICAgICBpZiAoIUxBTkdVQUdFU1tsYW5nQmFja2VuZF0pIHtcbiAgICAgICAgICAgIGNvbnNvbGUuZXJyb3IoJ3Vua25vd24gbG9jYWxlIGZvciBsYW5ndWFnZSAnICsgbGFuZyArICcgLyAnICsgbGFuZ0JhY2tlbmQpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMuY29uZmlnU2VydmljZS5zZXRMb2NhbGUoTEFOR1VBR0VTW2xhbmdCYWNrZW5kXSwgbGFuZyk7XG4gICAgICAgIHJldHVybiByeGpzXG4gICAgICAgICAgICAuZm9ya0pvaW4oe1xuICAgICAgICAgICAgICAgIG9yaWdpbmFsVHJhbnNsYXRpb25zOiB0aGlzLmdldE9yaWdpbmFsVHJhbnNsYXRpb25zKGxhbmcpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIC8vIERlZmF1bHQgdG8gZW1wdHkgZGljdGlvbmFyeSBpZiB3ZSBnb3Qgbm90aGluZ1xuICAgICAgICAgICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4gdHJhbnNsYXRpb25zIHx8IHt9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uT3ZlcnJpZGVzOiB0aGlzLmNvbmZpZ1NlcnZpY2VcbiAgICAgICAgICAgICAgICAgICAgLm9ic2VydmVUcmFuc2xhdGlvbk92ZXJyaWRlcygpXG4gICAgICAgICAgICAgICAgICAgIC5waXBlKGZpcnN0KCkpLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIG1hcCgoeyBvcmlnaW5hbFRyYW5zbGF0aW9ucywgdHJhbnNsYXRpb25PdmVycmlkZXMgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICAvLyBGSVhNRTogVGhpcyB3aWxsIGFsdGVyIHRoZSBvYmplY3QgcmV0dXJuZWQgYnkgYGdldE9yaWdpbmFsVHJhbnNsYXRpb25zYC5cbiAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuYXBwbHlPdmVycmlkZXMob3JpZ2luYWxUcmFuc2xhdGlvbnMsIHRyYW5zbGF0aW9uT3ZlcnJpZGVzKTtcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4gdGhpcy5yZXBsYWNlR2VuZGVyQ2hhcmFjdGVyKHRyYW5zbGF0aW9ucykpLFxuICAgICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yLCBvYnMpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgY29uc29sZS5lcnJvcihlcnJvcik7XG4gICAgICAgICAgICAgICAgICAgIHJldHVybiBvZihlcnJvcik7XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICApO1xuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0T3JpZ2luYWxUcmFuc2xhdGlvbnMobGFuZzogc3RyaW5nKTogT2JzZXJ2YWJsZTxEaWN0aW9uYXJ5PiB7XG4gICAgICAgIHN3aXRjaCAodGhpcy5nZXRTb3VyY2UoKSkge1xuICAgICAgICAgICAgY2FzZSAncmVwb3NpdG9yeSc6XG4gICAgICAgICAgICAgICAgcmV0dXJuIHRoaXMuY29uZmlnU2VydmljZS5vYnNlcnZlRGVmYXVsdFRyYW5zbGF0aW9ucygpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgIGZpbHRlcigoYXJnKSA9PiAhYXJnPy5sb2NhbGUgfHwgYXJnLmxhbmd1YWdlID09PSBsYW5nKSxcbiAgICAgICAgICAgICAgICAgICAgc3dpdGNoTWFwKChhcmcpID0+IGFyZz8uZGljdD8ucGlwZShmaXJzdCgpKSB8fCBvZihudWxsKSksXG4gICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIGNhc2UgJ2xvY2FsJzpcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5tZXJnZVRyYW5zbGF0aW9ucyh0aGlzLmZldGNoVHJhbnNsYXRpb25zKGxhbmcpKTtcbiAgICAgICAgfVxuICAgIH1cblxuICAgIHByaXZhdGUgZ2V0U291cmNlKCk6ICdyZXBvc2l0b3J5JyB8ICdsb2NhbCcge1xuICAgICAgICBpZiAoXG4gICAgICAgICAgICAodGhpcy5jb25maWd1cmF0aW9uLnByb2R1Y3Rpb24gJiYgdGhpcy5zb3VyY2UgPT09IFRyYW5zbGF0aW9uU291cmNlLkF1dG8pIHx8XG4gICAgICAgICAgICB0aGlzLnNvdXJjZSA9PT0gVHJhbnNsYXRpb25Tb3VyY2UuUmVwb3NpdG9yeVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiAncmVwb3NpdG9yeSc7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICByZXR1cm4gJ2xvY2FsJztcbiAgICAgICAgfVxuICAgIH1cblxuICAgIC8qKlxuICAgICAqIFJldHVybnMgYW4gYXJyYXkgb2YgT2JzZXJ2YWJsZXMgdGhhdCB3aWxsIGVhY2ggZmV0Y2ggYSB0cmFuc2xhdGlvbnMganNvblxuICAgICAqIGZpbGUuXG4gICAgICovXG4gICAgcHJpdmF0ZSBmZXRjaFRyYW5zbGF0aW9ucyhsYW5nOiBzdHJpbmcpOiBPYnNlcnZhYmxlPERpY3Rpb25hcnk+W10ge1xuICAgICAgICByZXR1cm4gVFJBTlNMQVRJT05fTElTVC5tYXAoXG4gICAgICAgICAgICAodHJhbnNsYXRpb24pID0+IGAke3RoaXMucHJlZml4fS8ke3RyYW5zbGF0aW9ufS8ke2xhbmd9JHt0aGlzLnN1ZmZpeH1gLFxuICAgICAgICApXG4gICAgICAgICAgICAubWFwKCh1cmwpID0+IHRoaXMuaHR0cC5nZXQodXJsKSBhcyBPYnNlcnZhYmxlPERpY3Rpb25hcnk+KVxuICAgICAgICAgICAgLm1hcCgob2JzKSA9PlxuICAgICAgICAgICAgICAgIG9icy5waXBlKFxuICAgICAgICAgICAgICAgICAgICBjYXRjaEVycm9yKChlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgJ21pc3NpbmcgdHJhbnNsYXRpb24gZmlsZSBmb3IgbGFuZ3VhZ2UgJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxhbmcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAnLCB0cmFuc2xhdGlvbnMgd2lsbCBiZSBtaXNzaW5nIC8gZmFsbGluZyBiYWNrIHRvIHRoZSBkZWZhdWx0IGxhbmd1YWdlJyxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2Yoe30pO1xuICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgKTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBUYWtlcyBhbiBhcnJheSBhcyByZXR1cm5lZCBieSBgZmV0Y2hUcmFuc2xhdGlvbnNgIGFuZCBjb252ZXJ0cyBpdCB0byBhblxuICAgICAqIE9ic2VydmFibGUgdGhhdCB5aWVsZHMgYSBzaW5nbGUgRGljdGlvbmFyeSBvYmplY3QuXG4gICAgICovXG4gICAgcHJpdmF0ZSBtZXJnZVRyYW5zbGF0aW9ucyh0cmFuc2xhdGlvbnM6IE9ic2VydmFibGU8RGljdGlvbmFyeT5bXSk6IE9ic2VydmFibGU8RGljdGlvbmFyeT4ge1xuICAgICAgICByZXR1cm4gY29uY2F0KC4uLnRyYW5zbGF0aW9ucykucGlwZShcbiAgICAgICAgICAgIHJlZHVjZSgoYWNjOiBEaWN0aW9uYXJ5LCB2YWx1ZTogRGljdGlvbmFyeSkgPT4ge1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgcHJvcCBpbiB2YWx1ZSkge1xuICAgICAgICAgICAgICAgICAgICBpZiAodmFsdWUuaGFzT3duUHJvcGVydHkocHJvcCkpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIGFjY1twcm9wXSA9IHZhbHVlW3Byb3BdO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIHJldHVybiBhY2M7XG4gICAgICAgICAgICB9LCB7fSksXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogQXBwbGllcyBgb3ZlcnJpZGVzYCB0byBgdHJhbnNsYXRpb25zYCBhbmQgcmV0dXJucyBgdHJhbnNsYXRpb25zYC5cbiAgICAgKlxuICAgICAqIEV4YW1wbGU6XG4gICAgICogIHRyYW5zbGF0aW9ucyA9IHsgZm9vOiB7IGJhcjogJ2JhcicgfSB9XG4gICAgICogIG92ZXJyaWRlcyA9IHsgJ2Zvby5iYXInOiAnYmF6JyB9XG4gICAgICogcmVzdWx0cyBpblxuICAgICAqICB0cmFuc2xhdGlvbnMgPSB7IGZvbzoge2JhcjogJ2JheicgfSB9XG4gICAgICpcbiAgICAgKiBAcGFyYW0gdHJhbnNsYXRpb25zIE5lc3RlZCB0cmFuc2xhdGlvbnMgb2JqZWN0LlxuICAgICAqIEBwYXJhbSBvdmVycmlkZXMgRmxhdCBvYmplY3Qgd2l0aCBkb3RzICguKSBpbiBrZXlzIGludGVycHJldGVkIGFzXG4gICAgICogc2VwYXJhdG9ycy5cbiAgICAgKi9cbiAgICBwcml2YXRlIGFwcGx5T3ZlcnJpZGVzKFxuICAgICAgICB0cmFuc2xhdGlvbnM6IERpY3Rpb25hcnksXG4gICAgICAgIG92ZXJyaWRlczogeyBba2V5OiBzdHJpbmddOiBzdHJpbmcgfSxcbiAgICApOiBEaWN0aW9uYXJ5IHtcbiAgICAgICAgaWYgKG92ZXJyaWRlcykge1xuICAgICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXM8c3RyaW5nPihvdmVycmlkZXMpKSB7XG4gICAgICAgICAgICAgICAgbGV0IHJlZiA9IHRyYW5zbGF0aW9ucztcbiAgICAgICAgICAgICAgICBjb25zdCBwYXRoID0ga2V5LnNwbGl0KCcuJyk7XG4gICAgICAgICAgICAgICAgY29uc3QgcGF0aExhc3QgPSBwYXRoLnBvcCgpO1xuICAgICAgICAgICAgICAgIGZvciAoY29uc3QgaXRlbSBvZiBwYXRoKSB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghcmVmW2l0ZW1dKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZWZbaXRlbV0gPSB7fTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICBjb25zdCByZWZJdGVtID0gcmVmW2l0ZW1dO1xuICAgICAgICAgICAgICAgICAgICBpZiAodHlwZW9mIHJlZkl0ZW0gPT09ICdzdHJpbmcnKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1RyeWluZyB0byBvdmVycmlkZSBsZWF2ZSB3aXRoIHN1YiB0cmVlOiAnICsgcGF0aCk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgcmVmID0gcmVmSXRlbTtcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgcmVmW3BhdGhMYXN0XSA9IHZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0cmFuc2xhdGlvbnM7XG4gICAgfVxuXG4gICAgcHJpdmF0ZSByZXBsYWNlR2VuZGVyQ2hhcmFjdGVyKHRyYW5zbGF0aW9uczogRGljdGlvbmFyeSwgcGF0aDogc3RyaW5nW10gPSBbXSkge1xuICAgICAgICBmb3IgKGxldCBrZXkgb2YgT2JqZWN0LmtleXModHJhbnNsYXRpb25zKSkge1xuICAgICAgICAgICAgaWYgKHR5cGVvZiB0cmFuc2xhdGlvbnNba2V5XSA9PT0gJ3N0cmluZycpIHtcbiAgICAgICAgICAgICAgICAvLyBETyBOT1QgUkVNT1ZFIChyZXF1aXJlZCBmb3IgY3N2IGxhbmd1YWdlIGR1bXBpbmcpXG4gICAgICAgICAgICAgICAgLypjb25zb2xlLmxvZyhDc3ZIZWxwZXIuZnJvbUFycmF5KG51bGwsIFtbXG4gICAgICAgICAgICAgICAgICAgICAgICBwYXRoLmNvbmNhdChrZXkpLmpvaW4oJy4nKSwgdHJhbnNsYXRpb25zW2tleV1cbiAgICAgICAgICAgICAgICBdXSkpOyovXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25zW2tleV0gPSAodHJhbnNsYXRpb25zW2tleV0gYXMgc3RyaW5nKS5yZXBsYWNlKFxuICAgICAgICAgICAgICAgICAgICAve3tHRU5ERVJfU0VQQVJBVE9SfX0vZyxcbiAgICAgICAgICAgICAgICAgICAgJyonLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHRyYW5zbGF0aW9uc1trZXldID0gdGhpcy5yZXBsYWNlR2VuZGVyQ2hhcmFjdGVyKFxuICAgICAgICAgICAgICAgICAgICB0cmFuc2xhdGlvbnNba2V5XSBhcyBEaWN0aW9uYXJ5LFxuICAgICAgICAgICAgICAgICAgICBwYXRoLmNvbmNhdChrZXkpLFxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdHJhbnNsYXRpb25zO1xuICAgIH1cbn1cbiJdfQ==
@@ -2,9 +2,10 @@ import { HttpClient } from '@angular/common/http';
2
2
  import { NgModule, Optional, SkipSelf } from '@angular/core';
3
3
  import { MissingTranslationHandler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
4
4
  import { ConfigService } from 'ngx-edu-sharing-api';
5
+ import { EduSharingUiConfiguration } from '../edu-sharing-ui-configuration';
6
+ import { ASSETS_BASE_PATH } from '../types/injection-tokens';
5
7
  import { FallbackTranslationHandler } from './fallback-translation-handler';
6
8
  import { TranslationLoader } from './translation-loader';
7
- import { EduSharingUiConfiguration } from '../edu-sharing-ui-configuration';
8
9
  import * as i0 from "@angular/core";
9
10
  import * as i1 from "@ngx-translate/core";
10
11
  /**
@@ -33,7 +34,12 @@ export class TranslationsModule {
33
34
  loader: {
34
35
  provide: TranslateLoader,
35
36
  useFactory: TranslationLoader.create,
36
- deps: [HttpClient, ConfigService, EduSharingUiConfiguration],
37
+ deps: [
38
+ HttpClient,
39
+ ConfigService,
40
+ EduSharingUiConfiguration,
41
+ [new Optional(), ASSETS_BASE_PATH],
42
+ ],
37
43
  },
38
44
  missingTranslationHandler: {
39
45
  provide: MissingTranslationHandler,
@@ -50,7 +56,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
50
56
  loader: {
51
57
  provide: TranslateLoader,
52
58
  useFactory: TranslationLoader.create,
53
- deps: [HttpClient, ConfigService, EduSharingUiConfiguration],
59
+ deps: [
60
+ HttpClient,
61
+ ConfigService,
62
+ EduSharingUiConfiguration,
63
+ [new Optional(), ASSETS_BASE_PATH],
64
+ ],
54
65
  },
55
66
  missingTranslationHandler: {
56
67
  provide: MissingTranslationHandler,
@@ -64,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImpor
64
75
  }, {
65
76
  type: SkipSelf
66
77
  }] }]; } });
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvdHJhbnNsYXRpb25zL3RyYW5zbGF0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDekQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7OztBQUU1RTs7OztHQUlHO0FBaUJILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsTUFBTSxDQUFDLE9BQU87UUFDVixPQUFPO1lBQ0gsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUUsRUFBRTtTQUNoQixDQUFDO0lBQ04sQ0FBQztJQUVELFlBQW9DLFlBQWlDO1FBQ2pFLElBQUksWUFBWSxFQUFFO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FDUix1RUFBdUUsRUFDdkUsWUFBWSxDQUNmLENBQUM7WUFDRjs7Z0JBRUk7U0FDUDtJQUNMLENBQUM7OEdBbEJRLGtCQUFrQjsrR0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFidkIsZUFBZSxDQUFDLE9BQU8sQ0FBQztnQkFDcEIsTUFBTSxFQUFFO29CQUNKLE9BQU8sRUFBRSxlQUFlO29CQUN4QixVQUFVLEVBQUUsaUJBQWlCLENBQUMsTUFBTTtvQkFDcEMsSUFBSSxFQUFFLENBQUMsVUFBVSxFQUFFLGFBQWEsRUFBRSx5QkFBeUIsQ0FBQztpQkFDL0Q7Z0JBQ0QseUJBQXlCLEVBQUU7b0JBQ3ZCLE9BQU8sRUFBRSx5QkFBeUI7b0JBQ2xDLFFBQVEsRUFBRSwwQkFBMEI7aUJBQ3ZDO2FBQ0osQ0FBQzs7MkZBR0csa0JBQWtCO2tCQWhCOUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUUsRUFBRTtvQkFDaEIsT0FBTyxFQUFFO3dCQUNMLGVBQWUsQ0FBQyxPQUFPLENBQUM7NEJBQ3BCLE1BQU0sRUFBRTtnQ0FDSixPQUFPLEVBQUUsZUFBZTtnQ0FDeEIsVUFBVSxFQUFFLGlCQUFpQixDQUFDLE1BQU07Z0NBQ3BDLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUseUJBQXlCLENBQUM7NkJBQy9EOzRCQUNELHlCQUF5QixFQUFFO2dDQUN2QixPQUFPLEVBQUUseUJBQXlCO2dDQUNsQyxRQUFRLEVBQUUsMEJBQTBCOzZCQUN2Qzt5QkFDSixDQUFDO3FCQUNMO2lCQUNKOzswQkFTZ0IsUUFBUTs7MEJBQUksUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgT3B0aW9uYWwsIFNraXBTZWxmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyLCBUcmFuc2xhdGVMb2FkZXIsIFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSB9IGZyb20gJ25neC1lZHUtc2hhcmluZy1hcGknO1xuaW1wb3J0IHsgRmFsbGJhY2tUcmFuc2xhdGlvbkhhbmRsZXIgfSBmcm9tICcuL2ZhbGxiYWNrLXRyYW5zbGF0aW9uLWhhbmRsZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRpb25Mb2FkZXIgfSBmcm9tICcuL3RyYW5zbGF0aW9uLWxvYWRlcic7XG5pbXBvcnQgeyBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uIH0gZnJvbSAnLi4vZWR1LXNoYXJpbmctdWktY29uZmlndXJhdGlvbic7XG5cbi8qKlxuICogSW1wb3J0IHRoaXMgbW9kdWxlIG9uY2UgaW4gdGhlIGFwcCBtb2R1bGUgdG8gcHJvdmlkZSB0aGUgYFRyYW5zbGF0ZVNlcnZpY2VgLlxuICpcbiAqIEV4cG9ydCBgVHJhbnNsYXRlTW9kdWxlYCBpbiB0aGUgc2hhcmVkIG1vZHVsZSB0byBwcm92aWRlIGRpcmVjdGl2ZXMgYW5kIHBpcGVzLlxuICovXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW10sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XG4gICAgICAgICAgICBsb2FkZXI6IHtcbiAgICAgICAgICAgICAgICBwcm92aWRlOiBUcmFuc2xhdGVMb2FkZXIsXG4gICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogVHJhbnNsYXRpb25Mb2FkZXIuY3JlYXRlLFxuICAgICAgICAgICAgICAgIGRlcHM6IFtIdHRwQ2xpZW50LCBDb25maWdTZXJ2aWNlLCBFZHVTaGFyaW5nVWlDb25maWd1cmF0aW9uXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyOiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRmFsbGJhY2tUcmFuc2xhdGlvbkhhbmRsZXIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNNb2R1bGUge1xuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VHJhbnNsYXRpb25zTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogVHJhbnNsYXRpb25zTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU/OiBUcmFuc2xhdGlvbnNNb2R1bGUpIHtcbiAgICAgICAgaWYgKHBhcmVudE1vZHVsZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdUcmFuc2xhdGlvbnNNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknLFxuICAgICAgICAgICAgICAgIHBhcmVudE1vZHVsZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKnRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnVHJhbnNsYXRpb25zTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5JyxcbiAgICAgICAgICAgICk7Ki9cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvdHJhbnNsYXRpb25zL3RyYW5zbGF0aW9ucy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ2xELE9BQU8sRUFBdUIsUUFBUSxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEYsT0FBTyxFQUFFLHlCQUF5QixFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUNsRyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFFLHlCQUF5QixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLDBCQUEwQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDNUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQUV6RDs7OztHQUlHO0FBc0JILE1BQU0sT0FBTyxrQkFBa0I7SUFDM0IsTUFBTSxDQUFDLE9BQU87UUFDVixPQUFPO1lBQ0gsUUFBUSxFQUFFLGtCQUFrQjtZQUM1QixTQUFTLEVBQUUsRUFBRTtTQUNoQixDQUFDO0lBQ04sQ0FBQztJQUVELFlBQW9DLFlBQWlDO1FBQ2pFLElBQUksWUFBWSxFQUFFO1lBQ2QsT0FBTyxDQUFDLElBQUksQ0FDUix1RUFBdUUsRUFDdkUsWUFBWSxDQUNmLENBQUM7WUFDRjs7Z0JBRUk7U0FDUDtJQUNMLENBQUM7OEdBbEJRLGtCQUFrQjsrR0FBbEIsa0JBQWtCOytHQUFsQixrQkFBa0IsWUFsQnZCLGVBQWUsQ0FBQyxPQUFPLENBQUM7Z0JBQ3BCLE1BQU0sRUFBRTtvQkFDSixPQUFPLEVBQUUsZUFBZTtvQkFDeEIsVUFBVSxFQUFFLGlCQUFpQixDQUFDLE1BQU07b0JBQ3BDLElBQUksRUFBRTt3QkFDRixVQUFVO3dCQUNWLGFBQWE7d0JBQ2IseUJBQXlCO3dCQUN6QixDQUFDLElBQUksUUFBUSxFQUFFLEVBQUUsZ0JBQWdCLENBQUM7cUJBQ3JDO2lCQUNKO2dCQUNELHlCQUF5QixFQUFFO29CQUN2QixPQUFPLEVBQUUseUJBQXlCO29CQUNsQyxRQUFRLEVBQUUsMEJBQTBCO2lCQUN2QzthQUNKLENBQUM7OzJGQUdHLGtCQUFrQjtrQkFyQjlCLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFLEVBQUU7b0JBQ2hCLE9BQU8sRUFBRTt3QkFDTCxlQUFlLENBQUMsT0FBTyxDQUFDOzRCQUNwQixNQUFNLEVBQUU7Z0NBQ0osT0FBTyxFQUFFLGVBQWU7Z0NBQ3hCLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQyxNQUFNO2dDQUNwQyxJQUFJLEVBQUU7b0NBQ0YsVUFBVTtvQ0FDVixhQUFhO29DQUNiLHlCQUF5QjtvQ0FDekIsQ0FBQyxJQUFJLFFBQVEsRUFBRSxFQUFFLGdCQUFnQixDQUFDO2lDQUNyQzs2QkFDSjs0QkFDRCx5QkFBeUIsRUFBRTtnQ0FDdkIsT0FBTyxFQUFFLHlCQUF5QjtnQ0FDbEMsUUFBUSxFQUFFLDBCQUEwQjs2QkFDdkM7eUJBQ0osQ0FBQztxQkFDTDtpQkFDSjs7MEJBU2dCLFFBQVE7OzBCQUFJLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgTW9kdWxlV2l0aFByb3ZpZGVycywgTmdNb2R1bGUsIE9wdGlvbmFsLCBTa2lwU2VsZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlciwgVHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IENvbmZpZ1NlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IEVkdVNoYXJpbmdVaUNvbmZpZ3VyYXRpb24gfSBmcm9tICcuLi9lZHUtc2hhcmluZy11aS1jb25maWd1cmF0aW9uJztcbmltcG9ydCB7IEFTU0VUU19CQVNFX1BBVEggfSBmcm9tICcuLi90eXBlcy9pbmplY3Rpb24tdG9rZW5zJztcbmltcG9ydCB7IEZhbGxiYWNrVHJhbnNsYXRpb25IYW5kbGVyIH0gZnJvbSAnLi9mYWxsYmFjay10cmFuc2xhdGlvbi1oYW5kbGVyJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uTG9hZGVyIH0gZnJvbSAnLi90cmFuc2xhdGlvbi1sb2FkZXInO1xuXG4vKipcbiAqIEltcG9ydCB0aGlzIG1vZHVsZSBvbmNlIGluIHRoZSBhcHAgbW9kdWxlIHRvIHByb3ZpZGUgdGhlIGBUcmFuc2xhdGVTZXJ2aWNlYC5cbiAqXG4gKiBFeHBvcnQgYFRyYW5zbGF0ZU1vZHVsZWAgaW4gdGhlIHNoYXJlZCBtb2R1bGUgdG8gcHJvdmlkZSBkaXJlY3RpdmVzIGFuZCBwaXBlcy5cbiAqL1xuQE5nTW9kdWxlKHtcbiAgICBkZWNsYXJhdGlvbnM6IFtdLFxuICAgIGltcG9ydHM6IFtcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xuICAgICAgICAgICAgbG9hZGVyOiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxuICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IFRyYW5zbGF0aW9uTG9hZGVyLmNyZWF0ZSxcbiAgICAgICAgICAgICAgICBkZXBzOiBbXG4gICAgICAgICAgICAgICAgICAgIEh0dHBDbGllbnQsXG4gICAgICAgICAgICAgICAgICAgIENvbmZpZ1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgIEVkdVNoYXJpbmdVaUNvbmZpZ3VyYXRpb24sXG4gICAgICAgICAgICAgICAgICAgIFtuZXcgT3B0aW9uYWwoKSwgQVNTRVRTX0JBU0VfUEFUSF0sXG4gICAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBtaXNzaW5nVHJhbnNsYXRpb25IYW5kbGVyOiB7XG4gICAgICAgICAgICAgICAgcHJvdmlkZTogTWlzc2luZ1RyYW5zbGF0aW9uSGFuZGxlcixcbiAgICAgICAgICAgICAgICB1c2VDbGFzczogRmFsbGJhY2tUcmFuc2xhdGlvbkhhbmRsZXIsXG4gICAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICBdLFxufSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNNb2R1bGUge1xuICAgIHN0YXRpYyBmb3JSb290KCk6IE1vZHVsZVdpdGhQcm92aWRlcnM8VHJhbnNsYXRpb25zTW9kdWxlPiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICBuZ01vZHVsZTogVHJhbnNsYXRpb25zTW9kdWxlLFxuICAgICAgICAgICAgcHJvdmlkZXJzOiBbXSxcbiAgICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdHJ1Y3RvcihAT3B0aW9uYWwoKSBAU2tpcFNlbGYoKSBwYXJlbnRNb2R1bGU/OiBUcmFuc2xhdGlvbnNNb2R1bGUpIHtcbiAgICAgICAgaWYgKHBhcmVudE1vZHVsZSkge1xuICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICdUcmFuc2xhdGlvbnNNb2R1bGUgaXMgYWxyZWFkeSBsb2FkZWQuIEltcG9ydCBpdCBpbiB0aGUgQXBwTW9kdWxlIG9ubHknLFxuICAgICAgICAgICAgICAgIHBhcmVudE1vZHVsZSxcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgICAvKnRocm93IG5ldyBFcnJvcihcbiAgICAgICAgICAgICAgICAnVHJhbnNsYXRpb25zTW9kdWxlIGlzIGFscmVhZHkgbG9hZGVkLiBJbXBvcnQgaXQgaW4gdGhlIEFwcE1vZHVsZSBvbmx5JyxcbiAgICAgICAgICAgICk7Ki9cbiAgICAgICAgfVxuICAgIH1cbn1cbiJdfQ==
@@ -1,22 +1,40 @@
1
1
  import { Injectable, Optional } from '@angular/core';
2
2
  import { BehaviorSubject, from, of as observableOf } from 'rxjs';
3
3
  import { first, map, switchMap, tap } from 'rxjs/operators';
4
- import { LANGUAGES } from './languages';
4
+ import { LANGUAGES } from 'ngx-edu-sharing-api';
5
5
  import * as i0 from "@angular/core";
6
6
  import * as i1 from "ngx-edu-sharing-api";
7
7
  import * as i2 from "@angular/router";
8
8
  import * as i3 from "@ngx-translate/core";
9
9
  import * as i4 from "../services/abstract/app.service";
10
10
  // 'none' means that only labels should be shown (for dev)
11
- const DEFAULT_SUPPORTED_LANGUAGES = ['de', 'de-informal', 'en', 'none'];
11
+ const DEFAULT_SUPPORTED_LANGUAGES = [
12
+ 'de',
13
+ 'de-informal',
14
+ 'de-no-binnen-i',
15
+ 'en',
16
+ 'fr',
17
+ 'it',
18
+ 'none',
19
+ ];
12
20
  export class TranslationsService {
13
- constructor(config, route, storage, translate, appService) {
21
+ constructor(config, route, storage, translate, sessionStorage, ref, appService) {
14
22
  this.config = config;
15
23
  this.route = route;
16
24
  this.storage = storage;
17
25
  this.translate = translate;
26
+ this.sessionStorage = sessionStorage;
27
+ this.ref = ref;
18
28
  this.appService = appService;
19
29
  this.languageLoaded = new BehaviorSubject(false);
30
+ this.sessionStorage?.observe('language').subscribe((lang) => {
31
+ // language has changed, i.e. user has different preference
32
+ if (this.translate.currentLang && this.translate.currentLang !== lang) {
33
+ this.initialize().subscribe(() => {
34
+ this.ref.tick();
35
+ });
36
+ }
37
+ });
20
38
  }
21
39
  /**
22
40
  * Determines and configures the language to use and triggers loading of translations with
@@ -111,7 +129,7 @@ export class TranslationsService {
111
129
  if (selectedLanguage === 'none') {
112
130
  this.translate.setDefaultLang('none');
113
131
  }
114
- else if (selectedLanguage === 'de-informal') {
132
+ else if (selectedLanguage?.startsWith('de-')) {
115
133
  this.translate.setDefaultLang('de');
116
134
  }
117
135
  else {
@@ -159,13 +177,13 @@ export class TranslationsService {
159
177
  getISOLanguage() {
160
178
  return LANGUAGES[this.language];
161
179
  }
162
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TranslationsService, deps: [{ token: i1.ConfigService }, { token: i2.ActivatedRoute }, { token: i1.SessionStorageService }, { token: i3.TranslateService }, { token: i4.AppService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
180
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TranslationsService, deps: [{ token: i1.ConfigService }, { token: i2.ActivatedRoute }, { token: i1.SessionStorageService }, { token: i3.TranslateService }, { token: i1.SessionStorageService }, { token: i0.ApplicationRef }, { token: i4.AppService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable }); }
163
181
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TranslationsService, providedIn: 'root' }); }
164
182
  }
165
183
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.6", ngImport: i0, type: TranslationsService, decorators: [{
166
184
  type: Injectable,
167
185
  args: [{ providedIn: 'root' }]
168
- }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.ActivatedRoute }, { type: i1.SessionStorageService }, { type: i3.TranslateService }, { type: i4.AppService, decorators: [{
186
+ }], ctorParameters: function () { return [{ type: i1.ConfigService }, { type: i2.ActivatedRoute }, { type: i1.SessionStorageService }, { type: i3.TranslateService }, { type: i1.SessionStorageService }, { type: i0.ApplicationRef }, { type: i4.AppService, decorators: [{
169
187
  type: Optional
170
188
  }] }]; } });
171
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3RyYW5zbGF0aW9ucy90cmFuc2xhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUdyRCxPQUFPLEVBQUUsZUFBZSxFQUFFLElBQUksRUFBYyxFQUFFLElBQUksWUFBWSxFQUFNLE1BQU0sTUFBTSxDQUFDO0FBQ2pGLE9BQU8sRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFJeEMsMERBQTBEO0FBQzFELE1BQU0sMkJBQTJCLEdBQUcsQ0FBQyxJQUFJLEVBQUUsYUFBYSxFQUFFLElBQUksRUFBRSxNQUFNLENBQUMsQ0FBQztBQUd4RSxNQUFNLE9BQU8sbUJBQW1CO0lBSTVCLFlBQ1ksTUFBcUIsRUFDckIsS0FBcUIsRUFDckIsT0FBOEIsRUFDOUIsU0FBMkIsRUFDZixVQUFzQjtRQUpsQyxXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLFlBQU8sR0FBUCxPQUFPLENBQXVCO1FBQzlCLGNBQVMsR0FBVCxTQUFTLENBQWtCO1FBQ2YsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVB0QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBUWpELENBQUM7SUFFSjs7Ozs7T0FLRztJQUNILFVBQVU7UUFDTixNQUFNLG1CQUFtQixHQUFHLElBQUksQ0FDNUIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsb0JBQW9CLEVBQUUsMkJBQTJCLENBQUMsQ0FD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LENBQUM7SUFDOUIsQ0FBQztJQUVELFdBQVc7UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUMzQixLQUFLLENBQUMsQ0FBQyxjQUFjLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FBQyxFQUN6QyxHQUFHLENBQUMsR0FBRyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FDcEIsQ0FBQztJQUNOLENBQUM7SUFFRCx1Q0FBdUM7SUFDdkMsV0FBVztRQUNQLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQztJQUN6QixDQUFDO0lBRUQsY0FBYztRQUNWLE9BQU8sU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNwQyxDQUFDOzhHQTdLUSxtQkFBbUI7a0hBQW5CLG1CQUFtQixjQUROLE1BQU07OzJGQUNuQixtQkFBbUI7a0JBRC9CLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFOzswQkFVekIsUUFBUSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBBY3RpdmF0ZWRSb3V0ZSB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QsIGZyb20sIE9ic2VydmFibGUsIG9mIGFzIG9ic2VydmFibGVPZiwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTEFOR1VBR0VTIH0gZnJvbSAnLi9sYW5ndWFnZXMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSwgU2Vzc2lvblN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnbmd4LWVkdS1zaGFyaW5nLWFwaSc7XG5pbXBvcnQgeyBBcHBTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvYWJzdHJhY3QvYXBwLnNlcnZpY2UnO1xuXG4vLyAnbm9uZScgbWVhbnMgdGhhdCBvbmx5IGxhYmVscyBzaG91bGQgYmUgc2hvd24gKGZvciBkZXYpXG5jb25zdCBERUZBVUxUX1NVUFBPUlRFRF9MQU5HVUFHRVMgPSBbJ2RlJywgJ2RlLWluZm9ybWFsJywgJ2VuJywgJ25vbmUnXTtcblxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcbmV4cG9ydCBjbGFzcyBUcmFuc2xhdGlvbnNTZXJ2aWNlIHtcbiAgICBwcml2YXRlIGxhbmd1YWdlOiBzdHJpbmc7XG4gICAgcHJpdmF0ZSBsYW5ndWFnZUxvYWRlZCA9IG5ldyBCZWhhdmlvclN1YmplY3QoZmFsc2UpO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgY29uZmlnOiBDb25maWdTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICAgICAgcHJpdmF0ZSBzdG9yYWdlOiBTZXNzaW9uU3RvcmFnZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2UsXG4gICAgKSB7fVxuXG4gICAgLyoqXG4gICAgICogRGV0ZXJtaW5lcyBhbmQgY29uZmlndXJlcyB0aGUgbGFuZ3VhZ2UgdG8gdXNlIGFuZCB0cmlnZ2VycyBsb2FkaW5nIG9mIHRyYW5zbGF0aW9ucyB3aXRoXG4gICAgICogbmd4LXRyYW5zbGF0ZS5cbiAgICAgKlxuICAgICAqIENhbGwgdGhpcyBvbmNlIGluIHRoZSBhcHAgY29tcG9uZW50LlxuICAgICAqL1xuICAgIGluaXRpYWxpemUoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIGNvbnN0IHN1cHBvcnRlZExhbmd1YWdlcyQgPSBmcm9tKFxuICAgICAgICAgICAgdGhpcy5jb25maWcuZ2V0KCdzdXBwb3J0ZWRMYW5ndWFnZXMnLCBERUZBVUxUX1NVUFBPUlRFRF9MQU5HVUFHRVMpLFxuICAgICAgICApO1xuICAgICAgICBpZiAodGhpcy5hcHBTZXJ2aWNlPy5pc1J1bm5pbmdBcHAoKSkge1xuICAgICAgICAgICAgcmV0dXJuIHN1cHBvcnRlZExhbmd1YWdlcyQucGlwZShcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHN1cHBvcnRlZExhbmd1YWdlczogc3RyaW5nW10pID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvcmRvdmEoc3VwcG9ydGVkTGFuZ3VhZ2VzKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIG1hcCgoKSA9PiB2b2lkIDApLFxuICAgICAgICAgICAgKTtcbiAgICAgICAgfVxuICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMkXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgICB0YXAoKHN1cHBvcnRlZExhbmd1YWdlcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICBpZiAoIXN1cHBvcnRlZExhbmd1YWdlcy5pbmNsdWRlcygnbm9uZScpKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMucHVzaCgnbm9uZScpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgdGFwKChzdXBwb3J0ZWRMYW5ndWFnZXM6IHN0cmluZ1tdKSA9PiB0aGlzLnRyYW5zbGF0ZS5hZGRMYW5ncyhzdXBwb3J0ZWRMYW5ndWFnZXMpKSxcbiAgICAgICAgICAgICAgICAvLyBTZWxlY3QgcXVlcnlQYXJhbXMubG9jYWxlIGlmIHNldCBtZWFuaW5nZnVsbHlcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHN1cHBvcnRlZExhbmd1YWdlczogc3RyaW5nW10pID0+XG4gICAgICAgICAgICAgICAgICAgIHRoaXMucm91dGUucXVlcnlQYXJhbXMucGlwZShcbiAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0KCksXG4gICAgICAgICAgICAgICAgICAgICAgICBtYXAoKHBhcmFtcykgPT4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCBzZWxlY3RlZExhbmd1YWdlOiBzdHJpbmcgPSBudWxsO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmIChzdXBwb3J0ZWRMYW5ndWFnZXMuaW5kZXhPZihwYXJhbXMubG9jYWxlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZSA9IHBhcmFtcy5sb2NhbGU7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChwYXJhbXMubG9jYWxlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGBVcmwgcmVxdWVzdGVkIGxhbmd1YWdlICR7cGFyYW1zLmxvY2FsZX0sIGAgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICdidXQgaXQgd2FzIG5vdCBmb3VuZCBvciBpcyBub3QgY29uZmlndXJlZCBpbiB0aGUgYWxsb3dlZCBsYW5ndWFnZXM6ICcgK1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBzdG9yYWdlLmdldCgnbGFuZ3VhZ2UnKSBpZiBzZXQgbWVhbmluZ2Z1bGx5XG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh7IHN1cHBvcnRlZExhbmd1YWdlcywgc2VsZWN0ZWRMYW5ndWFnZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZExhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2JzZXJ2YWJsZU9mKHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTdG9yZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5zdG9yYWdlLmdldCgnbGFuZ3VhZ2UnKS5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgoc3RvcmFnZUxhbmd1YWdlKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGxldCB1c2VTdG9yZWQgPSBmYWxzZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRlZExhbmd1YWdlcy5pbmRleE9mKHN0b3JhZ2VMYW5ndWFnZSkgIT09IC0xKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlID0gc3RvcmFnZUxhbmd1YWdlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc2VsZWN0ZWRMYW5ndWFnZSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVN0b3JlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICAvLyBVc2UgYnJvd3NlciBsYW5ndWFnZSBpZiBhdmFpbGFibGUsIG90aGVyd2lzZSBmYWxsIGJhY2sgdG8gdGhlIGZpcnN0IHN1cHBvcnRlZFxuICAgICAgICAgICAgICAgIC8vIGxhbmd1YWdlLlxuICAgICAgICAgICAgICAgIG1hcCgoeyBzdXBwb3J0ZWRMYW5ndWFnZXMsIHNlbGVjdGVkTGFuZ3VhZ2UsIHVzZVN0b3JlZCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZExhbmd1YWdlKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVN0b3JlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgYnJvd3NlciBsYW5ndWFnZSBpZiBzZXQgbWVhbmluZ2Z1bGx5XG4gICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMuaW5kZXhPZih0aGlzLnRyYW5zbGF0ZS5nZXRCcm93c2VyTGFuZygpKSAhPT0gLTFcbiAgICAgICAgICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlOiB0aGlzLnRyYW5zbGF0ZS5nZXRCcm93c2VyTGFuZygpLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVN0b3JlZCxcbiAgICAgICAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICAvLyBTZWxlY3QgZmlyc3Qgc3VwcG9ydGVkIGxhbmd1YWdlXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlOiBzdXBwb3J0ZWRMYW5ndWFnZXNbMF0sXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC8vIFNldCBmYWxsYmFjayBsYW5ndWFnZVxuICAgICAgICAgICAgICAgIHRhcCgoeyBzdXBwb3J0ZWRMYW5ndWFnZXMsIHNlbGVjdGVkTGFuZ3VhZ2UsIHVzZVN0b3JlZCB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghdXNlU3RvcmVkKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JhZ2Uuc2V0KCdsYW5ndWFnZScsIHNlbGVjdGVkTGFuZ3VhZ2UpO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgIGlmIChzZWxlY3RlZExhbmd1YWdlID09PSAnbm9uZScpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudHJhbnNsYXRlLnNldERlZmF1bHRMYW5nKCdub25lJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSBpZiAoc2VsZWN0ZWRMYW5ndWFnZSA9PT0gJ2RlLWluZm9ybWFsJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ2RlJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyhzdXBwb3J0ZWRMYW5ndWFnZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLy8gQ29uZmlndXJlIGBuZ3gtdHJhbnNsYXRlYCB0byB1c2UgdGhlIGRldGVybWluZWQgbGFuZ3VhZ2UgYW5kIHRyaWdnZXIgbG9hZGluZyBvZlxuICAgICAgICAgICAgICAgIC8vIHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgc2VsZWN0ZWRMYW5ndWFnZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdsYW5ndWFnZSB1c2VkOiAnICsgc2VsZWN0ZWRMYW5ndWFnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2UgPSBzZWxlY3RlZExhbmd1YWdlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUudXNlKHNlbGVjdGVkTGFuZ3VhZ2UpLnBpcGUobWFwKCgpID0+IHZvaWQgMCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gTm90aWZ5IGFueW9uZSB3YWl0aW5nIGZvciB0cmFuc2xhdGlvbnMgdG8gYmUgbG9hZGVkLlxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VMb2FkZWQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9ySW5pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZUNvcmRvdmEoc3VwcG9ydGVkTGFuZ3VhZ2VzID0gREVGQVVMVF9TVVBQT1JURURfTEFOR1VBR0VTKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmFkZExhbmdzKHN1cHBvcnRlZExhbmd1YWdlcyk7XG4gICAgICAgIGxldCBsYW5ndWFnZSA9IHN1cHBvcnRlZExhbmd1YWdlc1swXTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZ3VhZ2UpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpO1xuICAgICAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFwcFNlcnZpY2UuZ2V0TGFuZ3VhZ2UoKTtcbiAgICAgICAgaWYgKHN1cHBvcnRlZExhbmd1YWdlcy5pbmRleE9mKGRhdGEpICE9IC0xKSB7XG4gICAgICAgICAgICBsYW5ndWFnZSA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlTG9hZGVkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyB0aGlzLnRyYW5zbGF0ZS5nZXRUcmFuc2xhdGlvbihsYW5ndWFnZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JJbml0KCk7XG4gICAgfVxuXG4gICAgd2FpdEZvckluaXQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlTG9hZGVkLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgobGFuZ3VhZ2VMb2FkZWQpID0+IGxhbmd1YWdlTG9hZGVkKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB2b2lkIDApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBTYW1lIGFzIGB0cmFuc2xhdGUuY3VycmVudExhbmdgLiAqL1xuICAgIGdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlO1xuICAgIH1cblxuICAgIGdldElTT0xhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBMQU5HVUFHRVNbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxufVxuIl19
189
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJhbnNsYXRpb25zLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3RyYW5zbGF0aW9ucy90cmFuc2xhdGlvbnMuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWtCLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHckUsT0FBTyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQWMsRUFBRSxJQUFJLFlBQVksRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUM3RSxPQUFPLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxTQUFTLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUQsT0FBTyxFQUFpQixTQUFTLEVBQXlCLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUd0RiwwREFBMEQ7QUFDMUQsTUFBTSwyQkFBMkIsR0FBRztJQUNoQyxJQUFJO0lBQ0osYUFBYTtJQUNiLGdCQUFnQjtJQUNoQixJQUFJO0lBQ0osSUFBSTtJQUNKLElBQUk7SUFDSixNQUFNO0NBQ1QsQ0FBQztBQUdGLE1BQU0sT0FBTyxtQkFBbUI7SUFJNUIsWUFDWSxNQUFxQixFQUNyQixLQUFxQixFQUNyQixPQUE4QixFQUM5QixTQUEyQixFQUMzQixjQUFxQyxFQUNyQyxHQUFtQixFQUNQLFVBQXNCO1FBTmxDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsVUFBSyxHQUFMLEtBQUssQ0FBZ0I7UUFDckIsWUFBTyxHQUFQLE9BQU8sQ0FBdUI7UUFDOUIsY0FBUyxHQUFULFNBQVMsQ0FBa0I7UUFDM0IsbUJBQWMsR0FBZCxjQUFjLENBQXVCO1FBQ3JDLFFBQUcsR0FBSCxHQUFHLENBQWdCO1FBQ1AsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVR0QyxtQkFBYyxHQUFHLElBQUksZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBV2hELElB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Y2F0aW9uUmVmLCBJbmplY3RhYmxlLCBPcHRpb25hbCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBmcm9tLCBPYnNlcnZhYmxlLCBvZiBhcyBvYnNlcnZhYmxlT2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGZpcnN0LCBtYXAsIHN3aXRjaE1hcCwgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgQ29uZmlnU2VydmljZSwgTEFOR1VBR0VTLCBTZXNzaW9uU3RvcmFnZVNlcnZpY2UgfSBmcm9tICduZ3gtZWR1LXNoYXJpbmctYXBpJztcbmltcG9ydCB7IEFwcFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9hYnN0cmFjdC9hcHAuc2VydmljZSc7XG5cbi8vICdub25lJyBtZWFucyB0aGF0IG9ubHkgbGFiZWxzIHNob3VsZCBiZSBzaG93biAoZm9yIGRldilcbmNvbnN0IERFRkFVTFRfU1VQUE9SVEVEX0xBTkdVQUdFUyA9IFtcbiAgICAnZGUnLFxuICAgICdkZS1pbmZvcm1hbCcsXG4gICAgJ2RlLW5vLWJpbm5lbi1pJyxcbiAgICAnZW4nLFxuICAgICdmcicsXG4gICAgJ2l0JyxcbiAgICAnbm9uZScsXG5dO1xuXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxuZXhwb3J0IGNsYXNzIFRyYW5zbGF0aW9uc1NlcnZpY2Uge1xuICAgIHByaXZhdGUgbGFuZ3VhZ2U6IHN0cmluZztcbiAgICBwcml2YXRlIGxhbmd1YWdlTG9hZGVkID0gbmV3IEJlaGF2aW9yU3ViamVjdChmYWxzZSk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHJpdmF0ZSBjb25maWc6IENvbmZpZ1NlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxuICAgICAgICBwcml2YXRlIHN0b3JhZ2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgICAgIHByaXZhdGUgc2Vzc2lvblN0b3JhZ2U6IFNlc3Npb25TdG9yYWdlU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSByZWY6IEFwcGxpY2F0aW9uUmVmLFxuICAgICAgICBAT3B0aW9uYWwoKSBwcml2YXRlIGFwcFNlcnZpY2U6IEFwcFNlcnZpY2UsXG4gICAgKSB7XG4gICAgICAgIHRoaXMuc2Vzc2lvblN0b3JhZ2U/Lm9ic2VydmUoJ2xhbmd1YWdlJykuc3Vic2NyaWJlKChsYW5nKSA9PiB7XG4gICAgICAgICAgICAvLyBsYW5ndWFnZSBoYXMgY2hhbmdlZCwgaS5lLiB1c2VyIGhhcyBkaWZmZXJlbnQgcHJlZmVyZW5jZVxuICAgICAgICAgICAgaWYgKHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nICYmIHRoaXMudHJhbnNsYXRlLmN1cnJlbnRMYW5nICE9PSBsYW5nKSB7XG4gICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplKCkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yZWYudGljaygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBEZXRlcm1pbmVzIGFuZCBjb25maWd1cmVzIHRoZSBsYW5ndWFnZSB0byB1c2UgYW5kIHRyaWdnZXJzIGxvYWRpbmcgb2YgdHJhbnNsYXRpb25zIHdpdGhcbiAgICAgKiBuZ3gtdHJhbnNsYXRlLlxuICAgICAqXG4gICAgICogQ2FsbCB0aGlzIG9uY2UgaW4gdGhlIGFwcCBjb21wb25lbnQuXG4gICAgICovXG4gICAgaW5pdGlhbGl6ZSgpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAgICAgY29uc3Qgc3VwcG9ydGVkTGFuZ3VhZ2VzJCA9IGZyb20oXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5nZXQoJ3N1cHBvcnRlZExhbmd1YWdlcycsIERFRkFVTFRfU1VQUE9SVEVEX0xBTkdVQUdFUyksXG4gICAgICAgICk7XG4gICAgICAgIGlmICh0aGlzLmFwcFNlcnZpY2U/LmlzUnVubmluZ0FwcCgpKSB7XG4gICAgICAgICAgICByZXR1cm4gc3VwcG9ydGVkTGFuZ3VhZ2VzJC5waXBlKFxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoc3VwcG9ydGVkTGFuZ3VhZ2VzOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pbml0aWFsaXplQ29yZG92YShzdXBwb3J0ZWRMYW5ndWFnZXMpLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgbWFwKCgpID0+IHZvaWQgMCksXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcyRcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICAgIHRhcCgoc3VwcG9ydGVkTGFuZ3VhZ2VzKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIGlmICghc3VwcG9ydGVkTGFuZ3VhZ2VzLmluY2x1ZGVzKCdub25lJykpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcy5wdXNoKCdub25lJyk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgICB0YXAoKHN1cHBvcnRlZExhbmd1YWdlczogc3RyaW5nW10pID0+IHRoaXMudHJhbnNsYXRlLmFkZExhbmdzKHN1cHBvcnRlZExhbmd1YWdlcykpLFxuICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBxdWVyeVBhcmFtcy5sb2NhbGUgaWYgc2V0IG1lYW5pbmdmdWxseVxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgoc3VwcG9ydGVkTGFuZ3VhZ2VzOiBzdHJpbmdbXSkgPT5cbiAgICAgICAgICAgICAgICAgICAgdGhpcy5yb3V0ZS5xdWVyeVBhcmFtcy5waXBlKFxuICAgICAgICAgICAgICAgICAgICAgICAgZmlyc3QoKSxcbiAgICAgICAgICAgICAgICAgICAgICAgIG1hcCgocGFyYW1zKSA9PiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHNlbGVjdGVkTGFuZ3VhZ2U6IHN0cmluZyA9IG51bGw7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYgKHN1cHBvcnRlZExhbmd1YWdlcy5pbmRleE9mKHBhcmFtcy5sb2NhbGUpICE9PSAtMSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlID0gcGFyYW1zLmxvY2FsZTtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB9IGVsc2UgaWYgKHBhcmFtcy5sb2NhbGUpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc29sZS53YXJuKFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgYFVybCByZXF1ZXN0ZWQgbGFuZ3VhZ2UgJHtwYXJhbXMubG9jYWxlfSwgYCArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgJ2J1dCBpdCB3YXMgbm90IGZvdW5kIG9yIGlzIG5vdCBjb25maWd1cmVkIGluIHRoZSBhbGxvd2VkIGxhbmd1YWdlczogJyArXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgICAgLy8gU2VsZWN0IHN0b3JhZ2UuZ2V0KCdsYW5ndWFnZScpIGlmIHNldCBtZWFuaW5nZnVsbHlcbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgc3VwcG9ydGVkTGFuZ3VhZ2VzLCBzZWxlY3RlZExhbmd1YWdlIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiBvYnNlcnZhYmxlT2Yoe1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcyxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHVzZVN0b3JlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnN0b3JhZ2UuZ2V0KCdsYW5ndWFnZScpLnBpcGUoXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgbWFwKChzdG9yYWdlTGFuZ3VhZ2UpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbGV0IHVzZVN0b3JlZCA9IGZhbHNlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoc3VwcG9ydGVkTGFuZ3VhZ2VzLmluZGV4T2Yoc3RvcmFnZUxhbmd1YWdlKSAhPT0gLTEpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UgPSBzdG9yYWdlTGFuZ3VhZ2U7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTdG9yZWQgPSB0cnVlO1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdXBwb3J0ZWRMYW5ndWFnZXMsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzZWxlY3RlZExhbmd1YWdlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgICAgIC8vIFVzZSBicm93c2VyIGxhbmd1YWdlIGlmIGF2YWlsYWJsZSwgb3RoZXJ3aXNlIGZhbGwgYmFjayB0byB0aGUgZmlyc3Qgc3VwcG9ydGVkXG4gICAgICAgICAgICAgICAgLy8gbGFuZ3VhZ2UuXG4gICAgICAgICAgICAgICAgbWFwKCh7IHN1cHBvcnRlZExhbmd1YWdlcywgc2VsZWN0ZWRMYW5ndWFnZSwgdXNlU3RvcmVkIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkTGFuZ3VhZ2UpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBicm93c2VyIGxhbmd1YWdlIGlmIHNldCBtZWFuaW5nZnVsbHlcbiAgICAgICAgICAgICAgICAgICAgICAgIHN1cHBvcnRlZExhbmd1YWdlcy5pbmRleE9mKHRoaXMudHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCkpICE9PSAtMVxuICAgICAgICAgICAgICAgICAgICApIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2U6IHRoaXMudHJhbnNsYXRlLmdldEJyb3dzZXJMYW5nKCksXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdXNlU3RvcmVkLFxuICAgICAgICAgICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIC8vIFNlbGVjdCBmaXJzdCBzdXBwb3J0ZWQgbGFuZ3VhZ2VcbiAgICAgICAgICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc3VwcG9ydGVkTGFuZ3VhZ2VzLFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHNlbGVjdGVkTGFuZ3VhZ2U6IHN1cHBvcnRlZExhbmd1YWdlc1swXSxcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB1c2VTdG9yZWQsXG4gICAgICAgICAgICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLy8gU2V0IGZhbGxiYWNrIGxhbmd1YWdlXG4gICAgICAgICAgICAgICAgdGFwKCh7IHN1cHBvcnRlZExhbmd1YWdlcywgc2VsZWN0ZWRMYW5ndWFnZSwgdXNlU3RvcmVkIH0pID0+IHtcbiAgICAgICAgICAgICAgICAgICAgaWYgKCF1c2VTdG9yZWQpIHtcbiAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMuc3RvcmFnZS5zZXQoJ2xhbmd1YWdlJywgc2VsZWN0ZWRMYW5ndWFnZSk7XG4gICAgICAgICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgICAgICAgaWYgKHNlbGVjdGVkTGFuZ3VhZ2UgPT09ICdub25lJykge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ25vbmUnKTtcbiAgICAgICAgICAgICAgICAgICAgfSBlbHNlIGlmIChzZWxlY3RlZExhbmd1YWdlPy5zdGFydHNXaXRoKCdkZS0nKSkge1xuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcoJ2RlJyk7XG4gICAgICAgICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnRyYW5zbGF0ZS5zZXREZWZhdWx0TGFuZyhzdXBwb3J0ZWRMYW5ndWFnZXNbMF0pO1xuICAgICAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgICAgLy8gQ29uZmlndXJlIGBuZ3gtdHJhbnNsYXRlYCB0byB1c2UgdGhlIGRldGVybWluZWQgbGFuZ3VhZ2UgYW5kIHRyaWdnZXIgbG9hZGluZyBvZlxuICAgICAgICAgICAgICAgIC8vIHRyYW5zbGF0aW9ucy5cbiAgICAgICAgICAgICAgICBzd2l0Y2hNYXAoKHsgc2VsZWN0ZWRMYW5ndWFnZSB9KSA9PiB7XG4gICAgICAgICAgICAgICAgICAgIC8vIGNvbnNvbGUubG9nKCdsYW5ndWFnZSB1c2VkOiAnICsgc2VsZWN0ZWRMYW5ndWFnZSk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2UgPSBzZWxlY3RlZExhbmd1YWdlO1xuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUudXNlKHNlbGVjdGVkTGFuZ3VhZ2UpLnBpcGUobWFwKCgpID0+IHZvaWQgMCkpO1xuICAgICAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICAgICAgLy8gTm90aWZ5IGFueW9uZSB3YWl0aW5nIGZvciB0cmFuc2xhdGlvbnMgdG8gYmUgbG9hZGVkLlxuICAgICAgICAgICAgICAgIHRoaXMubGFuZ3VhZ2VMb2FkZWQubmV4dCh0cnVlKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy53YWl0Rm9ySW5pdCgpO1xuICAgIH1cblxuICAgIHByaXZhdGUgYXN5bmMgaW5pdGlhbGl6ZUNvcmRvdmEoc3VwcG9ydGVkTGFuZ3VhZ2VzID0gREVGQVVMVF9TVVBQT1JURURfTEFOR1VBR0VTKSB7XG4gICAgICAgIHRoaXMudHJhbnNsYXRlLmFkZExhbmdzKHN1cHBvcnRlZExhbmd1YWdlcyk7XG4gICAgICAgIGxldCBsYW5ndWFnZSA9IHN1cHBvcnRlZExhbmd1YWdlc1swXTtcbiAgICAgICAgdGhpcy50cmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZ3VhZ2UpO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpO1xuICAgICAgICB0aGlzLmxhbmd1YWdlID0gbGFuZ3VhZ2U7XG4gICAgICAgIGNvbnN0IGRhdGEgPSBhd2FpdCB0aGlzLmFwcFNlcnZpY2UuZ2V0TGFuZ3VhZ2UoKTtcbiAgICAgICAgaWYgKHN1cHBvcnRlZExhbmd1YWdlcy5pbmRleE9mKGRhdGEpICE9IC0xKSB7XG4gICAgICAgICAgICBsYW5ndWFnZSA9IGRhdGE7XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sYW5ndWFnZSA9IGxhbmd1YWdlO1xuICAgICAgICB0aGlzLnRyYW5zbGF0ZS51c2UobGFuZ3VhZ2UpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICAgICAgICB0aGlzLmxhbmd1YWdlTG9hZGVkLm5leHQodHJ1ZSk7XG4gICAgICAgIH0pO1xuICAgICAgICAvLyB0aGlzLnRyYW5zbGF0ZS5nZXRUcmFuc2xhdGlvbihsYW5ndWFnZSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgLy8gfSk7XG4gICAgICAgIHJldHVybiB0aGlzLndhaXRGb3JJbml0KCk7XG4gICAgfVxuXG4gICAgd2FpdEZvckluaXQoKTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlTG9hZGVkLnBpcGUoXG4gICAgICAgICAgICBmaXJzdCgobGFuZ3VhZ2VMb2FkZWQpID0+IGxhbmd1YWdlTG9hZGVkKSxcbiAgICAgICAgICAgIG1hcCgoKSA9PiB2b2lkIDApLFxuICAgICAgICApO1xuICAgIH1cblxuICAgIC8qKiBTYW1lIGFzIGB0cmFuc2xhdGUuY3VycmVudExhbmdgLiAqL1xuICAgIGdldExhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiB0aGlzLmxhbmd1YWdlO1xuICAgIH1cblxuICAgIGdldElTT0xhbmd1YWdlKCk6IHN0cmluZyB7XG4gICAgICAgIHJldHVybiBMQU5HVUFHRVNbdGhpcy5sYW5ndWFnZV07XG4gICAgfVxufVxuIl19
@@ -0,0 +1,9 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ /**
3
+ * A custom base path for the assets directory.
4
+ *
5
+ * This is useful when the application cannot be served from the base HREF set in index.html. This
6
+ * is the case when it is embedded as a web component into another website.
7
+ */
8
+ export const ASSETS_BASE_PATH = new InjectionToken('ASSETS_BASE_PATH');
9
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5qZWN0aW9uLXRva2Vucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2VkdS1zaGFyaW5nLXVpL3NyYy9saWIvdHlwZXMvaW5qZWN0aW9uLXRva2Vucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9DOzs7OztHQUtHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxjQUFjLENBQVMsa0JBQWtCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbi8qKlxuICogQSBjdXN0b20gYmFzZSBwYXRoIGZvciB0aGUgYXNzZXRzIGRpcmVjdG9yeS5cbiAqXG4gKiBUaGlzIGlzIHVzZWZ1bCB3aGVuIHRoZSBhcHBsaWNhdGlvbiBjYW5ub3QgYmUgc2VydmVkIGZyb20gdGhlIGJhc2UgSFJFRiBzZXQgaW4gaW5kZXguaHRtbC4gVGhpc1xuICogaXMgdGhlIGNhc2Ugd2hlbiBpdCBpcyBlbWJlZGRlZCBhcyBhIHdlYiBjb21wb25lbnQgaW50byBhbm90aGVyIHdlYnNpdGUuXG4gKi9cbmV4cG9ydCBjb25zdCBBU1NFVFNfQkFTRV9QQVRIID0gbmV3IEluamVjdGlvblRva2VuPHN0cmluZz4oJ0FTU0VUU19CQVNFX1BBVEgnKTtcbiJdfQ==
@@ -1,8 +1,9 @@
1
1
  export var NodesRightMode;
2
2
  (function (NodesRightMode) {
3
+ // rights on the current node, no matter if its a reference or origianl
3
4
  NodesRightMode[NodesRightMode["Local"] = 0] = "Local";
4
- NodesRightMode[NodesRightMode["Original"] = 1] = "Original";
5
- NodesRightMode[NodesRightMode["Both"] = 2] = "Both";
5
+ // effective rights on the current node, only relevant for collection references (for non-refs, this equals to local)
6
+ NodesRightMode[NodesRightMode["Effective"] = 1] = "Effective";
6
7
  })(NodesRightMode || (NodesRightMode = {}));
7
8
  export class OptionItem {
8
9
  /**
@@ -53,6 +54,11 @@ export class OptionItem {
53
54
  * @type {boolean}
54
55
  */
55
56
  this.onlyMobile = false;
57
+ /**
58
+ * custom aria-label
59
+ * @type {string}
60
+ */
61
+ this.ariaLabel = '';
56
62
  /**
57
63
  * If true, only displayed on a desktop device (based on the navigator agent)
58
64
  * @type {boolean}
@@ -171,4 +177,4 @@ export var Target;
171
177
  Target[Target["Actionbar"] = 2] = "Actionbar";
172
178
  Target[Target["CreateMenu"] = 3] = "CreateMenu";
173
179
  })(Target || (Target = {}));
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL29wdGlvbi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sQ0FBTixJQUFZLGNBSVg7QUFKRCxXQUFZLGNBQWM7SUFDdEIscURBQUssQ0FBQTtJQUNMLDJEQUFRLENBQUE7SUFDUixtREFBSSxDQUFBO0FBQ1IsQ0FBQyxFQUpXLGNBQWMsS0FBZCxjQUFjLFFBSXpCO0FBQ0QsTUFBTSxPQUFPLFVBQVU7SUFzSG5COzs7Ozs7O09BT0c7SUFDSCxZQUNXLElBQVksRUFDWixJQUFZO0lBQ25CLDZEQUE2RDtJQUN0RCxRQUFpRTtRQUhqRSxTQUFJLEdBQUosSUFBSSxDQUFRO1FBQ1osU0FBSSxHQUFKLElBQUksQ0FBUTtRQUVaLGFBQVEsR0FBUixRQUFRLENBQXlEO1FBakk1RTs7O1dBR0c7UUFDSSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCOzs7V0FHRztRQUNJLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzVCOzs7V0FHRztRQUNJLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEI7Ozs7O1dBS0c7UUFDSSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCOzs7OztXQUtHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQzFCOzs7V0FHRztRQUNJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTNCOzs7V0FHRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQ3hCOztXQUVHO1FBQ0ksYUFBUSxHQUFHLElBQUksQ0FBQztRQWF2Qjs7V0FFRztRQUNJLGdCQUFXLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7UUFHakMsb0JBQWUsR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDO1FBQ25DLHlC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VyxDQUFBO0lBQ1gsa0VBQWdCLENBQUE7SUFDaEIsc0RBQVUsQ0FBQTtJQUNWLDhEQUFjLENBQUE7SUFDZCwwQ0FBSSxDQUFBO0lBQ0osZ0RBQU8sQ0FBQTtJQUNQLG9EQUFTLENBQUE7SUFDVCxnREFBTyxDQUFBO0FBQ1gsQ0FBQyxFQWxCVyxTQUFTLEtBQVQsU0FBUyxRQWtCcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQUtYO0FBTEQsV0FBWSxNQUFNO0lBQ2QsbUNBQUksQ0FBQTtJQUNKLG1EQUFZLENBQUE7SUFDWiw2Q0FBUyxDQUFBO0lBQ1QsK0NBQVUsQ0FBQTtBQUNkLENBQUMsRUFMVyxNQUFNLEtBQU4sTUFBTSxRQUtqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBvcHRpb24gZnJvbSB0aGUgYWN0aW9uYmFyK2Ryb3Bkb3duIG1lbnVcbiAqIEV4YW1wbGU6XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJSRVNUT1JFX1NJTkdMRVwiLFwidW5kb1wiLCAobm9kZSkgPT4gdGhpcy5yZXN0b3JlU2luZ2xlKG5vZGUpKSk7XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJERUxFVEVfU0lOR0xFXCIsXCJhcmNoaXZlRGVsZXRlXCIsIChub2RlKSA9PiB0aGlzLmRlbGV0ZVNpbmdsZShub2RlKSkpO1xuXG4gKi9cbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMnO1xuXG5leHBvcnQgZW51bSBOb2Rlc1JpZ2h0TW9kZSB7XG4gICAgTG9jYWwsXG4gICAgT3JpZ2luYWwsXG4gICAgQm90aCxcbn1cbmV4cG9ydCBjbGFzcyBPcHRpb25JdGVtIHtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGlzIG9wdGlvbiB3aWxsIGJlIHNob3duIGFsbCB0aGUgdGltZSBpbiB0aGUgbm9kZSB0YWJsZVxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93QWx3YXlzID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhcyBhbiBhY3Rpb24gKGlmIHJvb20pLiBJZiBub25lIG9mIHRoZSBpdGVtcyBoYXMgc2hvd0FzQWN0aW9uIHNldCwgdGhlIGZpcnN0IGl0ZW1zIHdpbGwgYWx3YXlzIGJlIHNob3duIGFzIGFjdGlvblxuICAgICAqIEB0eXBlIHtib29sZWFufVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93QXNBY3Rpb24gPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCB0aGlzIG9wdGlvbiB3aWxsIGJlIHNob3duIGFzIGEgdG9nZ2xlIG9uIHRoZSByaWdodCBzaWRlIChwcm92aWRlIGljb25Ub2dnbGUgYXMgYSB0b2dnbGUgaWNvbilcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNUb2dnbGUgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBzaG93cyBhIGxpbmUgYXQgdGhlIHRvcC5cbiAgICAgKlxuICAgICAqIFRoaXMgZmVhdHVyZSBpcyB1c3VhbGx5IGhhbmRsZWQgbm93IGJ5IGFzc29jaWF0aW5nIGFuIGVudHJ5IHRvIGEgYGdyb3VwYFxuICAgICAqIG5vdy4gSG93ZXZlciBgaXNTZXBhcmF0ZWAgaXMga2VwdCBhcyBmYWxsYmFjayBmb3Igbm93LlxuICAgICAqL1xuICAgIHB1YmxpYyBpc1NlcGFyYXRlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogVGhlIGl0ZW0gd2lsbCBiZSBpbmRpY2F0ZWQgd2l0aCBhbiBhY2NlbnQgY29sb3IgaW4gdGhlIG1lbnUuXG4gICAgICpcbiAgICAgKiBVc2VkIGJ5IHRoZSBkcm9wZG93biB2YXJpYW50IG9mIHRoZSBtYWluIG1lbnUgdG8gaW5kaWNhdGUgdGhlIGN1cnJlbnRseVxuICAgICAqIGFjdGl2ZSBzY29wZS5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTZWxlY3RlZCA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIG9ubHkgZGlzcGxheWVkIG9uIGEgbW9iaWxlIGRldmljZSAoYmFzZWQgb24gdGhlIG5hdmlnYXRvciBhZ2VudClcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgb25seU1vYmlsZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIG9ubHkgZGlzcGxheWVkIG9uIGEgZGVza3RvcCBkZXZpY2UgKGJhc2VkIG9uIHRoZSBuYXZpZ2F0b3IgYWdlbnQpXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIG9ubHlEZXNrdG9wID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogWW91IGNhbiBzZXQgYSBtZWRpYS1xdWVyeSBzaW1pbGFyIHRvIENTUywgc2VlIHRoZSBNRURJQV9RVUVSWSBjb25zdGFudHMgaW4gdWktY29uc3RhbnRzXG4gICAgICogVXNlIGluIGNvbWJpbmF0aW9uIHdpdGggbWVkaWFRdWVyeVZhbHVlXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIG1lZGlhUXVlcnlUeXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIGZvciB0aGUgZGVmaW5lZCBtZWRpYSBxdWVyeVxuICAgICAqL1xuICAgIHB1YmxpYyBtZWRpYVF1ZXJ5VmFsdWU6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFNldCB0byBmYWxzZSBpZiB0aGUgYWN0aW9uIHNob3VsZCBiZSBzaG93biwgYnV0IHNob3VsZCBub3QgYmUgY2xpY2thYmxlXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIGlzRW5hYmxlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBvcHRpb24gc2hvdWxkIGJlIG1hbnVhbGx5IG1hcmtlZCBhcyBwcmltYXJ5IGFjdGlvbiB3aGVuIGFsd2F5cyB2aXNpYmxlIG9uIGFuXG4gICAgICogYGFjdGlvbmJhcmAuXG4gICAgICovXG4gICAgcHVibGljIGlzUHJpbWFyeTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFyYW0gd2hpY2ggc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGlmIHRoZSBvcHRpb24gc2hvdWxkIGJlIHNob3duIGZvciB0aGlzIG5vZGVcbiAgICAgKiBJcyBoYW5kbGVkIGJ5IG9wdGlvbnNIZWxwZXIgYW5kIG1heSBub3QgYmUgdXNlZCBvdGhlcndpc2VcbiAgICAgKiBQbGVhc2UgdXNlIEBjdXN0b21TaG93Q2FsbGJhY2sgaW5zdGVhZFxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93Q2FsbGJhY2s6IChub2RlPzogTm9kZSB8IGFueSkgPT4gYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aXRoIHRoZSBub2RlIGFzIHBhcm0gd2hpY2ggc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGlmIHRoZSBvcHRpb24gc2hvdWxkIGJlIHNob3duIGZvciB0aGlzIG5vZGVcbiAgICAgKiBXaWxsIGJlIGNhbGxlZCBieSB0aGUgb3B0aW9uc0hlbHBlclxuICAgICAqL1xuICAgIHB1YmxpYyBjdXN0b21TaG93Q2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSB8IGFueVtdKSA9PiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFyYW0gd2hpY2ggc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGlmIHRoZSBvcHRpb24gc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG4gICAgICogSXMgaGFuZGxlZCBieSBvcHRpb25zSGVscGVyIGFuZCBtYXkgbm90IGJlIHVzZWQgb3RoZXJ3aXNlXG4gICAgICogUGxlYXNlIHVzZSBAY3VzdG9tRW5hYmxlZENhbGxiYWNrIGluc3RlYWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlZENhbGxiYWNrOiAobm9kZT86IE5vZGUgfCBhbnkpID0+IGJvb2xlYW47XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICAgKiBXaWxsIGJlIGNhbGxlZCBieSB0aGUgb3B0aW9uc0hlbHBlclxuICAgICAqL1xuICAgIHB1YmxpYyBjdXN0b21FbmFibGVkQ2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSB8IGFueVtdKSA9PiBib29sZWFuO1xuXG4gICAgLyoqXG4gICAgICogICBPcHRpb25hbDogQSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgb3B0aW9uIHdoZW4gaXQncyBjdXJyZW50bHkgZGlzYWJsZWQgKGdyZXllZCBvdXQpXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVkQ2FsbGJhY2s6IChub2RlPzogTm9kZSB8IGFueSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiAgIFNob3cgdGhlIGdpdmVuIG5hbWUgKGlmIGZhbHNlLCBvbmx5IGljb24gd2lsbCBzaG93KVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93TmFtZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBlbGVtZW50IHdpdGggMCBoYXMgaGlnaGVzdCBwcmlvcml0eSBpbiBpdCdzIGdyb3VwLCBoaWdoZXIgdmFsdWVzIG1lYW4gbG93ZXIgcHJpb3JpdHlcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJpb3JpdHk6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiB0aGUgZ3JvdXAgdGhpcyBvcHRpb24gYmVsb25ncyB0b1xuICAgICAqL1xuICAgIHB1YmxpYyBncm91cDogT3B0aW9uR3JvdXA7XG5cbiAgICBwdWJsaWMga2V5Ym9hcmRTaG9ydGN1dDogS2V5Ym9hcmRTaG9ydGN1dENvbmRpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIE9yIGNvbmNhdCBvZiBzdXBwb3J0ZWQgZWxlbWVudCB0eXBlcyBmb3IgdGhlIGFjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBlbGVtZW50VHlwZSA9IFtFbGVtZW50VHlwZS5Ob2RlXTtcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBjb25zdHJhaW5zOiBDb25zdHJhaW5bXTtcbiAgICBwdWJsaWMgcGVybWlzc2lvbnNNb2RlID0gSGlkZU1vZGUuRGlzYWJsZTtcbiAgICBwdWJsaWMgcGVybWlzc2lvbnNSaWdodE1vZGUgPSBOb2Rlc1JpZ2h0TW9kZS5Mb2NhbDtcbiAgICBwdWJsaWMgdG9vbHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICBwdWJsaWMgdG9vbHBlcm1pc3Npb25zTW9kZSA9IEhpZGVNb2RlLkRpc2FibGU7XG4gICAgcHVibGljIHNjb3BlczogU2NvcGVbXTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgdGhlIG9wdGlvbiBuYW1lLCB3aGljaCBpcyB1c2VkIGZvciB0aGUgdHJhbnNsYXRpb25cbiAgICAgKiBAcGFyYW0gaWNvbiBBIG1hdGVyaWFsIGljb24gbmFtZVxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBBIGZ1bmN0aW9uIGNhbGxiYWNrIHdoZW4gdGhpcyBvcHRpb24gaXMgY2hvc2VuLiBXaWxsIGdldCB0aGUgY3VycmVudCBub2RlXG4gICAgICogcGFzc2VkIGFzIGFuIGFyZ3VtZW50LiBJZiBhdmFpbGFibGUsIHRoZSByZWxldmFudCBub2RlcyBhcmUgcGFzc2VkIGFzIHNlY29uZCBhcmd1bWVudCxcbiAgICAgKiBpLmUuLCB0aGUgc2VsZWN0aW9uLCBpZiBhbnksIG9yIHRoZSBjdXJyZW50IG5vZGUgYXMgc2luZ2xlLWl0ZW0gYXJyYXkgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgaWNvbjogc3RyaW5nLFxuICAgICAgICAvLyBUT0RPOiBNYXliZSBzd2l0Y2ggdG8gb25seSBwcm92aWRpbmcgdGhlIHNlY29uZCBwYXJhbWV0ZXIuXG4gICAgICAgIHB1YmxpYyBjYWxsYmFjazogKG9iamVjdD86IE5vZGUgfCBhbnksIG9iamVjdHM/OiAoTm9kZSB8IGFueSlbXSkgPT4gdm9pZCxcbiAgICApIHt9XG59XG5leHBvcnQgY2xhc3MgQ3VzdG9tT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgYWxsIGV4aXN0aW5nIG9yIGF2YWlsYWJsZSBvcHRpb25zIGZvciB0aGUgb2JqZWN0IHN0YXlcbiAgICAgKiBJZiBmYWxzZSwgbm8gb3B0aW9ucyB3aWxsIGJlIHNldCwgb25seSB0aGUgb3B0aW9ucyBpbiBcImFkZE9wdGlvbnNcIiBhcmUgdXNlZFxuICAgICAqL1xuICAgIHB1YmxpYyB1c2VEZWZhdWx0T3B0aW9ucz8gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgaWRzIG9mIG9wdGlvbnMgdG8gZXhwbGljaXRseSBzdXBwb3J0XG4gICAgICovXG4gICAgcHVibGljIHN1cHBvcnRlZE9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGlkcyBvZiBvcHRpb25zIHRvIGV4cGxpY2l0bHkgcmVtb3ZlXG4gICAgICogT25seSBzdXBwb3J0ZWQgaWYgc3VwcG9ydGVkT3B0aW9ucyBpcyBlbXB0eVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVPcHRpb25zPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogT3B0aW9ucyB0byBhZGQvaW5zZXJ0IGludG8gdGhlIG1lbnVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkT3B0aW9ucz86IE9wdGlvbkl0ZW1bXTtcbn1cbmV4cG9ydCBlbnVtIEhpZGVNb2RlIHtcbiAgICBEaXNhYmxlLFxuICAgIEhpZGUsXG59XG5leHBvcnQgZW51bSBTY29wZSB7XG4gICAgUmVuZGVyID0gJ1JlbmRlcicsXG4gICAgU2VhcmNoID0gJ1NlYXJjaCcsXG4gICAgU2VhcmNoQ29sbGVjdGlvbnMgPSAnU2VhcmNoQ29sbGVjdGlvbnMnLFxuICAgIFNhdmVkU2VhcmNoZXMgPSAnU2F2ZWRTZWFyY2hlcycsXG4gICAgQ29sbGVjdGlvbnNSZWZlcmVuY2VzID0gJ0NvbGxlY3Rpb25zUmVmZXJlbmNlcycsXG4gICAgQ29sbGVjdGlvbnNQcm9wb3NhbHMgPSAnQ29sbGVjdGlvbnNQcm9wb3NhbHMnLFxuICAgIENvbGxlY3Rpb25zQ29sbGVjdGlvbiA9ICdDb2xsZWN0aW9uc0NvbGxlY3Rpb24nLFxuICAgIFdvcmtzcGFjZUxpc3QgPSAnV29ya3NwYWNlTGlzdCcsXG4gICAgV29ya3NwYWNlVHJlZSA9ICdXb3Jrc3BhY2VUcmVlJyxcbiAgICBTaGFyaW5nID0gJ1NoYXJpbmcnLFxuICAgIE9lciA9ICdPZXInLFxuICAgIFVzZXJNYW5hZ2VtZW50ID0gJ1VzZXJNYW5hZ2VtZW50JyxcbiAgICBTdHJlYW0gPSAnU3RyZWFtJyxcbiAgICBDcmVhdGVNZW51ID0gJ0NyZWF0ZU1lbnUnLFxuXG4gICAgTWVkaWFjZW50ZXJOb2Rlc0xpc3QgPSAnTWVkaWFjZW50ZXJOb2Rlc0xpc3QnLFxuICAgIEFkbWluID0gJ0FkbWluJywgLy8gQWRtaW4gVG9vbHMgLyBEZWJ1Z2dpbmdcbn1cbmV4cG9ydCBlbnVtIEVsZW1lbnRUeXBlIHtcbiAgICBOb2RlLFxuICAgIE5vZGVDaGlsZCwgLy8gQ2hpbGQgb2JqZWN0XG4gICAgTWFwUmVmLCAvLyBNYXAgcmVmIChsaW5rIHRvIGFub3RoZXIgbWFwKVxuICAgIE5vZGVQdWJsaXNoZWRDb3B5LFxuICAgIE5vZGVCbG9ja2VkSW1wb3J0LCAvLyBub2RlIHdpdGggcHJvcGVydHkgY2NtOmltcG9ydGJsb2NrZWQgPT0gdHJ1ZVxuICAgIE5vZGVQcm9wb3NhbCwgLy8gbm9kZSBwcm9wb3NhbCBmb3IgYSBjb2xsZWN0aW9uXG4gICAgUGVyc29uLFxuICAgIEdyb3VwLFxuICAgIFNhdmVkU2VhcmNoLFxuICAgIFVua25vd24sXG59XG5leHBvcnQgY2xhc3MgT3B0aW9uR3JvdXAge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBpZCBUaGUgZ3JvdXAgaWRlbnRpZmllci4gVXNlZCB0byBzZXBlcmF0ZSBlbGVtZW50cyBiYXNlZCBvbiB0aGUgZ3JvdXBcbiAgICAgKiBAcGFyYW0gcHJpb3JpdHkgR3JvdXAgd2l0aCAwIGhhcyBoaWdoZXN0IHByaW9yaXR5LCBoaWdoZXIgdmFsdWVzIG1lYW4gbG93ZXIgcHJpb3JpdHlcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IHN0cmluZywgcHVibGljIHByaW9yaXR5OiBudW1iZXIpIHt9XG59XG5leHBvcnQgY2xhc3MgRGVmYXVsdEdyb3VwcyB7XG4gICAgc3RhdGljIFByaW1hcnkgPSBuZXcgT3B0aW9uR3JvdXAoJ1ByaW1hcnknLCAxMCk7XG4gICAgc3RhdGljIENyZWF0ZSA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlJywgMTUpO1xuICAgIHN0YXRpYyBWaWV3ID0gbmV3IE9wdGlvbkdyb3VwKCdWaWV3JywgMjApO1xuICAgIHN0YXRpYyBDcmVhdGVDb25uZWN0b3IgPSBuZXcgT3B0aW9uR3JvdXAoJ0NyZWF0ZUNvbm5lY3RvcicsIDI1KTtcbiAgICBzdGF0aWMgQ3JlYXRlTHRpVG9vbHMgPSBuZXcgT3B0aW9uR3JvdXAoJ0NyZWF0ZUx0aVRvb2xzJywgMjgpO1xuICAgIHN0YXRpYyBSZXVzZSA9IG5ldyBPcHRpb25Hcm91cCgnUmV1c2UnLCAzMCk7XG4gICAgc3RhdGljIEVkaXQgPSBuZXcgT3B0aW9uR3JvdXAoJ0VkaXQnLCA0MCk7XG4gICAgc3RhdGljIEZpbGVPcGVyYXRpb25zID0gbmV3IE9wdGlvbkdyb3VwKCdGaWxlT3BlcmF0aW9ucycsIDUwKTtcbiAgICBzdGF0aWMgRGVsZXRlID0gbmV3IE9wdGlvbkdyb3VwKCdEZWxldGUnLCA2MCk7XG4gICAgc3RhdGljIFRvZ2dsZXMgPSBuZXcgT3B0aW9uR3JvdXAoJ1RvZ2dsZXMnLCA3MCk7XG59XG5leHBvcnQgZW51bSBDb25zdHJhaW4ge1xuICAgIENvbGxlY3Rpb25SZWZlcmVuY2UsIC8vIG9wdGlvbiBpcyBvbmx5IHZpc2libGUgZm9yIGNvbGxlY3Rpb24gcmVmZXJlbmNlc1xuICAgIE5vQ29sbGVjdGlvblJlZmVyZW5jZSwgLy8gb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBmb3Igbm9uLWNvbGxlY3Rpb24gcmVmZXJlbmNlc1xuICAgIERpcmVjdG9yeSwgLy8gb25seSB2aXNpYmxlIGZvciBkaXJlY3RvcmllcyAoY2NtOm1hcClcbiAgICBDb2xsZWN0aW9ucywgLy8gb25seSB2aXNpYmxlIGZvciBjb2xsZWN0aW9uc1xuICAgIEZpbGVzLCAvLyBvbmx5IHZpc2libGUgZm9yIGZpbGVzIChjY206aW8pXG4gICAgRmlsZXNBbmREaXJlY3RvcmllcywgLy8gb25seSB2aXNpYmxlIGZvciBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgKGNjbTppbyAvIGNjbTptYXApIC0gbm8gY29sbGVjdGlvbnMhXG4gICAgQWRtaW4sIC8vIG9ubHkgdmlzaWJsZSBpZiB1c2VyIGlzIGFkbWluIG9yIGVzRGVidWcgaXMgZW5hYmxlZCBvbiB3aW5kb3cgY29tcG9uZW50XG4gICAgQWRtaW5PckRlYnVnLCAvLyBvbmx5IHZpc2libGUgaWYgdXNlciBpcyBhZG1pbiBvciBlc0RlYnVnIGlzIGVuYWJsZWQgb24gd2luZG93IGNvbXBvbmVudFxuICAgIE5vQnVsaywgLy8gTm8gc3VwcG9ydCBmb3IgYnVsayAobXVsdGlwbGUgb2JqZWN0cylcbiAgICBOb1NlbGVjdGlvbiwgLy8gT25seSB2aXNpYmxlIHdoZW4gY3VycmVudGx5IG5vIGVsZW1lbnQgaXMgc2VsZWN0ZWRcbiAgICBDbGlwYm9hcmRDb250ZW50LCAvLyBPbmx5IHZpc2libGUgd2hlbiB0aGUgY2xpcGJvYXJkIGhhcyBjb250ZW50XG4gICAgQWRkT2JqZWN0cywgLy8gT25seSB2aXNpYmxlIHdoZW4gaXQgaXMgcG9zc2libGUgdG8gYWRkIG9iamVjdHMgaW50byB0aGUgY3VycmVudCBsaXN0XG4gICAgSG9tZVJlcG9zaXRvcnksIC8vIE9ubHkgdmlzaWJsZSB3aGVuIHRoZSBub2RlcyBhcmUgZnJvbSB0aGUgbG9jYWwgKGhvbWUpIHJlcG9zaXRvcnlcbiAgICBVc2VyLCAvLyBPbmx5IHZpc2libGUgd2hlbiBhIHVzZXIgaXMgcHJlc2VudCBhbmQgbG9nZ2VkIGluXG4gICAgTm9TY29wZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gbm8gY3VycmVudCBzY29wZSAoaS5lIFwic2FmZVwiIHNjb3BlKSBpcyBzZXRcbiAgICBSZXVybE1vZGUsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGEgcmV1cmwgaXMgcHJlc2VudCAoY2FsbGVkIHRvIHBpY2sgb2JqZWN0IGZyb20gbG1zKVxuICAgIExUSU1vZGUsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGEgbHRpIHNlc3Npb24gaXMgcHJlc2VudCAoY2FsbGVkIHRvIHBpY2sgb2JqZWN0IGZyb20gbHRpIHBsYXRmb3JtKVxufVxuXG5leHBvcnQgZW51bSBUYXJnZXQge1xuICAgIExpc3QsIC8vIFRhcmdldCBpcyB0aGUgTGlzdFRhYmxlQ29tcG9uZW50XG4gICAgTGlzdERyb3Bkb3duLFxuICAgIEFjdGlvbmJhcixcbiAgICBDcmVhdGVNZW51LFxufVxuIl19
180
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9uLWl0ZW0uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9lZHUtc2hhcmluZy11aS9zcmMvbGliL3R5cGVzL29wdGlvbi1pdGVtLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQVNBLE1BQU0sQ0FBTixJQUFZLGNBS1g7QUFMRCxXQUFZLGNBQWM7SUFDdEIsdUVBQXVFO0lBQ3ZFLHFEQUFLLENBQUE7SUFDTCxxSEFBcUg7SUFDckgsNkRBQVMsQ0FBQTtBQUNiLENBQUMsRUFMVyxjQUFjLEtBQWQsY0FBYyxRQUt6QjtBQUNELE1BQU0sT0FBTyxVQUFVO0lBMkhuQjs7Ozs7OztPQU9HO0lBQ0gsWUFDVyxJQUFZLEVBQ1osSUFBWTtJQUNuQiw2REFBNkQ7SUFDdEQsUUFBaUU7UUFIakUsU0FBSSxHQUFKLElBQUksQ0FBUTtRQUNaLFNBQUksR0FBSixJQUFJLENBQVE7UUFFWixhQUFRLEdBQVIsUUFBUSxDQUF5RDtRQXRJNUU7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUM1Qjs7O1dBR0c7UUFDSSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ3hCOzs7OztXQUtHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7Ozs7V0FLRztRQUNJLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDMUI7OztXQUdHO1FBQ0ksZUFBVSxHQUFHLEtBQUssQ0FBQztRQUMxQjs7O1dBR0c7UUFDSSxjQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3RCOzs7V0FHRztRQUNJLGdCQUFXLEdBQUcsS0FBSyxDQUFDO1FBWTNCOzs7V0FHRztRQUNJLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFtQ3hCOztXQUVHO1FBQ0ksYUFBUSxHQUFHLElBQUksQ0FBQztRQWF2Qjs7V0FFRztRQUNJLGdCQUFXLEdBQUcsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENB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SyxDQUFBO0lBQ0wseURBQVksQ0FBQTtJQUNaLDZDQUFNLENBQUE7SUFDTix1REFBVyxDQUFBO0lBQ1gsa0VBQWdCLENBQUE7SUFDaEIsc0RBQVUsQ0FBQTtJQUNWLDhEQUFjLENBQUE7SUFDZCwwQ0FBSSxDQUFBO0lBQ0osZ0RBQU8sQ0FBQTtJQUNQLG9EQUFTLENBQUE7SUFDVCxnREFBTyxDQUFBO0FBQ1gsQ0FBQyxFQWxCVyxTQUFTLEtBQVQsU0FBUyxRQWtCcEI7QUFFRCxNQUFNLENBQU4sSUFBWSxNQUtYO0FBTEQsV0FBWSxNQUFNO0lBQ2QsbUNBQUksQ0FBQTtJQUNKLG1EQUFZLENBQUE7SUFDWiw2Q0FBUyxDQUFBO0lBQ1QsK0NBQVUsQ0FBQTtBQUNkLENBQUMsRUFMVyxNQUFNLEtBQU4sTUFBTSxRQUtqQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQSBvcHRpb24gZnJvbSB0aGUgYWN0aW9uYmFyK2Ryb3Bkb3duIG1lbnVcbiAqIEV4YW1wbGU6XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJSRVNUT1JFX1NJTkdMRVwiLFwidW5kb1wiLCAobm9kZSkgPT4gdGhpcy5yZXN0b3JlU2luZ2xlKG5vZGUpKSk7XG4gdGhpcy5vcHRpb25zLnB1c2gobmV3IE9wdGlvbkl0ZW0oXCJERUxFVEVfU0lOR0xFXCIsXCJhcmNoaXZlRGVsZXRlXCIsIChub2RlKSA9PiB0aGlzLmRlbGV0ZVNpbmdsZShub2RlKSkpO1xuXG4gKi9cbmltcG9ydCB7IEtleWJvYXJkU2hvcnRjdXRDb25kaXRpb24gfSBmcm9tICcuLi90eXBlcy9rZXlib2FyZC1zaG9ydGN1dHMnO1xuXG5leHBvcnQgZW51bSBOb2Rlc1JpZ2h0TW9kZSB7XG4gICAgLy8gcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG5vIG1hdHRlciBpZiBpdHMgYSByZWZlcmVuY2Ugb3Igb3JpZ2lhbmxcbiAgICBMb2NhbCxcbiAgICAvLyBlZmZlY3RpdmUgcmlnaHRzIG9uIHRoZSBjdXJyZW50IG5vZGUsIG9ubHkgcmVsZXZhbnQgZm9yIGNvbGxlY3Rpb24gcmVmZXJlbmNlcyAoZm9yIG5vbi1yZWZzLCB0aGlzIGVxdWFscyB0byBsb2NhbClcbiAgICBFZmZlY3RpdmUsXG59XG5leHBvcnQgY2xhc3MgT3B0aW9uSXRlbSB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhbGwgdGhlIHRpbWUgaW4gdGhlIG5vZGUgdGFibGVcbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0Fsd2F5cyA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIHRoaXMgb3B0aW9uIHdpbGwgYmUgc2hvd24gYXMgYW4gYWN0aW9uIChpZiByb29tKS4gSWYgbm9uZSBvZiB0aGUgaXRlbXMgaGFzIHNob3dBc0FjdGlvbiBzZXQsIHRoZSBmaXJzdCBpdGVtcyB3aWxsIGFsd2F5cyBiZSBzaG93biBhcyBhY3Rpb25cbiAgICAgKiBAdHlwZSB7Ym9vbGVhbn1cbiAgICAgKi9cbiAgICBwdWJsaWMgc2hvd0FzQWN0aW9uID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgdGhpcyBvcHRpb24gd2lsbCBiZSBzaG93biBhcyBhIHRvZ2dsZSBvbiB0aGUgcmlnaHQgc2lkZSAocHJvdmlkZSBpY29uVG9nZ2xlIGFzIGEgdG9nZ2xlIGljb24pXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIGlzVG9nZ2xlID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgc2hvd3MgYSBsaW5lIGF0IHRoZSB0b3AuXG4gICAgICpcbiAgICAgKiBUaGlzIGZlYXR1cmUgaXMgdXN1YWxseSBoYW5kbGVkIG5vdyBieSBhc3NvY2lhdGluZyBhbiBlbnRyeSB0byBhIGBncm91cGBcbiAgICAgKiBub3cuIEhvd2V2ZXIgYGlzU2VwYXJhdGVgIGlzIGtlcHQgYXMgZmFsbGJhY2sgZm9yIG5vdy5cbiAgICAgKi9cbiAgICBwdWJsaWMgaXNTZXBhcmF0ZSA9IGZhbHNlO1xuICAgIC8qKlxuICAgICAqIFRoZSBpdGVtIHdpbGwgYmUgaW5kaWNhdGVkIHdpdGggYW4gYWNjZW50IGNvbG9yIGluIHRoZSBtZW51LlxuICAgICAqXG4gICAgICogVXNlZCBieSB0aGUgZHJvcGRvd24gdmFyaWFudCBvZiB0aGUgbWFpbiBtZW51IHRvIGluZGljYXRlIHRoZSBjdXJyZW50bHlcbiAgICAgKiBhY3RpdmUgc2NvcGUuXG4gICAgICovXG4gICAgcHVibGljIGlzU2VsZWN0ZWQgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBJZiB0cnVlLCBvbmx5IGRpc3BsYXllZCBvbiBhIG1vYmlsZSBkZXZpY2UgKGJhc2VkIG9uIHRoZSBuYXZpZ2F0b3IgYWdlbnQpXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIG9ubHlNb2JpbGUgPSBmYWxzZTtcbiAgICAvKipcbiAgICAgKiBjdXN0b20gYXJpYS1sYWJlbFxuICAgICAqIEB0eXBlIHtzdHJpbmd9XG4gICAgICovXG4gICAgcHVibGljIGFyaWFMYWJlbCA9ICcnO1xuICAgIC8qKlxuICAgICAqIElmIHRydWUsIG9ubHkgZGlzcGxheWVkIG9uIGEgZGVza3RvcCBkZXZpY2UgKGJhc2VkIG9uIHRoZSBuYXZpZ2F0b3IgYWdlbnQpXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIG9ubHlEZXNrdG9wID0gZmFsc2U7XG4gICAgLyoqXG4gICAgICogWW91IGNhbiBzZXQgYSBtZWRpYS1xdWVyeSBzaW1pbGFyIHRvIENTUywgc2VlIHRoZSBNRURJQV9RVUVSWSBjb25zdGFudHMgaW4gdWktY29uc3RhbnRzXG4gICAgICogVXNlIGluIGNvbWJpbmF0aW9uIHdpdGggbWVkaWFRdWVyeVZhbHVlXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIG1lZGlhUXVlcnlUeXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHZhbHVlIGZvciB0aGUgZGVmaW5lZCBtZWRpYSBxdWVyeVxuICAgICAqL1xuICAgIHB1YmxpYyBtZWRpYVF1ZXJ5VmFsdWU6IG51bWJlcjtcblxuICAgIC8qKlxuICAgICAqIFNldCB0byBmYWxzZSBpZiB0aGUgYWN0aW9uIHNob3VsZCBiZSBzaG93biwgYnV0IHNob3VsZCBub3QgYmUgY2xpY2thYmxlXG4gICAgICogQHR5cGUge2Jvb2xlYW59XG4gICAgICovXG4gICAgcHVibGljIGlzRW5hYmxlZCA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBXaGV0aGVyIHRoZSBvcHRpb24gc2hvdWxkIGJlIG1hbnVhbGx5IG1hcmtlZCBhcyBwcmltYXJ5IGFjdGlvbiB3aGVuIGFsd2F5cyB2aXNpYmxlIG9uIGFuXG4gICAgICogYGFjdGlvbmJhcmAuXG4gICAgICovXG4gICAgcHVibGljIGlzUHJpbWFyeTogYm9vbGVhbjtcblxuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFyYW0gd2hpY2ggc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGlmIHRoZSBvcHRpb24gc2hvdWxkIGJlIHNob3duIGZvciB0aGlzIG5vZGVcbiAgICAgKiBJcyBoYW5kbGVkIGJ5IG9wdGlvbnNIZWxwZXIgYW5kIG1heSBub3QgYmUgdXNlZCBvdGhlcndpc2VcbiAgICAgKiBQbGVhc2UgdXNlIEBjdXN0b21TaG93Q2FsbGJhY2sgaW5zdGVhZFxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93Q2FsbGJhY2s6IChub2RlPzogTm9kZSB8IGFueSkgPT4gUHJvbWlzZTxib29sZWFuPjtcbiAgICAvKipcbiAgICAgKiBBIGZ1bmN0aW9uIGNhbGxlZCB3aXRoIHRoZSBub2RlIGFzIHBhcm0gd2hpY2ggc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGlmIHRoZSBvcHRpb24gc2hvdWxkIGJlIHNob3duIGZvciB0aGlzIG5vZGVcbiAgICAgKiBXaWxsIGJlIGNhbGxlZCBieSB0aGUgb3B0aW9uc0hlbHBlclxuICAgICAqL1xuICAgIHB1YmxpYyBjdXN0b21TaG93Q2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSB8IGFueVtdKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuICAgIC8qKlxuICAgICAqIEEgZnVuY3Rpb24gY2FsbGVkIHdpdGggdGhlIG5vZGUgYXMgcGFyYW0gd2hpY2ggc2hvdWxkIHJldHVybiB0cnVlIG9yIGZhbHNlIGlmIHRoZSBvcHRpb24gc2hvdWxkIGJlIGVuYWJsZWQgb3Igbm90XG4gICAgICogSXMgaGFuZGxlZCBieSBvcHRpb25zSGVscGVyIGFuZCBtYXkgbm90IGJlIHVzZWQgb3RoZXJ3aXNlXG4gICAgICogUGxlYXNlIHVzZSBAY3VzdG9tRW5hYmxlZENhbGxiYWNrIGluc3RlYWRcbiAgICAgKi9cbiAgICBwdWJsaWMgZW5hYmxlZENhbGxiYWNrOiAobm9kZT86IE5vZGUgfCBhbnkpID0+IFByb21pc2U8Ym9vbGVhbj47XG4gICAgLyoqXG4gICAgICogQSBmdW5jdGlvbiBjYWxsZWQgd2l0aCB0aGUgbm9kZSBhcyBwYXJhbSB3aGljaCBzaG91bGQgcmV0dXJuIHRydWUgb3IgZmFsc2UgaWYgdGhlIG9wdGlvbiBzaG91bGQgYmUgZW5hYmxlZCBvciBub3RcbiAgICAgKiBXaWxsIGJlIGNhbGxlZCBieSB0aGUgb3B0aW9uc0hlbHBlclxuICAgICAqL1xuICAgIHB1YmxpYyBjdXN0b21FbmFibGVkQ2FsbGJhY2s6IChub2Rlcz86IE5vZGVbXSB8IGFueVtdKSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gICAgLyoqXG4gICAgICogICBPcHRpb25hbDogQSBjYWxsYmFjayB0aGF0IGlzIGNhbGxlZCB3aGVuIHRoZSB1c2VyIGNsaWNrcyBvbiB0aGUgb3B0aW9uIHdoZW4gaXQncyBjdXJyZW50bHkgZGlzYWJsZWQgKGdyZXllZCBvdXQpXG4gICAgICovXG4gICAgcHVibGljIGRpc2FibGVkQ2FsbGJhY2s6IChub2RlPzogTm9kZSB8IGFueSkgPT4gdm9pZDtcbiAgICAvKipcbiAgICAgKiAgIFNob3cgdGhlIGdpdmVuIG5hbWUgKGlmIGZhbHNlLCBvbmx5IGljb24gd2lsbCBzaG93KVxuICAgICAqL1xuICAgIHB1YmxpYyBzaG93TmFtZSA9IHRydWU7XG5cbiAgICAvKipcbiAgICAgKiBlbGVtZW50IHdpdGggMCBoYXMgaGlnaGVzdCBwcmlvcml0eSBpbiBpdCdzIGdyb3VwLCBoaWdoZXIgdmFsdWVzIG1lYW4gbG93ZXIgcHJpb3JpdHlcbiAgICAgKi9cbiAgICBwdWJsaWMgcHJpb3JpdHk6IG51bWJlcjtcbiAgICAvKipcbiAgICAgKiB0aGUgZ3JvdXAgdGhpcyBvcHRpb24gYmVsb25ncyB0b1xuICAgICAqL1xuICAgIHB1YmxpYyBncm91cDogT3B0aW9uR3JvdXA7XG5cbiAgICBwdWJsaWMga2V5Ym9hcmRTaG9ydGN1dDogS2V5Ym9hcmRTaG9ydGN1dENvbmRpdGlvbjtcblxuICAgIC8qKlxuICAgICAqIE9yIGNvbmNhdCBvZiBzdXBwb3J0ZWQgZWxlbWVudCB0eXBlcyBmb3IgdGhlIGFjdGlvblxuICAgICAqL1xuICAgIHB1YmxpYyBlbGVtZW50VHlwZSA9IFtFbGVtZW50VHlwZS5Ob2RlXTtcbiAgICBwdWJsaWMgcGVybWlzc2lvbnM6IHN0cmluZ1tdO1xuICAgIHB1YmxpYyBjb25zdHJhaW5zOiBDb25zdHJhaW5bXTtcbiAgICBwdWJsaWMgcGVybWlzc2lvbnNNb2RlID0gSGlkZU1vZGUuRGlzYWJsZTtcbiAgICBwdWJsaWMgcGVybWlzc2lvbnNSaWdodE1vZGUgPSBOb2Rlc1JpZ2h0TW9kZS5Mb2NhbDtcbiAgICBwdWJsaWMgdG9vbHBlcm1pc3Npb25zOiBzdHJpbmdbXTtcbiAgICBwdWJsaWMgdG9vbHBlcm1pc3Npb25zTW9kZSA9IEhpZGVNb2RlLkRpc2FibGU7XG4gICAgcHVibGljIHNjb3BlczogU2NvcGVbXTtcblxuICAgIC8qKlxuICAgICAqXG4gICAgICogQHBhcmFtIG5hbWUgdGhlIG9wdGlvbiBuYW1lLCB3aGljaCBpcyB1c2VkIGZvciB0aGUgdHJhbnNsYXRpb25cbiAgICAgKiBAcGFyYW0gaWNvbiBBIG1hdGVyaWFsIGljb24gbmFtZVxuICAgICAqIEBwYXJhbSBjYWxsYmFjayBBIGZ1bmN0aW9uIGNhbGxiYWNrIHdoZW4gdGhpcyBvcHRpb24gaXMgY2hvc2VuLiBXaWxsIGdldCB0aGUgY3VycmVudCBub2RlXG4gICAgICogcGFzc2VkIGFzIGFuIGFyZ3VtZW50LiBJZiBhdmFpbGFibGUsIHRoZSByZWxldmFudCBub2RlcyBhcmUgcGFzc2VkIGFzIHNlY29uZCBhcmd1bWVudCxcbiAgICAgKiBpLmUuLCB0aGUgc2VsZWN0aW9uLCBpZiBhbnksIG9yIHRoZSBjdXJyZW50IG5vZGUgYXMgc2luZ2xlLWl0ZW0gYXJyYXkgb3RoZXJ3aXNlLlxuICAgICAqL1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwdWJsaWMgbmFtZTogc3RyaW5nLFxuICAgICAgICBwdWJsaWMgaWNvbjogc3RyaW5nLFxuICAgICAgICAvLyBUT0RPOiBNYXliZSBzd2l0Y2ggdG8gb25seSBwcm92aWRpbmcgdGhlIHNlY29uZCBwYXJhbWV0ZXIuXG4gICAgICAgIHB1YmxpYyBjYWxsYmFjazogKG9iamVjdD86IE5vZGUgfCBhbnksIG9iamVjdHM/OiAoTm9kZSB8IGFueSlbXSkgPT4gdm9pZCxcbiAgICApIHt9XG59XG5leHBvcnQgY2xhc3MgQ3VzdG9tT3B0aW9ucyB7XG4gICAgLyoqXG4gICAgICogSWYgdHJ1ZSwgYWxsIGV4aXN0aW5nIG9yIGF2YWlsYWJsZSBvcHRpb25zIGZvciB0aGUgb2JqZWN0IHN0YXlcbiAgICAgKiBJZiBmYWxzZSwgbm8gb3B0aW9ucyB3aWxsIGJlIHNldCwgb25seSB0aGUgb3B0aW9ucyBpbiBcImFkZE9wdGlvbnNcIiBhcmUgdXNlZFxuICAgICAqL1xuICAgIHB1YmxpYyB1c2VEZWZhdWx0T3B0aW9ucz8gPSB0cnVlO1xuICAgIC8qKlxuICAgICAqIExpc3Qgb2YgaWRzIG9mIG9wdGlvbnMgdG8gZXhwbGljaXRseSBzdXBwb3J0XG4gICAgICovXG4gICAgcHVibGljIHN1cHBvcnRlZE9wdGlvbnM/OiBzdHJpbmdbXTtcbiAgICAvKipcbiAgICAgKiBMaXN0IG9mIGlkcyBvZiBvcHRpb25zIHRvIGV4cGxpY2l0bHkgcmVtb3ZlXG4gICAgICogT25seSBzdXBwb3J0ZWQgaWYgc3VwcG9ydGVkT3B0aW9ucyBpcyBlbXB0eVxuICAgICAqL1xuICAgIHB1YmxpYyByZW1vdmVPcHRpb25zPzogc3RyaW5nW107XG4gICAgLyoqXG4gICAgICogT3B0aW9ucyB0byBhZGQvaW5zZXJ0IGludG8gdGhlIG1lbnVcbiAgICAgKi9cbiAgICBwdWJsaWMgYWRkT3B0aW9ucz86IE9wdGlvbkl0ZW1bXTtcbn1cbmV4cG9ydCBlbnVtIEhpZGVNb2RlIHtcbiAgICBEaXNhYmxlLFxuICAgIEhpZGUsXG59XG5leHBvcnQgZW51bSBTY29wZSB7XG4gICAgUmVuZGVyID0gJ1JlbmRlcicsXG4gICAgU2VhcmNoID0gJ1NlYXJjaCcsXG4gICAgU2VhcmNoQ29sbGVjdGlvbnMgPSAnU2VhcmNoQ29sbGVjdGlvbnMnLFxuICAgIFNhdmVkU2VhcmNoZXMgPSAnU2F2ZWRTZWFyY2hlcycsXG4gICAgQ29sbGVjdGlvbnNSZWZlcmVuY2VzID0gJ0NvbGxlY3Rpb25zUmVmZXJlbmNlcycsXG4gICAgQ29sbGVjdGlvbnNQcm9wb3NhbHMgPSAnQ29sbGVjdGlvbnNQcm9wb3NhbHMnLFxuICAgIENvbGxlY3Rpb25zQ29sbGVjdGlvbiA9ICdDb2xsZWN0aW9uc0NvbGxlY3Rpb24nLFxuICAgIFdvcmtzcGFjZUxpc3QgPSAnV29ya3NwYWNlTGlzdCcsXG4gICAgV29ya3NwYWNlVHJlZSA9ICdXb3Jrc3BhY2VUcmVlJyxcbiAgICBTaGFyaW5nID0gJ1NoYXJpbmcnLFxuICAgIE9lciA9ICdPZXInLFxuICAgIFVzZXJNYW5hZ2VtZW50ID0gJ1VzZXJNYW5hZ2VtZW50JyxcbiAgICBTdHJlYW0gPSAnU3RyZWFtJyxcbiAgICBDcmVhdGVNZW51ID0gJ0NyZWF0ZU1lbnUnLFxuXG4gICAgTWVkaWFjZW50ZXJOb2Rlc0xpc3QgPSAnTWVkaWFjZW50ZXJOb2Rlc0xpc3QnLFxuICAgIEFkbWluID0gJ0FkbWluJywgLy8gQWRtaW4gVG9vbHMgLyBEZWJ1Z2dpbmdcbn1cbmV4cG9ydCBlbnVtIEVsZW1lbnRUeXBlIHtcbiAgICBOb2RlLFxuICAgIE5vZGVDaGlsZCwgLy8gQ2hpbGQgb2JqZWN0XG4gICAgTWFwUmVmLCAvLyBNYXAgcmVmIChsaW5rIHRvIGFub3RoZXIgbWFwKVxuICAgIE5vZGVQdWJsaXNoZWRDb3B5LFxuICAgIE5vZGVCbG9ja2VkSW1wb3J0LCAvLyBub2RlIHdpdGggcHJvcGVydHkgY2NtOmltcG9ydGJsb2NrZWQgPT0gdHJ1ZVxuICAgIE5vZGVQcm9wb3NhbCwgLy8gbm9kZSBwcm9wb3NhbCBmb3IgYSBjb2xsZWN0aW9uXG4gICAgUGVyc29uLFxuICAgIEdyb3VwLFxuICAgIFNhdmVkU2VhcmNoLFxuICAgIFVua25vd24sXG59XG5leHBvcnQgY2xhc3MgT3B0aW9uR3JvdXAge1xuICAgIC8qKlxuICAgICAqIEBwYXJhbSBpZCBUaGUgZ3JvdXAgaWRlbnRpZmllci4gVXNlZCB0byBzZXBlcmF0ZSBlbGVtZW50cyBiYXNlZCBvbiB0aGUgZ3JvdXBcbiAgICAgKiBAcGFyYW0gcHJpb3JpdHkgR3JvdXAgd2l0aCAwIGhhcyBoaWdoZXN0IHByaW9yaXR5LCBoaWdoZXIgdmFsdWVzIG1lYW4gbG93ZXIgcHJpb3JpdHlcbiAgICAgKi9cbiAgICBjb25zdHJ1Y3RvcihwdWJsaWMgaWQ6IHN0cmluZywgcHVibGljIHByaW9yaXR5OiBudW1iZXIpIHt9XG59XG5leHBvcnQgY2xhc3MgRGVmYXVsdEdyb3VwcyB7XG4gICAgc3RhdGljIFByaW1hcnkgPSBuZXcgT3B0aW9uR3JvdXAoJ1ByaW1hcnknLCAxMCk7XG4gICAgc3RhdGljIENyZWF0ZSA9IG5ldyBPcHRpb25Hcm91cCgnQ3JlYXRlJywgMTUpO1xuICAgIHN0YXRpYyBWaWV3ID0gbmV3IE9wdGlvbkdyb3VwKCdWaWV3JywgMjApO1xuICAgIHN0YXRpYyBDcmVhdGVDb25uZWN0b3IgPSBuZXcgT3B0aW9uR3JvdXAoJ0NyZWF0ZUNvbm5lY3RvcicsIDI1KTtcbiAgICBzdGF0aWMgQ3JlYXRlTHRpVG9vbHMgPSBuZXcgT3B0aW9uR3JvdXAoJ0NyZWF0ZUx0aVRvb2xzJywgMjgpO1xuICAgIHN0YXRpYyBSZXVzZSA9IG5ldyBPcHRpb25Hcm91cCgnUmV1c2UnLCAzMCk7XG4gICAgc3RhdGljIEVkaXQgPSBuZXcgT3B0aW9uR3JvdXAoJ0VkaXQnLCA0MCk7XG4gICAgc3RhdGljIEZpbGVPcGVyYXRpb25zID0gbmV3IE9wdGlvbkdyb3VwKCdGaWxlT3BlcmF0aW9ucycsIDUwKTtcbiAgICBzdGF0aWMgRGVsZXRlID0gbmV3IE9wdGlvbkdyb3VwKCdEZWxldGUnLCA2MCk7XG4gICAgc3RhdGljIFRvZ2dsZXMgPSBuZXcgT3B0aW9uR3JvdXAoJ1RvZ2dsZXMnLCA3MCk7XG59XG5leHBvcnQgZW51bSBDb25zdHJhaW4ge1xuICAgIENvbGxlY3Rpb25SZWZlcmVuY2UsIC8vIG9wdGlvbiBpcyBvbmx5IHZpc2libGUgZm9yIGNvbGxlY3Rpb24gcmVmZXJlbmNlc1xuICAgIE5vQ29sbGVjdGlvblJlZmVyZW5jZSwgLy8gb3B0aW9uIGlzIG9ubHkgdmlzaWJsZSBmb3Igbm9uLWNvbGxlY3Rpb24gcmVmZXJlbmNlc1xuICAgIERpcmVjdG9yeSwgLy8gb25seSB2aXNpYmxlIGZvciBkaXJlY3RvcmllcyAoY2NtOm1hcClcbiAgICBDb2xsZWN0aW9ucywgLy8gb25seSB2aXNpYmxlIGZvciBjb2xsZWN0aW9uc1xuICAgIEZpbGVzLCAvLyBvbmx5IHZpc2libGUgZm9yIGZpbGVzIChjY206aW8pXG4gICAgRmlsZXNBbmREaXJlY3RvcmllcywgLy8gb25seSB2aXNpYmxlIGZvciBmaWxlcyBhbmQgZGlyZWN0b3JpZXMgKGNjbTppbyAvIGNjbTptYXApIC0gbm8gY29sbGVjdGlvbnMhXG4gICAgQWRtaW4sIC8vIG9ubHkgdmlzaWJsZSBpZiB1c2VyIGlzIGFkbWluIG9yIGVzRGVidWcgaXMgZW5hYmxlZCBvbiB3aW5kb3cgY29tcG9uZW50XG4gICAgQWRtaW5PckRlYnVnLCAvLyBvbmx5IHZpc2libGUgaWYgdXNlciBpcyBhZG1pbiBvciBlc0RlYnVnIGlzIGVuYWJsZWQgb24gd2luZG93IGNvbXBvbmVudFxuICAgIE5vQnVsaywgLy8gTm8gc3VwcG9ydCBmb3IgYnVsayAobXVsdGlwbGUgb2JqZWN0cylcbiAgICBOb1NlbGVjdGlvbiwgLy8gT25seSB2aXNpYmxlIHdoZW4gY3VycmVudGx5IG5vIGVsZW1lbnQgaXMgc2VsZWN0ZWRcbiAgICBDbGlwYm9hcmRDb250ZW50LCAvLyBPbmx5IHZpc2libGUgd2hlbiB0aGUgY2xpcGJvYXJkIGhhcyBjb250ZW50XG4gICAgQWRkT2JqZWN0cywgLy8gT25seSB2aXNpYmxlIHdoZW4gaXQgaXMgcG9zc2libGUgdG8gYWRkIG9iamVjdHMgaW50byB0aGUgY3VycmVudCBsaXN0XG4gICAgSG9tZVJlcG9zaXRvcnksIC8vIE9ubHkgdmlzaWJsZSB3aGVuIHRoZSBub2RlcyBhcmUgZnJvbSB0aGUgbG9jYWwgKGhvbWUpIHJlcG9zaXRvcnlcbiAgICBVc2VyLCAvLyBPbmx5IHZpc2libGUgd2hlbiBhIHVzZXIgaXMgcHJlc2VudCBhbmQgbG9nZ2VkIGluXG4gICAgTm9TY29wZSwgLy8gT25seSB2aXNpYmxlIHdoZW4gbm8gY3VycmVudCBzY29wZSAoaS5lIFwic2FmZVwiIHNjb3BlKSBpcyBzZXRcbiAgICBSZXVybE1vZGUsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGEgcmV1cmwgaXMgcHJlc2VudCAoY2FsbGVkIHRvIHBpY2sgb2JqZWN0IGZyb20gbG1zKVxuICAgIExUSU1vZGUsIC8vIE9ubHkgdmlzaWJsZSB3aGVuIGEgbHRpIHNlc3Npb24gaXMgcHJlc2VudCAoY2FsbGVkIHRvIHBpY2sgb2JqZWN0IGZyb20gbHRpIHBsYXRmb3JtKVxufVxuXG5leHBvcnQgZW51bSBUYXJnZXQge1xuICAgIExpc3QsIC8vIFRhcmdldCBpcyB0aGUgTGlzdFRhYmxlQ29tcG9uZW50XG4gICAgTGlzdERyb3Bkb3duLFxuICAgIEFjdGlvbmJhcixcbiAgICBDcmVhdGVNZW51LFxufVxuIl19