@tiba-spark/client-shared-lib 25.3.0-772 → 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=
@@ -4,13 +4,16 @@ import { filter, first } from 'rxjs';
4
4
  import { SessionState } from '../../modules/auth/session.state';
5
5
  import { SingleSignOnProvider } from '../../service-proxy/cloud-service-proxies';
6
6
  import { isNullOrEmpty } from '../../utils/custom-validator.util';
7
+ import { AppType } from '../../enums/app-type.enum';
7
8
  import * as i0 from "@angular/core";
8
9
  import * as i1 from "@ngxs/store";
9
10
  import * as i2 from "@azure/msal-angular";
11
+ import * as i3 from "../app-config.service";
10
12
  export class MSLAuthService {
11
- constructor(store, msalService) {
13
+ constructor(store, msalService, appConfig) {
12
14
  this.store = store;
13
15
  this.msalService = msalService;
16
+ this.appConfig = appConfig;
14
17
  }
15
18
  init() {
16
19
  return new Promise((resolve) => {
@@ -36,11 +39,12 @@ export class MSLAuthService {
36
39
  }
37
40
  createPublicClientApplication(clientId, authority, tenantName) {
38
41
  this.validateConfigurations(clientId, authority, tenantName);
42
+ const isBackofficeAppMode = this.appConfig.getConfig().appType === AppType.Backoffice;
39
43
  return new PublicClientApplication({
40
44
  auth: {
41
45
  clientId: clientId, // This is the ONLY mandatory field that you need to supply.
42
46
  authority: authority, // Defaults to "https://login.microsoftonline.com/common"
43
- redirectUri: `/account/login`,
47
+ redirectUri: isBackofficeAppMode ? `/account/login` : `/${tenantName}/account/login`,
44
48
  postLogoutRedirectUri: '/', // Indicates the page to navigate after logout.
45
49
  },
46
50
  cache: {
@@ -57,12 +61,12 @@ export class MSLAuthService {
57
61
  },
58
62
  });
59
63
  }
60
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService, deps: [{ token: i1.Store }, { token: i2.MsalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
64
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService, deps: [{ token: i1.Store }, { token: i2.MsalService }, { token: i3.AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
61
65
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService }); }
62
66
  }
63
67
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService, decorators: [{
64
68
  type: Injectable
65
- }], ctorParameters: () => [{ type: i1.Store }, { type: i2.MsalService }] });
69
+ }], ctorParameters: () => [{ type: i1.Store }, { type: i2.MsalService }, { type: i3.AppConfigService }] });
66
70
  function loggerCallback(logLevel, message) {
67
71
  console.log(message);
68
72
  }
@@ -103,4 +107,4 @@ export function MSALGuardConfigFactory() {
103
107
  loginFailedRoute: '/'
104
108
  };
105
109
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNsLWF1dGgtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvZmFjdG9yaWVzL21zbC1hdXRoLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQTRCLGVBQWUsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6SSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDOzs7O0FBR2xFLE1BQU0sT0FBTyxjQUFjO0lBRXpCLFlBQW9CLEtBQVksRUFBVSxXQUF3QjtRQUE5QyxVQUFLLEdBQUwsS0FBSyxDQUFPO1FBQVUsZ0JBQVcsR0FBWCxXQUFXLENBQWE7SUFDbEUsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEVBQUU7Z0JBQ3BILElBQUksSUFBSSxDQUFDLG1DQUFtQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7b0JBQ3JELE1BQU0sUUFBUSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLGNBQWMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUEsNERBQTREO29CQUM5SCxNQUFNLFNBQVMsR0FBRyxxQ0FBcUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsQ0FBQztvQkFDMUcsTUFBTSx1QkFBdUIsR0FBRyxJQUFJLENBQUMsNkJBQTZCLENBQUMsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7b0JBQzNHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxHQUFHLHVCQUF1QixDQUFDO29CQUNwRCxJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsRUFBRSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUM1QyxDQUFDO1lBQ0gsQ0FBQyxDQUFDLENBQUM7WUFFSCxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEIsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU8sbUNBQW1DLENBQUMsTUFBa0I7UUFDNUQsT0FBTyxNQUFNLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxLQUFLLG9CQUFvQixDQUFDLFNBQVMsSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsRUFBRSxjQUFjLENBQUM7SUFDekksQ0FBQztJQUVPLHNCQUFzQixDQUFDLFFBQWdCLEVBQUUsU0FBaUIsRUFBRSxVQUFrQjtRQUNwRixJQUFJLGFBQWEsQ0FBQyxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsSUFBSSxhQUFhLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxDQUFDLElBQUksYUFBYSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7WUFDN0csT0FBTyxDQUFDLEtBQUssQ0FBQyxzRUFBc0UsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7SUFDSCxDQUFDO0lBRU8sNkJBQTZCLENBQUMsUUFBZ0IsRUFBRSxTQUFpQixFQUFFLFVBQWtCO1FBQzNGLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO1FBRTdELE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztZQUNqQyxJQUFJLEVBQUU7Z0JBQ0osUUFBUSxFQUFFLFFBQVEsRUFBRSw0REFBNEQ7Z0JBQ2hGLFNBQVMsRUFBRSxTQUFTLEVBQUUseURBQXlEO2dCQUMvRSxXQUFXLEVBQUUsZ0JBQWdCO2dCQUM3QixxQkFBcUIsRUFBRSxHQUFHLEVBQUUsK0NBQStDO2FBQzVFO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLGFBQWEsRUFBRSxvQkFBb0IsQ0FBQyxZQUFZLEVBQUUsNkdBQTZHO2dCQUMvSiwrRkFBK0Y7YUFDaEc7WUFDRCxNQUFNLEVBQUU7Z0JBQ04saUJBQWlCLEVBQUUsS0FBSyxFQUFFLHNCQUFzQjtnQkFDaEQsYUFBYSxFQUFFO29CQUNiLGNBQWM7b0JBQ2QsUUFBUSxFQUFFLFFBQVEsQ0FBQyxLQUFLO29CQUN4QixpQkFBaUIsRUFBRSxLQUFLO2lCQUN6QjthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzsrR0F0RFUsY0FBYzttSEFBZCxjQUFjOzs0RkFBZCxjQUFjO2tCQUQxQixVQUFVOztBQTJEWCxTQUFTLGNBQWMsQ0FBQyxRQUFrQixFQUFFLE9BQWU7SUFDekQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUN2QixDQUFDO0FBRUQsTUFBTSxVQUFVLGNBQWMsQ0FBQyxXQUEyQjtJQUN4RCxPQUFPLEtBQUssSUFBSSxFQUFFO1FBQ2hCLE1BQU0sV0FBVyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQzNCLENBQUMsQ0FBQztBQUNKLENBQUM7QUFFRDs7O0dBR0c7QUFDSCxNQUFNLFVBQVUsbUJBQW1CO0lBQ2pDLE9BQU8sSUFBSSx1QkFBdUIsQ0FBQztRQUNqQyxJQUFJLEVBQUU7WUFDSixRQUFRLEVBQUUsSUFBSTtTQUNmO0tBQ0YsQ0FBQyxDQUFDO0FBQ0wsQ0FBQztBQUVELE1BQU0sVUFBVSw0QkFBNEI7SUFDMUMsTUFBTSxvQkFBb0IsR0FBRyxJQUFJLEdBQUcsRUFBeUIsQ0FBQztJQUM5RCxvQkFBb0IsQ0FBQyxHQUFHLENBQUMscUNBQXFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLE9BQU87UUFDTCxlQUFlLEVBQUUsZUFBZSxDQUFDLFFBQVE7UUFDekMsb0JBQW9CO0tBQ3JCLENBQUM7QUFDSixDQUFDO0FBQ0Q7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLHNCQUFzQjtJQUNwQyxPQUFPO1FBQ0wsZUFBZSxFQUFFLGVBQWUsQ0FBQyxRQUFRO1FBQ3pDLFdBQVcsRUFBRTtZQUNYLE1BQU0sRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQztTQUMzQjtRQUNELGdCQUFnQixFQUFFLEdBQUc7S0FDdEIsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNc2FsR3VhcmRDb25maWd1cmF0aW9uLCBNc2FsSW50ZXJjZXB0b3JDb25maWd1cmF0aW9uLCBNc2FsU2VydmljZSB9IGZyb20gJ0BhenVyZS9tc2FsLWFuZ3VsYXInO1xuaW1wb3J0IHsgQnJvd3NlckNhY2hlTG9jYXRpb24sIElQdWJsaWNDbGllbnRBcHBsaWNhdGlvbiwgSW50ZXJhY3Rpb25UeXBlLCBMb2dMZXZlbCwgUHVibGljQ2xpZW50QXBwbGljYXRpb24gfSBmcm9tICdAYXp1cmUvbXNhbC1icm93c2VyJztcbmltcG9ydCB7IFN0b3JlIH0gZnJvbSAnQG5neHMvc3RvcmUnO1xuaW1wb3J0IHsgZmlsdGVyLCBmaXJzdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVGVuYW50SW5mbyB9IGZyb20gJy4uLy4uL21vZHVsZXMvYXV0aC9tb2RlbC90ZW5hbnQtaW5mby5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgU2Vzc2lvblN0YXRlIH0gZnJvbSAnLi4vLi4vbW9kdWxlcy9hdXRoL3Nlc3Npb24uc3RhdGUnO1xuaW1wb3J0IHsgU2luZ2xlU2lnbk9uUHJvdmlkZXIgfSBmcm9tICcuLi8uLi9zZXJ2aWNlLXByb3h5L2Nsb3VkLXNlcnZpY2UtcHJveGllcyc7XG5pbXBvcnQgeyBpc051bGxPckVtcHR5IH0gZnJvbSAnLi4vLi4vdXRpbHMvY3VzdG9tLXZhbGlkYXRvci51dGlsJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1TTEF1dGhTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBtc2FsU2VydmljZTogTXNhbFNlcnZpY2UpIHtcbiAgfVxuXG4gIHB1YmxpYyBpbml0KCk6IFByb21pc2U8Ym9vbGVhbj4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTxib29sZWFuPigocmVzb2x2ZSkgPT4ge1xuICAgICAgdGhpcy5zdG9yZS5zZWxlY3QoU2Vzc2lvblN0YXRlLnRlbmFudEluZm8pLnBpcGUoZmlsdGVyKHRlbmFudEluZm8gPT4gdGVuYW50SW5mbyAhPSBudWxsKSwgZmlyc3QoKSkuc3Vic2NyaWJlKHRlbmFudCA9PiB7XG4gICAgICAgIGlmICh0aGlzLmlzU2luZ2xlU2lnbk9uRW5hYmxlZFdpdGhNU1Byb3ZpZGVyKHRlbmFudCkpIHtcbiAgICAgICAgICBjb25zdCBjbGllbnRJZCA9IHRlbmFudC5wcm9wcy5zc28uY29uZmlndXJhdGlvbnM/LmF6dXJlPy5jbGllbnRJZDsvLyBUaGlzIGlzIHRoZSBPTkxZIG1hbmRhdG9yeSBmaWVsZCB0aGF0IHlvdSBuZWVkIHRvIHN1cHBseS5cbiAgICAgICAgICBjb25zdCBhdXRob3JpdHkgPSBgaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tLyR7dGVuYW50LnByb3BzLnNzby5jb25maWd1cmF0aW9ucz8uYXp1cmU/LnRlbmFudElkfWA7XG4gICAgICAgICAgY29uc3QgcHVibGljQ2xpZW50QXBwbGljYXRpb24gPSB0aGlzLmNyZWF0ZVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKGNsaWVudElkLCBhdXRob3JpdHksIHRlbmFudC50ZW5hbnROYW1lKTtcbiAgICAgICAgICB0aGlzLm1zYWxTZXJ2aWNlLmluc3RhbmNlID0gcHVibGljQ2xpZW50QXBwbGljYXRpb247XG4gICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbml0aWFsaXplKCkuc3Vic2NyaWJlKCk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuXG4gICAgICByZXNvbHZlKHRydWUpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBpc1NpbmdsZVNpZ25PbkVuYWJsZWRXaXRoTVNQcm92aWRlcih0ZW5hbnQ6IFRlbmFudEluZm8pIHtcbiAgICByZXR1cm4gdGVuYW50LnByb3BzPy5zc28/LmVuYWJsZWQgJiYgdGVuYW50LnByb3BzLnNzbz8ucHJvdmlkZXIgPT09IFNpbmdsZVNpZ25PblByb3ZpZGVyLk1pY3Jvc29mdCAmJiB0ZW5hbnQucHJvcHMuc3NvPy5jb25maWd1cmF0aW9ucztcbiAgfVxuXG4gIHByaXZhdGUgdmFsaWRhdGVDb25maWd1cmF0aW9ucyhjbGllbnRJZDogc3RyaW5nLCBhdXRob3JpdHk6IHN0cmluZywgdGVuYW50TmFtZTogc3RyaW5nKSB7XG4gICAgaWYgKGlzTnVsbE9yRW1wdHkoY2xpZW50SWQ/LnRyaW0oKSkgfHwgaXNOdWxsT3JFbXB0eShhdXRob3JpdHk/LnRyaW0oKSkgfHwgaXNOdWxsT3JFbXB0eSh0ZW5hbnROYW1lPy50cmltKCkpKSB7XG4gICAgICBjb25zb2xlLmVycm9yKFwiRXJyb3I6IE9uZSBvciBtb3JlIHJlcXVpcmVkIHBhcmFtZXRlcnMgZm9yIFNTTyBhcmUgbWlzc2luZyBvciBlbXB0eS5cIik7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjcmVhdGVQdWJsaWNDbGllbnRBcHBsaWNhdGlvbihjbGllbnRJZDogc3RyaW5nLCBhdXRob3JpdHk6IHN0cmluZywgdGVuYW50TmFtZTogc3RyaW5nKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcbiAgICB0aGlzLnZhbGlkYXRlQ29uZmlndXJhdGlvbnMoY2xpZW50SWQsIGF1dGhvcml0eSwgdGVuYW50TmFtZSk7XG5cbiAgICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcbiAgICAgIGF1dGg6IHtcbiAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkLCAvLyBUaGlzIGlzIHRoZSBPTkxZIG1hbmRhdG9yeSBmaWVsZCB0aGF0IHlvdSBuZWVkIHRvIHN1cHBseS5cbiAgICAgICAgYXV0aG9yaXR5OiBhdXRob3JpdHksIC8vIERlZmF1bHRzIHRvIFwiaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vblwiXG4gICAgICAgIHJlZGlyZWN0VXJpOiBgL2FjY291bnQvbG9naW5gLFxuICAgICAgICBwb3N0TG9nb3V0UmVkaXJlY3RVcmk6ICcvJywgLy8gSW5kaWNhdGVzIHRoZSBwYWdlIHRvIG5hdmlnYXRlIGFmdGVyIGxvZ291dC5cbiAgICAgIH0sXG4gICAgICBjYWNoZToge1xuICAgICAgICBjYWNoZUxvY2F0aW9uOiBCcm93c2VyQ2FjaGVMb2NhdGlvbi5Mb2NhbFN0b3JhZ2UsIC8vIENvbmZpZ3VyZXMgY2FjaGUgbG9jYXRpb24uIFwic2Vzc2lvblN0b3JhZ2VcIiBpcyBtb3JlIHNlY3VyZSwgYnV0IFwibG9jYWxTdG9yYWdlXCIgZ2l2ZXMgeW91IFNTTyBiZXR3ZWVuIHRhYnMuXG4gICAgICAgIC8vc3RvcmVBdXRoU3RhdGVJbkNvb2tpZTogZmFsc2UsIC8vIFNldCB0aGlzIHRvIFwidHJ1ZVwiIGlmIHlvdSBhcmUgaGF2aW5nIGlzc3VlcyBvbiBJRTExIG9yIEVkZ2VcbiAgICAgIH0sXG4gICAgICBzeXN0ZW06IHtcbiAgICAgICAgYWxsb3dOYXRpdmVCcm9rZXI6IGZhbHNlLCAvLyBEaXNhYmxlcyBXQU0gQnJva2VyXG4gICAgICAgIGxvZ2dlck9wdGlvbnM6IHtcbiAgICAgICAgICBsb2dnZXJDYWxsYmFjayxcbiAgICAgICAgICBsb2dMZXZlbDogTG9nTGV2ZWwuRXJyb3IsXG4gICAgICAgICAgcGlpTG9nZ2luZ0VuYWJsZWQ6IGZhbHNlXG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuXG5mdW5jdGlvbiBsb2dnZXJDYWxsYmFjayhsb2dMZXZlbDogTG9nTGV2ZWwsIG1lc3NhZ2U6IHN0cmluZykge1xuICBjb25zb2xlLmxvZyhtZXNzYWdlKTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGluaXRpYWxpemVNc2FsKGF1dGhTZXJ2aWNlOiBNU0xBdXRoU2VydmljZSk6ICgpID0+IFByb21pc2U8dm9pZD4ge1xuICByZXR1cm4gYXN5bmMgKCkgPT4ge1xuICAgIGF3YWl0IGF1dGhTZXJ2aWNlLmluaXQoKTtcbiAgfTtcbn1cblxuLyoqXG4gKiBIZXJlIHdlIHBhc3MgdGhlIGNvbmZpZ3VyYXRpb24gcGFyYW1ldGVycyB0byBjcmVhdGUgYW4gTVNBTCBpbnN0YW5jZS5cbiAqIEZvciBtb3JlIGluZm8sIHZpc2l0OiBodHRwczovL2dpdGh1Yi5jb20vQXp1cmVBRC9taWNyb3NvZnQtYXV0aGVudGljYXRpb24tbGlicmFyeS1mb3ItanMvYmxvYi9kZXYvbGliL21zYWwtYW5ndWxhci9kb2NzL3YyLWRvY3MvY29uZmlndXJhdGlvbi5tZFxuICovXG5leHBvcnQgZnVuY3Rpb24gTVNBTEluc3RhbmNlRmFjdG9yeSgpOiBJUHVibGljQ2xpZW50QXBwbGljYXRpb24ge1xuICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcbiAgICBhdXRoOiB7XG4gICAgICBjbGllbnRJZDogbnVsbFxuICAgIH0sXG4gIH0pO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gTVNBTEludGVyY2VwdG9yQ29uZmlnRmFjdG9yeSgpOiBNc2FsSW50ZXJjZXB0b3JDb25maWd1cmF0aW9uIHtcbiAgY29uc3QgcHJvdGVjdGVkUmVzb3VyY2VNYXAgPSBuZXcgTWFwPHN0cmluZywgQXJyYXk8c3RyaW5nPj4oKTtcbiAgcHJvdGVjdGVkUmVzb3VyY2VNYXAuc2V0KCdodHRwczovL2dyYXBoLm1pY3Jvc29mdC5jb20vdjEuMC9tZScsIFsndXNlci5yZWFkJ10pO1xuICByZXR1cm4ge1xuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0LFxuICAgIHByb3RlY3RlZFJlc291cmNlTWFwXG4gIH07XG59XG4vKipcbiAqIFNldCB5b3VyIGRlZmF1bHQgaW50ZXJhY3Rpb24gdHlwZSBmb3IgTVNBTEd1YXJkIGhlcmUuIElmIHlvdSBoYXZlIGFueVxuICogYWRkaXRpb25hbCBzY29wZXMgeW91IHdhbnQgdGhlIHVzZXIgdG8gY29uc2VudCB1cG9uIGxvZ2luLCBhZGQgdGhlbSBoZXJlIGFzIHdlbGwuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBNU0FMR3VhcmRDb25maWdGYWN0b3J5KCk6IE1zYWxHdWFyZENvbmZpZ3VyYXRpb24ge1xuICByZXR1cm4ge1xuICAgIGludGVyYWN0aW9uVHlwZTogSW50ZXJhY3Rpb25UeXBlLlJlZGlyZWN0LFxuICAgIGF1dGhSZXF1ZXN0OiB7XG4gICAgICBzY29wZXM6IFsuLi5bJ3VzZXIucmVhZCddXVxuICAgIH0sXG4gICAgbG9naW5GYWlsZWRSb3V0ZTogJy8nXG4gIH07XG59XG4iXX0=
110
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXNsLWF1dGgtc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NsaWVudC1zaGFyZWQtbGliL3NyYy9saWJyYXJpZXMvc2VydmljZXMvZmFjdG9yaWVzL21zbC1hdXRoLXNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsb0JBQW9CLEVBQTRCLGVBQWUsRUFBRSxRQUFRLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUV6SSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDaEUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkNBQTJDLENBQUM7QUFDakYsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLG1DQUFtQyxDQUFDO0FBRWxFLE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7QUFHcEQsTUFBTSxPQUFPLGNBQWM7SUFFekIsWUFBb0IsS0FBWSxFQUFVLFdBQXdCLEVBQVUsU0FBMkI7UUFBbkYsVUFBSyxHQUFMLEtBQUssQ0FBTztRQUFVLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQVUsY0FBUyxHQUFULFNBQVMsQ0FBa0I7SUFDdkcsQ0FBQztJQUVNLElBQUk7UUFDVCxPQUFPLElBQUksT0FBTyxDQUFVLENBQUMsT0FBTyxFQUFFLEVBQUU7WUFDdEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLEVBQUUsQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMs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QU0sVUFBVSxjQUFjLENBQUMsV0FBMkI7SUFDeEQsT0FBTyxLQUFLLElBQUksRUFBRTtRQUNoQixNQUFNLFdBQVcsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUMzQixDQUFDLENBQUM7QUFDSixDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxVQUFVLG1CQUFtQjtJQUNqQyxPQUFPLElBQUksdUJBQXVCLENBQUM7UUFDakMsSUFBSSxFQUFFO1lBQ0osUUFBUSxFQUFFLElBQUk7U0FDZjtLQUNGLENBQUMsQ0FBQztBQUNMLENBQUM7QUFFRCxNQUFNLFVBQVUsNEJBQTRCO0lBQzFDLE1BQU0sb0JBQW9CLEdBQUcsSUFBSSxHQUFHLEVBQXlCLENBQUM7SUFDOUQsb0JBQW9CLENBQUMsR0FBRyxDQUFDLHFDQUFxQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUMvRSxPQUFPO1FBQ0wsZUFBZSxFQUFFLGVBQWUsQ0FBQyxRQUFRO1FBQ3pDLG9CQUFvQjtLQUNyQixDQUFDO0FBQ0osQ0FBQztBQUNEOzs7R0FHRztBQUNILE1BQU0sVUFBVSxzQkFBc0I7SUFDcEMsT0FBTztRQUNMLGVBQWUsRUFBRSxlQUFlLENBQUMsUUFBUTtRQUN6QyxXQUFXLEVBQUU7WUFDWCxNQUFNLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUM7U0FDM0I7UUFDRCxnQkFBZ0IsRUFBRSxHQUFHO0tBQ3RCLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTXNhbEd1YXJkQ29uZmlndXJhdGlvbiwgTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiwgTXNhbFNlcnZpY2UgfSBmcm9tICdAYXp1cmUvbXNhbC1hbmd1bGFyJztcbmltcG9ydCB7IEJyb3dzZXJDYWNoZUxvY2F0aW9uLCBJUHVibGljQ2xpZW50QXBwbGljYXRpb24sIEludGVyYWN0aW9uVHlwZSwgTG9nTGV2ZWwsIFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIH0gZnJvbSAnQGF6dXJlL21zYWwtYnJvd3Nlcic7XG5pbXBvcnQgeyBTdG9yZSB9IGZyb20gJ0BuZ3hzL3N0b3JlJztcbmltcG9ydCB7IGZpbHRlciwgZmlyc3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IFRlbmFudEluZm8gfSBmcm9tICcuLi8uLi9tb2R1bGVzL2F1dGgvbW9kZWwvdGVuYW50LWluZm8uaW50ZXJmYWNlJztcbmltcG9ydCB7IFNlc3Npb25TdGF0ZSB9IGZyb20gJy4uLy4uL21vZHVsZXMvYXV0aC9zZXNzaW9uLnN0YXRlJztcbmltcG9ydCB7IFNpbmdsZVNpZ25PblByb3ZpZGVyIH0gZnJvbSAnLi4vLi4vc2VydmljZS1wcm94eS9jbG91ZC1zZXJ2aWNlLXByb3hpZXMnO1xuaW1wb3J0IHsgaXNOdWxsT3JFbXB0eSB9IGZyb20gJy4uLy4uL3V0aWxzL2N1c3RvbS12YWxpZGF0b3IudXRpbCc7XG5pbXBvcnQgeyBBcHBDb25maWdTZXJ2aWNlIH0gZnJvbSAnLi4vYXBwLWNvbmZpZy5zZXJ2aWNlJztcbmltcG9ydCB7IEFwcFR5cGUgfSBmcm9tICcuLi8uLi9lbnVtcy9hcHAtdHlwZS5lbnVtJztcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIE1TTEF1dGhTZXJ2aWNlIHtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHN0b3JlOiBTdG9yZSwgcHJpdmF0ZSBtc2FsU2VydmljZTogTXNhbFNlcnZpY2UsIHByaXZhdGUgYXBwQ29uZmlnOiBBcHBDb25maWdTZXJ2aWNlKSB7XG4gIH1cblxuICBwdWJsaWMgaW5pdCgpOiBQcm9taXNlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gbmV3IFByb21pc2U8Ym9vbGVhbj4oKHJlc29sdmUpID0+IHtcbiAgICAgIHRoaXMuc3RvcmUuc2VsZWN0KFNlc3Npb25TdGF0ZS50ZW5hbnRJbmZvKS5waXBlKGZpbHRlcih0ZW5hbnRJbmZvID0+IHRlbmFudEluZm8gIT0gbnVsbCksIGZpcnN0KCkpLnN1YnNjcmliZSh0ZW5hbnQgPT4ge1xuICAgICAgICBpZiAodGhpcy5pc1NpbmdsZVNpZ25PbkVuYWJsZWRXaXRoTVNQcm92aWRlcih0ZW5hbnQpKSB7XG4gICAgICAgICAgY29uc3QgY2xpZW50SWQgPSB0ZW5hbnQucHJvcHMuc3NvLmNvbmZpZ3VyYXRpb25zPy5henVyZT8uY2xpZW50SWQ7Ly8gVGhpcyBpcyB0aGUgT05MWSBtYW5kYXRvcnkgZmllbGQgdGhhdCB5b3UgbmVlZCB0byBzdXBwbHkuXG4gICAgICAgICAgY29uc3QgYXV0aG9yaXR5ID0gYGh0dHBzOi8vbG9naW4ubWljcm9zb2Z0b25saW5lLmNvbS8ke3RlbmFudC5wcm9wcy5zc28uY29uZmlndXJhdGlvbnM/LmF6dXJlPy50ZW5hbnRJZH1gO1xuICAgICAgICAgIGNvbnN0IHB1YmxpY0NsaWVudEFwcGxpY2F0aW9uID0gdGhpcy5jcmVhdGVQdWJsaWNDbGllbnRBcHBsaWNhdGlvbihjbGllbnRJZCwgYXV0aG9yaXR5LCB0ZW5hbnQudGVuYW50TmFtZSk7XG4gICAgICAgICAgdGhpcy5tc2FsU2VydmljZS5pbnN0YW5jZSA9IHB1YmxpY0NsaWVudEFwcGxpY2F0aW9uO1xuICAgICAgICAgIHRoaXMubXNhbFNlcnZpY2UuaW5pdGlhbGl6ZSgpLnN1YnNjcmliZSgpO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgICAgcmVzb2x2ZSh0cnVlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgaXNTaW5nbGVTaWduT25FbmFibGVkV2l0aE1TUHJvdmlkZXIodGVuYW50OiBUZW5hbnRJbmZvKSB7XG4gICAgcmV0dXJuIHRlbmFudC5wcm9wcz8uc3NvPy5lbmFibGVkICYmIHRlbmFudC5wcm9wcy5zc28/LnByb3ZpZGVyID09PSBTaW5nbGVTaWduT25Qcm92aWRlci5NaWNyb3NvZnQgJiYgdGVuYW50LnByb3BzLnNzbz8uY29uZmlndXJhdGlvbnM7XG4gIH1cblxuICBwcml2YXRlIHZhbGlkYXRlQ29uZmlndXJhdGlvbnMoY2xpZW50SWQ6IHN0cmluZywgYXV0aG9yaXR5OiBzdHJpbmcsIHRlbmFudE5hbWU6IHN0cmluZykge1xuICAgIGlmIChpc051bGxPckVtcHR5KGNsaWVudElkPy50cmltKCkpIHx8IGlzTnVsbE9yRW1wdHkoYXV0aG9yaXR5Py50cmltKCkpIHx8IGlzTnVsbE9yRW1wdHkodGVuYW50TmFtZT8udHJpbSgpKSkge1xuICAgICAgY29uc29sZS5lcnJvcihcIkVycm9yOiBPbmUgb3IgbW9yZSByZXF1aXJlZCBwYXJhbWV0ZXJzIGZvciBTU08gYXJlIG1pc3Npbmcgb3IgZW1wdHkuXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgY3JlYXRlUHVibGljQ2xpZW50QXBwbGljYXRpb24oY2xpZW50SWQ6IHN0cmluZywgYXV0aG9yaXR5OiBzdHJpbmcsIHRlbmFudE5hbWU6IHN0cmluZyk6IElQdWJsaWNDbGllbnRBcHBsaWNhdGlvbiB7XG4gICAgdGhpcy52YWxpZGF0ZUNvbmZpZ3VyYXRpb25zKGNsaWVudElkLCBhdXRob3JpdHksIHRlbmFudE5hbWUpO1xuICAgIGNvbnN0IGlzQmFja29mZmljZUFwcE1vZGUgPSB0aGlzLmFwcENvbmZpZy5nZXRDb25maWcoKS5hcHBUeXBlID09PSBBcHBUeXBlLkJhY2tvZmZpY2U7XG5cbiAgICByZXR1cm4gbmV3IFB1YmxpY0NsaWVudEFwcGxpY2F0aW9uKHtcbiAgICAgIGF1dGg6IHtcbiAgICAgICAgY2xpZW50SWQ6IGNsaWVudElkLCAvLyBUaGlzIGlzIHRoZSBPTkxZIG1hbmRhdG9yeSBmaWVsZCB0aGF0IHlvdSBuZWVkIHRvIHN1cHBseS5cbiAgICAgICAgYXV0aG9yaXR5OiBhdXRob3JpdHksIC8vIERlZmF1bHRzIHRvIFwiaHR0cHM6Ly9sb2dpbi5taWNyb3NvZnRvbmxpbmUuY29tL2NvbW1vblwiXG4gICAgICAgIHJlZGlyZWN0VXJpOiBpc0JhY2tvZmZpY2VBcHBNb2RlID8gYC9hY2NvdW50L2xvZ2luYCA6IGAvJHt0ZW5hbnROYW1lfS9hY2NvdW50L2xvZ2luYCxcbiAgICAgICAgcG9zdExvZ291dFJlZGlyZWN0VXJpOiAnLycsIC8vIEluZGljYXRlcyB0aGUgcGFnZSB0byBuYXZpZ2F0ZSBhZnRlciBsb2dvdXQuXG4gICAgICB9LFxuICAgICAgY2FjaGU6IHtcbiAgICAgICAgY2FjaGVMb2NhdGlvbjogQnJvd3NlckNhY2hlTG9jYXRpb24uTG9jYWxTdG9yYWdlLCAvLyBDb25maWd1cmVzIGNhY2hlIGxvY2F0aW9uLiBcInNlc3Npb25TdG9yYWdlXCIgaXMgbW9yZSBzZWN1cmUsIGJ1dCBcImxvY2FsU3RvcmFnZVwiIGdpdmVzIHlvdSBTU08gYmV0d2VlbiB0YWJzLlxuICAgICAgICAvL3N0b3JlQXV0aFN0YXRlSW5Db29raWU6IGZhbHNlLCAvLyBTZXQgdGhpcyB0byBcInRydWVcIiBpZiB5b3UgYXJlIGhhdmluZyBpc3N1ZXMgb24gSUUxMSBvciBFZGdlXG4gICAgICB9LFxuICAgICAgc3lzdGVtOiB7XG4gICAgICAgIGFsbG93TmF0aXZlQnJva2VyOiBmYWxzZSwgLy8gRGlzYWJsZXMgV0FNIEJyb2tlclxuICAgICAgICBsb2dnZXJPcHRpb25zOiB7XG4gICAgICAgICAgbG9nZ2VyQ2FsbGJhY2ssXG4gICAgICAgICAgbG9nTGV2ZWw6IExvZ0xldmVsLkVycm9yLFxuICAgICAgICAgIHBpaUxvZ2dpbmdFbmFibGVkOiBmYWxzZVxuICAgICAgICB9XG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cblxuZnVuY3Rpb24gbG9nZ2VyQ2FsbGJhY2sobG9nTGV2ZWw6IExvZ0xldmVsLCBtZXNzYWdlOiBzdHJpbmcpIHtcbiAgY29uc29sZS5sb2cobWVzc2FnZSk7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpbml0aWFsaXplTXNhbChhdXRoU2VydmljZTogTVNMQXV0aFNlcnZpY2UpOiAoKSA9PiBQcm9taXNlPHZvaWQ+IHtcbiAgcmV0dXJuIGFzeW5jICgpID0+IHtcbiAgICBhd2FpdCBhdXRoU2VydmljZS5pbml0KCk7XG4gIH07XG59XG5cbi8qKlxuICogSGVyZSB3ZSBwYXNzIHRoZSBjb25maWd1cmF0aW9uIHBhcmFtZXRlcnMgdG8gY3JlYXRlIGFuIE1TQUwgaW5zdGFuY2UuXG4gKiBGb3IgbW9yZSBpbmZvLCB2aXNpdDogaHR0cHM6Ly9naXRodWIuY29tL0F6dXJlQUQvbWljcm9zb2Z0LWF1dGhlbnRpY2F0aW9uLWxpYnJhcnktZm9yLWpzL2Jsb2IvZGV2L2xpYi9tc2FsLWFuZ3VsYXIvZG9jcy92Mi1kb2NzL2NvbmZpZ3VyYXRpb24ubWRcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIE1TQUxJbnN0YW5jZUZhY3RvcnkoKTogSVB1YmxpY0NsaWVudEFwcGxpY2F0aW9uIHtcbiAgcmV0dXJuIG5ldyBQdWJsaWNDbGllbnRBcHBsaWNhdGlvbih7XG4gICAgYXV0aDoge1xuICAgICAgY2xpZW50SWQ6IG51bGxcbiAgICB9LFxuICB9KTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIE1TQUxJbnRlcmNlcHRvckNvbmZpZ0ZhY3RvcnkoKTogTXNhbEludGVyY2VwdG9yQ29uZmlndXJhdGlvbiB7XG4gIGNvbnN0IHByb3RlY3RlZFJlc291cmNlTWFwID0gbmV3IE1hcDxzdHJpbmcsIEFycmF5PHN0cmluZz4+KCk7XG4gIHByb3RlY3RlZFJlc291cmNlTWFwLnNldCgnaHR0cHM6Ly9ncmFwaC5taWNyb3NvZnQuY29tL3YxLjAvbWUnLCBbJ3VzZXIucmVhZCddKTtcbiAgcmV0dXJuIHtcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5SZWRpcmVjdCxcbiAgICBwcm90ZWN0ZWRSZXNvdXJjZU1hcFxuICB9O1xufVxuLyoqXG4gKiBTZXQgeW91ciBkZWZhdWx0IGludGVyYWN0aW9uIHR5cGUgZm9yIE1TQUxHdWFyZCBoZXJlLiBJZiB5b3UgaGF2ZSBhbnlcbiAqIGFkZGl0aW9uYWwgc2NvcGVzIHlvdSB3YW50IHRoZSB1c2VyIHRvIGNvbnNlbnQgdXBvbiBsb2dpbiwgYWRkIHRoZW0gaGVyZSBhcyB3ZWxsLlxuICovXG5leHBvcnQgZnVuY3Rpb24gTVNBTEd1YXJkQ29uZmlnRmFjdG9yeSgpOiBNc2FsR3VhcmRDb25maWd1cmF0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICBpbnRlcmFjdGlvblR5cGU6IEludGVyYWN0aW9uVHlwZS5SZWRpcmVjdCxcbiAgICBhdXRoUmVxdWVzdDoge1xuICAgICAgc2NvcGVzOiBbLi4uWyd1c2VyLnJlYWQnXV1cbiAgICB9LFxuICAgIGxvZ2luRmFpbGVkUm91dGU6ICcvJ1xuICB9O1xufVxuIl19
@@ -107596,9 +107596,10 @@ class UpdateTenantSingleSignOnAction {
107596
107596
  }
107597
107597
 
107598
107598
  class MSLAuthService {
107599
- constructor(store, msalService) {
107599
+ constructor(store, msalService, appConfig) {
107600
107600
  this.store = store;
107601
107601
  this.msalService = msalService;
107602
+ this.appConfig = appConfig;
107602
107603
  }
107603
107604
  init() {
107604
107605
  return new Promise((resolve) => {
@@ -107624,11 +107625,12 @@ class MSLAuthService {
107624
107625
  }
107625
107626
  createPublicClientApplication(clientId, authority, tenantName) {
107626
107627
  this.validateConfigurations(clientId, authority, tenantName);
107628
+ const isBackofficeAppMode = this.appConfig.getConfig().appType === AppType.Backoffice;
107627
107629
  return new PublicClientApplication({
107628
107630
  auth: {
107629
107631
  clientId: clientId, // This is the ONLY mandatory field that you need to supply.
107630
107632
  authority: authority, // Defaults to "https://login.microsoftonline.com/common"
107631
- redirectUri: `/account/login`,
107633
+ redirectUri: isBackofficeAppMode ? `/account/login` : `/${tenantName}/account/login`,
107632
107634
  postLogoutRedirectUri: '/', // Indicates the page to navigate after logout.
107633
107635
  },
107634
107636
  cache: {
@@ -107645,12 +107647,12 @@ class MSLAuthService {
107645
107647
  },
107646
107648
  });
107647
107649
  }
107648
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService, deps: [{ token: i1$2.Store }, { token: i10.MsalService }], target: i0.ɵɵFactoryTarget.Injectable }); }
107650
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService, deps: [{ token: i1$2.Store }, { token: i10.MsalService }, { token: AppConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
107649
107651
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService }); }
107650
107652
  }
107651
107653
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: MSLAuthService, decorators: [{
107652
107654
  type: Injectable
107653
- }], ctorParameters: () => [{ type: i1$2.Store }, { type: i10.MsalService }] });
107655
+ }], ctorParameters: () => [{ type: i1$2.Store }, { type: i10.MsalService }, { type: AppConfigService }] });
107654
107656
  function loggerCallback(logLevel, message) {
107655
107657
  console.log(message);
107656
107658
  }
@@ -114868,13 +114870,21 @@ class LocalizationResolver {
114868
114870
  this.localizationService = localizationService;
114869
114871
  }
114870
114872
  resolve() {
114871
- // Set the user language before resolve the route
114873
+ // Determine the user's preferred language before resolving the route
114872
114874
  const userSettings = this.store.selectSnapshot(SessionState.mappedUserSettings);
114873
114875
  const lang = getCurrentLang(userSettings);
114874
- this.translateService.use(lang);
114876
+ // If the language is already registered in TranslateService, simply switch to it
114875
114877
  if (this.translateService.langs.includes(lang)) {
114878
+ this.translateService.use(lang);
114876
114879
  return;
114877
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
114878
114888
  return new Promise((resolve, reject) => this.localizationService.resourceLoaded.asObservable().pipe(first())
114879
114889
  .subscribe({
114880
114890
  next: () => resolve(),