ngx-bimplus-components 0.0.58 → 0.0.59

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.
@@ -1,35 +1,36 @@
1
1
  import { Injectable } from '@angular/core';
2
+ import { BehaviorSubject } from 'rxjs/internal/BehaviorSubject';
2
3
  import * as i0 from "@angular/core";
3
4
  export class LanguageStringsService {
4
5
  constructor() {
6
+ this.currentLanguage$ = new BehaviorSubject("en");
7
+ this.currentLanguageStrings$ = new BehaviorSubject({});
5
8
  // #endregion public methods
6
9
  // #region private fields
7
10
  this._languageFilesUri = "/assets";
8
- this._strings = {};
9
- this._currentLanguage = "en";
10
11
  }
11
12
  // #region public fields
12
13
  set languageFilesUri(uri) {
13
14
  this._languageFilesUri = uri;
14
15
  }
15
16
  get currentLanguage() {
16
- return this._currentLanguage;
17
+ return this.currentLanguage$.getValue();
17
18
  }
18
19
  set currentLanguageStrings(langStrings) {
19
- this._strings = langStrings;
20
+ this.currentLanguageStrings$.next(langStrings);
20
21
  }
21
22
  get currentLanguageStrings() {
22
- return this._strings;
23
+ return this.currentLanguageStrings$.getValue();
23
24
  }
24
25
  // #endregion public fields
25
26
  // #region public methods
26
27
  async setCurrentLanguage(lang) {
28
+ this.currentLanguage$.next(lang);
27
29
  await this.fetchLanguageStrings(lang);
28
- this._currentLanguage = lang;
29
30
  }
30
31
  extractLocalizedStrings(stringIds) {
31
32
  const obj = {};
32
- for (const [key, value] of Object.entries(this._strings)) {
33
+ for (const [key, value] of Object.entries(this.currentLanguageStrings)) {
33
34
  if (typeof value == 'string' && stringIds.find(x => x === key)) {
34
35
  obj[key] = value;
35
36
  }
@@ -38,7 +39,7 @@ export class LanguageStringsService {
38
39
  }
39
40
  async fetchLanguageStrings(lang) {
40
41
  const data = await fetch(`${this._languageFilesUri}/strings_${lang}.json`);
41
- this._strings = await data.json();
42
+ this.currentLanguageStrings$.next(await data.json());
42
43
  }
43
44
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LanguageStringsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
44
45
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LanguageStringsService, providedIn: 'root' }); }
@@ -49,4 +50,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
49
50
  providedIn: 'root'
50
51
  }]
51
52
  }] });
52
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc3RyaW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xhbmd1YWdlLXN0cmluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQU0zQyxNQUFNLE9BQU8sc0JBQXNCO0lBSG5DO1FBNkNFLDRCQUE0QjtRQUU1QiwyQkFBMkI7UUFDbkIsc0JBQWlCLEdBQVksU0FBUyxDQUFBO1FBQ3RDLGFBQVEsR0FBc0IsRUFBRSxDQUFDO1FBQ2pDLHFCQUFnQixHQUFZLElBQUksQ0FBQztLQUUxQztJQS9DQyx3QkFBd0I7SUFDeEIsSUFBSSxnQkFBZ0IsQ0FBQyxHQUFZO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUM7SUFDL0IsQ0FBQztJQUdELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQztJQUMvQixDQUFDO0lBRUQsSUFBSSxzQkFBc0IsQ0FBQyxXQUE4QjtRQUN2RCxJQUFJLENBQUMsUUFBUSxHQUFHLFdBQVcsQ0FBQztJQUM5QixDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFDRCwyQkFBMkI7SUFFM0IseUJBQXlCO0lBQ3pCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxJQUFhO1FBQ3BDLE1BQU0sSUFBSSxDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUM7SUFDL0IsQ0FBQztJQUVELHVCQUF1QixDQUFDLFNBQXlCO1FBQy9DLE1BQU0sR0FBRyxHQUFzQixFQUFFLENBQUM7UUFDbEMsS0FBSyxNQUFNLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxJQUFJLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUM7WUFDekQsSUFBRyxPQUFPLEtBQUssSUFBSSxRQUFRLElBQUksU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUEsRUFBRSxDQUFBLENBQUMsS0FBSyxHQUFHLENBQUMsRUFBQyxDQUFDO2dCQUMzRCxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO1FBRUQsT0FBTyxHQUFHLENBQUM7SUFDYixDQUFDO0lBRUQsS0FBSyxDQUFDLG9CQUFvQixDQUFDLElBQWE7UUFDdEMsTUFBTSxJQUFJLEdBQUcsTUFBTSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLFlBQVksSUFBSSxPQUFPLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsUUFBUSxHQUFHLE1BQU0sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3BDLENBQUM7K0dBekNVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXplZFN0cmluZ3MgfSBmcm9tICcuLy4uL3R5cGVzL3R5cGVzJ1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VTdHJpbmdzU2VydmljZSB7XHJcblxyXG4gIC8vICNyZWdpb24gcHVibGljIGZpZWxkc1xyXG4gIHNldCBsYW5ndWFnZUZpbGVzVXJpKHVyaSA6IHN0cmluZyl7XHJcbiAgICB0aGlzLl9sYW5ndWFnZUZpbGVzVXJpID0gdXJpO1xyXG4gIH1cclxuXHJcblxyXG4gIGdldCBjdXJyZW50TGFuZ3VhZ2UoKSA6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fY3VycmVudExhbmd1YWdlO1xyXG4gIH1cclxuXHJcbiAgc2V0IGN1cnJlbnRMYW5ndWFnZVN0cmluZ3MobGFuZ1N0cmluZ3MgOiBMb2NhbGl6ZWRTdHJpbmdzKXtcclxuICAgIHRoaXMuX3N0cmluZ3MgPSBsYW5nU3RyaW5ncztcclxuICB9XHJcblxyXG4gIGdldCBjdXJyZW50TGFuZ3VhZ2VTdHJpbmdzKCkgOiBMb2NhbGl6ZWRTdHJpbmdzIHtcclxuICAgIHJldHVybiB0aGlzLl9zdHJpbmdzO1xyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBmaWVsZHNcclxuXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgbWV0aG9kc1xyXG4gIGFzeW5jIHNldEN1cnJlbnRMYW5ndWFnZShsYW5nIDogc3RyaW5nKXtcclxuICAgIGF3YWl0IHRoaXMuZmV0Y2hMYW5ndWFnZVN0cmluZ3MobGFuZyk7XHJcbiAgICB0aGlzLl9jdXJyZW50TGFuZ3VhZ2UgPSBsYW5nO1xyXG4gIH1cclxuXHJcbiAgZXh0cmFjdExvY2FsaXplZFN0cmluZ3Moc3RyaW5nSWRzIDogQXJyYXk8c3RyaW5nPikgOiBMb2NhbGl6ZWRTdHJpbmdzIHtcclxuICAgIGNvbnN0IG9iaiA6IExvY2FsaXplZFN0cmluZ3MgPSB7fTtcclxuICAgIGZvciAoY29uc3QgW2tleSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuX3N0cmluZ3MpKSB7XHJcbiAgICAgIGlmKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyAmJiBzdHJpbmdJZHMuZmluZCh4PT54ID09PSBrZXkpKXtcclxuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIGFzeW5jIGZldGNoTGFuZ3VhZ2VTdHJpbmdzKGxhbmcgOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoKGAke3RoaXMuX2xhbmd1YWdlRmlsZXNVcml9L3N0cmluZ3NfJHtsYW5nfS5qc29uYCk7XHJcbiAgICB0aGlzLl9zdHJpbmdzID0gYXdhaXQgZGF0YS5qc29uKCk7ICAgIFxyXG4gIH1cclxuICAvLyAjZW5kcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcblxyXG4gIC8vICNyZWdpb24gcHJpdmF0ZSBmaWVsZHMgIFxyXG4gIHByaXZhdGUgX2xhbmd1YWdlRmlsZXNVcmkgOiBzdHJpbmcgPSBcIi9hc3NldHNcIlxyXG4gIHByaXZhdGUgX3N0cmluZ3MgOiBMb2NhbGl6ZWRTdHJpbmdzID0ge307XHJcbiAgcHJpdmF0ZSBfY3VycmVudExhbmd1YWdlIDogc3RyaW5nID0gXCJlblwiO1xyXG4gIC8vICNlbmRyZWdpb24gcHJpdmF0ZSBmaWVsZHNcclxufVxyXG4iXX0=
53
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2Utc3RyaW5ncy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWJpbXBsdXMtY29tcG9uZW50cy9zcmMvbGliL3NlcnZpY2VzL2xhbmd1YWdlLXN0cmluZ3Muc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTNDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFLaEUsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQVVFLHFCQUFnQixHQUFHLElBQUksZUFBZSxDQUFVLElBQUksQ0FBQyxDQUFDO1FBQ3RELDRCQUF1QixHQUFHLElBQUksZUFBZSxDQUFtQixFQUFFLENBQUMsQ0FBQztRQW9DcEUsNEJBQTRCO1FBRTVCLDJCQUEyQjtRQUNuQixzQkFBaUIsR0FBWSxTQUFTLENBQUE7S0FFL0M7SUEvQ0Msd0JBQXdCO0lBQ3hCLElBQUksZ0JBQWdCLENBQUMsR0FBWTtRQUMvQixJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDO0lBQy9CLENBQUM7SUFLRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDMUMsQ0FBQztJQUVELElBQUksc0JBQXNCLENBQUMsV0FBOEI7UUFDdkQsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqRCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDakQsQ0FBQztJQUNELDJCQUEyQjtJQUUzQix5QkFBeUI7SUFDekIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLElBQWE7UUFDcEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNqQyxNQUFNLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsdUJBQXVCLENBQUMsU0FBeUI7UUFDL0MsTUFBTSxHQUFHLEdBQXNCLEVBQUUsQ0FBQztRQUNsQyxLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsc0JBQXNCLENBQUMsRUFBRSxDQUFDO1lBQ3ZFLElBQUcsT0FBTyxLQUFLLElBQUksUUFBUSxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFBLEVBQUUsQ0FBQSxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUMsQ0FBQztnQkFDM0QsR0FBRyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNuQixDQUFDO1FBQ0gsQ0FBQztRQUVELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVELEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxJQUFhO1FBQ3RDLE1BQU0sSUFBSSxHQUFHLE1BQU0sS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixZQUFZLElBQUksT0FBTyxDQUFDLENBQUM7UUFDM0UsSUFBSSxDQUFDLHVCQUF1QixDQUFDLElBQUksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7K0dBM0NVLHNCQUFzQjttSEFBdEIsc0JBQXNCLGNBRnJCLE1BQU07OzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IExvY2FsaXplZFN0cmluZ3MgfSBmcm9tICcuLy4uL3R5cGVzL3R5cGVzJ1xyXG5pbXBvcnQgeyBCZWhhdmlvclN1YmplY3QgfSBmcm9tICdyeGpzL2ludGVybmFsL0JlaGF2aW9yU3ViamVjdCc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBMYW5ndWFnZVN0cmluZ3NTZXJ2aWNlIHtcclxuXHJcbiAgLy8gI3JlZ2lvbiBwdWJsaWMgZmllbGRzXHJcbiAgc2V0IGxhbmd1YWdlRmlsZXNVcmkodXJpIDogc3RyaW5nKXtcclxuICAgIHRoaXMuX2xhbmd1YWdlRmlsZXNVcmkgPSB1cmk7XHJcbiAgfVxyXG5cclxuICBjdXJyZW50TGFuZ3VhZ2UkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+IChcImVuXCIpO1xyXG4gIGN1cnJlbnRMYW5ndWFnZVN0cmluZ3MkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxMb2NhbGl6ZWRTdHJpbmdzPih7fSk7XHJcblxyXG4gIGdldCBjdXJyZW50TGFuZ3VhZ2UoKSA6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5jdXJyZW50TGFuZ3VhZ2UkLmdldFZhbHVlKCk7XHJcbiAgfVxyXG5cclxuICBzZXQgY3VycmVudExhbmd1YWdlU3RyaW5ncyhsYW5nU3RyaW5ncyA6IExvY2FsaXplZFN0cmluZ3Mpe1xyXG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2VTdHJpbmdzJC5uZXh0KGxhbmdTdHJpbmdzKTtcclxuICB9XHJcblxyXG4gIGdldCBjdXJyZW50TGFuZ3VhZ2VTdHJpbmdzKCkgOiBMb2NhbGl6ZWRTdHJpbmdzIHtcclxuICAgIHJldHVybiB0aGlzLmN1cnJlbnRMYW5ndWFnZVN0cmluZ3MkLmdldFZhbHVlKCk7XHJcbiAgfVxyXG4gIC8vICNlbmRyZWdpb24gcHVibGljIGZpZWxkc1xyXG5cclxuICAvLyAjcmVnaW9uIHB1YmxpYyBtZXRob2RzXHJcbiAgYXN5bmMgc2V0Q3VycmVudExhbmd1YWdlKGxhbmcgOiBzdHJpbmcpe1xyXG4gICAgdGhpcy5jdXJyZW50TGFuZ3VhZ2UkLm5leHQobGFuZyk7XHJcbiAgICBhd2FpdCB0aGlzLmZldGNoTGFuZ3VhZ2VTdHJpbmdzKGxhbmcpOyAgICBcclxuICB9XHJcblxyXG4gIGV4dHJhY3RMb2NhbGl6ZWRTdHJpbmdzKHN0cmluZ0lkcyA6IEFycmF5PHN0cmluZz4pIDogTG9jYWxpemVkU3RyaW5ncyB7XHJcbiAgICBjb25zdCBvYmogOiBMb2NhbGl6ZWRTdHJpbmdzID0ge307XHJcbiAgICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmN1cnJlbnRMYW5ndWFnZVN0cmluZ3MpKSB7XHJcbiAgICAgIGlmKHR5cGVvZiB2YWx1ZSA9PSAnc3RyaW5nJyAmJiBzdHJpbmdJZHMuZmluZCh4PT54ID09PSBrZXkpKXtcclxuICAgICAgICBvYmpba2V5XSA9IHZhbHVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIG9iajtcclxuICB9XHJcblxyXG4gIGFzeW5jIGZldGNoTGFuZ3VhZ2VTdHJpbmdzKGxhbmcgOiBzdHJpbmcpe1xyXG4gICAgY29uc3QgZGF0YSA9IGF3YWl0IGZldGNoKGAke3RoaXMuX2xhbmd1YWdlRmlsZXNVcml9L3N0cmluZ3NfJHtsYW5nfS5qc29uYCk7XHJcbiAgICB0aGlzLmN1cnJlbnRMYW5ndWFnZVN0cmluZ3MkLm5leHQoYXdhaXQgZGF0YS5qc29uKCkpOyAgICBcclxuICB9XHJcbiAgLy8gI2VuZHJlZ2lvbiBwdWJsaWMgbWV0aG9kc1xyXG5cclxuICAvLyAjcmVnaW9uIHByaXZhdGUgZmllbGRzICBcclxuICBwcml2YXRlIF9sYW5ndWFnZUZpbGVzVXJpIDogc3RyaW5nID0gXCIvYXNzZXRzXCJcclxuICAvLyAjZW5kcmVnaW9uIHByaXZhdGUgZmllbGRzXHJcbn1cclxuIl19
@@ -18,6 +18,7 @@ import { MatTreeFlattener, MatTreeFlatDataSource, MatTreeModule } from '@angular
18
18
  import { SelectionModel } from '@angular/cdk/collections';
19
19
  import * as i3 from '@angular/cdk/tree';
20
20
  import { FlatTreeControl, CdkTreeModule } from '@angular/cdk/tree';
21
+ import { BehaviorSubject as BehaviorSubject$1 } from 'rxjs/internal/BehaviorSubject';
21
22
 
22
23
  class NgxBimplusComponentsService {
23
24
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: NgxBimplusComponentsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
@@ -4700,34 +4701,34 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
4700
4701
 
4701
4702
  class LanguageStringsService {
4702
4703
  constructor() {
4704
+ this.currentLanguage$ = new BehaviorSubject$1("en");
4705
+ this.currentLanguageStrings$ = new BehaviorSubject$1({});
4703
4706
  // #endregion public methods
4704
4707
  // #region private fields
4705
4708
  this._languageFilesUri = "/assets";
4706
- this._strings = {};
4707
- this._currentLanguage = "en";
4708
4709
  }
4709
4710
  // #region public fields
4710
4711
  set languageFilesUri(uri) {
4711
4712
  this._languageFilesUri = uri;
4712
4713
  }
4713
4714
  get currentLanguage() {
4714
- return this._currentLanguage;
4715
+ return this.currentLanguage$.getValue();
4715
4716
  }
4716
4717
  set currentLanguageStrings(langStrings) {
4717
- this._strings = langStrings;
4718
+ this.currentLanguageStrings$.next(langStrings);
4718
4719
  }
4719
4720
  get currentLanguageStrings() {
4720
- return this._strings;
4721
+ return this.currentLanguageStrings$.getValue();
4721
4722
  }
4722
4723
  // #endregion public fields
4723
4724
  // #region public methods
4724
4725
  async setCurrentLanguage(lang) {
4726
+ this.currentLanguage$.next(lang);
4725
4727
  await this.fetchLanguageStrings(lang);
4726
- this._currentLanguage = lang;
4727
4728
  }
4728
4729
  extractLocalizedStrings(stringIds) {
4729
4730
  const obj = {};
4730
- for (const [key, value] of Object.entries(this._strings)) {
4731
+ for (const [key, value] of Object.entries(this.currentLanguageStrings)) {
4731
4732
  if (typeof value == 'string' && stringIds.find(x => x === key)) {
4732
4733
  obj[key] = value;
4733
4734
  }
@@ -4736,7 +4737,7 @@ class LanguageStringsService {
4736
4737
  }
4737
4738
  async fetchLanguageStrings(lang) {
4738
4739
  const data = await fetch(`${this._languageFilesUri}/strings_${lang}.json`);
4739
- this._strings = await data.json();
4740
+ this.currentLanguageStrings$.next(await data.json());
4740
4741
  }
4741
4742
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LanguageStringsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4742
4743
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: LanguageStringsService, providedIn: 'root' }); }