@wolkabout/commons 0.3.5 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -52,7 +52,7 @@ import * as i4$5 from '@angular/material/tabs';
52
52
  import { MatTabsModule } from '@angular/material/tabs';
53
53
  import { DragDropModule } from '@angular/cdk/drag-drop';
54
54
  import * as i0 from '@angular/core';
55
- import { NgModule, InjectionToken, inject, Injectable, DOCUMENT, Inject, Input, Directive, forwardRef, HostListener, PLATFORM_ID, Pipe, signal, TemplateRef, ViewChild, ContentChild, Optional, Self, Component, input, computed, untracked, viewChild, afterNextRender, effect, output, afterRenderEffect, contentChild } from '@angular/core';
55
+ import { NgModule, InjectionToken, inject, Injectable, DOCUMENT, Inject, Input, Directive, forwardRef, HostListener, PLATFORM_ID, Pipe, signal, TemplateRef, ViewChild, ContentChild, Optional, Self, Component, input, computed, untracked, viewChild, afterNextRender, effect, output, afterRenderEffect, contentChild, ChangeDetectionStrategy } from '@angular/core';
56
56
  import { BehaviorSubject, catchError, of, switchMap, EMPTY, tap, filter, map, combineLatestWith, take, from, concatMap, first, forkJoin, distinctUntilChanged, fromEvent, withLatestFrom, shareReplay, merge, Subject, takeUntil, combineLatest } from 'rxjs';
57
57
  import { jwtDecode } from 'jwt-decode';
58
58
  import { loadRemoteModule } from '@angular-architects/native-federation';
@@ -115,8 +115,8 @@ const shared = [
115
115
  DragDropModule
116
116
  ];
117
117
  class SharedModule {
118
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
119
- static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SharedModule, imports: [MatButtonModule,
118
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SharedModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
119
+ static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: SharedModule, imports: [MatButtonModule,
120
120
  MatCheckboxModule,
121
121
  MatToolbarModule,
122
122
  MatMenuModule,
@@ -183,7 +183,7 @@ class SharedModule {
183
183
  RouterOutlet,
184
184
  RouterLinkActive,
185
185
  DragDropModule] });
186
- static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SharedModule, imports: [MatButtonModule,
186
+ static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SharedModule, imports: [MatButtonModule,
187
187
  MatCheckboxModule,
188
188
  MatToolbarModule,
189
189
  MatMenuModule,
@@ -245,7 +245,7 @@ class SharedModule {
245
245
  CommonModule,
246
246
  DragDropModule] });
247
247
  }
248
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SharedModule, decorators: [{
248
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SharedModule, decorators: [{
249
249
  type: NgModule,
250
250
  args: [{
251
251
  imports: shared,
@@ -413,10 +413,10 @@ class AuthenticationService {
413
413
  const payload = jwtDecode(token);
414
414
  return payload[claim];
415
415
  }
416
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AuthenticationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
417
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AuthenticationService, providedIn: 'root' });
416
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthenticationService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
417
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthenticationService, providedIn: 'root' });
418
418
  }
419
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AuthenticationService, decorators: [{
419
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AuthenticationService, decorators: [{
420
420
  type: Injectable,
421
421
  args: [{
422
422
  providedIn: 'root'
@@ -455,10 +455,10 @@ class PermissionsService {
455
455
  const everythingInFeature = moduleFeaturePermission[0] + '.' + moduleFeaturePermission[1] + '.*';
456
456
  return allPermissions.some((grantedPermission) => grantedPermission === '*' || grantedPermission === everythingInModule || grantedPermission === everythingInFeature || grantedPermission === permission);
457
457
  }
458
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
459
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: PermissionsService, providedIn: 'root' });
458
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
459
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PermissionsService, providedIn: 'root' });
460
460
  }
461
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: PermissionsService, decorators: [{
461
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PermissionsService, decorators: [{
462
462
  type: Injectable,
463
463
  args: [{
464
464
  providedIn: 'root'
@@ -550,10 +550,10 @@ class AssetManager {
550
550
  setAssetLocation(featureSet, host) {
551
551
  this.assetLocations[featureSet] = host;
552
552
  }
553
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
554
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetManager, providedIn: 'root' });
553
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AssetManager, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
554
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AssetManager, providedIn: 'root' });
555
555
  }
556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetManager, decorators: [{
556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AssetManager, decorators: [{
557
557
  type: Injectable,
558
558
  args: [{
559
559
  providedIn: 'root'
@@ -566,10 +566,10 @@ class IconRegistryService {
566
566
  registerIcon(name, path) {
567
567
  this.matIconRegistry.addSvgIcon(name, this.domSanitizer.bypassSecurityTrustResourceUrl(path));
568
568
  }
569
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: IconRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
570
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: IconRegistryService, providedIn: 'root' });
569
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: IconRegistryService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
570
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: IconRegistryService, providedIn: 'root' });
571
571
  }
572
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: IconRegistryService, decorators: [{
572
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: IconRegistryService, decorators: [{
573
573
  type: Injectable,
574
574
  args: [{ providedIn: 'root' }]
575
575
  }] });
@@ -618,10 +618,10 @@ class FeatureRegistry {
618
618
  get features$() {
619
619
  return this._features$.asObservable();
620
620
  }
621
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FeatureRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
622
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FeatureRegistry, providedIn: 'root' });
621
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FeatureRegistry, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
622
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FeatureRegistry, providedIn: 'root' });
623
623
  }
624
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FeatureRegistry, decorators: [{
624
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FeatureRegistry, decorators: [{
625
625
  type: Injectable,
626
626
  args: [{ providedIn: 'root' }]
627
627
  }] });
@@ -666,10 +666,10 @@ class MapsLoaderService {
666
666
  }
667
667
  });
668
668
  }
669
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MapsLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
670
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MapsLoaderService, providedIn: 'root' });
669
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MapsLoaderService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
670
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MapsLoaderService, providedIn: 'root' });
671
671
  }
672
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MapsLoaderService, decorators: [{
672
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MapsLoaderService, decorators: [{
673
673
  type: Injectable,
674
674
  args: [{ providedIn: 'root' }]
675
675
  }], ctorParameters: () => [] });
@@ -702,10 +702,10 @@ class NotificationService {
702
702
  showNotification(panelClass, message, duration) {
703
703
  this.snackBar.open(message, '', { duration, panelClass });
704
704
  }
705
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NotificationService, deps: [{ token: i1.MatSnackBar }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
706
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NotificationService, providedIn: 'root' });
705
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NotificationService, deps: [{ token: i1.MatSnackBar }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
706
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NotificationService, providedIn: 'root' });
707
707
  }
708
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NotificationService, decorators: [{
708
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NotificationService, decorators: [{
709
709
  type: Injectable,
710
710
  args: [{ providedIn: 'root' }]
711
711
  }], ctorParameters: () => [{ type: i1.MatSnackBar }, { type: i1$1.TranslateService }] });
@@ -1512,10 +1512,10 @@ class TenantPropertiesService {
1512
1512
  setTimeZone(timeZone) {
1513
1513
  this.timezone = timeZone;
1514
1514
  }
1515
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TenantPropertiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1516
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TenantPropertiesService, providedIn: 'root' });
1515
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TenantPropertiesService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
1516
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TenantPropertiesService, providedIn: 'root' });
1517
1517
  }
1518
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TenantPropertiesService, decorators: [{
1518
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TenantPropertiesService, decorators: [{
1519
1519
  type: Injectable,
1520
1520
  args: [{
1521
1521
  providedIn: 'root'
@@ -2465,10 +2465,10 @@ class ThemeService {
2465
2465
  value: hex,
2466
2466
  };
2467
2467
  }
2468
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ThemeService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
2469
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ThemeService, providedIn: 'root' });
2468
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ThemeService, deps: [{ token: DOCUMENT }], target: i0.ɵɵFactoryTarget.Injectable });
2469
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ThemeService, providedIn: 'root' });
2470
2470
  }
2471
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ThemeService, decorators: [{
2471
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ThemeService, decorators: [{
2472
2472
  type: Injectable,
2473
2473
  args: [{
2474
2474
  providedIn: 'root'
@@ -2509,10 +2509,10 @@ class FullscreenService {
2509
2509
  this._fullScreenEnabled$.next(!this._fullScreenEnabled$.value);
2510
2510
  this._fullScreenEnabled$.value ? document.documentElement.requestFullscreen() : document.exitFullscreen();
2511
2511
  }
2512
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FullscreenService, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
2513
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FullscreenService, providedIn: 'root' });
2512
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FullscreenService, deps: [{ token: i1$2.Router }], target: i0.ɵɵFactoryTarget.Injectable });
2513
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FullscreenService, providedIn: 'root' });
2514
2514
  }
2515
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: FullscreenService, decorators: [{
2515
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: FullscreenService, decorators: [{
2516
2516
  type: Injectable,
2517
2517
  args: [{
2518
2518
  providedIn: 'root',
@@ -2550,10 +2550,10 @@ class NavigationPersistenceService {
2550
2550
  this.registeredKeys.forEach(key => localStorage.removeItem(key));
2551
2551
  this.registeredKeys.clear();
2552
2552
  }
2553
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NavigationPersistenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2554
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NavigationPersistenceService, providedIn: 'root' });
2553
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NavigationPersistenceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
2554
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NavigationPersistenceService, providedIn: 'root' });
2555
2555
  }
2556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NavigationPersistenceService, decorators: [{
2556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NavigationPersistenceService, decorators: [{
2557
2557
  type: Injectable,
2558
2558
  args: [{
2559
2559
  providedIn: 'root'
@@ -2573,10 +2573,10 @@ class LoadingIndicatorDirective {
2573
2573
  constructor(element) {
2574
2574
  this.element = element;
2575
2575
  }
2576
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LoadingIndicatorDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2577
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: LoadingIndicatorDirective, isStandalone: true, selector: "[appLoadingIndicator]", inputs: { appLoadingShimmer: ["appLoadingIndicator", "appLoadingShimmer"] }, ngImport: i0 });
2576
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LoadingIndicatorDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2577
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: LoadingIndicatorDirective, isStandalone: true, selector: "[appLoadingIndicator]", inputs: { appLoadingShimmer: ["appLoadingIndicator", "appLoadingShimmer"] }, ngImport: i0 });
2578
2578
  }
2579
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LoadingIndicatorDirective, decorators: [{
2579
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LoadingIndicatorDirective, decorators: [{
2580
2580
  type: Directive,
2581
2581
  args: [{
2582
2582
  selector: '[appLoadingIndicator]',
@@ -2681,8 +2681,8 @@ class LocalizedNumericInputDirective {
2681
2681
  //final format
2682
2682
  return sign + parsedInt + (parsedDec || endsInDecMark ? '.' : '') + parsedDec;
2683
2683
  }
2684
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LocalizedNumericInputDirective, deps: [{ token: i0.ElementRef }, { token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Directive });
2685
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: LocalizedNumericInputDirective, isStandalone: true, selector: "input[wolkaboutLocalizedNumericInput]", host: { listeners: { "input": "input($event.target.value)", "blur": "onBlur()", "focus": "onFocus()" } }, providers: [
2684
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LocalizedNumericInputDirective, deps: [{ token: i0.ElementRef }, { token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Directive });
2685
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: LocalizedNumericInputDirective, isStandalone: true, selector: "input[wolkaboutLocalizedNumericInput]", host: { listeners: { "input": "input($event.target.value)", "blur": "onBlur()", "focus": "onFocus()" } }, providers: [
2686
2686
  { provide: MAT_INPUT_VALUE_ACCESSOR, useExisting: LocalizedNumericInputDirective },
2687
2687
  {
2688
2688
  provide: NG_VALUE_ACCESSOR,
@@ -2691,7 +2691,7 @@ class LocalizedNumericInputDirective {
2691
2691
  },
2692
2692
  ], ngImport: i0 });
2693
2693
  }
2694
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LocalizedNumericInputDirective, decorators: [{
2694
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LocalizedNumericInputDirective, decorators: [{
2695
2695
  type: Directive,
2696
2696
  args: [{
2697
2697
  selector: 'input[wolkaboutLocalizedNumericInput]',
@@ -2804,10 +2804,10 @@ class MessageTooltipDirective {
2804
2804
  clearTimeout(this.showTimeout);
2805
2805
  this.overlayRef?.dispose();
2806
2806
  }
2807
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MessageTooltipDirective, deps: [{ token: i1$3.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2808
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: MessageTooltipDirective, isStandalone: true, selector: "[appMessageTooltip]", inputs: { tooltipTemplate: ["appMessageTooltip", "tooltipTemplate"] }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()" } }, ngImport: i0 });
2807
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MessageTooltipDirective, deps: [{ token: i1$3.Overlay }, { token: i0.ElementRef }, { token: i0.ViewContainerRef }, { token: i0.Renderer2 }], target: i0.ɵɵFactoryTarget.Directive });
2808
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: MessageTooltipDirective, isStandalone: true, selector: "[appMessageTooltip]", inputs: { tooltipTemplate: ["appMessageTooltip", "tooltipTemplate"] }, host: { listeners: { "mouseenter": "show()", "mouseleave": "hide()" } }, ngImport: i0 });
2809
2809
  }
2810
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MessageTooltipDirective, decorators: [{
2810
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MessageTooltipDirective, decorators: [{
2811
2811
  type: Directive,
2812
2812
  args: [{
2813
2813
  selector: '[appMessageTooltip]',
@@ -2847,10 +2847,10 @@ class OverflowClassDirective {
2847
2847
  }
2848
2848
  });
2849
2849
  }
2850
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: OverflowClassDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2851
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: OverflowClassDirective, isStandalone: true, selector: "[overflowClass]", inputs: { overflowClass: "overflowClass" }, ngImport: i0 });
2850
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: OverflowClassDirective, deps: [{ token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
2851
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: OverflowClassDirective, isStandalone: true, selector: "[overflowClass]", inputs: { overflowClass: "overflowClass" }, ngImport: i0 });
2852
2852
  }
2853
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: OverflowClassDirective, decorators: [{
2853
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: OverflowClassDirective, decorators: [{
2854
2854
  type: Directive,
2855
2855
  args: [{
2856
2856
  selector: '[overflowClass]',
@@ -2883,10 +2883,10 @@ class RequiresAllGlobalOrAssetPermissionsDirective {
2883
2883
  this.viewContainer = viewContainer;
2884
2884
  this.permissions = permissions;
2885
2885
  }
2886
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresAllGlobalOrAssetPermissionsDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2887
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: RequiresAllGlobalOrAssetPermissionsDirective, isStandalone: true, selector: "[appRequiresAllGlobalOrAssetPermissions]", inputs: { appRequiresAllGlobalOrAssetPermissions: "appRequiresAllGlobalOrAssetPermissions" }, ngImport: i0 });
2886
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresAllGlobalOrAssetPermissionsDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2887
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: RequiresAllGlobalOrAssetPermissionsDirective, isStandalone: true, selector: "[appRequiresAllGlobalOrAssetPermissions]", inputs: { appRequiresAllGlobalOrAssetPermissions: "appRequiresAllGlobalOrAssetPermissions" }, ngImport: i0 });
2888
2888
  }
2889
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresAllGlobalOrAssetPermissionsDirective, decorators: [{
2889
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresAllGlobalOrAssetPermissionsDirective, decorators: [{
2890
2890
  type: Directive,
2891
2891
  args: [{
2892
2892
  selector: '[appRequiresAllGlobalOrAssetPermissions]'
@@ -2918,10 +2918,10 @@ class RequiresAllPermissionDirective {
2918
2918
  this.viewContainer = viewContainer;
2919
2919
  this.permissions = permissions;
2920
2920
  }
2921
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresAllPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2922
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: RequiresAllPermissionDirective, isStandalone: true, selector: "[appRequiresAllPermissions]", inputs: { appRequiresAllPermissions: "appRequiresAllPermissions" }, ngImport: i0 });
2921
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresAllPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2922
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: RequiresAllPermissionDirective, isStandalone: true, selector: "[appRequiresAllPermissions]", inputs: { appRequiresAllPermissions: "appRequiresAllPermissions" }, ngImport: i0 });
2923
2923
  }
2924
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresAllPermissionDirective, decorators: [{
2924
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresAllPermissionDirective, decorators: [{
2925
2925
  type: Directive,
2926
2926
  args: [{
2927
2927
  selector: '[appRequiresAllPermissions]'
@@ -2953,10 +2953,10 @@ class RequiresGlobalOrAsserPermissionDirective {
2953
2953
  this.viewContainer = viewContainer;
2954
2954
  this.permissions = permissions;
2955
2955
  }
2956
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresGlobalOrAsserPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2957
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: RequiresGlobalOrAsserPermissionDirective, isStandalone: true, selector: "[appRequiresGlobalOrAssetPermission]", inputs: { appRequiresGlobalOrAssetPermission: "appRequiresGlobalOrAssetPermission" }, ngImport: i0 });
2956
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresGlobalOrAsserPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2957
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: RequiresGlobalOrAsserPermissionDirective, isStandalone: true, selector: "[appRequiresGlobalOrAssetPermission]", inputs: { appRequiresGlobalOrAssetPermission: "appRequiresGlobalOrAssetPermission" }, ngImport: i0 });
2958
2958
  }
2959
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresGlobalOrAsserPermissionDirective, decorators: [{
2959
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresGlobalOrAsserPermissionDirective, decorators: [{
2960
2960
  type: Directive,
2961
2961
  args: [{
2962
2962
  selector: '[appRequiresGlobalOrAssetPermission]'
@@ -2990,10 +2990,10 @@ class RequiresPermissionDirective {
2990
2990
  this.viewContainer = viewContainer;
2991
2991
  this.permissions = permissions;
2992
2992
  }
2993
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2994
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: RequiresPermissionDirective, isStandalone: true, selector: "[appRequiresPermission]", inputs: { appRequiresPermission: "appRequiresPermission" }, ngImport: i0 });
2993
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresPermissionDirective, deps: [{ token: i0.TemplateRef }, { token: i0.ViewContainerRef }, { token: PermissionsService }], target: i0.ɵɵFactoryTarget.Directive });
2994
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: RequiresPermissionDirective, isStandalone: true, selector: "[appRequiresPermission]", inputs: { appRequiresPermission: "appRequiresPermission" }, ngImport: i0 });
2995
2995
  }
2996
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: RequiresPermissionDirective, decorators: [{
2996
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: RequiresPermissionDirective, decorators: [{
2997
2997
  type: Directive,
2998
2998
  args: [{
2999
2999
  selector: '[appRequiresPermission]'
@@ -3024,10 +3024,10 @@ class ScrollIntoViewDirective {
3024
3024
  this.elementRef.nativeElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
3025
3025
  }
3026
3026
  }
3027
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ScrollIntoViewDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3028
- static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.0", type: ScrollIntoViewDirective, isStandalone: true, selector: "[appScrollIntoView]", inputs: { appScrollIntoView: "appScrollIntoView" }, usesOnChanges: true, ngImport: i0 });
3027
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ScrollIntoViewDirective, deps: [{ token: PLATFORM_ID }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive });
3028
+ static ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "21.2.13", type: ScrollIntoViewDirective, isStandalone: true, selector: "[appScrollIntoView]", inputs: { appScrollIntoView: "appScrollIntoView" }, usesOnChanges: true, ngImport: i0 });
3029
3029
  }
3030
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
3030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ScrollIntoViewDirective, decorators: [{
3031
3031
  type: Directive,
3032
3032
  args: [{
3033
3033
  selector: '[appScrollIntoView]',
@@ -3071,10 +3071,10 @@ class DurationPipe {
3071
3071
  transform(totalSeconds) {
3072
3072
  return formatDuration(totalSeconds);
3073
3073
  }
3074
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DurationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3075
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: DurationPipe, isStandalone: true, name: "duration" });
3074
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DurationPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3075
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: DurationPipe, isStandalone: true, name: "duration" });
3076
3076
  }
3077
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DurationPipe, decorators: [{
3077
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DurationPipe, decorators: [{
3078
3078
  type: Pipe,
3079
3079
  args: [{
3080
3080
  name: 'duration',
@@ -3106,10 +3106,10 @@ class LocalizedNumberPipe {
3106
3106
  };
3107
3107
  return new Intl.NumberFormat(defaultedLocale, options).format(value);
3108
3108
  }
3109
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LocalizedNumberPipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3110
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: LocalizedNumberPipe, isStandalone: true, name: "localizedNumber" });
3109
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LocalizedNumberPipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3110
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: LocalizedNumberPipe, isStandalone: true, name: "localizedNumber" });
3111
3111
  }
3112
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LocalizedNumberPipe, decorators: [{
3112
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LocalizedNumberPipe, decorators: [{
3113
3113
  type: Pipe,
3114
3114
  args: [{
3115
3115
  name: 'localizedNumber',
@@ -3136,10 +3136,10 @@ class SimpleDateTimePipe {
3136
3136
  const formattedDateTime = date + ' ' + time;
3137
3137
  return showTimeZone ? `${formattedDateTime} ${zone}` : formattedDateTime;
3138
3138
  }
3139
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SimpleDateTimePipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3140
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SimpleDateTimePipe, isStandalone: true, name: "simpleDateTime" });
3139
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SimpleDateTimePipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3140
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: SimpleDateTimePipe, isStandalone: true, name: "simpleDateTime" });
3141
3141
  }
3142
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SimpleDateTimePipe, decorators: [{
3142
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SimpleDateTimePipe, decorators: [{
3143
3143
  type: Pipe,
3144
3144
  args: [{
3145
3145
  name: 'simpleDateTime',
@@ -3163,10 +3163,10 @@ class SimpleDatePipe {
3163
3163
  const zone = dateTime.offsetNameShort;
3164
3164
  return showTimeZone ? `${date} ${zone}` : date;
3165
3165
  }
3166
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SimpleDatePipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3167
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SimpleDatePipe, isStandalone: true, name: "simpleDate" });
3166
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SimpleDatePipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3167
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: SimpleDatePipe, isStandalone: true, name: "simpleDate" });
3168
3168
  }
3169
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SimpleDatePipe, decorators: [{
3169
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SimpleDatePipe, decorators: [{
3170
3170
  type: Pipe,
3171
3171
  args: [{
3172
3172
  name: 'simpleDate',
@@ -3190,10 +3190,10 @@ class SimpleTimePipe {
3190
3190
  const zone = dateTime.offsetNameShort;
3191
3191
  return showTimeZone ? `${time} ${zone}` : time;
3192
3192
  }
3193
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SimpleTimePipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3194
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SimpleTimePipe, isStandalone: true, name: "simpleTime" });
3193
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SimpleTimePipe, deps: [{ token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Pipe });
3194
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: SimpleTimePipe, isStandalone: true, name: "simpleTime" });
3195
3195
  }
3196
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SimpleTimePipe, decorators: [{
3196
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SimpleTimePipe, decorators: [{
3197
3197
  type: Pipe,
3198
3198
  args: [{
3199
3199
  name: 'simpleTime',
@@ -3223,10 +3223,10 @@ class SortPipe {
3223
3223
  });
3224
3224
  return array;
3225
3225
  }
3226
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3227
- static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: SortPipe, isStandalone: true, name: "sort" });
3226
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SortPipe, deps: [], target: i0.ɵɵFactoryTarget.Pipe });
3227
+ static ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "21.2.13", ngImport: i0, type: SortPipe, isStandalone: true, name: "sort" });
3228
3228
  }
3229
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: SortPipe, decorators: [{
3229
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: SortPipe, decorators: [{
3230
3230
  type: Pipe,
3231
3231
  args: [{
3232
3232
  name: 'sort',
@@ -3473,10 +3473,10 @@ class MissingTranslationHelper {
3473
3473
  handle(params) {
3474
3474
  return params.interpolateParams ? params.interpolateParams.default || params.key : params.key;
3475
3475
  }
3476
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MissingTranslationHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3477
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MissingTranslationHelper });
3476
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MissingTranslationHelper, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3477
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MissingTranslationHelper });
3478
3478
  }
3479
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MissingTranslationHelper, decorators: [{
3479
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MissingTranslationHelper, decorators: [{
3480
3480
  type: Injectable
3481
3481
  }] });
3482
3482
 
@@ -4225,7 +4225,7 @@ class AutocompleteComponent {
4225
4225
  autocompleteTrigger;
4226
4226
  Object = Object;
4227
4227
  disabled = false;
4228
- hasValue = signal(false, ...(ngDevMode ? [{ debugName: "hasValue" }] : []));
4228
+ hasValue = signal(false, ...(ngDevMode ? [{ debugName: "hasValue" }] : /* istanbul ignore next */ []));
4229
4229
  formControl = new FormControl('', { nonNullable: true });
4230
4230
  data$ = this.formControl.valueChanges.pipe(startWith(''), // Autoload
4231
4231
  filter((value) => typeof value === 'string'), switchMap((value) => this.dataFunction(value)), shareReplay(1));
@@ -4307,10 +4307,10 @@ class AutocompleteComponent {
4307
4307
  document.removeEventListener('wheel', this.scrollEvent, true);
4308
4308
  document.removeEventListener('touchmove', this.scrollEvent, true);
4309
4309
  }
4310
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i5.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4311
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: AutocompleteComponent, isStandalone: true, selector: "app-autocomplete", inputs: { name: "name", dataFunction: "dataFunction", displayFunction: "displayFunction", outlineBackground: "outlineBackground", hideRequiredMarker: "hideRequiredMarker" }, queries: [{ propertyName: "dropdownTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], ngImport: i0, template: "<ng-container>\r\n <div class=\"w-full\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\" [hideRequiredMarker]=\"hideRequiredMarker\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <input matInput #autoCompleteInput [ngClass]=\"{'cursor-text' : !hasValue(), 'cursor-default' : hasValue()}\" [formControl]=\"formControl\" [readonly]=\"hasValue()\" [placeholder]=\"name | translate\" autocomplete=\"off\"\r\n [matAutocomplete]=\"auto\" (blur)=\"onTouched($event)\" [attr.data-test]=\"name + 'SearchInput'\"/>\r\n @if (!disabled) {\r\n <button matSuffix mat-icon-button *ngIf=\"formControl.value\" (click)=\"clear()\" type='button'>\r\n <mat-icon class=\"text-mat-sys-on-error-container\">clear</mat-icon>\r\n </button>\r\n }\r\n @for (error of getErrors(); track error) {\r\n <mat-error>{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" [displayWith]=\"displayFunction\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <mat-option *ngFor=\"let item of data$ | async; let i = index\" [value]=\"item\" class=\"autocomplete-option\" [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n</ng-container>\r\n", styles: [".mat-option-hidden{display:none}.autocomplete-option{height:fit-content}.autocomplete-option.autocomplete-option__active,.autocomplete-option.autocomplete-option__active:hover{background-color:var(--color-primary-50)}.autocomplete-info{height:30px;font-size:14px}.autocomplete-info.secondary{font-size:12px;height:25px}.autocomplete-info .autocomplete-item{text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
4310
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AutocompleteComponent, deps: [{ token: i5.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4311
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: AutocompleteComponent, isStandalone: true, selector: "app-autocomplete", inputs: { name: "name", dataFunction: "dataFunction", displayFunction: "displayFunction", outlineBackground: "outlineBackground", hideRequiredMarker: "hideRequiredMarker" }, queries: [{ propertyName: "dropdownTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }], ngImport: i0, template: "<ng-container>\r\n <div class=\"w-full\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\" [hideRequiredMarker]=\"hideRequiredMarker\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <input matInput #autoCompleteInput [ngClass]=\"{'cursor-text' : !hasValue(), 'cursor-default' : hasValue()}\" [formControl]=\"formControl\" [readonly]=\"hasValue()\" [placeholder]=\"name | translate\" autocomplete=\"off\"\r\n [matAutocomplete]=\"auto\" (blur)=\"onTouched($event)\" [attr.data-test]=\"name + 'SearchInput'\"/>\r\n @if (!disabled) {\r\n <button matSuffix mat-icon-button *ngIf=\"formControl.value\" (click)=\"clear()\" type='button'>\r\n <mat-icon class=\"text-mat-sys-on-error-container\">clear</mat-icon>\r\n </button>\r\n }\r\n @for (error of getErrors(); track error) {\r\n <mat-error>{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" [displayWith]=\"displayFunction\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <mat-option *ngFor=\"let item of data$ | async; let i = index\" [value]=\"item\" class=\"autocomplete-option\" [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n</ng-container>\r\n", styles: [".mat-option-hidden{display:none}.autocomplete-option{height:fit-content}.autocomplete-option.autocomplete-option__active,.autocomplete-option.autocomplete-option__active:hover{background-color:var(--color-primary-50)}.autocomplete-info{height:30px;font-size:14px}.autocomplete-info.secondary{font-size:12px;height:25px}.autocomplete-info .autocomplete-item{text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
4312
4312
  }
4313
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AutocompleteComponent, decorators: [{
4313
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AutocompleteComponent, decorators: [{
4314
4314
  type: Component,
4315
4315
  args: [{ selector: 'app-autocomplete', imports: [SharedModule], template: "<ng-container>\r\n <div class=\"w-full\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\" [hideRequiredMarker]=\"hideRequiredMarker\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <input matInput #autoCompleteInput [ngClass]=\"{'cursor-text' : !hasValue(), 'cursor-default' : hasValue()}\" [formControl]=\"formControl\" [readonly]=\"hasValue()\" [placeholder]=\"name | translate\" autocomplete=\"off\"\r\n [matAutocomplete]=\"auto\" (blur)=\"onTouched($event)\" [attr.data-test]=\"name + 'SearchInput'\"/>\r\n @if (!disabled) {\r\n <button matSuffix mat-icon-button *ngIf=\"formControl.value\" (click)=\"clear()\" type='button'>\r\n <mat-icon class=\"text-mat-sys-on-error-container\">clear</mat-icon>\r\n </button>\r\n }\r\n @for (error of getErrors(); track error) {\r\n <mat-error>{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n <mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" [displayWith]=\"displayFunction\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <mat-option *ngFor=\"let item of data$ | async; let i = index\" [value]=\"item\" class=\"autocomplete-option\" [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\" [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </mat-autocomplete>\r\n</ng-container>\r\n", styles: [".mat-option-hidden{display:none}.autocomplete-option{height:fit-content}.autocomplete-option.autocomplete-option__active,.autocomplete-option.autocomplete-option__active:hover{background-color:var(--color-primary-50)}.autocomplete-info{height:30px;font-size:14px}.autocomplete-info.secondary{font-size:12px;height:25px}.autocomplete-info .autocomplete-item{text-overflow:ellipsis;overflow:hidden}\n"] }]
4316
4316
  }], ctorParameters: () => [{ type: i5.NgControl, decorators: [{
@@ -4423,10 +4423,10 @@ class AutocompleteChipsComponent {
4423
4423
  document.removeEventListener('wheel', this.scrollEvent, true);
4424
4424
  document.removeEventListener('touchmove', this.scrollEvent, true);
4425
4425
  }
4426
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AutocompleteChipsComponent, deps: [{ token: i5.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4427
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: AutocompleteChipsComponent, isStandalone: true, selector: "app-autocomplete-chips", inputs: { name: "name", dataFunction: "dataFunction", displayFunction: "displayFunction", outlineBackground: "outlineBackground" }, queries: [{ propertyName: "dropdownTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["autoCompleteInput"], descendants: true }], ngImport: i0, template: "<div class=\"w-full\" [ngClass]=\"{'required' : !!getErrors().length && !formControl.untouched && !(items$ | async)?.length}\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <mat-chip-grid #chipGrid>\r\n <mat-chip-row *ngFor=\"let item of items$ | async as items; let i = index\"\r\n [removable]=\"!disabled\"\r\n (removed)=\"removeItem(i, items)\">\r\n {{ displayFunction(item) }}\r\n <mat-icon class=\"text-mat-sys-on-error-container\" matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\r\n </mat-chip-row>\r\n <input matInput\r\n #autoCompleteInput\r\n [placeholder]=\"name | translate\"\r\n autocomplete=\"off\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n (blur)=\"onTouched($event)\"/>\r\n </mat-chip-grid>\r\n </mat-form-field>\r\n\r\n @for (error of getErrors(); track error) {\r\n @if (!formControl.untouched && !(items$ | async)?.length) {\r\n <mat-error class=\"ml-4 mt-[-2px] text-xs\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n }\r\n</div>\r\n<mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" (optionSelected)=\"addItem($event)\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <ng-container *ngFor=\"let item of data$ | async; let i = index\">\r\n @if (shouldShowOption(item, (items$ | async) ?? [])) {\r\n <mat-option\r\n [value]=\"item\"\r\n class=\"autocomplete-option\"\r\n [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </ng-container>\r\n }\r\n</mat-autocomplete>\r\n", styles: [".mat-option-hidden{display:none}.autocomplete-option{height:fit-content}.autocomplete-option.autocomplete-option__active,.autocomplete-option.autocomplete-option__active:hover{background-color:var(--color-primary-50)}.autocomplete-info{height:30px;font-size:14px}.autocomplete-info.secondary{font-size:12px;height:25px}.autocomplete-info .autocomplete-item{text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i8$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i8$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
4426
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AutocompleteChipsComponent, deps: [{ token: i5.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
4427
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: AutocompleteChipsComponent, isStandalone: true, selector: "app-autocomplete-chips", inputs: { name: "name", dataFunction: "dataFunction", displayFunction: "displayFunction", outlineBackground: "outlineBackground" }, queries: [{ propertyName: "dropdownTemplate", first: true, predicate: TemplateRef, descendants: true }], viewQueries: [{ propertyName: "autocompleteTrigger", first: true, predicate: MatAutocompleteTrigger, descendants: true }, { propertyName: "inputRef", first: true, predicate: ["autoCompleteInput"], descendants: true }], ngImport: i0, template: "<div class=\"w-full\" [ngClass]=\"{'required' : !!getErrors().length && !formControl.untouched && !(items$ | async)?.length}\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <mat-chip-grid #chipGrid>\r\n <mat-chip-row *ngFor=\"let item of items$ | async as items; let i = index\"\r\n [removable]=\"!disabled\"\r\n (removed)=\"removeItem(i, items)\">\r\n {{ displayFunction(item) }}\r\n <mat-icon class=\"text-mat-sys-on-error-container\" matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\r\n </mat-chip-row>\r\n <input matInput\r\n #autoCompleteInput\r\n [placeholder]=\"name | translate\"\r\n autocomplete=\"off\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n (blur)=\"onTouched($event)\"/>\r\n </mat-chip-grid>\r\n </mat-form-field>\r\n\r\n @for (error of getErrors(); track error) {\r\n @if (!formControl.untouched && !(items$ | async)?.length) {\r\n <mat-error class=\"ml-4 mt-[-2px] text-xs\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n }\r\n</div>\r\n<mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" (optionSelected)=\"addItem($event)\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <ng-container *ngFor=\"let item of data$ | async; let i = index\">\r\n @if (shouldShowOption(item, (items$ | async) ?? [])) {\r\n <mat-option\r\n [value]=\"item\"\r\n class=\"autocomplete-option\"\r\n [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </ng-container>\r\n }\r\n</mat-autocomplete>\r\n", styles: [".mat-option-hidden{display:none}.autocomplete-option{height:fit-content}.autocomplete-option.autocomplete-option__active,.autocomplete-option.autocomplete-option__active:hover{background-color:var(--color-primary-50)}.autocomplete-info{height:30px;font-size:14px}.autocomplete-info.secondary{font-size:12px;height:25px}.autocomplete-info .autocomplete-item{text-overflow:ellipsis;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "component", type: i8.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i8$1.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i8$1.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i8$1.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i8$1.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
4428
4428
  }
4429
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AutocompleteChipsComponent, decorators: [{
4429
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: AutocompleteChipsComponent, decorators: [{
4430
4430
  type: Component,
4431
4431
  args: [{ selector: 'app-autocomplete-chips', imports: [SharedModule], template: "<div class=\"w-full\" [ngClass]=\"{'required' : !!getErrors().length && !formControl.untouched && !(items$ | async)?.length}\">\r\n <mat-form-field [ngClass]=\"{ 'outline-background': outlineBackground }\" class=\"w-full\">\r\n <mat-label>\r\n <span>{{ name | translate }}</span>\r\n </mat-label>\r\n <mat-chip-grid #chipGrid>\r\n <mat-chip-row *ngFor=\"let item of items$ | async as items; let i = index\"\r\n [removable]=\"!disabled\"\r\n (removed)=\"removeItem(i, items)\">\r\n {{ displayFunction(item) }}\r\n <mat-icon class=\"text-mat-sys-on-error-container\" matChipRemove *ngIf=\"!disabled\">cancel</mat-icon>\r\n </mat-chip-row>\r\n <input matInput\r\n #autoCompleteInput\r\n [placeholder]=\"name | translate\"\r\n autocomplete=\"off\"\r\n [formControl]=\"formControl\"\r\n [matAutocomplete]=\"auto\"\r\n [matChipInputFor]=\"chipGrid\"\r\n (blur)=\"onTouched($event)\"/>\r\n </mat-chip-grid>\r\n </mat-form-field>\r\n\r\n @for (error of getErrors(); track error) {\r\n @if (!formControl.untouched && !(items$ | async)?.length) {\r\n <mat-error class=\"ml-4 mt-[-2px] text-xs\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n }\r\n</div>\r\n<mat-autocomplete #auto=\"matAutocomplete\" [class]=\"'autocomplete-panel'\" (optionSelected)=\"addItem($event)\">\r\n @if (loading$ | async) {\r\n <mat-option>\r\n <div>{{ 'Loading...' }}</div>\r\n <mat-progress-bar mode=\"indeterminate\"></mat-progress-bar>\r\n </mat-option>\r\n } @else {\r\n <ng-container *ngFor=\"let item of data$ | async; let i = index\">\r\n @if (shouldShowOption(item, (items$ | async) ?? [])) {\r\n <mat-option\r\n [value]=\"item\"\r\n class=\"autocomplete-option\"\r\n [attr.data-test]=\"name + 'SearchItem' + (i + 1)\">\r\n <ng-container [ngTemplateOutlet]=\"dropdownTemplate ? dropdownTemplate : defaultTemplate\"\r\n [ngTemplateOutletContext]=\"{ item }\"></ng-container>\r\n <ng-template #defaultTemplate>{{ displayFunction(item) }}</ng-template>\r\n </mat-option>\r\n }\r\n </ng-container>\r\n }\r\n</mat-autocomplete>\r\n", styles: [".mat-option-hidden{display:none}.autocomplete-option{height:fit-content}.autocomplete-option.autocomplete-option__active,.autocomplete-option.autocomplete-option__active:hover{background-color:var(--color-primary-50)}.autocomplete-info{height:30px;font-size:14px}.autocomplete-info.secondary{font-size:12px;height:25px}.autocomplete-info .autocomplete-item{text-overflow:ellipsis;overflow:hidden}\n"] }]
4432
4432
  }], ctorParameters: () => [{ type: i5.NgControl, decorators: [{
@@ -4456,9 +4456,9 @@ class BasicTimeSeriesGraphComponent {
4456
4456
  timeFormatter;
4457
4457
  themeService = inject(ThemeService);
4458
4458
  chartTheme = toSignal(this.themeService.chartTheme$);
4459
- timeSeries = input.required(...(ngDevMode ? [{ debugName: "timeSeries" }] : []));
4460
- desiredTimeFrame = input(...(ngDevMode ? [undefined, { debugName: "desiredTimeFrame" }] : []));
4461
- primaryColor = input(...(ngDevMode ? [undefined, { debugName: "primaryColor" }] : []));
4459
+ timeSeries = input.required(...(ngDevMode ? [{ debugName: "timeSeries" }] : /* istanbul ignore next */ []));
4460
+ desiredTimeFrame = input(...(ngDevMode ? [undefined, { debugName: "desiredTimeFrame" }] : /* istanbul ignore next */ []));
4461
+ primaryColor = input(...(ngDevMode ? [undefined, { debugName: "primaryColor" }] : /* istanbul ignore next */ []));
4462
4462
  graphOptions = computed(() => {
4463
4463
  const timeSeries = this.timeSeries();
4464
4464
  const dataZoom = untracked(this.dataZoom);
@@ -4513,8 +4513,8 @@ class BasicTimeSeriesGraphComponent {
4513
4513
  }
4514
4514
  ]
4515
4515
  };
4516
- }, ...(ngDevMode ? [{ debugName: "graphOptions" }] : []));
4517
- dataZoom = signal(null, ...(ngDevMode ? [{ debugName: "dataZoom" }] : []));
4516
+ }, ...(ngDevMode ? [{ debugName: "graphOptions" }] : /* istanbul ignore next */ []));
4517
+ dataZoom = signal(null, ...(ngDevMode ? [{ debugName: "dataZoom" }] : /* istanbul ignore next */ []));
4518
4518
  constructor(timeFormatter) {
4519
4519
  this.timeFormatter = timeFormatter;
4520
4520
  }
@@ -4524,22 +4524,22 @@ class BasicTimeSeriesGraphComponent {
4524
4524
  end: event.batch?.[0]?.end
4525
4525
  });
4526
4526
  }
4527
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BasicTimeSeriesGraphComponent, deps: [{ token: SimpleDateTimePipe }], target: i0.ɵɵFactoryTarget.Component });
4528
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: BasicTimeSeriesGraphComponent, isStandalone: true, selector: "app-basic-time-series-graph", inputs: { timeSeries: { classPropertyName: "timeSeries", publicName: "timeSeries", isSignal: true, isRequired: true, transformFunction: null }, desiredTimeFrame: { classPropertyName: "desiredTimeFrame", publicName: "desiredTimeFrame", isSignal: true, isRequired: false, transformFunction: null }, primaryColor: { classPropertyName: "primaryColor", publicName: "primaryColor", isSignal: true, isRequired: false, transformFunction: null } }, providers: [SimpleDatePipe, SimpleDateTimePipe], ngImport: i0, template: "<div echarts [options]=\"graphOptions()\" (chartDataZoom)=\"chartZoom($event)\" [theme]=\"chartTheme()!\" class=\"w-full h-full\"></div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "initOpts", "merge", "autoResize", "loading", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartHighlight", "chartDownplay", "chartSelectChanged", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendLegendSelectAll", "chartLegendLegendInverseSelect", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartGraphRoam", "chartGeoRoam", "chartTreeRoam", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartGeoSelectChanged", "chartGeoSelected", "chartGeoUnselected", "chartAxisAreaSelected", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartGlobalCursorTaken", "chartRendered", "chartFinished"], exportAs: ["echarts"] }] });
4527
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: BasicTimeSeriesGraphComponent, deps: [{ token: SimpleDateTimePipe }], target: i0.ɵɵFactoryTarget.Component });
4528
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: BasicTimeSeriesGraphComponent, isStandalone: true, selector: "app-basic-time-series-graph", inputs: { timeSeries: { classPropertyName: "timeSeries", publicName: "timeSeries", isSignal: true, isRequired: true, transformFunction: null }, desiredTimeFrame: { classPropertyName: "desiredTimeFrame", publicName: "desiredTimeFrame", isSignal: true, isRequired: false, transformFunction: null }, primaryColor: { classPropertyName: "primaryColor", publicName: "primaryColor", isSignal: true, isRequired: false, transformFunction: null } }, providers: [SimpleDatePipe, SimpleDateTimePipe], ngImport: i0, template: "<div echarts [options]=\"graphOptions()\" (chartDataZoom)=\"chartZoom($event)\" [theme]=\"chartTheme()!\" class=\"w-full h-full\"></div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: NgxEchartsDirective, selector: "echarts, [echarts]", inputs: ["options", "theme", "initOpts", "merge", "autoResize", "loading", "loadingType", "loadingOpts"], outputs: ["chartInit", "optionsError", "chartClick", "chartDblClick", "chartMouseDown", "chartMouseMove", "chartMouseUp", "chartMouseOver", "chartMouseOut", "chartGlobalOut", "chartContextMenu", "chartHighlight", "chartDownplay", "chartSelectChanged", "chartLegendSelectChanged", "chartLegendSelected", "chartLegendUnselected", "chartLegendLegendSelectAll", "chartLegendLegendInverseSelect", "chartLegendScroll", "chartDataZoom", "chartDataRangeSelected", "chartGraphRoam", "chartGeoRoam", "chartTreeRoam", "chartTimelineChanged", "chartTimelinePlayChanged", "chartRestore", "chartDataViewChanged", "chartMagicTypeChanged", "chartGeoSelectChanged", "chartGeoSelected", "chartGeoUnselected", "chartAxisAreaSelected", "chartBrush", "chartBrushEnd", "chartBrushSelected", "chartGlobalCursorTaken", "chartRendered", "chartFinished"], exportAs: ["echarts"] }] });
4529
4529
  }
4530
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: BasicTimeSeriesGraphComponent, decorators: [{
4530
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: BasicTimeSeriesGraphComponent, decorators: [{
4531
4531
  type: Component,
4532
4532
  args: [{ selector: 'app-basic-time-series-graph', imports: [NgxEchartsDirective], providers: [SimpleDatePipe, SimpleDateTimePipe], template: "<div echarts [options]=\"graphOptions()\" (chartDataZoom)=\"chartZoom($event)\" [theme]=\"chartTheme()!\" class=\"w-full h-full\"></div>\r\n" }]
4533
4533
  }], ctorParameters: () => [{ type: SimpleDateTimePipe }], propDecorators: { timeSeries: [{ type: i0.Input, args: [{ isSignal: true, alias: "timeSeries", required: true }] }], desiredTimeFrame: [{ type: i0.Input, args: [{ isSignal: true, alias: "desiredTimeFrame", required: false }] }], primaryColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "primaryColor", required: false }] }] } });
4534
4534
 
4535
4535
  class CardLabeledValueComponent {
4536
4536
  permissionService = inject(PermissionsService);
4537
- permissions = input(...(ngDevMode ? [undefined, { debugName: "permissions" }] : []));
4538
- useAssetPermissions = input(false, ...(ngDevMode ? [{ debugName: "useAssetPermissions" }] : []));
4539
- label = input.required(...(ngDevMode ? [{ debugName: "label" }] : []));
4540
- icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : []));
4541
- tooltip = input(...(ngDevMode ? [undefined, { debugName: "tooltip" }] : []));
4542
- editFunction = input(...(ngDevMode ? [undefined, { debugName: "editFunction" }] : []));
4537
+ permissions = input(...(ngDevMode ? [undefined, { debugName: "permissions" }] : /* istanbul ignore next */ []));
4538
+ useAssetPermissions = input(false, ...(ngDevMode ? [{ debugName: "useAssetPermissions" }] : /* istanbul ignore next */ []));
4539
+ label = input.required(...(ngDevMode ? [{ debugName: "label" }] : /* istanbul ignore next */ []));
4540
+ icon = input('edit', ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
4541
+ tooltip = input(...(ngDevMode ? [undefined, { debugName: "tooltip" }] : /* istanbul ignore next */ []));
4542
+ editFunction = input(...(ngDevMode ? [undefined, { debugName: "editFunction" }] : /* istanbul ignore next */ []));
4543
4543
  permissionFunction = computed(() => {
4544
4544
  const requiredPermissions = this.permissions();
4545
4545
  if (!requiredPermissions) {
@@ -4548,12 +4548,12 @@ class CardLabeledValueComponent {
4548
4548
  return this.useAssetPermissions()
4549
4549
  ? this.permissionService.hasAnyGlobalOrAssetPermission(requiredPermissions)
4550
4550
  : this.permissionService.hasAnyPermission(requiredPermissions);
4551
- }, ...(ngDevMode ? [{ debugName: "permissionFunction" }] : []));
4551
+ }, ...(ngDevMode ? [{ debugName: "permissionFunction" }] : /* istanbul ignore next */ []));
4552
4552
  hasPermission = toSignal(toObservable(this.permissionFunction).pipe(switchMap(obs => obs)), { initialValue: false });
4553
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CardLabeledValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4554
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: CardLabeledValueComponent, isStandalone: true, selector: "app-card-labeled-value", inputs: { permissions: { classPropertyName: "permissions", publicName: "permissions", isSignal: true, isRequired: false, transformFunction: null }, useAssetPermissions: { classPropertyName: "useAssetPermissions", publicName: "useAssetPermissions", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, editFunction: { classPropertyName: "editFunction", publicName: "editFunction", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-card\r\n [ngClass]=\"{'cursor-pointer hover:bg-hover-color': editFunction() && hasPermission() }\"\r\n [matTooltipDisabled]=\"!hasPermission()\" (click)=\"editFunction() && hasPermission() ? editFunction()!() : null\"\r\n [matTooltip]=\"tooltip() | translate\"\r\n matTooltipPosition=\"above\"\r\n>\r\n <div class=\"flex items-center justify-between p-4 gap-x-4 h-full\">\r\n <div class=\"flex flex-col w-full h-full overflow-hidden\">\r\n <div class=\"font-semibold shrink-0\">{{ label() | translate }}</div>\r\n <div class=\"text-mat-sys-primary flex items-center grow\">\r\n <ng-content/>\r\n </div>\r\n </div>\r\n @if (editFunction() && hasPermission()) {\r\n <button mat-icon-button [ngClass]=\"icon() === 'delete' ? 'text-mat-sys-on-error-container' : 'text-mat-sys-primary'\" (click)=\"editFunction()!(); $event.stopPropagation()\">\r\n <mat-icon>{{ icon() }}</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n</mat-card>\r\n", styles: ["mat-card{height:100%;min-height:5.5rem}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
4553
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: CardLabeledValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4554
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: CardLabeledValueComponent, isStandalone: true, selector: "app-card-labeled-value", inputs: { permissions: { classPropertyName: "permissions", publicName: "permissions", isSignal: true, isRequired: false, transformFunction: null }, useAssetPermissions: { classPropertyName: "useAssetPermissions", publicName: "useAssetPermissions", isSignal: true, isRequired: false, transformFunction: null }, label: { classPropertyName: "label", publicName: "label", isSignal: true, isRequired: true, transformFunction: null }, icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: false, transformFunction: null }, tooltip: { classPropertyName: "tooltip", publicName: "tooltip", isSignal: true, isRequired: false, transformFunction: null }, editFunction: { classPropertyName: "editFunction", publicName: "editFunction", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<mat-card\r\n [ngClass]=\"{'cursor-pointer hover:bg-hover-color': editFunction() && hasPermission() }\"\r\n [matTooltipDisabled]=\"!hasPermission()\" (click)=\"editFunction() && hasPermission() ? editFunction()!() : null\"\r\n [matTooltip]=\"tooltip() | translate\"\r\n matTooltipPosition=\"above\"\r\n>\r\n <div class=\"flex items-center justify-between p-4 gap-x-4 h-full\">\r\n <div class=\"flex flex-col w-full h-full overflow-hidden\">\r\n <div class=\"font-semibold shrink-0\">{{ label() | translate }}</div>\r\n <div class=\"text-mat-sys-primary flex items-center grow\">\r\n <ng-content/>\r\n </div>\r\n </div>\r\n @if (editFunction() && hasPermission()) {\r\n <button mat-icon-button [ngClass]=\"icon() === 'delete' ? 'text-mat-sys-on-error-container' : 'text-mat-sys-primary'\" (click)=\"editFunction()!(); $event.stopPropagation()\">\r\n <mat-icon>{{ icon() }}</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n</mat-card>\r\n", styles: ["mat-card{height:100%;min-height:5.5rem}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
4555
4555
  }
4556
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: CardLabeledValueComponent, decorators: [{
4556
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: CardLabeledValueComponent, decorators: [{
4557
4557
  type: Component,
4558
4558
  args: [{ selector: 'app-card-labeled-value', imports: [SharedModule], template: "<mat-card\r\n [ngClass]=\"{'cursor-pointer hover:bg-hover-color': editFunction() && hasPermission() }\"\r\n [matTooltipDisabled]=\"!hasPermission()\" (click)=\"editFunction() && hasPermission() ? editFunction()!() : null\"\r\n [matTooltip]=\"tooltip() | translate\"\r\n matTooltipPosition=\"above\"\r\n>\r\n <div class=\"flex items-center justify-between p-4 gap-x-4 h-full\">\r\n <div class=\"flex flex-col w-full h-full overflow-hidden\">\r\n <div class=\"font-semibold shrink-0\">{{ label() | translate }}</div>\r\n <div class=\"text-mat-sys-primary flex items-center grow\">\r\n <ng-content/>\r\n </div>\r\n </div>\r\n @if (editFunction() && hasPermission()) {\r\n <button mat-icon-button [ngClass]=\"icon() === 'delete' ? 'text-mat-sys-on-error-container' : 'text-mat-sys-primary'\" (click)=\"editFunction()!(); $event.stopPropagation()\">\r\n <mat-icon>{{ icon() }}</mat-icon>\r\n </button>\r\n }\r\n </div>\r\n</mat-card>\r\n", styles: ["mat-card{height:100%;min-height:5.5rem}\n"] }]
4559
4559
  }], propDecorators: { permissions: [{ type: i0.Input, args: [{ isSignal: true, alias: "permissions", required: false }] }], useAssetPermissions: [{ type: i0.Input, args: [{ isSignal: true, alias: "useAssetPermissions", required: false }] }], label: [{ type: i0.Input, args: [{ isSignal: true, alias: "label", required: true }] }], icon: [{ type: i0.Input, args: [{ isSignal: true, alias: "icon", required: false }] }], tooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "tooltip", required: false }] }], editFunction: [{ type: i0.Input, args: [{ isSignal: true, alias: "editFunction", required: false }] }] } });
@@ -4568,10 +4568,10 @@ class ConfirmationDialogComponent {
4568
4568
  confirm() {
4569
4569
  this.dialog.close(true);
4570
4570
  }
4571
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$5.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
4572
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: ConfirmationDialogComponent, isStandalone: true, selector: "app-confirmation-dialog", ngImport: i0, template: "<div class=\"flex flex-col flex-auto gap-y-8 p-4 content\">\r\n <div class=\"text-lg\">{{ 'COMMON.CONFIRMATION_DIALOG_TITLE' | translate }}</div>\r\n <div class=\"flex flex-col flex-auto gap-y-4\">\r\n <div class=\"flex flex-col flex-auto gap-y-4 max-h-96 overflow-hidden\">\r\n <div class=\"whitespace-pre-line\">{{ data.message | translate:data.parameters }}</div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row flex-auto gap-x-2 justify-end\">\r\n <button mat-button mat-dialog-close>{{ 'COMMON.CANCEL' | translate }}</button>\r\n <button [ngClass]=\"{'destructive-flat-button': data.deleteDialog}\" mat-flat-button\r\n (click)=\"confirm()\">{{ data.actionButtonLabel ? (data.actionButtonLabel! | translate) : (data.deleteDialog ? ('COMMON.DELETE' | translate) : ('COMMON.CONFIRMATION_DIALOG_CONFIRM' | translate)) }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".content{max-width:var(--medium-dialog-width)}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
4571
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ConfirmationDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$5.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
4572
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: ConfirmationDialogComponent, isStandalone: true, selector: "app-confirmation-dialog", ngImport: i0, template: "<div class=\"flex flex-col flex-auto gap-y-8 p-4 content\">\r\n <div class=\"text-lg\">{{ 'COMMON.CONFIRMATION_DIALOG_TITLE' | translate }}</div>\r\n <div class=\"flex flex-col flex-auto gap-y-4\">\r\n <div class=\"flex flex-col flex-auto gap-y-4 max-h-96 overflow-hidden\">\r\n <div class=\"whitespace-pre-line\">{{ data.message | translate:data.parameters }}</div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row flex-auto gap-x-2 justify-end\">\r\n <button mat-button mat-dialog-close>{{ 'COMMON.CANCEL' | translate }}</button>\r\n <button [ngClass]=\"{'destructive-flat-button': data.deleteDialog}\" mat-flat-button\r\n (click)=\"confirm()\">{{ data.actionButtonLabel ? (data.actionButtonLabel! | translate) : (data.deleteDialog ? ('COMMON.DELETE' | translate) : ('COMMON.CONFIRMATION_DIALOG_CONFIRM' | translate)) }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".content{max-width:var(--medium-dialog-width)}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
4573
4573
  }
4574
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
4574
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ConfirmationDialogComponent, decorators: [{
4575
4575
  type: Component,
4576
4576
  args: [{ selector: 'app-confirmation-dialog', imports: [SharedModule], template: "<div class=\"flex flex-col flex-auto gap-y-8 p-4 content\">\r\n <div class=\"text-lg\">{{ 'COMMON.CONFIRMATION_DIALOG_TITLE' | translate }}</div>\r\n <div class=\"flex flex-col flex-auto gap-y-4\">\r\n <div class=\"flex flex-col flex-auto gap-y-4 max-h-96 overflow-hidden\">\r\n <div class=\"whitespace-pre-line\">{{ data.message | translate:data.parameters }}</div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row flex-auto gap-x-2 justify-end\">\r\n <button mat-button mat-dialog-close>{{ 'COMMON.CANCEL' | translate }}</button>\r\n <button [ngClass]=\"{'destructive-flat-button': data.deleteDialog}\" mat-flat-button\r\n (click)=\"confirm()\">{{ data.actionButtonLabel ? (data.actionButtonLabel! | translate) : (data.deleteDialog ? ('COMMON.DELETE' | translate) : ('COMMON.CONFIRMATION_DIALOG_CONFIRM' | translate)) }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".content{max-width:var(--medium-dialog-width)}\n"] }]
4577
4577
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -4608,12 +4608,12 @@ class PeriodErrorStateMatcher {
4608
4608
  class DateRangeInputComponent {
4609
4609
  destroyRef;
4610
4610
  tenantPropertiesService;
4611
- availableDateOptions = input([RelativeTimePeriod.TODAY, RelativeTimePeriod.YESTERDAY, RelativeTimePeriod.LAST_7_DAYS, RelativeTimePeriod.LAST_30_DAYS], ...(ngDevMode ? [{ debugName: "availableDateOptions" }] : []));
4612
- translationPrefix = input(...(ngDevMode ? [undefined, { debugName: "translationPrefix" }] : []));
4613
- allowCustomTimespan = input(true, ...(ngDevMode ? [{ debugName: "allowCustomTimespan" }] : []));
4614
- isInForm = input(true, ...(ngDevMode ? [{ debugName: "isInForm" }] : []));
4615
- datePicker = viewChild('picker', ...(ngDevMode ? [{ debugName: "datePicker" }] : []));
4616
- validators = input([], ...(ngDevMode ? [{ debugName: "validators" }] : []));
4611
+ availableDateOptions = input([RelativeTimePeriod.TODAY, RelativeTimePeriod.YESTERDAY, RelativeTimePeriod.LAST_7_DAYS, RelativeTimePeriod.LAST_30_DAYS], ...(ngDevMode ? [{ debugName: "availableDateOptions" }] : /* istanbul ignore next */ []));
4612
+ translationPrefix = input(...(ngDevMode ? [undefined, { debugName: "translationPrefix" }] : /* istanbul ignore next */ []));
4613
+ allowCustomTimespan = input(true, ...(ngDevMode ? [{ debugName: "allowCustomTimespan" }] : /* istanbul ignore next */ []));
4614
+ isInForm = input(true, ...(ngDevMode ? [{ debugName: "isInForm" }] : /* istanbul ignore next */ []));
4615
+ datePicker = viewChild('picker', ...(ngDevMode ? [{ debugName: "datePicker" }] : /* istanbul ignore next */ []));
4616
+ validators = input([], ...(ngDevMode ? [{ debugName: "validators" }] : /* istanbul ignore next */ []));
4617
4617
  validateForm = (form) => {
4618
4618
  const { periodOption, from, to } = form.value;
4619
4619
  if (periodOption === CUSTOM_PERIOD) {
@@ -4722,8 +4722,8 @@ class DateRangeInputComponent {
4722
4722
  };
4723
4723
  }
4724
4724
  }
4725
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DateRangeInputComponent, deps: [{ token: i0.DestroyRef }, { token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Component });
4726
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DateRangeInputComponent, isStandalone: true, selector: "app-date-range-input", inputs: { availableDateOptions: { classPropertyName: "availableDateOptions", publicName: "availableDateOptions", isSignal: true, isRequired: false, transformFunction: null }, translationPrefix: { classPropertyName: "translationPrefix", publicName: "translationPrefix", isSignal: true, isRequired: false, transformFunction: null }, allowCustomTimespan: { classPropertyName: "allowCustomTimespan", publicName: "allowCustomTimespan", isSignal: true, isRequired: false, transformFunction: null }, isInForm: { classPropertyName: "isInForm", publicName: "isInForm", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
4725
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DateRangeInputComponent, deps: [{ token: i0.DestroyRef }, { token: TenantPropertiesService }], target: i0.ɵɵFactoryTarget.Component });
4726
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DateRangeInputComponent, isStandalone: true, selector: "app-date-range-input", inputs: { availableDateOptions: { classPropertyName: "availableDateOptions", publicName: "availableDateOptions", isSignal: true, isRequired: false, transformFunction: null }, translationPrefix: { classPropertyName: "translationPrefix", publicName: "translationPrefix", isSignal: true, isRequired: false, transformFunction: null }, allowCustomTimespan: { classPropertyName: "allowCustomTimespan", publicName: "allowCustomTimespan", isSignal: true, isRequired: false, transformFunction: null }, isInForm: { classPropertyName: "isInForm", publicName: "isInForm", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
4727
4727
  {
4728
4728
  provide: NG_VALUE_ACCESSOR,
4729
4729
  useExisting: forwardRef(() => DateRangeInputComponent),
@@ -4736,7 +4736,7 @@ class DateRangeInputComponent {
4736
4736
  }
4737
4737
  ], viewQueries: [{ propertyName: "datePicker", first: true, predicate: ["picker"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"w-full flex flex-col\" [formGroup]=\"dateRangeForm\">\r\n @if (isInForm()) {\r\n <mat-form-field class=\"flex\">\r\n <mat-label>{{ (translationPrefix() ? translationPrefix() + '_LABEL' : 'COMMON.DATE_RANGE_LABEL') | translate }}</mat-label>\r\n <mat-select (blur)=\"onTouched($event)\" formControlName=\"periodOption\" (selectionChange)=\"onTimeRangeChanged($event)\" [errorStateMatcher]=\"periodErrorStateMatcher\" panelClass=\"date-range-panel\">\r\n @for (periodOption of availableDateOptions(); track $index) {\r\n <mat-option [value]=\"periodOption\">{{ 'COMMON.RELATIVE_TIME_PERIOD_' + periodOption | translate }}</mat-option>\r\n }\r\n @if (allowCustomTimespan()) {\r\n <mat-option [value]=\"CUSTOM_PERIOD\">\r\n <div class=\"flex flex-row gap-x-4\">\r\n @if (dateRangeForm.get('from')?.value) {\r\n <div class=\"flex flex-row\">\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('from')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n <span class=\"whitespace-nowrap h-fit\">&nbsp;-&nbsp;</span>\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('to')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n </div>\r\n } @else {\r\n <div>{{ 'COMMON.RELATIVE_TIME_PERIOD_CUSTOM' | translate }}</div>\r\n }\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <mat-date-range-input [rangePicker]=\"picker\" style=\"visibility: hidden; width: 0; height: 0;\">\r\n <input (blur)=\"onTouched($event)\" matStartDate formControlName=\"from\">\r\n <input (blur)=\"onTouched($event)\" matEndDate formControlName=\"to\"/>\r\n </mat-date-range-input>\r\n <mat-date-range-picker #picker (closed)=\"emitValueChange()\"></mat-date-range-picker>\r\n @if (dateRangeForm.get('periodOption')?.value === CUSTOM_PERIOD) {\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\r\n }\r\n @if (dateRangeForm.touched && dateRangeForm.hasError('required')) {\r\n <mat-error>\r\n {{ 'COMMON.ERROR_VALIDATION_REQUIRED' | translate }}\r\n </mat-error>\r\n }\r\n @if (dateRangeForm.touched && dateRangeForm.hasError('incompletePeriod')) {\r\n {{ 'COMMON.ERROR_VALIDATION_REQUIRED' | translate }}\r\n }\r\n </mat-form-field>\r\n } @else {\r\n <div class=\"flex\">\r\n <mat-select class=\"date-range-flat-picker-select\" (blur)=\"onTouched($event)\" formControlName=\"periodOption\" (selectionChange)=\"onTimeRangeChanged($event)\" [errorStateMatcher]=\"periodErrorStateMatcher\" panelClass=\"date-range-panel\">\r\n @for (periodOption of availableDateOptions(); track $index) {\r\n <mat-option [value]=\"periodOption\">{{ 'COMMON.RELATIVE_TIME_PERIOD_' + periodOption | translate }}</mat-option>\r\n }\r\n @if (allowCustomTimespan()) {\r\n <mat-option [value]=\"CUSTOM_PERIOD\">\r\n <div class=\"flex flex-row gap-x-4\">\r\n @if (dateRangeForm.get('from')?.value) {\r\n <div class=\"flex flex-row\">\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('from')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n <span class=\"whitespace-nowrap h-fit\">&nbsp;-&nbsp;</span>\r\n <span class=\"whitespace-nowrap h-fit\">{{ dateRangeForm.get('to')?.value?.toMillis() | simpleDate : undefined: false }}</span>\r\n </div>\r\n } @else {\r\n <div>{{ 'COMMON.RELATIVE_TIME_PERIOD_CUSTOM' | translate }}</div>\r\n }\r\n </div>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n <mat-date-range-input [rangePicker]=\"picker\" style=\"visibility: hidden; width: 0; height: 0;\">\r\n <input (blur)=\"onTouched($event)\" matStartDate formControlName=\"from\">\r\n <input (blur)=\"onTouched($event)\" matEndDate formControlName=\"to\"/>\r\n </mat-date-range-input>\r\n <mat-date-range-picker #picker (closed)=\"emitValueChange()\"></mat-date-range-picker>\r\n @if (dateRangeForm.get('periodOption')?.value === CUSTOM_PERIOD) {\r\n <mat-datepicker-toggle matSuffix [for]=\"picker\" class=\"date-range-flat-picker-toggle\"></mat-datepicker-toggle>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i4$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "component", type: i4$4.MatDateRangeInput, selector: "mat-date-range-input", inputs: ["rangePicker", "required", "dateFilter", "min", "max", "disabled", "separator", "comparisonStart", "comparisonEnd"], exportAs: ["matDateRangeInput"] }, { kind: "directive", type: i4$4.MatStartDate, selector: "input[matStartDate]", outputs: ["dateChange", "dateInput"] }, { kind: "directive", type: i4$4.MatEndDate, selector: "input[matEndDate]", outputs: ["dateChange", "dateInput"] }, { kind: "component", type: i4$4.MatDateRangePicker, selector: "mat-date-range-picker", exportAs: ["matDateRangePicker"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: SimpleDatePipe, name: "simpleDate" }] });
4738
4738
  }
4739
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DateRangeInputComponent, decorators: [{
4739
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DateRangeInputComponent, decorators: [{
4740
4740
  type: Component,
4741
4741
  args: [{ selector: 'app-date-range-input', imports: [SharedModule, SimpleDatePipe], providers: [
4742
4742
  {
@@ -4756,9 +4756,9 @@ class DateTimeFormFieldComponent {
4756
4756
  translate;
4757
4757
  dateLabel;
4758
4758
  timeLabel;
4759
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
4760
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
4761
- timezone = input(null, ...(ngDevMode ? [{ debugName: "timezone" }] : []));
4759
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
4760
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
4761
+ timezone = input(null, ...(ngDevMode ? [{ debugName: "timezone" }] : /* istanbul ignore next */ []));
4762
4762
  tenantProperties = inject(TenantPropertiesService);
4763
4763
  formGroup = new FormGroup({
4764
4764
  date: new FormControl(null),
@@ -4853,8 +4853,8 @@ class DateTimeFormFieldComponent {
4853
4853
  this.onTimeInputChange.next(value);
4854
4854
  }
4855
4855
  }
4856
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DateTimeFormFieldComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
4857
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DateTimeFormFieldComponent, isStandalone: true, selector: "app-date-time-form-field", inputs: { dateLabel: { classPropertyName: "dateLabel", publicName: "dateLabel", isSignal: false, isRequired: false, transformFunction: null }, timeLabel: { classPropertyName: "timeLabel", publicName: "timeLabel", isSignal: false, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null }, timezone: { classPropertyName: "timezone", publicName: "timezone", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
4856
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DateTimeFormFieldComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
4857
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DateTimeFormFieldComponent, isStandalone: true, selector: "app-date-time-form-field", inputs: { dateLabel: { classPropertyName: "dateLabel", publicName: "dateLabel", isSignal: false, isRequired: false, transformFunction: null }, timeLabel: { classPropertyName: "timeLabel", publicName: "timeLabel", isSignal: false, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null }, timezone: { classPropertyName: "timezone", publicName: "timezone", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
4858
4858
  {
4859
4859
  provide: NG_VALUE_ACCESSOR,
4860
4860
  useExisting: forwardRef(() => DateTimeFormFieldComponent),
@@ -4867,7 +4867,7 @@ class DateTimeFormFieldComponent {
4867
4867
  }
4868
4868
  ], ngImport: i0, template: "<ng-container [formGroup]=\"formGroup\">\r\n <div class=\"flex flex-col gap-y-4\">\r\n <mat-form-field [matTooltip]=\"getDateErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ (dateLabel ?? 'COMMON.DATE') | translate }}</mat-label>\r\n <input [matDatepicker]=\"picker\" formControlName=\"date\" matInput>\r\n <mat-datepicker-toggle [for]=\"picker\" matIconSuffix></mat-datepicker-toggle>\r\n <mat-datepicker #picker></mat-datepicker>\r\n @for (error of getDateErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n <mat-form-field [matTooltip]=\"getTimeErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ (timeLabel ?? 'COMMON.TIME') | translate }}</mat-label>\r\n <input [format]=\"24\" [ngxMatTimepicker]=\"pickerA\" formControlName=\"time\" matInput (input)=\"onInputChange($event)\"/>\r\n <mat-icon (click)=\"pickerA.open()\" matSuffix> watch_later</mat-icon>\r\n <ngx-mat-timepicker #pickerA></ngx-mat-timepicker>\r\n @for (error of getTimeErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n</ng-container>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$4.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { kind: "directive", type: i4$4.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { kind: "component", type: i4$4.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["for", "tabIndex", "aria-label", "disabled", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgxMatTimepickerDirective, selector: "[ngxMatTimepicker]", inputs: ["format", "max", "min", "ngxMatTimepicker", "value", "disableClick", "disabled"] }, { kind: "component", type: NgxMatTimepickerComponent, selector: "ngx-mat-timepicker", inputs: ["appendToInput", "color", "dottedMinutesInGap", "enableKeyboardInput", "format", "minutesGap", "cancelBtnTmpl", "confirmBtnTmpl", "defaultTime", "disableAnimation", "editableHintTmpl", "hoursOnly", "isEsc", "max", "min", "preventOverlayClick", "timepickerClass"], outputs: ["closed", "hourSelected", "opened", "timeChanged", "timeSet"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
4869
4869
  }
4870
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DateTimeFormFieldComponent, decorators: [{
4870
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DateTimeFormFieldComponent, decorators: [{
4871
4871
  type: Component,
4872
4872
  args: [{ selector: 'app-date-time-form-field', imports: [SharedModule, NgxMatTimepickerDirective, NgxMatTimepickerComponent], providers: [
4873
4873
  {
@@ -4894,8 +4894,8 @@ class DragDropFileUploadComponent {
4894
4894
  accept = '.*';
4895
4895
  multiple = false;
4896
4896
  prompt = 'COMMON.DRAG_DROP_PROMPT';
4897
- highlight = signal(false, ...(ngDevMode ? [{ debugName: "highlight" }] : []));
4898
- disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : []));
4897
+ highlight = signal(false, ...(ngDevMode ? [{ debugName: "highlight" }] : /* istanbul ignore next */ []));
4898
+ disabled = signal(false, ...(ngDevMode ? [{ debugName: "disabled" }] : /* istanbul ignore next */ []));
4899
4899
  files$ = new BehaviorSubject(null);
4900
4900
  TRUNCATE_NAME_LIMIT = 24;
4901
4901
  destroy$ = new Subject();
@@ -5008,10 +5008,10 @@ class DragDropFileUploadComponent {
5008
5008
  this.destroy$.next();
5009
5009
  this.destroy$.complete();
5010
5010
  }
5011
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DragDropFileUploadComponent, deps: [{ token: i5.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
5012
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DragDropFileUploadComponent, isStandalone: true, selector: "application-drag-drop-file-upload", inputs: { accept: "accept", multiple: "multiple", prompt: "prompt" }, viewQueries: [{ propertyName: "dragDropZone", first: true, predicate: ["dragDropZone"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div #dragDropZone class=\"drag-drop-zone flex flex-col items-center justify-center\" [ngClass]=\"{ highlight: highlight(), disabled: disabled() }\">\r\n @if (files$ | async; as files) {\r\n @if (files.length > 0) {\r\n <div class=\"flex flex-col flex-wrap items-center justify-center\">\r\n @for (file of files; track $index) {\r\n <div class=\"name-wrapper flex flex-row items-center justify-center gap-2\">\r\n <mat-icon>description</mat-icon>\r\n <span [matTooltipDisabled]=\"file.name.length < TRUNCATE_NAME_LIMIT\" [matTooltip]=\"file.name\">{{ getFileName(file.name) }}</span>\r\n <mat-icon class=\"delete-button text-mat-sys-on-error-container\" (click)=\"deleteFile($event, $index)\">delete</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n @if (controlDir.control?.errors && controlDir.control?.touched) {\r\n <mat-error>{{ getErrorForTranslation(controlDir.control?.errors).key | translate: getErrorForTranslation(controlDir.control?.errors).params }}</mat-error>\r\n }\r\n</div>\r\n<input #fileInput type=\"file\" [attr.multiple]=\"multiple ? true : null\" [attr.accept]=\"accept === '.*' ? '*' : accept\" (change)=\"onFileAdded($event)\"/>\r\n", styles: [":host{display:block;position:relative}input[type=file]{display:none}.drag-drop-zone{min-height:100px;min-width:250px;border:1px dashed var(--neutral-variant-color-60);cursor:pointer;border-radius:5px}.drag-drop-zone.highlight{background-color:var(--mat-sys-primary-container);border:1px solid var(--mat-sys-on-primary-container)}.drag-drop-zone.disabled{opacity:.5;pointer-events:none;cursor:no-drop}.drag-drop-zone .name-wrapper{cursor:auto}.drag-drop-zone .delete-button{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
5011
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DragDropFileUploadComponent, deps: [{ token: i5.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
5012
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DragDropFileUploadComponent, isStandalone: true, selector: "application-drag-drop-file-upload", inputs: { accept: "accept", multiple: "multiple", prompt: "prompt" }, viewQueries: [{ propertyName: "dragDropZone", first: true, predicate: ["dragDropZone"], descendants: true }, { propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<div #dragDropZone class=\"drag-drop-zone flex flex-col items-center justify-center\" [ngClass]=\"{ highlight: highlight(), disabled: disabled() }\">\r\n @if (files$ | async; as files) {\r\n @if (files.length > 0) {\r\n <div class=\"flex flex-col flex-wrap items-center justify-center\">\r\n @for (file of files; track $index) {\r\n <div class=\"name-wrapper flex flex-row items-center justify-center gap-2\">\r\n <mat-icon>description</mat-icon>\r\n <span [matTooltipDisabled]=\"file.name.length < TRUNCATE_NAME_LIMIT\" [matTooltip]=\"file.name\">{{ getFileName(file.name) }}</span>\r\n <mat-icon class=\"delete-button text-mat-sys-on-error-container\" (click)=\"deleteFile($event, $index)\">delete</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n @if (controlDir.control?.errors && controlDir.control?.touched) {\r\n <mat-error>{{ getErrorForTranslation(controlDir.control?.errors).key | translate: getErrorForTranslation(controlDir.control?.errors).params }}</mat-error>\r\n }\r\n</div>\r\n<input #fileInput type=\"file\" [attr.multiple]=\"multiple ? true : null\" [attr.accept]=\"accept === '.*' ? '*' : accept\" (change)=\"onFileAdded($event)\"/>\r\n", styles: [":host{display:block;position:relative}input[type=file]{display:none}.drag-drop-zone{min-height:100px;min-width:250px;border:1px dashed var(--neutral-variant-color-60);cursor:pointer;border-radius:5px}.drag-drop-zone.highlight{background-color:var(--mat-sys-primary-container);border:1px solid var(--mat-sys-on-primary-container)}.drag-drop-zone.disabled{opacity:.5;pointer-events:none;cursor:no-drop}.drag-drop-zone .name-wrapper{cursor:auto}.drag-drop-zone .delete-button{cursor:pointer}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
5013
5013
  }
5014
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DragDropFileUploadComponent, decorators: [{
5014
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DragDropFileUploadComponent, decorators: [{
5015
5015
  type: Component,
5016
5016
  args: [{ selector: 'application-drag-drop-file-upload', imports: [SharedModule], template: "<div #dragDropZone class=\"drag-drop-zone flex flex-col items-center justify-center\" [ngClass]=\"{ highlight: highlight(), disabled: disabled() }\">\r\n @if (files$ | async; as files) {\r\n @if (files.length > 0) {\r\n <div class=\"flex flex-col flex-wrap items-center justify-center\">\r\n @for (file of files; track $index) {\r\n <div class=\"name-wrapper flex flex-row items-center justify-center gap-2\">\r\n <mat-icon>description</mat-icon>\r\n <span [matTooltipDisabled]=\"file.name.length < TRUNCATE_NAME_LIMIT\" [matTooltip]=\"file.name\">{{ getFileName(file.name) }}</span>\r\n <mat-icon class=\"delete-button text-mat-sys-on-error-container\" (click)=\"deleteFile($event, $index)\">delete</mat-icon>\r\n </div>\r\n }\r\n </div>\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n } @else {\r\n <span>{{ prompt | translate }}</span>\r\n }\r\n @if (controlDir.control?.errors && controlDir.control?.touched) {\r\n <mat-error>{{ getErrorForTranslation(controlDir.control?.errors).key | translate: getErrorForTranslation(controlDir.control?.errors).params }}</mat-error>\r\n }\r\n</div>\r\n<input #fileInput type=\"file\" [attr.multiple]=\"multiple ? true : null\" [attr.accept]=\"accept === '.*' ? '*' : accept\" (change)=\"onFileAdded($event)\"/>\r\n", styles: [":host{display:block;position:relative}input[type=file]{display:none}.drag-drop-zone{min-height:100px;min-width:250px;border:1px dashed var(--neutral-variant-color-60);cursor:pointer;border-radius:5px}.drag-drop-zone.highlight{background-color:var(--mat-sys-primary-container);border:1px solid var(--mat-sys-on-primary-container)}.drag-drop-zone.disabled{opacity:.5;pointer-events:none;cursor:no-drop}.drag-drop-zone .name-wrapper{cursor:auto}.drag-drop-zone .delete-button{cursor:pointer}\n"] }]
5017
5017
  }], ctorParameters: () => [{ type: i5.NgControl, decorators: [{
@@ -5033,16 +5033,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5033
5033
  }] } });
5034
5034
 
5035
5035
  class ZoomControlsComponent {
5036
- zoomPercentage = input.required(...(ngDevMode ? [{ debugName: "zoomPercentage" }] : []));
5037
- canZoomIn = input.required(...(ngDevMode ? [{ debugName: "canZoomIn" }] : []));
5038
- canZoomOut = input.required(...(ngDevMode ? [{ debugName: "canZoomOut" }] : []));
5036
+ zoomPercentage = input.required(...(ngDevMode ? [{ debugName: "zoomPercentage" }] : /* istanbul ignore next */ []));
5037
+ canZoomIn = input.required(...(ngDevMode ? [{ debugName: "canZoomIn" }] : /* istanbul ignore next */ []));
5038
+ canZoomOut = input.required(...(ngDevMode ? [{ debugName: "canZoomOut" }] : /* istanbul ignore next */ []));
5039
5039
  zoomIn = output();
5040
5040
  zoomOut = output();
5041
5041
  reset = output();
5042
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ZoomControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5043
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: ZoomControlsComponent, isStandalone: true, selector: "app-zoom-controls", inputs: { zoomPercentage: { classPropertyName: "zoomPercentage", publicName: "zoomPercentage", isSignal: true, isRequired: true, transformFunction: null }, canZoomIn: { classPropertyName: "canZoomIn", publicName: "canZoomIn", isSignal: true, isRequired: true, transformFunction: null }, canZoomOut: { classPropertyName: "canZoomOut", publicName: "canZoomOut", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { zoomIn: "zoomIn", zoomOut: "zoomOut", reset: "reset" }, ngImport: i0, template: "<div class=\"control-group\">\r\n <button class=\"icon-btn\"\r\n type=\"button\"\r\n (click)=\"zoomOut.emit()\"\r\n [disabled]=\"!canZoomOut()\"\r\n [class.disabled]=\"!canZoomOut()\"\r\n [matTooltip]=\"'COMMON.ZOOM_OUT' | translate\">\r\n <mat-icon>zoom_out</mat-icon>\r\n </button>\r\n <span class=\"zoom-level\"\r\n (click)=\"reset.emit()\"\r\n [matTooltip]=\"'COMMON.ZOOM_RESET' | translate\">{{ zoomPercentage() }}%</span>\r\n <button class=\"icon-btn\"\r\n type=\"button\"\r\n (click)=\"zoomIn.emit()\"\r\n [disabled]=\"!canZoomIn()\"\r\n [class.disabled]=\"!canZoomIn()\"\r\n [matTooltip]=\"'COMMON.ZOOM_IN' | translate\">\r\n <mat-icon>zoom_in</mat-icon>\r\n </button>\r\n</div>\r\n<ng-content></ng-content>\r\n", styles: [":host{display:flex;align-items:center;justify-content:center;gap:12px;background-color:transparent;position:absolute;bottom:0;left:50%;transform:translate(-50%);z-index:1;padding:12px 20px 16px}.control-group{display:flex;align-items:center;gap:4px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:4px;box-shadow:0 2px 8px #0000001f}.zoom-level{min-width:44px;text-align:center;color:var(--mat-sys-on-surface);font-size:13px;font-weight:500;cursor:pointer;padding:4px;border-radius:16px;transition:background-color .2s}.zoom-level:hover{background-color:var(--mat-sys-surface-container-high)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background-color:transparent;color:var(--mat-sys-on-surface-variant);cursor:pointer;transition:all .2s ease}.icon-btn:hover:not(.disabled){background-color:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface)}.icon-btn.disabled{opacity:.4;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
5042
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ZoomControlsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5043
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: ZoomControlsComponent, isStandalone: true, selector: "app-zoom-controls", inputs: { zoomPercentage: { classPropertyName: "zoomPercentage", publicName: "zoomPercentage", isSignal: true, isRequired: true, transformFunction: null }, canZoomIn: { classPropertyName: "canZoomIn", publicName: "canZoomIn", isSignal: true, isRequired: true, transformFunction: null }, canZoomOut: { classPropertyName: "canZoomOut", publicName: "canZoomOut", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { zoomIn: "zoomIn", zoomOut: "zoomOut", reset: "reset" }, ngImport: i0, template: "<div class=\"control-group\">\r\n <button class=\"icon-btn\"\r\n type=\"button\"\r\n (click)=\"zoomOut.emit()\"\r\n [disabled]=\"!canZoomOut()\"\r\n [class.disabled]=\"!canZoomOut()\"\r\n [matTooltip]=\"'COMMON.ZOOM_OUT' | translate\">\r\n <mat-icon>zoom_out</mat-icon>\r\n </button>\r\n <span class=\"zoom-level\"\r\n (click)=\"reset.emit()\"\r\n [matTooltip]=\"'COMMON.ZOOM_RESET' | translate\">{{ zoomPercentage() }}%</span>\r\n <button class=\"icon-btn\"\r\n type=\"button\"\r\n (click)=\"zoomIn.emit()\"\r\n [disabled]=\"!canZoomIn()\"\r\n [class.disabled]=\"!canZoomIn()\"\r\n [matTooltip]=\"'COMMON.ZOOM_IN' | translate\">\r\n <mat-icon>zoom_in</mat-icon>\r\n </button>\r\n</div>\r\n<ng-content></ng-content>\r\n", styles: [":host{display:flex;align-items:center;justify-content:center;gap:12px;background-color:transparent;position:absolute;bottom:0;left:50%;transform:translate(-50%);z-index:1;padding:12px 20px 16px}.control-group{display:flex;align-items:center;gap:4px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:4px;box-shadow:0 2px 8px #0000001f}.zoom-level{min-width:44px;text-align:center;color:var(--mat-sys-on-surface);font-size:13px;font-weight:500;cursor:pointer;padding:4px;border-radius:16px;transition:background-color .2s}.zoom-level:hover{background-color:var(--mat-sys-surface-container-high)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background-color:transparent;color:var(--mat-sys-on-surface-variant);cursor:pointer;transition:all .2s ease}.icon-btn:hover:not(.disabled){background-color:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface)}.icon-btn.disabled{opacity:.4;cursor:not-allowed}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
5044
5044
  }
5045
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ZoomControlsComponent, decorators: [{
5045
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ZoomControlsComponent, decorators: [{
5046
5046
  type: Component,
5047
5047
  args: [{ selector: 'app-zoom-controls', imports: [SharedModule], template: "<div class=\"control-group\">\r\n <button class=\"icon-btn\"\r\n type=\"button\"\r\n (click)=\"zoomOut.emit()\"\r\n [disabled]=\"!canZoomOut()\"\r\n [class.disabled]=\"!canZoomOut()\"\r\n [matTooltip]=\"'COMMON.ZOOM_OUT' | translate\">\r\n <mat-icon>zoom_out</mat-icon>\r\n </button>\r\n <span class=\"zoom-level\"\r\n (click)=\"reset.emit()\"\r\n [matTooltip]=\"'COMMON.ZOOM_RESET' | translate\">{{ zoomPercentage() }}%</span>\r\n <button class=\"icon-btn\"\r\n type=\"button\"\r\n (click)=\"zoomIn.emit()\"\r\n [disabled]=\"!canZoomIn()\"\r\n [class.disabled]=\"!canZoomIn()\"\r\n [matTooltip]=\"'COMMON.ZOOM_IN' | translate\">\r\n <mat-icon>zoom_in</mat-icon>\r\n </button>\r\n</div>\r\n<ng-content></ng-content>\r\n", styles: [":host{display:flex;align-items:center;justify-content:center;gap:12px;background-color:transparent;position:absolute;bottom:0;left:50%;transform:translate(-50%);z-index:1;padding:12px 20px 16px}.control-group{display:flex;align-items:center;gap:4px;background:var(--mat-sys-surface-container);border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:4px;box-shadow:0 2px 8px #0000001f}.zoom-level{min-width:44px;text-align:center;color:var(--mat-sys-on-surface);font-size:13px;font-weight:500;cursor:pointer;padding:4px;border-radius:16px;transition:background-color .2s}.zoom-level:hover{background-color:var(--mat-sys-surface-container-high)}.icon-btn{display:flex;align-items:center;justify-content:center;width:36px;height:36px;border:none;border-radius:50%;background-color:transparent;color:var(--mat-sys-on-surface-variant);cursor:pointer;transition:all .2s ease}.icon-btn:hover:not(.disabled){background-color:var(--mat-sys-surface-container-high);color:var(--mat-sys-on-surface)}.icon-btn.disabled{opacity:.4;cursor:not-allowed}\n"] }]
5048
5048
  }], propDecorators: { zoomPercentage: [{ type: i0.Input, args: [{ isSignal: true, alias: "zoomPercentage", required: true }] }], canZoomIn: [{ type: i0.Input, args: [{ isSignal: true, alias: "canZoomIn", required: true }] }], canZoomOut: [{ type: i0.Input, args: [{ isSignal: true, alias: "canZoomOut", required: true }] }], zoomIn: [{ type: i0.Output, args: ["zoomIn"] }], zoomOut: [{ type: i0.Output, args: ["zoomOut"] }], reset: [{ type: i0.Output, args: ["reset"] }] } });
@@ -5052,15 +5052,15 @@ class GoogleMapComponent {
5052
5052
  simpleDateTimePipe;
5053
5053
  ZOOM_BASE = 4;
5054
5054
  map = viewChild.required(GoogleMap);
5055
- googleMapId = input.required(...(ngDevMode ? [{ debugName: "googleMapId" }] : []));
5056
- darkTheme = input.required(...(ngDevMode ? [{ debugName: "darkTheme" }] : []));
5057
- items = input.required(...(ngDevMode ? [{ debugName: "items" }] : []));
5058
- pinColor = input.required(...(ngDevMode ? [{ debugName: "pinColor" }] : []));
5055
+ googleMapId = input.required(...(ngDevMode ? [{ debugName: "googleMapId" }] : /* istanbul ignore next */ []));
5056
+ darkTheme = input.required(...(ngDevMode ? [{ debugName: "darkTheme" }] : /* istanbul ignore next */ []));
5057
+ items = input.required(...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
5058
+ pinColor = input.required(...(ngDevMode ? [{ debugName: "pinColor" }] : /* istanbul ignore next */ []));
5059
5059
  markerClicked = output();
5060
- zoom = signal(4, ...(ngDevMode ? [{ debugName: "zoom" }] : []));
5061
- canZoomIn = computed(() => this.zoom() < 22, ...(ngDevMode ? [{ debugName: "canZoomIn" }] : []));
5062
- canZoomOut = computed(() => this.zoom() > 2, ...(ngDevMode ? [{ debugName: "canZoomOut" }] : []));
5063
- zoomPercentage = computed(() => Math.round(this.zoom() / this.ZOOM_BASE * 100), ...(ngDevMode ? [{ debugName: "zoomPercentage" }] : []));
5060
+ zoom = signal(4, ...(ngDevMode ? [{ debugName: "zoom" }] : /* istanbul ignore next */ []));
5061
+ canZoomIn = computed(() => this.zoom() < 22, ...(ngDevMode ? [{ debugName: "canZoomIn" }] : /* istanbul ignore next */ []));
5062
+ canZoomOut = computed(() => this.zoom() > 2, ...(ngDevMode ? [{ debugName: "canZoomOut" }] : /* istanbul ignore next */ []));
5063
+ zoomPercentage = computed(() => Math.round(this.zoom() / this.ZOOM_BASE * 100), ...(ngDevMode ? [{ debugName: "zoomPercentage" }] : /* istanbul ignore next */ []));
5064
5064
  mapOptions = computed(() => {
5065
5065
  return {
5066
5066
  mapId: this.googleMapId(),
@@ -5081,7 +5081,7 @@ class GoogleMapComponent {
5081
5081
  },
5082
5082
  disableDefaultUI: true
5083
5083
  };
5084
- }, ...(ngDevMode ? [{ debugName: "mapOptions" }] : []));
5084
+ }, ...(ngDevMode ? [{ debugName: "mapOptions" }] : /* istanbul ignore next */ []));
5085
5085
  clusterer = computed(() => {
5086
5086
  const renderer = {
5087
5087
  render: ({ count, position }) => {
@@ -5100,11 +5100,11 @@ class GoogleMapComponent {
5100
5100
  }
5101
5101
  };
5102
5102
  return new MarkerClusterer({ markers: [], map: this.map().googleMap, renderer: renderer, algorithmOptions: { maxZoom: 21 } });
5103
- }, ...(ngDevMode ? [{ debugName: "clusterer" }] : []));
5103
+ }, ...(ngDevMode ? [{ debugName: "clusterer" }] : /* istanbul ignore next */ []));
5104
5104
  markers = computed(() => {
5105
5105
  const itemsWithJitter = this.addJitter(this.items());
5106
5106
  return itemsWithJitter.map((mapItem) => this.createMarker(mapItem));
5107
- }, ...(ngDevMode ? [{ debugName: "markers" }] : []));
5107
+ }, ...(ngDevMode ? [{ debugName: "markers" }] : /* istanbul ignore next */ []));
5108
5108
  mapBounds = new google.maps.LatLngBounds();
5109
5109
  constructor(translateService, simpleDateTimePipe) {
5110
5110
  this.translateService = translateService;
@@ -5237,10 +5237,10 @@ class GoogleMapComponent {
5237
5237
  });
5238
5238
  return result;
5239
5239
  }
5240
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: GoogleMapComponent, deps: [{ token: i1$1.TranslateService }, { token: SimpleDateTimePipe }], target: i0.ɵɵFactoryTarget.Component });
5241
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.0", type: GoogleMapComponent, isStandalone: true, selector: "app-google-map", inputs: { googleMapId: { classPropertyName: "googleMapId", publicName: "googleMapId", isSignal: true, isRequired: true, transformFunction: null }, darkTheme: { classPropertyName: "darkTheme", publicName: "darkTheme", isSignal: true, isRequired: true, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, pinColor: { classPropertyName: "pinColor", publicName: "pinColor", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { markerClicked: "markerClicked" }, providers: [SimpleDateTimePipe], viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"map-wrapper\">\r\n <google-map height=\"100%\" width=\"100%\" [options]=\"mapOptions()\" [zoom]=\"zoom()\" (zoomChanged)=\"syncZoom()\" class=\"map-full\"/>\r\n <app-zoom-controls\r\n style=\"z-index: 200\"\r\n [zoomPercentage]=\"zoomPercentage()\"\r\n [canZoomIn]=\"canZoomIn()\"\r\n [canZoomOut]=\"canZoomOut()\"\r\n (zoomIn)=\"changeZoom(+1)\"\r\n (zoomOut)=\"changeZoom(-1)\"\r\n (reset)=\"fitToMarkers()\"\r\n ></app-zoom-controls>\r\n</div>\r\n", styles: [".map-wrapper{position:relative;display:flex;width:100%;height:100%}.map-full{width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: GoogleMap, selector: "google-map", inputs: ["height", "width", "mapId", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: ZoomControlsComponent, selector: "app-zoom-controls", inputs: ["zoomPercentage", "canZoomIn", "canZoomOut"], outputs: ["zoomIn", "zoomOut", "reset"] }] });
5240
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: GoogleMapComponent, deps: [{ token: i1$1.TranslateService }, { token: SimpleDateTimePipe }], target: i0.ɵɵFactoryTarget.Component });
5241
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.2.0", version: "21.2.13", type: GoogleMapComponent, isStandalone: true, selector: "app-google-map", inputs: { googleMapId: { classPropertyName: "googleMapId", publicName: "googleMapId", isSignal: true, isRequired: true, transformFunction: null }, darkTheme: { classPropertyName: "darkTheme", publicName: "darkTheme", isSignal: true, isRequired: true, transformFunction: null }, items: { classPropertyName: "items", publicName: "items", isSignal: true, isRequired: true, transformFunction: null }, pinColor: { classPropertyName: "pinColor", publicName: "pinColor", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { markerClicked: "markerClicked" }, providers: [SimpleDateTimePipe], viewQueries: [{ propertyName: "map", first: true, predicate: GoogleMap, descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"map-wrapper\">\r\n <google-map height=\"100%\" width=\"100%\" [options]=\"mapOptions()\" [zoom]=\"zoom()\" (zoomChanged)=\"syncZoom()\" class=\"map-full\"/>\r\n <app-zoom-controls\r\n style=\"z-index: 200\"\r\n [zoomPercentage]=\"zoomPercentage()\"\r\n [canZoomIn]=\"canZoomIn()\"\r\n [canZoomOut]=\"canZoomOut()\"\r\n (zoomIn)=\"changeZoom(+1)\"\r\n (zoomOut)=\"changeZoom(-1)\"\r\n (reset)=\"fitToMarkers()\"\r\n ></app-zoom-controls>\r\n</div>\r\n", styles: [".map-wrapper{position:relative;display:flex;width:100%;height:100%}.map-full{width:100%;height:100%}\n"], dependencies: [{ kind: "component", type: GoogleMap, selector: "google-map", inputs: ["height", "width", "mapId", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: ZoomControlsComponent, selector: "app-zoom-controls", inputs: ["zoomPercentage", "canZoomIn", "canZoomOut"], outputs: ["zoomIn", "zoomOut", "reset"] }] });
5242
5242
  }
5243
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: GoogleMapComponent, decorators: [{
5243
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: GoogleMapComponent, decorators: [{
5244
5244
  type: Component,
5245
5245
  args: [{ selector: 'app-google-map', imports: [GoogleMap, SharedModule, ZoomControlsComponent], providers: [SimpleDateTimePipe], template: "<div class=\"map-wrapper\">\r\n <google-map height=\"100%\" width=\"100%\" [options]=\"mapOptions()\" [zoom]=\"zoom()\" (zoomChanged)=\"syncZoom()\" class=\"map-full\"/>\r\n <app-zoom-controls\r\n style=\"z-index: 200\"\r\n [zoomPercentage]=\"zoomPercentage()\"\r\n [canZoomIn]=\"canZoomIn()\"\r\n [canZoomOut]=\"canZoomOut()\"\r\n (zoomIn)=\"changeZoom(+1)\"\r\n (zoomOut)=\"changeZoom(-1)\"\r\n (reset)=\"fitToMarkers()\"\r\n ></app-zoom-controls>\r\n</div>\r\n", styles: [".map-wrapper{position:relative;display:flex;width:100%;height:100%}.map-full{width:100%;height:100%}\n"] }]
5246
5246
  }], ctorParameters: () => [{ type: i1$1.TranslateService }, { type: SimpleDateTimePipe }], propDecorators: { map: [{ type: i0.ViewChild, args: [i0.forwardRef(() => GoogleMap), { isSignal: true }] }], googleMapId: [{ type: i0.Input, args: [{ isSignal: true, alias: "googleMapId", required: true }] }], darkTheme: [{ type: i0.Input, args: [{ isSignal: true, alias: "darkTheme", required: true }] }], items: [{ type: i0.Input, args: [{ isSignal: true, alias: "items", required: true }] }], pinColor: [{ type: i0.Input, args: [{ isSignal: true, alias: "pinColor", required: true }] }], markerClicked: [{ type: i0.Output, args: ["markerClicked"] }] } });
@@ -5249,7 +5249,7 @@ class ImagePreviewComponent {
5249
5249
  data;
5250
5250
  image;
5251
5251
  svgElement;
5252
- dimensionStyles = signal({}, ...(ngDevMode ? [{ debugName: "dimensionStyles" }] : []));
5252
+ dimensionStyles = signal({}, ...(ngDevMode ? [{ debugName: "dimensionStyles" }] : /* istanbul ignore next */ []));
5253
5253
  constructor(data) {
5254
5254
  this.data = data;
5255
5255
  afterNextRender(() => {
@@ -5280,10 +5280,10 @@ class ImagePreviewComponent {
5280
5280
  isHtml(image) {
5281
5281
  return image !== null && image.constructor.name === 'SafeHtmlImpl';
5282
5282
  }
5283
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ImagePreviewComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
5284
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ImagePreviewComponent, isStandalone: true, selector: "app-image-preview", viewQueries: [{ propertyName: "image", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "svgElement", first: true, predicate: ["svgElement"], descendants: true }], ngImport: i0, template: "<div class=\"relative overflow-hidden image-wrapper flex flex-col items-center justify-center\" [ngStyle]=\"dimensionStyles() ? dimensionStyles() : {'opacity': '0'}\">\r\n <mat-icon class=\"absolute top-4 right-4 hover:cursor-pointer text-mat-sys-on-error-container\" matDialogClose>close</mat-icon>\r\n @if (!isHtml(data.image)) {\r\n <img #imageElement [attr.src]=\"data.image\" alt=\"ImagePreview\"/>\r\n } @else {\r\n <div #svgElement class=\"p-4\" [innerHTML]=\"data.image\"></div>\r\n }\r\n</div>\r\n", styles: [".image-wrapper{min-height:124px;min-width:124px}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
5283
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ImagePreviewComponent, deps: [{ token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
5284
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ImagePreviewComponent, isStandalone: true, selector: "app-image-preview", viewQueries: [{ propertyName: "image", first: true, predicate: ["imageElement"], descendants: true }, { propertyName: "svgElement", first: true, predicate: ["svgElement"], descendants: true }], ngImport: i0, template: "<div class=\"relative overflow-hidden image-wrapper flex flex-col items-center justify-center\" [ngStyle]=\"dimensionStyles() ? dimensionStyles() : {'opacity': '0'}\">\r\n <mat-icon class=\"absolute top-4 right-4 hover:cursor-pointer text-mat-sys-on-error-container\" matDialogClose>close</mat-icon>\r\n @if (!isHtml(data.image)) {\r\n <img #imageElement [attr.src]=\"data.image\" alt=\"ImagePreview\"/>\r\n } @else {\r\n <div #svgElement class=\"p-4\" [innerHTML]=\"data.image\"></div>\r\n }\r\n</div>\r\n", styles: [".image-wrapper{min-height:124px;min-width:124px}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i1$5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }] });
5285
5285
  }
5286
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ImagePreviewComponent, decorators: [{
5286
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ImagePreviewComponent, decorators: [{
5287
5287
  type: Component,
5288
5288
  args: [{ selector: 'app-image-preview', imports: [SharedModule], template: "<div class=\"relative overflow-hidden image-wrapper flex flex-col items-center justify-center\" [ngStyle]=\"dimensionStyles() ? dimensionStyles() : {'opacity': '0'}\">\r\n <mat-icon class=\"absolute top-4 right-4 hover:cursor-pointer text-mat-sys-on-error-container\" matDialogClose>close</mat-icon>\r\n @if (!isHtml(data.image)) {\r\n <img #imageElement [attr.src]=\"data.image\" alt=\"ImagePreview\"/>\r\n } @else {\r\n <div #svgElement class=\"p-4\" [innerHTML]=\"data.image\"></div>\r\n }\r\n</div>\r\n", styles: [".image-wrapper{min-height:124px;min-width:124px}\n"] }]
5289
5289
  }], ctorParameters: () => [{ type: undefined, decorators: [{
@@ -5300,14 +5300,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5300
5300
  class ImageDisplayComponent {
5301
5301
  sanitizer = inject(DomSanitizer);
5302
5302
  dialog = inject(MatDialog);
5303
- value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
5303
+ value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
5304
5304
  imageUrl = computed(() => {
5305
5305
  const value = this.value();
5306
5306
  if (!value) {
5307
5307
  return of(null);
5308
5308
  }
5309
5309
  return this.sanitizer.bypassSecurityTrustUrl(value);
5310
- }, ...(ngDevMode ? [{ debugName: "imageUrl" }] : []));
5310
+ }, ...(ngDevMode ? [{ debugName: "imageUrl" }] : /* istanbul ignore next */ []));
5311
5311
  isHtml(image) {
5312
5312
  // Constructor name is different when built for production, have to check property
5313
5313
  return image !== null && (image['changingThisBreaksApplicationSecurity']?.startsWith('<?xml') || image['changingThisBreaksApplicationSecurity']?.startsWith('<svg'));
@@ -5319,29 +5319,29 @@ class ImageDisplayComponent {
5319
5319
  },
5320
5320
  });
5321
5321
  }
5322
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ImageDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5323
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ImageDisplayComponent, isStandalone: true, selector: "app-image-display", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (imageUrl(); as image) {\r\n @if (isHtml(image)) {\r\n <div (click)=\"openImage(image)\" [innerHTML]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\"></div>\r\n } @else {\r\n <img (click)=\"openImage(image)\" [attr.src]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\" alt=\"\"/>\r\n }\r\n}\r\n", styles: [""] });
5322
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ImageDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5323
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ImageDisplayComponent, isStandalone: true, selector: "app-image-display", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (imageUrl(); as image) {\r\n @if (isHtml(image)) {\r\n <div (click)=\"openImage(image)\" [innerHTML]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\"></div>\r\n } @else {\r\n <img (click)=\"openImage(image)\" [attr.src]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\" alt=\"\"/>\r\n }\r\n}\r\n", styles: [""] });
5324
5324
  }
5325
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ImageDisplayComponent, decorators: [{
5325
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ImageDisplayComponent, decorators: [{
5326
5326
  type: Component,
5327
5327
  args: [{ selector: 'app-image-display', imports: [], template: "@if (imageUrl(); as image) {\r\n @if (isHtml(image)) {\r\n <div (click)=\"openImage(image)\" [innerHTML]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\"></div>\r\n } @else {\r\n <img (click)=\"openImage(image)\" [attr.src]=\"image\" class=\"max-h-full h-full w-full object-contain block mt-1 hover:cursor-pointer\" alt=\"\"/>\r\n }\r\n}\r\n" }]
5328
5328
  }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
5329
5329
 
5330
5330
  class LabeledValueComponent {
5331
- name = input.required(...(ngDevMode ? [{ debugName: "name" }] : []));
5332
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LabeledValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5333
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: LabeledValueComponent, isStandalone: true, selector: "app-labeled-value", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-row gap-x-2 items-center\">\r\n <div class=\"font-bold\">{{ name() | translate }}:</div>\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n <ng-content/>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
5331
+ name = input.required(...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
5332
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LabeledValueComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5333
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: LabeledValueComponent, isStandalone: true, selector: "app-labeled-value", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-row gap-x-2 items-center\">\r\n <div class=\"font-bold\">{{ name() | translate }}:</div>\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n <ng-content/>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
5334
5334
  }
5335
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LabeledValueComponent, decorators: [{
5335
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LabeledValueComponent, decorators: [{
5336
5336
  type: Component,
5337
5337
  args: [{ selector: 'app-labeled-value', imports: [TranslateModule], template: "<div class=\"flex flex-row gap-x-2 items-center\">\r\n <div class=\"font-bold\">{{ name() | translate }}:</div>\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n <ng-content/>\r\n </div>\r\n</div>\r\n" }]
5338
5338
  }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: true }] }] } });
5339
5339
 
5340
5340
  class LoadedIconComponent {
5341
5341
  sanitizer;
5342
- iconRequest = input.required(...(ngDevMode ? [{ debugName: "iconRequest" }] : []));
5343
- defaultIcon = input.required(...(ngDevMode ? [{ debugName: "defaultIcon" }] : []));
5344
- size = input.required(...(ngDevMode ? [{ debugName: "size" }] : []));
5342
+ iconRequest = input.required(...(ngDevMode ? [{ debugName: "iconRequest" }] : /* istanbul ignore next */ []));
5343
+ defaultIcon = input.required(...(ngDevMode ? [{ debugName: "defaultIcon" }] : /* istanbul ignore next */ []));
5344
+ size = input.required(...(ngDevMode ? [{ debugName: "size" }] : /* istanbul ignore next */ []));
5345
5345
  icon = computed(() => {
5346
5346
  return this.iconRequest().pipe(switchMap(response => {
5347
5347
  if (!response) {
@@ -5359,7 +5359,7 @@ class LoadedIconComponent {
5359
5359
  }), catchError(() => {
5360
5360
  return of(null);
5361
5361
  }));
5362
- }, ...(ngDevMode ? [{ debugName: "icon" }] : []));
5362
+ }, ...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
5363
5363
  isSvgIcon() {
5364
5364
  const defaultIcon = this.defaultIcon();
5365
5365
  return typeof defaultIcon !== 'string' && Object.hasOwn(defaultIcon, 'id') ? defaultIcon : null;
@@ -5367,16 +5367,16 @@ class LoadedIconComponent {
5367
5367
  constructor(sanitizer) {
5368
5368
  this.sanitizer = sanitizer;
5369
5369
  }
5370
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LoadedIconComponent, deps: [{ token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
5371
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: LoadedIconComponent, isStandalone: true, selector: "app-loaded-icon", inputs: { iconRequest: { classPropertyName: "iconRequest", publicName: "iconRequest", isSignal: true, isRequired: true, transformFunction: null }, defaultIcon: { classPropertyName: "defaultIcon", publicName: "defaultIcon", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div [style.height.px]=\"size()\" [style.width.px]=\"size()\">\r\n @if (icon() | async; as icon) {\r\n <div [innerHTML]=\"icon\"></div>\r\n } @else {\r\n @if (isSvgIcon(); as icon) {\r\n <mat-icon [svgIcon]=\"icon.id\"></mat-icon>\r\n } @else {\r\n <mat-icon>{{ defaultIcon() }}</mat-icon>\r\n }\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
5370
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LoadedIconComponent, deps: [{ token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
5371
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LoadedIconComponent, isStandalone: true, selector: "app-loaded-icon", inputs: { iconRequest: { classPropertyName: "iconRequest", publicName: "iconRequest", isSignal: true, isRequired: true, transformFunction: null }, defaultIcon: { classPropertyName: "defaultIcon", publicName: "defaultIcon", isSignal: true, isRequired: true, transformFunction: null }, size: { classPropertyName: "size", publicName: "size", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div [style.height.px]=\"size()\" [style.width.px]=\"size()\">\r\n @if (icon() | async; as icon) {\r\n <div [innerHTML]=\"icon\"></div>\r\n } @else {\r\n @if (isSvgIcon(); as icon) {\r\n <mat-icon [svgIcon]=\"icon.id\"></mat-icon>\r\n } @else {\r\n <mat-icon>{{ defaultIcon() }}</mat-icon>\r\n }\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
5372
5372
  }
5373
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LoadedIconComponent, decorators: [{
5373
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LoadedIconComponent, decorators: [{
5374
5374
  type: Component,
5375
5375
  args: [{ selector: 'app-loaded-icon', imports: [SharedModule], template: "<div [style.height.px]=\"size()\" [style.width.px]=\"size()\">\r\n @if (icon() | async; as icon) {\r\n <div [innerHTML]=\"icon\"></div>\r\n } @else {\r\n @if (isSvgIcon(); as icon) {\r\n <mat-icon [svgIcon]=\"icon.id\"></mat-icon>\r\n } @else {\r\n <mat-icon>{{ defaultIcon() }}</mat-icon>\r\n }\r\n }\r\n</div>\r\n" }]
5376
5376
  }], ctorParameters: () => [{ type: i1$6.DomSanitizer }], propDecorators: { iconRequest: [{ type: i0.Input, args: [{ isSignal: true, alias: "iconRequest", required: true }] }], defaultIcon: [{ type: i0.Input, args: [{ isSignal: true, alias: "defaultIcon", required: true }] }], size: [{ type: i0.Input, args: [{ isSignal: true, alias: "size", required: true }] }] } });
5377
5377
 
5378
5378
  class IconComponent {
5379
- icon = input.required(...(ngDevMode ? [{ debugName: "icon" }] : []));
5379
+ icon = input.required(...(ngDevMode ? [{ debugName: "icon" }] : /* istanbul ignore next */ []));
5380
5380
  isAsyncIcon() {
5381
5381
  const icon = this.icon();
5382
5382
  return !!icon && typeof icon === 'object' && !Object.hasOwn(icon, 'id') ? icon : null;
@@ -5385,10 +5385,10 @@ class IconComponent {
5385
5385
  const icon = this.icon();
5386
5386
  return !!icon && typeof icon === 'object' && Object.hasOwn(icon, 'id') ? icon : null;
5387
5387
  }
5388
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5389
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: IconComponent, isStandalone: true, selector: "app-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof icon() === 'string') {\r\n <mat-icon>{{ icon() }}</mat-icon>\r\n }\r\n @if (typeof icon() === 'number') {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] bg-mat-sys-primary text-mat-sys-on-primary\">{{ icon() }}</span>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LoadedIconComponent, selector: "app-loaded-icon", inputs: ["iconRequest", "defaultIcon", "size"] }] });
5388
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: IconComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5389
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: IconComponent, isStandalone: true, selector: "app-icon", inputs: { icon: { classPropertyName: "icon", publicName: "icon", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<div class=\"shrink-0 h-6\">\r\n @if (isAsyncIcon(); as loadedIcon) {\r\n <app-loaded-icon [iconRequest]=\"loadedIcon.data\" [defaultIcon]=\"loadedIcon.defaultIcon\" [size]=\"24\"/>\r\n }\r\n @if (isSvgIcon(); as svgIcon) {\r\n <mat-icon [svgIcon]=\"svgIcon.id\"></mat-icon>\r\n }\r\n @if (typeof icon() === 'string') {\r\n <mat-icon>{{ icon() }}</mat-icon>\r\n }\r\n @if (typeof icon() === 'number') {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] bg-mat-sys-primary text-mat-sys-on-primary\">{{ icon() }}</span>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: LoadedIconComponent, selector: "app-loaded-icon", inputs: ["iconRequest", "defaultIcon", "size"] }] });
5390
5390
  }
5391
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: IconComponent, decorators: [{
5391
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: IconComponent, decorators: [{
5392
5392
  type: Component,
5393
5393
  args: [{ selector: 'app-icon', imports: [
5394
5394
  SharedModule, LoadedIconComponent, MatIcon
@@ -5398,16 +5398,16 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5398
5398
  class LocalSortTableComponent {
5399
5399
  tenantPropertiesService;
5400
5400
  translateService;
5401
- columns = input.required(...(ngDevMode ? [{ debugName: "columns" }] : []));
5402
- data = input.required(...(ngDevMode ? [{ debugName: "data" }] : []));
5403
- translationPrefix = input('COMMON.', ...(ngDevMode ? [{ debugName: "translationPrefix" }] : []));
5404
- loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : []));
5405
- noValuesMessage = input('', ...(ngDevMode ? [{ debugName: "noValuesMessage" }] : []));
5401
+ columns = input.required(...(ngDevMode ? [{ debugName: "columns" }] : /* istanbul ignore next */ []));
5402
+ data = input.required(...(ngDevMode ? [{ debugName: "data" }] : /* istanbul ignore next */ []));
5403
+ translationPrefix = input('COMMON.', ...(ngDevMode ? [{ debugName: "translationPrefix" }] : /* istanbul ignore next */ []));
5404
+ loading = input(false, ...(ngDevMode ? [{ debugName: "loading" }] : /* istanbul ignore next */ []));
5405
+ noValuesMessage = input('', ...(ngDevMode ? [{ debugName: "noValuesMessage" }] : /* istanbul ignore next */ []));
5406
5406
  itemSelected = output();
5407
5407
  sortDirection = 'asc';
5408
5408
  sortField;
5409
- displayData = signal(null, ...(ngDevMode ? [{ debugName: "displayData" }] : []));
5410
- sorting = signal(false, ...(ngDevMode ? [{ debugName: "sorting" }] : []));
5409
+ displayData = signal(null, ...(ngDevMode ? [{ debugName: "displayData" }] : /* istanbul ignore next */ []));
5410
+ sorting = signal(false, ...(ngDevMode ? [{ debugName: "sorting" }] : /* istanbul ignore next */ []));
5411
5411
  constructor(tenantPropertiesService, translateService) {
5412
5412
  this.tenantPropertiesService = tenantPropertiesService;
5413
5413
  this.translateService = translateService;
@@ -5451,10 +5451,10 @@ class LocalSortTableComponent {
5451
5451
  this.sorting.set(false);
5452
5452
  }
5453
5453
  }
5454
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LocalSortTableComponent, deps: [{ token: TenantPropertiesService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
5455
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: LocalSortTableComponent, isStandalone: true, selector: "app-local-sort-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, translationPrefix: { classPropertyName: "translationPrefix", publicName: "translationPrefix", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, noValuesMessage: { classPropertyName: "noValuesMessage", publicName: "noValuesMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: "<table>\r\n <thead>\r\n <tr>\r\n @for (column of columns(); track column.name) {\r\n <th class=\"!font-medium truncate\" [ngClass]=\"{'sort-field': column.shouldSort, 'cursor-pointer': column.shouldSort}\" (click)=\"column.shouldSort ? sort(column.name) : undefined\">\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n {{ (translationPrefix().toUpperCase() +column.name.toUpperCase()) | translate }}\r\n @if (column.shouldSort) {\r\n <mat-icon>{{ sortDirection === 'asc' ? 'arrow_upward' : 'arrow_downward' }}</mat-icon>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @if (loading()) {\r\n <div class=\"w-full h-full flex flex-col justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n } @else {\r\n @if (displayData(); as displayData){\r\n @if (!noValuesMessage()) {\r\n @if (!sorting()) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"56\" class=\"viewport\">\r\n <tr *cdkVirtualFor=\"let element of displayData\" (click)=\"itemSelected.emit(element)\">\r\n @for (column of columns(); track column.name) {\r\n <td class=\"cursor-pointer truncate\">\r\n <span [matTooltip]=\"column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name]\">\r\n {{ column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name] }}\r\n </span>\r\n }\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n }\r\n } @else {\r\n <div class=\"w-full h-full flex flex-col justify-center items-center\">\r\n <span>{{ noValuesMessage() | translate }}</span>\r\n </div>\r\n }\r\n }\r\n }\r\n </tbody>\r\n</table>\r\n", styles: [":host{display:block;overflow:hidden;height:100%;width:100%}table{height:100%;width:100%;display:block}table thead{height:56px}table tbody{display:block;height:calc(100% - 56px);width:100%;overflow:hidden}table tbody tr:hover{background-color:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container)}table th,table td{padding-left:1rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--mat-sys-outline-variant)}tr{height:56px;display:table;table-layout:fixed;width:100%}.viewport{display:block;width:100%;height:100%;overflow:auto}.sort-field mat-icon{font-size:18px;line-height:18px;height:18px;width:18px;opacity:0;transition:all ease-in .2s}.sort-field:hover mat-icon{opacity:1}\n"], dependencies: [{ kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
5454
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LocalSortTableComponent, deps: [{ token: TenantPropertiesService }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
5455
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: LocalSortTableComponent, isStandalone: true, selector: "app-local-sort-table", inputs: { columns: { classPropertyName: "columns", publicName: "columns", isSignal: true, isRequired: true, transformFunction: null }, data: { classPropertyName: "data", publicName: "data", isSignal: true, isRequired: true, transformFunction: null }, translationPrefix: { classPropertyName: "translationPrefix", publicName: "translationPrefix", isSignal: true, isRequired: false, transformFunction: null }, loading: { classPropertyName: "loading", publicName: "loading", isSignal: true, isRequired: false, transformFunction: null }, noValuesMessage: { classPropertyName: "noValuesMessage", publicName: "noValuesMessage", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelected: "itemSelected" }, ngImport: i0, template: "<table>\r\n <thead>\r\n <tr>\r\n @for (column of columns(); track column.name) {\r\n <th class=\"!font-medium truncate\" [ngClass]=\"{'sort-field': column.shouldSort, 'cursor-pointer': column.shouldSort}\" (click)=\"column.shouldSort ? sort(column.name) : undefined\">\r\n <div class=\"flex flex-row items-center gap-x-2\">\r\n {{ (translationPrefix().toUpperCase() +column.name.toUpperCase()) | translate }}\r\n @if (column.shouldSort) {\r\n <mat-icon>{{ sortDirection === 'asc' ? 'arrow_upward' : 'arrow_downward' }}</mat-icon>\r\n }\r\n </div>\r\n </th>\r\n }\r\n </tr>\r\n </thead>\r\n <tbody>\r\n @if (loading()) {\r\n <div class=\"w-full h-full flex flex-col justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n } @else {\r\n @if (displayData(); as displayData){\r\n @if (!noValuesMessage()) {\r\n @if (!sorting()) {\r\n <cdk-virtual-scroll-viewport [itemSize]=\"56\" class=\"viewport\">\r\n <tr *cdkVirtualFor=\"let element of displayData\" (click)=\"itemSelected.emit(element)\">\r\n @for (column of columns(); track column.name) {\r\n <td class=\"cursor-pointer truncate\">\r\n <span [matTooltip]=\"column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name]\">\r\n {{ column.shouldTranslateValue ? ((translationPrefix() + element[column.name]) | translate) : element[column.name] }}\r\n </span>\r\n }\r\n </tr>\r\n </cdk-virtual-scroll-viewport>\r\n }\r\n } @else {\r\n <div class=\"w-full h-full flex flex-col justify-center items-center\">\r\n <span>{{ noValuesMessage() | translate }}</span>\r\n </div>\r\n }\r\n }\r\n }\r\n </tbody>\r\n</table>\r\n", styles: [":host{display:block;overflow:hidden;height:100%;width:100%}table{height:100%;width:100%;display:block}table thead{height:56px}table tbody{display:block;height:calc(100% - 56px);width:100%;overflow:hidden}table tbody tr:hover{background-color:var(--mat-sys-primary-container);color:var(--mat-sys-on-primary-container)}table th,table td{padding-left:1rem;text-align:left;vertical-align:middle;border-bottom:1px solid var(--mat-sys-outline-variant)}tr{height:56px;display:table;table-layout:fixed;width:100%}.viewport{display:block;width:100%;height:100%;overflow:auto}.sort-field mat-icon{font-size:18px;line-height:18px;height:18px;width:18px;opacity:0;transition:all ease-in .2s}.sort-field:hover mat-icon{opacity:1}\n"], dependencies: [{ kind: "directive", type: CdkFixedSizeVirtualScroll, selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }, { kind: "directive", type: CdkVirtualForOf, selector: "[cdkVirtualFor][cdkVirtualForOf]", inputs: ["cdkVirtualForOf", "cdkVirtualForTrackBy", "cdkVirtualForTemplate", "cdkVirtualForTemplateCacheSize"] }, { kind: "component", type: CdkVirtualScrollViewport, selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }, { kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
5456
5456
  }
5457
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: LocalSortTableComponent, decorators: [{
5457
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: LocalSortTableComponent, decorators: [{
5458
5458
  type: Component,
5459
5459
  args: [{ selector: 'app-local-sort-table', imports: [
5460
5460
  CdkFixedSizeVirtualScroll,
@@ -5466,7 +5466,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
5466
5466
  }], ctorParameters: () => [{ type: TenantPropertiesService }, { type: i1$1.TranslateService }], propDecorators: { columns: [{ type: i0.Input, args: [{ isSignal: true, alias: "columns", required: true }] }], data: [{ type: i0.Input, args: [{ isSignal: true, alias: "data", required: true }] }], translationPrefix: [{ type: i0.Input, args: [{ isSignal: true, alias: "translationPrefix", required: false }] }], loading: [{ type: i0.Input, args: [{ isSignal: true, alias: "loading", required: false }] }], noValuesMessage: [{ type: i0.Input, args: [{ isSignal: true, alias: "noValuesMessage", required: false }] }], itemSelected: [{ type: i0.Output, args: ["itemSelected"] }] } });
5467
5467
 
5468
5468
  class MasterDetailsViewComponent {
5469
- displayRatio = input('wide', ...(ngDevMode ? [{ debugName: "displayRatio" }] : []));
5469
+ displayRatio = input('wide', ...(ngDevMode ? [{ debugName: "displayRatio" }] : /* istanbul ignore next */ []));
5470
5470
  width = computed(() => {
5471
5471
  switch (this.displayRatio()) {
5472
5472
  case 'full':
@@ -5482,11 +5482,11 @@ class MasterDetailsViewComponent {
5482
5482
  default:
5483
5483
  throw Error('Too deep!');
5484
5484
  }
5485
- }, ...(ngDevMode ? [{ debugName: "width" }] : []));
5486
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MasterDetailsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5487
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: MasterDetailsViewComponent, isStandalone: true, selector: "app-master-details-view", inputs: { displayRatio: { classPropertyName: "displayRatio", publicName: "displayRatio", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex h-full w-full min-w-full min-h-full pt-2 overflow-hidden bg-base-color-50\">\r\n <div class=\"pr-4 flex shrink-0 grow-0\" [style.width]=\"width()\" [style.max-width]=\"width()\">\r\n <ng-content select=\"[app-master]\"/>\r\n </div>\r\n <mat-divider [vertical]=\"true\"/>\r\n <div class=\"pl-4 flex shrink grow overflow-hidden\">\r\n <ng-content select=\"[app-details]\"/>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
5485
+ }, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
5486
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MasterDetailsViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
5487
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: MasterDetailsViewComponent, isStandalone: true, selector: "app-master-details-view", inputs: { displayRatio: { classPropertyName: "displayRatio", publicName: "displayRatio", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex h-full w-full min-w-full min-h-full pt-2 overflow-hidden bg-base-color-50\">\r\n <div class=\"pr-4 flex shrink-0 grow-0\" [style.width]=\"width()\" [style.max-width]=\"width()\">\r\n <ng-content select=\"[app-master]\"/>\r\n </div>\r\n <mat-divider [vertical]=\"true\"/>\r\n <div class=\"pl-4 flex shrink grow overflow-hidden\">\r\n <ng-content select=\"[app-details]\"/>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%;height:100%;overflow:hidden}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
5488
5488
  }
5489
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: MasterDetailsViewComponent, decorators: [{
5489
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: MasterDetailsViewComponent, decorators: [{
5490
5490
  type: Component,
5491
5491
  args: [{ selector: 'app-master-details-view', imports: [SharedModule], template: "<div class=\"flex h-full w-full min-w-full min-h-full pt-2 overflow-hidden bg-base-color-50\">\r\n <div class=\"pr-4 flex shrink-0 grow-0\" [style.width]=\"width()\" [style.max-width]=\"width()\">\r\n <ng-content select=\"[app-master]\"/>\r\n </div>\r\n <mat-divider [vertical]=\"true\"/>\r\n <div class=\"pl-4 flex shrink grow overflow-hidden\">\r\n <ng-content select=\"[app-details]\"/>\r\n </div>\r\n</div>\r\n", styles: [":host{display:block;width:100%;height:100%;overflow:hidden}\n"] }]
5492
5492
  }], propDecorators: { displayRatio: [{ type: i0.Input, args: [{ isSignal: true, alias: "displayRatio", required: false }] }] } });
@@ -5519,17 +5519,17 @@ class NestedListViewComponent {
5519
5519
  this.itemsSelected.emit([]);
5520
5520
  }
5521
5521
  }
5522
- dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : []));
5523
- dataControl = input.required(...(ngDevMode ? [{ debugName: "dataControl" }] : []));
5524
- width = input('quarter', ...(ngDevMode ? [{ debugName: "width" }] : []));
5525
- disableThresholdId = input(null, ...(ngDevMode ? [{ debugName: "disableThresholdId" }] : []));
5526
- isColoredInput = input(false, ...(ngDevMode ? [{ debugName: "isColoredInput" }] : []));
5527
- searchActions = input([], ...(ngDevMode ? [{ debugName: "searchActions" }] : []));
5528
- defaultSearchAction = computed(() => this.searchActions().find((action) => !!action.defaultAction), ...(ngDevMode ? [{ debugName: "defaultSearchAction" }] : []));
5529
- otherSearchActions = computed(() => this.searchActions().filter((action) => !action.defaultAction), ...(ngDevMode ? [{ debugName: "otherSearchActions" }] : []));
5530
- enableMultiSelect = input(false, ...(ngDevMode ? [{ debugName: "enableMultiSelect" }] : []));
5531
- ctrlPressed = signal(false, ...(ngDevMode ? [{ debugName: "ctrlPressed" }] : []));
5532
- shiftPressed = signal(false, ...(ngDevMode ? [{ debugName: "shiftPressed" }] : []));
5522
+ dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
5523
+ dataControl = input.required(...(ngDevMode ? [{ debugName: "dataControl" }] : /* istanbul ignore next */ []));
5524
+ width = input('quarter', ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
5525
+ disableThresholdId = input(null, ...(ngDevMode ? [{ debugName: "disableThresholdId" }] : /* istanbul ignore next */ []));
5526
+ isColoredInput = input(false, ...(ngDevMode ? [{ debugName: "isColoredInput" }] : /* istanbul ignore next */ []));
5527
+ searchActions = input([], ...(ngDevMode ? [{ debugName: "searchActions" }] : /* istanbul ignore next */ []));
5528
+ defaultSearchAction = computed(() => this.searchActions().find((action) => !!action.defaultAction), ...(ngDevMode ? [{ debugName: "defaultSearchAction" }] : /* istanbul ignore next */ []));
5529
+ otherSearchActions = computed(() => this.searchActions().filter((action) => !action.defaultAction), ...(ngDevMode ? [{ debugName: "otherSearchActions" }] : /* istanbul ignore next */ []));
5530
+ enableMultiSelect = input(false, ...(ngDevMode ? [{ debugName: "enableMultiSelect" }] : /* istanbul ignore next */ []));
5531
+ ctrlPressed = signal(false, ...(ngDevMode ? [{ debugName: "ctrlPressed" }] : /* istanbul ignore next */ []));
5532
+ shiftPressed = signal(false, ...(ngDevMode ? [{ debugName: "shiftPressed" }] : /* istanbul ignore next */ []));
5533
5533
  widthClass = computed(() => {
5534
5534
  switch (this.width()) {
5535
5535
  case 'full':
@@ -5541,37 +5541,37 @@ class NestedListViewComponent {
5541
5541
  case 'half':
5542
5542
  return 'w-1/2';
5543
5543
  }
5544
- }, ...(ngDevMode ? [{ debugName: "widthClass" }] : []));
5545
- selectionConfirmationAction = input(() => of(true), ...(ngDevMode ? [{ debugName: "selectionConfirmationAction" }] : []));
5546
- loadingBreadcrumbs = signal(true, ...(ngDevMode ? [{ debugName: "loadingBreadcrumbs" }] : []));
5547
- loadingChildren = signal(true, ...(ngDevMode ? [{ debugName: "loadingChildren" }] : []));
5548
- selectedItem = signal(null, ...(ngDevMode ? [{ debugName: "selectedItem" }] : []));
5549
- selectedItems = signal([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : []));
5550
- hideSearch = input(false, ...(ngDevMode ? [{ debugName: "hideSearch" }] : []));
5544
+ }, ...(ngDevMode ? [{ debugName: "widthClass" }] : /* istanbul ignore next */ []));
5545
+ selectionConfirmationAction = input(() => of(true), ...(ngDevMode ? [{ debugName: "selectionConfirmationAction" }] : /* istanbul ignore next */ []));
5546
+ loadingBreadcrumbs = signal(true, ...(ngDevMode ? [{ debugName: "loadingBreadcrumbs" }] : /* istanbul ignore next */ []));
5547
+ loadingChildren = signal(true, ...(ngDevMode ? [{ debugName: "loadingChildren" }] : /* istanbul ignore next */ []));
5548
+ selectedItem = signal(null, ...(ngDevMode ? [{ debugName: "selectedItem" }] : /* istanbul ignore next */ []));
5549
+ selectedItems = signal([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : /* istanbul ignore next */ []));
5550
+ hideSearch = input(false, ...(ngDevMode ? [{ debugName: "hideSearch" }] : /* istanbul ignore next */ []));
5551
5551
  nameSearchControl = new FormControl('');
5552
5552
  searchTerm = toSignal(this.nameSearchControl.valueChanges.pipe(startWith(this.nameSearchControl.getRawValue())));
5553
- breadcrumbs = signal([], ...(ngDevMode ? [{ debugName: "breadcrumbs" }] : []));
5554
- roots = signal([], ...(ngDevMode ? [{ debugName: "roots" }] : []));
5555
- hasMultipleRoots = signal(false, ...(ngDevMode ? [{ debugName: "hasMultipleRoots" }] : []));
5556
- rootButtonText = input('COMMON.BACK_TO_ROOTS_BUTTON_TEXT', ...(ngDevMode ? [{ debugName: "rootButtonText" }] : []));
5557
- enableDrag = input(false, ...(ngDevMode ? [{ debugName: "enableDrag" }] : []));
5558
- isDragging = signal(false, ...(ngDevMode ? [{ debugName: "isDragging" }] : []));
5553
+ breadcrumbs = signal([], ...(ngDevMode ? [{ debugName: "breadcrumbs" }] : /* istanbul ignore next */ []));
5554
+ roots = signal([], ...(ngDevMode ? [{ debugName: "roots" }] : /* istanbul ignore next */ []));
5555
+ hasMultipleRoots = signal(false, ...(ngDevMode ? [{ debugName: "hasMultipleRoots" }] : /* istanbul ignore next */ []));
5556
+ rootButtonText = input('COMMON.BACK_TO_ROOTS_BUTTON_TEXT', ...(ngDevMode ? [{ debugName: "rootButtonText" }] : /* istanbul ignore next */ []));
5557
+ enableDrag = input(false, ...(ngDevMode ? [{ debugName: "enableDrag" }] : /* istanbul ignore next */ []));
5558
+ isDragging = signal(false, ...(ngDevMode ? [{ debugName: "isDragging" }] : /* istanbul ignore next */ []));
5559
5559
  dragging = output();
5560
- children = signal([], ...(ngDevMode ? [{ debugName: "children" }] : []));
5560
+ children = signal([], ...(ngDevMode ? [{ debugName: "children" }] : /* istanbul ignore next */ []));
5561
5561
  filteredChildren = computed(() => {
5562
5562
  const searchTerm = this.searchTerm();
5563
5563
  if (!searchTerm) {
5564
5564
  return this.children();
5565
5565
  }
5566
5566
  return this.children().filter(item => item.name.toLowerCase().includes(searchTerm.toLowerCase()));
5567
- }, ...(ngDevMode ? [{ debugName: "filteredChildren" }] : []));
5567
+ }, ...(ngDevMode ? [{ debugName: "filteredChildren" }] : /* istanbul ignore next */ []));
5568
5568
  allSelectableItems = computed(() => {
5569
5569
  return this.filteredChildren().filter(item => !item.bulkSelectDisabled);
5570
- }, ...(ngDevMode ? [{ debugName: "allSelectableItems" }] : []));
5570
+ }, ...(ngDevMode ? [{ debugName: "allSelectableItems" }] : /* istanbul ignore next */ []));
5571
5571
  itemSelected = output();
5572
5572
  itemsSelected = output();
5573
- countsMap = signal(new Map(), ...(ngDevMode ? [{ debugName: "countsMap" }] : []));
5574
- currentScopes = signal(null, ...(ngDevMode ? [{ debugName: "currentScopes" }] : []));
5573
+ countsMap = signal(new Map(), ...(ngDevMode ? [{ debugName: "countsMap" }] : /* istanbul ignore next */ []));
5574
+ currentScopes = signal(null, ...(ngDevMode ? [{ debugName: "currentScopes" }] : /* istanbul ignore next */ []));
5575
5575
  constructor(destroyRef) {
5576
5576
  this.destroyRef = destroyRef;
5577
5577
  effect(() => {
@@ -5833,10 +5833,10 @@ class NestedListViewComponent {
5833
5833
  this.breadcrumbs.update(items => items.map(item => item.id === guid ? { ...item, rightNumber } : item));
5834
5834
  this.children.update(items => items.map(item => item.id === guid ? { ...item, rightNumber } : item));
5835
5835
  }
5836
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NestedListViewComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
5837
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: NestedListViewComponent, isStandalone: true, selector: "app-nested-list-view", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, dataControl: { classPropertyName: "dataControl", publicName: "dataControl", isSignal: true, isRequired: true, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, disableThresholdId: { classPropertyName: "disableThresholdId", publicName: "disableThresholdId", isSignal: true, isRequired: false, transformFunction: null }, isColoredInput: { classPropertyName: "isColoredInput", publicName: "isColoredInput", isSignal: true, isRequired: false, transformFunction: null }, searchActions: { classPropertyName: "searchActions", publicName: "searchActions", isSignal: true, isRequired: false, transformFunction: null }, enableMultiSelect: { classPropertyName: "enableMultiSelect", publicName: "enableMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, selectionConfirmationAction: { classPropertyName: "selectionConfirmationAction", publicName: "selectionConfirmationAction", isSignal: true, isRequired: false, transformFunction: null }, hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, rootButtonText: { classPropertyName: "rootButtonText", publicName: "rootButtonText", isSignal: true, isRequired: false, transformFunction: null }, enableDrag: { classPropertyName: "enableDrag", publicName: "enableDrag", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragging: "dragging", itemSelected: "itemSelected", itemsSelected: "itemsSelected" }, host: { listeners: { "window:keydown": "onKeyDown($event)", "window:keyup": "onKeyUp($event)" } }, ngImport: i0, template: "<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden\">\r\n <div [ngClass]=\"widthClass()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\" [ngClass]=\"hideSearch() ? 'pt-2' : 'pt-1'\">\r\n\r\n <!-- HEADER -->\r\n <div class=\"flex w-full flex-row gap-x-2\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <div class=\"flex shrink grow flex-row pt-1 gap-x-2 overflow-hidden\">\r\n <mat-form-field class=\"flex grow shrink small-input search-control\" (keydown.shift)=\"$event.stopPropagation()\" (keydown.enter)=\"defaultSearchAction()?.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH_IMMEDIATE_CHILDREN' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n @if (defaultSearchAction(); as defaultAction) {\r\n <div [matTooltip]=\"defaultAction.disabledTooltip ? (defaultAction.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"defaultAction.disableCondition ? !defaultAction.disableCondition({control: nameSearchControl}) : true\">\r\n <button mat-mini-fab [disabled]=\"defaultAction.disableCondition ? defaultAction.disableCondition({control: nameSearchControl}) : false\" (click)=\"defaultAction.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [matTooltip]=\"defaultAction.name | translate\">\r\n <mat-icon [svgIcon]=\"defaultAction.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n @for (action of otherSearchActions(); track $index) {\r\n @if (action.condition() | async) {\r\n <div [matTooltip]=\"action.disabledTooltip ? (action.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"action.disableCondition ? !action.disableCondition() : true\">\r\n <button mat-mini-fab [disabled]=\"action.disableCondition ? action.disableCondition() : false\" (click)=\"action.action()\" [matTooltip]=\"action.name | translate\">\r\n <mat-icon [svgIcon]=\"action.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n\r\n <!-- BREADCRUMBS -->\r\n <div class=\"max-h-[50%] overflow-auto shrink-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingBreadcrumbs()) {\r\n @if (breadcrumbs(); as items) {\r\n <div class=\"flex flex-col w-full overflow-x-hidden\">\r\n @for (item of items; let i = $index; track i) {\r\n @if (selectedItem() && hasMultipleRoots() && i === 0) {\r\n <mat-card (click)=\"resetNavigation()\" class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" [ngClass]=\"disableThresholdId() ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled-item' : ''\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n <div class=\"shrink-0 h-6\">\r\n <mat-icon>arrow_upward</mat-icon>\r\n </div>\r\n <span class=\"text-mat-sys-on-surface\">{{ rootButtonText() | translate: {default: rootButtonText()} }}</span>\r\n </div>\r\n </mat-card>\r\n }\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectBreadcrumb(item)\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag() || !!shouldDisableBreadcrumbClick(item)\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\"\r\n [ngClass]=\"[isBreadcrumbSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', selectedItems().length ? 'opacity-50' : '', shouldDisableBreadcrumbClick(item) ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled-item' : '']\"\r\n [appScrollIntoView]=\"isBreadcrumbSelected(item)\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"[isBreadcrumbSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface']\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (item.rightNumber && item.rightNumber > 0) {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] font-semibold\" [ngClass]=\"isBreadcrumbSelected(item) ? 'bg-transparent text-mat-sys-surface-container' : 'bg-mat-sys-primary text-mat-sys-on-primary'\">{{ item.rightNumber }}</span>\r\n } @else if (enableDrag() && !shouldDisableBreadcrumbClick(item)) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <mat-divider class=\"w-full pb-2\"/>\r\n\r\n <!-- CHILDREN -->\r\n @if (selectedItem()) {\r\n <div class=\"flex-1 overflow-auto min-h-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingChildren()) {\r\n @if (filteredChildren(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full overflow-y-auto overflow-x-hidden\">\r\n @for (item of items; track $index) {\r\n <mat-card class=\"mb-2 cursor-pointer\" [ngClass]=\"[isChildSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', shiftPressed() ? 'no-select-item' : '', (ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled ? 'bg-disabled-color opacity-50 hover:cursor-auto disabled-item' : '']\" (click)=\"selectChild(item)\" [matTooltip]=\"(ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled && item.bulkSelectDisabledTooltip ? (item.bulkSelectDisabledTooltip | translate) : item.name\" matTooltipPosition=\"right\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag()\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"isChildSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (item.rightNumber && item.rightNumber > 0) {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] font-semibold\" [ngClass]=\"isChildSelected(item) ? 'bg-transparent text-mat-sys-surface-container' : 'bg-mat-sys-primary text-mat-sys-on-primary'\">{{ item.rightNumber }}</span>\r\n } @else if (enableDrag()) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"/>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (width() !== 'full') {\r\n <mat-divider [vertical]=\"true\" class=\"relative top-2\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden pt-2\">\r\n @if (!selectedItems().length) {\r\n <ng-content select=\"[app-details]\"/>\r\n } @else {\r\n <div class=\"h-full w-full flex flex-col items-center justify-center relative\">\r\n <div class=\"flex flex-col items-center justify-center\">\r\n <mat-checkbox class=\"w-full\"\r\n [checked]=\"selectedItems().length === allSelectableItems().length\"\r\n (change)=\"toggleSelectAll()\">\r\n {{ 'COMMON.SELECT_ALL' | translate }}\r\n </mat-checkbox>\r\n <mat-divider class=\"w-full !mb-2 !mt-2\"></mat-divider>\r\n <span>{{ 'COMMON.NUMBER_OF_ITEMS_SELECTED' | translate: {numberOfItems: selectedItems().length} }} </span>\r\n </div>\r\n <div class=\"absolute bottom-0 right-0\">\r\n <ng-content select=\"[app-bulk-actions]\"/>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;height:100%;width:100%;overflow:hidden}mat-card,.item-card{height:40px!important}.container{background-color:var(--base-color-50)}.container .master{padding-right:16px}.container .details{padding-left:16px}.selected-item{background:var(--mat-sys-primary);fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}.regular-item{fill:var(--mat-sys-primary);color:var(--mat-sys-primary)}.disabled-item{color:unset}.disabled-item:hover{background-color:var(--neutral-variant-color-60)!important}.disabled-item span{color:unset!important}.no-select-item{user-select:none;-webkit-user-select:none}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i1$7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollIntoViewDirective, selector: "[appScrollIntoView]", inputs: ["appScrollIntoView"] }, { kind: "directive", type: OverflowClassDirective, selector: "[overflowClass]", inputs: ["overflowClass"] }, { kind: "directive", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: ["dndDraggable", "dndEffectAllowed", "dndType", "dndDraggingClass", "dndDraggingSourceClass", "dndDraggableDisabledClass", "dndDragImageOffsetFunction", "dndDisableIf", "dndDisableDragIf"], outputs: ["dndStart", "dndDrag", "dndEnd", "dndMoved", "dndCopied", "dndLinked", "dndCanceled"] }, { kind: "component", type: IconComponent, selector: "app-icon", inputs: ["icon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
5836
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NestedListViewComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
5837
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: NestedListViewComponent, isStandalone: true, selector: "app-nested-list-view", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, dataControl: { classPropertyName: "dataControl", publicName: "dataControl", isSignal: true, isRequired: true, transformFunction: null }, width: { classPropertyName: "width", publicName: "width", isSignal: true, isRequired: false, transformFunction: null }, disableThresholdId: { classPropertyName: "disableThresholdId", publicName: "disableThresholdId", isSignal: true, isRequired: false, transformFunction: null }, isColoredInput: { classPropertyName: "isColoredInput", publicName: "isColoredInput", isSignal: true, isRequired: false, transformFunction: null }, searchActions: { classPropertyName: "searchActions", publicName: "searchActions", isSignal: true, isRequired: false, transformFunction: null }, enableMultiSelect: { classPropertyName: "enableMultiSelect", publicName: "enableMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, selectionConfirmationAction: { classPropertyName: "selectionConfirmationAction", publicName: "selectionConfirmationAction", isSignal: true, isRequired: false, transformFunction: null }, hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, rootButtonText: { classPropertyName: "rootButtonText", publicName: "rootButtonText", isSignal: true, isRequired: false, transformFunction: null }, enableDrag: { classPropertyName: "enableDrag", publicName: "enableDrag", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { dragging: "dragging", itemSelected: "itemSelected", itemsSelected: "itemsSelected" }, host: { listeners: { "window:keydown": "onKeyDown($event)", "window:keyup": "onKeyUp($event)" } }, ngImport: i0, template: "<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden\">\r\n <div [ngClass]=\"widthClass()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\" [ngClass]=\"hideSearch() ? 'pt-2' : 'pt-1'\">\r\n\r\n <!-- HEADER -->\r\n <div class=\"flex w-full flex-row gap-x-2\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <div class=\"flex shrink grow flex-row pt-1 gap-x-2 overflow-hidden\">\r\n <mat-form-field class=\"flex grow shrink small-input search-control\" (keydown.shift)=\"$event.stopPropagation()\" (keydown.enter)=\"defaultSearchAction()?.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH_IMMEDIATE_CHILDREN' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n @if (defaultSearchAction(); as defaultAction) {\r\n <div [matTooltip]=\"defaultAction.disabledTooltip ? (defaultAction.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"defaultAction.disableCondition ? !defaultAction.disableCondition({control: nameSearchControl}) : true\">\r\n <button mat-mini-fab [disabled]=\"defaultAction.disableCondition ? defaultAction.disableCondition({control: nameSearchControl}) : false\" (click)=\"defaultAction.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [matTooltip]=\"defaultAction.name | translate\">\r\n <mat-icon [svgIcon]=\"defaultAction.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n @for (action of otherSearchActions(); track $index) {\r\n @if (action.condition() | async) {\r\n <div [matTooltip]=\"action.disabledTooltip ? (action.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"action.disableCondition ? !action.disableCondition() : true\">\r\n <button mat-mini-fab [disabled]=\"action.disableCondition ? action.disableCondition() : false\" (click)=\"action.action()\" [matTooltip]=\"action.name | translate\">\r\n <mat-icon [svgIcon]=\"action.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n\r\n <!-- BREADCRUMBS -->\r\n <div class=\"max-h-[50%] overflow-auto shrink-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingBreadcrumbs()) {\r\n @if (breadcrumbs(); as items) {\r\n <div class=\"flex flex-col w-full overflow-x-hidden\">\r\n @for (item of items; let i = $index; track i) {\r\n @if (selectedItem() && hasMultipleRoots() && i === 0) {\r\n <mat-card (click)=\"resetNavigation()\" class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" [ngClass]=\"disableThresholdId() ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled-item' : ''\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n <div class=\"shrink-0 h-6\">\r\n <mat-icon>arrow_upward</mat-icon>\r\n </div>\r\n <span class=\"text-mat-sys-on-surface\">{{ rootButtonText() | translate: {default: rootButtonText()} }}</span>\r\n </div>\r\n </mat-card>\r\n }\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectBreadcrumb(item)\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag() || !!shouldDisableBreadcrumbClick(item)\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\"\r\n [ngClass]=\"[isBreadcrumbSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', selectedItems().length ? 'opacity-50' : '', shouldDisableBreadcrumbClick(item) ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled-item' : '']\"\r\n [appScrollIntoView]=\"isBreadcrumbSelected(item)\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"[isBreadcrumbSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface']\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (item.rightNumber && item.rightNumber > 0) {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] font-semibold\" [ngClass]=\"isBreadcrumbSelected(item) ? 'bg-transparent text-mat-sys-surface-container' : 'bg-mat-sys-primary text-mat-sys-on-primary'\">{{ item.rightNumber }}</span>\r\n } @else if (enableDrag() && !shouldDisableBreadcrumbClick(item)) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <mat-divider class=\"w-full pb-2\"/>\r\n\r\n <!-- CHILDREN -->\r\n @if (selectedItem()) {\r\n <div class=\"flex-1 overflow-auto min-h-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingChildren()) {\r\n @if (filteredChildren(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full overflow-y-auto overflow-x-hidden\">\r\n @for (item of items; track $index) {\r\n <mat-card class=\"mb-2 cursor-pointer\" [ngClass]=\"[isChildSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', shiftPressed() ? 'no-select-item' : '', (ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled ? 'bg-disabled-color opacity-50 hover:cursor-auto disabled-item' : '']\" (click)=\"selectChild(item)\" [matTooltip]=\"(ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled && item.bulkSelectDisabledTooltip ? (item.bulkSelectDisabledTooltip | translate) : item.name\" matTooltipPosition=\"right\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag()\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"isChildSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (item.rightNumber && item.rightNumber > 0) {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] font-semibold\" [ngClass]=\"isChildSelected(item) ? 'bg-transparent text-mat-sys-surface-container' : 'bg-mat-sys-primary text-mat-sys-on-primary'\">{{ item.rightNumber }}</span>\r\n } @else if (enableDrag()) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"/>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (width() !== 'full') {\r\n <mat-divider [vertical]=\"true\" class=\"relative top-2\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden pt-2\">\r\n @if (!selectedItems().length) {\r\n <ng-content select=\"[app-details]\"/>\r\n } @else {\r\n <div class=\"h-full w-full flex flex-col items-center justify-center relative\">\r\n <div class=\"flex flex-col items-center justify-center\">\r\n <mat-checkbox class=\"w-full\"\r\n [checked]=\"selectedItems().length === allSelectableItems().length\"\r\n (change)=\"toggleSelectAll()\">\r\n {{ 'COMMON.SELECT_ALL' | translate }}\r\n </mat-checkbox>\r\n <mat-divider class=\"w-full !mb-2 !mt-2\"></mat-divider>\r\n <span>{{ 'COMMON.NUMBER_OF_ITEMS_SELECTED' | translate: {numberOfItems: selectedItems().length} }} </span>\r\n </div>\r\n <div class=\"absolute bottom-0 right-0\">\r\n <ng-content select=\"[app-bulk-actions]\"/>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;height:100%;width:100%;overflow:hidden}mat-card,.item-card{height:40px!important}.container{background-color:var(--base-color-50)}.container .master{padding-right:16px}.container .details{padding-left:16px}.selected-item{background:var(--mat-sys-primary);fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}.regular-item{fill:var(--mat-sys-primary);color:var(--mat-sys-primary)}.disabled-item{color:unset}.disabled-item:hover{background-color:var(--neutral-variant-color-60)!important}.disabled-item span{color:unset!important}.no-select-item{user-select:none;-webkit-user-select:none}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatMiniFabButton, selector: "button[mat-mini-fab], a[mat-mini-fab], button[matMiniFab], a[matMiniFab]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i1$7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: ScrollIntoViewDirective, selector: "[appScrollIntoView]", inputs: ["appScrollIntoView"] }, { kind: "directive", type: OverflowClassDirective, selector: "[overflowClass]", inputs: ["overflowClass"] }, { kind: "directive", type: DndDraggableDirective, selector: "[dndDraggable]", inputs: ["dndDraggable", "dndEffectAllowed", "dndType", "dndDraggingClass", "dndDraggingSourceClass", "dndDraggableDisabledClass", "dndDragImageOffsetFunction", "dndDisableIf", "dndDisableDragIf"], outputs: ["dndStart", "dndDrag", "dndEnd", "dndMoved", "dndCopied", "dndLinked", "dndCanceled"] }, { kind: "component", type: IconComponent, selector: "app-icon", inputs: ["icon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
5838
5838
  }
5839
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: NestedListViewComponent, decorators: [{
5839
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: NestedListViewComponent, decorators: [{
5840
5840
  type: Component,
5841
5841
  args: [{ selector: 'app-nested-list-view', imports: [SharedModule, ScrollIntoViewDirective, OverflowClassDirective, DndDraggableDirective, IconComponent], template: "<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden\">\r\n <div [ngClass]=\"widthClass()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\" [ngClass]=\"hideSearch() ? 'pt-2' : 'pt-1'\">\r\n\r\n <!-- HEADER -->\r\n <div class=\"flex w-full flex-row gap-x-2\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <div class=\"flex shrink grow flex-row pt-1 gap-x-2 overflow-hidden\">\r\n <mat-form-field class=\"flex grow shrink small-input search-control\" (keydown.shift)=\"$event.stopPropagation()\" (keydown.enter)=\"defaultSearchAction()?.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH_IMMEDIATE_CHILDREN' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n @if (defaultSearchAction(); as defaultAction) {\r\n <div [matTooltip]=\"defaultAction.disabledTooltip ? (defaultAction.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"defaultAction.disableCondition ? !defaultAction.disableCondition({control: nameSearchControl}) : true\">\r\n <button mat-mini-fab [disabled]=\"defaultAction.disableCondition ? defaultAction.disableCondition({control: nameSearchControl}) : false\" (click)=\"defaultAction.action({parent: this.selectedItem()?.data, control: this.nameSearchControl})\" [matTooltip]=\"defaultAction.name | translate\">\r\n <mat-icon [svgIcon]=\"defaultAction.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n @for (action of otherSearchActions(); track $index) {\r\n @if (action.condition() | async) {\r\n <div [matTooltip]=\"action.disabledTooltip ? (action.disabledTooltip | translate) : ''\" [matTooltipDisabled]=\"action.disableCondition ? !action.disableCondition() : true\">\r\n <button mat-mini-fab [disabled]=\"action.disableCondition ? action.disableCondition() : false\" (click)=\"action.action()\" [matTooltip]=\"action.name | translate\">\r\n <mat-icon [svgIcon]=\"action.icon.id\"/>\r\n </button>\r\n </div>\r\n }\r\n }\r\n </div>\r\n }\r\n </div>\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n\r\n <!-- BREADCRUMBS -->\r\n <div class=\"max-h-[50%] overflow-auto shrink-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingBreadcrumbs()) {\r\n @if (breadcrumbs(); as items) {\r\n <div class=\"flex flex-col w-full overflow-x-hidden\">\r\n @for (item of items; let i = $index; track i) {\r\n @if (selectedItem() && hasMultipleRoots() && i === 0) {\r\n <mat-card (click)=\"resetNavigation()\" class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" [ngClass]=\"disableThresholdId() ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled-item' : ''\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n <div class=\"shrink-0 h-6\">\r\n <mat-icon>arrow_upward</mat-icon>\r\n </div>\r\n <span class=\"text-mat-sys-on-surface\">{{ rootButtonText() | translate: {default: rootButtonText()} }}</span>\r\n </div>\r\n </mat-card>\r\n }\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectBreadcrumb(item)\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag() || !!shouldDisableBreadcrumbClick(item)\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\"\r\n [ngClass]=\"[isBreadcrumbSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', selectedItems().length ? 'opacity-50' : '', shouldDisableBreadcrumbClick(item) ? 'bg-disabled-color opacity-50 hover:cursor-auto pointer-events-none disabled-item' : '']\"\r\n [appScrollIntoView]=\"isBreadcrumbSelected(item)\" [matTooltip]=\"item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"[isBreadcrumbSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface']\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (item.rightNumber && item.rightNumber > 0) {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] font-semibold\" [ngClass]=\"isBreadcrumbSelected(item) ? 'bg-transparent text-mat-sys-surface-container' : 'bg-mat-sys-primary text-mat-sys-on-primary'\">{{ item.rightNumber }}</span>\r\n } @else if (enableDrag() && !shouldDisableBreadcrumbClick(item)) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n }\r\n }\r\n </div>\r\n\r\n <mat-divider class=\"w-full pb-2\"/>\r\n\r\n <!-- CHILDREN -->\r\n @if (selectedItem()) {\r\n <div class=\"flex-1 overflow-auto min-h-0\" [overflowClass]=\"'pr-4'\">\r\n @if (!loadingChildren()) {\r\n @if (filteredChildren(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full overflow-y-auto overflow-x-hidden\">\r\n @for (item of items; track $index) {\r\n <mat-card class=\"mb-2 cursor-pointer\" [ngClass]=\"[isChildSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', shiftPressed() ? 'no-select-item' : '', (ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled ? 'bg-disabled-color opacity-50 hover:cursor-auto disabled-item' : '']\" (click)=\"selectChild(item)\" [matTooltip]=\"(ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled && item.bulkSelectDisabledTooltip ? (item.bulkSelectDisabledTooltip | translate) : item.name\" matTooltipPosition=\"right\"\r\n [dndDraggable]=\"item.data\" [dndDisableDragIf]=\"!enableDrag()\" (dndStart)=\"dragStart($event, item.data)\" (dndEnd)=\"isDragging.set(false)\">\r\n <div class=\"px-3 flex flex-row items-center justify-between gap-x-2 item-card\">\r\n <div class=\"flex flex-row grow items-center gap-x-2 overflow-hidden\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"isChildSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate\">{{ item.name }}</span>\r\n </div>\r\n @if (item.rightNumber && item.rightNumber > 0) {\r\n <span class=\"flex items-center justify-center shrink-0 min-w-5 h-5 px-1.5 rounded-full text-[11px] font-semibold\" [ngClass]=\"isChildSelected(item) ? 'bg-transparent text-mat-sys-surface-container' : 'bg-mat-sys-primary text-mat-sys-on-primary'\">{{ item.rightNumber }}</span>\r\n } @else if (enableDrag()) {\r\n <mat-icon>drag_indicator</mat-icon>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"/>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (width() !== 'full') {\r\n <mat-divider [vertical]=\"true\" class=\"relative top-2\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden pt-2\">\r\n @if (!selectedItems().length) {\r\n <ng-content select=\"[app-details]\"/>\r\n } @else {\r\n <div class=\"h-full w-full flex flex-col items-center justify-center relative\">\r\n <div class=\"flex flex-col items-center justify-center\">\r\n <mat-checkbox class=\"w-full\"\r\n [checked]=\"selectedItems().length === allSelectableItems().length\"\r\n (change)=\"toggleSelectAll()\">\r\n {{ 'COMMON.SELECT_ALL' | translate }}\r\n </mat-checkbox>\r\n <mat-divider class=\"w-full !mb-2 !mt-2\"></mat-divider>\r\n <span>{{ 'COMMON.NUMBER_OF_ITEMS_SELECTED' | translate: {numberOfItems: selectedItems().length} }} </span>\r\n </div>\r\n <div class=\"absolute bottom-0 right-0\">\r\n <ng-content select=\"[app-bulk-actions]\"/>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;height:100%;width:100%;overflow:hidden}mat-card,.item-card{height:40px!important}.container{background-color:var(--base-color-50)}.container .master{padding-right:16px}.container .details{padding-left:16px}.selected-item{background:var(--mat-sys-primary);fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}.regular-item{fill:var(--mat-sys-primary);color:var(--mat-sys-primary)}.disabled-item{color:unset}.disabled-item:hover{background-color:var(--neutral-variant-color-60)!important}.disabled-item span{color:unset!important}.no-select-item{user-select:none;-webkit-user-select:none}\n"] }]
5842
5842
  }], ctorParameters: () => [{ type: i0.DestroyRef }], propDecorators: { onKeyDown: [{
@@ -5941,21 +5941,21 @@ class NestedListDataSource {
5941
5941
 
5942
5942
  class PdfViewerComponent {
5943
5943
  sanitizer;
5944
- value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
5944
+ value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
5945
5945
  safeSrc = computed(() => {
5946
5946
  const url = this.value();
5947
5947
  if (!url)
5948
5948
  return null;
5949
5949
  const urlWithParams = `${url}#zoom=page-width&view=FitH`;
5950
5950
  return this.sanitizer.bypassSecurityTrustResourceUrl(urlWithParams);
5951
- }, ...(ngDevMode ? [{ debugName: "safeSrc" }] : []));
5951
+ }, ...(ngDevMode ? [{ debugName: "safeSrc" }] : /* istanbul ignore next */ []));
5952
5952
  constructor(sanitizer) {
5953
5953
  this.sanitizer = sanitizer;
5954
5954
  }
5955
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
5956
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: PdfViewerComponent, isStandalone: true, selector: "app-pdf-viewer", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (safeSrc()) {\r\n <iframe [src]=\"safeSrc()\" frameborder=\"0\" class=\"w-full h-full\"></iframe>\r\n}", styles: [""] });
5955
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PdfViewerComponent, deps: [{ token: i1$6.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component });
5956
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: PdfViewerComponent, isStandalone: true, selector: "app-pdf-viewer", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "@if (safeSrc()) {\r\n <iframe [src]=\"safeSrc()\" frameborder=\"0\" class=\"w-full h-full\"></iframe>\r\n}", styles: [""] });
5957
5957
  }
5958
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: PdfViewerComponent, decorators: [{
5958
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: PdfViewerComponent, decorators: [{
5959
5959
  type: Component,
5960
5960
  args: [{ selector: 'app-pdf-viewer', imports: [], template: "@if (safeSrc()) {\r\n <iframe [src]=\"safeSrc()\" frameborder=\"0\" class=\"w-full h-full\"></iframe>\r\n}" }]
5961
5961
  }], ctorParameters: () => [{ type: i1$6.DomSanitizer }], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }] } });
@@ -5988,41 +5988,41 @@ class StandardListViewComponent {
5988
5988
  this.itemSelected.emit(this.selectedItems()[0].data);
5989
5989
  }
5990
5990
  }
5991
- dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : []));
5992
- dataControl = input.required(...(ngDevMode ? [{ debugName: "dataControl" }] : []));
5993
- position = input('outer', ...(ngDevMode ? [{ debugName: "position" }] : []));
5994
- isColoredInput = input(false, ...(ngDevMode ? [{ debugName: "isColoredInput" }] : []));
5995
- enableMultiSelect = input(false, ...(ngDevMode ? [{ debugName: "enableMultiSelect" }] : []));
5996
- ctrlPressed = signal(false, ...(ngDevMode ? [{ debugName: "ctrlPressed" }] : []));
5997
- shiftPressed = signal(false, ...(ngDevMode ? [{ debugName: "shiftPressed" }] : []));
5998
- loadingData = signal(true, ...(ngDevMode ? [{ debugName: "loadingData" }] : []));
5999
- loadingPage = signal(false, ...(ngDevMode ? [{ debugName: "loadingPage" }] : []));
6000
- selectedItems = signal([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : []));
6001
- hideSearch = input(false, ...(ngDevMode ? [{ debugName: "hideSearch" }] : []));
6002
- hideDetails = input(false, ...(ngDevMode ? [{ debugName: "hideDetails" }] : []));
6003
- hidePadding = input(false, ...(ngDevMode ? [{ debugName: "hidePadding" }] : [])); // TODO Remove, but the component should have innate outer padding :(
5991
+ dataSource = input.required(...(ngDevMode ? [{ debugName: "dataSource" }] : /* istanbul ignore next */ []));
5992
+ dataControl = input.required(...(ngDevMode ? [{ debugName: "dataControl" }] : /* istanbul ignore next */ []));
5993
+ position = input('outer', ...(ngDevMode ? [{ debugName: "position" }] : /* istanbul ignore next */ []));
5994
+ isColoredInput = input(false, ...(ngDevMode ? [{ debugName: "isColoredInput" }] : /* istanbul ignore next */ []));
5995
+ enableMultiSelect = input(false, ...(ngDevMode ? [{ debugName: "enableMultiSelect" }] : /* istanbul ignore next */ []));
5996
+ ctrlPressed = signal(false, ...(ngDevMode ? [{ debugName: "ctrlPressed" }] : /* istanbul ignore next */ []));
5997
+ shiftPressed = signal(false, ...(ngDevMode ? [{ debugName: "shiftPressed" }] : /* istanbul ignore next */ []));
5998
+ loadingData = signal(true, ...(ngDevMode ? [{ debugName: "loadingData" }] : /* istanbul ignore next */ []));
5999
+ loadingPage = signal(false, ...(ngDevMode ? [{ debugName: "loadingPage" }] : /* istanbul ignore next */ []));
6000
+ selectedItems = signal([], ...(ngDevMode ? [{ debugName: "selectedItems" }] : /* istanbul ignore next */ []));
6001
+ hideSearch = input(false, ...(ngDevMode ? [{ debugName: "hideSearch" }] : /* istanbul ignore next */ []));
6002
+ hideDetails = input(false, ...(ngDevMode ? [{ debugName: "hideDetails" }] : /* istanbul ignore next */ []));
6003
+ hidePadding = input(false, ...(ngDevMode ? [{ debugName: "hidePadding" }] : /* istanbul ignore next */ [])); // TODO Remove, but the component should have innate outer padding :(
6004
6004
  width = computed(() => {
6005
6005
  if (this.hideDetails()) {
6006
6006
  return 'w-full';
6007
6007
  }
6008
6008
  return this.position() === 'outer' ? 'basis-1/4' : 'basis-1/3';
6009
- }, ...(ngDevMode ? [{ debugName: "width" }] : []));
6009
+ }, ...(ngDevMode ? [{ debugName: "width" }] : /* istanbul ignore next */ []));
6010
6010
  nameSearchControl = new FormControl('');
6011
6011
  searchTerm = toSignal(this.nameSearchControl.valueChanges.pipe(startWith(this.nameSearchControl.getRawValue())));
6012
- items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : []));
6012
+ items = signal([], ...(ngDevMode ? [{ debugName: "items" }] : /* istanbul ignore next */ []));
6013
6013
  filteredItems = computed(() => {
6014
6014
  const searchTerm = this.searchTerm();
6015
6015
  if (!searchTerm) {
6016
6016
  return this.items();
6017
6017
  }
6018
6018
  return this.items().filter(item => item.name.toLowerCase().includes(searchTerm.toLowerCase()));
6019
- }, ...(ngDevMode ? [{ debugName: "filteredItems" }] : []));
6019
+ }, ...(ngDevMode ? [{ debugName: "filteredItems" }] : /* istanbul ignore next */ []));
6020
6020
  allSelectableItems = computed(() => {
6021
6021
  return this.filteredItems().filter(item => !item.bulkSelectDisabled);
6022
- }, ...(ngDevMode ? [{ debugName: "allSelectableItems" }] : []));
6022
+ }, ...(ngDevMode ? [{ debugName: "allSelectableItems" }] : /* istanbul ignore next */ []));
6023
6023
  itemSelected = output();
6024
6024
  itemsSelected = output();
6025
- itemTemplate = contentChild('standardListItemTemplate', ...(ngDevMode ? [{ debugName: "itemTemplate" }] : []));
6025
+ itemTemplate = contentChild('standardListItemTemplate', ...(ngDevMode ? [{ debugName: "itemTemplate" }] : /* istanbul ignore next */ []));
6026
6026
  constructor(destroyRef) {
6027
6027
  afterNextRender(() => {
6028
6028
  const dataSource = this.dataSource();
@@ -6198,10 +6198,10 @@ class StandardListViewComponent {
6198
6198
  this.loadingPage.set(false);
6199
6199
  });
6200
6200
  }
6201
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: StandardListViewComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
6202
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: StandardListViewComponent, isStandalone: true, selector: "app-standard-list-view", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, dataControl: { classPropertyName: "dataControl", publicName: "dataControl", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, isColoredInput: { classPropertyName: "isColoredInput", publicName: "isColoredInput", isSignal: true, isRequired: false, transformFunction: null }, enableMultiSelect: { classPropertyName: "enableMultiSelect", publicName: "enableMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, hideDetails: { classPropertyName: "hideDetails", publicName: "hideDetails", isSignal: true, isRequired: false, transformFunction: null }, hidePadding: { classPropertyName: "hidePadding", publicName: "hidePadding", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelected: "itemSelected", itemsSelected: "itemsSelected" }, host: { listeners: { "window:keydown": "onKeyDown($event)", "window:keyup": "onKeyUp($event)" } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ["standardListItemTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden {{hidePadding() ? 'pt-0' : 'pt-2'}}\">\r\n <div [ngClass]=\"width()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <mat-form-field class=\"w-full small-input\" (keydown.shift)=\"$event.stopPropagation()\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n }\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n @if (!loadingData()) {\r\n @if (filteredItems(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full grow shrink overflow-y-auto overflow-x-hidden\" [overflowClass]=\"'pr-4'\">\r\n @for (item of items; track $index) {\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate() || defaultTemplate\" [ngTemplateOutletContext]=\"{$implicit: item, selectedItems: selectedItems(), selectItems: selectItems.bind(this) , isSelected: isSelected.bind(this), ctrlPressed: ctrlPressed(), shiftPressed: shiftPressed()}\"/>\r\n\r\n <!--DEFAULT TEMPLATE-->\r\n <ng-template #defaultTemplate>\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectItems(item)\"\r\n [ngClass]=\"[isSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', shiftPressed() ? 'no-select-item' : '', (ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled ? 'bg-disabled-color opacity-50 hover:cursor-auto disabled-item' : '']\"\r\n [appScrollIntoView]=\"selectedItems().length > 1 ? false : isSelected(item)\"\r\n [matTooltip]=\"(ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled && item.bulkSelectDisabledTooltip ? (item.bulkSelectDisabledTooltip | translate) : item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"isSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate flex-1\">{{ item.name }}</span>\r\n @if (item.rightIcon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n }\r\n\r\n <!-- Load more -->\r\n @if (this.dataSource().isPaged && !this.dataSource().isLastPage) {\r\n <mat-card class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" (click)=\"loadMore()\">\r\n <div class=\"px-3 flex flex-row justify-center items-center gap-x-2 item-card\">\r\n @if (loadingPage()) {\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n } @else {\r\n <span class=\"text-mat-sys-on-surface\">{{ 'COMMON.LOAD_MORE' | translate }}</span>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"></ng-content>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (!hideDetails()) {\r\n <mat-divider [vertical]=\"true\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden\">\r\n @if (selectedItems().length <= 1) {\r\n <ng-content select=\"[app-details]\"/>\r\n } @else {\r\n <div class=\"h-full w-full flex flex-col items-center justify-center relative\">\r\n <div class=\"flex flex-col items-center justify-center\">\r\n <mat-checkbox class=\"w-full\"\r\n [checked]=\"selectedItems().length === allSelectableItems().length\"\r\n (change)=\"toggleSelectAll()\">\r\n {{ 'COMMON.SELECT_ALL' | translate }}\r\n </mat-checkbox>\r\n <mat-divider class=\"w-full !mb-2 !mt-2\"></mat-divider>\r\n <span>{{ 'COMMON.NUMBER_OF_ITEMS_SELECTED' | translate: {numberOfItems: selectedItems().length} }} </span>\r\n </div>\r\n <div class=\"absolute bottom-0 right-0\">\r\n <ng-content select=\"[app-bulk-actions]\"/>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;height:100%;width:100%;overflow:hidden}mat-card,.item-card{height:40px!important}.container{background-color:var(--base-color-50)}.container .master{padding-right:16px}.container .details{padding-left:16px}.selected-item{background:var(--mat-sys-primary);fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}.regular-item{fill:var(--mat-sys-primary);color:var(--mat-sys-primary)}.disabled-item{color:unset}.disabled-item:hover{background-color:var(--neutral-variant-color-60)!important}.disabled-item span{color:unset!important}.no-select-item{user-select:none;-webkit-user-select:none}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i1$7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: OverflowClassDirective, selector: "[overflowClass]", inputs: ["overflowClass"] }, { kind: "directive", type: ScrollIntoViewDirective, selector: "[appScrollIntoView]", inputs: ["appScrollIntoView"] }, { kind: "component", type: IconComponent, selector: "app-icon", inputs: ["icon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6201
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: StandardListViewComponent, deps: [{ token: i0.DestroyRef }], target: i0.ɵɵFactoryTarget.Component });
6202
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: StandardListViewComponent, isStandalone: true, selector: "app-standard-list-view", inputs: { dataSource: { classPropertyName: "dataSource", publicName: "dataSource", isSignal: true, isRequired: true, transformFunction: null }, dataControl: { classPropertyName: "dataControl", publicName: "dataControl", isSignal: true, isRequired: true, transformFunction: null }, position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, isColoredInput: { classPropertyName: "isColoredInput", publicName: "isColoredInput", isSignal: true, isRequired: false, transformFunction: null }, enableMultiSelect: { classPropertyName: "enableMultiSelect", publicName: "enableMultiSelect", isSignal: true, isRequired: false, transformFunction: null }, hideSearch: { classPropertyName: "hideSearch", publicName: "hideSearch", isSignal: true, isRequired: false, transformFunction: null }, hideDetails: { classPropertyName: "hideDetails", publicName: "hideDetails", isSignal: true, isRequired: false, transformFunction: null }, hidePadding: { classPropertyName: "hidePadding", publicName: "hidePadding", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { itemSelected: "itemSelected", itemsSelected: "itemsSelected" }, host: { listeners: { "window:keydown": "onKeyDown($event)", "window:keyup": "onKeyUp($event)" } }, queries: [{ propertyName: "itemTemplate", first: true, predicate: ["standardListItemTemplate"], descendants: true, isSignal: true }], ngImport: i0, template: "<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden {{hidePadding() ? 'pt-0' : 'pt-2'}}\">\r\n <div [ngClass]=\"width()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <mat-form-field class=\"w-full small-input\" (keydown.shift)=\"$event.stopPropagation()\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n }\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n @if (!loadingData()) {\r\n @if (filteredItems(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full grow shrink overflow-y-auto overflow-x-hidden\" [overflowClass]=\"'pr-4'\">\r\n @for (item of items; track $index) {\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate() || defaultTemplate\" [ngTemplateOutletContext]=\"{$implicit: item, selectedItems: selectedItems(), selectItems: selectItems.bind(this) , isSelected: isSelected.bind(this), ctrlPressed: ctrlPressed(), shiftPressed: shiftPressed()}\"/>\r\n\r\n <!--DEFAULT TEMPLATE-->\r\n <ng-template #defaultTemplate>\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectItems(item)\"\r\n [ngClass]=\"[isSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', shiftPressed() ? 'no-select-item' : '', (ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled ? 'bg-disabled-color opacity-50 hover:cursor-auto disabled-item' : '']\"\r\n [appScrollIntoView]=\"selectedItems().length > 1 ? false : isSelected(item)\"\r\n [matTooltip]=\"(ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled && item.bulkSelectDisabledTooltip ? (item.bulkSelectDisabledTooltip | translate) : item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"isSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate flex-1\">{{ item.name }}</span>\r\n @if (item.rightIcon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n }\r\n\r\n <!-- Load more -->\r\n @if (this.dataSource().isPaged && !this.dataSource().isLastPage) {\r\n <mat-card class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" (click)=\"loadMore()\">\r\n <div class=\"px-3 flex flex-row justify-center items-center gap-x-2 item-card\">\r\n @if (loadingPage()) {\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n } @else {\r\n <span class=\"text-mat-sys-on-surface\">{{ 'COMMON.LOAD_MORE' | translate }}</span>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"></ng-content>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (!hideDetails()) {\r\n <mat-divider [vertical]=\"true\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden\">\r\n @if (selectedItems().length <= 1) {\r\n <ng-content select=\"[app-details]\"/>\r\n } @else {\r\n <div class=\"h-full w-full flex flex-col items-center justify-center relative\">\r\n <div class=\"flex flex-col items-center justify-center\">\r\n <mat-checkbox class=\"w-full\"\r\n [checked]=\"selectedItems().length === allSelectableItems().length\"\r\n (change)=\"toggleSelectAll()\">\r\n {{ 'COMMON.SELECT_ALL' | translate }}\r\n </mat-checkbox>\r\n <mat-divider class=\"w-full !mb-2 !mt-2\"></mat-divider>\r\n <span>{{ 'COMMON.NUMBER_OF_ITEMS_SELECTED' | translate: {numberOfItems: selectedItems().length} }} </span>\r\n </div>\r\n <div class=\"absolute bottom-0 right-0\">\r\n <ng-content select=\"[app-bulk-actions]\"/>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;height:100%;width:100%;overflow:hidden}mat-card,.item-card{height:40px!important}.container{background-color:var(--base-color-50)}.container .master{padding-right:16px}.container .details{padding-left:16px}.selected-item{background:var(--mat-sys-primary);fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}.regular-item{fill:var(--mat-sys-primary);color:var(--mat-sys-primary)}.disabled-item{color:unset}.disabled-item:hover{background-color:var(--neutral-variant-color-60)!important}.disabled-item span{color:unset!important}.no-select-item{user-select:none;-webkit-user-select:none}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2$1.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$3.MatCard, selector: "mat-card", inputs: ["appearance"], exportAs: ["matCard"] }, { kind: "component", type: i1$7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: OverflowClassDirective, selector: "[overflowClass]", inputs: ["overflowClass"] }, { kind: "directive", type: ScrollIntoViewDirective, selector: "[appScrollIntoView]", inputs: ["appScrollIntoView"] }, { kind: "component", type: IconComponent, selector: "app-icon", inputs: ["icon"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6203
6203
  }
6204
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: StandardListViewComponent, decorators: [{
6204
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: StandardListViewComponent, decorators: [{
6205
6205
  type: Component,
6206
6206
  args: [{ selector: 'app-standard-list-view', imports: [SharedModule, OverflowClassDirective, ScrollIntoViewDirective, IconComponent], template: "<div class=\"container flex h-full w-full min-w-full min-h-full relative overflow-hidden {{hidePadding() ? 'pt-0' : 'pt-2'}}\">\r\n <div [ngClass]=\"width()\" class=\"master flex shrink-0 grow-0 min-w-0\">\r\n\r\n <!-- LISTING -->\r\n <div class=\"w-full h-full flex flex-col gap-y-2 relative\">\r\n\r\n <!-- SEARCH -->\r\n @if (!hideSearch()) {\r\n <mat-form-field class=\"w-full small-input\" (keydown.shift)=\"$event.stopPropagation()\" [ngClass]=\"{'colored-input': isColoredInput()}\">\r\n <mat-label>{{ 'COMMON.SEARCH' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"nameSearchControl\">\r\n <mat-icon matSuffix>search</mat-icon>\r\n </mat-form-field>\r\n }\r\n\r\n <!-- LIST -->\r\n <div class=\"flex flex-col w-full h-full relative overflow-hidden\">\r\n @if (!loadingData()) {\r\n @if (filteredItems(); as items) {\r\n @if (items.length) {\r\n <div class=\"flex flex-col w-full grow shrink overflow-y-auto overflow-x-hidden\" [overflowClass]=\"'pr-4'\">\r\n @for (item of items; track $index) {\r\n <ng-container [ngTemplateOutlet]=\"itemTemplate() || defaultTemplate\" [ngTemplateOutletContext]=\"{$implicit: item, selectedItems: selectedItems(), selectItems: selectItems.bind(this) , isSelected: isSelected.bind(this), ctrlPressed: ctrlPressed(), shiftPressed: shiftPressed()}\"/>\r\n\r\n <!--DEFAULT TEMPLATE-->\r\n <ng-template #defaultTemplate>\r\n <mat-card class=\"mb-2 cursor-pointer\" (click)=\"selectItems(item)\"\r\n [ngClass]=\"[isSelected(item) ? 'selected-item' : 'regular-item hover:bg-hover-color', shiftPressed() ? 'no-select-item' : '', (ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled ? 'bg-disabled-color opacity-50 hover:cursor-auto disabled-item' : '']\"\r\n [appScrollIntoView]=\"selectedItems().length > 1 ? false : isSelected(item)\"\r\n [matTooltip]=\"(ctrlPressed() || shiftPressed()) && item.bulkSelectDisabled && item.bulkSelectDisabledTooltip ? (item.bulkSelectDisabledTooltip | translate) : item.name\" matTooltipPosition=\"right\">\r\n <div class=\"px-3 flex flex-row items-center gap-x-2 item-card\">\r\n @if (item.icon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n <span [ngClass]=\"isSelected(item) ? 'text-mat-sys-surface-container' : 'text-mat-sys-on-surface'\" class=\"truncate flex-1\">{{ item.name }}</span>\r\n @if (item.rightIcon; as icon) {\r\n <app-icon [icon]=\"icon\"/>\r\n }\r\n </div>\r\n </mat-card>\r\n </ng-template>\r\n }\r\n\r\n <!-- Load more -->\r\n @if (this.dataSource().isPaged && !this.dataSource().isLastPage) {\r\n <mat-card class=\"mb-2 cursor-pointer regular-item hover:bg-hover-color\" (click)=\"loadMore()\">\r\n <div class=\"px-3 flex flex-row justify-center items-center gap-x-2 item-card\">\r\n @if (loadingPage()) {\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n } @else {\r\n <span class=\"text-mat-sys-on-surface\">{{ 'COMMON.LOAD_MORE' | translate }}</span>\r\n }\r\n </div>\r\n </mat-card>\r\n }\r\n </div>\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <ng-content select=\"[app-no-items-message]\"></ng-content>\r\n </div>\r\n }\r\n }\r\n } @else {\r\n <div class=\"flex flex-col grow justify-center items-center\">\r\n <mat-spinner diameter=\"30\"></mat-spinner>\r\n </div>\r\n }\r\n\r\n <!-- ACTIONS (bottom right of the listing) -->\r\n <div class=\"absolute bottom-0 right-0 z-10\">\r\n <ng-content select=\"[app-actions]\"/>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n @if (!hideDetails()) {\r\n <mat-divider [vertical]=\"true\"/>\r\n\r\n <!-- DETAILS -->\r\n <div class=\"details flex shrink grow overflow-hidden\">\r\n @if (selectedItems().length <= 1) {\r\n <ng-content select=\"[app-details]\"/>\r\n } @else {\r\n <div class=\"h-full w-full flex flex-col items-center justify-center relative\">\r\n <div class=\"flex flex-col items-center justify-center\">\r\n <mat-checkbox class=\"w-full\"\r\n [checked]=\"selectedItems().length === allSelectableItems().length\"\r\n (change)=\"toggleSelectAll()\">\r\n {{ 'COMMON.SELECT_ALL' | translate }}\r\n </mat-checkbox>\r\n <mat-divider class=\"w-full !mb-2 !mt-2\"></mat-divider>\r\n <span>{{ 'COMMON.NUMBER_OF_ITEMS_SELECTED' | translate: {numberOfItems: selectedItems().length} }} </span>\r\n </div>\r\n <div class=\"absolute bottom-0 right-0\">\r\n <ng-content select=\"[app-bulk-actions]\"/>\r\n </div>\r\n </div>\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [":host{display:block;height:100%;width:100%;overflow:hidden}mat-card,.item-card{height:40px!important}.container{background-color:var(--base-color-50)}.container .master{padding-right:16px}.container .details{padding-left:16px}.selected-item{background:var(--mat-sys-primary);fill:var(--mat-sys-on-primary);color:var(--mat-sys-on-primary)}.regular-item{fill:var(--mat-sys-primary);color:var(--mat-sys-primary)}.disabled-item{color:unset}.disabled-item:hover{background-color:var(--neutral-variant-color-60)!important}.disabled-item span{color:unset!important}.no-select-item{user-select:none;-webkit-user-select:none}\n"] }]
6207
6207
  }], ctorParameters: () => [{ type: i0.DestroyRef }], propDecorators: { onKeyDown: [{
@@ -6296,10 +6296,10 @@ class TabulatedChipViewComponent {
6296
6296
  router;
6297
6297
  route;
6298
6298
  navigationPersistenceService;
6299
- tabs = input.required(...(ngDevMode ? [{ debugName: "tabs" }] : []));
6300
- queryParamHandling = input('replace', ...(ngDevMode ? [{ debugName: "queryParamHandling" }] : []));
6301
- saveLastActiveTab = input(false, ...(ngDevMode ? [{ debugName: "saveLastActiveTab" }] : []));
6302
- navBarLayoutClasses = input('', ...(ngDevMode ? [{ debugName: "navBarLayoutClasses" }] : []));
6299
+ tabs = input.required(...(ngDevMode ? [{ debugName: "tabs" }] : /* istanbul ignore next */ []));
6300
+ queryParamHandling = input('replace', ...(ngDevMode ? [{ debugName: "queryParamHandling" }] : /* istanbul ignore next */ []));
6301
+ saveLastActiveTab = input(false, ...(ngDevMode ? [{ debugName: "saveLastActiveTab" }] : /* istanbul ignore next */ []));
6302
+ navBarLayoutClasses = input('', ...(ngDevMode ? [{ debugName: "navBarLayoutClasses" }] : /* istanbul ignore next */ []));
6303
6303
  constructor(router, route, navigationPersistenceService) {
6304
6304
  this.router = router;
6305
6305
  this.route = route;
@@ -6316,10 +6316,10 @@ class TabulatedChipViewComponent {
6316
6316
  this.router.navigate([route], { relativeTo: this.route, queryParamsHandling: this.queryParamHandling() });
6317
6317
  }
6318
6318
  }
6319
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TabulatedChipViewComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: NavigationPersistenceService }], target: i0.ɵɵFactoryTarget.Component });
6320
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: TabulatedChipViewComponent, isStandalone: true, selector: "app-tabulated-chip-view", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: true, transformFunction: null }, queryParamHandling: { classPropertyName: "queryParamHandling", publicName: "queryParamHandling", isSignal: true, isRequired: false, transformFunction: null }, saveLastActiveTab: { classPropertyName: "saveLastActiveTab", publicName: "saveLastActiveTab", isSignal: true, isRequired: false, transformFunction: null }, navBarLayoutClasses: { classPropertyName: "navBarLayoutClasses", publicName: "navBarLayoutClasses", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-auto flex-col overflow-hidden tabulated-view-container\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\" [ngClass]=\"navBarLayoutClasses()\">\r\n @for (tab of tabs(); track $index) {\r\n @if (!tab.condition || (tab.condition | async)) {\r\n <div\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [ngClass]=\"{ 'bg-mat-sys-primary': isActive(tab.route), 'active': isActive(tab.route) }\"\r\n class=\"rounded mr-2 navigation-tab\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n @if (tab.icon) {\r\n <mat-icon>{{ tab.icon }}</mat-icon>\r\n }\r\n <span [ngClass]=\"isActive(tab.route) ?'text-mat-sys-surface-container' : 'text-mat-sys-primary'\">{{ tab.name | translate }}</span>\r\n </div>\r\n }\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet/>\r\n </mat-tab-nav-panel>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box;--mat-tab-active-indicator-color: transparent;--mat-tab-active-focus-indicator-color: transparent;--mat-tab-active-hover-indicator-color: transparent;--mat-tab-active-ripple-color: transparent;--mat-tab-inactive-ripple-color: transparent;--mat-tab-disabled-ripple-color: transparent;--mat-tab-active-indicator-height: 0;--mat-tab-divider-height: 0px;--mat-tab-container-height: 40px}.navigation{max-width:100%}.navigation-tab{border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:0 1rem;height:2.5rem;box-sizing:border-box}.navigation-tab.active{border:none}.navigation-tab:hover{box-shadow:inset 0 0 0 200px #fff3}.navigation-tab:hover mat-icon,.navigation-tab:hover span{opacity:.8}:host-context(.alt-theme) .navigation-tab:hover{box-shadow:inset 0 0 0 200px #0003}:host-context(.alt-theme) .navigation-tab:hover mat-icon,:host-context(.alt-theme) .navigation-tab:hover span{opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i4$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i4$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
6319
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TabulatedChipViewComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: NavigationPersistenceService }], target: i0.ɵɵFactoryTarget.Component });
6320
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: TabulatedChipViewComponent, isStandalone: true, selector: "app-tabulated-chip-view", inputs: { tabs: { classPropertyName: "tabs", publicName: "tabs", isSignal: true, isRequired: true, transformFunction: null }, queryParamHandling: { classPropertyName: "queryParamHandling", publicName: "queryParamHandling", isSignal: true, isRequired: false, transformFunction: null }, saveLastActiveTab: { classPropertyName: "saveLastActiveTab", publicName: "saveLastActiveTab", isSignal: true, isRequired: false, transformFunction: null }, navBarLayoutClasses: { classPropertyName: "navBarLayoutClasses", publicName: "navBarLayoutClasses", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "<div class=\"flex flex-auto flex-col overflow-hidden tabulated-view-container\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\" [ngClass]=\"navBarLayoutClasses()\">\r\n @for (tab of tabs(); track $index) {\r\n @if (!tab.condition || (tab.condition | async)) {\r\n <div\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [ngClass]=\"{ 'bg-mat-sys-primary': isActive(tab.route), 'active': isActive(tab.route) }\"\r\n class=\"rounded mr-2 navigation-tab\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n @if (tab.icon) {\r\n <mat-icon>{{ tab.icon }}</mat-icon>\r\n }\r\n <span [ngClass]=\"isActive(tab.route) ?'text-mat-sys-surface-container' : 'text-mat-sys-primary'\">{{ tab.name | translate }}</span>\r\n </div>\r\n }\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet/>\r\n </mat-tab-nav-panel>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box;--mat-tab-active-indicator-color: transparent;--mat-tab-active-focus-indicator-color: transparent;--mat-tab-active-hover-indicator-color: transparent;--mat-tab-active-ripple-color: transparent;--mat-tab-inactive-ripple-color: transparent;--mat-tab-disabled-ripple-color: transparent;--mat-tab-active-indicator-height: 0;--mat-tab-divider-height: 0px;--mat-tab-container-height: 40px}.navigation{max-width:100%}.navigation-tab{border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:0 1rem;height:2.5rem;box-sizing:border-box}.navigation-tab.active{border:none}.navigation-tab:hover{box-shadow:inset 0 0 0 200px #fff3}.navigation-tab:hover mat-icon,.navigation-tab:hover span{opacity:.8}:host-context(.alt-theme) .navigation-tab:hover{box-shadow:inset 0 0 0 200px #0003}:host-context(.alt-theme) .navigation-tab:hover mat-icon,:host-context(.alt-theme) .navigation-tab:hover span{opacity:.6}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i4$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i4$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
6321
6321
  }
6322
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TabulatedChipViewComponent, decorators: [{
6322
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TabulatedChipViewComponent, decorators: [{
6323
6323
  type: Component,
6324
6324
  args: [{ selector: 'app-tabulated-chip-view', imports: [SharedModule], template: "<div class=\"flex flex-auto flex-col overflow-hidden tabulated-view-container\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\" [ngClass]=\"navBarLayoutClasses()\">\r\n @for (tab of tabs(); track $index) {\r\n @if (!tab.condition || (tab.condition | async)) {\r\n <div\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [ngClass]=\"{ 'bg-mat-sys-primary': isActive(tab.route), 'active': isActive(tab.route) }\"\r\n class=\"rounded mr-2 navigation-tab\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n @if (tab.icon) {\r\n <mat-icon>{{ tab.icon }}</mat-icon>\r\n }\r\n <span [ngClass]=\"isActive(tab.route) ?'text-mat-sys-surface-container' : 'text-mat-sys-primary'\">{{ tab.name | translate }}</span>\r\n </div>\r\n }\r\n }\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet/>\r\n </mat-tab-nav-panel>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box;--mat-tab-active-indicator-color: transparent;--mat-tab-active-focus-indicator-color: transparent;--mat-tab-active-hover-indicator-color: transparent;--mat-tab-active-ripple-color: transparent;--mat-tab-inactive-ripple-color: transparent;--mat-tab-disabled-ripple-color: transparent;--mat-tab-active-indicator-height: 0;--mat-tab-divider-height: 0px;--mat-tab-container-height: 40px}.navigation{max-width:100%}.navigation-tab{border:1px solid var(--mat-sys-outline-variant);border-radius:10px;padding:0 1rem;height:2.5rem;box-sizing:border-box}.navigation-tab.active{border:none}.navigation-tab:hover{box-shadow:inset 0 0 0 200px #fff3}.navigation-tab:hover mat-icon,.navigation-tab:hover span{opacity:.8}:host-context(.alt-theme) .navigation-tab:hover{box-shadow:inset 0 0 0 200px #0003}:host-context(.alt-theme) .navigation-tab:hover mat-icon,:host-context(.alt-theme) .navigation-tab:hover span{opacity:.6}\n"] }]
6325
6325
  }], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: NavigationPersistenceService }], propDecorators: { tabs: [{ type: i0.Input, args: [{ isSignal: true, alias: "tabs", required: true }] }], queryParamHandling: [{ type: i0.Input, args: [{ isSignal: true, alias: "queryParamHandling", required: false }] }], saveLastActiveTab: [{ type: i0.Input, args: [{ isSignal: true, alias: "saveLastActiveTab", required: false }] }], navBarLayoutClasses: [{ type: i0.Input, args: [{ isSignal: true, alias: "navBarLayoutClasses", required: false }] }] } });
@@ -6347,10 +6347,10 @@ class TabulatedViewComponent {
6347
6347
  this.router.navigate([route], { relativeTo: this.route, queryParamsHandling: this.queryParamHandling });
6348
6348
  }
6349
6349
  }
6350
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TabulatedViewComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: NavigationPersistenceService }], target: i0.ɵɵFactoryTarget.Component });
6351
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.0", type: TabulatedViewComponent, isStandalone: true, selector: "app-tabulated-view", inputs: { tabs: "tabs", queryParamHandling: "queryParamHandling", saveLastActiveTab: "saveLastActiveTab" }, ngImport: i0, template: "<div class=\"flex flex-auto flex-col overflow-hidden\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\">\r\n <div\r\n *ngFor=\"let tab of tabs\"\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n <mat-icon *ngIf=\"tab.icon\">\r\n {{ tab.icon }}\r\n </mat-icon>\r\n {{ tab.name | translate }}\r\n </div>\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet></router-outlet>\r\n </mat-tab-nav-panel>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box}.navigation{border-bottom:1px solid rgba(0,0,0,.12);max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i4$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i4$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6350
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TabulatedViewComponent, deps: [{ token: i1$2.Router }, { token: i1$2.ActivatedRoute }, { token: NavigationPersistenceService }], target: i0.ɵɵFactoryTarget.Component });
6351
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "21.2.13", type: TabulatedViewComponent, isStandalone: true, selector: "app-tabulated-view", inputs: { tabs: "tabs", queryParamHandling: "queryParamHandling", saveLastActiveTab: "saveLastActiveTab" }, ngImport: i0, template: "<div class=\"flex flex-auto flex-col overflow-hidden\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\">\r\n <div\r\n *ngFor=\"let tab of tabs\"\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n <mat-icon *ngIf=\"tab.icon\">\r\n {{ tab.icon }}\r\n </mat-icon>\r\n {{ tab.name | translate }}\r\n </div>\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet></router-outlet>\r\n </mat-tab-nav-panel>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box}.navigation{border-bottom:1px solid rgba(0,0,0,.12);max-width:100%}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4$5.MatTabNav, selector: "[mat-tab-nav-bar]", inputs: ["fitInkBarToContent", "mat-stretch-tabs", "animationDuration", "backgroundColor", "disableRipple", "color", "tabPanel"], exportAs: ["matTabNavBar", "matTabNav"] }, { kind: "component", type: i4$5.MatTabNavPanel, selector: "mat-tab-nav-panel", inputs: ["id"], exportAs: ["matTabNavPanel"] }, { kind: "component", type: i4$5.MatTabLink, selector: "[mat-tab-link], [matTabLink]", inputs: ["active", "disabled", "disableRipple", "tabIndex", "id"], exportAs: ["matTabLink"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$2.RouterOutlet, selector: "router-outlet", inputs: ["name", "routerOutletData"], outputs: ["activate", "deactivate", "attach", "detach"], exportAs: ["outlet"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6352
6352
  }
6353
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TabulatedViewComponent, decorators: [{
6353
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TabulatedViewComponent, decorators: [{
6354
6354
  type: Component,
6355
6355
  args: [{ selector: 'app-tabulated-view', imports: [SharedModule], template: "<div class=\"flex flex-auto flex-col overflow-hidden\">\r\n <nav mat-tab-nav-bar [mat-stretch-tabs]=\"false\" [tabPanel]=\"tabPanel\" class=\"navigation\">\r\n <div\r\n *ngFor=\"let tab of tabs\"\r\n mat-tab-link\r\n [active]=\"isActive(tab.route)\"\r\n (click)=\"navigate(tab.route)\"\r\n [matTooltip]=\"tab.tooltip ? (tab.tooltip | translate) : null\"\r\n [attr.data-test]=\"tab.name + '_tab'\"\r\n >\r\n <mat-icon *ngIf=\"tab.icon\">\r\n {{ tab.icon }}\r\n </mat-icon>\r\n {{ tab.name | translate }}\r\n </div>\r\n </nav>\r\n <mat-tab-nav-panel #tabPanel class=\"flex flex-auto flex-col overflow-hidden\">\r\n <router-outlet></router-outlet>\r\n </mat-tab-nav-panel>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box}.navigation{border-bottom:1px solid rgba(0,0,0,.12);max-width:100%}\n"] }]
6356
6356
  }], ctorParameters: () => [{ type: i1$2.Router }, { type: i1$2.ActivatedRoute }, { type: NavigationPersistenceService }], propDecorators: { tabs: [{
@@ -6363,7 +6363,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
6363
6363
  }] } });
6364
6364
 
6365
6365
  class TreeNodeComponent {
6366
- node = input.required(...(ngDevMode ? [{ debugName: "node" }] : []));
6366
+ node = input.required(...(ngDevMode ? [{ debugName: "node" }] : /* istanbul ignore next */ []));
6367
6367
  nodeSelected = output();
6368
6368
  toggle(node) {
6369
6369
  node.open = !node.open;
@@ -6371,17 +6371,17 @@ class TreeNodeComponent {
6371
6371
  selectNode(node) {
6372
6372
  this.nodeSelected.emit(node);
6373
6373
  }
6374
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6375
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: TreeNodeComponent, isStandalone: true, selector: "app-tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { nodeSelected: "nodeSelected" }, ngImport: i0, template: "<div class=\"w-full flex flex-col\">\r\n <!-- ROW -->\r\n <div class=\"w-full h-10 flex flex-row items-center\">\r\n\r\n <!-- ARROWS -->\r\n @if (node().canHaveChildren) {\r\n @if (node().open) {\r\n <button mat-icon-button class=\"scale-80\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n </button>\r\n } @else {\r\n <button mat-icon-button class=\"scale-80\" [disabled]=\"!node().hasChildren\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n }\r\n } @else {\r\n <div class=\"w-12 h-12\">&nbsp;</div>\r\n }\r\n\r\n <!-- ICON AND TEXT -->\r\n <div class=\"flex flex-row items-center cursor-pointer\" (click)=\"selectNode(node())\">\r\n <mat-icon [ngClass]=\"node().selected ? 'text-mat-sys-tertiary' : 'text-mat-sys-primary'\">{{ node().icon }}</mat-icon>\r\n <div class=\"pl-2\" [ngClass]=\"{ 'text-mat-sys-tertiary' : node().selected }\">{{ node().name }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- Children -->\r\n @if (node().open) {\r\n <div class=\"w-full flex flex-col pl-9\">\r\n @if (node().children | async; as children) {\r\n @for (child of children; track $index) {\r\n <app-tree-node [node]=\"child\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "app-tree-node", inputs: ["node"], outputs: ["nodeSelected"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
6374
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TreeNodeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6375
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: TreeNodeComponent, isStandalone: true, selector: "app-tree-node", inputs: { node: { classPropertyName: "node", publicName: "node", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { nodeSelected: "nodeSelected" }, ngImport: i0, template: "<div class=\"w-full flex flex-col\">\r\n <!-- ROW -->\r\n <div class=\"w-full h-10 flex flex-row items-center\">\r\n\r\n <!-- ARROWS -->\r\n @if (node().canHaveChildren) {\r\n @if (node().open) {\r\n <button mat-icon-button class=\"scale-80\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n </button>\r\n } @else {\r\n <button mat-icon-button class=\"scale-80\" [disabled]=\"!node().hasChildren\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n }\r\n } @else {\r\n <div class=\"w-12 h-12\">&nbsp;</div>\r\n }\r\n\r\n <!-- ICON AND TEXT -->\r\n <div class=\"flex flex-row items-center cursor-pointer\" (click)=\"selectNode(node())\">\r\n <mat-icon [ngClass]=\"node().selected ? 'text-mat-sys-tertiary' : 'text-mat-sys-primary'\">{{ node().icon }}</mat-icon>\r\n <div class=\"pl-2\" [ngClass]=\"{ 'text-mat-sys-tertiary' : node().selected }\">{{ node().name }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- Children -->\r\n @if (node().open) {\r\n <div class=\"w-full flex flex-col pl-9\">\r\n @if (node().children | async; as children) {\r\n @for (child of children; track $index) {\r\n <app-tree-node [node]=\"child\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "app-tree-node", inputs: ["node"], outputs: ["nodeSelected"] }, { kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i6.AsyncPipe, name: "async" }] });
6376
6376
  }
6377
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TreeNodeComponent, decorators: [{
6377
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TreeNodeComponent, decorators: [{
6378
6378
  type: Component,
6379
6379
  args: [{ selector: 'app-tree-node', imports: [SharedModule], template: "<div class=\"w-full flex flex-col\">\r\n <!-- ROW -->\r\n <div class=\"w-full h-10 flex flex-row items-center\">\r\n\r\n <!-- ARROWS -->\r\n @if (node().canHaveChildren) {\r\n @if (node().open) {\r\n <button mat-icon-button class=\"scale-80\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_down</mat-icon>\r\n </button>\r\n } @else {\r\n <button mat-icon-button class=\"scale-80\" [disabled]=\"!node().hasChildren\" (click)=\"toggle(node())\">\r\n <mat-icon>keyboard_arrow_right</mat-icon>\r\n </button>\r\n }\r\n } @else {\r\n <div class=\"w-12 h-12\">&nbsp;</div>\r\n }\r\n\r\n <!-- ICON AND TEXT -->\r\n <div class=\"flex flex-row items-center cursor-pointer\" (click)=\"selectNode(node())\">\r\n <mat-icon [ngClass]=\"node().selected ? 'text-mat-sys-tertiary' : 'text-mat-sys-primary'\">{{ node().icon }}</mat-icon>\r\n <div class=\"pl-2\" [ngClass]=\"{ 'text-mat-sys-tertiary' : node().selected }\">{{ node().name }}</div>\r\n </div>\r\n </div>\r\n\r\n <!-- Children -->\r\n @if (node().open) {\r\n <div class=\"w-full flex flex-col pl-9\">\r\n @if (node().children | async; as children) {\r\n @for (child of children; track $index) {\r\n <app-tree-node [node]=\"child\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n }\r\n </div>\r\n }\r\n</div>\r\n" }]
6380
6380
  }], propDecorators: { node: [{ type: i0.Input, args: [{ isSignal: true, alias: "node", required: true }] }], nodeSelected: [{ type: i0.Output, args: ["nodeSelected"] }] } });
6381
6381
 
6382
6382
  class TreeComponent {
6383
- roots = input.required(...(ngDevMode ? [{ debugName: "roots" }] : []));
6384
- guidPath = input.required(...(ngDevMode ? [{ debugName: "guidPath" }] : []));
6383
+ roots = input.required(...(ngDevMode ? [{ debugName: "roots" }] : /* istanbul ignore next */ []));
6384
+ guidPath = input.required(...(ngDevMode ? [{ debugName: "guidPath" }] : /* istanbul ignore next */ []));
6385
6385
  nodeSelected = output();
6386
6386
  selectedNode = null;
6387
6387
  constructor() {
@@ -6425,19 +6425,19 @@ class TreeComponent {
6425
6425
  this.selectedNode = node;
6426
6426
  this.selectedNode.selected = true;
6427
6427
  }
6428
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6429
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: TreeComponent, isStandalone: true, selector: "app-tree", inputs: { roots: { classPropertyName: "roots", publicName: "roots", isSignal: true, isRequired: true, transformFunction: null }, guidPath: { classPropertyName: "guidPath", publicName: "guidPath", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { nodeSelected: "nodeSelected" }, ngImport: i0, template: "<div class=\"h-full w-full flex flex-col\">\r\n @for (node of roots(); track $index) {\r\n <app-tree-node [node]=\"node\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "app-tree-node", inputs: ["node"], outputs: ["nodeSelected"] }] });
6428
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TreeComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6429
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: TreeComponent, isStandalone: true, selector: "app-tree", inputs: { roots: { classPropertyName: "roots", publicName: "roots", isSignal: true, isRequired: true, transformFunction: null }, guidPath: { classPropertyName: "guidPath", publicName: "guidPath", isSignal: true, isRequired: true, transformFunction: null } }, outputs: { nodeSelected: "nodeSelected" }, ngImport: i0, template: "<div class=\"h-full w-full flex flex-col\">\r\n @for (node of roots(); track $index) {\r\n <app-tree-node [node]=\"node\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "component", type: TreeNodeComponent, selector: "app-tree-node", inputs: ["node"], outputs: ["nodeSelected"] }] });
6430
6430
  }
6431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: TreeComponent, decorators: [{
6431
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: TreeComponent, decorators: [{
6432
6432
  type: Component,
6433
6433
  args: [{ selector: 'app-tree', imports: [TreeNodeComponent], template: "<div class=\"h-full w-full flex flex-col\">\r\n @for (node of roots(); track $index) {\r\n <app-tree-node [node]=\"node\" (nodeSelected)=\"selectNode($event)\"/>\r\n }\r\n</div>\r\n" }]
6434
6434
  }], ctorParameters: () => [], propDecorators: { roots: [{ type: i0.Input, args: [{ isSignal: true, alias: "roots", required: true }] }], guidPath: [{ type: i0.Input, args: [{ isSignal: true, alias: "guidPath", required: true }] }], nodeSelected: [{ type: i0.Output, args: ["nodeSelected"] }] } });
6435
6435
 
6436
6436
  class ValueDisplayComponent {
6437
6437
  DataType = DataType;
6438
- value = input.required(...(ngDevMode ? [{ debugName: "value" }] : []));
6439
- type = input.required(...(ngDevMode ? [{ debugName: "type" }] : []));
6440
- unit = input(...(ngDevMode ? [undefined, { debugName: "unit" }] : []));
6438
+ value = input.required(...(ngDevMode ? [{ debugName: "value" }] : /* istanbul ignore next */ []));
6439
+ type = input.required(...(ngDevMode ? [{ debugName: "type" }] : /* istanbul ignore next */ []));
6440
+ unit = input(...(ngDevMode ? [undefined, { debugName: "unit" }] : /* istanbul ignore next */ []));
6441
6441
  constructor() {
6442
6442
  }
6443
6443
  getNumber(epochTime) {
@@ -6446,21 +6446,21 @@ class ValueDisplayComponent {
6446
6446
  getVectorValue(vector) {
6447
6447
  return vector.replaceAll(',', ', ');
6448
6448
  }
6449
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6450
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueDisplayComponent, isStandalone: true, selector: "app-value-display", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (value(); as value) {\r\n @switch (type()) {\r\n @case (DataType.BOOLEAN) {\r\n <mat-icon>{{ value === 'true' ? 'check' : 'close' }}</mat-icon>\r\n }\r\n @case (DataType.COLOR) {\r\n <div class=\"color-circle\" [style.background-color]=\"value\"></div>\r\n }\r\n @case (DataType.DATE) {\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) | simpleDateTime }}\">{{ getNumber(value) | simpleDateTime }}</div>\r\n }\r\n @case (DataType.DURATION) {\r\n {{ getNumber(value) | duration }}\r\n }\r\n @case (DataType.LINK) {\r\n <div class=\"truncate\" matTooltip=\"{{ value }}\">\r\n <a href=\"{{value}}\" target=\"_blank\" class=\"underline\">{{ value }}</a>\r\n </div>\r\n }\r\n @case (DataType.VECTOR) {\r\n <div class=\"truncate\" matTooltip=\"{{ getVectorValue(value) }}\">{{ getVectorValue(value) }}</div>\r\n }\r\n @case (DataType.NUMERIC){\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) }} {{ unit() }}\">{{getNumber(value) | localizedNumber}} {{ unit() }}</div>\r\n }\r\n @default {\r\n <div class=\"truncate\" matTooltip=\"{{ value }} {{ unit() }}\">{{ value }} {{ unit() }}</div>\r\n }\r\n }\r\n} @else {\r\n -\r\n}\r\n", styles: [".color-circle{width:1.5rem;height:1.5rem;margin-top:.25rem;border-radius:9999px}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: DurationPipe, name: "duration" }, { kind: "pipe", type: SimpleDateTimePipe, name: "simpleDateTime" }, { kind: "pipe", type: LocalizedNumberPipe, name: "localizedNumber" }] });
6449
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueDisplayComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6450
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueDisplayComponent, isStandalone: true, selector: "app-value-display", inputs: { value: { classPropertyName: "value", publicName: "value", isSignal: true, isRequired: true, transformFunction: null }, type: { classPropertyName: "type", publicName: "type", isSignal: true, isRequired: true, transformFunction: null }, unit: { classPropertyName: "unit", publicName: "unit", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@if (value(); as value) {\r\n @switch (type()) {\r\n @case (DataType.BOOLEAN) {\r\n <mat-icon>{{ value === 'true' ? 'check' : 'close' }}</mat-icon>\r\n }\r\n @case (DataType.COLOR) {\r\n <div class=\"color-circle\" [style.background-color]=\"value\"></div>\r\n }\r\n @case (DataType.DATE) {\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) | simpleDateTime }}\">{{ getNumber(value) | simpleDateTime }}</div>\r\n }\r\n @case (DataType.DURATION) {\r\n {{ getNumber(value) | duration }}\r\n }\r\n @case (DataType.LINK) {\r\n <div class=\"truncate\" matTooltip=\"{{ value }}\">\r\n <a href=\"{{value}}\" target=\"_blank\" class=\"underline\">{{ value }}</a>\r\n </div>\r\n }\r\n @case (DataType.VECTOR) {\r\n <div class=\"truncate\" matTooltip=\"{{ getVectorValue(value) }}\">{{ getVectorValue(value) }}</div>\r\n }\r\n @case (DataType.NUMERIC){\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) }} {{ unit() }}\">{{getNumber(value) | localizedNumber}} {{ unit() }}</div>\r\n }\r\n @default {\r\n <div class=\"truncate\" matTooltip=\"{{ value }} {{ unit() }}\">{{ value }} {{ unit() }}</div>\r\n }\r\n }\r\n} @else {\r\n -\r\n}\r\n", styles: [".color-circle{width:1.5rem;height:1.5rem;margin-top:.25rem;border-radius:9999px}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "pipe", type: DurationPipe, name: "duration" }, { kind: "pipe", type: SimpleDateTimePipe, name: "simpleDateTime" }, { kind: "pipe", type: LocalizedNumberPipe, name: "localizedNumber" }] });
6451
6451
  }
6452
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueDisplayComponent, decorators: [{
6452
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueDisplayComponent, decorators: [{
6453
6453
  type: Component,
6454
6454
  args: [{ selector: 'app-value-display', imports: [SharedModule, DurationPipe, SimpleDateTimePipe, LocalizedNumberPipe], template: "@if (value(); as value) {\r\n @switch (type()) {\r\n @case (DataType.BOOLEAN) {\r\n <mat-icon>{{ value === 'true' ? 'check' : 'close' }}</mat-icon>\r\n }\r\n @case (DataType.COLOR) {\r\n <div class=\"color-circle\" [style.background-color]=\"value\"></div>\r\n }\r\n @case (DataType.DATE) {\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) | simpleDateTime }}\">{{ getNumber(value) | simpleDateTime }}</div>\r\n }\r\n @case (DataType.DURATION) {\r\n {{ getNumber(value) | duration }}\r\n }\r\n @case (DataType.LINK) {\r\n <div class=\"truncate\" matTooltip=\"{{ value }}\">\r\n <a href=\"{{value}}\" target=\"_blank\" class=\"underline\">{{ value }}</a>\r\n </div>\r\n }\r\n @case (DataType.VECTOR) {\r\n <div class=\"truncate\" matTooltip=\"{{ getVectorValue(value) }}\">{{ getVectorValue(value) }}</div>\r\n }\r\n @case (DataType.NUMERIC){\r\n <div class=\"truncate\" matTooltip=\"{{ getNumber(value) }} {{ unit() }}\">{{getNumber(value) | localizedNumber}} {{ unit() }}</div>\r\n }\r\n @default {\r\n <div class=\"truncate\" matTooltip=\"{{ value }} {{ unit() }}\">{{ value }} {{ unit() }}</div>\r\n }\r\n }\r\n} @else {\r\n -\r\n}\r\n", styles: [".color-circle{width:1.5rem;height:1.5rem;margin-top:.25rem;border-radius:9999px}\n"] }]
6455
6455
  }], ctorParameters: () => [], propDecorators: { value: [{ type: i0.Input, args: [{ isSignal: true, alias: "value", required: true }] }], type: [{ type: i0.Input, args: [{ isSignal: true, alias: "type", required: true }] }], unit: [{ type: i0.Input, args: [{ isSignal: true, alias: "unit", required: false }] }] } });
6456
6456
 
6457
6457
  class ValueInputBooleanComponent {
6458
6458
  translate;
6459
- name = input('', ...(ngDevMode ? [{ debugName: "name" }] : []));
6459
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
6460
6460
  formControl = new FormControl(false);
6461
6461
  destroy$ = new Subject();
6462
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
6463
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
6462
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
6463
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
6464
6464
  constructor(translate) {
6465
6465
  this.translate = translate;
6466
6466
  effect(() => {
@@ -6507,8 +6507,8 @@ class ValueInputBooleanComponent {
6507
6507
  this.destroy$.next();
6508
6508
  this.destroy$.complete();
6509
6509
  }
6510
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputBooleanComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6511
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputBooleanComponent, isStandalone: true, selector: "app-value-input-boolean", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6510
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputBooleanComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6511
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputBooleanComponent, isStandalone: true, selector: "app-value-input-boolean", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6512
6512
  {
6513
6513
  provide: NG_VALUE_ACCESSOR,
6514
6514
  useExisting: forwardRef(() => ValueInputBooleanComponent),
@@ -6521,7 +6521,7 @@ class ValueInputBooleanComponent {
6521
6521
  }
6522
6522
  ], ngImport: i0, template: "<mat-slide-toggle [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <div class=\"flex flex-col ml-2\">\r\n <span class=\"text-xs font-light\"> {{ name() }} </span>\r\n <span>{{ formControl.value ? ('DATA_BROWSER.ATTRIBUTE_VALUE_ENABLED' | translate) : ('DATA_BROWSER.ATTRIBUTE_VALUE_DISABLED' | translate) }}</span>\r\n </div>\r\n</mat-slide-toggle>\r\n@for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\" class=\"ml-4 mt-[-8px] text-[12px]\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate }}</mat-error>\r\n}\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6523
6523
  }
6524
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputBooleanComponent, decorators: [{
6524
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputBooleanComponent, decorators: [{
6525
6525
  type: Component,
6526
6526
  args: [{ selector: 'app-value-input-boolean', imports: [SharedModule, MatSlideToggle], providers: [
6527
6527
  {
@@ -6539,13 +6539,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
6539
6539
 
6540
6540
  class ValueInputColorComponent {
6541
6541
  translate;
6542
- name = input('', ...(ngDevMode ? [{ debugName: "name" }] : []));
6542
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
6543
6543
  colorPicker = viewChild.required('colorPicker');
6544
6544
  showPicker = false;
6545
6545
  formControl = new FormControl('');
6546
6546
  destroy$ = new Subject();
6547
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
6548
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
6547
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
6548
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
6549
6549
  onTouched = () => {
6550
6550
  };
6551
6551
  onValidatorChange;
@@ -6615,8 +6615,8 @@ class ValueInputColorComponent {
6615
6615
  this.destroy$.next();
6616
6616
  this.destroy$.complete();
6617
6617
  }
6618
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputColorComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6619
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputColorComponent, isStandalone: true, selector: "app-value-input-color", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6618
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputColorComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6619
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputColorComponent, isStandalone: true, selector: "app-value-input-color", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6620
6620
  {
6621
6621
  provide: NG_VALUE_ACCESSOR,
6622
6622
  useExisting: forwardRef(() => ValueInputColorComponent),
@@ -6629,7 +6629,7 @@ class ValueInputColorComponent {
6629
6629
  }
6630
6630
  ], viewQueries: [{ propertyName: "colorPicker", first: true, predicate: ["colorPicker"], descendants: true, isSignal: true }], ngImport: i0, template: "<mat-form-field class=\"w-full relative\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" (click)=\"openColorPicker()\">\r\n <input type=\"color\" #colorPicker [value]=\"formControl.value\" (input)=\"onColorPickerChange($event)\" class=\"absolute opacity-0 right-55 top-full mt-1 z-10\" [class.hidden]=\"!showPicker\">\r\n <div class=\"w-5 h-5 rounded-full mr-4 cursor-pointer\" [style.background-color]=\"formControl.getRawValue()\" matSuffix (click)=\"openColorPicker()\">&nbsp;</div>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n", styles: ["mat-form-field input[type=color]{width:auto;height:auto}:host{--color-picker-width: 250px}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i2.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6631
6631
  }
6632
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputColorComponent, decorators: [{
6632
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputColorComponent, decorators: [{
6633
6633
  type: Component,
6634
6634
  args: [{ selector: 'app-value-input-color', imports: [SharedModule], providers: [
6635
6635
  {
@@ -6648,8 +6648,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
6648
6648
  class ValueInputDateComponent {
6649
6649
  formControl = new FormControl(null);
6650
6650
  destroy$ = new Subject();
6651
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
6652
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
6651
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
6652
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
6653
6653
  onTouched = () => {
6654
6654
  };
6655
6655
  onValidatorChange;
@@ -6698,8 +6698,8 @@ class ValueInputDateComponent {
6698
6698
  this.destroy$.next();
6699
6699
  this.destroy$.complete();
6700
6700
  }
6701
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6702
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.0", type: ValueInputDateComponent, isStandalone: true, selector: "app-value-input-date", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6701
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputDateComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
6702
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.2.13", type: ValueInputDateComponent, isStandalone: true, selector: "app-value-input-date", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6703
6703
  {
6704
6704
  provide: NG_VALUE_ACCESSOR,
6705
6705
  useExisting: forwardRef(() => ValueInputDateComponent),
@@ -6712,7 +6712,7 @@ class ValueInputDateComponent {
6712
6712
  }
6713
6713
  ], ngImport: i0, template: "<app-date-time-form-field [formControl]=\"formControl\" [validators]=\"validators()\" [showErrorInTooltip]=\"showErrorInTooltip()\" class=\"w-full\"></app-date-time-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: DateTimeFormFieldComponent, selector: "app-date-time-form-field", inputs: ["dateLabel", "timeLabel", "validators", "showErrorInTooltip", "timezone"] }] });
6714
6714
  }
6715
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputDateComponent, decorators: [{
6715
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputDateComponent, decorators: [{
6716
6716
  type: Component,
6717
6717
  args: [{ selector: 'app-value-input-date', imports: [SharedModule, DateTimeFormFieldComponent], providers: [
6718
6718
  {
@@ -6735,10 +6735,10 @@ class ValueInputEnumComponent {
6735
6735
  };
6736
6736
  onValidatorChange;
6737
6737
  destroy$ = new Subject();
6738
- options = input([], ...(ngDevMode ? [{ debugName: "options" }] : []));
6739
- name = input('', ...(ngDevMode ? [{ debugName: "name" }] : []));
6740
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
6741
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
6738
+ options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
6739
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
6740
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
6741
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
6742
6742
  constructor(translate) {
6743
6743
  this.translate = translate;
6744
6744
  effect(() => {
@@ -6788,8 +6788,8 @@ class ValueInputEnumComponent {
6788
6788
  this.destroy$.next();
6789
6789
  this.destroy$.complete();
6790
6790
  }
6791
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputEnumComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6792
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputEnumComponent, isStandalone: true, selector: "app-value-input-enum", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6791
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputEnumComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6792
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputEnumComponent, isStandalone: true, selector: "app-value-input-enum", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6793
6793
  {
6794
6794
  provide: NG_VALUE_ACCESSOR,
6795
6795
  useExisting: forwardRef(() => ValueInputEnumComponent),
@@ -6802,7 +6802,7 @@ class ValueInputEnumComponent {
6802
6802
  }
6803
6803
  ], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-y-2\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-form-field appearance=\"outline\" class=\"w-full\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <mat-select [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\">\r\n @for (value of options(); track value) {\r\n <mat-option [value]=\"value\">{{ value }}</mat-option>\r\n }\r\n </mat-select>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i4$1.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6804
6804
  }
6805
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputEnumComponent, decorators: [{
6805
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputEnumComponent, decorators: [{
6806
6806
  type: Component,
6807
6807
  args: [{ selector: 'app-value-input-enum', imports: [SharedModule], providers: [
6808
6808
  {
@@ -6822,8 +6822,8 @@ class ValueInputHexadecimalComponent {
6822
6822
  translate;
6823
6823
  formControl = new FormControl('');
6824
6824
  destroy$ = new Subject();
6825
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
6826
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
6825
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
6826
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
6827
6827
  constructor(translate) {
6828
6828
  this.translate = translate;
6829
6829
  effect(() => {
@@ -6881,8 +6881,8 @@ class ValueInputHexadecimalComponent {
6881
6881
  this.destroy$.next();
6882
6882
  this.destroy$.complete();
6883
6883
  }
6884
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputHexadecimalComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6885
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputHexadecimalComponent, isStandalone: true, selector: "app-value-input-hexadecimal", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6884
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputHexadecimalComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6885
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputHexadecimalComponent, isStandalone: true, selector: "app-value-input-hexadecimal", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6886
6886
  {
6887
6887
  provide: NG_VALUE_ACCESSOR,
6888
6888
  useExisting: forwardRef(() => ValueInputHexadecimalComponent),
@@ -6895,7 +6895,7 @@ class ValueInputHexadecimalComponent {
6895
6895
  }
6896
6896
  ], ngImport: i0, template: "<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_VALUE' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6897
6897
  }
6898
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputHexadecimalComponent, decorators: [{
6898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputHexadecimalComponent, decorators: [{
6899
6899
  type: Component,
6900
6900
  args: [{ selector: 'app-value-input-hexadecimal', imports: [SharedModule], providers: [
6901
6901
  {
@@ -6915,8 +6915,8 @@ class ValueInputLinkComponent {
6915
6915
  translate;
6916
6916
  formControl = new FormControl('');
6917
6917
  destroy$ = new Subject();
6918
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
6919
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
6918
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
6919
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
6920
6920
  onTouched = () => {
6921
6921
  };
6922
6922
  onValidatorChange;
@@ -6975,8 +6975,8 @@ class ValueInputLinkComponent {
6975
6975
  this.destroy$.next();
6976
6976
  this.destroy$.complete();
6977
6977
  }
6978
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputLinkComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6979
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputLinkComponent, isStandalone: true, selector: "app-value-input-link", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6978
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputLinkComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
6979
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputLinkComponent, isStandalone: true, selector: "app-value-input-link", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
6980
6980
  {
6981
6981
  provide: NG_VALUE_ACCESSOR,
6982
6982
  useExisting: forwardRef(() => ValueInputLinkComponent),
@@ -6989,7 +6989,7 @@ class ValueInputLinkComponent {
6989
6989
  }
6990
6990
  ], ngImport: i0, template: "<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_VALUE' | translate }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
6991
6991
  }
6992
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputLinkComponent, decorators: [{
6992
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputLinkComponent, decorators: [{
6993
6993
  type: Component,
6994
6994
  args: [{ selector: 'app-value-input-link', imports: [SharedModule], providers: [
6995
6995
  {
@@ -7012,8 +7012,8 @@ class ValueInputLocationComponent {
7012
7012
  latitude: new FormControl(null),
7013
7013
  longitude: new FormControl(null)
7014
7014
  });
7015
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
7016
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
7015
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
7016
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
7017
7017
  onTouched = () => {
7018
7018
  };
7019
7019
  onValidatorChange;
@@ -7085,8 +7085,8 @@ class ValueInputLocationComponent {
7085
7085
  this.destroy$.next();
7086
7086
  this.destroy$.complete();
7087
7087
  }
7088
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputLocationComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7089
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputLocationComponent, isStandalone: true, selector: "app-value-input-location", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7088
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputLocationComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7089
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputLocationComponent, isStandalone: true, selector: "app-value-input-location", inputs: { validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7090
7090
  {
7091
7091
  provide: NG_VALUE_ACCESSOR,
7092
7092
  useExisting: forwardRef(() => ValueInputLocationComponent),
@@ -7099,7 +7099,7 @@ class ValueInputLocationComponent {
7099
7099
  }
7100
7100
  ], ngImport: i0, template: "<form [formGroup]=\"formGroup\">\r\n <div class=\"flex flex-col gap-y-1\">\r\n <div class=\"flex gap-4 w-full justify-between items-start\">\r\n <mat-form-field class=\"flex-1\" [matTooltip]=\"getErrorTooltip('latitude')\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_LATITUDE' | translate }}</mat-label>\r\n <input matInput (paste)=\"handleLocationPaste($event, 'latitude')\" (blur)=\"this.formGroup.get('latitude')?.updateValueAndValidity({ emitEvent: false })\" formControlName=\"latitude\" type=\"number\" autocomplete=\"off\">\r\n\r\n @for (error of getErrors('latitude'); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate: {max: 90, min: -90} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n\r\n <mat-form-field class=\"flex-1\" [matTooltip]=\"getErrorTooltip('longitude')\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ 'DATA_BROWSER.ATTRIBUTE_LONGITUDE' | translate }}</mat-label>\r\n <input matInput (paste)=\"handleLocationPaste($event, 'longitude')\" (blur)=\"this.formGroup.get('longitude')?.updateValueAndValidity({ emitEvent: false })\" formControlName=\"longitude\" type=\"number\" autocomplete=\"off\">\r\n\r\n @for (error of getErrors('longitude'); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate: {max: 180, min: -180} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n</form>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],[formArray],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
7101
7101
  }
7102
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputLocationComponent, decorators: [{
7102
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputLocationComponent, decorators: [{
7103
7103
  type: Component,
7104
7104
  args: [{ selector: 'app-value-input-location', imports: [SharedModule], providers: [
7105
7105
  {
@@ -7119,9 +7119,9 @@ class ValueInputNumericComponent {
7119
7119
  translate;
7120
7120
  formControl = new FormControl(null);
7121
7121
  destroy$ = new Subject();
7122
- name = input('', ...(ngDevMode ? [{ debugName: "name" }] : []));
7123
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
7124
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
7122
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
7123
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
7124
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
7125
7125
  onTouched = () => {
7126
7126
  };
7127
7127
  onValidatorChange;
@@ -7182,8 +7182,8 @@ class ValueInputNumericComponent {
7182
7182
  this.destroy$.next();
7183
7183
  this.destroy$.complete();
7184
7184
  }
7185
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputNumericComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7186
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputNumericComponent, isStandalone: true, selector: "app-value-input-numeric", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7185
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputNumericComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7186
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputNumericComponent, isStandalone: true, selector: "app-value-input-numeric", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7187
7187
  {
7188
7188
  provide: NG_VALUE_ACCESSOR,
7189
7189
  useExisting: forwardRef(() => ValueInputNumericComponent),
@@ -7196,7 +7196,7 @@ class ValueInputNumericComponent {
7196
7196
  }
7197
7197
  ], ngImport: i0, template: "<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput type=\"text\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" autocomplete=\"off\" wolkaboutLocalizedNumericInput/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: LocalizedNumericInputDirective, selector: "input[wolkaboutLocalizedNumericInput]" }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
7198
7198
  }
7199
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputNumericComponent, decorators: [{
7199
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputNumericComponent, decorators: [{
7200
7200
  type: Component,
7201
7201
  args: [{ selector: 'app-value-input-numeric', imports: [SharedModule, LocalizedNumericInputDirective], providers: [
7202
7202
  {
@@ -7214,11 +7214,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
7214
7214
 
7215
7215
  class ValueInputStringComponent {
7216
7216
  translate;
7217
- name = input('', ...(ngDevMode ? [{ debugName: "name" }] : []));
7217
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
7218
7218
  formControl = new FormControl('');
7219
7219
  destroy$ = new Subject();
7220
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
7221
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
7220
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
7221
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
7222
7222
  onTouched = () => {
7223
7223
  };
7224
7224
  onValidatorChange;
@@ -7271,8 +7271,8 @@ class ValueInputStringComponent {
7271
7271
  this.destroy$.next();
7272
7272
  this.destroy$.complete();
7273
7273
  }
7274
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputStringComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7275
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputStringComponent, isStandalone: true, selector: "app-value-input-string", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7274
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputStringComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7275
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputStringComponent, isStandalone: true, selector: "app-value-input-string", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7276
7276
  {
7277
7277
  provide: NG_VALUE_ACCESSOR,
7278
7278
  useExisting: forwardRef(() => ValueInputStringComponent),
@@ -7285,7 +7285,7 @@ class ValueInputStringComponent {
7285
7285
  }
7286
7286
  ], ngImport: i0, template: "<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput [type]=\"'text'\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" autocomplete=\"off\"/>\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate : {max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
7287
7287
  }
7288
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputStringComponent, decorators: [{
7288
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputStringComponent, decorators: [{
7289
7289
  type: Component,
7290
7290
  args: [{ selector: 'app-value-input-string', imports: [SharedModule], providers: [
7291
7291
  {
@@ -7305,10 +7305,10 @@ class ValueInputVectorComponent {
7305
7305
  translate;
7306
7306
  formControl = new FormControl('');
7307
7307
  destroy$ = new Subject();
7308
- options = input([], ...(ngDevMode ? [{ debugName: "options" }] : []));
7309
- name = input('', ...(ngDevMode ? [{ debugName: "name" }] : []));
7310
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
7311
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
7308
+ options = input([], ...(ngDevMode ? [{ debugName: "options" }] : /* istanbul ignore next */ []));
7309
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
7310
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
7311
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
7312
7312
  onTouched = () => {
7313
7313
  };
7314
7314
  onValidatorChange;
@@ -7380,8 +7380,8 @@ class ValueInputVectorComponent {
7380
7380
  this.destroy$.next();
7381
7381
  this.destroy$.complete();
7382
7382
  }
7383
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputVectorComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7384
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputVectorComponent, isStandalone: true, selector: "app-value-input-vector", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7383
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputVectorComponent, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7384
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputVectorComponent, isStandalone: true, selector: "app-value-input-vector", inputs: { options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7385
7385
  {
7386
7386
  provide: NG_VALUE_ACCESSOR,
7387
7387
  useExisting: forwardRef(() => ValueInputVectorComponent),
@@ -7394,7 +7394,7 @@ class ValueInputVectorComponent {
7394
7394
  }
7395
7395
  ], ngImport: i0, template: "<div class=\"w-full flex flex-col gap-y-2\">\r\n <mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }} ({{ options()?.join(',') }})</mat-label>\r\n <input matInput [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" class=\"w-full\">\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n </mat-form-field>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
7396
7396
  }
7397
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputVectorComponent, decorators: [{
7397
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputVectorComponent, decorators: [{
7398
7398
  type: Component,
7399
7399
  args: [{ selector: 'app-value-input-vector', imports: [SharedModule], providers: [
7400
7400
  {
@@ -7413,10 +7413,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
7413
7413
  class ValueInputDurationComponent {
7414
7414
  destroyRef;
7415
7415
  translate;
7416
- name = input('', ...(ngDevMode ? [{ debugName: "name" }] : []));
7416
+ name = input('', ...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
7417
7417
  formControl = new FormControl('');
7418
- validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : []));
7419
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
7418
+ validators = input(...(ngDevMode ? [undefined, { debugName: "validators" }] : /* istanbul ignore next */ []));
7419
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
7420
7420
  durationValidator = (control) => {
7421
7421
  const value = control.value;
7422
7422
  if (value == null || value.trim() === '') {
@@ -7496,8 +7496,8 @@ class ValueInputDurationComponent {
7496
7496
  })
7497
7497
  .reduce((a, b) => a + b, 0);
7498
7498
  }
7499
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputDurationComponent, deps: [{ token: i0.DestroyRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7500
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputDurationComponent, isStandalone: true, selector: "app-value-input-duration", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7499
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputDurationComponent, deps: [{ token: i0.DestroyRef }, { token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Component });
7500
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputDurationComponent, isStandalone: true, selector: "app-value-input-duration", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: false, transformFunction: null }, validators: { classPropertyName: "validators", publicName: "validators", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7501
7501
  {
7502
7502
  provide: NG_VALUE_ACCESSOR,
7503
7503
  useExisting: forwardRef(() => ValueInputDurationComponent),
@@ -7510,7 +7510,7 @@ class ValueInputDurationComponent {
7510
7510
  }
7511
7511
  ], ngImport: i0, template: "<mat-form-field class=\"w-full\" [matTooltip]=\"getErrorTooltip()\" [matTooltipDisabled]=\"!showErrorInTooltip()\">\r\n <mat-label>{{ name() }}</mat-label>\r\n <input matInput [type]=\"'text'\" [formControl]=\"formControl\" (blur)=\"formControl.updateValueAndValidity({ emitEvent: false })\" autocomplete=\"off\"/>\r\n\r\n @for (error of getErrors(); track error) {\r\n <mat-error *ngIf=\"!showErrorInTooltip()\">{{ 'COMMON.ERROR_VALIDATION_' + error | translate :{max: formControl.getError('maxlength')?.requiredLength} }}</mat-error>\r\n }\r\n</mat-form-field>\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i4$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
7512
7512
  }
7513
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputDurationComponent, decorators: [{
7513
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputDurationComponent, decorators: [{
7514
7514
  type: Component,
7515
7515
  args: [{ selector: 'app-value-input-duration', imports: [SharedModule], providers: [
7516
7516
  {
@@ -7527,12 +7527,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
7527
7527
  }], ctorParameters: () => [{ type: i0.DestroyRef }, { type: i1$1.TranslateService }], propDecorators: { name: [{ type: i0.Input, args: [{ isSignal: true, alias: "name", required: false }] }], validators: [{ type: i0.Input, args: [{ isSignal: true, alias: "validators", required: false }] }], showErrorInTooltip: [{ type: i0.Input, args: [{ isSignal: true, alias: "showErrorInTooltip", required: false }] }] } });
7528
7528
 
7529
7529
  class ValueInputComponent {
7530
- name = input.required(...(ngDevMode ? [{ debugName: "name" }] : []));
7531
- dataType = input.required(...(ngDevMode ? [{ debugName: "dataType" }] : []));
7532
- options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : []));
7533
- validationConditions = input(...(ngDevMode ? [undefined, { debugName: "validationConditions" }] : []));
7534
- showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : []));
7535
- validators = signal([], ...(ngDevMode ? [{ debugName: "validators" }] : []));
7530
+ name = input.required(...(ngDevMode ? [{ debugName: "name" }] : /* istanbul ignore next */ []));
7531
+ dataType = input.required(...(ngDevMode ? [{ debugName: "dataType" }] : /* istanbul ignore next */ []));
7532
+ options = input(...(ngDevMode ? [undefined, { debugName: "options" }] : /* istanbul ignore next */ []));
7533
+ validationConditions = input(...(ngDevMode ? [undefined, { debugName: "validationConditions" }] : /* istanbul ignore next */ []));
7534
+ showErrorInTooltip = input(false, ...(ngDevMode ? [{ debugName: "showErrorInTooltip" }] : /* istanbul ignore next */ []));
7535
+ validators = signal([], ...(ngDevMode ? [{ debugName: "validators" }] : /* istanbul ignore next */ []));
7536
7536
  formControl = new FormControl(null);
7537
7537
  onValidatorChange;
7538
7538
  constructor() {
@@ -7592,8 +7592,8 @@ class ValueInputComponent {
7592
7592
  this.validators.set(validators);
7593
7593
  }
7594
7594
  DataType = DataType;
7595
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7596
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: ValueInputComponent, isStandalone: true, selector: "app-value-input", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, validationConditions: { classPropertyName: "validationConditions", publicName: "validationConditions", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7595
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7596
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: ValueInputComponent, isStandalone: true, selector: "app-value-input", inputs: { name: { classPropertyName: "name", publicName: "name", isSignal: true, isRequired: true, transformFunction: null }, dataType: { classPropertyName: "dataType", publicName: "dataType", isSignal: true, isRequired: true, transformFunction: null }, options: { classPropertyName: "options", publicName: "options", isSignal: true, isRequired: false, transformFunction: null }, validationConditions: { classPropertyName: "validationConditions", publicName: "validationConditions", isSignal: true, isRequired: false, transformFunction: null }, showErrorInTooltip: { classPropertyName: "showErrorInTooltip", publicName: "showErrorInTooltip", isSignal: true, isRequired: false, transformFunction: null } }, providers: [
7597
7597
  {
7598
7598
  provide: NG_VALUE_ACCESSOR,
7599
7599
  useExisting: forwardRef(() => ValueInputComponent),
@@ -7606,7 +7606,7 @@ class ValueInputComponent {
7606
7606
  }
7607
7607
  ], ngImport: i0, template: "@switch (dataType()) {\r\n @case (DataType.STRING) {\r\n <app-value-input-string [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.NUMERIC) {\r\n <app-value-input-numeric [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.BOOLEAN) {\r\n <app-value-input-boolean [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.HEXADECIMAL) {\r\n <app-value-input-hexadecimal [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.COLOR) {\r\n <app-value-input-color [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.LINK) {\r\n <app-value-input-link [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.DATE) {\r\n <app-value-input-date [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.DURATION) {\r\n <app-value-input-duration [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.LOCATION) {\r\n <app-value-input-location [showErrorInTooltip]=\"showErrorInTooltip()\" [validators]=\"validators()\" [formControl]=\"formControl\"/>\r\n }\r\n @case (DataType.VECTOR) {\r\n <app-value-input-vector [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\" [options]=\"options()\"/>\r\n }\r\n @case (DataType.ENUM) {\r\n <app-value-input-enum [showErrorInTooltip]=\"showErrorInTooltip()\" [name]=\"name()\" [validators]=\"validators()\" [formControl]=\"formControl\" [options]=\"options()\"/>\r\n }\r\n}\r\n", styles: [""], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "directive", type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i5.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: ValueInputBooleanComponent, selector: "app-value-input-boolean", inputs: ["name", "validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputColorComponent, selector: "app-value-input-color", inputs: ["name", "validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputDateComponent, selector: "app-value-input-date", inputs: ["validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputEnumComponent, selector: "app-value-input-enum", inputs: ["options", "name", "validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputHexadecimalComponent, selector: "app-value-input-hexadecimal", inputs: ["validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputLinkComponent, selector: "app-value-input-link", inputs: ["validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputLocationComponent, selector: "app-value-input-location", inputs: ["validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputNumericComponent, selector: "app-value-input-numeric", inputs: ["name", "validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputStringComponent, selector: "app-value-input-string", inputs: ["name", "validators", "showErrorInTooltip"] }, { kind: "component", type: ValueInputVectorComponent, selector: "app-value-input-vector", inputs: ["options", "name", "showErrorInTooltip", "validators"] }, { kind: "component", type: ValueInputDurationComponent, selector: "app-value-input-duration", inputs: ["name", "validators", "showErrorInTooltip"] }] });
7608
7608
  }
7609
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: ValueInputComponent, decorators: [{
7609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: ValueInputComponent, decorators: [{
7610
7610
  type: Component,
7611
7611
  args: [{ selector: 'app-value-input', imports: [SharedModule, ValueInputBooleanComponent, ValueInputColorComponent, ValueInputDateComponent, ValueInputEnumComponent, ValueInputHexadecimalComponent, ValueInputLinkComponent, ValueInputLocationComponent, ValueInputNumericComponent, ValueInputStringComponent, ValueInputVectorComponent, ValueInputDurationComponent], providers: [
7612
7612
  {
@@ -7645,17 +7645,17 @@ class DoubleDrawerLayoutComponent {
7645
7645
  }
7646
7646
  }
7647
7647
  timeout;
7648
- hoverActive = signal(false, ...(ngDevMode ? [{ debugName: "hoverActive" }] : []));
7649
- leftDrawerConfig = input.required(...(ngDevMode ? [{ debugName: "leftDrawerConfig" }] : []));
7650
- rightDrawerConfig = input(...(ngDevMode ? [undefined, { debugName: "rightDrawerConfig" }] : []));
7651
- backdropConfig = input.required(...(ngDevMode ? [{ debugName: "backdropConfig" }] : []));
7652
- dialogConfig = input(...(ngDevMode ? [undefined, { debugName: "dialogConfig" }] : []));
7653
- fullScreenConfig = input(...(ngDevMode ? [undefined, { debugName: "fullScreenConfig" }] : []));
7648
+ hoverActive = signal(false, ...(ngDevMode ? [{ debugName: "hoverActive" }] : /* istanbul ignore next */ []));
7649
+ leftDrawerConfig = input.required(...(ngDevMode ? [{ debugName: "leftDrawerConfig" }] : /* istanbul ignore next */ []));
7650
+ rightDrawerConfig = input(...(ngDevMode ? [undefined, { debugName: "rightDrawerConfig" }] : /* istanbul ignore next */ []));
7651
+ backdropConfig = input.required(...(ngDevMode ? [{ debugName: "backdropConfig" }] : /* istanbul ignore next */ []));
7652
+ dialogConfig = input(...(ngDevMode ? [undefined, { debugName: "dialogConfig" }] : /* istanbul ignore next */ []));
7653
+ fullScreenConfig = input(...(ngDevMode ? [undefined, { debugName: "fullScreenConfig" }] : /* istanbul ignore next */ []));
7654
7654
  leftDrawerToggled = output();
7655
7655
  rightDrawerToggled = output();
7656
- isLeftDrawerOpen = signal(false, ...(ngDevMode ? [{ debugName: "isLeftDrawerOpen" }] : []));
7657
- isRightDrawerOpen = signal(false, ...(ngDevMode ? [{ debugName: "isRightDrawerOpen" }] : []));
7658
- showFullscreenButton = signal(false, ...(ngDevMode ? [{ debugName: "showFullscreenButton" }] : []));
7656
+ isLeftDrawerOpen = signal(false, ...(ngDevMode ? [{ debugName: "isLeftDrawerOpen" }] : /* istanbul ignore next */ []));
7657
+ isRightDrawerOpen = signal(false, ...(ngDevMode ? [{ debugName: "isRightDrawerOpen" }] : /* istanbul ignore next */ []));
7658
+ showFullscreenButton = signal(false, ...(ngDevMode ? [{ debugName: "showFullscreenButton" }] : /* istanbul ignore next */ []));
7659
7659
  fullScreenEnabled = toSignal(this.fullscreenService.fullScreenEnabled$);
7660
7660
  constructor() {
7661
7661
  effect(() => {
@@ -7711,10 +7711,10 @@ class DoubleDrawerLayoutComponent {
7711
7711
  onClose();
7712
7712
  }
7713
7713
  }
7714
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DoubleDrawerLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7715
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: DoubleDrawerLayoutComponent, isStandalone: true, selector: "app-double-drawer-layout", inputs: { leftDrawerConfig: { classPropertyName: "leftDrawerConfig", publicName: "leftDrawerConfig", isSignal: true, isRequired: true, transformFunction: null }, rightDrawerConfig: { classPropertyName: "rightDrawerConfig", publicName: "rightDrawerConfig", isSignal: true, isRequired: false, transformFunction: null }, backdropConfig: { classPropertyName: "backdropConfig", publicName: "backdropConfig", isSignal: true, isRequired: true, transformFunction: null }, dialogConfig: { classPropertyName: "dialogConfig", publicName: "dialogConfig", isSignal: true, isRequired: false, transformFunction: null }, fullScreenConfig: { classPropertyName: "fullScreenConfig", publicName: "fullScreenConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { leftDrawerToggled: "leftDrawerToggled", rightDrawerToggled: "rightDrawerToggled" }, host: { listeners: { "window:mousemove": "onMouseMove()", "window:keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<div class=\"w-full h-full relative\">\r\n <div class=\"absolute h-full drawer\" [ngClass]=\"{open : isLeftDrawerOpen()}\" [ngStyle]=\"{'width': isLeftDrawerOpen() ? leftDrawerConfig().width : '0px'}\">\r\n <button mat-flat-button class=\"drawer-toggle\"\r\n (click)=\"isLeftDrawerOpen.set(!isLeftDrawerOpen())\"\r\n [ngClass]=\"{\r\n 'destructive-flat-button': isLeftDrawerOpen(),\r\n 'drawer-toggle-name': leftDrawerConfig().title && !isLeftDrawerOpen()\r\n }\"\r\n [matTooltip]=\"isLeftDrawerOpen() ?\r\n ('COMMON.COLLAPSE_NAVIGATION' | translate) :\r\n leftDrawerConfig().title ?\r\n leftDrawerConfig().title :\r\n ('COMMON.EXPAND_NAVIGATION' | translate)\"\r\n matTooltipPosition=\"right\">\r\n @if (leftDrawerConfig().title && !isLeftDrawerOpen()) {\r\n <span>{{ leftDrawerConfig().title }}</span>\r\n } @else {\r\n <span class=\"block\"><mat-icon [ngClass]=\"{'toggle-icon-small': !isLeftDrawerOpen()}\" [svgIcon]=\"isLeftDrawerOpen() ? 'close' : 'arrow_right'\"></mat-icon></span>\r\n }\r\n </button>\r\n <div class=\"h-full w-full\" [ngClass]=\"{'overflow-hidden': !isLeftDrawerOpen()}\">\r\n <ng-content select=\"[left-drawer]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"h-full w-full content-wrapper\" [ngClass]=\"{'open': (isLeftDrawerOpen() || isRightDrawerOpen()) && backdropConfig().show}\">\r\n <div class=\"message-wrapper\" [ngClass]=\"{'show': backdropConfig().showMessage}\">\r\n <span>{{ backdropConfig().message | translate }}</span>\r\n </div>\r\n <div class=\"content-backdrop\" [ngClass]=\"{'transparent': backdropConfig().showTransparentBackdrop}\" (click)=\"backdropClick()\">\r\n </div>\r\n <div class=\"flex flex-col flex-auto gap-4 h-full w-full overflow-hidden relative\">\r\n @if (showFullscreenButton()) {\r\n <button mat-icon-button type=\"button\" class=\"absolute top-2 right-3 !z-10\" [ngClass]=\"!isLeftDrawerOpen() && !isRightDrawerOpen() ? '!block' : '!hidden' \" (mouseover)=\"mouseOver()\" (mouseout)=\"hoverActive.set(false)\"\r\n [matTooltip]=\"fullScreenEnabled() ? ('COMMON.EXIT_FULLSCREEN' | translate) : ('COMMON.ENTER_FULLSCREEN' | translate)\" (click)=\"fullscreenService.toggleFullScreen(); hoverActive.set(false)\" matTooltipPosition=\"left\">\r\n @if (fullScreenEnabled()) {\r\n <mat-icon>fullscreen_exit</mat-icon>\r\n } @else {\r\n <mat-icon>fullscreen</mat-icon>\r\n }\r\n </button>\r\n }\r\n <ng-content select=\"[details]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"absolute h-full drawer right\" [ngClass]=\"{open : isRightDrawerOpen()}\" [ngStyle]=\"{'width': isRightDrawerOpen() ? rightDrawerConfig()?.width : '0px'}\">\r\n <button mat-flat-button class=\"drawer-toggle\"\r\n (click)=\"toggleRightDrawer()\"\r\n [ngClass]=\"{'destructive-flat-button': isRightDrawerOpen()}\"\r\n [matTooltip]=\"isRightDrawerOpen() ? ('COMMON.COLLAPSE_NAVIGATION' | translate) : ('COMMON.EXPAND_NAVIGATION' | translate)\"\r\n matTooltipPosition=\"right\">\r\n <span class=\"block\"><mat-icon [svgIcon]=\"isRightDrawerOpen() ? 'close' : 'arrow_left'\"></mat-icon></span>\r\n </button>\r\n <div class=\"h-full w-full\" [ngClass]=\"{'overflow-hidden': !isRightDrawerOpen()}\">\r\n <ng-content select=\"[right-drawer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box}.drawer{z-index:10;width:0;max-width:calc(100% - 40px);transition:all .3s cubic-bezier(.4,0,.2,1) 0s;position:relative;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.drawer:after{content:\"\";display:block;width:100%;height:100%;opacity:.6;position:absolute;inset:0;background-color:var(--mat-sys-surface-container);z-index:-1}.drawer .drawer-toggle{position:absolute;bottom:16px;right:0;word-break:keep-all;white-space:nowrap;min-width:fit-content!important;width:fit-content!important;transform:translate(100%);border-radius:0 5px 5px 0!important;padding:0 10px}.drawer .drawer-toggle.drawer-toggle-name{max-width:300px!important;min-width:unset!important;overflow:hidden}.drawer .drawer-toggle.drawer-toggle-name span{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis}.drawer .drawer-toggle .toggle-icon-small{margin:0 6px;height:10px;width:10px}.drawer.right{right:0;top:0}.drawer.right .drawer-toggle{display:none;position:absolute;bottom:16px;left:0;transform:translate(-100%);border-radius:5px 0 0 5px!important}.drawer.right .drawer-toggle span{line-height:12px}.drawer.right .drawer-toggle span mat-icon{height:24px;width:24px}.drawer.open{border-right:1px solid var(--mat-sys-outline-variant)}.drawer.open.right .drawer-toggle{display:block}.drawer.open.right{border-right:unset;border-left:1px solid var(--mat-sys-outline-variant)}.drawer.open .drawer-toggle span{line-height:12px}.drawer.open .drawer-toggle span mat-icon{height:24px;width:24px}:host-context(.alt-theme) .drawer.after{background-color:var(--mat-sys-surface-container-lowest)}.content-wrapper{position:relative}.content-wrapper .content-backdrop{transition:all .3s cubic-bezier(.4,0,.2,1) 0s;width:100%;height:100%;position:absolute;top:0;left:0;opacity:0;z-index:-1;background-color:transparent}.content-wrapper .message-wrapper{transition:all .5s cubic-bezier(.4,0,.2,1) 0s;position:absolute;right:32px;top:24px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:10px;padding:0 1rem;height:2.5rem;box-sizing:border-box;background-color:var(--mat-sys-primary);color:var(--mat-sys-surface-container);opacity:0;z-index:-1}.content-wrapper .message-wrapper.show{opacity:1;z-index:4}.content-wrapper.open .content-backdrop{background-color:#000;opacity:.5;z-index:3}.content-wrapper.open .content-backdrop.transparent{background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
7714
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DoubleDrawerLayoutComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
7715
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: DoubleDrawerLayoutComponent, isStandalone: true, selector: "app-double-drawer-layout", inputs: { leftDrawerConfig: { classPropertyName: "leftDrawerConfig", publicName: "leftDrawerConfig", isSignal: true, isRequired: true, transformFunction: null }, rightDrawerConfig: { classPropertyName: "rightDrawerConfig", publicName: "rightDrawerConfig", isSignal: true, isRequired: false, transformFunction: null }, backdropConfig: { classPropertyName: "backdropConfig", publicName: "backdropConfig", isSignal: true, isRequired: true, transformFunction: null }, dialogConfig: { classPropertyName: "dialogConfig", publicName: "dialogConfig", isSignal: true, isRequired: false, transformFunction: null }, fullScreenConfig: { classPropertyName: "fullScreenConfig", publicName: "fullScreenConfig", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { leftDrawerToggled: "leftDrawerToggled", rightDrawerToggled: "rightDrawerToggled" }, host: { listeners: { "window:mousemove": "onMouseMove()", "window:keydown": "onKeyDown($event)" } }, ngImport: i0, template: "<div class=\"w-full h-full relative\">\r\n <div class=\"absolute h-full drawer\" [ngClass]=\"{open : isLeftDrawerOpen()}\" [ngStyle]=\"{'width': isLeftDrawerOpen() ? leftDrawerConfig().width : '0px'}\">\r\n <button mat-flat-button class=\"drawer-toggle\"\r\n (click)=\"isLeftDrawerOpen.set(!isLeftDrawerOpen())\"\r\n [ngClass]=\"{\r\n 'destructive-flat-button': isLeftDrawerOpen(),\r\n 'drawer-toggle-name': leftDrawerConfig().title && !isLeftDrawerOpen()\r\n }\"\r\n [matTooltip]=\"isLeftDrawerOpen() ?\r\n ('COMMON.COLLAPSE_NAVIGATION' | translate) :\r\n leftDrawerConfig().title ?\r\n leftDrawerConfig().title :\r\n ('COMMON.EXPAND_NAVIGATION' | translate)\"\r\n matTooltipPosition=\"right\">\r\n @if (leftDrawerConfig().title && !isLeftDrawerOpen()) {\r\n <span>{{ leftDrawerConfig().title }}</span>\r\n } @else {\r\n <span class=\"block\"><mat-icon [ngClass]=\"{'toggle-icon-small': !isLeftDrawerOpen()}\" [svgIcon]=\"isLeftDrawerOpen() ? 'close' : 'arrow_right'\"></mat-icon></span>\r\n }\r\n </button>\r\n <div class=\"h-full w-full\" [ngClass]=\"{'overflow-hidden': !isLeftDrawerOpen()}\">\r\n <ng-content select=\"[left-drawer]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"h-full w-full content-wrapper\" [ngClass]=\"{'open': (isLeftDrawerOpen() || isRightDrawerOpen()) && backdropConfig().show}\">\r\n <div class=\"message-wrapper\" [ngClass]=\"{'show': backdropConfig().showMessage}\">\r\n <span>{{ backdropConfig().message | translate }}</span>\r\n </div>\r\n <div class=\"content-backdrop\" [ngClass]=\"{'transparent': backdropConfig().showTransparentBackdrop}\" (click)=\"backdropClick()\">\r\n </div>\r\n <div class=\"flex flex-col flex-auto gap-4 h-full w-full overflow-hidden relative\">\r\n @if (showFullscreenButton()) {\r\n <button mat-icon-button type=\"button\" class=\"absolute top-2 right-3 !z-10\" [ngClass]=\"!isLeftDrawerOpen() && !isRightDrawerOpen() ? '!block' : '!hidden' \" (mouseover)=\"mouseOver()\" (mouseout)=\"hoverActive.set(false)\"\r\n [matTooltip]=\"fullScreenEnabled() ? ('COMMON.EXIT_FULLSCREEN' | translate) : ('COMMON.ENTER_FULLSCREEN' | translate)\" (click)=\"fullscreenService.toggleFullScreen(); hoverActive.set(false)\" matTooltipPosition=\"left\">\r\n @if (fullScreenEnabled()) {\r\n <mat-icon>fullscreen_exit</mat-icon>\r\n } @else {\r\n <mat-icon>fullscreen</mat-icon>\r\n }\r\n </button>\r\n }\r\n <ng-content select=\"[details]\"></ng-content>\r\n </div>\r\n </div>\r\n <div class=\"absolute h-full drawer right\" [ngClass]=\"{open : isRightDrawerOpen()}\" [ngStyle]=\"{'width': isRightDrawerOpen() ? rightDrawerConfig()?.width : '0px'}\">\r\n <button mat-flat-button class=\"drawer-toggle\"\r\n (click)=\"toggleRightDrawer()\"\r\n [ngClass]=\"{'destructive-flat-button': isRightDrawerOpen()}\"\r\n [matTooltip]=\"isRightDrawerOpen() ? ('COMMON.COLLAPSE_NAVIGATION' | translate) : ('COMMON.EXPAND_NAVIGATION' | translate)\"\r\n matTooltipPosition=\"right\">\r\n <span class=\"block\"><mat-icon [svgIcon]=\"isRightDrawerOpen() ? 'close' : 'arrow_left'\"></mat-icon></span>\r\n </button>\r\n <div class=\"h-full w-full\" [ngClass]=\"{'overflow-hidden': !isRightDrawerOpen()}\">\r\n <ng-content select=\"[right-drawer]\"></ng-content>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [":host{display:flex;height:100%;width:100%;max-height:100%;max-width:100%;box-sizing:border-box}.drawer{z-index:10;width:0;max-width:calc(100% - 40px);transition:all .3s cubic-bezier(.4,0,.2,1) 0s;position:relative;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px)}.drawer:after{content:\"\";display:block;width:100%;height:100%;opacity:.6;position:absolute;inset:0;background-color:var(--mat-sys-surface-container);z-index:-1}.drawer .drawer-toggle{position:absolute;bottom:16px;right:0;word-break:keep-all;white-space:nowrap;min-width:fit-content!important;width:fit-content!important;transform:translate(100%);border-radius:0 5px 5px 0!important;padding:0 10px}.drawer .drawer-toggle.drawer-toggle-name{max-width:300px!important;min-width:unset!important;overflow:hidden}.drawer .drawer-toggle.drawer-toggle-name span{display:block;max-width:280px;overflow:hidden;text-overflow:ellipsis}.drawer .drawer-toggle .toggle-icon-small{margin:0 6px;height:10px;width:10px}.drawer.right{right:0;top:0}.drawer.right .drawer-toggle{display:none;position:absolute;bottom:16px;left:0;transform:translate(-100%);border-radius:5px 0 0 5px!important}.drawer.right .drawer-toggle span{line-height:12px}.drawer.right .drawer-toggle span mat-icon{height:24px;width:24px}.drawer.open{border-right:1px solid var(--mat-sys-outline-variant)}.drawer.open.right .drawer-toggle{display:block}.drawer.open.right{border-right:unset;border-left:1px solid var(--mat-sys-outline-variant)}.drawer.open .drawer-toggle span{line-height:12px}.drawer.open .drawer-toggle span mat-icon{height:24px;width:24px}:host-context(.alt-theme) .drawer.after{background-color:var(--mat-sys-surface-container-lowest)}.content-wrapper{position:relative}.content-wrapper .content-backdrop{transition:all .3s cubic-bezier(.4,0,.2,1) 0s;width:100%;height:100%;position:absolute;top:0;left:0;opacity:0;z-index:-1;background-color:transparent}.content-wrapper .message-wrapper{transition:all .5s cubic-bezier(.4,0,.2,1) 0s;position:absolute;right:32px;top:24px;display:flex;flex-direction:column;justify-content:center;align-items:center;border-radius:10px;padding:0 1rem;height:2.5rem;box-sizing:border-box;background-color:var(--mat-sys-primary);color:var(--mat-sys-surface-container);opacity:0;z-index:-1}.content-wrapper .message-wrapper.show{opacity:1;z-index:4}.content-wrapper.open .content-backdrop{background-color:#000;opacity:.5;z-index:3}.content-wrapper.open .content-backdrop.transparent{background-color:transparent}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i1$4.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i6.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }] });
7716
7716
  }
7717
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: DoubleDrawerLayoutComponent, decorators: [{
7717
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: DoubleDrawerLayoutComponent, decorators: [{
7718
7718
  type: Component,
7719
7719
  args: [{ selector: 'app-double-drawer-layout', imports: [
7720
7720
  SharedModule
@@ -7727,11 +7727,44 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImpor
7727
7727
  args: ['window:keydown', ['$event']]
7728
7728
  }], leftDrawerConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "leftDrawerConfig", required: true }] }], rightDrawerConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "rightDrawerConfig", required: false }] }], backdropConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "backdropConfig", required: true }] }], dialogConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "dialogConfig", required: false }] }], fullScreenConfig: [{ type: i0.Input, args: [{ isSignal: true, alias: "fullScreenConfig", required: false }] }], leftDrawerToggled: [{ type: i0.Output, args: ["leftDrawerToggled"] }], rightDrawerToggled: [{ type: i0.Output, args: ["rightDrawerToggled"] }] } });
7729
7729
 
7730
+ class BulkConfirmationDialogComponent {
7731
+ data;
7732
+ dialog;
7733
+ isDeleteMode = signal(true, ...(ngDevMode ? [{ debugName: "isDeleteMode" }] : /* istanbul ignore next */ []));
7734
+ action = signal('COMMON.DELETE_SELECTED', ...(ngDevMode ? [{ debugName: "action" }] : /* istanbul ignore next */ []));
7735
+ title = signal('COMMON.DELETE_SELECTED_TITLE', ...(ngDevMode ? [{ debugName: "title" }] : /* istanbul ignore next */ []));
7736
+ constructor(data, dialog) {
7737
+ this.data = data;
7738
+ this.dialog = dialog;
7739
+ if (data.isDeleteMode !== undefined) {
7740
+ this.isDeleteMode.set(data.isDeleteMode);
7741
+ }
7742
+ if (data.title) {
7743
+ this.title.set(data.title);
7744
+ }
7745
+ if (data.action) {
7746
+ this.action.set(data.action);
7747
+ }
7748
+ }
7749
+ confirm() {
7750
+ this.dialog.close(true);
7751
+ }
7752
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: BulkConfirmationDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i1$5.MatDialogRef }], target: i0.ɵɵFactoryTarget.Component });
7753
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.13", type: BulkConfirmationDialogComponent, isStandalone: true, selector: "app-delete-confirmation-dialog", ngImport: i0, template: "<div class=\"flex flex-col flex-auto gap-y-8 p-4 content\">\r\n <div class=\"text-lg\">{{ title() | translate: {entity: data.entity} }}</div>\r\n <div class=\"flex flex-col flex-auto gap-y-4\">\r\n <div class=\"flex flex-col flex-auto gap-y-4 max-h-96 overflow-hidden\">\r\n <div class=\"flex flex-col flex-auto gap-y-2\">\r\n <div>{{ 'COMMON.SELECTED_ITEMS' | translate: {entity: data.entity} }}</div>\r\n <mat-divider></mat-divider>\r\n </div>\r\n <div class=\"flex flex-col flex-auto gap-y-2 overflow-auto\">\r\n @for (item of data.items; track $index) {\r\n <div>{{ item }}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row flex-auto gap-x-2 justify-end\">\r\n <button mat-button mat-dialog-close>{{ 'COMMON.CANCEL' | translate }}</button>\r\n <button [ngClass]=\" isDeleteMode() ? 'destructive-flat-button' : ''\" mat-flat-button\r\n (click)=\"confirm()\">{{ this.action() | translate: {count: data.items.length, entity: data.entity} }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".content{width:var(--medium-dialog-width)}\n"], dependencies: [{ kind: "ngmodule", type: SharedModule }, { kind: "component", type: i1$4.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "component", type: i1$7.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }, { kind: "directive", type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "pipe", type: i1$1.TranslatePipe, name: "translate" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
7754
+ }
7755
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.13", ngImport: i0, type: BulkConfirmationDialogComponent, decorators: [{
7756
+ type: Component,
7757
+ args: [{ selector: 'app-delete-confirmation-dialog', imports: [SharedModule], changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"flex flex-col flex-auto gap-y-8 p-4 content\">\r\n <div class=\"text-lg\">{{ title() | translate: {entity: data.entity} }}</div>\r\n <div class=\"flex flex-col flex-auto gap-y-4\">\r\n <div class=\"flex flex-col flex-auto gap-y-4 max-h-96 overflow-hidden\">\r\n <div class=\"flex flex-col flex-auto gap-y-2\">\r\n <div>{{ 'COMMON.SELECTED_ITEMS' | translate: {entity: data.entity} }}</div>\r\n <mat-divider></mat-divider>\r\n </div>\r\n <div class=\"flex flex-col flex-auto gap-y-2 overflow-auto\">\r\n @for (item of data.items; track $index) {\r\n <div>{{ item }}</div>\r\n }\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"flex flex-row flex-auto gap-x-2 justify-end\">\r\n <button mat-button mat-dialog-close>{{ 'COMMON.CANCEL' | translate }}</button>\r\n <button [ngClass]=\" isDeleteMode() ? 'destructive-flat-button' : ''\" mat-flat-button\r\n (click)=\"confirm()\">{{ this.action() | translate: {count: data.items.length, entity: data.entity} }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".content{width:var(--medium-dialog-width)}\n"] }]
7758
+ }], ctorParameters: () => [{ type: undefined, decorators: [{
7759
+ type: Inject,
7760
+ args: [MAT_DIALOG_DATA]
7761
+ }] }, { type: i1$5.MatDialogRef }] });
7762
+
7730
7763
  // Config
7731
7764
 
7732
7765
  /**
7733
7766
  * Generated bundle index. Do not edit.
7734
7767
  */
7735
7768
 
7736
- export { AUTHENTICATION_CLIENT, AssetManager, AuthenticationService, AutocompleteChipsComponent, AutocompleteComponent, BasicTimeSeriesGraphComponent, COLORS, CUSTOM_PERIOD, CardLabeledValueComponent, ConfirmationDialogComponent, DEFAULT_LOCALE, DEFAULT_TIMEZONES, DEFAULT_TIME_ZONE, DataType, DateRangeInputComponent, DateTimeFormFieldComponent, DoubleDrawerLayoutComponent, DragDropFileUploadComponent, DurationPipe, FeatureRegistry, FullscreenService, GoogleMapComponent, IconComponent, IconRegistryService, ImageDisplayComponent, ImagePreviewComponent, LAST_ACTIVE_TAB_KEY, LOCALES, LabeledValueComponent, LoadedIconComponent, LoadingIndicatorDirective, LocalSortTableComponent, Locale, LocalizedNumberPipe, LocalizedNumericInputDirective, MILLISECONDS_IN_DAY, MapsLoaderService, MasterDetailsViewComponent, MessageTooltipDirective, MissingTranslationHelper, NavigationPersistenceService, NestedListDataControl, NestedListDataSource, NestedListViewComponent, NotificationService, OverflowClassDirective, PdfViewerComponent, PeriodErrorStateMatcher, PermissionsService, RELATIVE_TIME_PERIODS, RelativeTimePeriod, RequiresAllGlobalOrAssetPermissionsDirective, RequiresAllPermissionDirective, RequiresGlobalOrAsserPermissionDirective, RequiresPermissionDirective, ScrollIntoViewDirective, SharedModule, SimpleDatePipe, SimpleDateTimePipe, SimpleTimePipe, SortPipe, StandardListDataControl, StandardListDataSource, StandardListViewComponent, TIMEZONES, TabulatedChipViewComponent, TabulatedViewComponent, TenantPropertiesService, ThemeService, TreeComponent, TreeNodeComponent, USERS_TIME_ZONE, ValueDisplayComponent, ValueInputBooleanComponent, ValueInputColorComponent, ValueInputComponent, ValueInputDateComponent, ValueInputDurationComponent, ValueInputEnumComponent, ValueInputHexadecimalComponent, ValueInputLinkComponent, ValueInputLocationComponent, ValueInputNumericComponent, ValueInputStringComponent, ValueInputVectorComponent, ZoomControlsComponent, arrayToObject, chartThemeDark, chartThemeLight, daysAway, determineMagnitude, determineMinMaxValues, endOfPeriod, equalsByValue, externalUrlFormatValidator, fileOrExternalUrlRequired, fileSizeValidator, flatMap, flatten, format, formatDuration, generateRandomString, getDecimalPlaces, globalPermissionGuard, groupBy, hoursAway, isContextAccessible, lookUpPathPart, lookUpQueryParam, parseDateRangeInputPeriod, parseTimeInput, saveFile, scale, startOfMonth, startOfPeriod, startOfTheDay, startOfWeek, startOfYear, tenantHostUrlValidator, toDate, toEndOfMonth, toEndOfYear, toJsDate, toOffset, toStartOfMonth, toStartOfTheDay, toStartOfWeek, toStartOfYear, toTime, uniqueBy, uniqueFrom, validateAssetName, validateTypeAssetName };
7769
+ export { AUTHENTICATION_CLIENT, AssetManager, AuthenticationService, AutocompleteChipsComponent, AutocompleteComponent, BasicTimeSeriesGraphComponent, BulkConfirmationDialogComponent, COLORS, CUSTOM_PERIOD, CardLabeledValueComponent, ConfirmationDialogComponent, DEFAULT_LOCALE, DEFAULT_TIMEZONES, DEFAULT_TIME_ZONE, DataType, DateRangeInputComponent, DateTimeFormFieldComponent, DoubleDrawerLayoutComponent, DragDropFileUploadComponent, DurationPipe, FeatureRegistry, FullscreenService, GoogleMapComponent, IconComponent, IconRegistryService, ImageDisplayComponent, ImagePreviewComponent, LAST_ACTIVE_TAB_KEY, LOCALES, LabeledValueComponent, LoadedIconComponent, LoadingIndicatorDirective, LocalSortTableComponent, Locale, LocalizedNumberPipe, LocalizedNumericInputDirective, MILLISECONDS_IN_DAY, MapsLoaderService, MasterDetailsViewComponent, MessageTooltipDirective, MissingTranslationHelper, NavigationPersistenceService, NestedListDataControl, NestedListDataSource, NestedListViewComponent, NotificationService, OverflowClassDirective, PdfViewerComponent, PeriodErrorStateMatcher, PermissionsService, RELATIVE_TIME_PERIODS, RelativeTimePeriod, RequiresAllGlobalOrAssetPermissionsDirective, RequiresAllPermissionDirective, RequiresGlobalOrAsserPermissionDirective, RequiresPermissionDirective, ScrollIntoViewDirective, SharedModule, SimpleDatePipe, SimpleDateTimePipe, SimpleTimePipe, SortPipe, StandardListDataControl, StandardListDataSource, StandardListViewComponent, TIMEZONES, TabulatedChipViewComponent, TabulatedViewComponent, TenantPropertiesService, ThemeService, TreeComponent, TreeNodeComponent, USERS_TIME_ZONE, ValueDisplayComponent, ValueInputBooleanComponent, ValueInputColorComponent, ValueInputComponent, ValueInputDateComponent, ValueInputDurationComponent, ValueInputEnumComponent, ValueInputHexadecimalComponent, ValueInputLinkComponent, ValueInputLocationComponent, ValueInputNumericComponent, ValueInputStringComponent, ValueInputVectorComponent, ZoomControlsComponent, arrayToObject, chartThemeDark, chartThemeLight, daysAway, determineMagnitude, determineMinMaxValues, endOfPeriod, equalsByValue, externalUrlFormatValidator, fileOrExternalUrlRequired, fileSizeValidator, flatMap, flatten, format, formatDuration, generateRandomString, getDecimalPlaces, globalPermissionGuard, groupBy, hoursAway, isContextAccessible, lookUpPathPart, lookUpQueryParam, parseDateRangeInputPeriod, parseTimeInput, saveFile, scale, startOfMonth, startOfPeriod, startOfTheDay, startOfWeek, startOfYear, tenantHostUrlValidator, toDate, toEndOfMonth, toEndOfYear, toJsDate, toOffset, toStartOfMonth, toStartOfTheDay, toStartOfWeek, toStartOfYear, toTime, uniqueBy, uniqueFrom, validateAssetName, validateTypeAssetName };
7737
7770
  //# sourceMappingURL=wolkabout-commons.mjs.map