@tiba-spark/client-shared-lib 25.3.0-773 → 25.3.0-775

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.
@@ -13,13 +13,21 @@ export class LocalizationResolver {
13
13
  this.localizationService = localizationService;
14
14
  }
15
15
  resolve() {
16
- // Set the user language before resolve the route
16
+ // Determine the user's preferred language before resolving the route
17
17
  const userSettings = this.store.selectSnapshot(SessionState.mappedUserSettings);
18
18
  const lang = getCurrentLang(userSettings);
19
- this.translateService.use(lang);
19
+ // If the language is already registered in TranslateService, simply switch to it
20
20
  if (this.translateService.langs.includes(lang)) {
21
+ this.translateService.use(lang);
21
22
  return;
22
23
  }
24
+ // If ngx-translate believes the language is already loaded (even if it’s not),
25
+ // it will skip calling the loader’s getTranslation() method.
26
+ // Resetting the language forces ngx-translate to fetch translations again.
27
+ this.translateService.resetLang(lang);
28
+ // Apply the selected language and trigger translation loading
29
+ this.translateService.use(lang);
30
+ // Wait until the localization resources are fully loaded before resolving the route
23
31
  return new Promise((resolve, reject) => this.localizationService.resourceLoaded.asObservable().pipe(first())
24
32
  .subscribe({
25
33
  next: () => resolve(),
@@ -32,4 +40,4 @@ export class LocalizationResolver {
32
40
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalizationResolver, decorators: [{
33
41
  type: Injectable
34
42
  }], ctorParameters: () => [{ type: i1.Store }, { type: i2.TranslateService }, { type: i3.LocalizationService }] });
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9yZXNvbHZlcnMvbG9jYWxpemF0aW9uLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBR3hELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBb0IsS0FBWSxFQUFVLGdCQUFrQyxFQUFVLG1CQUF3QztRQUExRyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDOUgsQ0FBQztJQUVELE9BQU87UUFDTCxpREFBaUQ7UUFDakQsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEYsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQzFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1lBQy9DLE9BQU87UUFDVCxDQUFDO1FBRUQsT0FBTyxJQUFJLE9BQU8sQ0FBTyxDQUFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO2FBQy9HLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxHQUFHLEVBQUUsQ0FBQyxPQUFPLEVBQUU7WUFDckIsS0FBSyxFQUFFLENBQUMsQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztTQUN0QixDQUFDLENBQUMsQ0FBQztJQUNSLENBQUM7K0dBcEJVLG9CQUFvQjttSEFBcEIsb0JBQW9COzs0RkFBcEIsb0JBQW9CO2tCQURoQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xuaW1wb3J0IHsgU3RvcmUgfSBmcm9tICdAbmd4cy9zdG9yZSc7XG5pbXBvcnQgeyBmaXJzdCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IExvY2FsaXphdGlvblNlcnZpY2UgfSBmcm9tICcuLi9sb2NhbGl6YXRpb24vbG9jYWxpemF0aW9uLnNlcnZpY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi4vbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgZ2V0Q3VycmVudExhbmcgfSBmcm9tICcuLi91dGlscy9sYW5ndWFnZS51dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIExvY2FsaXphdGlvblJlc29sdmVyIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLCBwcml2YXRlIGxvY2FsaXphdGlvblNlcnZpY2U6IExvY2FsaXphdGlvblNlcnZpY2UpIHtcbiAgfVxuXG4gIHJlc29sdmUoKSB7XG4gICAgLy8gU2V0IHRoZSB1c2VyIGxhbmd1YWdlIGJlZm9yZSByZXNvbHZlIHRoZSByb3V0ZVxuICAgIGNvbnN0IHVzZXJTZXR0aW5ncyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLm1hcHBlZFVzZXJTZXR0aW5ncyk7XG4gICAgY29uc3QgbGFuZyA9IGdldEN1cnJlbnRMYW5nKHVzZXJTZXR0aW5ncyk7XG4gICAgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLnVzZShsYW5nKTtcblxuICAgIGlmICh0aGlzLnRyYW5zbGF0ZVNlcnZpY2UubGFuZ3MuaW5jbHVkZXMobGFuZykpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLnJlc291cmNlTG9hZGVkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiByZXNvbHZlKCksXG4gICAgICAgIGVycm9yOiBlID0+IHJlamVjdChlKVxuICAgICAgfSkpO1xuICB9XG59XG4iXX0=
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9jYWxpemF0aW9uLnJlc29sdmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY2xpZW50LXNoYXJlZC1saWIvc3JjL2xpYnJhcmllcy9yZXNvbHZlcnMvbG9jYWxpemF0aW9uLnJlc29sdmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHM0MsT0FBTyxFQUFFLEtBQUssRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXZDLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sd0JBQXdCLENBQUM7Ozs7O0FBR3hELE1BQU0sT0FBTyxvQkFBb0I7SUFFL0IsWUFBb0IsS0FBWSxFQUFVLGdCQUFrQyxFQUFVLG1CQUF3QztRQUExRyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUFVLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBcUI7SUFDOUgsQ0FBQztJQUVELE9BQU87UUFDTCxxRUFBcUU7UUFDckUsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDaEYsTUFBTSxJQUFJLEdBQUcsY0FBYyxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBRTFDLGlGQUFpRjtRQUNqRixJQUFJLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDL0MsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUNoQyxPQUFPO1FBQ1QsQ0FBQztRQUVELCtFQUErRTtRQUMvRSw2REFBNkQ7UUFDN0QsMkVBQTJFO1FBQzNFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFdEMsOERBQThEO1FBQzlELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFaEMsb0ZBQW9GO1FBQ3BGLE9BQU8sSUFBSSxPQUFPLENBQU8sQ0FBQyxPQUFPLEVBQUUsTUFBTSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsbUJBQW1CLENBQUMsY0FBYyxDQUFDLFlBQVksRUFBRSxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQzthQUMvRyxTQUFTLENBQUM7WUFDVCxJQUFJLEVBQUUsR0FBRyxFQUFFLENBQUMsT0FBTyxFQUFFO1lBQ3JCLEtBQUssRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUM7U0FDdEIsQ0FBQyxDQUFDLENBQUM7SUFDUixDQUFDOytHQTlCVSxvQkFBb0I7bUhBQXBCLG9CQUFvQjs7NEZBQXBCLG9CQUFvQjtrQkFEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZmlyc3QgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBMb2NhbGl6YXRpb25TZXJ2aWNlIH0gZnJvbSAnLi4vbG9jYWxpemF0aW9uL2xvY2FsaXphdGlvbi5zZXJ2aWNlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uL21vZHVsZXMvYXV0aC9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IGdldEN1cnJlbnRMYW5nIH0gZnJvbSAnLi4vdXRpbHMvbGFuZ3VhZ2UudXRpbCc7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBMb2NhbGl6YXRpb25SZXNvbHZlciB7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmUsIHByaXZhdGUgdHJhbnNsYXRlU2VydmljZTogVHJhbnNsYXRlU2VydmljZSwgcHJpdmF0ZSBsb2NhbGl6YXRpb25TZXJ2aWNlOiBMb2NhbGl6YXRpb25TZXJ2aWNlKSB7XG4gIH1cblxuICByZXNvbHZlKCkge1xuICAgIC8vIERldGVybWluZSB0aGUgdXNlcidzIHByZWZlcnJlZCBsYW5ndWFnZSBiZWZvcmUgcmVzb2x2aW5nIHRoZSByb3V0ZVxuICAgIGNvbnN0IHVzZXJTZXR0aW5ncyA9IHRoaXMuc3RvcmUuc2VsZWN0U25hcHNob3QoU2Vzc2lvblN0YXRlLm1hcHBlZFVzZXJTZXR0aW5ncyk7XG4gICAgY29uc3QgbGFuZyA9IGdldEN1cnJlbnRMYW5nKHVzZXJTZXR0aW5ncyk7XG5cbiAgICAvLyBJZiB0aGUgbGFuZ3VhZ2UgaXMgYWxyZWFkeSByZWdpc3RlcmVkIGluIFRyYW5zbGF0ZVNlcnZpY2UsIHNpbXBseSBzd2l0Y2ggdG8gaXRcbiAgICBpZiAodGhpcy50cmFuc2xhdGVTZXJ2aWNlLmxhbmdzLmluY2x1ZGVzKGxhbmcpKSB7XG4gICAgICB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UudXNlKGxhbmcpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIC8vIElmIG5neC10cmFuc2xhdGUgYmVsaWV2ZXMgdGhlIGxhbmd1YWdlIGlzIGFscmVhZHkgbG9hZGVkIChldmVuIGlmIGl04oCZcyBub3QpLFxuICAgIC8vIGl0IHdpbGwgc2tpcCBjYWxsaW5nIHRoZSBsb2FkZXLigJlzIGdldFRyYW5zbGF0aW9uKCkgbWV0aG9kLlxuICAgIC8vIFJlc2V0dGluZyB0aGUgbGFuZ3VhZ2UgZm9yY2VzIG5neC10cmFuc2xhdGUgdG8gZmV0Y2ggdHJhbnNsYXRpb25zIGFnYWluLlxuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS5yZXNldExhbmcobGFuZyk7XG5cbiAgICAvLyBBcHBseSB0aGUgc2VsZWN0ZWQgbGFuZ3VhZ2UgYW5kIHRyaWdnZXIgdHJhbnNsYXRpb24gbG9hZGluZ1xuICAgIHRoaXMudHJhbnNsYXRlU2VydmljZS51c2UobGFuZyk7XG5cbiAgICAvLyBXYWl0IHVudGlsIHRoZSBsb2NhbGl6YXRpb24gcmVzb3VyY2VzIGFyZSBmdWxseSBsb2FkZWQgYmVmb3JlIHJlc29sdmluZyB0aGUgcm91dGVcbiAgICByZXR1cm4gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmUsIHJlamVjdCkgPT4gdGhpcy5sb2NhbGl6YXRpb25TZXJ2aWNlLnJlc291cmNlTG9hZGVkLmFzT2JzZXJ2YWJsZSgpLnBpcGUoZmlyc3QoKSlcbiAgICAgIC5zdWJzY3JpYmUoe1xuICAgICAgICBuZXh0OiAoKSA9PiByZXNvbHZlKCksXG4gICAgICAgIGVycm9yOiBlID0+IHJlamVjdChlKVxuICAgICAgfSkpO1xuICB9XG59XG4iXX0=
@@ -114870,13 +114870,21 @@ class LocalizationResolver {
114870
114870
  this.localizationService = localizationService;
114871
114871
  }
114872
114872
  resolve() {
114873
- // Set the user language before resolve the route
114873
+ // Determine the user's preferred language before resolving the route
114874
114874
  const userSettings = this.store.selectSnapshot(SessionState.mappedUserSettings);
114875
114875
  const lang = getCurrentLang(userSettings);
114876
- this.translateService.use(lang);
114876
+ // If the language is already registered in TranslateService, simply switch to it
114877
114877
  if (this.translateService.langs.includes(lang)) {
114878
+ this.translateService.use(lang);
114878
114879
  return;
114879
114880
  }
114881
+ // If ngx-translate believes the language is already loaded (even if it’s not),
114882
+ // it will skip calling the loader’s getTranslation() method.
114883
+ // Resetting the language forces ngx-translate to fetch translations again.
114884
+ this.translateService.resetLang(lang);
114885
+ // Apply the selected language and trigger translation loading
114886
+ this.translateService.use(lang);
114887
+ // Wait until the localization resources are fully loaded before resolving the route
114880
114888
  return new Promise((resolve, reject) => this.localizationService.resourceLoaded.asObservable().pipe(first())
114881
114889
  .subscribe({
114882
114890
  next: () => resolve(),