@yuuvis/client-core 2.0.0-beta.0 → 2.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/fesm2022/yuuvis-client-core.mjs +773 -645
  2. package/fesm2022/yuuvis-client-core.mjs.map +1 -1
  3. package/index.d.ts +7 -4
  4. package/lib/model/object-flavor.interface.d.ts +4 -1
  5. package/lib/provide.client.core.d.ts +58 -0
  6. package/lib/service/backend/backend.service.d.ts +0 -1
  7. package/lib/service/config/config.service.d.ts +0 -8
  8. package/lib/service/core-init/core-init.service.d.ts +1 -7
  9. package/lib/service/core-init/translate-json-loader.d.ts +1 -1
  10. package/lib/service/dms/dms.service.d.ts +2 -1
  11. package/lib/service/object-config/object-config.interface.d.ts +1 -1
  12. package/lib/service/object-form/object-form-translate.service.d.ts +15 -0
  13. package/lib/service/{system → object-form}/object-form.interface.d.ts +2 -2
  14. package/lib/service/object-form/object-form.model.d.ts +45 -0
  15. package/lib/service/system/system.interface.d.ts +1 -1
  16. package/lib/service/system/system.service.d.ts +1 -1
  17. package/lib/service/toast/toast.interface.d.ts +8 -0
  18. package/lib/service/toast/toast.service.d.ts +17 -0
  19. package/lib/service/toast/toast.styles.d.ts +1 -0
  20. package/lib/service/upload/upload.interface.d.ts +1 -1
  21. package/lib/service/user/user.providers.d.ts +4 -0
  22. package/lib/service/user/user.service.d.ts +2 -4
  23. package/package.json +7 -10
  24. package/esm2022/index.mjs +0 -69
  25. package/esm2022/lib/client-core.module.mjs +0 -117
  26. package/esm2022/lib/client-core.shared.module.mjs +0 -18
  27. package/esm2022/lib/common/pipes/filesize.pipe.mjs +0 -37
  28. package/esm2022/lib/common/pipes/index.mjs +0 -6
  29. package/esm2022/lib/common/pipes/keys.pipe.mjs +0 -17
  30. package/esm2022/lib/common/pipes/locale-date.pipe.mjs +0 -45
  31. package/esm2022/lib/common/pipes/locale-number.pipe.mjs +0 -115
  32. package/esm2022/lib/common/pipes/safe-html.pipe.mjs +0 -44
  33. package/esm2022/lib/common/services/native-notifications.interface.mjs +0 -2
  34. package/esm2022/lib/common/services/native-notifications.mjs +0 -40
  35. package/esm2022/lib/model/dms-object.interface.mjs +0 -2
  36. package/esm2022/lib/model/dms-object.model.mjs +0 -79
  37. package/esm2022/lib/model/object-flavor.interface.mjs +0 -2
  38. package/esm2022/lib/model/range-value.interface.mjs +0 -2
  39. package/esm2022/lib/model/yuv-error.model.mjs +0 -37
  40. package/esm2022/lib/model/yuv-user.model.mjs +0 -38
  41. package/esm2022/lib/service/audit/audit.interface.mjs +0 -2
  42. package/esm2022/lib/service/audit/audit.service.mjs +0 -135
  43. package/esm2022/lib/service/auth/auth.interceptor.mjs +0 -50
  44. package/esm2022/lib/service/auth/auth.interface.mjs +0 -7
  45. package/esm2022/lib/service/auth/auth.service.mjs +0 -130
  46. package/esm2022/lib/service/auth/oidc.service.mjs +0 -81
  47. package/esm2022/lib/service/backend/api.enum.mjs +0 -11
  48. package/esm2022/lib/service/backend/backend.interface.mjs +0 -2
  49. package/esm2022/lib/service/backend/backend.service.mjs +0 -206
  50. package/esm2022/lib/service/bpm/bpm.interface.mjs +0 -8
  51. package/esm2022/lib/service/bpm/bpm.service.mjs +0 -51
  52. package/esm2022/lib/service/cache/app-cache.service.mjs +0 -51
  53. package/esm2022/lib/service/catalog/catalog.interface.mjs +0 -2
  54. package/esm2022/lib/service/catalog/catalog.service.mjs +0 -13
  55. package/esm2022/lib/service/clipboard/clipboard.interface.mjs +0 -2
  56. package/esm2022/lib/service/clipboard/clipboard.service.mjs +0 -99
  57. package/esm2022/lib/service/config/config.interface.mjs +0 -6
  58. package/esm2022/lib/service/config/config.service.mjs +0 -115
  59. package/esm2022/lib/service/config/core-config.mjs +0 -20
  60. package/esm2022/lib/service/config/core-config.tokens.mjs +0 -9
  61. package/esm2022/lib/service/connection/connection.service.mjs +0 -36
  62. package/esm2022/lib/service/connection/offline.interceptor.mjs +0 -28
  63. package/esm2022/lib/service/core-init/core-init.service.mjs +0 -29
  64. package/esm2022/lib/service/core-init/missing-translation-handler.mjs +0 -10
  65. package/esm2022/lib/service/core-init/translate-json-loader.mjs +0 -117
  66. package/esm2022/lib/service/device/device.interface.mjs +0 -6
  67. package/esm2022/lib/service/device/device.service.mjs +0 -144
  68. package/esm2022/lib/service/dms/dms.service.interface.mjs +0 -2
  69. package/esm2022/lib/service/dms/dms.service.mjs +0 -440
  70. package/esm2022/lib/service/event/event.interface.mjs +0 -2
  71. package/esm2022/lib/service/event/event.service.mjs +0 -38
  72. package/esm2022/lib/service/event/events.mjs +0 -14
  73. package/esm2022/lib/service/idm/idm.interface.mjs +0 -2
  74. package/esm2022/lib/service/idm/idm.service.mjs +0 -34
  75. package/esm2022/lib/service/logger/logger-console.service.mjs +0 -73
  76. package/esm2022/lib/service/logger/logger.interface.mjs +0 -2
  77. package/esm2022/lib/service/logger/logger.mjs +0 -27
  78. package/esm2022/lib/service/notification/notification.service.mjs +0 -131
  79. package/esm2022/lib/service/object-config/object-config.interface.mjs +0 -2
  80. package/esm2022/lib/service/object-config/object-config.service.mjs +0 -233
  81. package/esm2022/lib/service/pending-changes/pending-changes-component.interface.mjs +0 -5
  82. package/esm2022/lib/service/pending-changes/pending-changes-guard.service.mjs +0 -25
  83. package/esm2022/lib/service/pending-changes/pending-changes.service.mjs +0 -123
  84. package/esm2022/lib/service/prediction/prediction.interface.mjs +0 -2
  85. package/esm2022/lib/service/prediction/prediction.service.mjs +0 -60
  86. package/esm2022/lib/service/retention/retention.interface.mjs +0 -2
  87. package/esm2022/lib/service/retention/retention.service.mjs +0 -65
  88. package/esm2022/lib/service/search/search.service.interface.mjs +0 -39
  89. package/esm2022/lib/service/search/search.service.mjs +0 -261
  90. package/esm2022/lib/service/search/search.utils.mjs +0 -142
  91. package/esm2022/lib/service/session-storage/session-storage.service.mjs +0 -50
  92. package/esm2022/lib/service/system/object-form.interface.mjs +0 -2
  93. package/esm2022/lib/service/system/system.enum.mjs +0 -167
  94. package/esm2022/lib/service/system/system.interface.mjs +0 -2
  95. package/esm2022/lib/service/system/system.service.mjs +0 -597
  96. package/esm2022/lib/service/upload/upload.interface.mjs +0 -2
  97. package/esm2022/lib/service/upload/upload.service.mjs +0 -228
  98. package/esm2022/lib/service/user/user-storage.service.mjs +0 -38
  99. package/esm2022/lib/service/user/user.service.mjs +0 -211
  100. package/esm2022/lib/util/utils.helper.enum.mjs +0 -15
  101. package/esm2022/lib/util/utils.mjs +0 -373
  102. package/esm2022/yuuvis-client-core.mjs +0 -5
  103. package/lib/client-core.module.d.ts +0 -20
  104. package/lib/client-core.shared.module.d.ts +0 -10
  105. package/lib/service/auth/oidc.service.d.ts +0 -16
@@ -1,19 +1,19 @@
1
- import * as i1$1 from '@ngx-translate/core';
2
- import { TranslateModule, TranslateService, TranslateLoader, MissingTranslationHandler } from '@ngx-translate/core';
1
+ import * as i1 from '@ngx-translate/core';
2
+ import { TranslateService, TranslateLoader, MissingTranslationHandler, TranslateModule } from '@ngx-translate/core';
3
3
  export { TranslateDirective, TranslateLoader, TranslateModule, TranslatePipe, TranslateService } from '@ngx-translate/core';
4
+ import { HttpErrorResponse, HttpClient, HttpHeaders, HttpParams, HttpRequest, HttpResponse, HttpEventType, HTTP_INTERCEPTORS } from '@angular/common/http';
4
5
  import * as i0 from '@angular/core';
5
- import { NgModule, InjectionToken, Inject, Injectable, Optional, inject, APP_INITIALIZER, SkipSelf, Pipe } from '@angular/core';
6
- import { HttpErrorResponse, HttpHeaders, HttpClient, HttpParams, HttpRequest, HttpEventType, HttpResponse, HTTP_INTERCEPTORS, provideHttpClient, withInterceptorsFromDi } from '@angular/common/http';
7
- import { map, tap, finalize, shareReplay, catchError, switchMap, first, filter, scan, delay } from 'rxjs/operators';
8
- import { EMPTY, of, from, Observable, forkJoin, ReplaySubject, Subject, BehaviorSubject, tap as tap$1, map as map$1, merge, fromEvent, filter as filter$1, debounceTime, throwError, switchMap as switchMap$1 } from 'rxjs';
9
- import * as i1 from 'angular-oauth2-oidc';
10
- import { OAuthStorage, OAuthModule } from 'angular-oauth2-oidc';
11
- import { __decorate, __param, __metadata } from 'tslib';
6
+ import { inject, Injectable, InjectionToken, Inject, Pipe, importProvidersFrom, provideAppInitializer } from '@angular/core';
7
+ import { tap, finalize, shareReplay, catchError, map, switchMap, first, filter, scan, delay } from 'rxjs/operators';
8
+ import { EMPTY, of, forkJoin, Observable, ReplaySubject, Subject, BehaviorSubject, tap as tap$1, map as map$1, merge, fromEvent, filter as filter$1, debounceTime, throwError, switchMap as switchMap$1 } from 'rxjs';
12
9
  import { StorageMap } from '@ngx-pwa/local-storage';
10
+ import { __decorate, __param, __metadata } from 'tslib';
11
+ import { coerceBooleanProperty } from '@angular/cdk/coercion';
13
12
  import { toSignal } from '@angular/core/rxjs-interop';
14
13
  import { DeviceDetectorService } from 'ngx-device-detector';
15
- import { ToastService } from '@yuuvis/components/toast';
16
- import { registerLocaleData, DecimalPipe, PercentPipe, CurrencyPipe } from '@angular/common';
14
+ import { DOCUMENT, DecimalPipe, PercentPipe, CurrencyPipe, registerLocaleData } from '@angular/common';
15
+ import { FormGroup, FormControl } from '@angular/forms';
16
+ import * as i1$1 from '@angular/platform-browser';
17
17
  import localeAr from '@angular/common/locales/ar';
18
18
  import localeBn from '@angular/common/locales/bn';
19
19
  import localeDe from '@angular/common/locales/de';
@@ -62,22 +62,6 @@ import localeTr from '@angular/common/locales/tr';
62
62
  import localeUk from '@angular/common/locales/uk';
63
63
  import localeVi from '@angular/common/locales/vi';
64
64
  import localeZh from '@angular/common/locales/zh';
65
- import * as i1$2 from '@angular/platform-browser';
66
-
67
- /**
68
- * `YuvClientCoreSharedModule` sets up and re-exports the TranslateModule.
69
- */
70
- class YuvClientCoreSharedModule {
71
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
72
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, exports: [TranslateModule] }); }
73
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, imports: [TranslateModule] }); }
74
- }
75
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreSharedModule, decorators: [{
76
- type: NgModule,
77
- args: [{
78
- exports: [TranslateModule]
79
- }]
80
- }] });
81
65
 
82
66
  const TENANT_HEADER = 'X-ID-TENANT-NAME';
83
67
  var Situation;
@@ -795,109 +779,12 @@ var ApiBase;
795
779
  ApiBase["none"] = "";
796
780
  })(ApiBase || (ApiBase = {}));
797
781
 
798
- /**
799
- * @ignore
800
- */
801
- const CUSTOM_CONFIG = new InjectionToken('CUSTOM_CONFIG', {
802
- factory: () => ({ main: ['assets/_yuuvis/config/main.json'], translations: ['assets/_yuuvis/i18n/'] })
803
- });
804
- const CORE_CONFIG = new InjectionToken('CORE_CONFIG');
805
-
806
- /**
807
- * @ignore
808
- */
809
- let CoreConfig = class CoreConfig {
810
- constructor(__config) {
811
- this.main = ['assets/_yuuvis/config/main.json'];
812
- this.translations = ['assets/_yuuvis/i18n/'];
813
- this.environment = { production: true };
814
- Object.assign(this, __config);
815
- }
816
- };
817
- CoreConfig = __decorate([
818
- __param(0, Inject(CUSTOM_CONFIG)),
819
- __metadata("design:paramtypes", [CoreConfig])
820
- ], CoreConfig);
821
-
822
- class OidcService {
823
- constructor(oAuthConfig, config, oauthService) {
824
- this.oAuthConfig = oAuthConfig;
825
- this.config = config;
826
- this.oauthService = oauthService;
827
- }
828
- initOpenIdConnect(oidc) {
829
- oidc = this.config.oidc = oidc || this.config.oidc;
830
- if (oidc?.host) {
831
- oidc.host = oidc.host.endsWith('/') ? oidc.host.substring(0, -1) : oidc.host;
832
- }
833
- else
834
- return of(undefined);
835
- this.oAuthConfig.resourceServer = {
836
- sendAccessToken: true,
837
- allowedUrls: [oidc.host]
838
- };
839
- const authConfig = {
840
- strictDiscoveryDocumentValidation: false,
841
- issuer: oidc.issuer,
842
- redirectUri: oidc.redirectUri || window.location.origin + '/',
843
- postLogoutRedirectUri: oidc.postLogoutRedirectUri || window.location.origin + '/',
844
- clientId: oidc.clientId,
845
- responseType: 'code',
846
- scope: 'openid profile email offline_access',
847
- showDebugInformation: false,
848
- requireHttps: false,
849
- disableAtHashCheck: true,
850
- sessionCheckIntervall: 60000,
851
- sessionChecksEnabled: true,
852
- clearHashAfterLogin: false,
853
- silentRefreshTimeout: 5000 // For faster testing
854
- };
855
- this.oauthService.configure(authConfig);
856
- this.oauthService.setupAutomaticSilentRefresh();
857
- return from(this.oauthService.loadDiscoveryDocumentAndLogin()).pipe(map(() => this.config.oidc));
858
- }
859
- logout() {
860
- this.oauthService.logOut();
861
- }
862
- setupCookie(viewer, path, headers) {
863
- return new Observable((subscriber) => {
864
- let iframe = document.querySelector('body > iframe#__oidc');
865
- if (!iframe) {
866
- iframe = document.createElement('iframe');
867
- iframe.style.display = 'none';
868
- iframe.id = '__oidc';
869
- iframe.onload = () => {
870
- iframe.subscriber.next({});
871
- iframe.subscriber.complete();
872
- };
873
- }
874
- iframe.subscriber = subscriber;
875
- iframe.setAttribute('src', `${viewer}/download?setCookie=/&path=${encodeURIComponent(path)}&headers=${encodeURIComponent(JSON.stringify(headers))}`);
876
- document.body.appendChild(iframe);
877
- });
878
- }
879
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OidcService, deps: [{ token: i1.OAuthModuleConfig, optional: true }, { token: CORE_CONFIG }, { token: i1.OAuthService }], target: i0.ɵɵFactoryTarget.Injectable }); }
880
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OidcService, providedIn: 'root' }); }
881
- }
882
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OidcService, decorators: [{
883
- type: Injectable,
884
- args: [{
885
- providedIn: 'root'
886
- }]
887
- }], ctorParameters: () => [{ type: i1.OAuthModuleConfig, decorators: [{
888
- type: Optional
889
- }] }, { type: CoreConfig, decorators: [{
890
- type: Inject,
891
- args: [CORE_CONFIG]
892
- }] }, { type: i1.OAuthService }] });
893
-
894
782
  /**
895
783
  * Load and provide configuration for hole apllication while application is inizialized.
896
784
  */
897
785
  class ConfigService {
898
786
  constructor() {
899
787
  this.translate = inject(TranslateService);
900
- this.oidcService = inject(OidcService);
901
788
  }
902
789
  static { this.GLOBAL_RESOURCES = '/resources/config/'; }
903
790
  static PARSER(c) {
@@ -912,9 +799,6 @@ class ConfigService {
912
799
  static GLOBAL_RESOURCES_PATH(section = '', prefix = '') {
913
800
  return (prefix ? `/${prefix}` : '') + ConfigService.GLOBAL_RESOURCES + encodeURIComponent(section) + '?filter=resolved';
914
801
  }
915
- get oidc() {
916
- return this.oidcService.config?.oidc;
917
- }
918
802
  /**
919
803
  * Set during app init (see CoreInit)
920
804
  * @ignore
@@ -948,22 +832,6 @@ class ConfigService {
948
832
  return acc;
949
833
  }, {});
950
834
  }
951
- authUsesOpenIdConnect() {
952
- return !!this.oidc?.host && !!this.oidc?.tenant;
953
- }
954
- /**
955
- * OpenIdConnect authorization headers
956
- */
957
- getAuthHeaders(authorization = false) {
958
- if (this.authUsesOpenIdConnect()) {
959
- let headers = new HttpHeaders().set(TENANT_HEADER, this.oidc.tenant);
960
- if (authorization) {
961
- headers = headers.set('authorization', 'Bearer ' + localStorage.getItem('access_token'));
962
- }
963
- return headers;
964
- }
965
- return new HttpHeaders();
966
- }
967
835
  /**
968
836
  * Getter for the available client locales
969
837
  * @returns available client locales
@@ -974,7 +842,7 @@ class ConfigService {
974
842
  getApiBase(api = ApiBase.apiWeb, origin = false) {
975
843
  api = api || ApiBase.none;
976
844
  const href = api === ApiBase.none ? api : `/${api}`;
977
- const host = this.oidc?.host || (origin && location.origin) || '';
845
+ const host = (origin && location.origin) || '';
978
846
  return href.startsWith('http') ? href : host + href;
979
847
  }
980
848
  /**
@@ -988,10 +856,10 @@ class ConfigService {
988
856
  _getCoreConfig(key) {
989
857
  return this.cfg ? this.cfg.core[key] : undefined;
990
858
  }
991
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
992
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigService, providedIn: 'root' }); }
859
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
860
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ConfigService, providedIn: 'root' }); }
993
861
  }
994
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigService, decorators: [{
862
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ConfigService, decorators: [{
995
863
  type: Injectable,
996
864
  args: [{
997
865
  providedIn: 'root'
@@ -1044,14 +912,11 @@ class BackendService {
1044
912
  #cache;
1045
913
  #temp;
1046
914
  #headers;
1047
- authUsesOpenIdConnect() {
1048
- return this.configService.authUsesOpenIdConnect();
1049
- }
1050
915
  /**
1051
916
  * OpenIdConnect authorization headers
1052
917
  */
1053
918
  getAuthHeaders() {
1054
- return this.configService.getAuthHeaders();
919
+ return new HttpHeaders();
1055
920
  }
1056
921
  /**
1057
922
  * Add a new header.
@@ -1215,10 +1080,10 @@ class BackendService {
1215
1080
  .pipe(catchError((err) => of({ _error: err }))));
1216
1081
  return forkJoin(httpRequests);
1217
1082
  }
1218
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BackendService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1219
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BackendService, providedIn: 'root' }); }
1083
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BackendService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1084
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BackendService, providedIn: 'root' }); }
1220
1085
  }
1221
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BackendService, decorators: [{
1086
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BackendService, decorators: [{
1222
1087
  type: Injectable,
1223
1088
  args: [{ providedIn: 'root' }]
1224
1089
  }] });
@@ -1298,10 +1163,10 @@ class AppCacheService {
1298
1163
  setStorage(options) {
1299
1164
  return forkJoin(Object.keys(options || {}).map((k) => this.setItem(k, options[k])));
1300
1165
  }
1301
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1302
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppCacheService, providedIn: 'root' }); }
1166
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AppCacheService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1167
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AppCacheService, providedIn: 'root' }); }
1303
1168
  }
1304
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AppCacheService, decorators: [{
1169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AppCacheService, decorators: [{
1305
1170
  type: Injectable,
1306
1171
  args: [{
1307
1172
  providedIn: 'root'
@@ -1546,7 +1411,9 @@ class SystemService {
1546
1411
  }
1547
1412
  else {
1548
1413
  const iconUri = this.getObjectTypeIconUri(objectTypeId, fallback);
1549
- return this.#backend.get(iconUri).pipe(tap((icon) => (this.#iconCache[objectTypeId] = { uri: iconUri, icon })));
1414
+ return this.#backend.get(iconUri, ApiBase.none, {
1415
+ responseType: 'text'
1416
+ }).pipe(tap((icon) => (this.#iconCache[objectTypeId] = { uri: iconUri, icon })));
1550
1417
  }
1551
1418
  }
1552
1419
  /**
@@ -1765,10 +1632,30 @@ class SystemService {
1765
1632
  formModel: res
1766
1633
  }))))).pipe(map((res) => {
1767
1634
  const resMap = {};
1768
- res.filter((r) => this.#formHasElements(r.formModel)).forEach((r) => (resMap[r.id] = r.formModel));
1635
+ res
1636
+ .map((r) => (!r.formModel ? { ...r, formModel: this.#generateDefaultFormModel(r.id) } : r))
1637
+ .filter((r) => this.#formHasElements(r.formModel))
1638
+ .forEach((r) => (resMap[r.id] = r.formModel));
1769
1639
  return resMap;
1770
1640
  }));
1771
1641
  }
1642
+ /**
1643
+ * Generate a default form model for an object type. This is used when the backend does not return a form model.
1644
+ * @param typeId Object type ID or SOT ID
1645
+ */
1646
+ #generateDefaultFormModel(typeId) {
1647
+ const type = this.getObjectType(typeId) || this.getSecondaryObjectType(typeId);
1648
+ if (type) {
1649
+ return {
1650
+ id: type.id,
1651
+ label: this.getLocalizedLabel(type.id),
1652
+ elements: type.fields.map((f) => this.toFormElement(f)),
1653
+ title: this.getLocalizedLabel(type.id),
1654
+ description: this.getLocalizedDescription(type.id)
1655
+ };
1656
+ }
1657
+ return null;
1658
+ }
1772
1659
  /**
1773
1660
  * Get the form model of an object type.
1774
1661
  *
@@ -1885,10 +1772,10 @@ class SystemService {
1885
1772
  ])
1886
1773
  .pipe(map(([global, tenant]) => ({ global, tenant })));
1887
1774
  }
1888
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SystemService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1889
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SystemService, providedIn: 'root' }); }
1775
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SystemService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
1776
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SystemService, providedIn: 'root' }); }
1890
1777
  }
1891
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SystemService, decorators: [{
1778
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SystemService, decorators: [{
1892
1779
  type: Injectable,
1893
1780
  args: [{
1894
1781
  providedIn: 'root'
@@ -2139,10 +2026,10 @@ class SearchService {
2139
2026
  }
2140
2027
  return filter;
2141
2028
  }
2142
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2143
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchService, providedIn: 'root' }); }
2029
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2030
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SearchService, providedIn: 'root' }); }
2144
2031
  }
2145
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SearchService, decorators: [{
2032
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SearchService, decorators: [{
2146
2033
  type: Injectable,
2147
2034
  args: [{
2148
2035
  providedIn: 'root'
@@ -2179,10 +2066,10 @@ class EventService {
2179
2066
  on(...types) {
2180
2067
  return this.event$.pipe(filter((event) => event && !!types.find((t) => t === event.type)));
2181
2068
  }
2182
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2183
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventService, providedIn: 'root' }); }
2069
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EventService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2070
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EventService, providedIn: 'root' }); }
2184
2071
  }
2185
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: EventService, decorators: [{
2072
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: EventService, decorators: [{
2186
2073
  type: Injectable,
2187
2074
  args: [{
2188
2075
  providedIn: 'root'
@@ -2207,7 +2094,6 @@ var YuvEventType;
2207
2094
  * Service providing user account configurations.
2208
2095
  */
2209
2096
  class UserService {
2210
- // #GLOBAL_SETTINGS = '/users/globalsettings/';
2211
2097
  #USERS_SETTINGS;
2212
2098
  #DEFAULT_SETTINGS;
2213
2099
  #SETTINGS_SECTION_OBJECTCONFIG;
@@ -2216,15 +2102,13 @@ class UserService {
2216
2102
  /**
2217
2103
  * @ignore
2218
2104
  */
2219
- constructor(backend, translate, logger, system, oidc, eventService, config) {
2105
+ constructor(backend, translate, logger, system, eventService, config) {
2220
2106
  this.backend = backend;
2221
2107
  this.translate = translate;
2222
2108
  this.logger = logger;
2223
2109
  this.system = system;
2224
- this.oidc = oidc;
2225
2110
  this.eventService = eventService;
2226
2111
  this.config = config;
2227
- // #GLOBAL_SETTINGS = '/users/globalsettings/';
2228
2112
  this.#USERS_SETTINGS = '/users/settings/';
2229
2113
  this.#DEFAULT_SETTINGS = '/users/settings';
2230
2114
  this.#SETTINGS_SECTION_OBJECTCONFIG = 'object-config';
@@ -2364,13 +2248,8 @@ class UserService {
2364
2248
  return this.backend.get(`/idm/users/${id}`).pipe(map((user) => new YuvUser(user, this.#user.userSettings)));
2365
2249
  }
2366
2250
  logout(redirRoute) {
2367
- if (this.backend.authUsesOpenIdConnect()) {
2368
- this.oidc.logout();
2369
- }
2370
- else {
2371
- const redir = redirRoute ? `?redir=${redirRoute}` : '';
2372
- window.location.href = `${this.backend.getApiBase('logout')}${redir}`;
2373
- }
2251
+ const redir = redirRoute ? `?redir=${redirRoute}` : '';
2252
+ window.location.href = `${this.backend.getApiBase('logout')}${redir}`;
2374
2253
  }
2375
2254
  getSettings(section) {
2376
2255
  return this.#user ? this.backend.get(this.#USERS_SETTINGS + encodeURIComponent(section)) : of(null);
@@ -2381,15 +2260,15 @@ class UserService {
2381
2260
  loadObjectConfig() {
2382
2261
  return this.getSettings(this.#SETTINGS_SECTION_OBJECTCONFIG).pipe(catchError(() => of(undefined)));
2383
2262
  }
2384
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, deps: [{ token: BackendService }, { token: i1$1.TranslateService }, { token: Logger }, { token: SystemService }, { token: OidcService }, { token: EventService }, { token: ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2385
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, providedIn: 'root' }); }
2263
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UserService, deps: [{ token: BackendService }, { token: i1.TranslateService }, { token: Logger }, { token: SystemService }, { token: EventService }, { token: ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
2264
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UserService, providedIn: 'root' }); }
2386
2265
  }
2387
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserService, decorators: [{
2266
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UserService, decorators: [{
2388
2267
  type: Injectable,
2389
2268
  args: [{
2390
2269
  providedIn: 'root'
2391
2270
  }]
2392
- }], ctorParameters: () => [{ type: BackendService }, { type: i1$1.TranslateService }, { type: Logger }, { type: SystemService }, { type: OidcService }, { type: EventService }, { type: ConfigService }] });
2271
+ }], ctorParameters: () => [{ type: BackendService }, { type: i1.TranslateService }, { type: Logger }, { type: SystemService }, { type: EventService }, { type: ConfigService }] });
2393
2272
 
2394
2273
  /**
2395
2274
  * Service providing access to the systems audit entries. Audits can be seen as the history of
@@ -2509,10 +2388,10 @@ class AuditService {
2509
2388
  return -1;
2510
2389
  }
2511
2390
  }
2512
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2513
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditService, providedIn: 'root' }); }
2391
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuditService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2392
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuditService, providedIn: 'root' }); }
2514
2393
  }
2515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuditService, decorators: [{
2394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuditService, decorators: [{
2516
2395
  type: Injectable,
2517
2396
  args: [{
2518
2397
  providedIn: 'root'
@@ -2526,6 +2405,30 @@ var LoginStateName;
2526
2405
  LoginStateName["STATE_CANCELED"] = "login.canceled";
2527
2406
  })(LoginStateName || (LoginStateName = {}));
2528
2407
 
2408
+ /**
2409
+ * @ignore
2410
+ */
2411
+ const CUSTOM_CONFIG = new InjectionToken('CUSTOM_CONFIG', {
2412
+ factory: () => ({ main: ['assets/_yuuvis/config/main.json'], translations: ['assets/_yuuvis/i18n/'] })
2413
+ });
2414
+ const CORE_CONFIG = new InjectionToken('CORE_CONFIG');
2415
+
2416
+ /**
2417
+ * @ignore
2418
+ */
2419
+ let CoreConfig = class CoreConfig {
2420
+ constructor(__config) {
2421
+ this.main = ['assets/_yuuvis/config/main.json'];
2422
+ this.translations = ['assets/_yuuvis/i18n/'];
2423
+ this.environment = { production: true };
2424
+ Object.assign(this, __config);
2425
+ }
2426
+ };
2427
+ CoreConfig = __decorate([
2428
+ __param(0, Inject(CUSTOM_CONFIG)),
2429
+ __metadata("design:paramtypes", [CoreConfig])
2430
+ ], CoreConfig);
2431
+
2529
2432
  /**
2530
2433
  * Service managing the configuarions for object types.
2531
2434
  * Configuration means that you can pick certain fields
@@ -2555,11 +2458,14 @@ class ObjectConfigService {
2555
2458
  #defaultObjectConfigs;
2556
2459
  #registeredDefaultObjectConfigs;
2557
2460
  #objectConfigs;
2461
+ #isValidObjectConfig(soc) {
2462
+ return coerceBooleanProperty(soc && Object.hasOwn(soc, 'main') && Object.hasOwn(soc, 'buckets'));
2463
+ }
2558
2464
  // called on core init (auth.service -> initApp)
2559
2465
  init() {
2560
2466
  return this.#user.loadObjectConfig().pipe(tap$1((res) => {
2561
2467
  this.#getDefaultObjectConfig();
2562
- this.#objectConfigs = res || {
2468
+ this.#objectConfigs = (this.#isValidObjectConfig(res) && res) || {
2563
2469
  main: {},
2564
2470
  buckets: []
2565
2471
  };
@@ -2580,12 +2486,7 @@ class ObjectConfigService {
2580
2486
  });
2581
2487
  }
2582
2488
  }
2583
- return includeDefaults
2584
- ? {
2585
- ...defaults,
2586
- ...ocr
2587
- }
2588
- : { ...ocr };
2489
+ return includeDefaults ? { ...defaults, ...ocr } : { ...ocr };
2589
2490
  }));
2590
2491
  }
2591
2492
  /**
@@ -2612,8 +2513,9 @@ class ObjectConfigService {
2612
2513
  });
2613
2514
  }
2614
2515
  }
2615
- else
2516
+ else {
2616
2517
  this.#registeredDefaultObjectConfigs.main = { ...this.#registeredDefaultObjectConfigs.main, ...configs };
2518
+ }
2617
2519
  }
2618
2520
  unregisterDefaults(configs, bucket) {
2619
2521
  if (bucket) {
@@ -2743,20 +2645,29 @@ class ObjectConfigService {
2743
2645
  }
2744
2646
  : undefined;
2745
2647
  }
2746
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2747
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectConfigService, providedIn: 'root' }); }
2648
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectConfigService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2649
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectConfigService, providedIn: 'root' }); }
2748
2650
  }
2749
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ObjectConfigService, decorators: [{
2651
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectConfigService, decorators: [{
2750
2652
  type: Injectable,
2751
2653
  args: [{
2752
2654
  providedIn: 'root'
2753
2655
  }]
2754
2656
  }] });
2755
2657
 
2658
+ const YUV_USER = new InjectionToken('Currently logged in user', {
2659
+ factory: () => undefined
2660
+ });
2661
+ const provideUser = (user) => {
2662
+ return { provide: YUV_USER, useValue: user };
2663
+ };
2664
+
2756
2665
  /**
2757
2666
  * Service handling authentication related issues.
2758
2667
  */
2759
2668
  class AuthService {
2669
+ // user may have been fetched already in bootstrapping process
2670
+ #userToken;
2760
2671
  #eventService;
2761
2672
  #userService;
2762
2673
  #objectConfigService;
@@ -2769,6 +2680,8 @@ class AuthService {
2769
2680
  #authData;
2770
2681
  constructor(coreConfig) {
2771
2682
  this.coreConfig = coreConfig;
2683
+ // user may have been fetched already in bootstrapping process
2684
+ this.#userToken = inject(YUV_USER);
2772
2685
  this.#eventService = inject(EventService);
2773
2686
  this.#userService = inject(UserService);
2774
2687
  this.#objectConfigService = inject(ObjectConfigService);
@@ -2801,7 +2714,7 @@ class AuthService {
2801
2714
  * Fetch information about the user currently logged in
2802
2715
  */
2803
2716
  fetchUser() {
2804
- return this.#backend.get(this.USER_FETCH_URI).pipe(tap(() => {
2717
+ return (this.#userToken ? of(this.#userToken) : this.#backend.get(this.USER_FETCH_URI)).pipe(tap(() => {
2805
2718
  this.#authenticated = true;
2806
2719
  this.#authSource.next(this.#authenticated);
2807
2720
  }), switchMap((userJson) => this.#initApp(userJson)));
@@ -2854,10 +2767,10 @@ class AuthService {
2854
2767
  return this.#systemService.getSystemDefinition(this.#authData).pipe(switchMap(() => this.#objectConfigService.init()), map(() => currentUser));
2855
2768
  }));
2856
2769
  }
2857
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, deps: [{ token: CORE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
2858
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, providedIn: 'root' }); }
2770
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuthService, deps: [{ token: CORE_CONFIG }], target: i0.ɵɵFactoryTarget.Injectable }); }
2771
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuthService, providedIn: 'root' }); }
2859
2772
  }
2860
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthService, decorators: [{
2773
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuthService, decorators: [{
2861
2774
  type: Injectable,
2862
2775
  args: [{
2863
2776
  providedIn: 'root'
@@ -2909,10 +2822,10 @@ class BpmService {
2909
2822
  const pl = { ...payload, action: action };
2910
2823
  return this.#backend.put(`/bpm/tasks/${taskId}`, pl, ApiBase.apiWeb);
2911
2824
  }
2912
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BpmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2913
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BpmService, providedIn: 'root' }); }
2825
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BpmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2826
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BpmService, providedIn: 'root' }); }
2914
2827
  }
2915
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: BpmService, decorators: [{
2828
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: BpmService, decorators: [{
2916
2829
  type: Injectable,
2917
2830
  args: [{
2918
2831
  providedIn: 'root'
@@ -2920,10 +2833,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
2920
2833
  }] });
2921
2834
 
2922
2835
  class CatalogService {
2923
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2924
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogService, providedIn: 'root' }); }
2836
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: CatalogService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2837
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: CatalogService, providedIn: 'root' }); }
2925
2838
  }
2926
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: CatalogService, decorators: [{
2839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: CatalogService, decorators: [{
2927
2840
  type: Injectable,
2928
2841
  args: [{
2929
2842
  providedIn: 'root'
@@ -3015,10 +2928,10 @@ class ClipboardService {
3015
2928
  console.error('Failed to copy text: ', error);
3016
2929
  }
3017
2930
  }
3018
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3019
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, providedIn: 'root' }); }
2931
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ClipboardService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2932
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ClipboardService, providedIn: 'root' }); }
3020
2933
  }
3021
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ClipboardService, decorators: [{
2934
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ClipboardService, decorators: [{
3022
2935
  type: Injectable,
3023
2936
  args: [{
3024
2937
  providedIn: 'root'
@@ -3048,42 +2961,16 @@ class ConnectionService {
3048
2961
  this.connectionStateSource.next(this.currentState);
3049
2962
  });
3050
2963
  }
3051
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3052
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionService, providedIn: 'root' }); }
2964
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ConnectionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
2965
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ConnectionService, providedIn: 'root' }); }
3053
2966
  }
3054
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConnectionService, decorators: [{
2967
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ConnectionService, decorators: [{
3055
2968
  type: Injectable,
3056
2969
  args: [{
3057
2970
  providedIn: 'root'
3058
2971
  }]
3059
2972
  }], ctorParameters: () => [] });
3060
2973
 
3061
- /**
3062
- * Providing functions,that are are injected at application startup and executed during app initialization.
3063
- */
3064
- function init_moduleFnc(coreConfig, deviceService, logger, http, configService, authService) {
3065
- return () => {
3066
- authService.setInitialRequestUri();
3067
- deviceService.init();
3068
- return coreConfig.main
3069
- ? !Array.isArray(coreConfig.main)
3070
- ? of([coreConfig.main])
3071
- : forkJoin([...coreConfig.main].map((uri) => http.get(`${Utils.getBaseHref()}${uri}`).pipe(catchError((e) => {
3072
- logger.error('failed to catch config file', e);
3073
- return of({});
3074
- }), map((res) => res)))).pipe(
3075
- // switchMap((configs: YuvConfig[]) => configService.extendConfig(configs)),
3076
- tap((configs) => configService.extendConfig(configs)), switchMap(() => authService.initUser().pipe(catchError((e) => {
3077
- authService.initError = {
3078
- status: e.status,
3079
- key: e.error.error
3080
- };
3081
- return of(true);
3082
- }))))
3083
- : of(false);
3084
- };
3085
- }
3086
-
3087
2974
  var DeviceScreenOrientation;
3088
2975
  (function (DeviceScreenOrientation) {
3089
2976
  DeviceScreenOrientation["PORTRAIT"] = "portrait";
@@ -3219,16 +3106,46 @@ class DeviceService {
3219
3106
  // keyboard appears, so we dont't need to debounce
3220
3107
  return this.isMobile ? 0 : 500;
3221
3108
  }
3222
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3223
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, providedIn: 'root' }); }
3109
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DeviceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3110
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DeviceService, providedIn: 'root' }); }
3224
3111
  }
3225
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DeviceService, decorators: [{
3112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DeviceService, decorators: [{
3226
3113
  type: Injectable,
3227
3114
  args: [{
3228
3115
  providedIn: 'root'
3229
3116
  }]
3230
3117
  }], ctorParameters: () => [] });
3231
3118
 
3119
+ /**
3120
+ * Providing functions,that are are injected at application startup and executed during app initialization.
3121
+ */
3122
+ const init_moduleFnc = () => {
3123
+ const coreConfig = inject(CORE_CONFIG);
3124
+ const deviceService = inject(DeviceService);
3125
+ const logger = inject(Logger);
3126
+ const http = inject(HttpClient);
3127
+ const configService = inject(ConfigService);
3128
+ const authService = inject(AuthService);
3129
+ authService.setInitialRequestUri();
3130
+ deviceService.init();
3131
+ return coreConfig.main
3132
+ ? !Array.isArray(coreConfig.main)
3133
+ ? of([coreConfig.main])
3134
+ : forkJoin([...coreConfig.main].map((uri) => http.get(`${Utils.getBaseHref()}${uri}`).pipe(catchError((e) => {
3135
+ logger.error('failed to catch config file', e);
3136
+ return of({});
3137
+ }), map((res) => res)))).pipe(
3138
+ // switchMap((configs: YuvConfig[]) => configService.extendConfig(configs)),
3139
+ tap((configs) => configService.extendConfig(configs)), switchMap(() => authService.initUser().pipe(catchError((e) => {
3140
+ authService.initError = {
3141
+ status: e.status,
3142
+ key: e.error.error
3143
+ };
3144
+ return of(true);
3145
+ }))))
3146
+ : of(false);
3147
+ };
3148
+
3232
3149
  const transformResponse = () => map((res) => (res && res.body ? res.body.objects.map((val) => val) : null));
3233
3150
  /**
3234
3151
  * Service for providing upload of different object types into a client.
@@ -3327,8 +3244,10 @@ class UploadService {
3327
3244
  * @param label A label that will show up in the upload overlay dialog while uploading
3328
3245
  */
3329
3246
  #executeUpload(url, file, label, silent = false) {
3330
- const request = this.#createHttpRequest(url, { file }, true);
3331
- return silent ? this.#http.request(request) : this.#startUploadWithFile(request, label).pipe(transformResponse());
3247
+ const request = this.#createHttpRequest(url, { file }, !silent);
3248
+ return silent
3249
+ ? this.#http.request(request).pipe(filter((res) => res instanceof HttpResponse))
3250
+ : this.#startUploadWithFile(request, label).pipe(transformResponse());
3332
3251
  }
3333
3252
  /**
3334
3253
  * Prepare multipart upload.
@@ -3339,8 +3258,10 @@ class UploadService {
3339
3258
  */
3340
3259
  #executeMultipartUpload(url, file, label, data, silent = false) {
3341
3260
  const formData = this.#createFormData({ file, data });
3342
- const request = this.#createHttpRequest(url, { formData }, true);
3343
- return silent ? this.#http.request(request) : this.#startUploadWithFile(request, label).pipe(transformResponse());
3261
+ const request = this.#createHttpRequest(url, { formData }, !silent);
3262
+ return silent
3263
+ ? this.#http.request(request).pipe(filter((res) => res instanceof HttpResponse))
3264
+ : this.#startUploadWithFile(request, label).pipe(transformResponse());
3344
3265
  }
3345
3266
  #generateResult(result) {
3346
3267
  const objects = result.body?.objects;
@@ -3438,10 +3359,10 @@ class UploadService {
3438
3359
  this.#statusSource.next(this.#status);
3439
3360
  });
3440
3361
  }
3441
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3442
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadService, providedIn: 'root' }); }
3362
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UploadService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3363
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UploadService, providedIn: 'root' }); }
3443
3364
  }
3444
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadService, decorators: [{
3365
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UploadService, decorators: [{
3445
3366
  type: Injectable,
3446
3367
  args: [{
3447
3368
  providedIn: 'root'
@@ -3524,9 +3445,10 @@ class DmsService {
3524
3445
  * Upload (add/replace) content to a dms object.
3525
3446
  * @param objectId ID of the dms object to upload the file to
3526
3447
  * @param file The file to be uploaded
3448
+ * @param label A label that will show up in the upload overlay dialog while uploading
3527
3449
  */
3528
- uploadContent(objectId, file) {
3529
- return this.#uploadService.upload(this.getContentPath(objectId), file).pipe(this.triggerEvent(YuvEventType.DMS_OBJECT_UPDATED, objectId));
3450
+ uploadContent(objectId, file, label, silent) {
3451
+ return this.#uploadService.upload(this.getContentPath(objectId), file, label, silent).pipe(this.triggerEvent(YuvEventType.DMS_OBJECT_UPDATED, objectId));
3530
3452
  }
3531
3453
  /**
3532
3454
  * Path of dms object content file.
@@ -3864,10 +3786,10 @@ class DmsService {
3864
3786
  };
3865
3787
  return result;
3866
3788
  }
3867
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DmsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3868
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DmsService, providedIn: 'root' }); }
3789
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DmsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3790
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DmsService, providedIn: 'root' }); }
3869
3791
  }
3870
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DmsService, decorators: [{
3792
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: DmsService, decorators: [{
3871
3793
  type: Injectable,
3872
3794
  args: [{
3873
3795
  providedIn: 'root'
@@ -3894,16 +3816,203 @@ class IdmService {
3894
3816
  : [])
3895
3817
  ]));
3896
3818
  }
3897
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3898
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdmService, providedIn: 'root' }); }
3819
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IdmService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
3820
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IdmService, providedIn: 'root' }); }
3899
3821
  }
3900
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: IdmService, decorators: [{
3822
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: IdmService, decorators: [{
3901
3823
  type: Injectable,
3902
3824
  args: [{
3903
3825
  providedIn: 'root'
3904
3826
  }]
3905
3827
  }] });
3906
3828
 
3829
+ const YuvToastStyles = `
3830
+ .yuv-toast-container {
3831
+ --yuv-toast-container-padding: var(--ymt-spacing-m);
3832
+ --yuv-toast-success-background: var(--ymt-success-container);
3833
+ --yuv-toast-success-tone: var(--ymt-on-success-container);
3834
+ --yuv-toast-warning-background: var(--ymt-warning-container);
3835
+ --yuv-toast-warning-tone: var(--ymt-on-warning-container);
3836
+ --yuv-toast-error-background: var(--ymt-danger-container);
3837
+ --yuv-toast-error-tone: var(--ymt-on-danger-container);
3838
+
3839
+ position: fixed;
3840
+ z-index: 1;
3841
+ display: flex;
3842
+ flex-flow: column;
3843
+ align-items: center;
3844
+ justify-items: center;
3845
+ justify-content: center;
3846
+ gap: 1vh;
3847
+ pointer-events: none;
3848
+ }
3849
+ .yuv-toast-container.top {
3850
+ inset-block-start: 0;
3851
+ padding-block-start: var(--yuv-toast-container-padding);
3852
+ flex-direction: column-reverse;
3853
+ }
3854
+ .yuv-toast-container.top.center {
3855
+ inset-inline: 0;
3856
+ }
3857
+ .yuv-toast-container.bottom {
3858
+ inset-block-end: 0;
3859
+ padding-block-end: var(--yuv-toast-container-padding);
3860
+ }
3861
+ .yuv-toast-container.bottom.center {
3862
+ inset-inline: 0;
3863
+ }
3864
+ .yuv-toast-container.end {
3865
+ padding-inline-end: var(--yuv-toast-container-padding);
3866
+ align-items: end;
3867
+ right:0;
3868
+ }
3869
+ .yuv-toast-container.start {
3870
+ padding-inline-start: var(--yuv-toast-container-padding);
3871
+ align-items: start;
3872
+ left:0;
3873
+ }
3874
+
3875
+ .yuv-toast {
3876
+ --_duration: 3s;
3877
+ --_bg-lightness: 90%;
3878
+ --_travel-distance: 0;
3879
+
3880
+ font-family: system-ui, sans-serif;
3881
+ color: var(--ymt-text-color);
3882
+ background: hsl(0 0% var(--_bg-lightness) / 90%);
3883
+ pointer-events: all;
3884
+ line-height: 1.5em;
3885
+
3886
+ max-inline-size: min(50ch, 90vw);
3887
+ padding-block: .5ch;
3888
+ padding-inline: 1ch;
3889
+ border-radius: 3px;
3890
+ font-size: 1rem;
3891
+
3892
+ will-change: transform;
3893
+ animation:
3894
+ fade-in .3s ease,
3895
+ slide-in .3s ease,
3896
+ fade-out .3s ease var(--_duration);
3897
+
3898
+ @media (--dark) {
3899
+ color: white;
3900
+ --_bg-lightness: 20%;
3901
+ }
3902
+
3903
+ @media (--motionOK) {
3904
+ --_travel-distance: 5vh;
3905
+ }
3906
+ }
3907
+
3908
+ .yuv-toast strong {
3909
+ display: block;
3910
+ }
3911
+
3912
+ .yuv--toast.success {
3913
+ background-color: var(--yuv-toast-success-background);
3914
+ color: var(--yuv-toast-success-tone);
3915
+ }
3916
+ .yuv-toast.warning {
3917
+ background-color: var(--yuv-toast-warning-background);
3918
+ color: var(--yuv-toast-warning-tone);
3919
+ }
3920
+
3921
+ .yuv-toast.error {
3922
+ background-color: var(--yuv-toast-error-background);
3923
+ color: var(--yuv-toast-error-tone);
3924
+ }
3925
+
3926
+ .yuv-toast:hover {
3927
+ animation-play-state: paused;
3928
+ }
3929
+
3930
+ @keyframes fade-in {
3931
+ from { opacity: 0 }
3932
+ }
3933
+
3934
+ @keyframes fade-out {
3935
+ to { opacity: 0 }
3936
+ }
3937
+
3938
+ @keyframes slide-in {
3939
+ from { transform: translateY(var(--_travel-distance, 10px)) }
3940
+ }
3941
+ `;
3942
+
3943
+ class ToastService {
3944
+ constructor(document) {
3945
+ this.document = document;
3946
+ this._init();
3947
+ }
3948
+ success(message, title, options) {
3949
+ return this.toast(message, title, { ...options, level: 'success' });
3950
+ }
3951
+ warning(message, title, options) {
3952
+ return this.toast(message, title, { ...options, level: 'warning' });
3953
+ }
3954
+ info(message, title, options) {
3955
+ return this.toast(message, title, { ...options, level: 'info' });
3956
+ }
3957
+ error(message, title, options) {
3958
+ return this.toast(message, title, { ...options, level: 'error' });
3959
+ }
3960
+ toast(message, title, options) {
3961
+ const toast = this._createToast(message, title, options);
3962
+ if (options?.duration !== undefined)
3963
+ toast.style.setProperty('--_duration', `${options.duration}s`);
3964
+ this._addToast(toast, options);
3965
+ return new Promise(async (resolve, reject) => {
3966
+ await Promise.allSettled(toast.getAnimations().map((animation) => animation.finished));
3967
+ const container = this._getToastContainer(options);
3968
+ container.removeChild(toast);
3969
+ if (container.children.length === 0)
3970
+ container.remove();
3971
+ resolve();
3972
+ });
3973
+ }
3974
+ _createToast(message, title, options) {
3975
+ const node = document.createElement('output');
3976
+ node.innerHTML = `${title ? `<strong>${title}</strong>` : ''}${message}`;
3977
+ node.classList.add('yuv-toast');
3978
+ if (options?.level)
3979
+ node.classList.add(options.level);
3980
+ node.setAttribute('role', 'status');
3981
+ node.setAttribute('aria-live', 'polite');
3982
+ return node;
3983
+ }
3984
+ _addToast(toast, options) {
3985
+ const container = this._getToastContainer(options);
3986
+ container.appendChild(toast);
3987
+ }
3988
+ _getToastContainer(options) {
3989
+ const pos = options?.position || 'bottom-center';
3990
+ let container = this.document.querySelector(`html > section.${pos.split('-').join('.')}`);
3991
+ if (!container) {
3992
+ container = this.document.createElement('section');
3993
+ container.classList.add('yuv-toast-container', ...pos.split('-'));
3994
+ this.document.firstElementChild.insertBefore(container, this.document.body);
3995
+ }
3996
+ return container;
3997
+ }
3998
+ _init() {
3999
+ const style = this.document.createElement('style');
4000
+ style.innerHTML = YuvToastStyles;
4001
+ this.document.head.appendChild(style);
4002
+ }
4003
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ToastService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable }); }
4004
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ToastService, providedIn: 'root' }); }
4005
+ }
4006
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ToastService, decorators: [{
4007
+ type: Injectable,
4008
+ args: [{
4009
+ providedIn: 'root'
4010
+ }]
4011
+ }], ctorParameters: () => [{ type: Document, decorators: [{
4012
+ type: Inject,
4013
+ args: [DOCUMENT]
4014
+ }] }] });
4015
+
3907
4016
  /**
3908
4017
  * Shows a message after completing each action.
3909
4018
  */
@@ -4019,10 +4128,10 @@ class NotificationService {
4019
4128
  }
4020
4129
  }
4021
4130
  }
4022
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4023
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
4131
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4132
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NotificationService, providedIn: 'root' }); }
4024
4133
  }
4025
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NotificationService, decorators: [{
4134
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NotificationService, decorators: [{
4026
4135
  type: Injectable,
4027
4136
  args: [{
4028
4137
  providedIn: 'root'
@@ -4137,10 +4246,10 @@ class PendingChangesService {
4137
4246
  this.#tasks = [];
4138
4247
  this.#tasksSource.next(this.#tasks);
4139
4248
  }
4140
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4141
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesService, providedIn: 'root' }); }
4249
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PendingChangesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4250
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PendingChangesService, providedIn: 'root' }); }
4142
4251
  }
4143
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesService, decorators: [{
4252
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PendingChangesService, decorators: [{
4144
4253
  type: Injectable,
4145
4254
  args: [{
4146
4255
  providedIn: 'root'
@@ -4158,10 +4267,10 @@ class PendingChangesGuard {
4158
4267
  // if there are no pending changes, just allow deactivation; else confirm first
4159
4268
  return !this.pendingChanges.check(component);
4160
4269
  }
4161
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesGuard, deps: [{ token: PendingChangesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4162
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesGuard, providedIn: 'root' }); }
4270
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PendingChangesGuard, deps: [{ token: PendingChangesService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4271
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PendingChangesGuard, providedIn: 'root' }); }
4163
4272
  }
4164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PendingChangesGuard, decorators: [{
4273
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PendingChangesGuard, decorators: [{
4165
4274
  type: Injectable,
4166
4275
  args: [{
4167
4276
  providedIn: 'root'
@@ -4212,10 +4321,10 @@ class PredictionService {
4212
4321
  }
4213
4322
  }), {})));
4214
4323
  }
4215
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PredictionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4216
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PredictionService, providedIn: 'root' }); }
4324
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PredictionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4325
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PredictionService, providedIn: 'root' }); }
4217
4326
  }
4218
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PredictionService, decorators: [{
4327
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: PredictionService, decorators: [{
4219
4328
  type: Injectable,
4220
4329
  args: [{
4221
4330
  providedIn: 'root'
@@ -4273,10 +4382,10 @@ class RetentionService {
4273
4382
  else
4274
4383
  return { underRetention: false };
4275
4384
  }
4276
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RetentionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4277
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RetentionService, providedIn: 'root' }); }
4385
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RetentionService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4386
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RetentionService, providedIn: 'root' }); }
4278
4387
  }
4279
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: RetentionService, decorators: [{
4388
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: RetentionService, decorators: [{
4280
4389
  type: Injectable,
4281
4390
  args: [{
4282
4391
  providedIn: 'root'
@@ -4462,16 +4571,107 @@ class SessionStorageService {
4462
4571
  }
4463
4572
  return res;
4464
4573
  }
4465
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4466
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionStorageService, providedIn: 'root' }); }
4574
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SessionStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4575
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SessionStorageService, providedIn: 'root' }); }
4467
4576
  }
4468
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SessionStorageService, decorators: [{
4577
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SessionStorageService, decorators: [{
4469
4578
  type: Injectable,
4470
4579
  args: [{
4471
4580
  providedIn: 'root'
4472
4581
  }]
4473
4582
  }], ctorParameters: () => [] });
4474
4583
 
4584
+ class ObjectFormControlWrapper extends FormGroup {
4585
+ }
4586
+ /**
4587
+ * @ignore
4588
+ * Extension of the default angular form group,
4589
+ */
4590
+ class ObjectFormGroup extends FormGroup {
4591
+ }
4592
+ /**
4593
+ * @ignore
4594
+ * Extension of the default angular form control,
4595
+ */
4596
+ class ObjectFormControl extends FormControl {
4597
+ set _eoFormElement(v) {
4598
+ this.__eoFormElement = v;
4599
+ }
4600
+ get _eoFormElement() {
4601
+ return this.__eoFormElement;
4602
+ }
4603
+ }
4604
+
4605
+ /**
4606
+ * Providing an error message when a translation string for an object wasn't found
4607
+ */
4608
+ class ObjectFormTranslateService {
4609
+ constructor() {
4610
+ this.translate = inject(TranslateService);
4611
+ }
4612
+ /**
4613
+ * Set the error label if a translation for this string wasn't provided
4614
+ * @param error - error message about a missed translation key
4615
+ * @param params
4616
+ */
4617
+ getErrorLabel(error, params) {
4618
+ switch (error) {
4619
+ case 'daterange':
4620
+ return this.translate.instant('yuv.object-form-element.error.daterange.invalid', params);
4621
+ case 'daterangeorder':
4622
+ return this.translate.instant('yuv.object-form-element.error.daterangeorder.invalid', params);
4623
+ case 'numberrange':
4624
+ return this.translate.instant('yuv.object-form-element.error.numberrange.invalid', params);
4625
+ case 'numberrangeorder':
4626
+ return this.translate.instant('yuv.object-form-element.error.numberrangeorder.invalid', params);
4627
+ case 'number':
4628
+ return this.translate.instant('yuv.object-form-element.error.number', params);
4629
+ case 'precision':
4630
+ return this.translate.instant('yuv.object-form-element.error.number.precision', params);
4631
+ case 'scale':
4632
+ return this.translate.instant('yuv.object-form-element.error.number.scale', params);
4633
+ case 'regex':
4634
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
4635
+ case 'pattern':
4636
+ return this.translate.instant('yuv.object-form-element.error.string.regex.nomatch', params);
4637
+ case 'classificationemail':
4638
+ return this.translate.instant('yuv.object-form-element.error.string.classification.email', params);
4639
+ case 'classificationphone':
4640
+ return this.translate.instant('yuv.object-form-element.error.string.classification.phone', params);
4641
+ case 'classificationurl':
4642
+ return this.translate.instant('yuv.object-form-element.error.string.classification.url', params);
4643
+ case 'onlyWhitespaces':
4644
+ return this.translate.instant('yuv.object-form-element.error.string.whitespaces', params);
4645
+ case 'datecontrol':
4646
+ return this.translate.instant('yuv.object-form-element.error.date.invalid', params);
4647
+ case 'required':
4648
+ return this.translate.instant('yuv.object-form-element.error.required', params);
4649
+ case 'maxlength':
4650
+ return this.translate.instant('yuv.object-form-element.error.maxlength', params);
4651
+ case 'minlength':
4652
+ return this.translate.instant('yuv.object-form-element.error.minlength', params);
4653
+ case 'minmax':
4654
+ return this.translate.instant('yuv.object-form-element.error.minmax', params);
4655
+ case 'minvalue':
4656
+ return this.translate.instant('yuv.object-form-element.error.minvalue', params);
4657
+ case 'maxvalue':
4658
+ return this.translate.instant('yuv.object-form-element.error.maxvalue', params);
4659
+ case 'empty':
4660
+ return this.translate.instant('yuv.object-form-element.recent-activities.list.empty', params);
4661
+ default:
4662
+ return this.translate.instant(error, params);
4663
+ }
4664
+ }
4665
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectFormTranslateService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4666
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectFormTranslateService, providedIn: 'root' }); }
4667
+ }
4668
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: ObjectFormTranslateService, decorators: [{
4669
+ type: Injectable,
4670
+ args: [{
4671
+ providedIn: 'root'
4672
+ }]
4673
+ }] });
4674
+
4475
4675
  /**
4476
4676
  * Service providing user related remote storage. This service is used load and
4477
4677
  * store user related data from any device.
@@ -4496,10 +4696,10 @@ class UserStorageService {
4496
4696
  #sanitizeSection(section) {
4497
4697
  return encodeURIComponent(section);
4498
4698
  }
4499
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4500
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserStorageService, providedIn: 'root' }); }
4699
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UserStorageService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4700
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UserStorageService, providedIn: 'root' }); }
4501
4701
  }
4502
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UserStorageService, decorators: [{
4702
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: UserStorageService, decorators: [{
4503
4703
  type: Injectable,
4504
4704
  args: [{
4505
4705
  providedIn: 'root'
@@ -4507,368 +4707,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
4507
4707
  }] });
4508
4708
 
4509
4709
  /**
4510
- * Prevent app from running into 401 issues related to gateway timeouts.
4710
+ * @ignore
4511
4711
  */
4512
- class AuthInterceptor {
4513
- /**
4514
- * @ignore
4515
- */
4516
- #userService = inject(UserService);
4517
- #auth = inject(AuthService);
4518
- #backend = inject(BackendService);
4519
- // readonly #oauthService = inject(OAuthService);
4520
- intercept(request, next) {
4521
- return next.handle(request).pipe(tap({
4522
- next: (event) => {
4523
- if (event instanceof HttpResponse) {
4524
- // do stuff with response if you want
4525
- }
4526
- },
4527
- error: (error) => {
4528
- if (error instanceof HttpErrorResponse || error.isHttpErrorResponse) {
4529
- if (error.status === 401) {
4530
- if (this.#backend.authUsesOpenIdConnect()) {
4531
- // this.#oauthService.initLoginFlow();
4532
- }
4533
- else {
4534
- this.#auth.logout();
4535
- this.#userService.logout();
4536
- }
4537
- }
4538
- }
4539
- }
4540
- }));
4712
+ class LocaleDecimalPipe extends DecimalPipe {
4713
+ constructor(translate) {
4714
+ super(translate.currentLang || 'en');
4715
+ this.translate = translate;
4716
+ }
4717
+ transform(value, digits, locale) {
4718
+ return super.transform(value, digits, locale || this.translate.currentLang || 'en');
4541
4719
  }
4542
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4543
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthInterceptor, providedIn: 'root' }); }
4720
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleDecimalPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4721
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: LocaleDecimalPipe, isStandalone: true, name: "localeDecimal" }); }
4544
4722
  }
4545
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: AuthInterceptor, decorators: [{
4546
- type: Injectable,
4723
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleDecimalPipe, decorators: [{
4724
+ type: Pipe,
4547
4725
  args: [{
4548
- providedIn: 'root'
4726
+ name: 'localeDecimal',
4727
+ standalone: true
4549
4728
  }]
4550
- }] });
4551
-
4729
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
4552
4730
  /**
4553
- * Http Offline interceptor trys to serving offline content for method/url
4731
+ * @ignore
4554
4732
  */
4555
- class OfflineInterceptor {
4556
- constructor(connectionService) {
4557
- this.connectionService = connectionService;
4558
- this.offline = false;
4559
- this.connectionService.connection$.subscribe((connectionState) => {
4560
- this.offline = !connectionState.isOnline;
4561
- });
4733
+ class LocalePercentPipe extends PercentPipe {
4734
+ constructor(translate) {
4735
+ super(translate.currentLang || 'en');
4736
+ this.translate = translate;
4562
4737
  }
4563
- intercept(request, next) {
4564
- return next.handle(request);
4738
+ transform(value, digits, locale) {
4739
+ return super.transform(value, digits, locale || this.translate.currentLang || 'en');
4565
4740
  }
4566
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineInterceptor, deps: [{ token: ConnectionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4567
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineInterceptor, providedIn: 'root' }); }
4741
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocalePercentPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4742
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: LocalePercentPipe, isStandalone: true, name: "localePercent", pure: false }); }
4568
4743
  }
4569
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OfflineInterceptor, decorators: [{
4570
- type: Injectable,
4744
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocalePercentPipe, decorators: [{
4745
+ type: Pipe,
4571
4746
  args: [{
4572
- providedIn: 'root'
4747
+ name: 'localePercent',
4748
+ pure: false,
4749
+ standalone: true
4573
4750
  }]
4574
- }], ctorParameters: () => [{ type: ConnectionService }] });
4575
-
4751
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
4576
4752
  /**
4577
- * Handles missing translations
4578
4753
  * @ignore
4579
4754
  */
4580
- class EoxMissingTranslationHandler {
4581
- handle(params) {
4582
- return '!missing key: ' + params.key;
4755
+ class LocaleCurrencyPipe extends CurrencyPipe {
4756
+ constructor(translate) {
4757
+ super(translate.currentLang || 'en');
4758
+ this.translate = translate;
4759
+ }
4760
+ transform(value, currencyCode, display, digits, locale) {
4761
+ return super.transform(value, currencyCode, display, digits, locale || this.translate.currentLang || 'en');
4583
4762
  }
4763
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleCurrencyPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4764
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: LocaleCurrencyPipe, isStandalone: true, name: "localeCurrency" }); }
4584
4765
  }
4585
-
4586
- /**
4587
- * Loader that fetches translations based on the configured locations
4588
- * @ignore
4589
- */
4590
- let EoxTranslateJsonLoader = class EoxTranslateJsonLoader {
4591
- constructor(http, config) {
4592
- this.http = http;
4593
- this.config = config;
4594
- registerLocaleData(localeDe, 'de', localeExtraDe); // German
4595
- registerLocaleData(localeAr, 'ar', localeExtraAr); // Arabic
4596
- registerLocaleData(localeEs, 'es', localeExtraEs); // Spanish
4597
- registerLocaleData(localePt, 'pt', localeExtraPt); // Portuguese
4598
- registerLocaleData(localeFr, 'fr', localeExtraFr); // French
4599
- registerLocaleData(localeZh, 'zh', localeExtraZh); // Chinese
4600
- registerLocaleData(localeLv, 'lv', localeExtraLv); // Latvian
4601
- registerLocaleData(localeRu, 'ru', localeExtraRu); // Russian
4602
- registerLocaleData(localeIt, 'it', localeExtraIt); // Italian
4603
- registerLocaleData(localeSk, 'sk', localeExtraSk); // Slovak
4604
- registerLocaleData(localePl, 'pl', localeExtraPl); // Polish
4605
- registerLocaleData(localeUk, 'uk', localeExtraUk); // Ukrainian
4606
- registerLocaleData(localeJa, 'ja', localeExtraJa); // Japanese
4607
- registerLocaleData(localeKo, 'ko', localeExtraKo); // Korean
4608
- registerLocaleData(localeHi, 'hi', localeExtraHi); // Hindi
4609
- registerLocaleData(localeBn, 'bn', localeExtraBn); // Bengalese
4610
- registerLocaleData(localeVi, 'vi', localeExtraVi); // Vietnamese
4611
- registerLocaleData(localeTr, 'tr', localeExtraTr); // Turkish
4612
- registerLocaleData(localeNl, 'nl', localeExtraNl); // Dutch
4613
- registerLocaleData(localeNb, 'nb', localeExtraNb); // Norwegian
4614
- registerLocaleData(localeTh, 'th', localeExtraTh); // Thai
4615
- registerLocaleData(localeFi, 'fi', localeExtraFi); // Finnish
4616
- registerLocaleData(localeSv, 'sv', localeExtraSv); // Swedish
4617
- registerLocaleData(localeDeCh, 'de-CH', localeExtraDeCh); // German Swiss
4618
- }
4619
- /**
4620
- *
4621
- * @param string lang
4622
- * @returns Observable<Object>
4623
- */
4624
- getTranslation(lang) {
4625
- const t = this.config.translations.map((path) => this.loadTranslationFile(path, lang));
4626
- return forkJoin(t).pipe(map((res) => res.reduce((acc, x) => Object.assign(acc, x), {})));
4627
- }
4628
- loadTranslationFile(path, lang) {
4629
- return this.http.get(`${Utils.getBaseHref()}${path}${lang}.json`).pipe(catchError((e) => {
4630
- // ISO codes with more than 2 characters are sub-languages like de-CH.
4631
- // If there is no translation file for that sub-language we'll try to load
4632
- // the file for the base language (in this case de).
4633
- return lang.length > 2 ? this.loadTranslationFile(path, lang.substring(0, 2)) : of({});
4634
- }));
4635
- }
4636
- };
4637
- EoxTranslateJsonLoader = __decorate([
4638
- __param(1, Inject(CORE_CONFIG)),
4639
- __metadata("design:paramtypes", [HttpClient, CoreConfig])
4640
- ], EoxTranslateJsonLoader);
4641
-
4642
- /**
4643
- * @ignore
4644
- */
4645
- class LoggerConsoleService {
4646
- constructor(config) {
4647
- this.config = config;
4648
- this.styles = {
4649
- info: 'color:blue',
4650
- debug: 'background: orange',
4651
- warn: 'background: rgba(255,0,0,.2);color: red',
4652
- error: 'background: red; color: #fff'
4653
- };
4654
- }
4655
- apply(fn, args) {
4656
- args = [`%c${fn}:`, 'font-family: monospace; font-size: 10px; padding: 2px 4px;' + this.styles[fn], ...args];
4657
- return this.shouldLog(fn) ? console && console[fn] && console[fn](...args) : null;
4658
- }
4659
- debug(...args) {
4660
- this.apply('debug', args);
4661
- }
4662
- error(...args) {
4663
- this.apply('error', args);
4664
- }
4665
- info(...args) {
4666
- this.apply('info', args);
4667
- }
4668
- log(...args) {
4669
- this.apply('log', args);
4670
- }
4671
- warn(...args) {
4672
- this.apply('warn', args);
4673
- }
4674
- shouldLog(level) {
4675
- let should = false;
4676
- const cfg = this.config.get('core.logging');
4677
- if (!cfg || !cfg.level)
4678
- return false;
4679
- switch (cfg.level) {
4680
- case 'debug': {
4681
- should = true;
4682
- break;
4683
- }
4684
- case 'error': {
4685
- should = ['error'].includes(level);
4686
- break;
4687
- }
4688
- case 'warn': {
4689
- should = ['warn', 'error'].includes(level);
4690
- break;
4691
- }
4692
- case 'info': {
4693
- should = ['info', 'warn', 'error'].includes(level);
4694
- break;
4695
- }
4696
- default: {
4697
- }
4698
- }
4699
- return should;
4700
- }
4701
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggerConsoleService, deps: [{ token: ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
4702
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggerConsoleService, providedIn: 'root' }); }
4703
- }
4704
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LoggerConsoleService, decorators: [{
4705
- type: Injectable,
4706
- args: [{
4707
- providedIn: 'root'
4708
- }]
4709
- }], ctorParameters: () => [{ type: ConfigService }] });
4710
-
4711
- function storageFactory() {
4712
- return localStorage;
4713
- }
4714
- /**
4715
- * `YuvClientCoreModule` provides a bunch of services to interact with a yuuvis backend.
4716
- *
4717
- *
4718
- */
4719
- class YuvClientCoreModule {
4720
- /**
4721
- * @ignore
4722
- */
4723
- constructor(parentModule) {
4724
- if (parentModule) {
4725
- throw new Error('YuvClientCoreModule is already loaded.');
4726
- }
4727
- }
4728
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, deps: [{ token: YuvClientCoreModule, optional: true, skipSelf: true }], target: i0.ɵɵFactoryTarget.NgModule }); }
4729
- static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, imports: [i1.OAuthModule, i1$1.TranslateModule], exports: [YuvClientCoreSharedModule] }); }
4730
- static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, providers: [
4731
- { provide: Logger, useClass: LoggerConsoleService },
4732
- { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
4733
- { provide: HTTP_INTERCEPTORS, useClass: OfflineInterceptor, multi: true },
4734
- { provide: CORE_CONFIG, useClass: CoreConfig, deps: [CUSTOM_CONFIG] },
4735
- {
4736
- provide: APP_INITIALIZER,
4737
- useFactory: init_moduleFnc,
4738
- multi: true,
4739
- deps: [CORE_CONFIG, DeviceService, Logger, HttpClient, ConfigService, AuthService]
4740
- },
4741
- /**
4742
- * overriding translate modules defaults
4743
- * this works because providers are singletons
4744
- */
4745
- {
4746
- provide: TranslateLoader,
4747
- useClass: EoxTranslateJsonLoader,
4748
- deps: [HttpClient, CORE_CONFIG]
4749
- },
4750
- {
4751
- provide: MissingTranslationHandler,
4752
- useClass: EoxMissingTranslationHandler
4753
- },
4754
- { provide: OAuthStorage, useFactory: storageFactory },
4755
- provideHttpClient(withInterceptorsFromDi())
4756
- ], imports: [OAuthModule.forRoot({
4757
- resourceServer: {
4758
- sendAccessToken: false,
4759
- allowedUrls: []
4760
- }
4761
- }),
4762
- TranslateModule.forRoot(), YuvClientCoreSharedModule] }); }
4763
- }
4764
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: YuvClientCoreModule, decorators: [{
4765
- type: NgModule,
4766
- args: [{
4767
- exports: [YuvClientCoreSharedModule],
4768
- imports: [OAuthModule.forRoot({
4769
- resourceServer: {
4770
- sendAccessToken: false,
4771
- allowedUrls: []
4772
- }
4773
- }),
4774
- TranslateModule.forRoot()], providers: [
4775
- { provide: Logger, useClass: LoggerConsoleService },
4776
- { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
4777
- { provide: HTTP_INTERCEPTORS, useClass: OfflineInterceptor, multi: true },
4778
- { provide: CORE_CONFIG, useClass: CoreConfig, deps: [CUSTOM_CONFIG] },
4779
- {
4780
- provide: APP_INITIALIZER,
4781
- useFactory: init_moduleFnc,
4782
- multi: true,
4783
- deps: [CORE_CONFIG, DeviceService, Logger, HttpClient, ConfigService, AuthService]
4784
- },
4785
- /**
4786
- * overriding translate modules defaults
4787
- * this works because providers are singletons
4788
- */
4789
- {
4790
- provide: TranslateLoader,
4791
- useClass: EoxTranslateJsonLoader,
4792
- deps: [HttpClient, CORE_CONFIG]
4793
- },
4794
- {
4795
- provide: MissingTranslationHandler,
4796
- useClass: EoxMissingTranslationHandler
4797
- },
4798
- { provide: OAuthStorage, useFactory: storageFactory },
4799
- provideHttpClient(withInterceptorsFromDi())
4800
- ]
4801
- }]
4802
- }], ctorParameters: () => [{ type: YuvClientCoreModule, decorators: [{
4803
- type: Optional
4804
- }, {
4805
- type: SkipSelf
4806
- }] }] });
4807
-
4808
- /**
4809
- * @ignore
4810
- */
4811
- class LocaleDecimalPipe extends DecimalPipe {
4812
- constructor(translate) {
4813
- super(translate.currentLang || 'en');
4814
- this.translate = translate;
4815
- }
4816
- transform(value, digits, locale) {
4817
- return super.transform(value, digits, locale || this.translate.currentLang || 'en');
4818
- }
4819
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDecimalPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4820
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleDecimalPipe, isStandalone: true, name: "localeDecimal" }); }
4821
- }
4822
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDecimalPipe, decorators: [{
4823
- type: Pipe,
4824
- args: [{
4825
- name: 'localeDecimal',
4826
- standalone: true
4827
- }]
4828
- }], ctorParameters: () => [{ type: i1$1.TranslateService }] });
4829
- /**
4830
- * @ignore
4831
- */
4832
- class LocalePercentPipe extends PercentPipe {
4833
- constructor(translate) {
4834
- super(translate.currentLang || 'en');
4835
- this.translate = translate;
4836
- }
4837
- transform(value, digits, locale) {
4838
- return super.transform(value, digits, locale || this.translate.currentLang || 'en');
4839
- }
4840
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalePercentPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4841
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocalePercentPipe, isStandalone: true, name: "localePercent", pure: false }); }
4842
- }
4843
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocalePercentPipe, decorators: [{
4844
- type: Pipe,
4845
- args: [{
4846
- name: 'localePercent',
4847
- pure: false,
4848
- standalone: true
4849
- }]
4850
- }], ctorParameters: () => [{ type: i1$1.TranslateService }] });
4851
- /**
4852
- * @ignore
4853
- */
4854
- class LocaleCurrencyPipe extends CurrencyPipe {
4855
- constructor(translate) {
4856
- super(translate.currentLang || 'en');
4857
- this.translate = translate;
4858
- }
4859
- transform(value, currencyCode, display, digits, locale) {
4860
- return super.transform(value, currencyCode, display, digits, locale || this.translate.currentLang || 'en');
4861
- }
4862
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleCurrencyPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4863
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleCurrencyPipe, isStandalone: true, name: "localeCurrency" }); }
4864
- }
4865
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleCurrencyPipe, decorators: [{
4766
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleCurrencyPipe, decorators: [{
4866
4767
  type: Pipe,
4867
4768
  args: [{
4868
4769
  name: 'localeCurrency',
4869
4770
  standalone: true
4870
4771
  }]
4871
- }], ctorParameters: () => [{ type: i1$1.TranslateService }] });
4772
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
4872
4773
  class LocaleNumberPipe {
4873
4774
  constructor(translate) {
4874
4775
  this.translate = translate;
@@ -4904,16 +4805,16 @@ class LocaleNumberPipe {
4904
4805
  scale = typeof scale === 'number' ? scale : 2;
4905
4806
  return this.transform(value, grouping, pattern, scale, `1.${scale}-${scale}`);
4906
4807
  }
4907
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleNumberPipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4908
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleNumberPipe, isStandalone: true, name: "localeNumber" }); }
4808
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleNumberPipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4809
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: LocaleNumberPipe, isStandalone: true, name: "localeNumber" }); }
4909
4810
  }
4910
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleNumberPipe, decorators: [{
4811
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleNumberPipe, decorators: [{
4911
4812
  type: Pipe,
4912
4813
  args: [{
4913
4814
  name: 'localeNumber',
4914
4815
  standalone: true
4915
4816
  }]
4916
- }], ctorParameters: () => [{ type: i1$1.TranslateService }] });
4817
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
4917
4818
 
4918
4819
  /**
4919
4820
  * This pipe transforms its input (supposed to be a file size in bytes) into a more
@@ -4941,10 +4842,10 @@ class FileSizePipe extends LocaleNumberPipe {
4941
4842
  const number = super.stringToNumber((match ? match[1] : value).trim());
4942
4843
  return isNaN(number) ? number : Math.round(number * Math.pow(1024, match ? sizes.indexOf(match[2]) : 0));
4943
4844
  }
4944
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileSizePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
4945
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: FileSizePipe, isStandalone: true, name: "fileSize" }); }
4845
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FileSizePipe, deps: null, target: i0.ɵɵFactoryTarget.Pipe }); }
4846
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: FileSizePipe, isStandalone: true, name: "fileSize" }); }
4946
4847
  }
4947
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FileSizePipe, decorators: [{
4848
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: FileSizePipe, decorators: [{
4948
4849
  type: Pipe,
4949
4850
  args: [{ name: 'fileSize', standalone: true }]
4950
4851
  }] });
@@ -4979,16 +4880,16 @@ class LocaleDatePipe {
4979
4880
  }
4980
4881
  }
4981
4882
  }
4982
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDatePipe, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4983
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: LocaleDatePipe, isStandalone: true, name: "localeDate" }); }
4883
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleDatePipe, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Pipe }); }
4884
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: LocaleDatePipe, isStandalone: true, name: "localeDate" }); }
4984
4885
  }
4985
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: LocaleDatePipe, decorators: [{
4886
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LocaleDatePipe, decorators: [{
4986
4887
  type: Pipe,
4987
4888
  args: [{
4988
4889
  name: 'localeDate',
4989
4890
  standalone: true
4990
4891
  }]
4991
- }], ctorParameters: () => [{ type: i1$1.TranslateService }] });
4892
+ }], ctorParameters: () => [{ type: i1.TranslateService }] });
4992
4893
 
4993
4894
  /**
4994
4895
  * This pipe bypass security and trust the given value to be safe HTML.
@@ -5003,13 +4904,13 @@ class SafeHtmlPipe {
5003
4904
  transform(style) {
5004
4905
  return this.sanitizer.bypassSecurityTrustHtml(style);
5005
4906
  }
5006
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
5007
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
4907
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SafeHtmlPipe, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
4908
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: SafeHtmlPipe, isStandalone: true, name: "safeHtml" }); }
5008
4909
  }
5009
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SafeHtmlPipe, decorators: [{
4910
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SafeHtmlPipe, decorators: [{
5010
4911
  type: Pipe,
5011
4912
  args: [{ name: 'safeHtml', standalone: true }]
5012
- }], ctorParameters: () => [{ type: i1$2.DomSanitizer }] });
4913
+ }], ctorParameters: () => [{ type: i1$1.DomSanitizer }] });
5013
4914
  /**
5014
4915
  * This pipe bypass security and trust the given value to be a safe style URL, i.e. a value that can be used in hyperlinks or img src.
5015
4916
  * @example
@@ -5022,13 +4923,13 @@ class SafeUrlPipe {
5022
4923
  transform(url) {
5023
4924
  return this.sanitizer.bypassSecurityTrustResourceUrl(url);
5024
4925
  }
5025
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
5026
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" }); }
4926
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SafeUrlPipe, deps: [{ token: i1$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
4927
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: SafeUrlPipe, isStandalone: true, name: "safeUrl" }); }
5027
4928
  }
5028
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: SafeUrlPipe, decorators: [{
4929
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: SafeUrlPipe, decorators: [{
5029
4930
  type: Pipe,
5030
4931
  args: [{ name: 'safeUrl', standalone: true }]
5031
- }], ctorParameters: () => [{ type: i1$2.DomSanitizer }] });
4932
+ }], ctorParameters: () => [{ type: i1$1.DomSanitizer }] });
5032
4933
 
5033
4934
  /**
5034
4935
  * @ignore
@@ -5037,10 +4938,10 @@ class KeysPipe {
5037
4938
  transform(value) {
5038
4939
  return Object.keys(value);
5039
4940
  }
5040
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
5041
- static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "18.2.13", ngImport: i0, type: KeysPipe, isStandalone: true, name: "keys", pure: false }); }
4941
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: KeysPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe }); }
4942
+ static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "19.2.1", ngImport: i0, type: KeysPipe, isStandalone: true, name: "keys", pure: false }); }
5042
4943
  }
5043
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: KeysPipe, decorators: [{
4944
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: KeysPipe, decorators: [{
5044
4945
  type: Pipe,
5045
4946
  args: [{ name: 'keys', pure: false, standalone: true }]
5046
4947
  }] });
@@ -5073,21 +4974,248 @@ class NativeNotificationService {
5073
4974
  };
5074
4975
  }
5075
4976
  }
5076
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NativeNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5077
- static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NativeNotificationService, providedIn: 'root' }); }
4977
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NativeNotificationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
4978
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NativeNotificationService, providedIn: 'root' }); }
4979
+ }
4980
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: NativeNotificationService, decorators: [{
4981
+ type: Injectable,
4982
+ args: [{
4983
+ providedIn: 'root'
4984
+ }]
4985
+ }] });
4986
+
4987
+ /**
4988
+ * Prevent app from running into 401 issues related to gateway timeouts.
4989
+ */
4990
+ class AuthInterceptor {
4991
+ /**
4992
+ * @ignore
4993
+ */
4994
+ #userService = inject(UserService);
4995
+ #auth = inject(AuthService);
4996
+ #backend = inject(BackendService);
4997
+ // readonly #oauthService = inject(OAuthService);
4998
+ intercept(request, next) {
4999
+ return next.handle(request).pipe(tap({
5000
+ next: (event) => {
5001
+ if (event instanceof HttpResponse) {
5002
+ // do stuff with response if you want
5003
+ }
5004
+ },
5005
+ error: (error) => {
5006
+ if (error instanceof HttpErrorResponse || error.isHttpErrorResponse) {
5007
+ if (error.status === 401) {
5008
+ this.#auth.logout();
5009
+ this.#userService.logout();
5010
+ }
5011
+ }
5012
+ }
5013
+ }));
5014
+ }
5015
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuthInterceptor, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
5016
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuthInterceptor, providedIn: 'root' }); }
5078
5017
  }
5079
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NativeNotificationService, decorators: [{
5018
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: AuthInterceptor, decorators: [{
5080
5019
  type: Injectable,
5081
5020
  args: [{
5082
5021
  providedIn: 'root'
5083
5022
  }]
5084
5023
  }] });
5085
5024
 
5086
- // TOKENS
5025
+ /**
5026
+ * Http Offline interceptor trys to serving offline content for method/url
5027
+ */
5028
+ class OfflineInterceptor {
5029
+ constructor(connectionService) {
5030
+ this.connectionService = connectionService;
5031
+ this.offline = false;
5032
+ this.connectionService.connection$.subscribe((connectionState) => {
5033
+ this.offline = !connectionState.isOnline;
5034
+ });
5035
+ }
5036
+ intercept(request, next) {
5037
+ return next.handle(request);
5038
+ }
5039
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: OfflineInterceptor, deps: [{ token: ConnectionService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5040
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: OfflineInterceptor, providedIn: 'root' }); }
5041
+ }
5042
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: OfflineInterceptor, decorators: [{
5043
+ type: Injectable,
5044
+ args: [{
5045
+ providedIn: 'root'
5046
+ }]
5047
+ }], ctorParameters: () => [{ type: ConnectionService }] });
5048
+
5049
+ /**
5050
+ * Handles missing translations
5051
+ * @ignore
5052
+ */
5053
+ class EoxMissingTranslationHandler {
5054
+ handle(params) {
5055
+ return '!missing key: ' + params.key;
5056
+ }
5057
+ }
5058
+
5059
+ /**
5060
+ * Loader that fetches translations based on the configured locations
5061
+ * @ignore
5062
+ */
5063
+ let EoxTranslateJsonLoader = class EoxTranslateJsonLoader {
5064
+ constructor(http, config) {
5065
+ this.http = http;
5066
+ this.config = config;
5067
+ registerLocaleData(localeDe, 'de', localeExtraDe); // German
5068
+ registerLocaleData(localeAr, 'ar', localeExtraAr); // Arabic
5069
+ registerLocaleData(localeEs, 'es', localeExtraEs); // Spanish
5070
+ registerLocaleData(localePt, 'pt', localeExtraPt); // Portuguese
5071
+ registerLocaleData(localeFr, 'fr', localeExtraFr); // French
5072
+ registerLocaleData(localeZh, 'zh', localeExtraZh); // Chinese
5073
+ registerLocaleData(localeLv, 'lv', localeExtraLv); // Latvian
5074
+ registerLocaleData(localeRu, 'ru', localeExtraRu); // Russian
5075
+ registerLocaleData(localeIt, 'it', localeExtraIt); // Italian
5076
+ registerLocaleData(localeSk, 'sk', localeExtraSk); // Slovak
5077
+ registerLocaleData(localePl, 'pl', localeExtraPl); // Polish
5078
+ registerLocaleData(localeUk, 'uk', localeExtraUk); // Ukrainian
5079
+ registerLocaleData(localeJa, 'ja', localeExtraJa); // Japanese
5080
+ registerLocaleData(localeKo, 'ko', localeExtraKo); // Korean
5081
+ registerLocaleData(localeHi, 'hi', localeExtraHi); // Hindi
5082
+ registerLocaleData(localeBn, 'bn', localeExtraBn); // Bengalese
5083
+ registerLocaleData(localeVi, 'vi', localeExtraVi); // Vietnamese
5084
+ registerLocaleData(localeTr, 'tr', localeExtraTr); // Turkish
5085
+ registerLocaleData(localeNl, 'nl', localeExtraNl); // Dutch
5086
+ registerLocaleData(localeNb, 'nb', localeExtraNb); // Norwegian
5087
+ registerLocaleData(localeTh, 'th', localeExtraTh); // Thai
5088
+ registerLocaleData(localeFi, 'fi', localeExtraFi); // Finnish
5089
+ registerLocaleData(localeSv, 'sv', localeExtraSv); // Swedish
5090
+ registerLocaleData(localeDeCh, 'de-CH', localeExtraDeCh); // German Swiss
5091
+ }
5092
+ /**
5093
+ *
5094
+ * @param string lang
5095
+ * @returns Observable<Object>
5096
+ */
5097
+ getTranslation(lang) {
5098
+ const t = (this.config.translations || []).map((path) => this.loadTranslationFile(path, lang));
5099
+ return forkJoin(t).pipe(map((res) => res.reduce((acc, x) => Object.assign(acc, x), {})));
5100
+ }
5101
+ loadTranslationFile(path, lang) {
5102
+ return this.http.get(`${Utils.getBaseHref()}${path}${lang}.json`).pipe(catchError(() => {
5103
+ // ISO codes with more than 2 characters are sub-languages like de-CH.
5104
+ // If there is no translation file for that sub-language we'll try to load
5105
+ // the file for the base language (in this case de).
5106
+ return lang.length > 2 ? this.loadTranslationFile(path, lang.substring(0, 2)) : of({});
5107
+ }));
5108
+ }
5109
+ };
5110
+ EoxTranslateJsonLoader = __decorate([
5111
+ __param(1, Inject(CORE_CONFIG)),
5112
+ __metadata("design:paramtypes", [HttpClient,
5113
+ CoreConfig])
5114
+ ], EoxTranslateJsonLoader);
5115
+
5116
+ /**
5117
+ * @ignore
5118
+ */
5119
+ class LoggerConsoleService {
5120
+ constructor(config) {
5121
+ this.config = config;
5122
+ this.styles = {
5123
+ info: 'color:blue',
5124
+ debug: 'background: orange',
5125
+ warn: 'background: rgba(255,0,0,.2);color: red',
5126
+ error: 'background: red; color: #fff'
5127
+ };
5128
+ }
5129
+ apply(fn, args) {
5130
+ args = [`%c${fn}:`, 'font-family: monospace; font-size: 10px; padding: 2px 4px;' + this.styles[fn], ...args];
5131
+ return this.shouldLog(fn) ? console && console[fn] && console[fn](...args) : null;
5132
+ }
5133
+ debug(...args) {
5134
+ this.apply('debug', args);
5135
+ }
5136
+ error(...args) {
5137
+ this.apply('error', args);
5138
+ }
5139
+ info(...args) {
5140
+ this.apply('info', args);
5141
+ }
5142
+ log(...args) {
5143
+ this.apply('log', args);
5144
+ }
5145
+ warn(...args) {
5146
+ this.apply('warn', args);
5147
+ }
5148
+ shouldLog(level) {
5149
+ let should = false;
5150
+ const cfg = this.config.get('core.logging');
5151
+ if (!cfg || !cfg.level)
5152
+ return false;
5153
+ switch (cfg.level) {
5154
+ case 'debug': {
5155
+ should = true;
5156
+ break;
5157
+ }
5158
+ case 'error': {
5159
+ should = ['error'].includes(level);
5160
+ break;
5161
+ }
5162
+ case 'warn': {
5163
+ should = ['warn', 'error'].includes(level);
5164
+ break;
5165
+ }
5166
+ case 'info': {
5167
+ should = ['info', 'warn', 'error'].includes(level);
5168
+ break;
5169
+ }
5170
+ default: {
5171
+ }
5172
+ }
5173
+ return should;
5174
+ }
5175
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LoggerConsoleService, deps: [{ token: ConfigService }], target: i0.ɵɵFactoryTarget.Injectable }); }
5176
+ static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LoggerConsoleService, providedIn: 'root' }); }
5177
+ }
5178
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.1", ngImport: i0, type: LoggerConsoleService, decorators: [{
5179
+ type: Injectable,
5180
+ args: [{
5181
+ providedIn: 'root'
5182
+ }]
5183
+ }], ctorParameters: () => [{ type: ConfigService }] });
5184
+
5185
+ const provideYuvClientCore = (options = { translations: [] }) => {
5186
+ return [
5187
+ importProvidersFrom(TranslateModule.forRoot()),
5188
+ { provide: Logger, useClass: LoggerConsoleService },
5189
+ { provide: HTTP_INTERCEPTORS, useClass: AuthInterceptor, multi: true },
5190
+ { provide: HTTP_INTERCEPTORS, useClass: OfflineInterceptor, multi: true },
5191
+ { provide: CORE_CONFIG, useClass: CoreConfig, deps: [CUSTOM_CONFIG] },
5192
+ provideAppInitializer(init_moduleFnc),
5193
+ /**
5194
+ * overriding translate modules defaults
5195
+ * this works because providers are singletons
5196
+ */
5197
+ {
5198
+ provide: TranslateLoader,
5199
+ useClass: EoxTranslateJsonLoader,
5200
+ deps: [HttpClient, CORE_CONFIG]
5201
+ },
5202
+ {
5203
+ provide: MissingTranslationHandler,
5204
+ useClass: EoxMissingTranslationHandler
5205
+ },
5206
+ {
5207
+ provide: CUSTOM_CONFIG,
5208
+ useValue: {
5209
+ ...CUSTOM_CONFIG,
5210
+ translations: options.translations
5211
+ }
5212
+ }
5213
+ ];
5214
+ };
5087
5215
 
5088
5216
  /**
5089
5217
  * Generated bundle index. Do not edit.
5090
5218
  */
5091
5219
 
5092
- export { AFO_STATE, AdministrationRoles, ApiBase, AppCacheService, AuditField, AuditService, AuthService, BackendService, BaseObjectTypeField, BpmService, CORE_CONFIG, CUSTOM_CONFIG, CatalogService, Classification, ClassificationPrefix, ClientDefaultsObjectTypeField, ClipboardService, ColumnConfigSkipFields, ConfigService, ConnectionService, ContentStreamAllowed, ContentStreamField, CoreConfig, DeviceScreenOrientation, DeviceService, Direction, DmsObject, DmsService, EventService, FileSizePipe, IdmService, InternalFieldType, KeysPipe, LocaleCurrencyPipe, LocaleDatePipe, LocaleDecimalPipe, LocaleNumberPipe, LocalePercentPipe, Logger, LoginStateName, NativeNotificationService, NotificationService, ObjectConfigService, ObjectTag, ObjectTypeClassification, ObjectTypePropertyClassification, OidcService, Operator, OperatorLabel, ParentField, PendingChangesGuard, PendingChangesService, PredictionService, ProcessAction, RetentionField, RetentionService, SafeHtmlPipe, SafeUrlPipe, SearchService, SearchUtils, SecondaryObjectTypeClassification, SessionStorageService, Situation, Sort, SystemResult, SystemSOT, SystemService, SystemType, TENANT_HEADER, UploadService, UserRoles, UserService, UserStorageService, Utils, YuvClientCoreModule, YuvClientCoreSharedModule, YuvError, YuvEventType, YuvUser, init_moduleFnc, storageFactory };
5220
+ export { AFO_STATE, AdministrationRoles, ApiBase, AppCacheService, AuditField, AuditService, AuthService, BackendService, BaseObjectTypeField, BpmService, CORE_CONFIG, CUSTOM_CONFIG, CatalogService, Classification, ClassificationPrefix, ClientDefaultsObjectTypeField, ClipboardService, ColumnConfigSkipFields, ConfigService, ConnectionService, ContentStreamAllowed, ContentStreamField, CoreConfig, DeviceScreenOrientation, DeviceService, Direction, DmsObject, DmsService, EventService, FileSizePipe, IdmService, InternalFieldType, KeysPipe, LocaleCurrencyPipe, LocaleDatePipe, LocaleDecimalPipe, LocaleNumberPipe, LocalePercentPipe, Logger, LoginStateName, NativeNotificationService, NotificationService, ObjectConfigService, ObjectFormControl, ObjectFormControlWrapper, ObjectFormGroup, ObjectFormTranslateService, ObjectTag, ObjectTypeClassification, ObjectTypePropertyClassification, Operator, OperatorLabel, ParentField, PendingChangesGuard, PendingChangesService, PredictionService, ProcessAction, RetentionField, RetentionService, SafeHtmlPipe, SafeUrlPipe, SearchService, SearchUtils, SecondaryObjectTypeClassification, SessionStorageService, Situation, Sort, SystemResult, SystemSOT, SystemService, SystemType, TENANT_HEADER, ToastService, UploadService, UserRoles, UserService, UserStorageService, Utils, YUV_USER, YuvError, YuvEventType, YuvUser, init_moduleFnc, provideUser, provideYuvClientCore };
5093
5221
  //# sourceMappingURL=yuuvis-client-core.mjs.map