@vendure/admin-ui 2.1.4 → 2.2.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (36) hide show
  1. package/catalog/components/product-list/product-list.component.d.ts +1 -1
  2. package/catalog/components/product-variant-list/product-variant-list.component.d.ts +1 -1
  3. package/core/common/utilities/custom-field-default-value.d.ts +1 -1
  4. package/core/common/version.d.ts +1 -1
  5. package/core/components/app-shell/app-shell.component.d.ts +1 -0
  6. package/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.d.ts +9 -3
  7. package/core/core.module.d.ts +1 -1
  8. package/core/providers/i18n/i18n.service.d.ts +6 -0
  9. package/core/shared/components/order-state-label/order-state-label.component.d.ts +1 -1
  10. package/core/shared/dynamic-form-inputs/default-form-inputs.d.ts +1 -1
  11. package/esm2022/core/common/utilities/configurable-operation-utils.mjs +1 -1
  12. package/esm2022/core/common/version.mjs +2 -2
  13. package/esm2022/core/components/app-shell/app-shell.component.mjs +15 -10
  14. package/esm2022/core/components/ui-language-switcher-dialog/ui-language-switcher-dialog.component.mjs +42 -273
  15. package/esm2022/core/core.module.mjs +13 -5
  16. package/esm2022/core/providers/i18n/i18n.service.mjs +11 -1
  17. package/esm2022/core/providers/localization/localization.service.mjs +4 -4
  18. package/esm2022/core/shared/components/asset-preview/asset-preview.component.mjs +3 -3
  19. package/esm2022/core/shared/components/configurable-input/configurable-input.component.mjs +1 -1
  20. package/esm2022/core/shared/components/datetime-picker/datetime-picker.service.mjs +1 -1
  21. package/esm2022/marketing/components/promotion-detail/promotion-detail.component.mjs +8 -8
  22. package/esm2022/react/react-hooks/use-query.mjs +61 -1
  23. package/esm2022/settings/components/payment-method-detail/payment-method-detail.component.mjs +8 -8
  24. package/fesm2022/vendure-admin-ui-core.mjs +66 -276
  25. package/fesm2022/vendure-admin-ui-core.mjs.map +1 -1
  26. package/fesm2022/vendure-admin-ui-marketing.mjs +7 -7
  27. package/fesm2022/vendure-admin-ui-marketing.mjs.map +1 -1
  28. package/fesm2022/vendure-admin-ui-react.mjs +61 -1
  29. package/fesm2022/vendure-admin-ui-react.mjs.map +1 -1
  30. package/fesm2022/vendure-admin-ui-settings.mjs +7 -7
  31. package/fesm2022/vendure-admin-ui-settings.mjs.map +1 -1
  32. package/package.json +14 -14
  33. package/react/react-hooks/use-query.d.ts +59 -0
  34. package/settings/components/stock-location-list/stock-location-list.component.d.ts +1 -1
  35. package/static/i18n-messages/fa.json +1 -1
  36. package/static/vendure-ui-config.json +260 -5
@@ -1,283 +1,52 @@
1
1
  import { ChangeDetectionStrategy, Component } from '@angular/core';
2
+ import { Subject, finalize, take, takeUntil } from 'rxjs';
2
3
  import { CurrencyCode } from '../../common/generated-types';
3
4
  import * as i0 from "@angular/core";
4
- import * as i1 from "@angular/common";
5
- import * as i2 from "@angular/forms";
6
- import * as i3 from "@ng-select/ng-select";
7
- import * as i4 from "../../shared/components/form-field/form-field.component";
8
- import * as i5 from "../../shared/components/form-field/form-field-control.directive";
9
- import * as i6 from "../../shared/components/modal-dialog/dialog-buttons.directive";
10
- import * as i7 from "../../shared/components/modal-dialog/dialog-title.directive";
11
- import * as i8 from "../../shared/components/labeled-data/labeled-data.component";
12
- import * as i9 from "@ngx-translate/core";
13
- import * as i10 from "../../shared/pipes/locale-currency-name.pipe";
14
- import * as i11 from "../../shared/pipes/sort.pipe";
15
- import * as i12 from "../../shared/pipes/locale-date.pipe";
16
- import * as i13 from "../../shared/pipes/locale-currency.pipe";
17
- import * as i14 from "../../shared/pipes/locale-language-name.pipe";
18
- import * as i15 from "../../shared/pipes/locale-region-name.pipe";
5
+ import * as i1 from "../../data/providers/data.service";
6
+ import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
8
+ import * as i4 from "@ng-select/ng-select";
9
+ import * as i5 from "../../shared/components/form-field/form-field.component";
10
+ import * as i6 from "../../shared/components/form-field/form-field-control.directive";
11
+ import * as i7 from "../../shared/components/modal-dialog/dialog-buttons.directive";
12
+ import * as i8 from "../../shared/components/modal-dialog/dialog-title.directive";
13
+ import * as i9 from "../../shared/components/labeled-data/labeled-data.component";
14
+ import * as i10 from "@ngx-translate/core";
15
+ import * as i11 from "../../shared/pipes/locale-currency-name.pipe";
16
+ import * as i12 from "../../shared/pipes/sort.pipe";
17
+ import * as i13 from "../../shared/pipes/locale-date.pipe";
18
+ import * as i14 from "../../shared/pipes/locale-currency.pipe";
19
+ import * as i15 from "../../shared/pipes/locale-language-name.pipe";
20
+ import * as i16 from "../../shared/pipes/locale-region-name.pipe";
19
21
  export class UiLanguageSwitcherDialogComponent {
20
- constructor() {
22
+ constructor(dataService, changeDetector) {
23
+ this.dataService = dataService;
24
+ this.changeDetector = changeDetector;
25
+ this.isLoading = true;
26
+ this.destroy$ = new Subject();
21
27
  this.availableLanguages = [];
22
- this.availableLocales = [
23
- 'AF',
24
- 'AL',
25
- 'DZ',
26
- 'AS',
27
- 'AD',
28
- 'AO',
29
- 'AI',
30
- 'AQ',
31
- 'AG',
32
- 'AR',
33
- 'AM',
34
- 'AW',
35
- 'AU',
36
- 'AT',
37
- 'AZ',
38
- 'BS',
39
- 'BH',
40
- 'BD',
41
- 'BB',
42
- 'BY',
43
- 'BE',
44
- 'BZ',
45
- 'BJ',
46
- 'BM',
47
- 'BT',
48
- 'BO',
49
- 'BQ',
50
- 'BA',
51
- 'BW',
52
- 'BV',
53
- 'BR',
54
- 'IO',
55
- 'BN',
56
- 'BG',
57
- 'BF',
58
- 'BI',
59
- 'CV',
60
- 'KH',
61
- 'CM',
62
- 'CA',
63
- 'KY',
64
- 'CF',
65
- 'TD',
66
- 'CL',
67
- 'CN',
68
- 'CX',
69
- 'CC',
70
- 'CO',
71
- 'KM',
72
- 'CD',
73
- 'CG',
74
- 'CK',
75
- 'CR',
76
- 'HR',
77
- 'CU',
78
- 'CW',
79
- 'CY',
80
- 'CZ',
81
- 'CI',
82
- 'DK',
83
- 'DJ',
84
- 'DM',
85
- 'DO',
86
- 'EC',
87
- 'EG',
88
- 'SV',
89
- 'GQ',
90
- 'ER',
91
- 'EE',
92
- 'SZ',
93
- 'ET',
94
- 'FK',
95
- 'FO',
96
- 'FJ',
97
- 'FI',
98
- 'FR',
99
- 'GF',
100
- 'PF',
101
- 'TF',
102
- 'GA',
103
- 'GM',
104
- 'GE',
105
- 'DE',
106
- 'GH',
107
- 'GI',
108
- 'GR',
109
- 'GL',
110
- 'GD',
111
- 'GP',
112
- 'GU',
113
- 'GT',
114
- 'GG',
115
- 'GN',
116
- 'GW',
117
- 'GY',
118
- 'HT',
119
- 'HM',
120
- 'VA',
121
- 'HN',
122
- 'HK',
123
- 'HU',
124
- 'IS',
125
- 'IN',
126
- 'ID',
127
- 'IR',
128
- 'IQ',
129
- 'IE',
130
- 'IM',
131
- 'IL',
132
- 'IT',
133
- 'JM',
134
- 'JP',
135
- 'JE',
136
- 'JO',
137
- 'KZ',
138
- 'KE',
139
- 'KI',
140
- 'KP',
141
- 'KR',
142
- 'KW',
143
- 'KG',
144
- 'LA',
145
- 'LV',
146
- 'LB',
147
- 'LS',
148
- 'LR',
149
- 'LY',
150
- 'LI',
151
- 'LT',
152
- 'LU',
153
- 'MO',
154
- 'MG',
155
- 'MW',
156
- 'MY',
157
- 'MV',
158
- 'ML',
159
- 'MT',
160
- 'MH',
161
- 'MQ',
162
- 'MR',
163
- 'MU',
164
- 'YT',
165
- 'MX',
166
- 'FM',
167
- 'MD',
168
- 'MC',
169
- 'MN',
170
- 'ME',
171
- 'MS',
172
- 'MA',
173
- 'MZ',
174
- 'MM',
175
- 'NA',
176
- 'NR',
177
- 'NP',
178
- 'NL',
179
- 'NC',
180
- 'NZ',
181
- 'NI',
182
- 'NE',
183
- 'NG',
184
- 'NU',
185
- 'NF',
186
- 'MK',
187
- 'MP',
188
- 'NO',
189
- 'OM',
190
- 'PK',
191
- 'PW',
192
- 'PS',
193
- 'PA',
194
- 'PG',
195
- 'PY',
196
- 'PE',
197
- 'PH',
198
- 'PN',
199
- 'PL',
200
- 'PT',
201
- 'PR',
202
- 'QA',
203
- 'RO',
204
- 'RU',
205
- 'RW',
206
- 'RE',
207
- 'BL',
208
- 'SH',
209
- 'KN',
210
- 'LC',
211
- 'MF',
212
- 'PM',
213
- 'VC',
214
- 'WS',
215
- 'SM',
216
- 'ST',
217
- 'SA',
218
- 'SN',
219
- 'RS',
220
- 'SC',
221
- 'SL',
222
- 'SG',
223
- 'SX',
224
- 'SK',
225
- 'SI',
226
- 'SB',
227
- 'SO',
228
- 'ZA',
229
- 'GS',
230
- 'SS',
231
- 'ES',
232
- 'LK',
233
- 'SD',
234
- 'SR',
235
- 'SJ',
236
- 'SE',
237
- 'CH',
238
- 'SY',
239
- 'TW',
240
- 'TJ',
241
- 'TZ',
242
- 'TH',
243
- 'TL',
244
- 'TG',
245
- 'TK',
246
- 'TO',
247
- 'TT',
248
- 'TN',
249
- 'TR',
250
- 'TM',
251
- 'TC',
252
- 'TV',
253
- 'UG',
254
- 'UA',
255
- 'AE',
256
- 'GB',
257
- 'UM',
258
- 'US',
259
- 'UY',
260
- 'UZ',
261
- 'VU',
262
- 'VE',
263
- 'VN',
264
- 'VG',
265
- 'VI',
266
- 'WF',
267
- 'EH',
268
- 'YE',
269
- 'ZM',
270
- 'ZW',
271
- 'AX',
272
- ];
28
+ this.availableLocales = [];
273
29
  this.availableCurrencyCodes = Object.values(CurrencyCode);
274
- this.selectedCurrencyCode = 'USD';
275
30
  this.now = new Date().toISOString();
276
31
  const browserLanguage = navigator.language.split('-');
277
32
  this.browserDefaultLocale = browserLanguage.length === 1 ? undefined : browserLanguage[1];
278
33
  }
279
34
  ngOnInit() {
280
35
  this.updatePreviewLocale();
36
+ this.dataService.settings
37
+ .getActiveChannel()
38
+ .mapStream(data => data.activeChannel.defaultCurrencyCode)
39
+ .pipe(take(1), takeUntil(this.destroy$), finalize(() => {
40
+ this.isLoading = false;
41
+ this.changeDetector.markForCheck();
42
+ }))
43
+ .subscribe(x => {
44
+ this.selectedCurrencyCode = x;
45
+ });
46
+ }
47
+ ngOnDestroy() {
48
+ this.destroy$.next();
49
+ this.destroy$.complete();
281
50
  }
282
51
  updatePreviewLocale() {
283
52
  if (!this.currentLocale || this.currentLocale.length === 0 || this.currentLocale.length === 2) {
@@ -296,11 +65,11 @@ export class UiLanguageSwitcherDialogComponent {
296
65
  }
297
66
  return [languageCode, region.toUpperCase()].join('-');
298
67
  }
299
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UiLanguageSwitcherDialogComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
300
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UiLanguageSwitcherDialogComponent, selector: "vdr-ui-language-switcher", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n<div class=\"clr-row\">\r\n <div class=\"flex pl-2 mb-2\">\r\n <vdr-form-field [label]=\"'common.language' | translate\" class=\"mr-2\">\r\n <select name=\"options\" [(ngModel)]=\"currentLanguage\" (ngModelChange)=\"updatePreviewLocale()\">\r\n <option *ngFor=\"let code of availableLanguages | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeLanguageName }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.locale' | translate\">\r\n <ng-select\r\n appendTo=\"body\"\r\n [items]=\"availableLocales\"\r\n [(ngModel)]=\"currentLocale\"\r\n (ngModelChange)=\"updatePreviewLocale()\"\r\n [placeholder]=\"'common.browser-default' | translate\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header\">\r\n <span class=\"pr-1\">{{ 'common.sample-formatting' | translate }}:</span\r\n ><strong>{{ previewLocale | localeLanguageName : previewLocale }}</strong>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.medium-date' | translate\">\r\n {{ now | localeDate : 'medium' : previewLocale }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.short-date' | translate\">\r\n {{ now | localeDate : 'short' : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <select name=\"currency\" class=\"currency\" [(ngModel)]=\"selectedCurrencyCode\">\r\n <option *ngFor=\"let code of availableCurrencyCodes | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeCurrencyName : 'full' : previewLocale }})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ 12345 | localeCurrency : selectedCurrencyCode : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"setLanguage()\" class=\"btn btn-primary\">\r\n {{ 'common.set-language' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: ["select.currency{max-width:200px}input.locale{text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i3.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i3.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: i4.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i5.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: i6.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i7.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i8.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "pipe", type: i1.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i9.TranslatePipe, name: "translate" }, { kind: "pipe", type: i10.LocaleCurrencyNamePipe, name: "localeCurrencyName" }, { kind: "pipe", type: i11.SortPipe, name: "sort" }, { kind: "pipe", type: i12.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i13.LocaleCurrencyPipe, name: "localeCurrency" }, { kind: "pipe", type: i14.LocaleLanguageNamePipe, name: "localeLanguageName" }, { kind: "pipe", type: i15.LocaleRegionNamePipe, name: "localeRegionName" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
68
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UiLanguageSwitcherDialogComponent, deps: [{ token: i1.DataService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
69
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.2", type: UiLanguageSwitcherDialogComponent, selector: "vdr-ui-language-switcher", ngImport: i0, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n\r\n<ng-container *ngIf=\"isLoading\">\r\n <div class=\"progress loop\"></div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <div class=\"clr-row\">\r\n <div class=\"flex pl-2 mb-2\">\r\n <vdr-form-field [label]=\"'common.language' | translate\" class=\"mr-2\">\r\n <select name=\"options\" [(ngModel)]=\"currentLanguage\" (ngModelChange)=\"updatePreviewLocale()\">\r\n <option *ngFor=\"let code of availableLanguages | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeLanguageName }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.locale' | translate\">\r\n <ng-select appendTo=\"body\" [items]=\"availableLocales\" [(ngModel)]=\"currentLocale\"\r\n (ngModelChange)=\"updatePreviewLocale()\" [placeholder]=\"'common.browser-default' | translate\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <span class=\"pr-1\">{{ 'common.sample-formatting' | translate }}:</span><strong>{{ previewLocale |\r\n localeLanguageName : previewLocale }}</strong>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.medium-date' | translate\">\r\n {{ now | localeDate : 'medium' : previewLocale }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.short-date' | translate\">\r\n {{ now | localeDate : 'short' : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <select name=\"currency\" class=\"currency\" [(ngModel)]=\"selectedCurrencyCode\">\r\n <option *ngFor=\"let code of availableCurrencyCodes | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeCurrencyName : 'full' : previewLocale }})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ 12345 | localeCurrency : selectedCurrencyCode : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"setLanguage()\" class=\"btn btn-primary\">\r\n {{ 'common.set-language' | translate }}\r\n </button>\r\n</ng-template>", styles: ["select.currency{max-width:200px}input.locale{text-transform:uppercase}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i3.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i4.NgSelectComponent, selector: "ng-select", inputs: ["bindLabel", "bindValue", "markFirst", "placeholder", "notFoundText", "typeToSearchText", "addTagText", "loadingText", "clearAllText", "appearance", "dropdownPosition", "appendTo", "loading", "closeOnSelect", "hideSelected", "selectOnTab", "openOnEnter", "maxSelectedItems", "groupBy", "groupValue", "bufferAmount", "virtualScroll", "selectableGroup", "selectableGroupAsModel", "searchFn", "trackByFn", "clearOnBackspace", "labelForId", "inputAttrs", "tabIndex", "readonly", "searchWhileComposing", "minTermLength", "editableSearchTerm", "keyDownFn", "typeahead", "multiple", "addTag", "searchable", "clearable", "isOpen", "items", "compareWith", "clearSearchOnAdd", "deselectOnClick"], outputs: ["blur", "focus", "change", "open", "close", "search", "clear", "add", "remove", "scroll", "scrollToEnd"] }, { kind: "directive", type: i4.NgOptionTemplateDirective, selector: "[ng-option-tmp]" }, { kind: "directive", type: i4.NgLabelTemplateDirective, selector: "[ng-label-tmp]" }, { kind: "component", type: i5.FormFieldComponent, selector: "vdr-form-field", inputs: ["label", "for", "tooltip", "errors", "readOnlyToggle"] }, { kind: "directive", type: i6.FormFieldControlDirective, selector: "input, textarea, select" }, { kind: "directive", type: i7.DialogButtonsDirective, selector: "[vdrDialogButtons]" }, { kind: "directive", type: i8.DialogTitleDirective, selector: "[vdrDialogTitle]" }, { kind: "component", type: i9.LabeledDataComponent, selector: "vdr-labeled-data", inputs: ["label"] }, { kind: "pipe", type: i2.UpperCasePipe, name: "uppercase" }, { kind: "pipe", type: i10.TranslatePipe, name: "translate" }, { kind: "pipe", type: i11.LocaleCurrencyNamePipe, name: "localeCurrencyName" }, { kind: "pipe", type: i12.SortPipe, name: "sort" }, { kind: "pipe", type: i13.LocaleDatePipe, name: "localeDate" }, { kind: "pipe", type: i14.LocaleCurrencyPipe, name: "localeCurrency" }, { kind: "pipe", type: i15.LocaleLanguageNamePipe, name: "localeLanguageName" }, { kind: "pipe", type: i16.LocaleRegionNamePipe, name: "localeRegionName" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
301
70
  }
302
71
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImport: i0, type: UiLanguageSwitcherDialogComponent, decorators: [{
303
72
  type: Component,
304
- args: [{ selector: 'vdr-ui-language-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n<div class=\"clr-row\">\r\n <div class=\"flex pl-2 mb-2\">\r\n <vdr-form-field [label]=\"'common.language' | translate\" class=\"mr-2\">\r\n <select name=\"options\" [(ngModel)]=\"currentLanguage\" (ngModelChange)=\"updatePreviewLocale()\">\r\n <option *ngFor=\"let code of availableLanguages | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeLanguageName }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.locale' | translate\">\r\n <ng-select\r\n appendTo=\"body\"\r\n [items]=\"availableLocales\"\r\n [(ngModel)]=\"currentLocale\"\r\n (ngModelChange)=\"updatePreviewLocale()\"\r\n [placeholder]=\"'common.browser-default' | translate\"\r\n >\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"card-header\">\r\n <span class=\"pr-1\">{{ 'common.sample-formatting' | translate }}:</span\r\n ><strong>{{ previewLocale | localeLanguageName : previewLocale }}</strong>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.medium-date' | translate\">\r\n {{ now | localeDate : 'medium' : previewLocale }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.short-date' | translate\">\r\n {{ now | localeDate : 'short' : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <select name=\"currency\" class=\"currency\" [(ngModel)]=\"selectedCurrencyCode\">\r\n <option *ngFor=\"let code of availableCurrencyCodes | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeCurrencyName : 'full' : previewLocale }})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ 12345 | localeCurrency : selectedCurrencyCode : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"setLanguage()\" class=\"btn btn-primary\">\r\n {{ 'common.set-language' | translate }}\r\n </button>\r\n</ng-template>\r\n", styles: ["select.currency{max-width:200px}input.locale{text-transform:uppercase}\n"] }]
305
- }], ctorParameters: function () { return []; } });
306
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cvdWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cvdWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxTQUFTLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFFM0UsT0FBTyxFQUFFLFlBQVksRUFBZ0IsTUFBTSw4QkFBOEIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFTMUUsTUFBTSxPQUFPLGlDQUFpQztJQXNRMUM7UUFuUUEsdUJBQWtCLEdBQW1CLEVBQUUsQ0FBQztRQUV4QyxxQkFBZ0IsR0FBYTtZQUN6QixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7WUFDSixJQUFJO1lBQ0osSUFBSTtZQUNKLElBQUk7U0FDUCxDQUFDO1FBQ0YsMkJBQXNCLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRCx5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFHcEIsUUFBRyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsV0FBVyxFQUFFLENBQUM7UUFHcEMsTUFBTSxlQUFlLEdBQUcsU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLG9CQUFvQixHQUFHLGVBQWUsQ0FBQyxNQUFNLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUM5RixDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzFGO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsWUFBMEIsRUFBRSxNQUFlO1FBQ2xFLElBQUksQ0FBQyxNQUFNLEVBQUU7WUFDVCxPQUFPLFlBQVksQ0FBQztTQUN2QjtRQUNELE9BQU8sQ0FBQyxZQUFZLEVBQUUsTUFBTSxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQzFELENBQUM7OEdBbFNRLGlDQUFpQztrR0FBakMsaUNBQWlDLGdFQ1g5Qyxpc0dBZ0VBOzsyRkRyRGEsaUNBQWlDO2tCQU43QyxTQUFTOytCQUNJLDBCQUEwQixtQkFHbkIsdUJBQXVCLENBQUMsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdGlvblN0cmF0ZWd5LCBDb21wb25lbnQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgQ3VycmVuY3lDb2RlLCBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnR5cGVzJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItdWktbGFuZ3VhZ2Utc3dpdGNoZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgRGlhbG9nPFtMYW5ndWFnZUNvZGUsIHN0cmluZyB8IHVuZGVmaW5lZF0+LCBPbkluaXQge1xyXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBbTGFuZ3VhZ2VDb2RlLCBzdHJpbmcgfCB1bmRlZmluZWRdKSA9PiB2b2lkO1xyXG4gICAgY3VycmVudExhbmd1YWdlOiBMYW5ndWFnZUNvZGU7XHJcbiAgICBhdmFpbGFibGVMYW5ndWFnZXM6IExhbmd1YWdlQ29kZVtdID0gW107XHJcbiAgICBjdXJyZW50TG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBhdmFpbGFibGVMb2NhbGVzOiBzdHJpbmdbXSA9IFtcclxuICAgICAgICAnQUYnLFxyXG4gICAgICAgICdBTCcsXHJcbiAgICAgICAgJ0RaJyxcclxuICAgICAgICAnQVMnLFxyXG4gICAgICAgICdBRCcsXHJcbiAgICAgICAgJ0FPJyxcclxuICAgICAgICAnQUknLFxyXG4gICAgICAgICdBUScsXHJcbiAgICAgICAgJ0FHJyxcclxuICAgICAgICAnQVInLFxyXG4gICAgICAgICdBTScsXHJcbiAgICAgICAgJ0FXJyxcclxuICAgICAgICAnQVUnLFxyXG4gICAgICAgICdBVCcsXHJcbiAgICAgICAgJ0FaJyxcclxuICAgICAgICAnQlMnLFxyXG4gICAgICAgICdCSCcsXHJcbiAgICAgICAgJ0JEJyxcclxuICAgICAgICAnQkInLFxyXG4gICAgICAgICdCWScsXHJcbiAgICAgICAgJ0JFJyxcclxuICAgICAgICAnQlonLFxyXG4gICAgICAgICdCSicsXHJcbiAgICAgICAgJ0JNJyxcclxuICAgICAgICAnQlQnLFxyXG4gICAgICAgICdCTycsXHJcbiAgICAgICAgJ0JRJyxcclxuICAgICAgICAnQkEnLFxyXG4gICAgICAgICdCVycsXHJcbiAgICAgICAgJ0JWJyxcclxuICAgICAgICAnQlInLFxyXG4gICAgICAgICdJTycsXHJcbiAgICAgICAgJ0JOJyxcclxuICAgICAgICAnQkcnLFxyXG4gICAgICAgICdCRicsXHJcbiAgICAgICAgJ0JJJyxcclxuICAgICAgICAnQ1YnLFxyXG4gICAgICAgICdLSCcsXHJcbiAgICAgICAgJ0NNJyxcclxuICAgICAgICAnQ0EnLFxyXG4gICAgICAgICdLWScsXHJcbiAgICAgICAgJ0NGJyxcclxuICAgICAgICAnVEQnLFxyXG4gICAgICAgICdDTCcsXHJcbiAgICAgICAgJ0NOJyxcclxuICAgICAgICAnQ1gnLFxyXG4gICAgICAgICdDQycsXHJcbiAgICAgICAgJ0NPJyxcclxuICAgICAgICAnS00nLFxyXG4gICAgICAgICdDRCcsXHJcbiAgICAgICAgJ0NHJyxcclxuICAgICAgICAnQ0snLFxyXG4gICAgICAgICdDUicsXHJcbiAgICAgICAgJ0hSJyxcclxuICAgICAgICAnQ1UnLFxyXG4gICAgICAgICdDVycsXHJcbiAgICAgICAgJ0NZJyxcclxuICAgICAgICAnQ1onLFxyXG4gICAgICAgICdDSScsXHJcbiAgICAgICAgJ0RLJyxcclxuICAgICAgICAnREonLFxyXG4gICAgICAgICdETScsXHJcbiAgICAgICAgJ0RPJyxcclxuICAgICAgICAnRUMnLFxyXG4gICAgICAgICdFRycsXHJcbiAgICAgICAgJ1NWJyxcclxuICAgICAgICAnR1EnLFxyXG4gICAgICAgICdFUicsXHJcbiAgICAgICAgJ0VFJyxcclxuICAgICAgICAnU1onLFxyXG4gICAgICAgICdFVCcsXHJcbiAgICAgICAgJ0ZLJyxcclxuICAgICAgICAnRk8nLFxyXG4gICAgICAgICdGSicsXHJcbiAgICAgICAgJ0ZJJyxcclxuICAgICAgICAnRlInLFxyXG4gICAgICAgICdHRicsXHJcbiAgICAgICAgJ1BGJyxcclxuICAgICAgICAnVEYnLFxyXG4gICAgICAgICdHQScsXHJcbiAgICAgICAgJ0dNJyxcclxuICAgICAgICAnR0UnLFxyXG4gICAgICAgICdERScsXHJcbiAgICAgICAgJ0dIJyxcclxuICAgICAgICAnR0knLFxyXG4gICAgICAgICdHUicsXHJcbiAgICAgICAgJ0dMJyxcclxuICAgICAgICAnR0QnLFxyXG4gICAgICAgICdHUCcsXHJcbiAgICAgICAgJ0dVJyxcclxuICAgICAgICAnR1QnLFxyXG4gICAgICAgICdHRycsXHJcbiAgICAgICAgJ0dOJyxcclxuICAgICAgICAnR1cnLFxyXG4gICAgICAgICdHWScsXHJcbiAgICAgICAgJ0hUJyxcclxuICAgICAgICAnSE0nLFxyXG4gICAgICAgICdWQScsXHJcbiAgICAgICAgJ0hOJyxcclxuICAgICAgICAnSEsnLFxyXG4gICAgICAgICdIVScsXHJcbiAgICAgICAgJ0lTJyxcclxuICAgICAgICAnSU4nLFxyXG4gICAgICAgICdJRCcsXHJcbiAgICAgICAgJ0lSJyxcclxuICAgICAgICAnSVEnLFxyXG4gICAgICAgICdJRScsXHJcbiAgICAgICAgJ0lNJyxcclxuICAgICAgICAnSUwnLFxyXG4gICAgICAgICdJVCcsXHJcbiAgICAgICAgJ0pNJyxcclxuICAgICAgICAnSlAnLFxyXG4gICAgICAgICdKRScsXHJcbiAgICAgICAgJ0pPJyxcclxuICAgICAgICAnS1onLFxyXG4gICAgICAgICdLRScsXHJcbiAgICAgICAgJ0tJJyxcclxuICAgICAgICAnS1AnLFxyXG4gICAgICAgICdLUicsXHJcbiAgICAgICAgJ0tXJyxcclxuICAgICAgICAnS0cnLFxyXG4gICAgICAgICdMQScsXHJcbiAgICAgICAgJ0xWJyxcclxuICAgICAgICAnTEInLFxyXG4gICAgICAgICdMUycsXHJcbiAgICAgICAgJ0xSJyxcclxuICAgICAgICAnTFknLFxyXG4gICAgICAgICdMSScsXHJcbiAgICAgICAgJ0xUJyxcclxuICAgICAgICAnTFUnLFxyXG4gICAgICAgICdNTycsXHJcbiAgICAgICAgJ01HJyxcclxuICAgICAgICAnTVcnLFxyXG4gICAgICAgICdNWScsXHJcbiAgICAgICAgJ01WJyxcclxuICAgICAgICAnTUwnLFxyXG4gICAgICAgICdNVCcsXHJcbiAgICAgICAgJ01IJyxcclxuICAgICAgICAnTVEnLFxyXG4gICAgICAgICdNUicsXHJcbiAgICAgICAgJ01VJyxcclxuICAgICAgICAnWVQnLFxyXG4gICAgICAgICdNWCcsXHJcbiAgICAgICAgJ0ZNJyxcclxuICAgICAgICAnTUQnLFxyXG4gICAgICAgICdNQycsXHJcbiAgICAgICAgJ01OJyxcclxuICAgICAgICAnTUUnLFxyXG4gICAgICAgICdNUycsXHJcbiAgICAgICAgJ01BJyxcclxuICAgICAgICAnTVonLFxyXG4gICAgICAgICdNTScsXHJcbiAgICAgICAgJ05BJyxcclxuICAgICAgICAnTlInLFxyXG4gICAgICAgICdOUCcsXHJcbiAgICAgICAgJ05MJyxcclxuICAgICAgICAnTkMnLFxyXG4gICAgICAgICdOWicsXHJcbiAgICAgICAgJ05JJyxcclxuICAgICAgICAnTkUnLFxyXG4gICAgICAgICdORycsXHJcbiAgICAgICAgJ05VJyxcclxuICAgICAgICAnTkYnLFxyXG4gICAgICAgICdNSycsXHJcbiAgICAgICAgJ01QJyxcclxuICAgICAgICAnTk8nLFxyXG4gICAgICAgICdPTScsXHJcbiAgICAgICAgJ1BLJyxcclxuICAgICAgICAnUFcnLFxyXG4gICAgICAgICdQUycsXHJcbiAgICAgICAgJ1BBJyxcclxuICAgICAgICAnUEcnLFxyXG4gICAgICAgICdQWScsXHJcbiAgICAgICAgJ1BFJyxcclxuICAgICAgICAnUEgnLFxyXG4gICAgICAgICdQTicsXHJcbiAgICAgICAgJ1BMJyxcclxuICAgICAgICAnUFQnLFxyXG4gICAgICAgICdQUicsXHJcbiAgICAgICAgJ1FBJyxcclxuICAgICAgICAnUk8nLFxyXG4gICAgICAgICdSVScsXHJcbiAgICAgICAgJ1JXJyxcclxuICAgICAgICAnUkUnLFxyXG4gICAgICAgICdCTCcsXHJcbiAgICAgICAgJ1NIJyxcclxuICAgICAgICAnS04nLFxyXG4gICAgICAgICdMQycsXHJcbiAgICAgICAgJ01GJyxcclxuICAgICAgICAnUE0nLFxyXG4gICAgICAgICdWQycsXHJcbiAgICAgICAgJ1dTJyxcclxuICAgICAgICAnU00nLFxyXG4gICAgICAgICdTVCcsXHJcbiAgICAgICAgJ1NBJyxcclxuICAgICAgICAnU04nLFxyXG4gICAgICAgICdSUycsXHJcbiAgICAgICAgJ1NDJyxcclxuICAgICAgICAnU0wnLFxyXG4gICAgICAgICdTRycsXHJcbiAgICAgICAgJ1NYJyxcclxuICAgICAgICAnU0snLFxyXG4gICAgICAgICdTSScsXHJcbiAgICAgICAgJ1NCJyxcclxuICAgICAgICAnU08nLFxyXG4gICAgICAgICdaQScsXHJcbiAgICAgICAgJ0dTJyxcclxuICAgICAgICAnU1MnLFxyXG4gICAgICAgICdFUycsXHJcbiAgICAgICAgJ0xLJyxcclxuICAgICAgICAnU0QnLFxyXG4gICAgICAgICdTUicsXHJcbiAgICAgICAgJ1NKJyxcclxuICAgICAgICAnU0UnLFxyXG4gICAgICAgICdDSCcsXHJcbiAgICAgICAgJ1NZJyxcclxuICAgICAgICAnVFcnLFxyXG4gICAgICAgICdUSicsXHJcbiAgICAgICAgJ1RaJyxcclxuICAgICAgICAnVEgnLFxyXG4gICAgICAgICdUTCcsXHJcbiAgICAgICAgJ1RHJyxcclxuICAgICAgICAnVEsnLFxyXG4gICAgICAgICdUTycsXHJcbiAgICAgICAgJ1RUJyxcclxuICAgICAgICAnVE4nLFxyXG4gICAgICAgICdUUicsXHJcbiAgICAgICAgJ1RNJyxcclxuICAgICAgICAnVEMnLFxyXG4gICAgICAgICdUVicsXHJcbiAgICAgICAgJ1VHJyxcclxuICAgICAgICAnVUEnLFxyXG4gICAgICAgICdBRScsXHJcbiAgICAgICAgJ0dCJyxcclxuICAgICAgICAnVU0nLFxyXG4gICAgICAgICdVUycsXHJcbiAgICAgICAgJ1VZJyxcclxuICAgICAgICAnVVonLFxyXG4gICAgICAgICdWVScsXHJcbiAgICAgICAgJ1ZFJyxcclxuICAgICAgICAnVk4nLFxyXG4gICAgICAgICdWRycsXHJcbiAgICAgICAgJ1ZJJyxcclxuICAgICAgICAnV0YnLFxyXG4gICAgICAgICdFSCcsXHJcbiAgICAgICAgJ1lFJyxcclxuICAgICAgICAnWk0nLFxyXG4gICAgICAgICdaVycsXHJcbiAgICAgICAgJ0FYJyxcclxuICAgIF07XHJcbiAgICBhdmFpbGFibGVDdXJyZW5jeUNvZGVzID0gT2JqZWN0LnZhbHVlcyhDdXJyZW5jeUNvZGUpO1xyXG4gICAgc2VsZWN0ZWRDdXJyZW5jeUNvZGUgPSAnVVNEJztcclxuICAgIHByZXZpZXdMb2NhbGU6IHN0cmluZztcclxuICAgIHJlYWRvbmx5IGJyb3dzZXJEZWZhdWx0TG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICByZWFkb25seSBub3cgPSBuZXcgRGF0ZSgpLnRvSVNPU3RyaW5nKCk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoKSB7XHJcbiAgICAgICAgY29uc3QgYnJvd3Nlckxhbmd1YWdlID0gbmF2aWdhdG9yLmxhbmd1YWdlLnNwbGl0KCctJyk7XHJcbiAgICAgICAgdGhpcy5icm93c2VyRGVmYXVsdExvY2FsZSA9IGJyb3dzZXJMYW5ndWFnZS5sZW5ndGggPT09IDEgPyB1bmRlZmluZWQgOiBicm93c2VyTGFuZ3VhZ2VbMV07XHJcbiAgICB9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcbiAgICAgICAgdGhpcy51cGRhdGVQcmV2aWV3TG9jYWxlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUHJldmlld0xvY2FsZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExvY2FsZSB8fCB0aGlzLmN1cnJlbnRMb2NhbGUubGVuZ3RoID09PSAwIHx8IHRoaXMuY3VycmVudExvY2FsZS5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5wcmV2aWV3TG9jYWxlID0gdGhpcy5jcmVhdGVMb2NhbGVTdHJpbmcodGhpcy5jdXJyZW50TGFuZ3VhZ2UsIHRoaXMuY3VycmVudExvY2FsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldExhbmd1YWdlKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoW3RoaXMuY3VycmVudExhbmd1YWdlLCB0aGlzLmN1cnJlbnRMb2NhbGU/LnRvVXBwZXJDYXNlKCldKTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlTG9jYWxlU3RyaW5nKGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlLCByZWdpb24/OiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgICAgIGlmICghcmVnaW9uKSB7XHJcbiAgICAgICAgICAgIHJldHVybiBsYW5ndWFnZUNvZGU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIHJldHVybiBbbGFuZ3VhZ2VDb2RlLCByZWdpb24udG9VcHBlckNhc2UoKV0uam9pbignLScpO1xyXG4gICAgfVxyXG59XHJcbiIsIjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dUaXRsZT57eyAnY29tbW9uLnNlbGVjdC1kaXNwbGF5LWxhbmd1YWdlJyB8IHRyYW5zbGF0ZSB9fTwvbmctdGVtcGxhdGU+XHJcbjxkaXYgY2xhc3M9XCJjbHItcm93XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBwbC0yIG1iLTJcIj5cclxuICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidjb21tb24ubGFuZ3VhZ2UnIHwgdHJhbnNsYXRlXCIgY2xhc3M9XCJtci0yXCI+XHJcbiAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cIm9wdGlvbnNcIiBbKG5nTW9kZWwpXT1cImN1cnJlbnRMYW5ndWFnZVwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZVByZXZpZXdMb2NhbGUoKVwiPlxyXG4gICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29kZSBvZiBhdmFpbGFibGVMYW5ndWFnZXMgfCBzb3J0XCIgW3ZhbHVlXT1cImNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBjb2RlIHwgdXBwZXJjYXNlIH19ICh7eyBjb2RlIHwgbG9jYWxlTGFuZ3VhZ2VOYW1lIH19KVxyXG4gICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY29tbW9uLmxvY2FsZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgPG5nLXNlbGVjdFxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgIFtpdGVtc109XCJhdmFpbGFibGVMb2NhbGVzXCJcclxuICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VycmVudExvY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJ1cGRhdGVQcmV2aWV3TG9jYWxlKClcIlxyXG4gICAgICAgICAgICAgICAgW3BsYWNlaG9sZGVyXT1cIidjb21tb24uYnJvd3Nlci1kZWZhdWx0JyB8IHRyYW5zbGF0ZVwiXHJcbiAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19ICh7eyBpdGVtIHwgbG9jYWxlUmVnaW9uTmFtZSB9fSlcclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBpdGVtIH19ICh7eyBpdGVtIHwgbG9jYWxlUmVnaW9uTmFtZSB9fSlcclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgIDwvdmRyLWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXJcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInByLTFcIj57eyAnY29tbW9uLnNhbXBsZS1mb3JtYXR0aW5nJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW5cclxuICAgICAgICA+PHN0cm9uZz57eyBwcmV2aWV3TG9jYWxlIHwgbG9jYWxlTGFuZ3VhZ2VOYW1lIDogcHJldmlld0xvY2FsZSB9fTwvc3Ryb25nPlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjbHItcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbHItY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInY29tbW9uLm1lZGl1bS1kYXRlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IG5vdyB8IGxvY2FsZURhdGUgOiAnbWVkaXVtJyA6IHByZXZpZXdMb2NhbGUgfX1cclxuICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInY29tbW9uLnNob3J0LWRhdGUnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3sgbm93IHwgbG9jYWxlRGF0ZSA6ICdzaG9ydCcgOiBwcmV2aWV3TG9jYWxlIH19XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICA8c2VsZWN0IG5hbWU9XCJjdXJyZW5jeVwiIGNsYXNzPVwiY3VycmVuY3lcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ3VycmVuY3lDb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29kZSBvZiBhdmFpbGFibGVDdXJyZW5jeUNvZGVzIHwgc29ydFwiIFt2YWx1ZV09XCJjb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNvZGUgfCB1cHBlcmNhc2UgfX0gKHt7IGNvZGUgfCBsb2NhbGVDdXJyZW5jeU5hbWUgOiAnZnVsbCcgOiBwcmV2aWV3TG9jYWxlIH19KVxyXG4gICAgICAgICAgICAgICAgICAgIDwvb3B0aW9uPlxyXG4gICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLWNvbC1zbS00XCI+XHJcbiAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2NvbW1vbi5wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyAxMjM0NSB8IGxvY2FsZUN1cnJlbmN5IDogc2VsZWN0ZWRDdXJyZW5jeUNvZGUgOiBwcmV2aWV3TG9jYWxlIH19XHJcbiAgICAgICAgICAgICAgICA8L3Zkci1sYWJlbGVkLWRhdGE+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG48bmctdGVtcGxhdGUgdmRyRGlhbG9nQnV0dG9ucz5cclxuICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+e3sgJ2NvbW1vbi5jYW5jZWwnIHwgdHJhbnNsYXRlIH19PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIHR5cGU9XCJzdWJtaXRcIiAoY2xpY2spPVwic2V0TGFuZ3VhZ2UoKVwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAge3sgJ2NvbW1vbi5zZXQtbGFuZ3VhZ2UnIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2J1dHRvbj5cclxuPC9uZy10ZW1wbGF0ZT5cclxuIl19
73
+ args: [{ selector: 'vdr-ui-language-switcher', changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-template vdrDialogTitle>{{ 'common.select-display-language' | translate }}</ng-template>\r\n\r\n<ng-container *ngIf=\"isLoading\">\r\n <div class=\"progress loop\"></div>\r\n</ng-container>\r\n\r\n<ng-container *ngIf=\"!isLoading\">\r\n <div class=\"clr-row\">\r\n <div class=\"flex pl-2 mb-2\">\r\n <vdr-form-field [label]=\"'common.language' | translate\" class=\"mr-2\">\r\n <select name=\"options\" [(ngModel)]=\"currentLanguage\" (ngModelChange)=\"updatePreviewLocale()\">\r\n <option *ngFor=\"let code of availableLanguages | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeLanguageName }})\r\n </option>\r\n </select>\r\n </vdr-form-field>\r\n <vdr-form-field [label]=\"'common.locale' | translate\">\r\n <ng-select appendTo=\"body\" [items]=\"availableLocales\" [(ngModel)]=\"currentLocale\"\r\n (ngModelChange)=\"updatePreviewLocale()\" [placeholder]=\"'common.browser-default' | translate\">\r\n <ng-template ng-label-tmp let-item=\"item\" let-clear=\"clear\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n <ng-template ng-option-tmp let-item=\"item\">\r\n {{ item }} ({{ item | localeRegionName }})\r\n </ng-template>\r\n </ng-select>\r\n </vdr-form-field>\r\n </div>\r\n </div>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <span class=\"pr-1\">{{ 'common.sample-formatting' | translate }}:</span><strong>{{ previewLocale |\r\n localeLanguageName : previewLocale }}</strong>\r\n </div>\r\n <div class=\"card-block\">\r\n <div class=\"clr-row\">\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.medium-date' | translate\">\r\n {{ now | localeDate : 'medium' : previewLocale }}\r\n </vdr-labeled-data>\r\n <vdr-labeled-data [label]=\"'common.short-date' | translate\">\r\n {{ now | localeDate : 'short' : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <select name=\"currency\" class=\"currency\" [(ngModel)]=\"selectedCurrencyCode\">\r\n <option *ngFor=\"let code of availableCurrencyCodes | sort\" [value]=\"code\">\r\n {{ code | uppercase }} ({{ code | localeCurrencyName : 'full' : previewLocale }})\r\n </option>\r\n </select>\r\n </div>\r\n <div class=\"clr-col-sm-4\">\r\n <vdr-labeled-data [label]=\"'common.price' | translate\">\r\n {{ 12345 | localeCurrency : selectedCurrencyCode : previewLocale }}\r\n </vdr-labeled-data>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n\r\n<ng-template vdrDialogButtons>\r\n <button type=\"button\" class=\"btn\" (click)=\"cancel()\">{{ 'common.cancel' | translate }}</button>\r\n <button type=\"submit\" (click)=\"setLanguage()\" class=\"btn btn-primary\">\r\n {{ 'common.set-language' | translate }}\r\n </button>\r\n</ng-template>", styles: ["select.currency{max-width:200px}input.locale{text-transform:uppercase}\n"] }]
74
+ }], ctorParameters: function () { return [{ type: i1.DataService }, { type: i0.ChangeDetectorRef }]; } });
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cvdWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3NyYy9saWIvY29yZS9zcmMvY29tcG9uZW50cy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cvdWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSx1QkFBdUIsRUFBcUIsU0FBUyxFQUFxQixNQUFNLGVBQWUsQ0FBQztBQUV6RyxPQUFPLEVBQUUsT0FBTyxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFELE9BQU8sRUFBRSxZQUFZLEVBQWdCLE1BQU0sOEJBQThCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQVcxRSxNQUFNLE9BQU8saUNBQWlDO0lBZ0IxQyxZQUFvQixXQUF3QixFQUFVLGNBQWlDO1FBQW5FLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsbUJBQWMsR0FBZCxjQUFjLENBQW1CO1FBYnZGLGNBQVMsR0FBRyxJQUFJLENBQUM7UUFDVCxhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUd2Qyx1QkFBa0IsR0FBbUIsRUFBRSxDQUFDO1FBRXhDLHFCQUFnQixHQUFhLEVBQUUsQ0FBQztRQUNoQywyQkFBc0IsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBSTVDLFFBQUcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBR3BDLE1BQU0sZUFBZSxHQUFHLFNBQVMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxlQUFlLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDOUYsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUUzQixJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVE7YUFDcEIsZ0JBQWdCLEVBQUU7YUFDbEIsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQzthQUN6RCxJQUFJLENBQ0QsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUNQLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFFBQVEsQ0FBQyxHQUFHLEVBQUU7WUFDVixJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDO1FBQ3ZDLENBQUMsQ0FBQyxDQUNMO2FBQ0EsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLENBQUMsQ0FBQztRQUNsQyxDQUFDLENBQUMsQ0FBQztJQUNYLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNyQixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFRCxtQkFBbUI7UUFDZixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQzNGLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxlQUFlLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO1NBQzFGO0lBQ0wsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNoRixDQUFDO0lBRUQsTUFBTTtRQUNGLElBQUksQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRU8sa0JBQWtCLENBQUMsWUFBMEIsRUFBRSxNQUFzQjtRQUN6RSxJQUFJLENBQUMsTUFBTSxFQUFFO1lBQ1QsT0FBTyxZQUFZLENBQUM7U0FDdkI7UUFDRCxPQUFPLENBQUMsWUFBWSxFQUFFLE1BQU0sQ0FBQyxXQUFXLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMxRCxDQUFDOzhHQWhFUSxpQ0FBaUM7a0dBQWpDLGlDQUFpQyxnRUNkOUMsODlHQWtFYzs7MkZEcERELGlDQUFpQztrQkFON0MsU0FBUzsrQkFDSSwwQkFBMEIsbUJBR25CLHVCQUF1QixDQUFDLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSwgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFN1YmplY3QsIGZpbmFsaXplLCB0YWtlLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgQ3VycmVuY3lDb2RlLCBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuaW1wb3J0IHsgRGlhbG9nIH0gZnJvbSAnLi4vLi4vcHJvdmlkZXJzL21vZGFsL21vZGFsLnR5cGVzJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuLi8uLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBnZXRBcHBDb25maWcgfSBmcm9tICcuLi8uLi9hcHAuY29uZmlnJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd2ZHItdWktbGFuZ3VhZ2Utc3dpdGNoZXInLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcclxuICAgIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50XHJcbiAgICBpbXBsZW1lbnRzIERpYWxvZzxbTGFuZ3VhZ2VDb2RlLCBzdHJpbmcgfCB1bmRlZmluZWRdPiwgT25Jbml0LCBPbkRlc3Ryb3lcclxue1xyXG4gICAgaXNMb2FkaW5nID0gdHJ1ZTtcclxuICAgIHByaXZhdGUgZGVzdHJveSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xyXG4gICAgcmVzb2x2ZVdpdGg6IChyZXN1bHQ/OiBbTGFuZ3VhZ2VDb2RlLCBzdHJpbmcgfCB1bmRlZmluZWRdKSA9PiB2b2lkO1xyXG4gICAgY3VycmVudExhbmd1YWdlOiBMYW5ndWFnZUNvZGU7XHJcbiAgICBhdmFpbGFibGVMYW5ndWFnZXM6IExhbmd1YWdlQ29kZVtdID0gW107XHJcbiAgICBjdXJyZW50TG9jYWxlOiBzdHJpbmcgfCB1bmRlZmluZWQ7XHJcbiAgICBhdmFpbGFibGVMb2NhbGVzOiBzdHJpbmdbXSA9IFtdO1xyXG4gICAgYXZhaWxhYmxlQ3VycmVuY3lDb2RlcyA9IE9iamVjdC52YWx1ZXMoQ3VycmVuY3lDb2RlKTtcclxuICAgIHNlbGVjdGVkQ3VycmVuY3lDb2RlOiBzdHJpbmc7XHJcbiAgICBwcmV2aWV3TG9jYWxlOiBzdHJpbmc7XHJcbiAgICByZWFkb25seSBicm93c2VyRGVmYXVsdExvY2FsZTogc3RyaW5nIHwgdW5kZWZpbmVkO1xyXG4gICAgcmVhZG9ubHkgbm93ID0gbmV3IERhdGUoKS50b0lTT1N0cmluZygpO1xyXG5cclxuICAgIGNvbnN0cnVjdG9yKHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLCBwcml2YXRlIGNoYW5nZURldGVjdG9yOiBDaGFuZ2VEZXRlY3RvclJlZikge1xyXG4gICAgICAgIGNvbnN0IGJyb3dzZXJMYW5ndWFnZSA9IG5hdmlnYXRvci5sYW5ndWFnZS5zcGxpdCgnLScpO1xyXG4gICAgICAgIHRoaXMuYnJvd3NlckRlZmF1bHRMb2NhbGUgPSBicm93c2VyTGFuZ3VhZ2UubGVuZ3RoID09PSAxID8gdW5kZWZpbmVkIDogYnJvd3Nlckxhbmd1YWdlWzFdO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG4gICAgICAgIHRoaXMudXBkYXRlUHJldmlld0xvY2FsZSgpO1xyXG5cclxuICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnNldHRpbmdzXHJcbiAgICAgICAgICAgIC5nZXRBY3RpdmVDaGFubmVsKClcclxuICAgICAgICAgICAgLm1hcFN0cmVhbShkYXRhID0+IGRhdGEuYWN0aXZlQ2hhbm5lbC5kZWZhdWx0Q3VycmVuY3lDb2RlKVxyXG4gICAgICAgICAgICAucGlwZShcclxuICAgICAgICAgICAgICAgIHRha2UoMSksXHJcbiAgICAgICAgICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgICAgICAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNoYW5nZURldGVjdG9yLm1hcmtGb3JDaGVjaygpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSh4ID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuc2VsZWN0ZWRDdXJyZW5jeUNvZGUgPSB4O1xyXG4gICAgICAgICAgICB9KTtcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgdXBkYXRlUHJldmlld0xvY2FsZSgpIHtcclxuICAgICAgICBpZiAoIXRoaXMuY3VycmVudExvY2FsZSB8fCB0aGlzLmN1cnJlbnRMb2NhbGUubGVuZ3RoID09PSAwIHx8IHRoaXMuY3VycmVudExvY2FsZS5sZW5ndGggPT09IDIpIHtcclxuICAgICAgICAgICAgdGhpcy5wcmV2aWV3TG9jYWxlID0gdGhpcy5jcmVhdGVMb2NhbGVTdHJpbmcodGhpcy5jdXJyZW50TGFuZ3VhZ2UsIHRoaXMuY3VycmVudExvY2FsZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHNldExhbmd1YWdlKCkge1xyXG4gICAgICAgIHRoaXMucmVzb2x2ZVdpdGgoW3RoaXMuY3VycmVudExhbmd1YWdlLCB0aGlzLmN1cnJlbnRMb2NhbGU/LnRvVXBwZXJDYXNlKCldKTtcclxuICAgIH1cclxuXHJcbiAgICBjYW5jZWwoKSB7XHJcbiAgICAgICAgdGhpcy5yZXNvbHZlV2l0aCgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgY3JlYXRlTG9jYWxlU3RyaW5nKGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlLCByZWdpb24/OiBzdHJpbmcgfCBudWxsKTogc3RyaW5nIHtcclxuICAgICAgICBpZiAoIXJlZ2lvbikge1xyXG4gICAgICAgICAgICByZXR1cm4gbGFuZ3VhZ2VDb2RlO1xyXG4gICAgICAgIH1cclxuICAgICAgICByZXR1cm4gW2xhbmd1YWdlQ29kZSwgcmVnaW9uLnRvVXBwZXJDYXNlKCldLmpvaW4oJy0nKTtcclxuICAgIH1cclxufVxyXG4iLCI8bmctdGVtcGxhdGUgdmRyRGlhbG9nVGl0bGU+e3sgJ2NvbW1vbi5zZWxlY3QtZGlzcGxheS1sYW5ndWFnZScgfCB0cmFuc2xhdGUgfX08L25nLXRlbXBsYXRlPlxyXG5cclxuPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzTG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInByb2dyZXNzIGxvb3BcIj48L2Rpdj5cclxuPC9uZy1jb250YWluZXI+XHJcblxyXG48bmctY29udGFpbmVyICpuZ0lmPVwiIWlzTG9hZGluZ1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNsci1yb3dcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBwbC0yIG1iLTJcIj5cclxuICAgICAgICAgICAgPHZkci1mb3JtLWZpZWxkIFtsYWJlbF09XCInY29tbW9uLmxhbmd1YWdlJyB8IHRyYW5zbGF0ZVwiIGNsYXNzPVwibXItMlwiPlxyXG4gICAgICAgICAgICAgICAgPHNlbGVjdCBuYW1lPVwib3B0aW9uc1wiIFsobmdNb2RlbCldPVwiY3VycmVudExhbmd1YWdlXCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlUHJldmlld0xvY2FsZSgpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29kZSBvZiBhdmFpbGFibGVMYW5ndWFnZXMgfCBzb3J0XCIgW3ZhbHVlXT1cImNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgY29kZSB8IHVwcGVyY2FzZSB9fSAoe3sgY29kZSB8IGxvY2FsZUxhbmd1YWdlTmFtZSB9fSlcclxuICAgICAgICAgICAgICAgICAgICA8L29wdGlvbj5cclxuICAgICAgICAgICAgICAgIDwvc2VsZWN0PlxyXG4gICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgICAgICA8dmRyLWZvcm0tZmllbGQgW2xhYmVsXT1cIidjb21tb24ubG9jYWxlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBhcHBlbmRUbz1cImJvZHlcIiBbaXRlbXNdPVwiYXZhaWxhYmxlTG9jYWxlc1wiIFsobmdNb2RlbCldPVwiY3VycmVudExvY2FsZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlUHJldmlld0xvY2FsZSgpXCIgW3BsYWNlaG9sZGVyXT1cIidjb21tb24uYnJvd3Nlci1kZWZhdWx0JyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBuZy1sYWJlbC10bXAgbGV0LWl0ZW09XCJpdGVtXCIgbGV0LWNsZWFyPVwiY2xlYXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB9fSAoe3sgaXRlbSB8IGxvY2FsZVJlZ2lvbk5hbWUgfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbmctb3B0aW9uLXRtcCBsZXQtaXRlbT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgaXRlbSB9fSAoe3sgaXRlbSB8IGxvY2FsZVJlZ2lvbk5hbWUgfX0pXHJcbiAgICAgICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgICAgICA8L3Zkci1mb3JtLWZpZWxkPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInByLTFcIj57eyAnY29tbW9uLnNhbXBsZS1mb3JtYXR0aW5nJyB8IHRyYW5zbGF0ZSB9fTo8L3NwYW4+PHN0cm9uZz57eyBwcmV2aWV3TG9jYWxlIHxcclxuICAgICAgICAgICAgICAgIGxvY2FsZUxhbmd1YWdlTmFtZSA6IHByZXZpZXdMb2NhbGUgfX08L3N0cm9uZz5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ibG9ja1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2xyLXJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsci1jb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInY29tbW9uLm1lZGl1bS1kYXRlJyB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7eyBub3cgfCBsb2NhbGVEYXRlIDogJ21lZGl1bScgOiBwcmV2aWV3TG9jYWxlIH19XHJcbiAgICAgICAgICAgICAgICAgICAgPC92ZHItbGFiZWxlZC1kYXRhPlxyXG4gICAgICAgICAgICAgICAgICAgIDx2ZHItbGFiZWxlZC1kYXRhIFtsYWJlbF09XCInY29tbW9uLnNob3J0LWRhdGUnIHwgdHJhbnNsYXRlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IG5vdyB8IGxvY2FsZURhdGUgOiAnc2hvcnQnIDogcHJldmlld0xvY2FsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNsci1jb2wtc20tNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxzZWxlY3QgbmFtZT1cImN1cnJlbmN5XCIgY2xhc3M9XCJjdXJyZW5jeVwiIFsobmdNb2RlbCldPVwic2VsZWN0ZWRDdXJyZW5jeUNvZGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPG9wdGlvbiAqbmdGb3I9XCJsZXQgY29kZSBvZiBhdmFpbGFibGVDdXJyZW5jeUNvZGVzIHwgc29ydFwiIFt2YWx1ZV09XCJjb2RlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB7eyBjb2RlIHwgdXBwZXJjYXNlIH19ICh7eyBjb2RlIHwgbG9jYWxlQ3VycmVuY3lOYW1lIDogJ2Z1bGwnIDogcHJldmlld0xvY2FsZSB9fSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9vcHRpb24+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjbHItY29sLXNtLTRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8dmRyLWxhYmVsZWQtZGF0YSBbbGFiZWxdPVwiJ2NvbW1vbi5wcmljZScgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAge3sgMTIzNDUgfCBsb2NhbGVDdXJyZW5jeSA6IHNlbGVjdGVkQ3VycmVuY3lDb2RlIDogcHJldmlld0xvY2FsZSB9fVxyXG4gICAgICAgICAgICAgICAgICAgIDwvdmRyLWxhYmVsZWQtZGF0YT5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L25nLWNvbnRhaW5lcj5cclxuXHJcbjxuZy10ZW1wbGF0ZSB2ZHJEaWFsb2dCdXR0b25zPlxyXG4gICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG5cIiAoY2xpY2spPVwiY2FuY2VsKClcIj57eyAnY29tbW9uLmNhbmNlbCcgfCB0cmFuc2xhdGUgfX08L2J1dHRvbj5cclxuICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIChjbGljayk9XCJzZXRMYW5ndWFnZSgpXCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnlcIj5cclxuICAgICAgICB7eyAnY29tbW9uLnNldC1sYW5ndWFnZScgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYnV0dG9uPlxyXG48L25nLXRlbXBsYXRlPiJdfQ==
@@ -6,7 +6,7 @@ import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
6
6
  import { marker as _ } from '@biesbjerg/ngx-translate-extract-marker';
7
7
  import { TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-translate/core';
8
8
  import { getAppConfig } from './app.config';
9
- import { getDefaultUiLanguage } from './common/utilities/get-default-ui-language';
9
+ import { getDefaultUiLanguage, getDefaultUiLocale } from './common/utilities/get-default-ui-language';
10
10
  import { AlertsComponent } from './components/alerts/alerts.component';
11
11
  import { AppShellComponent } from './components/app-shell/app-shell.component';
12
12
  import { BaseNavComponent } from './components/base-nav/base-nav.component';
@@ -41,24 +41,32 @@ export class CoreModule {
41
41
  this.alertsService = alertsService;
42
42
  this.dataService = dataService;
43
43
  this.notificationService = notificationService;
44
- this.initUiLanguages();
44
+ this.initUiLanguagesAndLocales();
45
45
  this.initUiTitle();
46
46
  this.initAlerts();
47
47
  }
48
- initUiLanguages() {
48
+ initUiLanguagesAndLocales() {
49
49
  const defaultLanguage = getDefaultUiLanguage();
50
+ const defaultLocale = getDefaultUiLocale();
50
51
  const lastLanguage = this.localStorageService.get('uiLanguageCode');
51
52
  const availableLanguages = getAppConfig().availableLanguages;
52
- if (!availableLanguages.includes(defaultLanguage)) {
53
+ const availableLocales = getAppConfig().availableLocales;
54
+ if (!!defaultLanguage && !availableLanguages.includes(defaultLanguage)) {
53
55
  throw new Error(`The defaultLanguage "${defaultLanguage}" must be one of the availableLanguages [${availableLanguages
54
56
  .map(l => `"${l}"`)
55
57
  .join(', ')}]`);
56
58
  }
59
+ if (!!defaultLocale && !availableLocales.includes(defaultLocale)) {
60
+ throw new Error(`The defaultLocale "${defaultLocale}" must be one of the availableLocales [${availableLocales
61
+ .map(l => `"${l}"`)
62
+ .join(', ')}]`);
63
+ }
57
64
  const uiLanguage = lastLanguage && availableLanguages.includes(lastLanguage) ? lastLanguage : defaultLanguage;
58
65
  this.localStorageService.set('uiLanguageCode', uiLanguage);
59
66
  this.i18nService.setLanguage(uiLanguage);
60
67
  this.i18nService.setDefaultLanguage(defaultLanguage);
61
68
  this.i18nService.setAvailableLanguages(availableLanguages || [defaultLanguage]);
69
+ this.i18nService.setAvailableLocales(availableLocales || [defaultLocale]);
62
70
  }
63
71
  initUiTitle() {
64
72
  const title = getAppConfig().brand || 'Vendure';
@@ -156,4 +164,4 @@ export function HttpLoaderFactory(http, location) {
156
164
  const baseHref = location.getBaseHrefFromDOM();
157
165
  return new CustomHttpTranslationLoader(http, baseHref + 'i18n-messages/');
158
166
  }
159
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDbEYsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3pGLE9BQU8sRUFBRSxvQkFBb0IsRUFB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cEIscUJBQXFCO3dCQUNyQixpQ0FBaUM7d0JBQ2pDLHdCQUF3Qjt3QkFDeEIsc0JBQXNCO3dCQUN0QixlQUFlO3FCQUNsQjtpQkFDSjs7QUFtRUQsTUFBTSxVQUFVLGlCQUFpQixDQUFDLElBQWdCLEVBQUUsUUFBMEI7SUFDMUUsNkVBQTZFO0lBQzdFLE1BQU0sUUFBUSxHQUFHLFFBQVEsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQy9DLE9BQU8sSUFBSSwyQkFBMkIsQ0FBQyxJQUFJLEVBQUUsUUFBUSxHQUFHLGdCQUFnQixDQUFDLENBQUM7QUFDOUUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBsYXRmb3JtTG9jYXRpb24gfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlLCBUaXRsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXIvYW5pbWF0aW9ucyc7XHJcbmltcG9ydCB7IG1hcmtlciBhcyBfIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlQ29tcGlsZXIsIFRyYW5zbGF0ZUxvYWRlciwgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBnZXRBcHBDb25maWcgfSBmcm9tICcuL2FwcC5jb25maWcnO1xyXG5pbXBvcnQgeyBnZXREZWZhdWx0VWlMYW5ndWFnZSB9IGZyb20gJy4vY29tbW9uL3V0aWxpdGllcy9nZXQtZGVmYXVsdC11aS1sYW5ndWFnZSc7XHJcbmltcG9ydCB7IEFsZXJ0c0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hbGVydHMvYWxlcnRzLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcFNoZWxsQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2FwcC1zaGVsbC9hcHAtc2hlbGwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQmFzZU5hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9iYXNlLW5hdi9iYXNlLW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBCcmVhZGNydW1iQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2JyZWFkY3J1bWIvYnJlYWRjcnVtYi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBDaGFubmVsU3dpdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvY2hhbm5lbC1zd2l0Y2hlci9jaGFubmVsLXN3aXRjaGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE1haW5OYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvbWFpbi1uYXYvbWFpbi1uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50JztcclxuaW1wb3J0IHsgT3ZlcmxheUhvc3RDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvb3ZlcmxheS1ob3N0L292ZXJsYXktaG9zdC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBTZXR0aW5nc05hdkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9zZXR0aW5ncy1uYXYvc2V0dGluZ3MtbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFRoZW1lU3dpdGNoZXJDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdGhlbWUtc3dpdGNoZXIvdGhlbWUtc3dpdGNoZXIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VpLWxhbmd1YWdlLXN3aXRjaGVyLWRpYWxvZy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cuY29tcG9uZW50JztcclxuaW1wb3J0IHsgVXNlck1lbnVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvdXNlci1tZW51L3VzZXItbWVudS5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBEYXRhTW9kdWxlIH0gZnJvbSAnLi9kYXRhL2RhdGEubW9kdWxlJztcclxuaW1wb3J0IHsgRGF0YVNlcnZpY2UgfSBmcm9tICcuL2RhdGEvcHJvdmlkZXJzL2RhdGEuc2VydmljZSc7XHJcbmltcG9ydCB7IEFsZXJ0c1NlcnZpY2UgfSBmcm9tICcuL3Byb3ZpZGVycy9hbGVydHMvYWxlcnRzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDdXN0b21IdHRwVHJhbnNsYXRpb25Mb2FkZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9pMThuL2N1c3RvbS1odHRwLWxvYWRlcic7XHJcbmltcG9ydCB7IEluamVjdGFibGVUcmFuc2xhdGVNZXNzYWdlRm9ybWF0Q29tcGlsZXIgfSBmcm9tICcuL3Byb3ZpZGVycy9pMThuL2N1c3RvbS1tZXNzYWdlLWZvcm1hdC1jb21waWxlcic7XHJcbmltcG9ydCB7IEkxOG5TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBMb2NhbFN0b3JhZ2VTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvbG9jYWwtc3RvcmFnZS9sb2NhbC1zdG9yYWdlLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBOb3RpZmljYXRpb25TZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgcmVnaXN0ZXJEZWZhdWx0Rm9ybUlucHV0cyB9IGZyb20gJy4vc2hhcmVkL2R5bmFtaWMtZm9ybS1pbnB1dHMvZGVmYXVsdC1mb3JtLWlucHV0cyc7XHJcbmltcG9ydCB7IFNoYXJlZE1vZHVsZSB9IGZyb20gJy4vc2hhcmVkL3NoYXJlZC5tb2R1bGUnO1xyXG5pbXBvcnQgeyBQZXJtaXNzaW9uIH0gZnJvbSAnLi9wdWJsaWNfYXBpJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgICBpbXBvcnRzOiBbXHJcbiAgICAgICAgQnJvd3Nlck1vZHVsZSxcclxuICAgICAgICBEYXRhTW9kdWxlLFxyXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcclxuICAgICAgICBCcm93c2VyQW5pbWF0aW9uc01vZHVsZSxcclxuICAgICAgICBUcmFuc2xhdGVNb2R1bGUuZm9yUm9vdCh7XHJcbiAgICAgICAgICAgIGxvYWRlcjoge1xyXG4gICAgICAgICAgICAgICAgcHJvdmlkZTogVHJhbnNsYXRlTG9hZGVyLFxyXG4gICAgICAgICAgICAgICAgdXNlRmFjdG9yeTogSHR0cExvYWRlckZhY3RvcnksXHJcbiAgICAgICAgICAgICAgICBkZXBzOiBbSHR0cENsaWVudCwgUGxhdGZvcm1Mb2NhdGlvbl0sXHJcbiAgICAgICAgICAgIH0sXHJcblxyXG4gICAgICAgICAgICBjb21waWxlcjogeyBwcm92aWRlOiBUcmFuc2xhdGVDb21waWxlciwgdXNlQ2xhc3M6IEluamVjdGFibGVUcmFuc2xhdGVNZXNzYWdlRm9ybWF0Q29tcGlsZXIgfSxcclxuICAgICAgICB9KSxcclxuICAgIF0sXHJcbiAgICBwcm92aWRlcnM6IFtyZWdpc3RlckRlZmF1bHRGb3JtSW5wdXRzKCksIFRpdGxlXSxcclxuICAgIGV4cG9ydHM6IFtTaGFyZWRNb2R1bGUsIE92ZXJsYXlIb3N0Q29tcG9uZW50XSxcclxuICAgIGRlY2xhcmF0aW9uczogW1xyXG4gICAgICAgIEFwcFNoZWxsQ29tcG9uZW50LFxyXG4gICAgICAgIFVzZXJNZW51Q29tcG9uZW50LFxyXG4gICAgICAgIEJhc2VOYXZDb21wb25lbnQsXHJcbiAgICAgICAgTWFpbk5hdkNvbXBvbmVudCxcclxuICAgICAgICBTZXR0aW5nc05hdkNvbXBvbmVudCxcclxuICAgICAgICBCcmVhZGNydW1iQ29tcG9uZW50LFxyXG4gICAgICAgIE92ZXJsYXlIb3N0Q29tcG9uZW50LFxyXG4gICAgICAgIE5vdGlmaWNhdGlvbkNvbXBvbmVudCxcclxuICAgICAgICBVaUxhbmd1YWdlU3dpdGNoZXJEaWFsb2dDb21wb25lbnQsXHJcbiAgICAgICAgQ2hhbm5lbFN3aXRjaGVyQ29tcG9uZW50LFxyXG4gICAgICAgIFRoZW1lU3dpdGNoZXJDb21wb25lbnQsXHJcbiAgICAgICAgQWxlcnRzQ29tcG9uZW50LFxyXG4gICAgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIENvcmVNb2R1bGUge1xyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHJpdmF0ZSBpMThuU2VydmljZTogSTE4blNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBsb2NhbFN0b3JhZ2VTZXJ2aWNlOiBMb2NhbFN0b3JhZ2VTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgdGl0bGVTZXJ2aWNlOiBUaXRsZSxcclxuICAgICAgICBwcml2YXRlIGFsZXJ0c1NlcnZpY2U6IEFsZXJ0c1NlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBkYXRhU2VydmljZTogRGF0YVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlLFxyXG4gICAgKSB7XHJcbiAgICAgICAgdGhpcy5pbml0VWlMYW5ndWFnZXMoKTtcclxuICAgICAgICB0aGlzLmluaXRVaVRpdGxlKCk7XHJcbiAgICAgICAgdGhpcy5pbml0QWxlcnRzKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VWlMYW5ndWFnZXMoKSB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExhbmd1YWdlID0gZ2V0RGVmYXVsdFVpTGFuZ3VhZ2UoKTtcclxuICAgICAgICBjb25zdCBsYXN0TGFuZ3VhZ2UgPSB0aGlzLmxvY2FsU3RvcmFnZVNlcnZpY2UuZ2V0KCd1aUxhbmd1YWdlQ29kZScpO1xyXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZUxhbmd1YWdlcyA9IGdldEFwcENvbmZpZygpLmF2YWlsYWJsZUxhbmd1YWdlcztcclxuXHJcbiAgICAgICAgaWYgKCFhdmFpbGFibGVMYW5ndWFnZXMuaW5jbHVkZXMoZGVmYXVsdExhbmd1YWdlKSkge1xyXG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXHJcbiAgICAgICAgICAgICAgICBgVGhlIGRlZmF1bHRMYW5ndWFnZSBcIiR7ZGVmYXVsdExhbmd1YWdlfVwiIG11c3QgYmUgb25lIG9mIHRoZSBhdmFpbGFibGVMYW5ndWFnZXMgWyR7YXZhaWxhYmxlTGFuZ3VhZ2VzXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcChsID0+IGBcIiR7bH1cImApXHJcbiAgICAgICAgICAgICAgICAgICAgLmpvaW4oJywgJyl9XWAsXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGNvbnN0IHVpTGFuZ3VhZ2UgPVxyXG4gICAgICAgICAgICBsYXN0TGFuZ3VhZ2UgJiYgYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhc3RMYW5ndWFnZSkgPyBsYXN0TGFuZ3VhZ2UgOiBkZWZhdWx0TGFuZ3VhZ2U7XHJcbiAgICAgICAgdGhpcy5sb2NhbFN0b3JhZ2VTZXJ2aWNlLnNldCgndWlMYW5ndWFnZUNvZGUnLCB1aUxhbmd1YWdlKTtcclxuICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnNldExhbmd1YWdlKHVpTGFuZ3VhZ2UpO1xyXG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2Uuc2V0RGVmYXVsdExhbmd1YWdlKGRlZmF1bHRMYW5ndWFnZSk7XHJcbiAgICAgICAgdGhpcy5pMThuU2VydmljZS5zZXRBdmFpbGFibGVMYW5ndWFnZXMoYXZhaWxhYmxlTGFuZ3VhZ2VzIHx8IFtkZWZhdWx0TGFuZ3VhZ2VdKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRVaVRpdGxlKCkge1xyXG4gICAgICAgIGNvbnN0IHRpdGxlID0gZ2V0QXBwQ29uZmlnKCkuYnJhbmQgfHwgJ1ZlbmR1cmUnO1xyXG5cclxuICAgICAgICB0aGlzLnRpdGxlU2VydmljZS5zZXRUaXRsZSh0aXRsZSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0QWxlcnRzKCkge1xyXG4gICAgICAgIHRoaXMuYWxlcnRzU2VydmljZS5jb25maWd1cmVBbGVydCh7XHJcbiAgICAgICAgICAgIGlkOiAncGVuZGluZy1zZWFyY2gtaW5kZXgtdXBkYXRlcycsXHJcbiAgICAgICAgICAgIHJlcXVpcmVkUGVybWlzc2lvbnM6IFtQZXJtaXNzaW9uLlJlYWRDYXRhbG9nLCBQZXJtaXNzaW9uLlJlYWRQcm9kdWN0XSxcclxuICAgICAgICAgICAgY2hlY2s6ICgpID0+XHJcbiAgICAgICAgICAgICAgICB0aGlzLmRhdGFTZXJ2aWNlLnByb2R1Y3RcclxuICAgICAgICAgICAgICAgICAgICAuZ2V0UGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcygpXHJcbiAgICAgICAgICAgICAgICAgICAgLm1hcFNpbmdsZSgoeyBwZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzIH0pID0+IHBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMpLFxyXG4gICAgICAgICAgICByZWNoZWNrSW50ZXJ2YWxNczogMTAwMCAqIDMwLFxyXG4gICAgICAgICAgICBpc0FsZXJ0OiBkYXRhID0+IDAgPCBkYXRhLFxyXG4gICAgICAgICAgICBhY3Rpb246IGRhdGEgPT4ge1xyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0LnJ1blBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMoKS5zdWJzY3JpYmUodmFsdWUgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5pbmZvKF8oJ2NhdGFsb2cucnVubmluZy1zZWFyY2gtaW5kZXgtdXBkYXRlcycpLCB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGNvdW50OiBkYXRhLFxyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgfSk7XHJcbiAgICAgICAgICAgIH0sXHJcbiAgICAgICAgICAgIGxhYmVsOiBkYXRhID0+ICh7XHJcbiAgICAgICAgICAgICAgICB0ZXh0OiBfKCdjYXRhbG9nLnJ1bi1wZW5kaW5nLXNlYXJjaC1pbmRleC11cGRhdGVzJyksXHJcbiAgICAgICAgICAgICAgICB0cmFuc2xhdGlvblZhcnM6IHsgY291bnQ6IGRhdGEgfSxcclxuICAgICAgICAgICAgfSksXHJcbiAgICAgICAgfSk7XHJcbiAgICAgICAgdGhpcy5hbGVydHNTZXJ2aWNlLnJlZnJlc2goKTtcclxuICAgIH1cclxufVxyXG5cclxuZXhwb3J0IGZ1bmN0aW9uIEh0dHBMb2FkZXJGYWN0b3J5KGh0dHA6IEh0dHBDbGllbnQsIGxvY2F0aW9uOiBQbGF0Zm9ybUxvY2F0aW9uKSB7XHJcbiAgICAvLyBEeW5hbWljYWxseSBnZXQgdGhlIGJhc2VIcmVmLCB3aGljaCBpcyBjb25maWd1cmVkIGluIHRoZSBhbmd1bGFyLmpzb24gZmlsZVxyXG4gICAgY29uc3QgYmFzZUhyZWYgPSBsb2NhdGlvbi5nZXRCYXNlSHJlZkZyb21ET00oKTtcclxuICAgIHJldHVybiBuZXcgQ3VzdG9tSHR0cFRyYW5zbGF0aW9uTG9hZGVyKGh0dHAsIGJhc2VIcmVmICsgJ2kxOG4tbWVzc2FnZXMvJyk7XHJcbn1cclxuIl19
167
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29yZS5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9zcmMvbGliL2NvcmUvc3JjL2NvcmUubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxhQUFhLEVBQUUsS0FBSyxFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDakUsT0FBTyxFQUFFLHVCQUF1QixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDL0UsT0FBTyxFQUFFLE1BQU0sSUFBSSxDQUFDLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQztBQUN0RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxjQUFjLENBQUM7QUFDNUMsT0FBTyxFQUFFLG9CQUFvQixFQUFFLGtCQUFrQixFQUFFLE1BQU0sNENBQTRDLENBQUM7QUFDdEcsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHNDQUFzQyxDQUFDO0FBQ3ZFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRDQUE0QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLDhDQUE4QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLDBEQUEwRCxDQUFDO0FBQ3BHLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDBDQUEwQyxDQUFDO0FBQzVFLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLGtEQUFrRCxDQUFDO0FBQ3pGLE9BQU8sRUFB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QixlQUFlLENBQUMsT0FBTyxDQUFDOzRCQUNwQixNQUFNLEVBQUU7Z0NBQ0osT0FBTyxFQUFFLGVBQWU7Z0NBQ3hCLFVBQVUsRUFBRSxpQkFBaUI7Z0NBQzdCLElBQUksRUFBRSxDQUFDLFVBQVUsRUFBRSxnQkFBZ0IsQ0FBQzs2QkFDdkM7NEJBRUQsUUFBUSxFQUFFLEVBQUUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLFFBQVEsRUFBRSx3Q0FBd0MsRUFBRTt5QkFDL0YsQ0FBQztxQkFDTDtvQkFDRCxTQUFTLEVBQUUsQ0FBQyx5QkFBeUIsRUFBRSxFQUFFLEtBQUssQ0FBQztvQkFDL0MsT0FBTyxFQUFFLENBQUMsWUFBWSxFQUFFLG9CQUFvQixDQUFDO29CQUM3QyxZQUFZLEVBQUU7d0JBQ1YsaUJBQWlCO3dCQUNqQixpQkFBaUI7d0JBQ2pCLGdCQUFnQjt3QkFDaEIsZ0JBQWdCO3dCQUNoQixvQkFBb0I7d0JBQ3BCLG1CQUFtQjt3QkFDbkIsb0JBQW9CO3dCQUNwQixxQkFBcUI7d0JBQ3JCLGlDQUFpQzt3QkFDakMsd0JBQXdCO3dCQUN4QixzQkFBc0I7d0JBQ3RCLGVBQWU7cUJBQ2xCO2lCQUNKOztBQWtGRCxNQUFNLFVBQVUsaUJBQWlCLENBQUMsSUFBZ0IsRUFBRSxRQUEwQjtJQUMxRSw2RUFBNkU7SUFDN0UsTUFBTSxRQUFRLEdBQUcsUUFBUSxDQUFDLGtCQUFrQixFQUFFLENBQUM7SUFDL0MsT0FBTyxJQUFJLDJCQUEyQixDQUFDLElBQUksRUFBRSxRQUFRLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQztBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgUGxhdGZvcm1Mb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUsIFRpdGxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XHJcbmltcG9ydCB7IEJyb3dzZXJBbmltYXRpb25zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlci9hbmltYXRpb25zJztcclxuaW1wb3J0IHsgbWFya2VyIGFzIF8gfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVDb21waWxlciwgVHJhbnNsYXRlTG9hZGVyLCBUcmFuc2xhdGVNb2R1bGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuXHJcbmltcG9ydCB7IGdldEFwcENvbmZpZyB9IGZyb20gJy4vYXBwLmNvbmZpZyc7XHJcbmltcG9ydCB7IGdldERlZmF1bHRVaUxhbmd1YWdlLCBnZXREZWZhdWx0VWlMb2NhbGUgfSBmcm9tICcuL2NvbW1vbi91dGlsaXRpZXMvZ2V0LWRlZmF1bHQtdWktbGFuZ3VhZ2UnO1xyXG5pbXBvcnQgeyBBbGVydHNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYWxlcnRzL2FsZXJ0cy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBBcHBTaGVsbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9hcHAtc2hlbGwvYXBwLXNoZWxsLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEJhc2VOYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvYmFzZS1uYXYvYmFzZS1uYXYuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQnJlYWRjcnVtYkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9icmVhZGNydW1iL2JyZWFkY3J1bWIuY29tcG9uZW50JztcclxuaW1wb3J0IHsgQ2hhbm5lbFN3aXRjaGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL2NoYW5uZWwtc3dpdGNoZXIvY2hhbm5lbC1zd2l0Y2hlci5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBNYWluTmF2Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL21haW4tbmF2L21haW4tbmF2LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE5vdGlmaWNhdGlvbkNvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy9ub3RpZmljYXRpb24vbm90aWZpY2F0aW9uLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IE92ZXJsYXlIb3N0Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL292ZXJsYXktaG9zdC9vdmVybGF5LWhvc3QuY29tcG9uZW50JztcclxuaW1wb3J0IHsgU2V0dGluZ3NOYXZDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvc2V0dGluZ3MtbmF2L3NldHRpbmdzLW5hdi5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBUaGVtZVN3aXRjaGVyQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3RoZW1lLXN3aXRjaGVyL3RoZW1lLXN3aXRjaGVyLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVpTGFuZ3VhZ2VTd2l0Y2hlckRpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy91aS1sYW5ndWFnZS1zd2l0Y2hlci1kaWFsb2cvdWktbGFuZ3VhZ2Utc3dpdGNoZXItZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFVzZXJNZW51Q29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3VzZXItbWVudS91c2VyLW1lbnUuY29tcG9uZW50JztcclxuaW1wb3J0IHsgRGF0YU1vZHVsZSB9IGZyb20gJy4vZGF0YS9kYXRhLm1vZHVsZSc7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi9kYXRhL3Byb3ZpZGVycy9kYXRhLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBbGVydHNTZXJ2aWNlIH0gZnJvbSAnLi9wcm92aWRlcnMvYWxlcnRzL2FsZXJ0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ3VzdG9tSHR0cFRyYW5zbGF0aW9uTG9hZGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvaTE4bi9jdXN0b20taHR0cC1sb2FkZXInO1xyXG5pbXBvcnQgeyBJbmplY3RhYmxlVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIH0gZnJvbSAnLi9wcm92aWRlcnMvaTE4bi9jdXN0b20tbWVzc2FnZS1mb3JtYXQtY29tcGlsZXInO1xyXG5pbXBvcnQgeyBJMThuU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2kxOG4vaTE4bi5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTG9jYWxTdG9yYWdlU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL2xvY2FsLXN0b3JhZ2UvbG9jYWwtc3RvcmFnZS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJy4vcHJvdmlkZXJzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IHJlZ2lzdGVyRGVmYXVsdEZvcm1JbnB1dHMgfSBmcm9tICcuL3NoYXJlZC9keW5hbWljLWZvcm0taW5wdXRzL2RlZmF1bHQtZm9ybS1pbnB1dHMnO1xyXG5pbXBvcnQgeyBTaGFyZWRNb2R1bGUgfSBmcm9tICcuL3NoYXJlZC9zaGFyZWQubW9kdWxlJztcclxuaW1wb3J0IHsgUGVybWlzc2lvbiB9IGZyb20gJy4vcHVibGljX2FwaSc7XHJcblxyXG5ATmdNb2R1bGUoe1xyXG4gICAgaW1wb3J0czogW1xyXG4gICAgICAgIEJyb3dzZXJNb2R1bGUsXHJcbiAgICAgICAgRGF0YU1vZHVsZSxcclxuICAgICAgICBTaGFyZWRNb2R1bGUsXHJcbiAgICAgICAgQnJvd3NlckFuaW1hdGlvbnNNb2R1bGUsXHJcbiAgICAgICAgVHJhbnNsYXRlTW9kdWxlLmZvclJvb3Qoe1xyXG4gICAgICAgICAgICBsb2FkZXI6IHtcclxuICAgICAgICAgICAgICAgIHByb3ZpZGU6IFRyYW5zbGF0ZUxvYWRlcixcclxuICAgICAgICAgICAgICAgIHVzZUZhY3Rvcnk6IEh0dHBMb2FkZXJGYWN0b3J5LFxyXG4gICAgICAgICAgICAgICAgZGVwczogW0h0dHBDbGllbnQsIFBsYXRmb3JtTG9jYXRpb25dLFxyXG4gICAgICAgICAgICB9LFxyXG5cclxuICAgICAgICAgICAgY29tcGlsZXI6IHsgcHJvdmlkZTogVHJhbnNsYXRlQ29tcGlsZXIsIHVzZUNsYXNzOiBJbmplY3RhYmxlVHJhbnNsYXRlTWVzc2FnZUZvcm1hdENvbXBpbGVyIH0sXHJcbiAgICAgICAgfSksXHJcbiAgICBdLFxyXG4gICAgcHJvdmlkZXJzOiBbcmVnaXN0ZXJEZWZhdWx0Rm9ybUlucHV0cygpLCBUaXRsZV0sXHJcbiAgICBleHBvcnRzOiBbU2hhcmVkTW9kdWxlLCBPdmVybGF5SG9zdENvbXBvbmVudF0sXHJcbiAgICBkZWNsYXJhdGlvbnM6IFtcclxuICAgICAgICBBcHBTaGVsbENvbXBvbmVudCxcclxuICAgICAgICBVc2VyTWVudUNvbXBvbmVudCxcclxuICAgICAgICBCYXNlTmF2Q29tcG9uZW50LFxyXG4gICAgICAgIE1haW5OYXZDb21wb25lbnQsXHJcbiAgICAgICAgU2V0dGluZ3NOYXZDb21wb25lbnQsXHJcbiAgICAgICAgQnJlYWRjcnVtYkNvbXBvbmVudCxcclxuICAgICAgICBPdmVybGF5SG9zdENvbXBvbmVudCxcclxuICAgICAgICBOb3RpZmljYXRpb25Db21wb25lbnQsXHJcbiAgICAgICAgVWlMYW5ndWFnZVN3aXRjaGVyRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgICAgIENoYW5uZWxTd2l0Y2hlckNvbXBvbmVudCxcclxuICAgICAgICBUaGVtZVN3aXRjaGVyQ29tcG9uZW50LFxyXG4gICAgICAgIEFsZXJ0c0NvbXBvbmVudCxcclxuICAgIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3JlTW9kdWxlIHtcclxuICAgIGNvbnN0cnVjdG9yKFxyXG4gICAgICAgIHByaXZhdGUgaTE4blNlcnZpY2U6IEkxOG5TZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbG9jYWxTdG9yYWdlU2VydmljZTogTG9jYWxTdG9yYWdlU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHRpdGxlU2VydmljZTogVGl0bGUsXHJcbiAgICAgICAgcHJpdmF0ZSBhbGVydHNTZXJ2aWNlOiBBbGVydHNTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgZGF0YVNlcnZpY2U6IERhdGFTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgbm90aWZpY2F0aW9uU2VydmljZTogTm90aWZpY2F0aW9uU2VydmljZSxcclxuICAgICkge1xyXG4gICAgICAgIHRoaXMuaW5pdFVpTGFuZ3VhZ2VzQW5kTG9jYWxlcygpO1xyXG4gICAgICAgIHRoaXMuaW5pdFVpVGl0bGUoKTtcclxuICAgICAgICB0aGlzLmluaXRBbGVydHMoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGluaXRVaUxhbmd1YWdlc0FuZExvY2FsZXMoKSB7XHJcbiAgICAgICAgY29uc3QgZGVmYXVsdExhbmd1YWdlID0gZ2V0RGVmYXVsdFVpTGFuZ3VhZ2UoKTtcclxuICAgICAgICBjb25zdCBkZWZhdWx0TG9jYWxlID0gZ2V0RGVmYXVsdFVpTG9jYWxlKCk7XHJcblxyXG4gICAgICAgIGNvbnN0IGxhc3RMYW5ndWFnZSA9IHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5nZXQoJ3VpTGFuZ3VhZ2VDb2RlJyk7XHJcbiAgICAgICAgY29uc3QgYXZhaWxhYmxlTGFuZ3VhZ2VzID0gZ2V0QXBwQ29uZmlnKCkuYXZhaWxhYmxlTGFuZ3VhZ2VzO1xyXG4gICAgICAgIGNvbnN0IGF2YWlsYWJsZUxvY2FsZXMgPSBnZXRBcHBDb25maWcoKS5hdmFpbGFibGVMb2NhbGVzO1xyXG5cclxuICAgICAgICBpZiAoISFkZWZhdWx0TGFuZ3VhZ2UgJiYgIWF2YWlsYWJsZUxhbmd1YWdlcy5pbmNsdWRlcyhkZWZhdWx0TGFuZ3VhZ2UpKSB7XHJcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihcclxuICAgICAgICAgICAgICAgIGBUaGUgZGVmYXVsdExhbmd1YWdlIFwiJHtkZWZhdWx0TGFuZ3VhZ2V9XCIgbXVzdCBiZSBvbmUgb2YgdGhlIGF2YWlsYWJsZUxhbmd1YWdlcyBbJHthdmFpbGFibGVMYW5ndWFnZXNcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGwgPT4gYFwiJHtsfVwiYClcclxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX1dYCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGlmICghIWRlZmF1bHRMb2NhbGUgJiYgIWF2YWlsYWJsZUxvY2FsZXMuaW5jbHVkZXMoZGVmYXVsdExvY2FsZSkpIHtcclxuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKFxyXG4gICAgICAgICAgICAgICAgYFRoZSBkZWZhdWx0TG9jYWxlIFwiJHtkZWZhdWx0TG9jYWxlfVwiIG11c3QgYmUgb25lIG9mIHRoZSBhdmFpbGFibGVMb2NhbGVzIFske2F2YWlsYWJsZUxvY2FsZXNcclxuICAgICAgICAgICAgICAgICAgICAubWFwKGwgPT4gYFwiJHtsfVwiYClcclxuICAgICAgICAgICAgICAgICAgICAuam9pbignLCAnKX1dYCxcclxuICAgICAgICAgICAgKTtcclxuICAgICAgICB9XHJcblxyXG4gICAgICAgIGNvbnN0IHVpTGFuZ3VhZ2UgPVxyXG4gICAgICAgICAgICBsYXN0TGFuZ3VhZ2UgJiYgYXZhaWxhYmxlTGFuZ3VhZ2VzLmluY2x1ZGVzKGxhc3RMYW5ndWFnZSkgPyBsYXN0TGFuZ3VhZ2UgOiBkZWZhdWx0TGFuZ3VhZ2U7XHJcblxyXG4gICAgICAgIHRoaXMubG9jYWxTdG9yYWdlU2VydmljZS5zZXQoJ3VpTGFuZ3VhZ2VDb2RlJywgdWlMYW5ndWFnZSk7XHJcblxyXG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2Uuc2V0TGFuZ3VhZ2UodWlMYW5ndWFnZSk7XHJcbiAgICAgICAgdGhpcy5pMThuU2VydmljZS5zZXREZWZhdWx0TGFuZ3VhZ2UoZGVmYXVsdExhbmd1YWdlKTtcclxuICAgICAgICB0aGlzLmkxOG5TZXJ2aWNlLnNldEF2YWlsYWJsZUxhbmd1YWdlcyhhdmFpbGFibGVMYW5ndWFnZXMgfHwgW2RlZmF1bHRMYW5ndWFnZV0pO1xyXG4gICAgICAgIHRoaXMuaTE4blNlcnZpY2Uuc2V0QXZhaWxhYmxlTG9jYWxlcyhhdmFpbGFibGVMb2NhbGVzIHx8IFtkZWZhdWx0TG9jYWxlXSk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBpbml0VWlUaXRsZSgpIHtcclxuICAgICAgICBjb25zdCB0aXRsZSA9IGdldEFwcENvbmZpZygpLmJyYW5kIHx8ICdWZW5kdXJlJztcclxuXHJcbiAgICAgICAgdGhpcy50aXRsZVNlcnZpY2Uuc2V0VGl0bGUodGl0bGUpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgaW5pdEFsZXJ0cygpIHtcclxuICAgICAgICB0aGlzLmFsZXJ0c1NlcnZpY2UuY29uZmlndXJlQWxlcnQoe1xyXG4gICAgICAgICAgICBpZDogJ3BlbmRpbmctc2VhcmNoLWluZGV4LXVwZGF0ZXMnLFxyXG4gICAgICAgICAgICByZXF1aXJlZFBlcm1pc3Npb25zOiBbUGVybWlzc2lvbi5SZWFkQ2F0YWxvZywgUGVybWlzc2lvbi5SZWFkUHJvZHVjdF0sXHJcbiAgICAgICAgICAgIGNoZWNrOiAoKSA9PlxyXG4gICAgICAgICAgICAgICAgdGhpcy5kYXRhU2VydmljZS5wcm9kdWN0XHJcbiAgICAgICAgICAgICAgICAgICAgLmdldFBlbmRpbmdTZWFyY2hJbmRleFVwZGF0ZXMoKVxyXG4gICAgICAgICAgICAgICAgICAgIC5tYXBTaW5nbGUoKHsgcGVuZGluZ1NlYXJjaEluZGV4VXBkYXRlcyB9KSA9PiBwZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzKSxcclxuICAgICAgICAgICAgcmVjaGVja0ludGVydmFsTXM6IDEwMDAgKiAzMCxcclxuICAgICAgICAgICAgaXNBbGVydDogZGF0YSA9PiAwIDwgZGF0YSxcclxuICAgICAgICAgICAgYWN0aW9uOiBkYXRhID0+IHtcclxuICAgICAgICAgICAgICAgIHRoaXMuZGF0YVNlcnZpY2UucHJvZHVjdC5ydW5QZW5kaW5nU2VhcmNoSW5kZXhVcGRhdGVzKCkuc3Vic2NyaWJlKHZhbHVlID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuaW5mbyhfKCdjYXRhbG9nLnJ1bm5pbmctc2VhcmNoLWluZGV4LXVwZGF0ZXMnKSwge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICBjb3VudDogZGF0YSxcclxuICAgICAgICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICBsYWJlbDogZGF0YSA9PiAoe1xyXG4gICAgICAgICAgICAgICAgdGV4dDogXygnY2F0YWxvZy5ydW4tcGVuZGluZy1zZWFyY2gtaW5kZXgtdXBkYXRlcycpLFxyXG4gICAgICAgICAgICAgICAgdHJhbnNsYXRpb25WYXJzOiB7IGNvdW50OiBkYXRhIH0sXHJcbiAgICAgICAgICAgIH0pLFxyXG4gICAgICAgIH0pO1xyXG4gICAgICAgIHRoaXMuYWxlcnRzU2VydmljZS5yZWZyZXNoKCk7XHJcbiAgICB9XHJcbn1cclxuXHJcbmV4cG9ydCBmdW5jdGlvbiBIdHRwTG9hZGVyRmFjdG9yeShodHRwOiBIdHRwQ2xpZW50LCBsb2NhdGlvbjogUGxhdGZvcm1Mb2NhdGlvbikge1xyXG4gICAgLy8gRHluYW1pY2FsbHkgZ2V0IHRoZSBiYXNlSHJlZiwgd2hpY2ggaXMgY29uZmlndXJlZCBpbiB0aGUgYW5ndWxhci5qc29uIGZpbGVcclxuICAgIGNvbnN0IGJhc2VIcmVmID0gbG9jYXRpb24uZ2V0QmFzZUhyZWZGcm9tRE9NKCk7XHJcbiAgICByZXR1cm4gbmV3IEN1c3RvbUh0dHBUcmFuc2xhdGlvbkxvYWRlcihodHRwLCBiYXNlSHJlZiArICdpMThuLW1lc3NhZ2VzLycpO1xyXG59XHJcbiJdfQ==
@@ -8,9 +8,13 @@ export class I18nService {
8
8
  get availableLanguages() {
9
9
  return [...this._availableLanguages];
10
10
  }
11
+ get availableLocales() {
12
+ return [...this._availableLocales];
13
+ }
11
14
  constructor(ngxTranslate, document) {
12
15
  this.ngxTranslate = ngxTranslate;
13
16
  this.document = document;
17
+ this._availableLocales = [];
14
18
  this._availableLanguages = [];
15
19
  }
16
20
  /**
@@ -34,6 +38,12 @@ export class I18nService {
34
38
  setAvailableLanguages(languages) {
35
39
  this._availableLanguages = languages;
36
40
  }
41
+ /**
42
+ * Set the available UI locales
43
+ */
44
+ setAvailableLocales(locales) {
45
+ this._availableLocales = locales;
46
+ }
37
47
  /**
38
48
  * Translate the given key.
39
49
  */
@@ -65,4 +75,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.2", ngImpor
65
75
  type: Inject,
66
76
  args: [DOCUMENT]
67
77
  }] }]; } });
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRTVELGVBQWU7QUFJZixNQUFNLE9BQU8sV0FBVztJQUdwQixJQUFJLGtCQUFrQjtRQUNsQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsWUFBb0IsWUFBOEIsRUFBNEIsUUFBa0I7UUFBNUUsaUJBQVksR0FBWixZQUFZLENBQWtCO1FBQTRCLGFBQVEsR0FBUixRQUFRLENBQVU7UUFOaEcsd0JBQW1CLEdBQW1CLEVBQUUsQ0FBQztJQU0wRCxDQUFDO0lBRXBHOztPQUVHO0lBQ0gsa0JBQWtCLENBQUMsWUFBMEI7UUFDekMsSUFBSSxDQUFDLFlBQVksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsV0FBVyxDQUFDLFFBQXNCO1FBQzlCLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1FBQ2hDLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxlQUFlLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsSUFBSSxHQUFHLFFBQVEsQ0FBQztTQUNqRDtJQUNMLENBQUM7SUFFRDs7T0FFRztJQUNILHFCQUFxQixDQUFDLFNBQXlCO1FBQzNDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxTQUFTLENBQUM7SUFDekMsQ0FBQztJQUVEOztPQUVHO0lBQ0gsU0FBUyxDQUFDLEdBQXNCLEVBQUUsTUFBWTtRQUMxQyxPQUFPLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLEdBQUcsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxLQUFLLENBQUMsWUFBMEI7UUFDNUIsTUFBTSxnQkFBZ0IsR0FBRztZQUNyQixZQUFZLENBQUMsRUFBRTtZQUNmLFlBQVksQ0FBQyxFQUFFO1lBQ2YsWUFBWSxDQUFDLEVBQUU7WUFDZixZQUFZLENBQUMsRUFBRTtZQUNmLFlBQVksQ0FBQyxFQUFFO1NBQ2xCLENBQUM7UUFDRixPQUFPLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDOzhHQXBEUSxXQUFXLGtEQU93QyxRQUFRO2tIQVAzRCxXQUFXLGNBRlIsTUFBTTs7MkZBRVQsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDUixVQUFVLEVBQUUsTUFBTTtpQkFDckI7OzBCQVF3RCxNQUFNOzJCQUFDLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBET0NVTUVOVCB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcblxyXG5pbXBvcnQgeyBMYW5ndWFnZUNvZGUgfSBmcm9tICcuLi8uLi9jb21tb24vZ2VuZXJhdGVkLXR5cGVzJztcclxuXHJcbi8qKiBAZHluYW1pYyAqL1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgICBwcm92aWRlZEluOiAncm9vdCcsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBJMThuU2VydmljZSB7XHJcbiAgICBfYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5ndWFnZUNvZGVbXSA9IFtdO1xyXG5cclxuICAgIGdldCBhdmFpbGFibGVMYW5ndWFnZXMoKTogTGFuZ3VhZ2VDb2RlW10ge1xyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy5fYXZhaWxhYmxlTGFuZ3VhZ2VzXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5neFRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2VcclxuICAgICAqL1xyXG4gICAgc2V0RGVmYXVsdExhbmd1YWdlKGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgdGhpcy5uZ3hUcmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZ3VhZ2VDb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgVUkgbGFuZ3VhZ2VcclxuICAgICAqL1xyXG4gICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmd4VHJhbnNsYXRlLnVzZShsYW5ndWFnZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gbGFuZ3VhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBhdmFpbGFibGUgVUkgbGFuZ3VhZ2VzXHJcbiAgICAgKi9cclxuICAgIHNldEF2YWlsYWJsZUxhbmd1YWdlcyhsYW5ndWFnZXM6IExhbmd1YWdlQ29kZVtdKSB7XHJcbiAgICAgICAgdGhpcy5fYXZhaWxhYmxlTGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogVHJhbnNsYXRlIHRoZSBnaXZlbiBrZXkuXHJcbiAgICAgKi9cclxuICAgIHRyYW5zbGF0ZShrZXk6IHN0cmluZyB8IHN0cmluZ1tdLCBwYXJhbXM/OiBhbnkpOiBzdHJpbmcge1xyXG4gICAgICAgIHJldHVybiB0aGlzLm5neFRyYW5zbGF0ZS5pbnN0YW50KGtleSwgcGFyYW1zKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgZ2l2ZW4gbGFuZ3VhZ2UgY29kZSBpcyBhIHJpZ2h0LXRvLWxlZnQgbGFuZ3VhZ2UuXHJcbiAgICAgKi9cclxuICAgIGlzUlRMKGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKTogYm9vbGVhbiB7XHJcbiAgICAgICAgY29uc3QgcnRsTGFuZ3VhZ2VDb2RlcyA9IFtcclxuICAgICAgICAgICAgTGFuZ3VhZ2VDb2RlLmFyLFxyXG4gICAgICAgICAgICBMYW5ndWFnZUNvZGUuaGUsXHJcbiAgICAgICAgICAgIExhbmd1YWdlQ29kZS5mYSxcclxuICAgICAgICAgICAgTGFuZ3VhZ2VDb2RlLnVyLFxyXG4gICAgICAgICAgICBMYW5ndWFnZUNvZGUucHMsXHJcbiAgICAgICAgXTtcclxuICAgICAgICByZXR1cm4gcnRsTGFuZ3VhZ2VDb2Rlcy5pbmNsdWRlcyhsYW5ndWFnZUNvZGUpO1xyXG4gICAgfVxyXG59XHJcbiJdfQ==
78
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaTE4bi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2xpYi9jb3JlL3NyYy9wcm92aWRlcnMvaTE4bi9pMThuLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFFBQVEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzNDLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBR25ELE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQzs7O0FBRTVELGVBQWU7QUFJZixNQUFNLE9BQU8sV0FBVztJQUlwQixJQUFJLGtCQUFrQjtRQUNsQixPQUFPLENBQUMsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFlBQW9CLFlBQThCLEVBQTRCLFFBQWtCO1FBQTVFLGlCQUFZLEdBQVosWUFBWSxDQUFrQjtRQUE0QixhQUFRLEdBQVIsUUFBUSxDQUFVO1FBWGhHLHNCQUFpQixHQUFhLEVBQUUsQ0FBQztRQUNqQyx3QkFBbUIsR0FBbUIsRUFBRSxDQUFDO0lBVTBELENBQUM7SUFFcEc7O09BRUc7SUFDSCxrQkFBa0IsQ0FBQyxZQUEwQjtRQUN6QyxJQUFJLENBQUMsWUFBWSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRUQ7O09BRUc7SUFDSCxXQUFXLENBQUMsUUFBc0I7UUFDOUIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDaEMsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLGVBQWUsRUFBRTtZQUNoQyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxJQUFJLEdBQUcsUUFBUSxDQUFDO1NBQ2pEO0lBQ0wsQ0FBQztJQUVEOztPQUVHO0lBQ0gscUJBQXFCLENBQUMsU0FBeUI7UUFDM0MsSUFBSSxDQUFDLG1CQUFtQixHQUFHLFNBQVMsQ0FBQztJQUN6QyxDQUFDO0lBRUQ7O09BRUc7SUFDSCxtQkFBbUIsQ0FBQyxPQUFpQjtRQUNqQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsT0FBTyxDQUFDO0lBQ3JDLENBQUM7SUFFRDs7T0FFRztJQUNILFNBQVMsQ0FBQyxHQUFzQixFQUFFLE1BQVk7UUFDMUMsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsTUFBTSxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVEOztPQUVHO0lBQ0gsS0FBSyxDQUFDLFlBQTBCO1FBQzVCLE1BQU0sZ0JBQWdCLEdBQUc7WUFDckIsWUFBWSxDQUFDLEVBQUU7WUFDZixZQUFZLENBQUMsRUFBRTtZQUNmLFlBQVksQ0FBQyxFQUFFO1lBQ2YsWUFBWSxDQUFDLEVBQUU7WUFDZixZQUFZLENBQUMsRUFBRTtTQUNsQixDQUFDO1FBQ0YsT0FBTyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDbkQsQ0FBQzs4R0FoRVEsV0FBVyxrREFZd0MsUUFBUTtrSEFaM0QsV0FBVyxjQUZSLE1BQU07OzJGQUVULFdBQVc7a0JBSHZCLFVBQVU7bUJBQUM7b0JBQ1IsVUFBVSxFQUFFLE1BQU07aUJBQ3JCOzswQkFhd0QsTUFBTTsyQkFBQyxRQUFRIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRE9DVU1FTlQgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuaW1wb3J0IHsgTGFuZ3VhZ2VDb2RlIH0gZnJvbSAnLi4vLi4vY29tbW9uL2dlbmVyYXRlZC10eXBlcyc7XHJcblxyXG4vKiogQGR5bmFtaWMgKi9cclxuQEluamVjdGFibGUoe1xyXG4gICAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgSTE4blNlcnZpY2Uge1xyXG4gICAgX2F2YWlsYWJsZUxvY2FsZXM6IHN0cmluZ1tdID0gW107XHJcbiAgICBfYXZhaWxhYmxlTGFuZ3VhZ2VzOiBMYW5ndWFnZUNvZGVbXSA9IFtdO1xyXG5cclxuICAgIGdldCBhdmFpbGFibGVMYW5ndWFnZXMoKTogTGFuZ3VhZ2VDb2RlW10ge1xyXG4gICAgICAgIHJldHVybiBbLi4udGhpcy5fYXZhaWxhYmxlTGFuZ3VhZ2VzXTtcclxuICAgIH1cclxuXHJcbiAgICBnZXQgYXZhaWxhYmxlTG9jYWxlcygpOiBzdHJpbmdbXSB7XHJcbiAgICAgICAgcmV0dXJuIFsuLi50aGlzLl9hdmFpbGFibGVMb2NhbGVzXTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdHJ1Y3Rvcihwcml2YXRlIG5neFRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQpIHt9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBTZXQgdGhlIGRlZmF1bHQgbGFuZ3VhZ2VcclxuICAgICAqL1xyXG4gICAgc2V0RGVmYXVsdExhbmd1YWdlKGxhbmd1YWdlQ29kZTogTGFuZ3VhZ2VDb2RlKSB7XHJcbiAgICAgICAgdGhpcy5uZ3hUcmFuc2xhdGUuc2V0RGVmYXVsdExhbmcobGFuZ3VhZ2VDb2RlKTtcclxuICAgIH1cclxuXHJcbiAgICAvKipcclxuICAgICAqIFNldCB0aGUgVUkgbGFuZ3VhZ2VcclxuICAgICAqL1xyXG4gICAgc2V0TGFuZ3VhZ2UobGFuZ3VhZ2U6IExhbmd1YWdlQ29kZSk6IHZvaWQge1xyXG4gICAgICAgIHRoaXMubmd4VHJhbnNsYXRlLnVzZShsYW5ndWFnZSk7XHJcbiAgICAgICAgaWYgKHRoaXMuZG9jdW1lbnQ/LmRvY3VtZW50RWxlbWVudCkge1xyXG4gICAgICAgICAgICB0aGlzLmRvY3VtZW50LmRvY3VtZW50RWxlbWVudC5sYW5nID0gbGFuZ3VhZ2U7XHJcbiAgICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBhdmFpbGFibGUgVUkgbGFuZ3VhZ2VzXHJcbiAgICAgKi9cclxuICAgIHNldEF2YWlsYWJsZUxhbmd1YWdlcyhsYW5ndWFnZXM6IExhbmd1YWdlQ29kZVtdKSB7XHJcbiAgICAgICAgdGhpcy5fYXZhaWxhYmxlTGFuZ3VhZ2VzID0gbGFuZ3VhZ2VzO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogU2V0IHRoZSBhdmFpbGFibGUgVUkgbG9jYWxlc1xyXG4gICAgICovXHJcbiAgICBzZXRBdmFpbGFibGVMb2NhbGVzKGxvY2FsZXM6IHN0cmluZ1tdKSB7XHJcbiAgICAgICAgdGhpcy5fYXZhaWxhYmxlTG9jYWxlcyA9IGxvY2FsZXM7XHJcbiAgICB9XHJcblxyXG4gICAgLyoqXHJcbiAgICAgKiBUcmFuc2xhdGUgdGhlIGdpdmVuIGtleS5cclxuICAgICAqL1xyXG4gICAgdHJhbnNsYXRlKGtleTogc3RyaW5nIHwgc3RyaW5nW10sIHBhcmFtcz86IGFueSk6IHN0cmluZyB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMubmd4VHJhbnNsYXRlLmluc3RhbnQoa2V5LCBwYXJhbXMpO1xyXG4gICAgfVxyXG5cclxuICAgIC8qKlxyXG4gICAgICogUmV0dXJucyB0cnVlIGlmIHRoZSBnaXZlbiBsYW5ndWFnZSBjb2RlIGlzIGEgcmlnaHQtdG8tbGVmdCBsYW5ndWFnZS5cclxuICAgICAqL1xyXG4gICAgaXNSVEwobGFuZ3VhZ2VDb2RlOiBMYW5ndWFnZUNvZGUpOiBib29sZWFuIHtcclxuICAgICAgICBjb25zdCBydGxMYW5ndWFnZUNvZGVzID0gW1xyXG4gICAgICAgICAgICBMYW5ndWFnZUNvZGUuYXIsXHJcbiAgICAgICAgICAgIExhbmd1YWdlQ29kZS5oZSxcclxuICAgICAgICAgICAgTGFuZ3VhZ2VDb2RlLmZhLFxyXG4gICAgICAgICAgICBMYW5ndWFnZUNvZGUudXIsXHJcbiAgICAgICAgICAgIExhbmd1YWdlQ29kZS5wcyxcclxuICAgICAgICBdO1xyXG4gICAgICAgIHJldHVybiBydGxMYW5ndWFnZUNvZGVzLmluY2x1ZGVzKGxhbmd1YWdlQ29kZSk7XHJcbiAgICB9XHJcbn1cclxuIl19