@abp/ng.core 7.4.0-rc.4 → 7.4.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.
@@ -13,4 +13,5 @@ export * from './set-token-response-to-storage.token';
13
13
  export * from './check-authentication-state';
14
14
  export * from './http-context.token';
15
15
  export * from './others-group.token';
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgKiBmcm9tICcuL2FwcC1jb25maWcudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL2Nvb2tpZS1sYW5ndWFnZS1rZXkudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpc3QudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL2xvY2FsaXphdGlvbi50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9kYWVyLWRlbGF5LnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9tYW5hZ2UtcHJvZmlsZS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3B0aW9ucy50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcXVldWUudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL3RlbmFudC1rZXkudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL2luY2x1ZGUtbG9jYWxpemF0aW9uLXJlc291cmNlcy50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vcGlwZS10by1sb2dpbi50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2V0LXRva2VuLXJlc3BvbnNlLXRvLXN0b3JhZ2UudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL2NoZWNrLWF1dGhlbnRpY2F0aW9uLXN0YXRlJztcclxuZXhwb3J0ICogZnJvbSAnLi9odHRwLWNvbnRleHQudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL290aGVycy1ncm91cC50b2tlbiciXX0=
16
+ export * from './tenant-not-found-by-name';
17
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wYWNrYWdlcy9jb3JlL3NyYy9saWIvdG9rZW5zL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyw2QkFBNkIsQ0FBQztBQUM1QyxjQUFjLGNBQWMsQ0FBQztBQUM3QixjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx3QkFBd0IsQ0FBQztBQUN2QyxjQUFjLGlCQUFpQixDQUFDO0FBQ2hDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsb0JBQW9CLENBQUM7QUFDbkMsY0FBYyx3Q0FBd0MsQ0FBQztBQUN2RCxjQUFjLHVCQUF1QixDQUFDO0FBQ3RDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyw4QkFBOEIsQ0FBQztBQUM3QyxjQUFjLHNCQUFzQixDQUFDO0FBQ3JDLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyw0QkFBNEIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYXBwLWNvbmZpZy50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY29va2llLWxhbmd1YWdlLWtleS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGlzdC50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vbG9jYWxpemF0aW9uLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9sb2RhZXItZGVsYXkudG9rZW4nO1xyXG5leHBvcnQgKiBmcm9tICcuL21hbmFnZS1wcm9maWxlLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9vcHRpb25zLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9xdWV1ZS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vdGVuYW50LWtleS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vaW5jbHVkZS1sb2NhbGl6YXRpb24tcmVzb3VyY2VzLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9waXBlLXRvLWxvZ2luLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi9zZXQtdG9rZW4tcmVzcG9uc2UtdG8tc3RvcmFnZS50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vY2hlY2stYXV0aGVudGljYXRpb24tc3RhdGUnO1xyXG5leHBvcnQgKiBmcm9tICcuL2h0dHAtY29udGV4dC50b2tlbic7XHJcbmV4cG9ydCAqIGZyb20gJy4vb3RoZXJzLWdyb3VwLnRva2VuJztcclxuZXhwb3J0ICogZnJvbSAnLi90ZW5hbnQtbm90LWZvdW5kLWJ5LW5hbWUnO1xyXG4iXX0=
@@ -0,0 +1,3 @@
1
+ import { InjectionToken } from '@angular/core';
2
+ export const TENANT_NOT_FOUND_BY_NAME = new InjectionToken('TENANT_NOT_FOUND_BY_NAME');
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LW5vdC1mb3VuZC1ieS1uYW1lLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcGFja2FnZXMvY29yZS9zcmMvbGliL3Rva2Vucy90ZW5hbnQtbm90LWZvdW5kLWJ5LW5hbWUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUcvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FFeEQsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGlvblRva2VuIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5cclxuZXhwb3J0IGNvbnN0IFRFTkFOVF9OT1RfRk9VTkRfQllfTkFNRSA9IG5ldyBJbmplY3Rpb25Ub2tlbjxcclxuICAoSHR0cEVycm9yUmVzcG9uc2U6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB2b2lkXHJcbj4oJ1RFTkFOVF9OT1RfRk9VTkRfQllfTkFNRScpO1xyXG4iXX0=
@@ -1,8 +1,10 @@
1
1
  import clone from 'just-clone';
2
- import { tap } from 'rxjs/operators';
3
2
  import { EnvironmentService } from '../services/environment.service';
4
3
  import { MultiTenancyService } from '../services/multi-tenancy.service';
5
4
  import { createTokenParser } from './string-utils';
5
+ import { firstValueFrom } from 'rxjs';
6
+ import { TENANT_NOT_FOUND_BY_NAME } from '../tokens/tenant-not-found-by-name';
7
+ import { HttpErrorResponse } from '@angular/common/http';
6
8
  const tenancyPlaceholder = '{0}';
7
9
  function getCurrentTenancyName(appBaseUrl) {
8
10
  if (appBaseUrl.charAt(appBaseUrl.length - 1) !== '/')
@@ -18,6 +20,7 @@ function getCurrentTenancyNameFromUrl(tenantKey) {
18
20
  export async function parseTenantFromUrl(injector) {
19
21
  const environmentService = injector.get(EnvironmentService);
20
22
  const multiTenancyService = injector.get(MultiTenancyService);
23
+ const tenantNotFoundHandler = injector.get(TENANT_NOT_FOUND_BY_NAME, null);
21
24
  const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';
22
25
  const tenancyName = getCurrentTenancyName(baseUrl);
23
26
  const hideTenantBox = () => {
@@ -41,20 +44,29 @@ export async function parseTenantFromUrl(injector) {
41
44
  * Before this request takes place, we need to replace placeholders aka "{0}".
42
45
  */
43
46
  replaceTenantNameWithinEnvironment(injector, tenancyName);
44
- return multiTenancyService
45
- .setTenantByName(tenancyName)
46
- .pipe(tap(setEnvironmentWithDomainTenant))
47
- .toPromise();
48
- }
49
- else {
50
- /**
51
- * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
52
- */
53
- replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
54
- const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
55
- if (tenantIdFromQueryParams) {
56
- return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
47
+ const tenant$ = multiTenancyService.setTenantByName(tenancyName);
48
+ try {
49
+ const result = await firstValueFrom(tenant$);
50
+ setEnvironmentWithDomainTenant(result);
51
+ return Promise.resolve(result);
57
52
  }
53
+ catch (httpError) {
54
+ if (httpError instanceof HttpErrorResponse &&
55
+ httpError.status === 404 &&
56
+ tenantNotFoundHandler) {
57
+ tenantNotFoundHandler(httpError);
58
+ }
59
+ return Promise.reject();
60
+ }
61
+ }
62
+ /**
63
+ * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
64
+ */
65
+ replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
66
+ const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
67
+ if (tenantIdFromQueryParams) {
68
+ const tenantById$ = multiTenancyService.setTenantById(tenantIdFromQueryParams);
69
+ return firstValueFrom(tenantById$);
58
70
  }
59
71
  return Promise.resolve();
60
72
  }
@@ -78,4 +90,4 @@ function replaceTenantNameWithinEnvironment(injector, tenancyName, placeholder =
78
90
  });
79
91
  return environmentService.setState(environment);
80
92
  }
81
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9tdWx0aS10ZW5hbmN5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUUvQixPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDckUsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFFbkQsTUFBTSxrQkFBa0IsR0FBRyxLQUFLLENBQUM7QUFFakMsU0FBUyxxQkFBcUIsQ0FBQyxVQUFrQjtJQUMvQyxJQUFJLFVBQVUsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHO1FBQUUsVUFBVSxJQUFJLEdBQUcsQ0FBQztJQUV4RSxNQUFNLFdBQVcsR0FBRyxpQkFBaUIsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUNsRCxNQUFNLEtBQUssR0FBRyxrQkFBa0IsQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ3RELE9BQU8sV0FBVyxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQztBQUN2RCxDQUFDO0FBRUQsU0FBUyw0QkFBNEIsQ0FBQyxTQUFpQjtJQUNyRCxNQUFNLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlELE9BQU8sU0FBUyxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsQ0FBQztBQUNs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QUMsV0FBVyxFQUFFLFdBQVcsQ0FBQyxDQUFDO0lBRTFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUMxQyxNQUFNLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUU7WUFDL0MsV0FBVyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxXQUFXLENBQUMsQ0FBQztRQUNwRyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUMsQ0FBQyxDQUFDO0lBRUgsT0FBTyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7QUFDbEQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdG9yIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCBjbG9uZSBmcm9tICdqdXN0LWNsb25lJztcclxuXHJcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuaW1wb3J0IHsgRW52aXJvbm1lbnQgfSBmcm9tICcuLi9tb2RlbHMvZW52aXJvbm1lbnQnO1xyXG5cclxuaW1wb3J0IHsgRmluZFRlbmFudFJlc3VsdER0byB9IGZyb20gJy4uL3Byb3h5L3ZvbG8vYWJwL2FzcC1uZXQtY29yZS9tdmMvbXVsdGktdGVuYW5jeS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudFNlcnZpY2UgfSBmcm9tICcuLi9zZXJ2aWNlcy9lbnZpcm9ubWVudC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgTXVsdGlUZW5hbmN5U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL211bHRpLXRlbmFuY3kuc2VydmljZSc7XHJcbmltcG9ydCB7IGNyZWF0ZVRva2VuUGFyc2VyIH0gZnJvbSAnLi9zdHJpbmctdXRpbHMnO1xyXG5cclxuY29uc3QgdGVuYW5jeVBsYWNlaG9sZGVyID0gJ3swfSc7XHJcblxyXG5mdW5jdGlvbiBnZXRDdXJyZW50VGVuYW5jeU5hbWUoYXBwQmFzZVVybDogc3RyaW5nKTogc3RyaW5nIHtcclxuICBpZiAoYXBwQmFzZVVybC5jaGFyQXQoYXBwQmFzZVVybC5sZW5ndGggLSAxKSAhPT0gJy8nKSBhcHBCYXNlVXJsICs9ICcvJztcclxuXHJcbiAgY29uc3QgcGFyc2VUb2tlbnMgPSBjcmVhdGVUb2tlblBhcnNlcihhcHBCYXNlVXJsKTtcclxuICBjb25zdCB0b2tlbiA9IHRlbmFuY3lQbGFjZWhvbGRlci5yZXBsYWNlKC9bfXtdL2csICcnKTtcclxuICByZXR1cm4gcGFyc2VUb2tlbnMod2luZG93LmxvY2F0aW9uLmhyZWYpW3Rva2VuXT8uWzBdO1xyXG59XHJcblxyXG5mdW5jdGlvbiBnZXRDdXJyZW50VGVuYW5jeU5hbWVGcm9tVXJsKHRlbmFudEtleTogc3RyaW5nKSB7XHJcbiAgY29uc3QgdXJsUGFyYW1zID0gbmV3IFVSTFNlYXJjaFBhcmFtcyh3aW5kb3cubG9jYXRpb24uc2VhcmNoKTtcclxuICByZXR1cm4gdXJsUGFyYW1zLmdldCh0ZW5hbnRLZXkpO1xyXG59XHJcblxyXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcGFyc2VUZW5hbnRGcm9tVXJsKGluamVjdG9yOiBJbmplY3Rvcikge1xyXG4gIGNvbnN0IGVudmlyb25tZW50U2VydmljZSA9IGluamVjdG9yLmdldChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG4gIGNvbnN0IG11bHRpVGVuYW5jeVNlcnZpY2UgPSBpbmplY3Rvci5nZXQoTXVsdGlUZW5hbmN5U2VydmljZSk7XHJcblxyXG4gIGNvbnN0IGJhc2VVcmwgPSBlbnZpcm9ubWVudFNlcnZpY2UuZ2V0RW52aXJvbm1lbnQoKT8uYXBwbGljYXRpb24/LmJhc2VVcmwgfHwgJyc7XHJcbiAgY29uc3QgdGVuYW5jeU5hbWUgPSBnZXRDdXJyZW50VGVuYW5jeU5hbWUoYmFzZVVybCk7XHJcblxyXG4gIGNvbnN0IGhpZGVUZW5hbnRCb3ggPSAoKSA9PiB7XHJcbiAgICBtdWx0aVRlbmFuY3lTZXJ2aWNlLmlzVGVuYW50Qm94VmlzaWJsZSA9IGZhbHNlO1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHNldERvbWFpblRlbmFudCA9ICh0ZW5hbnQ6IEZpbmRUZW5hbnRSZXN1bHREdG8pID0+IHtcclxuICAgIG11bHRpVGVuYW5jeVNlcnZpY2UuZG9tYWluVGVuYW50ID0ge1xyXG4gICAgICBpZDogdGVuYW50LnRlbmFudElkLFxyXG4gICAgICBuYW1lOiB0ZW5hbnQubmFtZSxcclxuICAgICAgaXNBdmFpbGFibGU6IHRydWUsXHJcbiAgICB9O1xyXG4gIH07XHJcblxyXG4gIGNvbnN0IHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudCA9ICh0ZW5hbnQ6IEZpbmRUZW5hbnRSZXN1bHREdG8pID0+IHtcclxuICAgIGhpZGVUZW5hbnRCb3goKTtcclxuICAgIHNldERvbWFpblRlbmFudCh0ZW5hbnQpO1xyXG4gIH07XHJcblxyXG4gIGlmICh0ZW5hbmN5TmFtZSkge1xyXG4gICAgLyoqXHJcbiAgICAgKiBXZSBoYXZlIHRvIHJlcGxhY2UgdGVuYW50IG5hbWUgd2l0aGluIHRoZSB1cmxzIGZyb20gZW52aXJvbm1lbnQsXHJcbiAgICAgKiBiZWNhdXNlIHRoZSBjb2RlIGJlbG93IHdpbGwgbWFrZSBhIGh0dHAgcmVxdWVzdCB0byBmaW5kIGluZm9ybWF0aW9uIGFib3V0IHRoZSBkb21haW4gdGVuYW50LlxyXG4gICAgICogQmVmb3JlIHRoaXMgcmVxdWVzdCB0YWtlcyBwbGFjZSwgd2UgbmVlZCB0byByZXBsYWNlIHBsYWNlaG9sZGVycyBha2EgXCJ7MH1cIi5cclxuICAgICAqL1xyXG4gICAgcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChpbmplY3RvciwgdGVuYW5jeU5hbWUpO1xyXG4gICAgcmV0dXJuIG11bHRpVGVuYW5jeVNlcnZpY2VcclxuICAgICAgLnNldFRlbmFudEJ5TmFtZSh0ZW5hbmN5TmFtZSlcclxuICAgICAgLnBpcGUodGFwKHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudCkpXHJcbiAgICAgIC50b1Byb21pc2UoKTtcclxuICB9IGVsc2Uge1xyXG4gICAgLyoqXHJcbiAgICAgKiBJZiB0aGVyZSBpcyBubyB0ZW5hbnQsIHdlIHN0aWxsIGhhdmUgdG8gY2xlYW4gdXAgezB9LiBmcm9tIGJhc2VVcmwgdG8gYXZvaWQgaW5jb3JyZWN0IGh0dHAgcmVxdWVzdHMuXHJcbiAgICAgKi9cclxuICAgIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsICcnLCB0ZW5hbmN5UGxhY2Vob2xkZXIgKyAnLicpO1xyXG5cclxuICAgIGNvbnN0IHRlbmFudElkRnJvbVF1ZXJ5UGFyYW1zID0gZ2V0Q3VycmVudFRlbmFuY3lOYW1lRnJvbVVybChtdWx0aVRlbmFuY3lTZXJ2aWNlLnRlbmFudEtleSk7XHJcbiAgICBpZiAodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpIHtcclxuICAgICAgcmV0dXJuIG11bHRpVGVuYW5jeVNlcnZpY2Uuc2V0VGVuYW50QnlJZCh0ZW5hbnRJZEZyb21RdWVyeVBhcmFtcykudG9Qcm9taXNlKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XHJcbn1cclxuXHJcbmZ1bmN0aW9uIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoXHJcbiAgaW5qZWN0b3I6IEluamVjdG9yLFxyXG4gIHRlbmFuY3lOYW1lOiBzdHJpbmcsXHJcbiAgcGxhY2Vob2xkZXIgPSB0ZW5hbmN5UGxhY2Vob2xkZXIsXHJcbikge1xyXG4gIGNvbnN0IGVudmlyb25tZW50U2VydmljZSA9IGluamVjdG9yLmdldChFbnZpcm9ubWVudFNlcnZpY2UpO1xyXG5cclxuICBjb25zdCBlbnZpcm9ubWVudCA9IGNsb25lKGVudmlyb25tZW50U2VydmljZS5nZXRFbnZpcm9ubWVudCgpKSBhcyBFbnZpcm9ubWVudDtcclxuXHJcbiAgaWYgKGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwpIHtcclxuICAgIGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwgPSBlbnZpcm9ubWVudC5hcHBsaWNhdGlvbi5iYXNlVXJsLnJlcGxhY2UoXHJcbiAgICAgIHBsYWNlaG9sZGVyLFxyXG4gICAgICB0ZW5hbmN5TmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZiAoZW52aXJvbm1lbnQub0F1dGhDb25maWc/LnJlZGlyZWN0VXJpKSB7XHJcbiAgICBlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5yZWRpcmVjdFVyaSA9IGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpLnJlcGxhY2UoXHJcbiAgICAgIHBsYWNlaG9sZGVyLFxyXG4gICAgICB0ZW5hbmN5TmFtZSxcclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBpZighZW52aXJvbm1lbnQub0F1dGhDb25maWcpIHtcclxuICAgIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnID0ge307XHJcbiAgfVxyXG4gIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLmlzc3VlciA9IChlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIgfHwgJycpLnJlcGxhY2UocGxhY2Vob2xkZXIsIHRlbmFuY3lOYW1lKTtcclxuXHJcbiAgT2JqZWN0LmtleXMoZW52aXJvbm1lbnQuYXBpcykuZm9yRWFjaChhcGkgPT4ge1xyXG4gICAgT2JqZWN0LmtleXMoZW52aXJvbm1lbnQuYXBpc1thcGldKS5mb3JFYWNoKGtleSA9PiB7XHJcbiAgICAgIGVudmlyb25tZW50LmFwaXNbYXBpXVtrZXldID0gKGVudmlyb25tZW50LmFwaXNbYXBpXVtrZXldIHx8ICcnKS5yZXBsYWNlKHBsYWNlaG9sZGVyLCB0ZW5hbmN5TmFtZSk7XHJcbiAgICB9KTtcclxuICB9KTtcclxuXHJcbiAgcmV0dXJuIGVudmlyb25tZW50U2VydmljZS5zZXRTdGF0ZShlbnZpcm9ubWVudCk7XHJcbn1cclxuIl19
93
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGktdGVuYW5jeS11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3BhY2thZ2VzL2NvcmUvc3JjL2xpYi91dGlscy9tdWx0aS10ZW5hbmN5LXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxNQUFNLFlBQVksQ0FBQztBQUkvQixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNyRSxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxtQ0FBbUMsQ0FBQztBQUN4RSxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuRCxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQ3RDLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBRXpELE1BQU0sa0JBQWtCLEdBQUcsS0FBSyxDQUFDO0FBRWpDLFNBQVMscUJBQXFCLENBQUMsVUFBa0I7SUFDL0MsSUFBSSxVQUFVLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEtBQUssR0FBRztRQUFFLFVBQVUsSUFBSSxHQUFHLENBQUM7SUFFeEUsTUFBTSxXQUFXLEdBQUcsaUJBQWlCLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbEQsTUFBTSxLQUFLLEdBQUcsa0JBQWtCLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN0RCxPQUFPLFdBQVcsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUM7QUFDdkQsQ0FBQztBQUVELFNBQVMsNEJBQTRCLENBQUMsU0FBaUI7SUFDckQsTUFBTSxTQUFTLEdBQUcsSUFBSSxlQUFlLENB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QUNsRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0b3IgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGNsb25lIGZyb20gJ2p1c3QtY2xvbmUnO1xyXG5pbXBvcnQgeyBFbnZpcm9ubWVudCB9IGZyb20gJy4uL21vZGVscy9lbnZpcm9ubWVudCc7XHJcblxyXG5pbXBvcnQgeyBGaW5kVGVuYW50UmVzdWx0RHRvIH0gZnJvbSAnLi4vcHJveHkvdm9sby9hYnAvYXNwLW5ldC1jb3JlL212Yy9tdWx0aS10ZW5hbmN5L21vZGVscyc7XHJcbmltcG9ydCB7IEVudmlyb25tZW50U2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL2Vudmlyb25tZW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBNdWx0aVRlbmFuY3lTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvbXVsdGktdGVuYW5jeS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgY3JlYXRlVG9rZW5QYXJzZXIgfSBmcm9tICcuL3N0cmluZy11dGlscyc7XHJcbmltcG9ydCB7IGZpcnN0VmFsdWVGcm9tIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IFRFTkFOVF9OT1RfRk9VTkRfQllfTkFNRSB9IGZyb20gJy4uL3Rva2Vucy90ZW5hbnQtbm90LWZvdW5kLWJ5LW5hbWUnO1xyXG5pbXBvcnQgeyBIdHRwRXJyb3JSZXNwb25zZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuXHJcbmNvbnN0IHRlbmFuY3lQbGFjZWhvbGRlciA9ICd7MH0nO1xyXG5cclxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lKGFwcEJhc2VVcmw6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgaWYgKGFwcEJhc2VVcmwuY2hhckF0KGFwcEJhc2VVcmwubGVuZ3RoIC0gMSkgIT09ICcvJykgYXBwQmFzZVVybCArPSAnLyc7XHJcblxyXG4gIGNvbnN0IHBhcnNlVG9rZW5zID0gY3JlYXRlVG9rZW5QYXJzZXIoYXBwQmFzZVVybCk7XHJcbiAgY29uc3QgdG9rZW4gPSB0ZW5hbmN5UGxhY2Vob2xkZXIucmVwbGFjZSgvW317XS9nLCAnJyk7XHJcbiAgcmV0dXJuIHBhcnNlVG9rZW5zKHdpbmRvdy5sb2NhdGlvbi5ocmVmKVt0b2tlbl0/LlswXTtcclxufVxyXG5cclxuZnVuY3Rpb24gZ2V0Q3VycmVudFRlbmFuY3lOYW1lRnJvbVVybCh0ZW5hbnRLZXk6IHN0cmluZykge1xyXG4gIGNvbnN0IHVybFBhcmFtcyA9IG5ldyBVUkxTZWFyY2hQYXJhbXMod2luZG93LmxvY2F0aW9uLnNlYXJjaCk7XHJcbiAgcmV0dXJuIHVybFBhcmFtcy5nZXQodGVuYW50S2V5KTtcclxufVxyXG5cclxuZXhwb3J0IGFzeW5jIGZ1bmN0aW9uIHBhcnNlVGVuYW50RnJvbVVybChpbmplY3RvcjogSW5qZWN0b3IpIHtcclxuICBjb25zdCBlbnZpcm9ubWVudFNlcnZpY2UgPSBpbmplY3Rvci5nZXQoRW52aXJvbm1lbnRTZXJ2aWNlKTtcclxuICBjb25zdCBtdWx0aVRlbmFuY3lTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KE11bHRpVGVuYW5jeVNlcnZpY2UpO1xyXG4gIGNvbnN0IHRlbmFudE5vdEZvdW5kSGFuZGxlciA9IGluamVjdG9yLmdldChURU5BTlRfTk9UX0ZPVU5EX0JZX05BTUUsIG51bGwpO1xyXG5cclxuICBjb25zdCBiYXNlVXJsID0gZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCk/LmFwcGxpY2F0aW9uPy5iYXNlVXJsIHx8ICcnO1xyXG4gIGNvbnN0IHRlbmFuY3lOYW1lID0gZ2V0Q3VycmVudFRlbmFuY3lOYW1lKGJhc2VVcmwpO1xyXG5cclxuICBjb25zdCBoaWRlVGVuYW50Qm94ID0gKCkgPT4ge1xyXG4gICAgbXVsdGlUZW5hbmN5U2VydmljZS5pc1RlbmFudEJveFZpc2libGUgPSBmYWxzZTtcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXREb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XHJcbiAgICBtdWx0aVRlbmFuY3lTZXJ2aWNlLmRvbWFpblRlbmFudCA9IHtcclxuICAgICAgaWQ6IHRlbmFudC50ZW5hbnRJZCxcclxuICAgICAgbmFtZTogdGVuYW50Lm5hbWUsXHJcbiAgICAgIGlzQXZhaWxhYmxlOiB0cnVlLFxyXG4gICAgfTtcclxuICB9O1xyXG5cclxuICBjb25zdCBzZXRFbnZpcm9ubWVudFdpdGhEb21haW5UZW5hbnQgPSAodGVuYW50OiBGaW5kVGVuYW50UmVzdWx0RHRvKSA9PiB7XHJcbiAgICBoaWRlVGVuYW50Qm94KCk7XHJcbiAgICBzZXREb21haW5UZW5hbnQodGVuYW50KTtcclxuICB9O1xyXG5cclxuICBpZiAodGVuYW5jeU5hbWUpIHtcclxuICAgIC8qKlxyXG4gICAgICogV2UgaGF2ZSB0byByZXBsYWNlIHRlbmFudCBuYW1lIHdpdGhpbiB0aGUgdXJscyBmcm9tIGVudmlyb25tZW50LFxyXG4gICAgICogYmVjYXVzZSB0aGUgY29kZSBiZWxvdyB3aWxsIG1ha2UgYSBodHRwIHJlcXVlc3QgdG8gZmluZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgZG9tYWluIHRlbmFudC5cclxuICAgICAqIEJlZm9yZSB0aGlzIHJlcXVlc3QgdGFrZXMgcGxhY2UsIHdlIG5lZWQgdG8gcmVwbGFjZSBwbGFjZWhvbGRlcnMgYWthIFwiezB9XCIuXHJcbiAgICAgKi9cclxuICAgIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsIHRlbmFuY3lOYW1lKTtcclxuXHJcbiAgICBjb25zdCB0ZW5hbnQkID0gbXVsdGlUZW5hbmN5U2VydmljZS5zZXRUZW5hbnRCeU5hbWUodGVuYW5jeU5hbWUpO1xyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gYXdhaXQgZmlyc3RWYWx1ZUZyb20odGVuYW50JCk7XHJcbiAgICAgIHNldEVudmlyb25tZW50V2l0aERvbWFpblRlbmFudChyZXN1bHQpO1xyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKHJlc3VsdCk7XHJcbiAgICB9IGNhdGNoIChodHRwRXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlIHwgYW55KSB7XHJcbiAgICAgIGlmIChcclxuICAgICAgICBodHRwRXJyb3IgaW5zdGFuY2VvZiBIdHRwRXJyb3JSZXNwb25zZSAmJlxyXG4gICAgICAgIGh0dHBFcnJvci5zdGF0dXMgPT09IDQwNCAmJlxyXG4gICAgICAgIHRlbmFudE5vdEZvdW5kSGFuZGxlclxyXG4gICAgICApIHtcclxuICAgICAgICB0ZW5hbnROb3RGb3VuZEhhbmRsZXIoaHR0cEVycm9yKTtcclxuICAgICAgfVxyXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZWplY3QoKTtcclxuICAgIH1cclxuICB9XHJcbiAgLyoqXHJcbiAgICogSWYgdGhlcmUgaXMgbm8gdGVuYW50LCB3ZSBzdGlsbCBoYXZlIHRvIGNsZWFuIHVwIHswfS4gZnJvbSBiYXNlVXJsIHRvIGF2b2lkIGluY29ycmVjdCBodHRwIHJlcXVlc3RzLlxyXG4gICAqL1xyXG4gIHJlcGxhY2VUZW5hbnROYW1lV2l0aGluRW52aXJvbm1lbnQoaW5qZWN0b3IsICcnLCB0ZW5hbmN5UGxhY2Vob2xkZXIgKyAnLicpO1xyXG5cclxuICBjb25zdCB0ZW5hbnRJZEZyb21RdWVyeVBhcmFtcyA9IGdldEN1cnJlbnRUZW5hbmN5TmFtZUZyb21VcmwobXVsdGlUZW5hbmN5U2VydmljZS50ZW5hbnRLZXkpO1xyXG4gIGlmICh0ZW5hbnRJZEZyb21RdWVyeVBhcmFtcykge1xyXG4gICAgY29uc3QgdGVuYW50QnlJZCQgPSBtdWx0aVRlbmFuY3lTZXJ2aWNlLnNldFRlbmFudEJ5SWQodGVuYW50SWRGcm9tUXVlcnlQYXJhbXMpO1xyXG4gICAgcmV0dXJuIGZpcnN0VmFsdWVGcm9tKHRlbmFudEJ5SWQkKTtcclxuICB9XHJcblxyXG4gIHJldHVybiBQcm9taXNlLnJlc29sdmUoKTtcclxufVxyXG5cclxuZnVuY3Rpb24gcmVwbGFjZVRlbmFudE5hbWVXaXRoaW5FbnZpcm9ubWVudChcclxuICBpbmplY3RvcjogSW5qZWN0b3IsXHJcbiAgdGVuYW5jeU5hbWU6IHN0cmluZyxcclxuICBwbGFjZWhvbGRlciA9IHRlbmFuY3lQbGFjZWhvbGRlcixcclxuKSB7XHJcbiAgY29uc3QgZW52aXJvbm1lbnRTZXJ2aWNlID0gaW5qZWN0b3IuZ2V0KEVudmlyb25tZW50U2VydmljZSk7XHJcblxyXG4gIGNvbnN0IGVudmlyb25tZW50ID0gY2xvbmUoZW52aXJvbm1lbnRTZXJ2aWNlLmdldEVudmlyb25tZW50KCkpIGFzIEVudmlyb25tZW50O1xyXG5cclxuICBpZiAoZW52aXJvbm1lbnQuYXBwbGljYXRpb24uYmFzZVVybCkge1xyXG4gICAgZW52aXJvbm1lbnQuYXBwbGljYXRpb24uYmFzZVVybCA9IGVudmlyb25tZW50LmFwcGxpY2F0aW9uLmJhc2VVcmwucmVwbGFjZShcclxuICAgICAgcGxhY2Vob2xkZXIsXHJcbiAgICAgIHRlbmFuY3lOYW1lLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlmIChlbnZpcm9ubWVudC5vQXV0aENvbmZpZz8ucmVkaXJlY3RVcmkpIHtcclxuICAgIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLnJlZGlyZWN0VXJpID0gZW52aXJvbm1lbnQub0F1dGhDb25maWcucmVkaXJlY3RVcmkucmVwbGFjZShcclxuICAgICAgcGxhY2Vob2xkZXIsXHJcbiAgICAgIHRlbmFuY3lOYW1lLFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGlmICghZW52aXJvbm1lbnQub0F1dGhDb25maWcpIHtcclxuICAgIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnID0ge307XHJcbiAgfVxyXG4gIGVudmlyb25tZW50Lm9BdXRoQ29uZmlnLmlzc3VlciA9IChlbnZpcm9ubWVudC5vQXV0aENvbmZpZy5pc3N1ZXIgfHwgJycpLnJlcGxhY2UoXHJcbiAgICBwbGFjZWhvbGRlcixcclxuICAgIHRlbmFuY3lOYW1lLFxyXG4gICk7XHJcblxyXG4gIE9iamVjdC5rZXlzKGVudmlyb25tZW50LmFwaXMpLmZvckVhY2goYXBpID0+IHtcclxuICAgIE9iamVjdC5rZXlzKGVudmlyb25tZW50LmFwaXNbYXBpXSkuZm9yRWFjaChrZXkgPT4ge1xyXG4gICAgICBlbnZpcm9ubWVudC5hcGlzW2FwaV1ba2V5XSA9IChlbnZpcm9ubWVudC5hcGlzW2FwaV1ba2V5XSB8fCAnJykucmVwbGFjZShcclxuICAgICAgICBwbGFjZWhvbGRlcixcclxuICAgICAgICB0ZW5hbmN5TmFtZSxcclxuICAgICAgKTtcclxuICAgIH0pO1xyXG4gIH0pO1xyXG5cclxuICByZXR1cm4gZW52aXJvbm1lbnRTZXJ2aWNlLnNldFN0YXRlKGVudmlyb25tZW50KTtcclxufVxyXG4iXX0=
@@ -1,13 +1,13 @@
1
1
  import * as i0 from '@angular/core';
2
2
  import { ChangeDetectorRef, Component, Input, Injectable, InjectionToken, Inject, Optional, isDevMode, SkipSelf, NgModuleFactory, Injector, Compiler, inject, signal, computed, Directive, EventEmitter, Output, Self, Pipe, NgModule, APP_INITIALIZER, LOCALE_ID, SecurityContext, ElementRef, HostListener, ComponentFactoryResolver, ApplicationRef } from '@angular/core';
3
- import { of, BehaviorSubject, Subject, throwError, combineLatest, from, lastValueFrom, Observable, timer, pipe, concat, ReplaySubject, Subscription, map as map$1, fromEvent } from 'rxjs';
3
+ import { of, BehaviorSubject, Subject, throwError, combineLatest, from, firstValueFrom, lastValueFrom, Observable, timer, pipe, concat, ReplaySubject, Subscription, map as map$1, fromEvent } from 'rxjs';
4
4
  import * as i1$1 from '@angular/router';
5
5
  import { PRIMARY_OUTLET, NavigationCancel, NavigationEnd, NavigationError, NavigationStart, ActivatedRoute, Router, RouterModule } from '@angular/router';
6
6
  import * as i5 from '@angular/common';
7
7
  import { registerLocaleData, DOCUMENT, DatePipe, DATE_PIPE_DEFAULT_TIMEZONE, CommonModule } from '@angular/common';
8
8
  import { map, distinctUntilChanged, filter, catchError, switchMap, take, tap, mapTo, takeUntil, delay, retryWhen, shareReplay, debounceTime, finalize } from 'rxjs/operators';
9
9
  import * as i1 from '@angular/common/http';
10
- import { HttpContextToken, HttpClient, HttpContext, HttpParams, HttpClientModule, HttpClientXsrfModule, HttpHeaders } from '@angular/common/http';
10
+ import { HttpContextToken, HttpClient, HttpContext, HttpParams, HttpErrorResponse, HttpClientModule, HttpClientXsrfModule, HttpHeaders } from '@angular/common/http';
11
11
  import compare from 'just-compare';
12
12
  import clone from 'just-clone';
13
13
  import * as i1$2 from '@angular/forms';
@@ -1131,6 +1131,8 @@ const CHECK_AUTHENTICATION_STATE_FN_KEY = new InjectionToken('CHECK_AUTHENTICATI
1131
1131
 
1132
1132
  const OTHERS_GROUP = new InjectionToken('OTHERS_GROUP');
1133
1133
 
1134
+ const TENANT_NOT_FOUND_BY_NAME = new InjectionToken('TENANT_NOT_FOUND_BY_NAME');
1135
+
1134
1136
  function pushValueTo(array) {
1135
1137
  return (element) => {
1136
1138
  array.push(element);
@@ -1501,6 +1503,7 @@ function getCurrentTenancyNameFromUrl(tenantKey) {
1501
1503
  async function parseTenantFromUrl(injector) {
1502
1504
  const environmentService = injector.get(EnvironmentService);
1503
1505
  const multiTenancyService = injector.get(MultiTenancyService);
1506
+ const tenantNotFoundHandler = injector.get(TENANT_NOT_FOUND_BY_NAME, null);
1504
1507
  const baseUrl = environmentService.getEnvironment()?.application?.baseUrl || '';
1505
1508
  const tenancyName = getCurrentTenancyName(baseUrl);
1506
1509
  const hideTenantBox = () => {
@@ -1524,20 +1527,29 @@ async function parseTenantFromUrl(injector) {
1524
1527
  * Before this request takes place, we need to replace placeholders aka "{0}".
1525
1528
  */
1526
1529
  replaceTenantNameWithinEnvironment(injector, tenancyName);
1527
- return multiTenancyService
1528
- .setTenantByName(tenancyName)
1529
- .pipe(tap(setEnvironmentWithDomainTenant))
1530
- .toPromise();
1531
- }
1532
- else {
1533
- /**
1534
- * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
1535
- */
1536
- replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
1537
- const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
1538
- if (tenantIdFromQueryParams) {
1539
- return multiTenancyService.setTenantById(tenantIdFromQueryParams).toPromise();
1530
+ const tenant$ = multiTenancyService.setTenantByName(tenancyName);
1531
+ try {
1532
+ const result = await firstValueFrom(tenant$);
1533
+ setEnvironmentWithDomainTenant(result);
1534
+ return Promise.resolve(result);
1540
1535
  }
1536
+ catch (httpError) {
1537
+ if (httpError instanceof HttpErrorResponse &&
1538
+ httpError.status === 404 &&
1539
+ tenantNotFoundHandler) {
1540
+ tenantNotFoundHandler(httpError);
1541
+ }
1542
+ return Promise.reject();
1543
+ }
1544
+ }
1545
+ /**
1546
+ * If there is no tenant, we still have to clean up {0}. from baseUrl to avoid incorrect http requests.
1547
+ */
1548
+ replaceTenantNameWithinEnvironment(injector, '', tenancyPlaceholder + '.');
1549
+ const tenantIdFromQueryParams = getCurrentTenancyNameFromUrl(multiTenancyService.tenantKey);
1550
+ if (tenantIdFromQueryParams) {
1551
+ const tenantById$ = multiTenancyService.setTenantById(tenantIdFromQueryParams);
1552
+ return firstValueFrom(tenantById$);
1541
1553
  }
1542
1554
  return Promise.resolve();
1543
1555
  }
@@ -4597,5 +4609,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.0.6", ngImpor
4597
4609
  * Generated bundle index. Do not edit.
4598
4610
  */
4599
4611
 
4600
- export { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpLocalStorageService, AbpTenantService, AbpValidators, AbpWindowService, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthGuard, AuthService, AutofocusDirective, BaseCoreModule, BaseTreeNode, CHECK_AUTHENTICATION_STATE_FN_KEY, CONTAINER_STRATEGY, CONTENT_SECURITY_STRATEGY, CONTENT_STRATEGY, CONTEXT_STRATEGY, COOKIE_LANGUAGE_KEY, CORE_OPTIONS, CROSS_ORIGIN_STRATEGY, ClearContainerStrategy, ComponentContextStrategy, ComponentProjectionStrategy, ConfigStateService, ContainerStrategy, ContentProjectionService, ContentSecurityStrategy, ContentStrategy, ContextStrategy, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DOM_STRATEGY, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleLimitedResultRequestDto, ExtensibleObject, ExtensiblePagedAndSortedResultRequestDto, ExtensiblePagedResultRequestDto, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, InternetConnectionService, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, OTHERS_GROUP, index as ObjectExtending, PIPE_TO_LOGIN_FN_KEY, PROJECTION_STRATEGY, PagedAndSortedResultRequestDto, PagedResultDto, PagedResultRequestDto, PermissionDirective, PermissionGuard, PermissionService, ProjectionStrategy, QUEUE_MANAGER, ReplaceableComponentsService, ReplaceableRouteContainerComponent, ReplaceableTemplateDirective, ResourceWaitService, RestService, RootComponentProjectionStrategy, RootCoreModule, RouterEvents, RouterOutletComponent, RouterWaitService, RoutesService, SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, SafeHtmlPipe, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, ShowPasswordDirective, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TemplateContextStrategy, TemplateProjectionStrategy, ToInjectorPipe, TrackByService, TrackCapsLockDirective, WebHttpUrlEncodingCodec, checkHasProp, coreOptionsFactory, createGroupMap, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, pushValueTo, reloadRoute, trackBy, trackByDeep, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUniqueCharacter, validateUrl };
4612
+ export { APP_INIT_ERROR_HANDLERS, AbpApiDefinitionService, AbpApplicationConfigurationService, AbpApplicationLocalizationService, AbpLocalStorageService, AbpTenantService, AbpValidators, AbpWindowService, AbstractNavTreeService, AbstractNgModelComponent, AbstractTreeService, ApiInterceptor, AuditedEntityDto, AuditedEntityWithUserDto, AuthGuard, AuthService, AutofocusDirective, BaseCoreModule, BaseTreeNode, CHECK_AUTHENTICATION_STATE_FN_KEY, CONTAINER_STRATEGY, CONTENT_SECURITY_STRATEGY, CONTENT_STRATEGY, CONTEXT_STRATEGY, COOKIE_LANGUAGE_KEY, CORE_OPTIONS, CROSS_ORIGIN_STRATEGY, ClearContainerStrategy, ComponentContextStrategy, ComponentProjectionStrategy, ConfigStateService, ContainerStrategy, ContentProjectionService, ContentSecurityStrategy, ContentStrategy, ContextStrategy, CoreModule, CreationAuditedEntityDto, CreationAuditedEntityWithUserDto, CrossOriginStrategy, DOM_STRATEGY, DefaultQueueManager, DomInsertionService, DomStrategy, DynamicLayoutComponent, EntityDto, EnvironmentService, ExtensibleAuditedEntityDto, ExtensibleAuditedEntityWithUserDto, ExtensibleCreationAuditedEntityDto, ExtensibleCreationAuditedEntityWithUserDto, ExtensibleEntityDto, ExtensibleFullAuditedEntityDto, ExtensibleFullAuditedEntityWithUserDto, ExtensibleLimitedResultRequestDto, ExtensibleObject, ExtensiblePagedAndSortedResultRequestDto, ExtensiblePagedResultRequestDto, ExternalHttpClient, ForDirective, FormSubmitDirective, FullAuditedEntityDto, FullAuditedEntityWithUserDto, HttpErrorReporterService, HttpWaitService, INCUDE_LOCALIZATION_RESOURCES_TOKEN, INJECTOR_PIPE_DATA_TOKEN, IS_EXTERNAL_REQUEST, InitDirective, InputEventDebounceDirective, InsertIntoContainerStrategy, InternalStore, InternetConnectionService, LIST_QUERY_DEBOUNCE_TIME, LOADER_DELAY, LOADING_STRATEGY, LOCALIZATIONS, LazyLoadService, LazyModuleFactory, LimitedResultRequestDto, ListResultDto, ListService, LoadingStrategy, LocalizationModule, LocalizationPipe, LocalizationService, LooseContentSecurityStrategy, MultiTenancyService, NAVIGATE_TO_MANAGE_PROFILE, NavigationEvent, NoContentSecurityStrategy, NoContextStrategy, NoCrossOriginStrategy, OTHERS_GROUP, index as ObjectExtending, PIPE_TO_LOGIN_FN_KEY, PROJECTION_STRATEGY, PagedAndSortedResultRequestDto, PagedResultDto, PagedResultRequestDto, PermissionDirective, PermissionGuard, PermissionService, ProjectionStrategy, QUEUE_MANAGER, ReplaceableComponentsService, ReplaceableRouteContainerComponent, ReplaceableTemplateDirective, ResourceWaitService, RestService, RootComponentProjectionStrategy, RootCoreModule, RouterEvents, RouterOutletComponent, RouterWaitService, RoutesService, SET_TOKEN_RESPONSE_TO_STORAGE_FN_KEY, SafeHtmlPipe, ScriptContentStrategy, ScriptLoadingStrategy, SessionStateService, ShortDatePipe, ShortDateTimePipe, ShortTimePipe, ShowPasswordDirective, SortPipe, StopPropagationDirective, StyleContentStrategy, StyleLoadingStrategy, SubscriptionService, TENANT_KEY, TENANT_NOT_FOUND_BY_NAME, TemplateContextStrategy, TemplateProjectionStrategy, ToInjectorPipe, TrackByService, TrackCapsLockDirective, WebHttpUrlEncodingCodec, checkHasProp, coreOptionsFactory, createGroupMap, createLocalizationPipeKeyGenerator, createLocalizer, createLocalizerWithFallback, createMapFromList, createTokenParser, createTreeFromList, createTreeNodeFilterCreator, deepMerge, differentLocales, downloadBlob, escapeHtmlChars, exists, featuresFactory, findRoute, fromLazyLoad, generateHash, generatePassword, getInitialData, getLocaleDirection, getPathName, getRemoteEnv, getRoutePath, getShortDateFormat, getShortDateShortTimeFormat, getShortTimeFormat, interpolate, isArray, isNode, isNullOrEmpty, isNullOrUndefined, isNumber, isObject, isObjectAndNotArray, isObjectAndNotArrayNotNode, isUndefinedOrEmptyString, localeInitializer, localizationContributor, localizations$, mapEnumToOptions, noop, parseTenantFromUrl, pushValueTo, reloadRoute, trackBy, trackByDeep, uuid, validateCreditCard, validateMinAge, validateRange, validateRequired, validateStringLength, validateUniqueCharacter, validateUrl };
4601
4613
  //# sourceMappingURL=abp-ng.core.mjs.map