@sumaris-net/ngx-components 0.26.5 → 0.26.6

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.
@@ -1,9 +1,12 @@
1
- import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Renderer2 } from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2 } from '@angular/core';
3
+ import * as i1$3 from '@angular/common';
2
4
  import { CommonModule, DOCUMENT, Location } from '@angular/common';
3
5
  import { CdkTableModule } from '@angular/cdk/table';
4
6
  import { A11yModule } from '@angular/cdk/a11y';
5
7
  import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
6
8
  import { ScrollingModule } from '@angular/cdk/scrolling';
9
+ import * as i1$2 from '@angular/material/core';
7
10
  import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
8
11
  import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
9
12
  import { MatSortModule, MatSort } from '@angular/material/sort';
@@ -27,16 +30,21 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
27
30
  import { MatRadioModule } from '@angular/material/radio';
28
31
  import { MatBadgeModule } from '@angular/material/badge';
29
32
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
33
+ import * as i2$1 from '@angular/material/dialog';
30
34
  import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
31
35
  import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
32
36
  import { __awaiter, __decorate } from 'tslib';
37
+ import * as i1$6 from '@angular/forms';
33
38
  import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
34
39
  import { timer, merge, fromEvent, Subscription, BehaviorSubject, Subject, isObservable, of, noop as noop$8, Observable, defer, from, combineLatest, EMPTY } from 'rxjs';
35
40
  import { filter, first, map, takeUntil, startWith, debounceTime, takeWhile, switchMap, tap, distinctUntilChanged, mergeMap, catchError, throttleTime } from 'rxjs/operators';
41
+ import * as i1$1 from '@ngx-translate/core';
36
42
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
43
+ import * as i1$4 from '@ionic/angular';
37
44
  import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent } from '@ionic/angular';
38
45
  import * as momentImported from 'moment';
39
46
  import { isMoment } from 'moment';
47
+ import * as i1 from '@angular/material-moment-adapter';
40
48
  import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
41
49
  import { Keyboard } from '@ionic-native/keyboard/ngx';
42
50
  import { TextMaskModule } from 'angular2-text-mask';
@@ -46,32 +54,38 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
46
54
  import { MatDividerModule } from '@angular/material/divider';
47
55
  import { MatTooltipModule } from '@angular/material/tooltip';
48
56
  import { MatChipsModule } from '@angular/material/chips';
57
+ import * as i3$3 from '@angular/router';
49
58
  import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
59
+ import * as i1$5 from '@angular/platform-browser';
50
60
  import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
61
+ import * as i2$2 from '@angular/common/http';
51
62
  import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
52
63
  import { ColorPickerModule } from 'ngx-color-picker';
53
- import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
54
- import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
64
+ import { NativeAudio } from '@ionic-native/native-audio/ngx';
65
+ import { Vibration } from '@ionic-native/vibration/ngx';
55
66
  import { AudioManagement } from '@ionic-native/audio-management/ngx';
56
- import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
57
- import { Vibration } from '@ionic-native/vibration/ngx/index';
58
- import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
67
+ import * as i2 from '@ionic-native/native-audio/ngx/index';
68
+ import * as i3 from '@ionic-native/vibration/ngx/index';
69
+ import * as i4 from '@ionic-native/audio-management/ngx/index';
59
70
  import * as uuidv4Imported from 'uuid/v4';
60
71
  import { DragDropModule } from '@angular/cdk/drag-drop';
61
72
  import { MarkdownModule } from 'ngx-markdown';
62
73
  import { sign, box, hash, verify } from 'tweetnacl';
74
+ import * as i3$1 from '@ionic/storage';
63
75
  import { Storage, IonicStorageModule } from '@ionic/storage';
64
76
  import 'zone.js/dist/zone-error';
65
- import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
66
- import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
67
- import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
68
- import { CacheService } from 'ionic-cache/dist/cache.service';
69
- import { Network } from '@ionic-native/network/ngx/index';
70
- import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
71
- import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
77
+ import { SplashScreen } from '@ionic-native/splash-screen/ngx';
78
+ import { Connection, Network } from '@ionic-native/network/ngx';
79
+ import { CacheService, CacheModule } from 'ionic-cache';
80
+ import * as i6 from 'ionic-cache/dist/cache.service';
81
+ import * as i9 from '@ionic-native/network/ngx/index';
82
+ import * as i10 from '@ionic-native/splash-screen/ngx/index';
83
+ import { StatusBar } from '@ionic-native/status-bar/ngx';
84
+ import * as i2$4 from '@angular/cdk/platform';
72
85
  import { Platform as Platform$1 } from '@angular/cdk/platform';
73
- import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
86
+ import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
74
87
  import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
88
+ import * as i2$3 from 'apollo-angular';
75
89
  import { Apollo } from 'apollo-angular';
76
90
  import { WebSocketLink } from '@apollo/client/link/ws';
77
91
  import { getMainDefinition } from '@apollo/client/utilities';
@@ -79,13 +93,14 @@ import { RetryLink } from '@apollo/client/link/retry';
79
93
  import QueueLink from 'apollo-link-queue';
80
94
  import SerializingLink from 'apollo-link-serialize';
81
95
  import loggerLink from 'apollo-link-logger';
96
+ import * as i3$2 from 'apollo-angular/http';
82
97
  import { HttpLink } from 'apollo-angular/http';
83
98
  import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
84
- import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
85
- import { StatusBar } from '@ionic-native/status-bar/ngx/index';
86
- import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
87
- import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
88
- import { Downloader } from '@ionic-native/downloader/ngx/index';
99
+ import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
100
+ import * as i14 from '@ionic-native/status-bar/ngx/index';
101
+ import * as i15 from '@ionic-native/keyboard/ngx/index';
102
+ import * as i17 from '@ionic-native/in-app-browser/ngx/index';
103
+ import * as i18 from '@ionic-native/downloader/ngx/index';
89
104
  import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
90
105
  import { SelectionModel } from '@angular/cdk/collections';
91
106
  import { NgxJdenticonModule } from 'ngx-jdenticon';
@@ -870,19 +885,19 @@ class MatAutocompleteConfigHolder {
870
885
  return this.fields[fieldName] || this.add(fieldName);
871
886
  }
872
887
  }
873
- const DEFAULT_VALUE_ACCESSOR = {
888
+ const DEFAULT_VALUE_ACCESSOR$6 = {
874
889
  provide: NG_VALUE_ACCESSOR,
875
890
  useExisting: forwardRef(() => MatAutocompleteField),
876
891
  multi: true
877
892
  };
878
- const noop = () => { };
879
- const ɵ0 = noop;
893
+ const noop$7 = () => { };
894
+ const ɵ0$a = noop$7;
880
895
  class MatAutocompleteField {
881
896
  constructor(cd, formGroupDir) {
882
897
  this.cd = cd;
883
898
  this.formGroupDir = formGroupDir;
884
- this._onChangeCallback = noop;
885
- this._onTouchedCallback = noop;
899
+ this._onChangeCallback = noop$7;
900
+ this._onTouchedCallback = noop$7;
886
901
  this._subscription = new Subscription();
887
902
  this._filter$ = new BehaviorSubject(undefined);
888
903
  this._reload$ = new Subject();
@@ -912,6 +927,7 @@ class MatAutocompleteField {
912
927
  this.onDropButtonClick = new EventEmitter(true);
913
928
  this.onKeydownEscape = new EventEmitter();
914
929
  this.onKeyupEnter = new EventEmitter();
930
+ this.onKeydownTab = new EventEmitter();
915
931
  }
916
932
  get itemCount() {
917
933
  return this._itemCount;
@@ -1475,8 +1491,8 @@ MatAutocompleteField.decorators = [
1475
1491
  { type: Component, args: [{
1476
1492
  // eslint-disable-next-line @angular-eslint/component-selector
1477
1493
  selector: 'mat-autocomplete-field',
1478
- template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field *ngIf=\"_readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [title]=\"displayValue\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- readonly -->\n <ng-container>\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n </ng-container>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n\n <ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n </mat-select>\n\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"filterInputTextFocusInEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.opened && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
1479
- providers: [DEFAULT_VALUE_ACCESSOR],
1494
+ template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field *ngIf=\"_readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [title]=\"displayValue\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- readonly -->\n <ng-container>\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n </ng-container>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n\n <ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n (keydown.tab)=\"onKeydownTab.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.emit($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n </mat-select>\n\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"filterInputTextFocusInEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n (keydown.tab)=\"onKeydownTab.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.opened && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
1495
+ providers: [DEFAULT_VALUE_ACCESSOR$6],
1480
1496
  changeDetection: ChangeDetectionStrategy.OnPush,
1481
1497
  styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.fact-scroll-viewport{height:100%;width:100%}.fact-item{height:54px;display:flex}.fact-item .fact-date{min-width:100px;text-align:center;font-size:24pt}.fact-item .fact-date,.fact-item .fact-text{height:100%;align-items:center;justify-content:center;display:flex}.fact-item .fact-text{border-radius:10px}cdk-virtual-scroll-viewport{border:1px solid #000}cdk-virtual-scroll-viewport li{list-style:none}"]
1482
1498
  },] }
@@ -1527,6 +1543,7 @@ MatAutocompleteField.propDecorators = {
1527
1543
  onDropButtonClick: [{ type: Output, args: ['dropButtonClick',] }],
1528
1544
  onKeydownEscape: [{ type: Output, args: ['keydown.escape',] }],
1529
1545
  onKeyupEnter: [{ type: Output, args: ['keyup.enter',] }],
1546
+ onKeydownTab: [{ type: Output, args: ['keydown.tab',] }],
1530
1547
  matSelect: [{ type: ViewChild, args: ['matSelect',] }],
1531
1548
  matInputText: [{ type: ViewChild, args: ['matInputText',] }],
1532
1549
  matAutocomplete: [{ type: ViewChild, args: [MatAutocomplete,] }],
@@ -1553,7 +1570,7 @@ class DateFormatPipe {
1553
1570
  return this.dateAdapter.format(date, displayFormat);
1554
1571
  }
1555
1572
  }
1556
- DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1573
+ DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1557
1574
  DateFormatPipe.decorators = [
1558
1575
  { type: Pipe, args: [{
1559
1576
  name: 'dateFormat'
@@ -1565,7 +1582,7 @@ DateFormatPipe.ctorParameters = () => [
1565
1582
  { type: TranslateService }
1566
1583
  ];
1567
1584
 
1568
- const moment = momentImported;
1585
+ const moment$6 = momentImported;
1569
1586
  class DateDiffDurationPipe {
1570
1587
  constructor(dateAdapter, translate) {
1571
1588
  this.dateAdapter = dateAdapter;
@@ -1581,17 +1598,17 @@ class DateDiffDurationPipe {
1581
1598
  return this.format(startDate, endDate);
1582
1599
  }
1583
1600
  format(startDate, endDate) {
1584
- const duration = moment.duration(endDate.diff(startDate));
1601
+ const duration = moment$6.duration(endDate.diff(startDate));
1585
1602
  if (duration.asMinutes() < 0)
1586
1603
  return '';
1587
- const timeDuration = moment(0)
1604
+ const timeDuration = moment$6(0)
1588
1605
  .hour(duration.hours())
1589
1606
  .minute(duration.minutes());
1590
1607
  const days = Math.floor(duration.asDays());
1591
1608
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
1592
1609
  }
1593
1610
  }
1594
- DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
1611
+ DateDiffDurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0.ɵɵinject(i1$2.DateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
1595
1612
  DateDiffDurationPipe.decorators = [
1596
1613
  { type: Pipe, args: [{
1597
1614
  name: 'dateDiffDuration'
@@ -1612,7 +1629,7 @@ class DateFromNowPipe {
1612
1629
  return date ? date.fromNow(args && args.withoutSuffix) : '';
1613
1630
  }
1614
1631
  }
1615
- DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1632
+ DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1616
1633
  DateFromNowPipe.decorators = [
1617
1634
  { type: Pipe, args: [{
1618
1635
  name: 'dateFromNow'
@@ -1681,7 +1698,7 @@ function formatToDD(value, opts) {
1681
1698
  value *= -1;
1682
1699
  }
1683
1700
  }
1684
- let degrees = roundFloat(value, opts.maxDecimals).toString();
1701
+ let degrees = roundFloat$1(value, opts.maxDecimals).toString();
1685
1702
  // Add sign
1686
1703
  let sign = negative ? '-' : '+';
1687
1704
  if (opts.placeholderChar) {
@@ -1732,7 +1749,7 @@ function formatToDDMMSS(value, opts) {
1732
1749
  }
1733
1750
  let degrees = Math.trunc(value);
1734
1751
  let minutes = Math.trunc((value - degrees) * 60);
1735
- let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1752
+ let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1736
1753
  while (seconds >= 60) {
1737
1754
  seconds -= 60;
1738
1755
  minutes += 1;
@@ -1800,7 +1817,7 @@ function formatToDDMM(value, opts) {
1800
1817
  }
1801
1818
  }
1802
1819
  let degrees = Math.trunc(value);
1803
- let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
1820
+ let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
1804
1821
  while (minutes >= 60) {
1805
1822
  minutes -= 60;
1806
1823
  degrees += 1;
@@ -1851,15 +1868,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
1851
1868
  return NaN;
1852
1869
  }
1853
1870
  if (pattern === 'DD')
1854
- return roundFloat(degrees, maxDecimals);
1871
+ return roundFloat$1(degrees, maxDecimals);
1855
1872
  const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
1856
1873
  const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
1857
1874
  const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
1858
1875
  const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
1859
1876
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
1860
- return roundFloat(degrees, maxDecimals);
1877
+ return roundFloat$1(degrees, maxDecimals);
1861
1878
  }
1862
- function roundFloat(input, maxDecimals) {
1879
+ function roundFloat$1(input, maxDecimals) {
1863
1880
  if (maxDecimals > 0) {
1864
1881
  const powDecimal = Math.pow(10, maxDecimals);
1865
1882
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -1879,7 +1896,7 @@ class LatLongFormatPipe {
1879
1896
  return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
1880
1897
  }
1881
1898
  }
1882
- LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
1899
+ LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
1883
1900
  LatLongFormatPipe.decorators = [
1884
1901
  { type: Pipe, args: [{
1885
1902
  name: 'latLongFormat'
@@ -1891,7 +1908,7 @@ class LatitudeFormatPipe {
1891
1908
  this.transform = formatLatitude;
1892
1909
  }
1893
1910
  }
1894
- LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
1911
+ LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
1895
1912
  LatitudeFormatPipe.decorators = [
1896
1913
  { type: Pipe, args: [{
1897
1914
  name: 'latitudeFormat'
@@ -1903,7 +1920,7 @@ class LongitudeFormatPipe {
1903
1920
  this.transform = formatLongitude;
1904
1921
  }
1905
1922
  }
1906
- LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
1923
+ LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
1907
1924
  LongitudeFormatPipe.decorators = [
1908
1925
  { type: Pipe, args: [{
1909
1926
  name: 'longitudeFormat'
@@ -1923,7 +1940,7 @@ class NumberFormatPipe {
1923
1940
  }
1924
1941
  }
1925
1942
  }
1926
- NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
1943
+ NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
1927
1944
  NumberFormatPipe.decorators = [
1928
1945
  { type: Pipe, args: [{
1929
1946
  name: 'numberFormat'
@@ -1963,7 +1980,7 @@ class HighlightPipe {
1963
1980
  }
1964
1981
  }
1965
1982
  }
1966
- HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
1983
+ HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
1967
1984
  HighlightPipe.decorators = [
1968
1985
  { type: Pipe, args: [{
1969
1986
  name: 'highlight'
@@ -2028,7 +2045,7 @@ FileSizePipe.decorators = [
2028
2045
  { type: Pipe, args: [{ name: 'fileSize' },] }
2029
2046
  ];
2030
2047
 
2031
- const moment$1 = momentImported;
2048
+ const moment$5 = momentImported;
2032
2049
  const DATE_UNIX_TIMESTAMP = 'X';
2033
2050
  const DATE_UNIX_MS_TIMESTAMP = 'x';
2034
2051
  class DateUtils {
@@ -2062,32 +2079,32 @@ function fromDateISOString(value) {
2062
2079
  if (!value || isMoment(value))
2063
2080
  return value;
2064
2081
  // Parse the input value, as a ISO date time
2065
- const date = moment$1(value, DATE_ISO_PATTERN);
2082
+ const date = moment$5(value, DATE_ISO_PATTERN);
2066
2083
  if (date.isValid())
2067
2084
  return date;
2068
2085
  // Not valid: trying to convert from unix timestamp
2069
2086
  if (typeof value === 'string') {
2070
2087
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2071
2088
  if (value.length === 10) {
2072
- return moment$1(value, DATE_UNIX_TIMESTAMP);
2089
+ return moment$5(value, DATE_UNIX_TIMESTAMP);
2073
2090
  }
2074
2091
  else if (value.length === 13) {
2075
- return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2092
+ return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
2076
2093
  }
2077
2094
  }
2078
2095
  console.warn('Unable to parse date: ' + value);
2079
2096
  return undefined;
2080
2097
  }
2081
2098
  function fromUnixTimestamp(timeInSec) {
2082
- return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2099
+ return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
2083
2100
  }
2084
2101
  function fromUnixMsTimestamp(timeInMs) {
2085
- return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2102
+ return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2086
2103
  }
2087
2104
  function toDuration(value, unit) {
2088
2105
  if (!value)
2089
2106
  return undefined;
2090
- const duration = moment$1.duration(value, unit);
2107
+ const duration = moment$5.duration(value, unit);
2091
2108
  // fix 990+ ms
2092
2109
  if (duration.milliseconds() >= 990) {
2093
2110
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2116,7 +2133,7 @@ class DurationPipe {
2116
2133
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
2117
2134
  }
2118
2135
  }
2119
- DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
2136
+ DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2120
2137
  DurationPipe.decorators = [
2121
2138
  { type: Pipe, args: [{
2122
2139
  name: 'duration'
@@ -2137,7 +2154,7 @@ class MathAbsPipe {
2137
2154
  }
2138
2155
  }
2139
2156
  }
2140
- MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2157
+ MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2141
2158
  MathAbsPipe.decorators = [
2142
2159
  { type: Pipe, args: [{
2143
2160
  name: 'mathAbs'
@@ -2149,7 +2166,7 @@ class EvenPipe {
2149
2166
  return val % 2 === 0;
2150
2167
  }
2151
2168
  }
2152
- EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2169
+ EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2153
2170
  EvenPipe.decorators = [
2154
2171
  { type: Pipe, args: [{
2155
2172
  name: 'even'
@@ -2161,7 +2178,7 @@ class OddPipe {
2161
2178
  return val % 2 !== 0;
2162
2179
  }
2163
2180
  }
2164
- OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2181
+ OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2165
2182
  OddPipe.decorators = [
2166
2183
  { type: Pipe, args: [{
2167
2184
  name: 'odd'
@@ -2269,7 +2286,7 @@ class MapGetPipe {
2269
2286
  return val[key];
2270
2287
  }
2271
2288
  }
2272
- MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2289
+ MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2273
2290
  MapGetPipe.decorators = [
2274
2291
  { type: Pipe, args: [{
2275
2292
  name: 'mapGet'
@@ -2283,7 +2300,7 @@ class MapKeysPipe {
2283
2300
  return Object.keys(map);
2284
2301
  }
2285
2302
  }
2286
- MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2303
+ MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2287
2304
  MapKeysPipe.decorators = [
2288
2305
  { type: Pipe, args: [{
2289
2306
  name: 'mapKeys'
@@ -2297,7 +2314,7 @@ class MapValuesPipe {
2297
2314
  return Object.values(map);
2298
2315
  }
2299
2316
  }
2300
- MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2317
+ MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2301
2318
  MapValuesPipe.decorators = [
2302
2319
  { type: Pipe, args: [{
2303
2320
  name: 'mapValues'
@@ -2310,7 +2327,7 @@ class IsNotNilOrBlankPipe {
2310
2327
  return isNotNilOrBlank(value);
2311
2328
  }
2312
2329
  }
2313
- IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2330
+ IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2314
2331
  IsNotNilOrBlankPipe.decorators = [
2315
2332
  { type: Pipe, args: [{
2316
2333
  name: 'isNotNilOrBlank'
@@ -2322,7 +2339,7 @@ class IsNilOrBlankPipe {
2322
2339
  return isNilOrBlank(value);
2323
2340
  }
2324
2341
  }
2325
- IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2342
+ IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2326
2343
  IsNilOrBlankPipe.decorators = [
2327
2344
  { type: Pipe, args: [{
2328
2345
  name: 'isNilOrBlank'
@@ -2334,7 +2351,7 @@ class ToStringPipe {
2334
2351
  return (value !== null && value !== undefined) ? value.toString() : '';
2335
2352
  }
2336
2353
  }
2337
- ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2354
+ ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2338
2355
  ToStringPipe.decorators = [
2339
2356
  { type: Pipe, args: [{
2340
2357
  name: 'toString'
@@ -2346,7 +2363,7 @@ class StrLengthPipe {
2346
2363
  return value && value.length || 0;
2347
2364
  }
2348
2365
  }
2349
- StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2366
+ StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2350
2367
  StrLengthPipe.decorators = [
2351
2368
  { type: Pipe, args: [{
2352
2369
  name: 'strLength'
@@ -2397,7 +2414,7 @@ class TranslateContextService {
2397
2414
  : parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
2398
2415
  }
2399
2416
  }
2400
- TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2417
+ TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2401
2418
  TranslateContextService.decorators = [
2402
2419
  { type: Injectable, args: [{ providedIn: 'root' },] }
2403
2420
  ];
@@ -2413,7 +2430,7 @@ class TranslateContextPipe {
2413
2430
  return this.translateContext.instant(key, context);
2414
2431
  }
2415
2432
  }
2416
- TranslateContextPipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2433
+ TranslateContextPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2417
2434
  TranslateContextPipe.decorators = [
2418
2435
  { type: Pipe, args: [{
2419
2436
  name: 'translateContext'
@@ -2430,7 +2447,7 @@ class TranslatablePipe {
2430
2447
  return (_a = changeCaseToUnderscore(value)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
2431
2448
  }
2432
2449
  }
2433
- TranslatablePipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2450
+ TranslatablePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2434
2451
  TranslatablePipe.decorators = [
2435
2452
  { type: Pipe, args: [{
2436
2453
  name: 'translatable'
@@ -2447,7 +2464,7 @@ class PropertyGetPipe {
2447
2464
  args && args.defaultValue);
2448
2465
  }
2449
2466
  }
2450
- PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2467
+ PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2451
2468
  PropertyGetPipe.decorators = [
2452
2469
  { type: Pipe, args: [{
2453
2470
  name: 'propertyGet'
@@ -2472,12 +2489,12 @@ NgInitDirective.propDecorators = {
2472
2489
  ngInit: [{ type: Output }]
2473
2490
  };
2474
2491
 
2475
- const moment$2 = momentImported;
2492
+ const moment$4 = momentImported;
2476
2493
  // @dynamic
2477
2494
  class SharedValidators {
2478
2495
  static validDate(control) {
2479
2496
  const value = control.value;
2480
- const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
2497
+ const date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
2481
2498
  if (date && (!date.isValid() || date.year() < 1970)) {
2482
2499
  return { validDate: true };
2483
2500
  }
@@ -3512,7 +3529,7 @@ class FormErrorTranslator {
3512
3529
  return errorKey;
3513
3530
  }
3514
3531
  }
3515
- FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
3532
+ FormErrorTranslator.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
3516
3533
  FormErrorTranslator.decorators = [
3517
3534
  { type: Injectable, args: [{ providedIn: 'root' },] }
3518
3535
  ];
@@ -3781,9 +3798,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
3781
3798
  const hour = parseInt(durationParts[0] || '0');
3782
3799
  const minute = parseInt(durationParts[1] || '0');
3783
3800
  const value = hour + (minute + 0.5) / 60;
3784
- return roundFloat$1(value, maxDecimals);
3801
+ return roundFloat(value, maxDecimals);
3785
3802
  }
3786
- function roundFloat$1(input, maxDecimals) {
3803
+ function roundFloat(input, maxDecimals) {
3787
3804
  if (maxDecimals > 0) {
3788
3805
  const powDecimal = Math.pow(10, maxDecimals);
3789
3806
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -3807,9 +3824,9 @@ const MASKS = {
3807
3824
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
3808
3825
  }
3809
3826
  };
3810
- const noop$1 = () => {
3827
+ const noop$6 = () => {
3811
3828
  };
3812
- const ɵ0$1 = noop$1;
3829
+ const ɵ0$9 = noop$6;
3813
3830
  class MatLatLongField {
3814
3831
  constructor(platform, translate, formBuilder, cd, formGroupDir) {
3815
3832
  this.platform = platform;
@@ -3817,8 +3834,8 @@ class MatLatLongField {
3817
3834
  this.formBuilder = formBuilder;
3818
3835
  this.cd = cd;
3819
3836
  this.formGroupDir = formGroupDir;
3820
- this._onChangeCallback = noop$1;
3821
- this._onTouchedCallback = noop$1;
3837
+ this._onChangeCallback = noop$6;
3838
+ this._onTouchedCallback = noop$6;
3822
3839
  this._subscription = new Subscription();
3823
3840
  this.disabling = false;
3824
3841
  this.writing = false;
@@ -4154,14 +4171,14 @@ SharedMatLatLongModule.decorators = [
4154
4171
  },] }
4155
4172
  ];
4156
4173
 
4157
- const DEFAULT_VALUE_ACCESSOR$1 = {
4174
+ const DEFAULT_VALUE_ACCESSOR$5 = {
4158
4175
  provide: NG_VALUE_ACCESSOR,
4159
4176
  useExisting: forwardRef(() => MatDate),
4160
4177
  multi: true
4161
4178
  };
4162
- const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4163
- const noop$2 = () => { };
4164
- const ɵ0$2 = noop$2;
4179
+ const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4180
+ const noop$5 = () => { };
4181
+ const ɵ0$8 = noop$5;
4165
4182
  class MatDate {
4166
4183
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4167
4184
  this.dateAdapter = dateAdapter;
@@ -4170,12 +4187,12 @@ class MatDate {
4170
4187
  this.cd = cd;
4171
4188
  this.keyboard = keyboard;
4172
4189
  this.formGroupDir = formGroupDir;
4173
- this._onChangeCallback = noop$2;
4174
- this._onTouchedCallback = noop$2;
4190
+ this._onChangeCallback = noop$5;
4191
+ this._onTouchedCallback = noop$5;
4175
4192
  this._subscription = new Subscription();
4176
4193
  this.writing = true;
4177
4194
  this.disabling = false;
4178
- this.dayMask = DAY_MASK;
4195
+ this.dayMask = DAY_MASK$2;
4179
4196
  this.disabled = false;
4180
4197
  this.floatLabel = 'auto';
4181
4198
  this.readonly = false;
@@ -4412,7 +4429,7 @@ MatDate.decorators = [
4412
4429
  selector: 'mat-date-field',
4413
4430
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors.msg}}</mat-error>\n </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n\n",
4414
4431
  providers: [
4415
- DEFAULT_VALUE_ACCESSOR$1,
4432
+ DEFAULT_VALUE_ACCESSOR$5,
4416
4433
  ],
4417
4434
  changeDetection: ChangeDetectionStrategy.OnPush,
4418
4435
  styles: [":host{display:inline-block;width:100%;position:relative}:host [no-padding]{--ion-grid-column-padding:0}:host [nowrap]{flex-wrap:nowrap}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}mat-form-field .datetime-md,mat-form-field ion-datetime{padding:0!important}ion-col.day{min-width:100px}ion-col.day .mat-form-field-subscript-wrapper{overflow:visible;right:-64px;width:calc(100% + 64px)}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}ion-col.hour{min-width:55px;max-width:65px}ion-col.hour mat-form-field{width:100%}ion-col.hour mat-form-field input[type=text],ion-col.hour mat-form-field mat-label{text-align:left;min-width:50px}mat-form-field.mat-form-field-disabled ion-col.day{min-width:100px}.hour .mat-form-field-label{max-width:40px}.hour mat-form-field.mat-form-field-should-float .mat-form-field-placeholder{max-width:inherit}mat-error{text-align:right;width:100%}"]
@@ -4445,17 +4462,17 @@ MatDate.propDecorators = {
4445
4462
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
4446
4463
  };
4447
4464
 
4448
- const DEFAULT_VALUE_ACCESSOR$2 = {
4465
+ const DEFAULT_VALUE_ACCESSOR$4 = {
4449
4466
  provide: NG_VALUE_ACCESSOR,
4450
4467
  useExisting: forwardRef(() => MatDateTime),
4451
4468
  multi: true
4452
4469
  };
4453
4470
  const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4454
4471
  const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
4455
- const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4456
- const noop$3 = () => {
4472
+ const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4473
+ const noop$4 = () => {
4457
4474
  };
4458
- const ɵ0$3 = noop$3;
4475
+ const ɵ0$7 = noop$4;
4459
4476
  class MatDateTime {
4460
4477
  constructor(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
4461
4478
  this.platform = platform;
@@ -4465,14 +4482,14 @@ class MatDateTime {
4465
4482
  this.keyboard = keyboard;
4466
4483
  this.cd = cd;
4467
4484
  this.formGroupDir = formGroupDir;
4468
- this._onChangeCallback = noop$3;
4469
- this._onTouchedCallback = noop$3;
4485
+ this._onChangeCallback = noop$4;
4486
+ this._onTouchedCallback = noop$4;
4470
4487
  this._subscription = new Subscription();
4471
4488
  this.writing = true;
4472
4489
  this.disabling = false;
4473
4490
  this._readonly = false;
4474
4491
  this.dayMask = DAY_MASK$1;
4475
- this.hourMask = HOUR_MASK;
4492
+ this.hourMask = HOUR_MASK$1;
4476
4493
  this.floatLabel = 'auto';
4477
4494
  this.compact = false;
4478
4495
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -4783,7 +4800,7 @@ MatDateTime.decorators = [
4783
4800
  selector: 'mat-date-time-field',
4784
4801
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable + time -->\n<ng-template #writable >\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding no-wrap\" nowrap>\n\n <!-- day -->\n <ion-col class=\"day ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dateFormControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dateFormControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix #datePickerButton2 (click)=\"openDatePicker($event, datePicker)\" [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (timeFormControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"timeFormControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"timeFormControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"timeFormControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
4785
4802
  providers: [
4786
- DEFAULT_VALUE_ACCESSOR$2,
4803
+ DEFAULT_VALUE_ACCESSOR$4,
4787
4804
  ],
4788
4805
  changeDetection: ChangeDetectionStrategy.OnPush,
4789
4806
  styles: [":host{display:inline-block;width:100%;position:relative;--ion-grid-column-padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}mat-form-field .datetime-md{padding:0!important}ion-row.no-wrap{flex-wrap:nowrap}ion-col.day{min-width:100px}ion-col.day .mat-form-field-subscript-wrapper{overflow:visible;right:-64px;width:calc(100% + 64px)}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}ion-col.hour{min-width:55px;max-width:65px}ion-col.hour mat-form-field{width:100%}ion-col.hour mat-form-field input[type=text],ion-col.hour mat-form-field mat-label{text-align:left;min-width:50px}mat-form-field.mat-form-field-disabled ion-col.day{min-width:100px}.hour .mat-form-field-label{max-width:40px}.hour mat-form-field.mat-form-field-should-float .mat-form-field-placeholder{max-width:inherit}mat-error{text-align:right;width:100%}"]
@@ -4822,10 +4839,10 @@ const DEFAULT_VALUE_ACCESSOR$3 = {
4822
4839
  useExisting: forwardRef(() => MatDateShort),
4823
4840
  multi: true
4824
4841
  };
4825
- const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
4826
- const noop$4 = () => {
4842
+ const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
4843
+ const noop$3 = () => {
4827
4844
  };
4828
- const ɵ0$4 = noop$4;
4845
+ const ɵ0$6 = noop$3;
4829
4846
  class MatDateShort {
4830
4847
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4831
4848
  this.dateAdapter = dateAdapter;
@@ -4834,11 +4851,11 @@ class MatDateShort {
4834
4851
  this.cd = cd;
4835
4852
  this.keyboard = keyboard;
4836
4853
  this.formGroupDir = formGroupDir;
4837
- this._onChangeCallback = noop$4;
4838
- this._onTouchedCallback = noop$4;
4854
+ this._onChangeCallback = noop$3;
4855
+ this._onTouchedCallback = noop$3;
4839
4856
  this.writing = true;
4840
4857
  this.disabling = false;
4841
- this.dayMask = DAY_MASK$2;
4858
+ this.dayMask = DAY_MASK;
4842
4859
  this.disabled = false;
4843
4860
  this.floatLabel = 'auto';
4844
4861
  this.readonly = false;
@@ -5151,16 +5168,16 @@ SharedMatDateTimeModule.decorators = [
5151
5168
  },] }
5152
5169
  ];
5153
5170
 
5154
- const DEFAULT_VALUE_ACCESSOR$4 = {
5171
+ const DEFAULT_VALUE_ACCESSOR$2 = {
5155
5172
  provide: NG_VALUE_ACCESSOR,
5156
5173
  useExisting: forwardRef(() => MatDuration),
5157
5174
  multi: true
5158
5175
  };
5159
5176
  const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
5160
- const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5161
- const noop$5 = () => {
5177
+ const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5178
+ const noop$2 = () => {
5162
5179
  };
5163
- const ɵ0$5 = noop$5;
5180
+ const ɵ0$5 = noop$2;
5164
5181
  class MatDuration {
5165
5182
  constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
5166
5183
  this.dateAdapter = dateAdapter;
@@ -5169,11 +5186,11 @@ class MatDuration {
5169
5186
  this.cd = cd;
5170
5187
  this.formGroupDir = formGroupDir;
5171
5188
  this._subscription = new Subscription();
5172
- this._onChangeCallback = noop$5;
5173
- this._onTouchedCallback = noop$5;
5189
+ this._onChangeCallback = noop$2;
5190
+ this._onTouchedCallback = noop$2;
5174
5191
  this.writing = true;
5175
5192
  this.disabling = false;
5176
- this.hourMask = HOUR_MASK$1;
5193
+ this.hourMask = HOUR_MASK;
5177
5194
  this.disabled = false;
5178
5195
  this.floatLabel = 'auto';
5179
5196
  this.readonly = false;
@@ -5353,7 +5370,7 @@ MatDuration.decorators = [
5353
5370
  selector: 'mat-duration-field',
5354
5371
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{ formControl.value|duration }}</ion-text>\n</mat-form-field>\n\n<!-- writable -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"formControl.disabled\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput type=\"text\"\n autocomplete=\"off\"\n [formControl]=\"textControl\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.DURATION_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keydown.tab)=\"moveCaretToSeparator($event, true)\"\n (keydown.shift.tab)=\"moveCaretToSeparator($event, false)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n\n <!-- errors -->\n <mat-error *ngIf=\"!formControl.hasError('required') && textControl.hasError('pattern')\" translate>ERROR.FIELD_NOT_VALID_PATTERN</mat-error>\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('min')\">\n {{(compact ? 'ERROR.FIELD_MIN_COMPACT' : 'ERROR.FIELD_MIN') | translate:formControl.errors.min }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('max')\">\n {{(compact ? 'ERROR.FIELD_MAX_COMPACT' : 'ERROR.FIELD_MAX') | translate:formControl.errors.max }}</mat-error>\n\n <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n</ng-template>\n\n",
5355
5372
  providers: [
5356
- DEFAULT_VALUE_ACCESSOR$4,
5373
+ DEFAULT_VALUE_ACCESSOR$2,
5357
5374
  ],
5358
5375
  changeDetection: ChangeDetectionStrategy.OnPush,
5359
5376
  styles: [":host{display:inline-block;min-width:140px;position:relative;--ion-grid-column-padding:0}:host,mat-form-field{width:100%}mat-form-field .mat-form-field-subscript-wrapper{overflow:visible;top:100%}mat-form-field .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}mat-form-field .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}mat-error{text-align:right;width:100%}"]
@@ -5410,22 +5427,22 @@ SharedMatDurationModule.decorators = [
5410
5427
  },] }
5411
5428
  ];
5412
5429
 
5413
- const DEFAULT_VALUE_ACCESSOR$5 = {
5430
+ const DEFAULT_VALUE_ACCESSOR$1 = {
5414
5431
  provide: NG_VALUE_ACCESSOR,
5415
5432
  useExisting: forwardRef(() => MatBooleanField),
5416
5433
  multi: true
5417
5434
  };
5418
- const noop$6 = () => {
5435
+ const noop$1 = () => {
5419
5436
  };
5420
- const ɵ0$6 = noop$6;
5437
+ const ɵ0$4 = noop$1;
5421
5438
  class MatBooleanField {
5422
5439
  constructor(translate, formBuilder, cd, formGroupDir) {
5423
5440
  this.translate = translate;
5424
5441
  this.formBuilder = formBuilder;
5425
5442
  this.cd = cd;
5426
5443
  this.formGroupDir = formGroupDir;
5427
- this._onChangeCallback = noop$6;
5428
- this._onTouchedCallback = noop$6;
5444
+ this._onChangeCallback = noop$1;
5445
+ this._onTouchedCallback = noop$1;
5429
5446
  this._writing = false;
5430
5447
  this.showRadio = false;
5431
5448
  this.disabled = false;
@@ -5598,7 +5615,7 @@ MatBooleanField.decorators = [
5598
5615
  selector: 'mat-boolean-field',
5599
5616
  template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label>&nbsp;</ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </ng-container>\n\n <div class=\"cdk-visually-hidden\">\n <div #suffix><ng-content select=\"[matSuffix]\"></ng-content></div>\n </div>\n\n</ng-template>\n\n\n",
5600
5617
  providers: [
5601
- DEFAULT_VALUE_ACCESSOR$5
5618
+ DEFAULT_VALUE_ACCESSOR$1
5602
5619
  ],
5603
5620
  changeDetection: ChangeDetectionStrategy.OnPush,
5604
5621
  styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--flex-basis:calc(100% / var(--buttons-col-count, 2));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);white-space:normal;padding:0 2px;height:40px}"]
@@ -5846,7 +5863,7 @@ class MatNumpadDomService {
5846
5863
  this.appRef.detachView(this.componentRef.hostView);
5847
5864
  }
5848
5865
  }
5849
- MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
5866
+ MatNumpadDomService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1$3.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
5850
5867
  MatNumpadDomService.decorators = [
5851
5868
  { type: Injectable, args: [{
5852
5869
  providedIn: 'root'
@@ -6210,7 +6227,7 @@ SharedMatNumpadModule.decorators = [
6210
6227
  },] }
6211
6228
  ];
6212
6229
 
6213
- const DEFAULT_VALUE_ACCESSOR$6 = {
6230
+ const DEFAULT_VALUE_ACCESSOR = {
6214
6231
  provide: NG_VALUE_ACCESSOR,
6215
6232
  useExisting: forwardRef(() => MatSwipeField),
6216
6233
  multi: true
@@ -6473,7 +6490,7 @@ MatSwipeField.decorators = [
6473
6490
  { type: Component, args: [{
6474
6491
  selector: 'mat-swipe-field',
6475
6492
  template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [class]=\"classList\"\n [class.mat-form-field-disabled]=\"disabled\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n </mat-label>\n <input matInput #fakeInput type=\"text\"\n [formControl]=\"formControl\"\n [readonly]=\"true\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showSlides\"\n [tabindex]=\"tabindex\">\n\n <div class=\"slides-container\" [class.hidden]=\"!showSlides\">\n <ion-slides #slides\n [options]=\"slidesOptions\"\n (ionSlidesDidLoad)=\"slidesLoaded()\"\n (ionSlideReachStart)=\"reachStart(true)\"\n (ionSlideReachEnd)=\"reachEnd(true)\"\n (ionSlideNextEnd)=\"reachStart(false)\"\n (ionSlidePrevEnd)=\"reachEnd(false)\"\n (ionSlideDidChange)=\"slideChanged()\"\n >\n <ion-slide *ngFor=\"let item of $items | async\">\n <ion-label>{{ displayWith(item) }}</ion-label>\n </ion-slide>\n\n </ion-slides>\n </div>\n\n <button #prevButton\n mat-icon-button\n type=\"button\"\n class=\"button-prev\"\n [hidden]=\"!showSlides\"\n [disabled]=\"previousDisabled\"\n (click)=\"previous()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button #nextButton\n mat-icon-button\n type=\"button\"\n class=\"button-next\"\n [hidden]=\"!showSlides\"\n [disabled]=\"nextDisabled\"\n (click)=\"next()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n\n</mat-form-field>\n",
6476
- providers: [DEFAULT_VALUE_ACCESSOR$6],
6493
+ providers: [DEFAULT_VALUE_ACCESSOR],
6477
6494
  changeDetection: ChangeDetectionStrategy.OnPush,
6478
6495
  styles: [":host{display:inline-block;width:100%;position:relative}input.hidden{display:none}.slides-container .swiper-slide{font-size:16px!important}.slides-container.hidden{visibility:hidden;height:0!important}.button-next,.button-prev{position:absolute;top:calc(50% - 20px);z-index:10}.button-prev{left:0;right:auto}.button-next{left:auto;right:0}"]
6479
6496
  },] }
@@ -6932,7 +6949,7 @@ class MatBadgeIconDirective {
6932
6949
  badge.innerHTML = `<i class="material-icons" style="font-size: ${fontSize};">${this.matIcon}</i>`;
6933
6950
  }
6934
6951
  else if (this.ionIcon) {
6935
- badge.innerHTML = `<ion-icon style="font-size: ${fontSize};" name="${this.ionIcon}"></ion-icon>`;
6952
+ badge.innerHTML = `<ion-icon style="font-size: ${fontSize}; pointer-events: none;" name="${this.ionIcon}"></ion-icon>`;
6936
6953
  }
6937
6954
  }
6938
6955
  }
@@ -7048,7 +7065,7 @@ class ProgressBarService {
7048
7065
  }
7049
7066
  }
7050
7067
  }
7051
- ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7068
+ ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7052
7069
  ProgressBarService.decorators = [
7053
7070
  { type: Injectable, args: [{ providedIn: 'root' },] }
7054
7071
  ];
@@ -7092,7 +7109,7 @@ class AppGestureConfig extends HammerGestureConfig {
7092
7109
  return mc;
7093
7110
  }
7094
7111
  }
7095
- AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7112
+ AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7096
7113
  AppGestureConfig.decorators = [
7097
7114
  { type: Injectable, args: [{ providedIn: 'root' },] }
7098
7115
  ];
@@ -7315,7 +7332,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
7315
7332
  this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
7316
7333
  }
7317
7334
  }
7318
- MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7335
+ MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7319
7336
  MatPaginatorI18n.decorators = [
7320
7337
  { type: Injectable, args: [{ providedIn: 'root' },] }
7321
7338
  ];
@@ -7405,17 +7422,17 @@ function getColorContrast(color, bw) {
7405
7422
  return rgbArrayToHex(rgb.map(v => 255 - v));
7406
7423
  }
7407
7424
 
7408
- const noop$7 = () => {
7425
+ const noop = () => {
7409
7426
  };
7410
- const ɵ0$7 = noop$7;
7427
+ const ɵ0$3 = noop;
7411
7428
  class AppFormField {
7412
7429
  constructor(translate, cd, injector, formGroupDir) {
7413
7430
  this.translate = translate;
7414
7431
  this.cd = cd;
7415
7432
  this.injector = injector;
7416
7433
  this.formGroupDir = formGroupDir;
7417
- this._onChangeCallback = noop$7;
7418
- this._onTouchedCallback = noop$7;
7434
+ this._onChangeCallback = noop;
7435
+ this._onTouchedCallback = noop;
7419
7436
  this.readonly = false;
7420
7437
  this.compact = false;
7421
7438
  this.floatLabel = 'auto';
@@ -7831,14 +7848,14 @@ class AudioProvider extends StartableService {
7831
7848
  });
7832
7849
  }
7833
7850
  }
7834
- AudioProvider.ɵprov = ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(ɵɵinject(Platform), ɵɵinject(NativeAudio, 8), ɵɵinject(Vibration, 8), ɵɵinject(AudioManagement$1, 8)); }, token: AudioProvider, providedIn: "root" });
7851
+ AudioProvider.ɵprov = i0.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2.NativeAudio, 8), i0.ɵɵinject(i3.Vibration, 8), i0.ɵɵinject(i4.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
7835
7852
  AudioProvider.decorators = [
7836
7853
  { type: Injectable, args: [{ providedIn: 'root' },] }
7837
7854
  ];
7838
7855
  AudioProvider.ctorParameters = () => [
7839
7856
  { type: Platform },
7840
- { type: NativeAudio$1, decorators: [{ type: Optional }] },
7841
- { type: Vibration$1, decorators: [{ type: Optional }] },
7857
+ { type: NativeAudio, decorators: [{ type: Optional }] },
7858
+ { type: Vibration, decorators: [{ type: Optional }] },
7842
7859
  { type: AudioManagement, decorators: [{ type: Optional }] }
7843
7860
  ];
7844
7861
 
@@ -7920,7 +7937,7 @@ class Hotkeys {
7920
7937
  });
7921
7938
  }
7922
7939
  }
7923
- Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
7940
+ Hotkeys.ɵprov = i0.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0.ɵɵinject(i1$5.EventManager), i0.ɵɵinject(i2$1.MatDialog), i0.ɵɵinject(i1$3.DOCUMENT), i0.ɵɵinject(i1$4.ModalController)); }, token: Hotkeys, providedIn: "root" });
7924
7941
  Hotkeys.decorators = [
7925
7942
  { type: Injectable, args: [{
7926
7943
  providedIn: 'root'
@@ -8094,7 +8111,7 @@ class Base64ImageReader {
8094
8111
  }
8095
8112
  }
8096
8113
 
8097
- const uuidv4 = uuidv4Imported;
8114
+ const uuidv4$1 = uuidv4Imported;
8098
8115
  class FileService {
8099
8116
  constructor(platform,
8100
8117
  //private transfer: FileTransfer,
@@ -8131,7 +8148,7 @@ class FileService {
8131
8148
  const lastSlashIndex = source.lastIndexOf('/');
8132
8149
  if (lastSlashIndex === -1)
8133
8150
  throw new Error('Invalid URL: ' + source);
8134
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
8151
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
8135
8152
  // Download into the file system
8136
8153
  if (responseType === 'file' && this.canUseFileSystem) {
8137
8154
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -8187,7 +8204,7 @@ class FileService {
8187
8204
  this._started = true;
8188
8205
  }
8189
8206
  }
8190
- FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
8207
+ FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$2.HttpClient), i0.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
8191
8208
  FileService.decorators = [
8192
8209
  { type: Injectable, args: [{
8193
8210
  providedIn: 'root',
@@ -8217,6 +8234,10 @@ class ModalToolbarComponent {
8217
8234
  }
8218
8235
  ngOnInit() {
8219
8236
  this.canValidate = toBoolean(this.canValidate, this.validate.observers.length > 0);
8237
+ // Ctrl+S
8238
+ this._subscription.add(this.hotkeys.addShortcut({ keys: 'control.s', description: 'COMMON.BTN_VALIDATE', elementName: this.modalName })
8239
+ .pipe(filter(() => this.canValidate))
8240
+ .subscribe((event) => this.validate.emit(event)));
8220
8241
  // Escape
8221
8242
  this._subscription.add(this.hotkeys.addShortcut({ keys: 'escape', description: 'COMMON.BTN_CLOSE', elementName: this.modalName })
8222
8243
  .subscribe((event) => this.cancel.emit(event)));
@@ -8349,7 +8370,7 @@ class Base58 {
8349
8370
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
8350
8371
 
8351
8372
  const scrypt = require('scrypt-async');
8352
- const sha256 = require('hash.js/lib/hash/sha/256');
8373
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
8353
8374
  const sha512 = require('hash.js/lib/hash/sha/512');
8354
8375
  const nacl = {
8355
8376
  sign,
@@ -8453,7 +8474,7 @@ class CryptoService {
8453
8474
  * Hash (using SHA256) a message
8454
8475
  */
8455
8476
  sha256(message) {
8456
- return sha256().update(message).digest('hex');
8477
+ return sha256$1().update(message).digest('hex');
8457
8478
  }
8458
8479
  /**
8459
8480
  * Hash (using SHA512) a message
@@ -8466,7 +8487,7 @@ class CryptoService {
8466
8487
  return nacl.util.encodeBase64(m);
8467
8488
  }
8468
8489
  }
8469
- CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8490
+ CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8470
8491
  CryptoService.decorators = [
8471
8492
  { type: Injectable, args: [{ providedIn: 'root' },] }
8472
8493
  ];
@@ -9687,7 +9708,7 @@ class LocalSettingsService extends StartableService {
9687
9708
  return page;
9688
9709
  }
9689
9710
  }
9690
- LocalSettingsService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(ɵɵinject(TranslateService), ɵɵinject(Platform), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_SETTINGS, 8), ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
9711
+ LocalSettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
9691
9712
  LocalSettingsService.decorators = [
9692
9713
  { type: Injectable, args: [{
9693
9714
  providedIn: 'root',
@@ -10347,7 +10368,7 @@ class NetworkService extends StartableService {
10347
10368
  });
10348
10369
  }
10349
10370
  }
10350
- NetworkService.ɵprov = ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(ModalController), ɵɵinject(CryptoService), ɵɵinject(Storage), ɵɵinject(LocalSettingsService), ɵɵinject(CacheService), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT), ɵɵinject(Network, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8)); }, token: NetworkService, providedIn: "root" });
10371
+ NetworkService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0.ɵɵinject(i1$3.DOCUMENT), i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i1$4.ModalController), i0.ɵɵinject(CryptoService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i2$2.HttpClient), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i9.Network, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i1$1.TranslateService, 8), i0.ɵɵinject(i1$4.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
10351
10372
  NetworkService.decorators = [
10352
10373
  { type: Injectable, args: [{ providedIn: 'root' },] }
10353
10374
  ];
@@ -10358,16 +10379,16 @@ NetworkService.ctorParameters = () => [
10358
10379
  { type: CryptoService },
10359
10380
  { type: Storage },
10360
10381
  { type: LocalSettingsService },
10361
- { type: CacheService$1 },
10382
+ { type: CacheService },
10362
10383
  { type: HttpClient },
10363
10384
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
10364
- { type: Network$1, decorators: [{ type: Optional }] },
10365
- { type: SplashScreen$1, decorators: [{ type: Optional }] },
10385
+ { type: Network, decorators: [{ type: Optional }] },
10386
+ { type: SplashScreen, decorators: [{ type: Optional }] },
10366
10387
  { type: TranslateService, decorators: [{ type: Optional }] },
10367
10388
  { type: ToastController, decorators: [{ type: Optional }] }
10368
10389
  ];
10369
10390
 
10370
- const ErrorCodes = {
10391
+ const ErrorCodes$2 = {
10371
10392
  UNKNOWN_ERROR: 0,
10372
10393
  LOAD_ACCOUNT_ERROR: 1,
10373
10394
  BAD_PASSWORD: 2,
@@ -10714,7 +10735,7 @@ class EntityStore {
10714
10735
  }
10715
10736
  catch (err) {
10716
10737
  console.error(err);
10717
- throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
10738
+ throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
10718
10739
  }
10719
10740
  }
10720
10741
  // Emit update event
@@ -11285,7 +11306,7 @@ class EntitiesStorage extends StartableService {
11285
11306
  }
11286
11307
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
11287
11308
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
11288
- EntitiesStorage.ɵprov = ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(ɵɵinject(Platform), ɵɵinject(ProgressBarService), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
11309
+ EntitiesStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(ProgressBarService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
11289
11310
  EntitiesStorage.decorators = [
11290
11311
  { type: Injectable, args: [{ providedIn: 'root' },] }
11291
11312
  ];
@@ -11385,10 +11406,10 @@ function referentialToString(obj, properties) {
11385
11406
  function referentialsToString(values, properties, separator) {
11386
11407
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
11387
11408
  }
11388
- const ɵ0$8 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
11409
+ const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
11389
11410
  const StatusList = Object.freeze([
11390
11411
  {
11391
- id: ɵ0$8,
11412
+ id: ɵ0$2,
11392
11413
  icon: 'checkmark',
11393
11414
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
11394
11415
  },
@@ -11663,7 +11684,7 @@ function accountToString(data) {
11663
11684
  (data.lastName || '')) || '';
11664
11685
  }
11665
11686
 
11666
- const uuidv4$1 = uuidv4Imported;
11687
+ const uuidv4 = uuidv4Imported;
11667
11688
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
11668
11689
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
11669
11690
  /**
@@ -11707,7 +11728,7 @@ function createTrackerLink(opts) {
11707
11728
  // Skip if not tracked
11708
11729
  if (!context || !context.tracked)
11709
11730
  return forward(operation);
11710
- const id = context.serializationKey || uuidv4$1();
11731
+ const id = context.serializationKey || uuidv4();
11711
11732
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
11712
11733
  // Clean context, before calling JSON.stringify (remove unused attributes)
11713
11734
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -12376,7 +12397,7 @@ class GraphqlService extends StartableService {
12376
12397
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
12377
12398
  || this.toAppError(err.networkError)
12378
12399
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
12379
- || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
12400
+ || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
12380
12401
  // If graphQL: try to convert the first error found
12381
12402
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
12382
12403
  || this.toAppError(err)
@@ -12384,7 +12405,7 @@ class GraphqlService extends StartableService {
12384
12405
  || (err.graphQLErrors && err.graphQLErrors[0])
12385
12406
  || err;
12386
12407
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
12387
- if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
12408
+ if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
12388
12409
  console.error('[graphql] original error: ' + err.networkError.message);
12389
12410
  this.onNetworkError.next(error);
12390
12411
  }
@@ -12420,7 +12441,7 @@ class GraphqlService extends StartableService {
12420
12441
  return 'ERROR.UNAUTHORIZED';
12421
12442
  case ServerErrorCodes.FORBIDDEN:
12422
12443
  return 'ERROR.FORBIDDEN';
12423
- case ErrorCodes.UNKNOWN_NETWORK_ERROR:
12444
+ case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
12424
12445
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
12425
12446
  case ServerErrorCodes.BAD_UPDATE_DATE:
12426
12447
  return 'ERROR.BAD_UPDATE_DATE';
@@ -12448,7 +12469,7 @@ class GraphqlService extends StartableService {
12448
12469
  return undefined;
12449
12470
  }
12450
12471
  }
12451
- GraphqlService.ɵprov = ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(ɵɵinject(Platform), ɵɵinject(Apollo), ɵɵinject(HttpLink), ɵɵinject(NetworkService), ɵɵinject(Storage), ɵɵinject(CryptoService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
12472
+ GraphqlService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$3.Apollo), i0.ɵɵinject(i3$2.HttpLink), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(CryptoService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
12452
12473
  GraphqlService.decorators = [
12453
12474
  { type: Injectable, args: [{
12454
12475
  providedIn: 'root'
@@ -12465,7 +12486,7 @@ GraphqlService.ctorParameters = () => [
12465
12486
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
12466
12487
  ];
12467
12488
 
12468
- const sha256$1 = require('hash.js/lib/hash/sha/256');
12489
+ const sha256 = require('hash.js/lib/hash/sha/256');
12469
12490
  class BaseGraphqlServiceOptions {
12470
12491
  }
12471
12492
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -12615,8 +12636,8 @@ class BaseGraphqlService {
12615
12636
  }
12616
12637
  /* -- protected methods -- */
12617
12638
  computeMutableWatchQueryId(opts) {
12618
- const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
12619
- const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
12639
+ const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
12640
+ const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
12620
12641
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
12621
12642
  }
12622
12643
  findMutableWatchQueries(opts) {
@@ -12679,7 +12700,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
12679
12700
  /* ------------------------------------
12680
12701
  * GraphQL queries
12681
12702
  * ------------------------------------*/
12682
- const Fragments = {
12703
+ const Fragments$1 = {
12683
12704
  account: gql `
12684
12705
  fragment AccountFragment on AccountVO {
12685
12706
  id
@@ -12712,13 +12733,13 @@ const Fragments = {
12712
12733
  `
12713
12734
  };
12714
12735
  // Load account query
12715
- const LoadQuery = gql `
12736
+ const LoadQuery$1 = gql `
12716
12737
  query Account {
12717
12738
  data: account {
12718
12739
  ...AccountFragment
12719
12740
  }
12720
12741
  }
12721
- ${Fragments.account}
12742
+ ${Fragments$1.account}
12722
12743
  `;
12723
12744
  // Check email query
12724
12745
  const IsEmailExistsQuery = gql `
@@ -12727,13 +12748,13 @@ const IsEmailExistsQuery = gql `
12727
12748
  }
12728
12749
  `;
12729
12750
  // Save (create or update) account mutation
12730
- const SaveMutation = gql `
12751
+ const SaveMutation$1 = gql `
12731
12752
  mutation SaveAccount($data:AccountVOInput){
12732
12753
  data: saveAccount(account: $data){
12733
12754
  ...AccountFragment
12734
12755
  }
12735
12756
  }
12736
- ${Fragments.account}
12757
+ ${Fragments$1.account}
12737
12758
  `;
12738
12759
  // Create account mutation
12739
12760
  const CreateMutation = gql `
@@ -12742,7 +12763,7 @@ const CreateMutation = gql `
12742
12763
  ...AccountFragment
12743
12764
  }
12744
12765
  }
12745
- ${Fragments.account}
12766
+ ${Fragments$1.account}
12746
12767
  `;
12747
12768
  // Sent confirmation email
12748
12769
  const SendConfirmEmailMutation = gql `
@@ -13080,7 +13101,7 @@ class AccountService extends BaseGraphqlService {
13080
13101
  catch (error) {
13081
13102
  console.error(error);
13082
13103
  this.resetData();
13083
- throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13104
+ throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13084
13105
  }
13085
13106
  // Store pubkey+keypair
13086
13107
  this._data.pubkey = Base58.encode(keypair.publicKey);
@@ -13114,7 +13135,7 @@ class AccountService extends BaseGraphqlService {
13114
13135
  }
13115
13136
  catch (err) {
13116
13137
  // If account not found, check if email is valid
13117
- if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
13138
+ if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
13118
13139
  // Check email exists
13119
13140
  if (data.username.indexOf('@') !== -1) {
13120
13141
  let isEmailExists;
@@ -13126,11 +13147,11 @@ class AccountService extends BaseGraphqlService {
13126
13147
  }
13127
13148
  // Email not exists (no account)
13128
13149
  if (!isEmailExists) {
13129
- throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13150
+ throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13130
13151
  }
13131
13152
  }
13132
13153
  // Email exists, so error = 'bad password'
13133
- throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13154
+ throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13134
13155
  }
13135
13156
  throw err; // resend the first error
13136
13157
  }
@@ -13255,8 +13276,8 @@ class AccountService extends BaseGraphqlService {
13255
13276
  // Load remotely
13256
13277
  else {
13257
13278
  const { data } = yield this.graphql.query({
13258
- query: LoadQuery,
13259
- error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
13279
+ query: LoadQuery$1,
13280
+ error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
13260
13281
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
13261
13282
  });
13262
13283
  json = data;
@@ -13283,7 +13304,7 @@ class AccountService extends BaseGraphqlService {
13283
13304
  return __awaiter(this, void 0, void 0, function* () {
13284
13305
  const isEmailExists = yield this.isEmailExists(email);
13285
13306
  if (isEmailExists) {
13286
- throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
13307
+ throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
13287
13308
  }
13288
13309
  });
13289
13310
  }
@@ -13319,7 +13340,7 @@ class AccountService extends BaseGraphqlService {
13319
13340
  locale
13320
13341
  },
13321
13342
  error: {
13322
- code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
13343
+ code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
13323
13344
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
13324
13345
  }
13325
13346
  });
@@ -13335,7 +13356,7 @@ class AccountService extends BaseGraphqlService {
13335
13356
  code
13336
13357
  },
13337
13358
  error: {
13338
- code: ErrorCodes.CONFIRM_EMAIL_FAILED,
13359
+ code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
13339
13360
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
13340
13361
  }
13341
13362
  });
@@ -13353,7 +13374,7 @@ class AccountService extends BaseGraphqlService {
13353
13374
  interval: 10
13354
13375
  },
13355
13376
  error: {
13356
- code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
13377
+ code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
13357
13378
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
13358
13379
  }
13359
13380
  }).subscribe({
@@ -13462,7 +13483,7 @@ class AccountService extends BaseGraphqlService {
13462
13483
  throw error;
13463
13484
  console.error(error);
13464
13485
  throw {
13465
- code: ErrorCodes.LOAD_ACCOUNT_ERROR,
13486
+ code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
13466
13487
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
13467
13488
  };
13468
13489
  }
@@ -13607,7 +13628,7 @@ class AccountService extends BaseGraphqlService {
13607
13628
  if (!isNew) {
13608
13629
  const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
13609
13630
  if (!existingAccount || !existingAccount.updateDate) {
13610
- throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
13631
+ throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
13611
13632
  }
13612
13633
  this.copyIdAndUpdateDate(existingAccount, account);
13613
13634
  }
@@ -13616,10 +13637,10 @@ class AccountService extends BaseGraphqlService {
13616
13637
  delete json.profiles;
13617
13638
  // Execute mutation
13618
13639
  const { data } = yield this.graphql.mutate({
13619
- mutation: isNew ? CreateMutation : SaveMutation,
13640
+ mutation: isNew ? CreateMutation : SaveMutation$1,
13620
13641
  variables: { data: json },
13621
13642
  error: {
13622
- code: ErrorCodes.SAVE_ACCOUNT_ERROR,
13643
+ code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
13623
13644
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
13624
13645
  }
13625
13646
  });
@@ -13639,7 +13660,7 @@ class AccountService extends BaseGraphqlService {
13639
13660
  if (counter > 4) {
13640
13661
  if (this._debug)
13641
13662
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
13642
- throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
13663
+ throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
13643
13664
  }
13644
13665
  // Check if valid
13645
13666
  if (token) {
@@ -13649,7 +13670,7 @@ class AccountService extends BaseGraphqlService {
13649
13670
  token
13650
13671
  },
13651
13672
  error: {
13652
- code: ErrorCodes.UNAUTHORIZED,
13673
+ code: ErrorCodes$2.UNAUTHORIZED,
13653
13674
  message: 'ERROR.UNAUTHORIZED'
13654
13675
  },
13655
13676
  fetchPolicy: 'no-cache'
@@ -13665,7 +13686,7 @@ class AccountService extends BaseGraphqlService {
13665
13686
  }
13666
13687
  // Generate a new token
13667
13688
  const challengeError = {
13668
- code: ErrorCodes.AUTH_CHALLENGE_ERROR,
13689
+ code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
13669
13690
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
13670
13691
  };
13671
13692
  const data = yield this.graphql.query({
@@ -13699,7 +13720,7 @@ class AccountService extends BaseGraphqlService {
13699
13720
  target.settings.updateDate = source.settings && source.settings.updateDate || target.settings.updateDate;
13700
13721
  }
13701
13722
  }
13702
- AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
13723
+ AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
13703
13724
  AccountService.decorators = [
13704
13725
  { type: Injectable, args: [{ providedIn: 'root' },] }
13705
13726
  ];
@@ -13959,7 +13980,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
13959
13980
  /* ------------------------------------
13960
13981
  * GraphQL queries
13961
13982
  * ------------------------------------*/
13962
- const Fragments$1 = {
13983
+ const Fragments = {
13963
13984
  config: gql `
13964
13985
  fragment ConfigFragment on ConfigurationVO {
13965
13986
  id
@@ -13986,22 +14007,22 @@ const Fragments$1 = {
13986
14007
  }
13987
14008
  `
13988
14009
  };
13989
- const LoadQuery$1 = gql `
14010
+ const LoadQuery = gql `
13990
14011
  query Configuration{
13991
14012
  data: configuration{
13992
14013
  ...ConfigFragment
13993
14014
  }
13994
14015
  }
13995
- ${Fragments$1.config}
14016
+ ${Fragments.config}
13996
14017
  `;
13997
14018
  // Save (create or update) account mutation
13998
- const SaveMutation$1 = gql `
14019
+ const SaveMutation = gql `
13999
14020
  mutation SaveConfiguration($data: ConfigurationVOInput){
14000
14021
  data: saveConfiguration(config: $data){
14001
14022
  ...ConfigFragment
14002
14023
  }
14003
14024
  }
14004
- ${Fragments$1.config}
14025
+ ${Fragments.config}
14005
14026
  `;
14006
14027
  const ClearCache = gql `
14007
14028
  query ClearCache($name: String) {
@@ -14096,12 +14117,12 @@ class ConfigService extends BaseGraphqlService {
14096
14117
  return __awaiter(this, void 0, void 0, function* () {
14097
14118
  const now = Date.now();
14098
14119
  console.debug('[config] Loading Pod configuration...');
14099
- const query = opts && opts.query || LoadQuery$1;
14120
+ const query = opts && opts.query || LoadQuery;
14100
14121
  const variables = opts && opts.variables || undefined;
14101
14122
  const res = yield this.graphql.query({
14102
14123
  query,
14103
14124
  variables,
14104
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14125
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14105
14126
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
14106
14127
  });
14107
14128
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -14126,12 +14147,12 @@ class ConfigService extends BaseGraphqlService {
14126
14147
  const json = config.asObject();
14127
14148
  // Execute mutation
14128
14149
  const res = yield this.graphql.mutate({
14129
- mutation: SaveMutation$1,
14150
+ mutation: SaveMutation,
14130
14151
  variables: {
14131
14152
  data: json
14132
14153
  },
14133
14154
  error: {
14134
- code: ErrorCodes.SAVE_CONFIG_ERROR,
14155
+ code: ErrorCodes$2.SAVE_CONFIG_ERROR,
14135
14156
  message: 'ERROR.SAVE_CONFIG_ERROR'
14136
14157
  }
14137
14158
  });
@@ -14157,7 +14178,7 @@ class ConfigService extends BaseGraphqlService {
14157
14178
  const res = yield this.graphql.query({
14158
14179
  query: CacheStatistics,
14159
14180
  variables: null,
14160
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14181
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14161
14182
  fetchPolicy: 'network-only'
14162
14183
  });
14163
14184
  const data = res && res.cacheStatistics || undefined;
@@ -14173,7 +14194,7 @@ class ConfigService extends BaseGraphqlService {
14173
14194
  const res = yield this.graphql.query({
14174
14195
  query: ClearCache,
14175
14196
  variables,
14176
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14197
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14177
14198
  fetchPolicy: 'network-only'
14178
14199
  });
14179
14200
  const data = res && res.clearCache || undefined;
@@ -14332,7 +14353,7 @@ class ConfigService extends BaseGraphqlService {
14332
14353
  });
14333
14354
  }
14334
14355
  }
14335
- ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
14356
+ ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
14336
14357
  ConfigService.decorators = [
14337
14358
  { type: Injectable, args: [{
14338
14359
  providedIn: 'root',
@@ -14351,7 +14372,7 @@ ConfigService.ctorParameters = () => [
14351
14372
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
14352
14373
  ];
14353
14374
 
14354
- const moment$4 = momentImported;
14375
+ const moment$2 = momentImported;
14355
14376
  class PlatformService {
14356
14377
  constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
14357
14378
  this.platform = platform;
@@ -14560,16 +14581,16 @@ class PlatformService {
14560
14581
  }
14561
14582
  // config moment lib
14562
14583
  try {
14563
- moment$4.locale(event.lang);
14584
+ moment$2.locale(event.lang);
14564
14585
  console.debug('[platform] Use locale {' + event.lang + '}');
14565
14586
  }
14566
14587
  // If error, fallback to en
14567
14588
  catch (err) {
14568
- moment$4.locale('en');
14589
+ moment$2.locale('en');
14569
14590
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
14570
14591
  }
14571
14592
  // Config date adapter
14572
- this.dateAdapter.setLocale(moment$4.locale());
14593
+ this.dateAdapter.setLocale(moment$2.locale());
14573
14594
  }
14574
14595
  });
14575
14596
  this.settings.onChange.subscribe(data => {
@@ -14707,7 +14728,7 @@ class PlatformService {
14707
14728
  });
14708
14729
  }
14709
14730
  }
14710
- PlatformService.ɵprov = ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(ɵɵinject(Platform), ɵɵinject(Platform$1), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(MomentDateAdapter), ɵɵinject(EntitiesStorage), ɵɵinject(LocalSettingsService), ɵɵinject(NetworkService), ɵɵinject(AccountService), ɵɵinject(ConfigService), ɵɵinject(CacheService), ɵɵinject(Storage), ɵɵinject(AudioProvider), ɵɵinject(ENVIRONMENT), ɵɵinject(StatusBar, 8), ɵɵinject(Keyboard$1, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(InAppBrowser, 8), ɵɵinject(Downloader, 8)); }, token: PlatformService, providedIn: "root" });
14731
+ PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8), i0.ɵɵinject(i18.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
14711
14732
  PlatformService.decorators = [
14712
14733
  { type: Injectable, args: [{ providedIn: 'root' },] }
14713
14734
  ];
@@ -14722,15 +14743,15 @@ PlatformService.ctorParameters = () => [
14722
14743
  { type: NetworkService },
14723
14744
  { type: AccountService },
14724
14745
  { type: ConfigService },
14725
- { type: CacheService$1 },
14746
+ { type: CacheService },
14726
14747
  { type: Storage },
14727
14748
  { type: AudioProvider },
14728
14749
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
14729
- { type: StatusBar$1, decorators: [{ type: Optional }] },
14750
+ { type: StatusBar, decorators: [{ type: Optional }] },
14730
14751
  { type: Keyboard, decorators: [{ type: Optional }] },
14731
- { type: SplashScreen$1, decorators: [{ type: Optional }] },
14732
- { type: InAppBrowser$1, decorators: [{ type: Optional }] },
14733
- { type: Downloader$1, decorators: [{ type: Optional }] }
14752
+ { type: SplashScreen, decorators: [{ type: Optional }] },
14753
+ { type: InAppBrowser, decorators: [{ type: Optional }] },
14754
+ { type: Downloader, decorators: [{ type: Optional }] }
14734
14755
  ];
14735
14756
 
14736
14757
  class AppHelpModal {
@@ -14794,7 +14815,7 @@ class MatStepperI18n extends MatStepperIntl {
14794
14815
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
14795
14816
  }
14796
14817
  }
14797
- MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
14818
+ MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
14798
14819
  MatStepperI18n.decorators = [
14799
14820
  { type: Injectable, args: [{ providedIn: 'root' },] }
14800
14821
  ];
@@ -15786,7 +15807,7 @@ function state2side(state) {
15786
15807
  return 1;
15787
15808
  }
15788
15809
  }
15789
- const ɵ0$9 = (defaultStateSize) => [
15810
+ const ɵ0$1 = (defaultStateSize) => [
15790
15811
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
15791
15812
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
15792
15813
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -15794,7 +15815,7 @@ const ɵ0$9 = (defaultStateSize) => [
15794
15815
  const SCALE_OPTIONS_DEFAULT = {
15795
15816
  startColor: rgbArrayMap.red,
15796
15817
  startStates: [0, 2, 3],
15797
- startStepsFn: ɵ0$9
15818
+ startStepsFn: ɵ0$1
15798
15819
  };
15799
15820
  /**
15800
15821
  * Internal function, that create a colors scale, using iteration
@@ -15886,21 +15907,21 @@ function linearColorGradient(count, options) {
15886
15907
  return result;
15887
15908
  }
15888
15909
 
15889
- class EntityTestClass {
15910
+ class EntityTestClass$1 {
15890
15911
  }
15891
- const FAKE_ENTITIES = [
15912
+ const FAKE_ENTITIES$1 = [
15892
15913
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
15893
15914
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
15894
15915
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
15895
15916
  ];
15896
- function deepCopy(values, size) {
15917
+ function deepCopy$1(values, size) {
15897
15918
  if (isNil(size)) {
15898
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
15919
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
15899
15920
  }
15900
15921
  let result = [];
15901
15922
  let i = 1;
15902
15923
  while (result.length < size) {
15903
- result = result.concat((values || FAKE_ENTITIES).map(entity => {
15924
+ result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
15904
15925
  const name = entity.name + ' #' + i;
15905
15926
  return Object.assign(Object.assign({}, entity), { id: i++, name });
15906
15927
  }));
@@ -15910,7 +15931,7 @@ function deepCopy(values, size) {
15910
15931
  class AutocompleteTestPage {
15911
15932
  constructor(formBuilder) {
15912
15933
  this.formBuilder = formBuilder;
15913
- this._items = deepCopy(FAKE_ENTITIES, 100);
15934
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
15914
15935
  this.$items = new BehaviorSubject(undefined);
15915
15936
  this.autocompleteFields = new MatAutocompleteConfigHolder();
15916
15937
  this.memoryHide = false;
@@ -15954,7 +15975,7 @@ class AutocompleteTestPage {
15954
15975
  });
15955
15976
  // From items
15956
15977
  this.autocompleteFields.add('entity-items-large', {
15957
- items: FAKE_ENTITIES.slice(),
15978
+ items: FAKE_ENTITIES$1.slice(),
15958
15979
  attributes: ['label', 'name', 'description', 'comments'],
15959
15980
  displayWith: this.entityToString
15960
15981
  });
@@ -15964,12 +15985,12 @@ class AutocompleteTestPage {
15964
15985
  loadData() {
15965
15986
  return __awaiter(this, void 0, void 0, function* () {
15966
15987
  const data = {
15967
- entity: deepCopy(FAKE_ENTITIES)[0],
15988
+ entity: deepCopy$1(FAKE_ENTITIES$1)[0],
15968
15989
  // This item is NOT in the items list => i should be displayed anyway
15969
15990
  missingEntity: {
15970
15991
  id: -1, label: '??', name: 'Missing item'
15971
15992
  },
15972
- disableEntity: deepCopy(FAKE_ENTITIES)[2]
15993
+ disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
15973
15994
  };
15974
15995
  this.form.setValue(data);
15975
15996
  // Load observables
@@ -16142,13 +16163,13 @@ MaterialTestingPage.ctorParameters = () => [
16142
16163
  { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
16143
16164
  ];
16144
16165
 
16145
- const moment$5 = momentImported;
16166
+ const moment$1 = momentImported;
16146
16167
  class SwipeTestPage {
16147
16168
  constructor(formBuilder, dateFormatPipe) {
16148
16169
  this.formBuilder = formBuilder;
16149
16170
  this.dateFormatPipe = dateFormatPipe;
16150
16171
  this.$dates = new BehaviorSubject(undefined);
16151
- this._today = moment$5().startOf('day');
16172
+ this._today = moment$1().startOf('day');
16152
16173
  this.form = formBuilder.group({
16153
16174
  empty: [null, Validators.required],
16154
16175
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -16161,7 +16182,7 @@ class SwipeTestPage {
16161
16182
  ngOnInit() {
16162
16183
  const dates = [];
16163
16184
  for (let d = 0; d < 7; d++) {
16164
- dates[d] = moment$5(this._today).add(d - 3, 'day');
16185
+ dates[d] = moment$1(this._today).add(d - 3, 'day');
16165
16186
  }
16166
16187
  this.$dates.next(dates);
16167
16188
  this.loadData();
@@ -16202,7 +16223,7 @@ SwipeTestPage.ctorParameters = () => [
16202
16223
  { type: DateFormatPipe }
16203
16224
  ];
16204
16225
 
16205
- const moment$6 = momentImported;
16226
+ const moment = momentImported;
16206
16227
  class DateTimeTestPage {
16207
16228
  constructor(platform, formBuilder, cd) {
16208
16229
  this.platform = platform;
@@ -16234,7 +16255,7 @@ class DateTimeTestPage {
16234
16255
  // Load the form with data
16235
16256
  loadData() {
16236
16257
  return __awaiter(this, void 0, void 0, function* () {
16237
- const now = moment$6();
16258
+ const now = moment();
16238
16259
  const data = {
16239
16260
  empty: toDateISOString(now.clone().add(2, 'hours')),
16240
16261
  enable: toDateISOString(now),
@@ -16295,20 +16316,20 @@ DateTimeTestPage.ctorParameters = () => [
16295
16316
  { type: ChangeDetectorRef }
16296
16317
  ];
16297
16318
 
16298
- class EntityTestClass$1 {
16319
+ class EntityTestClass {
16299
16320
  }
16300
- const FAKE_ENTITIES$1 = [
16321
+ const FAKE_ENTITIES = [
16301
16322
  { id: 1, label: 'AAA', name: 'Item A' },
16302
16323
  { id: 2, label: 'BBB', name: 'Item B' },
16303
16324
  { id: 3, label: 'CCC', name: 'Item C' }
16304
16325
  ];
16305
- function deepCopy$1(values) {
16306
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
16326
+ function deepCopy(values) {
16327
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
16307
16328
  }
16308
16329
  class ChipsTestPage {
16309
16330
  constructor(formBuilder) {
16310
16331
  this.formBuilder = formBuilder;
16311
- this._items = deepCopy$1(FAKE_ENTITIES$1);
16332
+ this._items = deepCopy(FAKE_ENTITIES);
16312
16333
  this._$items = new BehaviorSubject(undefined);
16313
16334
  this.autocompleteFields = new MatAutocompleteConfigHolder();
16314
16335
  this.form = formBuilder.group({
@@ -16327,7 +16348,7 @@ class ChipsTestPage {
16327
16348
  });
16328
16349
  // From items
16329
16350
  this.autocompleteFields.add('entity-items', {
16330
- items: FAKE_ENTITIES$1.slice(),
16351
+ items: FAKE_ENTITIES.slice(),
16331
16352
  attributes: ['label', 'name'],
16332
16353
  displayWith: this.entityToString
16333
16354
  });
@@ -16348,15 +16369,15 @@ class ChipsTestPage {
16348
16369
  const data = {
16349
16370
  entity: [],
16350
16371
  // THis item is NOT in the items list => i should be displayed anyway
16351
- entityInitial: FAKE_ENTITIES$1.slice(1, 2),
16352
- disableEntity: FAKE_ENTITIES$1.slice(1, 2)
16372
+ entityInitial: FAKE_ENTITIES.slice(1, 2),
16373
+ disableEntity: FAKE_ENTITIES.slice(1, 2)
16353
16374
  };
16354
16375
  this.form.setValue(data);
16355
16376
  });
16356
16377
  }
16357
16378
  loadItems() {
16358
16379
  return __awaiter(this, void 0, void 0, function* () {
16359
- this._$items.next(deepCopy$1(FAKE_ENTITIES$1));
16380
+ this._$items.next(deepCopy(FAKE_ENTITIES));
16360
16381
  });
16361
16382
  }
16362
16383
  entityToString(item) {
@@ -16397,7 +16418,7 @@ MatBadgeIconTestPage.decorators = [
16397
16418
  },] }
16398
16419
  ];
16399
16420
 
16400
- const routes = [
16421
+ const routes$1 = [
16401
16422
  {
16402
16423
  path: '',
16403
16424
  pathMatch: 'full',
@@ -16449,7 +16470,7 @@ MaterialTestingModule.decorators = [
16449
16470
  ReactiveFormsModule,
16450
16471
  SharedMaterialModule,
16451
16472
  TranslateModule.forChild(),
16452
- RouterModule.forChild(routes)
16473
+ RouterModule.forChild(routes$1)
16453
16474
  ],
16454
16475
  declarations: [
16455
16476
  MaterialTestingPage,
@@ -17408,7 +17429,7 @@ class UserSettingsValidatorService extends AppValidatorService {
17408
17429
  });
17409
17430
  }
17410
17431
  }
17411
- UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
17432
+ UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
17412
17433
  UserSettingsValidatorService.decorators = [
17413
17434
  { type: Injectable, args: [{ providedIn: 'root' },] }
17414
17435
  ];
@@ -17452,7 +17473,7 @@ class AccountValidatorService extends AppValidatorService {
17452
17473
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
17453
17474
  }
17454
17475
  }
17455
- AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
17476
+ AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
17456
17477
  AccountValidatorService.decorators = [
17457
17478
  { type: Injectable, args: [{ providedIn: 'root' },] }
17458
17479
  ];
@@ -17671,6 +17692,7 @@ class FormButtonsBarComponent {
17671
17692
  this.onSave = new EventEmitter();
17672
17693
  this.onNext = new EventEmitter();
17673
17694
  this.onBack = new EventEmitter();
17695
+ // Ctrl+S
17674
17696
  this._subscription.add(hotkeys.addShortcut({ keys: 'control.s', description: 'COMMON.BTN_SAVE' })
17675
17697
  .pipe(filter(e => !this.disabled))
17676
17698
  .subscribe((event) => this.onSave.emit(event)));
@@ -17985,7 +18007,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
17985
18007
  });
17986
18008
  }
17987
18009
  }
17988
- LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
18010
+ LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
17989
18011
  LocalSettingsValidatorService.decorators = [
17990
18012
  { type: Injectable, args: [{ providedIn: 'root' },] }
17991
18013
  ];
@@ -18603,7 +18625,7 @@ class IsOnFieldModePipe {
18603
18625
  return value === 'FIELD';
18604
18626
  }
18605
18627
  }
18606
- IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18628
+ IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18607
18629
  IsOnFieldModePipe.decorators = [
18608
18630
  { type: Pipe, args: [{
18609
18631
  name: 'isOnField'
@@ -18615,7 +18637,7 @@ class IsNotOnFieldModePipe {
18615
18637
  return value !== 'FIELD';
18616
18638
  }
18617
18639
  }
18618
- IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18640
+ IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18619
18641
  IsNotOnFieldModePipe.decorators = [
18620
18642
  { type: Pipe, args: [{
18621
18643
  name: 'isNotOnField'
@@ -18630,7 +18652,7 @@ class PersonToStringPipe {
18630
18652
  return PersonUtils.personToString(value);
18631
18653
  }
18632
18654
  }
18633
- PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18655
+ PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18634
18656
  PersonToStringPipe.decorators = [
18635
18657
  { type: Pipe, args: [{
18636
18658
  name: 'personToString'
@@ -18976,7 +18998,7 @@ class IsLoginAccountPipe {
18976
18998
  return value && value.pubkey && true;
18977
18999
  }
18978
19000
  }
18979
- IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
19001
+ IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
18980
19002
  IsLoginAccountPipe.decorators = [
18981
19003
  { type: Pipe, args: [{
18982
19004
  name: 'isLogin'
@@ -18988,7 +19010,7 @@ class AccountToStringPipe {
18988
19010
  return accountToString(value);
18989
19011
  }
18990
19012
  }
18991
- AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
19013
+ AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
18992
19014
  AccountToStringPipe.decorators = [
18993
19015
  { type: Pipe, args: [{
18994
19016
  name: 'accountToString'
@@ -19003,7 +19025,7 @@ class DepartmentToStringPipe {
19003
19025
  return departmentToString(value);
19004
19026
  }
19005
19027
  }
19006
- DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
19028
+ DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
19007
19029
  DepartmentToStringPipe.decorators = [
19008
19030
  { type: Pipe, args: [{
19009
19031
  name: 'departmentToString'
@@ -19029,7 +19051,7 @@ class MenuService {
19029
19051
  this._visibleSubject.next(value);
19030
19052
  }
19031
19053
  }
19032
- MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
19054
+ MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
19033
19055
  MenuService.decorators = [
19034
19056
  { type: Injectable, args: [{
19035
19057
  providedIn: 'root'
@@ -19523,7 +19545,7 @@ class AuthGuardService {
19523
19545
  }));
19524
19546
  }
19525
19547
  }
19526
- AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
19548
+ AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(AccountService), i0.ɵɵinject(i1$4.ModalController), i0.ɵɵinject(i3$3.Router), i0.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
19527
19549
  AuthGuardService.decorators = [
19528
19550
  { type: Injectable, args: [{ providedIn: 'root' },] }
19529
19551
  ];
@@ -19571,7 +19593,7 @@ class BaseEntityService extends BaseGraphqlService {
19571
19593
  query,
19572
19594
  variables: { id },
19573
19595
  fetchPolicy: opts && opts.fetchPolicy || undefined,
19574
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19596
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19575
19597
  })
19576
19598
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
19577
19599
  ? (data && this.fromObject(data))
@@ -19586,7 +19608,7 @@ class BaseEntityService extends BaseGraphqlService {
19586
19608
  query,
19587
19609
  variables: { id },
19588
19610
  fetchPolicy: opts && opts.fetchPolicy || undefined,
19589
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19611
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19590
19612
  });
19591
19613
  // Convert to entity
19592
19614
  return (!opts || opts.toEntity !== false)
@@ -19617,7 +19639,7 @@ class BaseEntityService extends BaseGraphqlService {
19617
19639
  totalFieldName: withTotal ? 'total' : undefined,
19618
19640
  insertFilterFn: filter && filter.asFilterFn(),
19619
19641
  variables,
19620
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
19642
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
19621
19643
  fetchPolicy: opts && opts.fetchPolicy || undefined
19622
19644
  })
19623
19645
  .pipe(map(({ data, total }) => {
@@ -19653,7 +19675,7 @@ class BaseEntityService extends BaseGraphqlService {
19653
19675
  const { data, total } = yield this.graphql.query({
19654
19676
  query,
19655
19677
  variables,
19656
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
19678
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
19657
19679
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
19658
19680
  });
19659
19681
  const entities = (!opts || opts.toEntity !== false) ?
@@ -19692,7 +19714,7 @@ class BaseEntityService extends BaseGraphqlService {
19692
19714
  variables: {
19693
19715
  filter: filter && filter.asPodObject()
19694
19716
  },
19695
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
19717
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
19696
19718
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
19697
19719
  });
19698
19720
  return res.total;
@@ -19725,7 +19747,7 @@ class BaseEntityService extends BaseGraphqlService {
19725
19747
  variables: {
19726
19748
  data: json
19727
19749
  },
19728
- error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19750
+ error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19729
19751
  update: (proxy, { data }) => {
19730
19752
  const savedEntities = data && data.data;
19731
19753
  if (savedEntities) {
@@ -19781,7 +19803,7 @@ class BaseEntityService extends BaseGraphqlService {
19781
19803
  variables: {
19782
19804
  data: json
19783
19805
  },
19784
- error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19806
+ error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19785
19807
  update: (cache, { data }) => {
19786
19808
  // Update entity
19787
19809
  const savedEntity = data && data.data;
@@ -19829,7 +19851,7 @@ class BaseEntityService extends BaseGraphqlService {
19829
19851
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19830
19852
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19831
19853
  variables: { ids },
19832
- error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19854
+ error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19833
19855
  update: (cache, res) => {
19834
19856
  // Remove from cache
19835
19857
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19870,7 +19892,7 @@ class BaseEntityService extends BaseGraphqlService {
19870
19892
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19871
19893
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19872
19894
  variables: { id },
19873
- error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19895
+ error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19874
19896
  update: (proxy, res) => {
19875
19897
  // Remove from cache
19876
19898
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19903,7 +19925,7 @@ class BaseEntityService extends BaseGraphqlService {
19903
19925
  query: opts && opts.query || this.subscriptions.listenChanges,
19904
19926
  variables,
19905
19927
  error: {
19906
- code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
19928
+ code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
19907
19929
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
19908
19930
  }
19909
19931
  })
@@ -20078,7 +20100,7 @@ class EntitiesTableDataSource extends TableDataSource {
20078
20100
  if (this._debug)
20079
20101
  invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
20080
20102
  // Stop with an error
20081
- throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20103
+ throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20082
20104
  }
20083
20105
  this._editingRowCount = 0;
20084
20106
  let data;
@@ -20900,14 +20922,14 @@ class AppTable {
20900
20922
  return __awaiter(this, void 0, void 0, function* () {
20901
20923
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
20902
20924
  if (this.readOnly) {
20903
- throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20925
+ throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20904
20926
  }
20905
20927
  this.resetError();
20906
20928
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
20907
20929
  this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
20908
20930
  const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
20909
20931
  if (!this.confirmEditCreate()) {
20910
- throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20932
+ throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20911
20933
  }
20912
20934
  // Mark as saving
20913
20935
  this.markAsSaving();
@@ -21023,7 +21045,7 @@ class AppTable {
21023
21045
  deleteRows(event, rows, opts) {
21024
21046
  return __awaiter(this, void 0, void 0, function* () {
21025
21047
  if (this.readOnly) {
21026
- throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
21048
+ throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
21027
21049
  }
21028
21050
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
21029
21051
  return 0; // SKip
@@ -22434,7 +22456,7 @@ class AppEntityEditor extends AppTabEditor {
22434
22456
  try {
22435
22457
  const data = yield this.dataService.load(id, opts);
22436
22458
  if (!data)
22437
- throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
22459
+ throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
22438
22460
  this._usageMode = this.computeUsageMode(data);
22439
22461
  yield this.onEntityLoaded(data, opts);
22440
22462
  yield this.updateView(data, opts);
@@ -23338,7 +23360,7 @@ class UserEventService extends BaseGraphqlService {
23338
23360
  EntityUtils.copyIdAndUpdateDate(source, target);
23339
23361
  }
23340
23362
  }
23341
- UserEventService.ɵprov = ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(ɵɵinject(GraphqlService), ɵɵinject(AccountService), ɵɵinject(NetworkService), ɵɵinject(TranslateService), ɵɵinject(ToastController), ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
23363
+ UserEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(AccountService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
23342
23364
  UserEventService.decorators = [
23343
23365
  { type: Injectable, args: [{ providedIn: 'root' },] }
23344
23366
  ];
@@ -23723,7 +23745,7 @@ class PersonService extends BaseEntityService {
23723
23745
  return target;
23724
23746
  }
23725
23747
  }
23726
- PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
23748
+ PersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(PlatformService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
23727
23749
  PersonService.decorators = [
23728
23750
  { type: Injectable, args: [{ providedIn: 'root' },] }
23729
23751
  ];
@@ -23754,7 +23776,7 @@ class PersonValidatorService {
23754
23776
  return this.formBuilder.group(formConfig);
23755
23777
  }
23756
23778
  }
23757
- PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23779
+ PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23758
23780
  PersonValidatorService.decorators = [
23759
23781
  { type: Injectable, args: [{ providedIn: 'root' },] }
23760
23782
  ];
@@ -23960,16 +23982,16 @@ AdminModule.decorators = [
23960
23982
  ];
23961
23983
  AdminModule.ctorParameters = () => [];
23962
23984
 
23963
- const ɵ0$a = {
23985
+ const ɵ0 = {
23964
23986
  profile: 'ADMIN'
23965
23987
  };
23966
- const routes$1 = [
23988
+ const routes = [
23967
23989
  {
23968
23990
  path: 'users',
23969
23991
  pathMatch: 'full',
23970
23992
  component: UsersPage,
23971
23993
  canActivate: [AuthGuardService],
23972
- data: ɵ0$a
23994
+ data: ɵ0
23973
23995
  }
23974
23996
  ];
23975
23997
  class AdminRoutingModule {
@@ -23979,13 +24001,13 @@ AdminRoutingModule.decorators = [
23979
24001
  imports: [
23980
24002
  SharedRoutingModule,
23981
24003
  AdminModule,
23982
- RouterModule.forChild(routes$1)
24004
+ RouterModule.forChild(routes)
23983
24005
  ],
23984
24006
  exports: [RouterModule]
23985
24007
  },] }
23986
24008
  ];
23987
24009
 
23988
- const ErrorCodes$2 = {
24010
+ const ErrorCodes = {
23989
24011
  LOAD_PERSONS_ERROR: 100,
23990
24012
  SAVE_PERSONS_ERROR: 101,
23991
24013
  DELETE_PERSONS_ERROR: 102,
@@ -23997,5 +24019,5 @@ const ErrorCodes$2 = {
23997
24019
  * Generated bundle index. Do not edit.
23998
24020
  */
23999
24021
 
24000
- export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitIdle, waitWhilePending, ɵ0$5 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, RegisterForm as ɵg, AccountValidatorService as ɵh, RegisterModal as ɵi, UserSettingsValidatorService as ɵj, LocalSettingsValidatorService as ɵk };
24022
+ export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitIdle, waitWhilePending, ɵ0$5 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, RegisterForm as ɵg, AccountValidatorService as ɵh, RegisterModal as ɵi, UserSettingsValidatorService as ɵj, LocalSettingsValidatorService as ɵk };
24001
24023
  //# sourceMappingURL=sumaris-net.ngx-components.js.map