@sumaris-net/ngx-components 1.11.13 → 1.12.1

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,12 +1,9 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
3
- import * as i1$3 from '@angular/common';
1
+ import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
4
2
  import { CommonModule, DOCUMENT, Location } from '@angular/common';
5
3
  import { CdkTableModule } from '@angular/cdk/table';
6
4
  import { A11yModule } from '@angular/cdk/a11y';
7
5
  import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
8
6
  import { ScrollingModule } from '@angular/cdk/scrolling';
9
- import * as i1$2 from '@angular/material/core';
10
7
  import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
11
8
  import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
12
9
  import { MatSortModule, MatSort } from '@angular/material/sort';
@@ -30,21 +27,16 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
30
27
  import { MatRadioModule } from '@angular/material/radio';
31
28
  import { MatBadgeModule } from '@angular/material/badge';
32
29
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
33
- import * as i2$1 from '@angular/material/dialog';
34
30
  import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
35
31
  import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
36
32
  import { __awaiter, __decorate } from 'tslib';
37
- import * as i1$6 from '@angular/forms';
38
33
  import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
39
34
  import { timer, merge, fromEvent, BehaviorSubject, Subscription, Subject, isObservable, noop as noop$9, Observable, defer, of, from, forkJoin, combineLatest, EMPTY } from 'rxjs';
40
35
  import { filter, first, map, takeUntil, switchMap, startWith, debounceTime, takeWhile, tap, distinctUntilChanged, mergeMap, catchError, throttleTime, skip } from 'rxjs/operators';
41
- import * as i1$1 from '@ngx-translate/core';
42
36
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
43
- import * as i1$4 from '@ionic/angular';
44
37
  import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, PopoverController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent, IonInfiniteScroll } from '@ionic/angular';
45
38
  import * as momentImported from 'moment';
46
39
  import { isMoment } from 'moment';
47
- import * as i1 from '@angular/material-moment-adapter';
48
40
  import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
49
41
  import { Keyboard } from '@ionic-native/keyboard/ngx';
50
42
  import { TextMaskModule } from 'angular2-text-mask';
@@ -54,38 +46,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
54
46
  import { MatDividerModule } from '@angular/material/divider';
55
47
  import { MatTooltipModule } from '@angular/material/tooltip';
56
48
  import { MatChipsModule } from '@angular/material/chips';
57
- import * as i3$3 from '@angular/router';
58
49
  import { Router, ActivatedRoute, RouterModule, RouteReuseStrategy } from '@angular/router';
59
- import * as i1$5 from '@angular/platform-browser';
60
50
  import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
61
- import * as i2$2 from '@angular/common/http';
62
51
  import { HttpResponse, HttpClient, HttpHeaders, HttpEventType, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
63
52
  import { ColorPickerModule } from 'ngx-color-picker';
64
- import { NativeAudio } from '@ionic-native/native-audio/ngx';
65
- import { Vibration } from '@ionic-native/vibration/ngx';
53
+ import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
54
+ import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
66
55
  import { AudioManagement } from '@ionic-native/audio-management/ngx';
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';
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';
70
59
  import * as uuidv4Imported from 'uuid/v4';
71
60
  import { DragDropModule } from '@angular/cdk/drag-drop';
72
61
  import { MarkdownModule } from 'ngx-markdown';
73
62
  import { sign, box, hash, verify } from 'tweetnacl';
74
- import * as i3$1 from '@ionic/storage';
75
63
  import { Storage, IonicStorageModule } from '@ionic/storage';
76
64
  import 'zone.js/dist/zone-error';
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';
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';
85
72
  import { Platform as Platform$1 } from '@angular/cdk/platform';
86
- import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
73
+ import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
87
74
  import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
88
- import * as i2$3 from 'apollo-angular';
89
75
  import { Apollo } from 'apollo-angular';
90
76
  import { WebSocketLink } from '@apollo/client/link/ws';
91
77
  import { getMainDefinition } from '@apollo/client/utilities';
@@ -93,14 +79,13 @@ import { RetryLink } from '@apollo/client/link/retry';
93
79
  import QueueLink from 'apollo-link-queue';
94
80
  import SerializingLink from 'apollo-link-serialize';
95
81
  import loggerLink from 'apollo-link-logger';
96
- import * as i3$2 from 'apollo-angular/http';
97
82
  import { HttpLink } from 'apollo-angular/http';
98
83
  import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
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';
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';
104
89
  import { CdkTextareaAutosize } from '@angular/cdk/text-field';
105
90
  import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
106
91
  import { SelectionModel } from '@angular/cdk/collections';
@@ -992,14 +977,14 @@ class MatAutocompleteConfigHolder {
992
977
  return this.fields[fieldName] || this.add(fieldName);
993
978
  }
994
979
  }
995
- const noop$8 = (_) => { };
996
- const ɵ0$c = noop$8;
980
+ const noop = (_) => { };
981
+ const ɵ0 = noop;
997
982
  class MatAutocompleteField {
998
983
  constructor(cd, formGroupDir) {
999
984
  this.cd = cd;
1000
985
  this.formGroupDir = formGroupDir;
1001
- this._onChangeCallback = noop$8;
1002
- this._onTouchedCallback = noop$8;
986
+ this._onChangeCallback = noop;
987
+ this._onTouchedCallback = noop;
1003
988
  this.logPrefix = '[mat-autocomplete] ';
1004
989
  this.formControlName = null;
1005
990
  this.required = false;
@@ -1637,7 +1622,7 @@ MatAutocompleteField.decorators = [
1637
1622
  { type: Component, args: [{
1638
1623
  // eslint-disable-next-line @angular-eslint/component-selector
1639
1624
  selector: 'mat-autocomplete-field',
1640
- template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <!-- readonly -->\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 <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\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)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n [compareWith]=\"equals\"\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)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\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><i>{{noResultMessage | translate}}</i></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</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)=\"dropButtonClick.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",
1625
+ template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <!-- readonly -->\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 <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\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)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n [compareWith]=\"equals\"\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\" [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\n <ion-row class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text *ngIf=\"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 </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)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\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\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\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><i>{{noResultMessage | translate}}</i></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\n <ion-row class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text *ngIf=\"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 </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</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)=\"dropButtonClick.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",
1641
1626
  providers: [{
1642
1627
  provide: NG_VALUE_ACCESSOR,
1643
1628
  multi: true,
@@ -1719,7 +1704,7 @@ class DateFormatPipe {
1719
1704
  return this.dateAdapter.format(date, displayFormat);
1720
1705
  }
1721
1706
  }
1722
- DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1707
+ DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1723
1708
  DateFormatPipe.decorators = [
1724
1709
  { type: Pipe, args: [{
1725
1710
  name: 'dateFormat'
@@ -1731,7 +1716,7 @@ DateFormatPipe.ctorParameters = () => [
1731
1716
  { type: TranslateService }
1732
1717
  ];
1733
1718
 
1734
- const moment$6 = momentImported;
1719
+ const moment = momentImported;
1735
1720
  class DateDiffDurationPipe {
1736
1721
  constructor(dateAdapter, translate) {
1737
1722
  this.dateAdapter = dateAdapter;
@@ -1747,17 +1732,17 @@ class DateDiffDurationPipe {
1747
1732
  return this.format(startDate, endDate);
1748
1733
  }
1749
1734
  format(startDate, endDate) {
1750
- const duration = moment$6.duration(endDate.diff(startDate));
1735
+ const duration = moment.duration(endDate.diff(startDate));
1751
1736
  if (duration.asMinutes() < 0)
1752
1737
  return '';
1753
- const timeDuration = moment$6(0)
1738
+ const timeDuration = moment(0)
1754
1739
  .hour(duration.hours())
1755
1740
  .minute(duration.minutes());
1756
1741
  const days = Math.floor(duration.asDays());
1757
1742
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
1758
1743
  }
1759
1744
  }
1760
- 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" });
1745
+ DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
1761
1746
  DateDiffDurationPipe.decorators = [
1762
1747
  { type: Pipe, args: [{
1763
1748
  name: 'dateDiffDuration'
@@ -1778,7 +1763,7 @@ class DateFromNowPipe {
1778
1763
  return date ? date.fromNow(args && args.withoutSuffix) : '';
1779
1764
  }
1780
1765
  }
1781
- DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1766
+ DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1782
1767
  DateFromNowPipe.decorators = [
1783
1768
  { type: Pipe, args: [{
1784
1769
  name: 'dateFromNow'
@@ -1847,7 +1832,7 @@ function formatToDD(value, opts) {
1847
1832
  value *= -1;
1848
1833
  }
1849
1834
  }
1850
- let degrees = roundFloat$1(value, opts.maxDecimals).toString();
1835
+ let degrees = roundFloat(value, opts.maxDecimals).toString();
1851
1836
  // Add sign
1852
1837
  let sign = negative ? '-' : '+';
1853
1838
  if (opts.placeholderChar) {
@@ -1898,7 +1883,7 @@ function formatToDDMMSS(value, opts) {
1898
1883
  }
1899
1884
  let degrees = Math.trunc(value);
1900
1885
  let minutes = Math.trunc((value - degrees) * 60);
1901
- let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1886
+ let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1902
1887
  while (seconds >= 60) {
1903
1888
  seconds -= 60;
1904
1889
  minutes += 1;
@@ -1966,7 +1951,7 @@ function formatToDDMM(value, opts) {
1966
1951
  }
1967
1952
  }
1968
1953
  let degrees = Math.trunc(value);
1969
- let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
1954
+ let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
1970
1955
  while (minutes >= 60) {
1971
1956
  minutes -= 60;
1972
1957
  degrees += 1;
@@ -2017,15 +2002,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
2017
2002
  return NaN;
2018
2003
  }
2019
2004
  if (pattern === 'DD')
2020
- return roundFloat$1(degrees, maxDecimals);
2005
+ return roundFloat(degrees, maxDecimals);
2021
2006
  const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
2022
2007
  const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
2023
2008
  const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
2024
2009
  const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
2025
2010
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
2026
- return roundFloat$1(degrees, maxDecimals);
2011
+ return roundFloat(degrees, maxDecimals);
2027
2012
  }
2028
- function roundFloat$1(input, maxDecimals) {
2013
+ function roundFloat(input, maxDecimals) {
2029
2014
  if (maxDecimals > 0) {
2030
2015
  const powDecimal = Math.pow(10, maxDecimals);
2031
2016
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -2045,7 +2030,7 @@ class LatLongFormatPipe {
2045
2030
  return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
2046
2031
  }
2047
2032
  }
2048
- LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2033
+ LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2049
2034
  LatLongFormatPipe.decorators = [
2050
2035
  { type: Pipe, args: [{
2051
2036
  name: 'latLongFormat'
@@ -2057,7 +2042,7 @@ class LatitudeFormatPipe {
2057
2042
  this.transform = formatLatitude;
2058
2043
  }
2059
2044
  }
2060
- LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2045
+ LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2061
2046
  LatitudeFormatPipe.decorators = [
2062
2047
  { type: Pipe, args: [{
2063
2048
  name: 'latitudeFormat'
@@ -2069,7 +2054,7 @@ class LongitudeFormatPipe {
2069
2054
  this.transform = formatLongitude;
2070
2055
  }
2071
2056
  }
2072
- LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2057
+ LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2073
2058
  LongitudeFormatPipe.decorators = [
2074
2059
  { type: Pipe, args: [{
2075
2060
  name: 'longitudeFormat'
@@ -2089,7 +2074,7 @@ class NumberFormatPipe {
2089
2074
  }
2090
2075
  }
2091
2076
  }
2092
- NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2077
+ NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2093
2078
  NumberFormatPipe.decorators = [
2094
2079
  { type: Pipe, args: [{
2095
2080
  name: 'numberFormat'
@@ -2129,7 +2114,7 @@ class HighlightPipe {
2129
2114
  }
2130
2115
  }
2131
2116
  }
2132
- HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2117
+ HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2133
2118
  HighlightPipe.decorators = [
2134
2119
  { type: Pipe, args: [{
2135
2120
  name: 'highlight'
@@ -2194,7 +2179,7 @@ FileSizePipe.decorators = [
2194
2179
  { type: Pipe, args: [{ name: 'fileSize' },] }
2195
2180
  ];
2196
2181
 
2197
- const moment$5 = momentImported;
2182
+ const moment$1 = momentImported;
2198
2183
  const DATE_UNIX_TIMESTAMP = 'X';
2199
2184
  const DATE_UNIX_MS_TIMESTAMP = 'x';
2200
2185
  class DateUtils {
@@ -2236,32 +2221,32 @@ function fromDateISOString(value) {
2236
2221
  if (!value || isMoment(value))
2237
2222
  return value;
2238
2223
  // Parse the input value, as a ISO date time
2239
- const date = moment$5(value, DATE_ISO_PATTERN);
2224
+ const date = moment$1(value, DATE_ISO_PATTERN);
2240
2225
  if (date.isValid())
2241
2226
  return date;
2242
2227
  // Not valid: trying to convert from unix timestamp
2243
2228
  if (typeof value === 'string') {
2244
2229
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2245
2230
  if (value.length === 10) {
2246
- return moment$5(value, DATE_UNIX_TIMESTAMP);
2231
+ return moment$1(value, DATE_UNIX_TIMESTAMP);
2247
2232
  }
2248
2233
  else if (value.length === 13) {
2249
- return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
2234
+ return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2250
2235
  }
2251
2236
  }
2252
2237
  console.warn('Unable to parse date: ' + value);
2253
2238
  return undefined;
2254
2239
  }
2255
2240
  function fromUnixTimestamp(timeInSec) {
2256
- return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
2241
+ return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2257
2242
  }
2258
2243
  function fromUnixMsTimestamp(timeInMs) {
2259
- return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2244
+ return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2260
2245
  }
2261
2246
  function toDuration(value, unit) {
2262
2247
  if (!value)
2263
2248
  return undefined;
2264
- const duration = moment$5.duration(value, unit);
2249
+ const duration = moment$1.duration(value, unit);
2265
2250
  // fix 990+ ms
2266
2251
  if (duration.milliseconds() >= 990) {
2267
2252
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2290,7 +2275,7 @@ class DurationPipe {
2290
2275
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
2291
2276
  }
2292
2277
  }
2293
- DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2278
+ DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
2294
2279
  DurationPipe.decorators = [
2295
2280
  { type: Pipe, args: [{
2296
2281
  name: 'duration'
@@ -2311,7 +2296,7 @@ class MathAbsPipe {
2311
2296
  }
2312
2297
  }
2313
2298
  }
2314
- MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2299
+ MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2315
2300
  MathAbsPipe.decorators = [
2316
2301
  { type: Pipe, args: [{
2317
2302
  name: 'mathAbs'
@@ -2323,7 +2308,7 @@ class EvenPipe {
2323
2308
  return val % 2 === 0;
2324
2309
  }
2325
2310
  }
2326
- EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2311
+ EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2327
2312
  EvenPipe.decorators = [
2328
2313
  { type: Pipe, args: [{
2329
2314
  name: 'even'
@@ -2335,7 +2320,7 @@ class OddPipe {
2335
2320
  return val % 2 !== 0;
2336
2321
  }
2337
2322
  }
2338
- OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2323
+ OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2339
2324
  OddPipe.decorators = [
2340
2325
  { type: Pipe, args: [{
2341
2326
  name: 'odd'
@@ -2443,7 +2428,7 @@ class MapGetPipe {
2443
2428
  return val[key];
2444
2429
  }
2445
2430
  }
2446
- MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2431
+ MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2447
2432
  MapGetPipe.decorators = [
2448
2433
  { type: Pipe, args: [{
2449
2434
  name: 'mapGet'
@@ -2457,7 +2442,7 @@ class MapKeysPipe {
2457
2442
  return Object.keys(map);
2458
2443
  }
2459
2444
  }
2460
- MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2445
+ MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2461
2446
  MapKeysPipe.decorators = [
2462
2447
  { type: Pipe, args: [{
2463
2448
  name: 'mapKeys'
@@ -2471,7 +2456,7 @@ class MapValuesPipe {
2471
2456
  return Object.values(map);
2472
2457
  }
2473
2458
  }
2474
- MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2459
+ MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2475
2460
  MapValuesPipe.decorators = [
2476
2461
  { type: Pipe, args: [{
2477
2462
  name: 'mapValues'
@@ -2484,7 +2469,7 @@ class IsNotNilOrBlankPipe {
2484
2469
  return isNotNilOrBlank(value);
2485
2470
  }
2486
2471
  }
2487
- IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2472
+ IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2488
2473
  IsNotNilOrBlankPipe.decorators = [
2489
2474
  { type: Pipe, args: [{
2490
2475
  name: 'isNotNilOrBlank'
@@ -2496,7 +2481,7 @@ class IsNilOrBlankPipe {
2496
2481
  return isNilOrBlank(value);
2497
2482
  }
2498
2483
  }
2499
- IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2484
+ IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2500
2485
  IsNilOrBlankPipe.decorators = [
2501
2486
  { type: Pipe, args: [{
2502
2487
  name: 'isNilOrBlank'
@@ -2508,7 +2493,7 @@ class ToStringPipe {
2508
2493
  return (value !== null && value !== undefined) ? value.toString() : '';
2509
2494
  }
2510
2495
  }
2511
- ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2496
+ ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2512
2497
  ToStringPipe.decorators = [
2513
2498
  { type: Pipe, args: [{
2514
2499
  name: 'toString'
@@ -2520,7 +2505,7 @@ class StrLengthPipe {
2520
2505
  return value && value.length || 0;
2521
2506
  }
2522
2507
  }
2523
- StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2508
+ StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2524
2509
  StrLengthPipe.decorators = [
2525
2510
  { type: Pipe, args: [{
2526
2511
  name: 'strLength'
@@ -2597,7 +2582,7 @@ class TranslateContextService {
2597
2582
  return translations[keys[keys.length - 1]]; // Return the last keys translation
2598
2583
  }
2599
2584
  }
2600
- TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2585
+ TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2601
2586
  TranslateContextService.decorators = [
2602
2587
  { type: Injectable, args: [{ providedIn: 'root' },] }
2603
2588
  ];
@@ -2647,7 +2632,7 @@ class PropertyGetPipe {
2647
2632
  args && args.defaultValue);
2648
2633
  }
2649
2634
  }
2650
- PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2635
+ PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2651
2636
  PropertyGetPipe.decorators = [
2652
2637
  { type: Pipe, args: [{
2653
2638
  name: 'propertyGet'
@@ -2672,7 +2657,7 @@ NgInitDirective.propDecorators = {
2672
2657
  ngInit: [{ type: Output }]
2673
2658
  };
2674
2659
 
2675
- const moment$4 = momentImported;
2660
+ const moment$2 = momentImported;
2676
2661
  // @dynamic
2677
2662
  class SharedValidators {
2678
2663
  static getDoubleRegexp(maxDecimals) {
@@ -2689,7 +2674,7 @@ class SharedValidators {
2689
2674
  }
2690
2675
  static validDate(control) {
2691
2676
  const value = control.value;
2692
- const date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
2677
+ const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
2693
2678
  if (date && (!date.isValid() || date.year() < 1970)) {
2694
2679
  return { validDate: true };
2695
2680
  }
@@ -3764,7 +3749,7 @@ class FormErrorTranslator {
3764
3749
  return errorKey;
3765
3750
  }
3766
3751
  }
3767
- 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" });
3752
+ FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
3768
3753
  FormErrorTranslator.decorators = [
3769
3754
  { type: Injectable, args: [{ providedIn: 'root' },] }
3770
3755
  ];
@@ -3950,7 +3935,7 @@ const isIpad = (win) => {
3950
3935
  }
3951
3936
  return false;
3952
3937
  };
3953
- const ɵ0$b = isIpad;
3938
+ const ɵ0$1 = isIpad;
3954
3939
  const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
3955
3940
  const isAndroid = (win) => testUserAgent(win, /android|sink/i);
3956
3941
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
@@ -4185,9 +4170,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
4185
4170
  const hour = parseInt(durationParts[0] || '0');
4186
4171
  const minute = parseInt(durationParts[1] || '0');
4187
4172
  const value = hour + (minute + 0.5) / 60;
4188
- return roundFloat(value, maxDecimals);
4173
+ return roundFloat$1(value, maxDecimals);
4189
4174
  }
4190
- function roundFloat(input, maxDecimals) {
4175
+ function roundFloat$1(input, maxDecimals) {
4191
4176
  if (maxDecimals > 0) {
4192
4177
  const powDecimal = Math.pow(10, maxDecimals);
4193
4178
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -4211,9 +4196,9 @@ const MASKS = {
4211
4196
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
4212
4197
  }
4213
4198
  };
4214
- const noop$7 = () => {
4199
+ const noop$1 = () => {
4215
4200
  };
4216
- const ɵ0$a = noop$7;
4201
+ const ɵ0$2 = noop$1;
4217
4202
  class MatLatLongField {
4218
4203
  constructor(platform, translate, formBuilder, cd, formGroupDir) {
4219
4204
  this.platform = platform;
@@ -4221,8 +4206,8 @@ class MatLatLongField {
4221
4206
  this.formBuilder = formBuilder;
4222
4207
  this.cd = cd;
4223
4208
  this.formGroupDir = formGroupDir;
4224
- this._onChangeCallback = noop$7;
4225
- this._onTouchedCallback = noop$7;
4209
+ this._onChangeCallback = noop$1;
4210
+ this._onTouchedCallback = noop$1;
4226
4211
  this._subscription = new Subscription();
4227
4212
  this.disabling = false;
4228
4213
  this.writing = false;
@@ -4559,14 +4544,14 @@ SharedMatLatLongModule.decorators = [
4559
4544
  },] }
4560
4545
  ];
4561
4546
 
4562
- const DEFAULT_VALUE_ACCESSOR$5 = {
4547
+ const DEFAULT_VALUE_ACCESSOR = {
4563
4548
  provide: NG_VALUE_ACCESSOR,
4564
4549
  useExisting: forwardRef(() => MatDate),
4565
4550
  multi: true
4566
4551
  };
4567
- const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4568
- const noop$6 = () => { };
4569
- const ɵ0$9 = noop$6;
4552
+ const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4553
+ const noop$2 = () => { };
4554
+ const ɵ0$3 = noop$2;
4570
4555
  class MatDate {
4571
4556
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4572
4557
  this.dateAdapter = dateAdapter;
@@ -4575,12 +4560,12 @@ class MatDate {
4575
4560
  this.cd = cd;
4576
4561
  this.keyboard = keyboard;
4577
4562
  this.formGroupDir = formGroupDir;
4578
- this._onChangeCallback = noop$6;
4579
- this._onTouchedCallback = noop$6;
4563
+ this._onChangeCallback = noop$2;
4564
+ this._onTouchedCallback = noop$2;
4580
4565
  this._subscription = new Subscription();
4581
4566
  this.writing = true;
4582
4567
  this.disabling = false;
4583
- this.dayMask = DAY_MASK$2;
4568
+ this.dayMask = DAY_MASK;
4584
4569
  this.disabled = false;
4585
4570
  this.floatLabel = 'auto';
4586
4571
  this.readonly = false;
@@ -4817,7 +4802,7 @@ MatDate.decorators = [
4817
4802
  selector: 'mat-date-field',
4818
4803
  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",
4819
4804
  providers: [
4820
- DEFAULT_VALUE_ACCESSOR$5,
4805
+ DEFAULT_VALUE_ACCESSOR,
4821
4806
  ],
4822
4807
  changeDetection: ChangeDetectionStrategy.OnPush,
4823
4808
  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%}"]
@@ -4850,17 +4835,17 @@ MatDate.propDecorators = {
4850
4835
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
4851
4836
  };
4852
4837
 
4853
- const DEFAULT_VALUE_ACCESSOR$4 = {
4838
+ const DEFAULT_VALUE_ACCESSOR$1 = {
4854
4839
  provide: NG_VALUE_ACCESSOR,
4855
4840
  useExisting: forwardRef(() => MatDateTime),
4856
4841
  multi: true
4857
4842
  };
4858
4843
  const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4859
4844
  const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
4860
- const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4861
- const noop$5 = () => {
4845
+ const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4846
+ const noop$3 = () => {
4862
4847
  };
4863
- const ɵ0$8 = noop$5;
4848
+ const ɵ0$4 = noop$3;
4864
4849
  class MatDateTime {
4865
4850
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4866
4851
  this.platform = platform;
@@ -4870,14 +4855,14 @@ class MatDateTime {
4870
4855
  this.cd = cd;
4871
4856
  this.keyboard = keyboard;
4872
4857
  this.formGroupDir = formGroupDir;
4873
- this._onChangeCallback = noop$5;
4874
- this._onTouchedCallback = noop$5;
4858
+ this._onChangeCallback = noop$3;
4859
+ this._onTouchedCallback = noop$3;
4875
4860
  this._subscription = new Subscription();
4876
4861
  this.writing = true;
4877
4862
  this.disabling = false;
4878
4863
  this._readonly = false;
4879
4864
  this.dayMask = DAY_MASK$1;
4880
- this.hourMask = HOUR_MASK$1;
4865
+ this.hourMask = HOUR_MASK;
4881
4866
  this.floatLabel = 'auto';
4882
4867
  this.compact = false;
4883
4868
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -5189,7 +5174,7 @@ MatDateTime.decorators = [
5189
5174
  selector: 'mat-date-time-field',
5190
5175
  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",
5191
5176
  providers: [
5192
- DEFAULT_VALUE_ACCESSOR$4,
5177
+ DEFAULT_VALUE_ACCESSOR$1,
5193
5178
  ],
5194
5179
  changeDetection: ChangeDetectionStrategy.OnPush,
5195
5180
  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%}"]
@@ -5223,15 +5208,15 @@ MatDateTime.propDecorators = {
5223
5208
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
5224
5209
  };
5225
5210
 
5226
- const DEFAULT_VALUE_ACCESSOR$3 = {
5211
+ const DEFAULT_VALUE_ACCESSOR$2 = {
5227
5212
  provide: NG_VALUE_ACCESSOR,
5228
5213
  useExisting: forwardRef(() => MatDateShort),
5229
5214
  multi: true
5230
5215
  };
5231
- const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
5216
+ const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
5232
5217
  const noop$4 = () => {
5233
5218
  };
5234
- const ɵ0$7 = noop$4;
5219
+ const ɵ0$5 = noop$4;
5235
5220
  class MatDateShort {
5236
5221
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5237
5222
  this.dateAdapter = dateAdapter;
@@ -5244,7 +5229,7 @@ class MatDateShort {
5244
5229
  this._onTouchedCallback = noop$4;
5245
5230
  this.writing = true;
5246
5231
  this.disabling = false;
5247
- this.dayMask = DAY_MASK;
5232
+ this.dayMask = DAY_MASK$2;
5248
5233
  this.disabled = false;
5249
5234
  this.floatLabel = 'auto';
5250
5235
  this.readonly = false;
@@ -5489,7 +5474,7 @@ MatDateShort.decorators = [
5489
5474
  selector: 'mat-date-short-field',
5490
5475
  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_YEAR_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker1)\"\n (keyup.escape)=\"preventEvent($event)\"\n (click)=\"matInput.select()\"\n [required]=\"required\"\n [tabindex]=\"tabindex\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker1)\"\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]=\"datePicker1\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker1)\"\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 <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n\n <mat-datepicker #datePicker1\n startView=\"multi-year\"\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n (yearSelected)=\"closeDatePicker($event, datePicker1)\"\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",
5491
5476
  providers: [
5492
- DEFAULT_VALUE_ACCESSOR$3,
5477
+ DEFAULT_VALUE_ACCESSOR$2,
5493
5478
  ],
5494
5479
  changeDetection: ChangeDetectionStrategy.OnPush,
5495
5480
  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%}"]
@@ -5557,16 +5542,16 @@ SharedMatDateTimeModule.decorators = [
5557
5542
  },] }
5558
5543
  ];
5559
5544
 
5560
- const DEFAULT_VALUE_ACCESSOR$2 = {
5545
+ const DEFAULT_VALUE_ACCESSOR$3 = {
5561
5546
  provide: NG_VALUE_ACCESSOR,
5562
5547
  useExisting: forwardRef(() => MatDuration),
5563
5548
  multi: true
5564
5549
  };
5565
5550
  const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
5566
- const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5567
- const noop$3 = () => {
5551
+ const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5552
+ const noop$5 = () => {
5568
5553
  };
5569
- const ɵ0$6 = noop$3;
5554
+ const ɵ0$6 = noop$5;
5570
5555
  class MatDuration {
5571
5556
  constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
5572
5557
  this.dateAdapter = dateAdapter;
@@ -5575,11 +5560,11 @@ class MatDuration {
5575
5560
  this.cd = cd;
5576
5561
  this.formGroupDir = formGroupDir;
5577
5562
  this._subscription = new Subscription();
5578
- this._onChangeCallback = noop$3;
5579
- this._onTouchedCallback = noop$3;
5563
+ this._onChangeCallback = noop$5;
5564
+ this._onTouchedCallback = noop$5;
5580
5565
  this.writing = true;
5581
5566
  this.disabling = false;
5582
- this.hourMask = HOUR_MASK;
5567
+ this.hourMask = HOUR_MASK$1;
5583
5568
  this.disabled = false;
5584
5569
  this.floatLabel = 'auto';
5585
5570
  this.readonly = false;
@@ -5759,7 +5744,7 @@ MatDuration.decorators = [
5759
5744
  selector: 'mat-duration-field',
5760
5745
  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",
5761
5746
  providers: [
5762
- DEFAULT_VALUE_ACCESSOR$2,
5747
+ DEFAULT_VALUE_ACCESSOR$3,
5763
5748
  ],
5764
5749
  changeDetection: ChangeDetectionStrategy.OnPush,
5765
5750
  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%}"]
@@ -5816,22 +5801,22 @@ SharedMatDurationModule.decorators = [
5816
5801
  },] }
5817
5802
  ];
5818
5803
 
5819
- const DEFAULT_VALUE_ACCESSOR$1 = {
5804
+ const DEFAULT_VALUE_ACCESSOR$4 = {
5820
5805
  provide: NG_VALUE_ACCESSOR,
5821
5806
  useExisting: forwardRef(() => MatBooleanField),
5822
5807
  multi: true
5823
5808
  };
5824
- const noop$2 = () => {
5809
+ const noop$6 = () => {
5825
5810
  };
5826
- const ɵ0$5 = noop$2;
5811
+ const ɵ0$7 = noop$6;
5827
5812
  class MatBooleanField {
5828
5813
  constructor(translate, formBuilder, cd, formGroupDir) {
5829
5814
  this.translate = translate;
5830
5815
  this.formBuilder = formBuilder;
5831
5816
  this.cd = cd;
5832
5817
  this.formGroupDir = formGroupDir;
5833
- this._onChangeCallback = noop$2;
5834
- this._onTouchedCallback = noop$2;
5818
+ this._onChangeCallback = noop$6;
5819
+ this._onTouchedCallback = noop$6;
5835
5820
  this._writing = false;
5836
5821
  this.showRadio = false;
5837
5822
  this.disabled = false;
@@ -5994,7 +5979,7 @@ MatBooleanField.decorators = [
5994
5979
  selector: 'mat-boolean-field',
5995
5980
  template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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 <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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 <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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 <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
5996
5981
  providers: [
5997
- DEFAULT_VALUE_ACCESSOR$1
5982
+ DEFAULT_VALUE_ACCESSOR$4
5998
5983
  ],
5999
5984
  changeDetection: ChangeDetectionStrategy.OnPush,
6000
5985
  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}"]
@@ -6240,7 +6225,7 @@ class MatNumpadDomService {
6240
6225
  this.appRef.detachView(this.componentRef.hostView);
6241
6226
  }
6242
6227
  }
6243
- 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" });
6228
+ MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
6244
6229
  MatNumpadDomService.decorators = [
6245
6230
  { type: Injectable, args: [{
6246
6231
  providedIn: 'root'
@@ -6604,7 +6589,7 @@ SharedMatNumpadModule.decorators = [
6604
6589
  },] }
6605
6590
  ];
6606
6591
 
6607
- const DEFAULT_VALUE_ACCESSOR = {
6592
+ const DEFAULT_VALUE_ACCESSOR$5 = {
6608
6593
  provide: NG_VALUE_ACCESSOR,
6609
6594
  useExisting: forwardRef(() => MatSwipeField),
6610
6595
  multi: true
@@ -6867,7 +6852,7 @@ MatSwipeField.decorators = [
6867
6852
  { type: Component, args: [{
6868
6853
  selector: 'mat-swipe-field',
6869
6854
  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",
6870
- providers: [DEFAULT_VALUE_ACCESSOR],
6855
+ providers: [DEFAULT_VALUE_ACCESSOR$5],
6871
6856
  changeDetection: ChangeDetectionStrategy.OnPush,
6872
6857
  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}"]
6873
6858
  },] }
@@ -6925,14 +6910,14 @@ SharedMatSwipeModule.decorators = [
6925
6910
  },] }
6926
6911
  ];
6927
6912
 
6928
- const noop$1 = () => { };
6929
- const ɵ0$4 = noop$1;
6913
+ const noop$7 = () => { };
6914
+ const ɵ0$8 = noop$7;
6930
6915
  class MatChipsField {
6931
6916
  constructor(cd, formGroupDir) {
6932
6917
  this.cd = cd;
6933
6918
  this.formGroupDir = formGroupDir;
6934
- this._onChangeCallback = noop$1;
6935
- this._onTouchedCallback = noop$1;
6919
+ this._onChangeCallback = noop$7;
6920
+ this._onTouchedCallback = noop$7;
6936
6921
  this.logPrefix = '[mat-chips] ';
6937
6922
  this.formControlName = null;
6938
6923
  this.required = false;
@@ -7801,7 +7786,7 @@ class ProgressBarService {
7801
7786
  }
7802
7787
  }
7803
7788
  }
7804
- ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7789
+ ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7805
7790
  ProgressBarService.decorators = [
7806
7791
  { type: Injectable, args: [{ providedIn: 'root' },] }
7807
7792
  ];
@@ -7845,7 +7830,7 @@ class AppGestureConfig extends HammerGestureConfig {
7845
7830
  return mc;
7846
7831
  }
7847
7832
  }
7848
- AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7833
+ AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7849
7834
  AppGestureConfig.decorators = [
7850
7835
  { type: Injectable, args: [{ providedIn: 'root' },] }
7851
7836
  ];
@@ -8070,7 +8055,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
8070
8055
  this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
8071
8056
  }
8072
8057
  }
8073
- MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8058
+ MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8074
8059
  MatPaginatorI18n.decorators = [
8075
8060
  { type: Injectable, args: [{ providedIn: 'root' },] }
8076
8061
  ];
@@ -8160,17 +8145,17 @@ function getColorContrast(color, bw) {
8160
8145
  return rgbArrayToHex(rgb.map(v => 255 - v));
8161
8146
  }
8162
8147
 
8163
- const noop = () => {
8148
+ const noop$8 = () => {
8164
8149
  };
8165
- const ɵ0$3 = noop;
8150
+ const ɵ0$9 = noop$8;
8166
8151
  class AppFormField {
8167
8152
  constructor(translate, cd, injector, formGroupDir) {
8168
8153
  this.translate = translate;
8169
8154
  this.cd = cd;
8170
8155
  this.injector = injector;
8171
8156
  this.formGroupDir = formGroupDir;
8172
- this._onChangeCallback = noop;
8173
- this._onTouchedCallback = noop;
8157
+ this._onChangeCallback = noop$8;
8158
+ this._onTouchedCallback = noop$8;
8174
8159
  this.readonly = false;
8175
8160
  this.compact = false;
8176
8161
  this.floatLabel = 'auto';
@@ -8606,14 +8591,14 @@ class AudioProvider extends StartableService {
8606
8591
  });
8607
8592
  }
8608
8593
  }
8609
- 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" });
8594
+ 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" });
8610
8595
  AudioProvider.decorators = [
8611
8596
  { type: Injectable, args: [{ providedIn: 'root' },] }
8612
8597
  ];
8613
8598
  AudioProvider.ctorParameters = () => [
8614
8599
  { type: Platform },
8615
- { type: NativeAudio, decorators: [{ type: Optional }] },
8616
- { type: Vibration, decorators: [{ type: Optional }] },
8600
+ { type: NativeAudio$1, decorators: [{ type: Optional }] },
8601
+ { type: Vibration$1, decorators: [{ type: Optional }] },
8617
8602
  { type: AudioManagement, decorators: [{ type: Optional }] }
8618
8603
  ];
8619
8604
 
@@ -8695,7 +8680,7 @@ class Hotkeys {
8695
8680
  });
8696
8681
  }
8697
8682
  }
8698
- 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" });
8683
+ Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
8699
8684
  Hotkeys.decorators = [
8700
8685
  { type: Injectable, args: [{
8701
8686
  providedIn: 'root'
@@ -8869,7 +8854,7 @@ class Base64ImageReader {
8869
8854
  }
8870
8855
  }
8871
8856
 
8872
- const uuidv4$1 = uuidv4Imported;
8857
+ const uuidv4 = uuidv4Imported;
8873
8858
  class FileService {
8874
8859
  constructor(platform,
8875
8860
  //private transfer: FileTransfer,
@@ -8906,7 +8891,7 @@ class FileService {
8906
8891
  const lastSlashIndex = source.lastIndexOf('/');
8907
8892
  if (lastSlashIndex === -1)
8908
8893
  throw new Error('Invalid URL: ' + source);
8909
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
8894
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
8910
8895
  // Download into the file system
8911
8896
  if (responseType === 'file' && this.canUseFileSystem) {
8912
8897
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -8962,7 +8947,7 @@ class FileService {
8962
8947
  this._started = true;
8963
8948
  }
8964
8949
  }
8965
- 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" });
8950
+ FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
8966
8951
  FileService.decorators = [
8967
8952
  { type: Injectable, args: [{
8968
8953
  providedIn: 'root',
@@ -9128,7 +9113,7 @@ class Base58 {
9128
9113
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
9129
9114
 
9130
9115
  const scrypt = require('scrypt-async');
9131
- const sha256$1 = require('hash.js/lib/hash/sha/256');
9116
+ const sha256 = require('hash.js/lib/hash/sha/256');
9132
9117
  const sha512 = require('hash.js/lib/hash/sha/512');
9133
9118
  const nacl = {
9134
9119
  sign,
@@ -9232,7 +9217,7 @@ class CryptoService {
9232
9217
  * Hash (using SHA256) a message
9233
9218
  */
9234
9219
  sha256(message) {
9235
- return sha256$1().update(message).digest('hex');
9220
+ return sha256().update(message).digest('hex');
9236
9221
  }
9237
9222
  /**
9238
9223
  * Hash (using SHA512) a message
@@ -9245,7 +9230,7 @@ class CryptoService {
9245
9230
  return nacl.util.encodeBase64(m);
9246
9231
  }
9247
9232
  }
9248
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9233
+ CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9249
9234
  CryptoService.decorators = [
9250
9235
  { type: Injectable, args: [{ providedIn: 'root' },] }
9251
9236
  ];
@@ -9410,7 +9395,13 @@ class EntityUtils {
9410
9395
  static searchTextFilter(searchAttribute, searchText) {
9411
9396
  if (isNilOrBlank(searchAttribute) || isNilOrBlank(searchText))
9412
9397
  return undefined; // filter not need
9413
- const searchRegexp = searchText.replace(/[.]/g, '[.]').replace(/[*]+/g, '.*');
9398
+ const searchRegexp = searchText
9399
+ // Escape special characters
9400
+ .replace(/[-\/\\^$+.()|[\]{}]/g, '\\$&')
9401
+ // Interpret * as any text
9402
+ .replace(/[*]+/g, '.*')
9403
+ // Interpret ? as one character
9404
+ .replace(/[?]/g, '.');
9414
9405
  if (searchRegexp === '.*')
9415
9406
  return undefined; // filter not need
9416
9407
  const flags = 'i'; // don't use global regex search
@@ -10486,7 +10477,7 @@ class LocalSettingsService extends StartableService {
10486
10477
  return page;
10487
10478
  }
10488
10479
  }
10489
- 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" });
10480
+ 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" });
10490
10481
  LocalSettingsService.decorators = [
10491
10482
  { type: Injectable, args: [{
10492
10483
  providedIn: 'root',
@@ -11144,7 +11135,7 @@ class NetworkService extends StartableService {
11144
11135
  });
11145
11136
  }
11146
11137
  }
11147
- 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" });
11138
+ 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" });
11148
11139
  NetworkService.decorators = [
11149
11140
  { type: Injectable, args: [{ providedIn: 'root' },] }
11150
11141
  ];
@@ -11155,16 +11146,16 @@ NetworkService.ctorParameters = () => [
11155
11146
  { type: CryptoService },
11156
11147
  { type: Storage },
11157
11148
  { type: LocalSettingsService },
11158
- { type: CacheService },
11149
+ { type: CacheService$1 },
11159
11150
  { type: HttpClient },
11160
11151
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
11161
- { type: Network, decorators: [{ type: Optional }] },
11162
- { type: SplashScreen, decorators: [{ type: Optional }] },
11152
+ { type: Network$1, decorators: [{ type: Optional }] },
11153
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
11163
11154
  { type: TranslateService, decorators: [{ type: Optional }] },
11164
11155
  { type: ToastController, decorators: [{ type: Optional }] }
11165
11156
  ];
11166
11157
 
11167
- const ErrorCodes$2 = {
11158
+ const ErrorCodes = {
11168
11159
  UNKNOWN_ERROR: 0,
11169
11160
  LOAD_ACCOUNT_ERROR: 1,
11170
11161
  BAD_PASSWORD: 2,
@@ -11516,7 +11507,7 @@ class EntityStore {
11516
11507
  }
11517
11508
  catch (err) {
11518
11509
  console.error(err);
11519
- throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11510
+ throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11520
11511
  }
11521
11512
  }
11522
11513
  // Emit update event
@@ -12090,7 +12081,7 @@ class EntitiesStorage extends StartableService {
12090
12081
  }
12091
12082
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
12092
12083
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
12093
- 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" });
12084
+ 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" });
12094
12085
  EntitiesStorage.decorators = [
12095
12086
  { type: Injectable, args: [{ providedIn: 'root' },] }
12096
12087
  ];
@@ -12227,10 +12218,10 @@ function referentialToString(obj, properties) {
12227
12218
  function referentialsToString(values, properties, separator) {
12228
12219
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
12229
12220
  }
12230
- const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12221
+ const ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12231
12222
  const StatusList = Object.freeze([
12232
12223
  {
12233
- id: ɵ0$2,
12224
+ id: ɵ0$a,
12234
12225
  icon: 'checkmark',
12235
12226
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
12236
12227
  },
@@ -12505,7 +12496,7 @@ function accountToString(data) {
12505
12496
  (data.lastName || '')) || '';
12506
12497
  }
12507
12498
 
12508
- const uuidv4 = uuidv4Imported;
12499
+ const uuidv4$1 = uuidv4Imported;
12509
12500
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
12510
12501
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
12511
12502
  /**
@@ -12549,7 +12540,7 @@ function createTrackerLink(opts) {
12549
12540
  // Skip if not tracked
12550
12541
  if (!context || !context.tracked)
12551
12542
  return forward(operation);
12552
- const id = context.serializationKey || uuidv4();
12543
+ const id = context.serializationKey || uuidv4$1();
12553
12544
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
12554
12545
  // Clean context, before calling JSON.stringify (remove unused attributes)
12555
12546
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -13212,7 +13203,7 @@ class GraphqlService extends StartableService {
13212
13203
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
13213
13204
  || this.toAppError(err.networkError)
13214
13205
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
13215
- || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
13206
+ || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
13216
13207
  // If graphQL: try to convert the first error found
13217
13208
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
13218
13209
  || this.toAppError(err)
@@ -13220,7 +13211,7 @@ class GraphqlService extends StartableService {
13220
13211
  || (err.graphQLErrors && err.graphQLErrors[0])
13221
13212
  || err;
13222
13213
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
13223
- if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13214
+ if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13224
13215
  console.error('[graphql] original error: ' + err.networkError.message);
13225
13216
  this.onNetworkError.next(error);
13226
13217
  }
@@ -13256,7 +13247,7 @@ class GraphqlService extends StartableService {
13256
13247
  return 'ERROR.UNAUTHORIZED';
13257
13248
  case ServerErrorCodes.FORBIDDEN:
13258
13249
  return 'ERROR.FORBIDDEN';
13259
- case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
13250
+ case ErrorCodes.UNKNOWN_NETWORK_ERROR:
13260
13251
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
13261
13252
  case ServerErrorCodes.BAD_UPDATE_DATE:
13262
13253
  return 'ERROR.BAD_UPDATE_DATE';
@@ -13287,7 +13278,7 @@ class GraphqlService extends StartableService {
13287
13278
  return undefined;
13288
13279
  }
13289
13280
  }
13290
- 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" });
13281
+ 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" });
13291
13282
  GraphqlService.decorators = [
13292
13283
  { type: Injectable, args: [{
13293
13284
  providedIn: 'root'
@@ -13304,7 +13295,7 @@ GraphqlService.ctorParameters = () => [
13304
13295
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
13305
13296
  ];
13306
13297
 
13307
- const sha256 = require('hash.js/lib/hash/sha/256');
13298
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
13308
13299
  class BaseGraphqlServiceOptions {
13309
13300
  }
13310
13301
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -13455,8 +13446,8 @@ class BaseGraphqlService extends StartableService {
13455
13446
  }
13456
13447
  /* -- protected methods -- */
13457
13448
  computeMutableWatchQueryId(opts) {
13458
- const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13459
- const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13449
+ const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13450
+ const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13460
13451
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
13461
13452
  }
13462
13453
  findMutableWatchQueries(opts) {
@@ -13522,7 +13513,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
13522
13513
  /* ------------------------------------
13523
13514
  * GraphQL queries
13524
13515
  * ------------------------------------*/
13525
- const Fragments$1 = {
13516
+ const Fragments = {
13526
13517
  account: gql `
13527
13518
  fragment AccountFragment on AccountVO {
13528
13519
  id
@@ -13557,14 +13548,14 @@ const Fragments$1 = {
13557
13548
  }`
13558
13549
  };
13559
13550
  // Load account query
13560
- const LoadQuery$1 = gql `
13551
+ const LoadQuery = gql `
13561
13552
  query Account {
13562
13553
  data: account {
13563
13554
  ...AccountFragment
13564
13555
  }
13565
13556
  }
13566
- ${Fragments$1.account}
13567
- ${Fragments$1.settings}
13557
+ ${Fragments.account}
13558
+ ${Fragments.settings}
13568
13559
  `;
13569
13560
  // Check email query
13570
13561
  const IsEmailExistsQuery = gql `
@@ -13579,21 +13570,21 @@ const AccountMutations = {
13579
13570
  ...AccountFragment
13580
13571
  }
13581
13572
  }
13582
- ${Fragments$1.account}
13583
- ${Fragments$1.settings}`,
13573
+ ${Fragments.account}
13574
+ ${Fragments.settings}`,
13584
13575
  create: gql `mutation CreateAccount($data:AccountVOInput){
13585
13576
  data: createAccount(account: $data){
13586
13577
  ...AccountFragment
13587
13578
  }
13588
13579
  }
13589
- ${Fragments$1.account}
13590
- ${Fragments$1.settings}`,
13580
+ ${Fragments.account}
13581
+ ${Fragments.settings}`,
13591
13582
  saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
13592
13583
  data: saveSettings(settings: $data){
13593
13584
  ...UserSettingsFragment
13594
13585
  }
13595
13586
  }
13596
- ${Fragments$1.settings}`
13587
+ ${Fragments.settings}`
13597
13588
  };
13598
13589
  // Sent confirmation email
13599
13590
  const SendConfirmEmailMutation = gql `
@@ -13910,7 +13901,7 @@ class AccountService extends BaseGraphqlService {
13910
13901
  catch (error) {
13911
13902
  console.error(error);
13912
13903
  this.resetData();
13913
- throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13904
+ throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13914
13905
  }
13915
13906
  // Store pubkey+keypair
13916
13907
  this._cache.pubkey = Base58.encode(keypair.publicKey);
@@ -13944,7 +13935,7 @@ class AccountService extends BaseGraphqlService {
13944
13935
  }
13945
13936
  catch (err) {
13946
13937
  // If account not found, check if email is valid
13947
- if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
13938
+ if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
13948
13939
  // Check email exists
13949
13940
  if (data.username.indexOf('@') !== -1) {
13950
13941
  let isEmailExists;
@@ -13956,11 +13947,11 @@ class AccountService extends BaseGraphqlService {
13956
13947
  }
13957
13948
  // Email not exists (no account)
13958
13949
  if (!isEmailExists) {
13959
- throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13950
+ throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13960
13951
  }
13961
13952
  }
13962
13953
  // Email exists, so error = 'bad password'
13963
- throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13954
+ throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13964
13955
  }
13965
13956
  throw err; // resend the first error
13966
13957
  }
@@ -14106,8 +14097,8 @@ class AccountService extends BaseGraphqlService {
14106
14097
  // Load remotely
14107
14098
  else {
14108
14099
  const { data } = yield this.graphql.query({
14109
- query: LoadQuery$1,
14110
- error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14100
+ query: LoadQuery,
14101
+ error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14111
14102
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
14112
14103
  });
14113
14104
  json = data;
@@ -14134,7 +14125,7 @@ class AccountService extends BaseGraphqlService {
14134
14125
  return __awaiter(this, void 0, void 0, function* () {
14135
14126
  const isEmailExists = yield this.isEmailExists(email);
14136
14127
  if (isEmailExists) {
14137
- throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14128
+ throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14138
14129
  }
14139
14130
  });
14140
14131
  }
@@ -14170,7 +14161,7 @@ class AccountService extends BaseGraphqlService {
14170
14161
  locale
14171
14162
  },
14172
14163
  error: {
14173
- code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
14164
+ code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
14174
14165
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
14175
14166
  }
14176
14167
  });
@@ -14186,7 +14177,7 @@ class AccountService extends BaseGraphqlService {
14186
14177
  code
14187
14178
  },
14188
14179
  error: {
14189
- code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
14180
+ code: ErrorCodes.CONFIRM_EMAIL_FAILED,
14190
14181
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
14191
14182
  }
14192
14183
  });
@@ -14265,7 +14256,7 @@ class AccountService extends BaseGraphqlService {
14265
14256
  throw error;
14266
14257
  console.error(error);
14267
14258
  throw {
14268
- code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
14259
+ code: ErrorCodes.LOAD_ACCOUNT_ERROR,
14269
14260
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
14270
14261
  };
14271
14262
  }
@@ -14435,7 +14426,7 @@ class AccountService extends BaseGraphqlService {
14435
14426
  if (!isNew) {
14436
14427
  const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
14437
14428
  if (!existingAccount || !existingAccount.updateDate) {
14438
- throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14429
+ throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14439
14430
  }
14440
14431
  this.copyIdAndUpdateDate(existingAccount, account);
14441
14432
  }
@@ -14447,7 +14438,7 @@ class AccountService extends BaseGraphqlService {
14447
14438
  mutation: isNew ? AccountMutations.create : AccountMutations.save,
14448
14439
  variables: { data: json },
14449
14440
  error: {
14450
- code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
14441
+ code: ErrorCodes.SAVE_ACCOUNT_ERROR,
14451
14442
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
14452
14443
  }
14453
14444
  });
@@ -14474,7 +14465,7 @@ class AccountService extends BaseGraphqlService {
14474
14465
  mutation: AccountMutations.saveSettings,
14475
14466
  variables: { data: json },
14476
14467
  error: {
14477
- code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
14468
+ code: ErrorCodes.SAVE_SETTINGS_ERROR,
14478
14469
  message: 'ERROR.SAVE_SETTINGS_ERROR'
14479
14470
  }
14480
14471
  });
@@ -14496,7 +14487,7 @@ class AccountService extends BaseGraphqlService {
14496
14487
  if (counter > 4) {
14497
14488
  if (this._debug)
14498
14489
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
14499
- throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14490
+ throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14500
14491
  }
14501
14492
  // Check if valid
14502
14493
  if (token) {
@@ -14506,7 +14497,7 @@ class AccountService extends BaseGraphqlService {
14506
14497
  token
14507
14498
  },
14508
14499
  error: {
14509
- code: ErrorCodes$2.UNAUTHORIZED,
14500
+ code: ErrorCodes.UNAUTHORIZED,
14510
14501
  message: 'ERROR.UNAUTHORIZED'
14511
14502
  },
14512
14503
  fetchPolicy: 'no-cache'
@@ -14522,7 +14513,7 @@ class AccountService extends BaseGraphqlService {
14522
14513
  }
14523
14514
  // Generate a new token
14524
14515
  const challengeError = {
14525
- code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
14516
+ code: ErrorCodes.AUTH_CHALLENGE_ERROR,
14526
14517
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
14527
14518
  };
14528
14519
  const data = yield this.graphql.query({
@@ -14600,7 +14591,7 @@ class AccountService extends BaseGraphqlService {
14600
14591
  query: AccountSubscriptions.listenChanges,
14601
14592
  variables,
14602
14593
  error: {
14603
- code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
14594
+ code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
14604
14595
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
14605
14596
  }
14606
14597
  }).pipe(map(({ data }) => data),
@@ -14629,7 +14620,7 @@ class AccountService extends BaseGraphqlService {
14629
14620
  return Toasts.show(this.toastController, this.translate, opts);
14630
14621
  }
14631
14622
  }
14632
- 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(i1$1.TranslateService, 8), i0.ɵɵinject(i1$4.ToastController, 8), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
14623
+ AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
14633
14624
  AccountService.decorators = [
14634
14625
  { type: Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
14635
14626
  ];
@@ -14891,7 +14882,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
14891
14882
  /* ------------------------------------
14892
14883
  * GraphQL queries
14893
14884
  * ------------------------------------*/
14894
- const Fragments = {
14885
+ const Fragments$1 = {
14895
14886
  config: gql `
14896
14887
  fragment ConfigFragment on ConfigurationVO {
14897
14888
  id
@@ -14918,13 +14909,13 @@ const Fragments = {
14918
14909
  }
14919
14910
  `
14920
14911
  };
14921
- const LoadQuery = gql `
14912
+ const LoadQuery$1 = gql `
14922
14913
  query Configuration{
14923
14914
  data: configuration{
14924
14915
  ...ConfigFragment
14925
14916
  }
14926
14917
  }
14927
- ${Fragments.config}
14918
+ ${Fragments$1.config}
14928
14919
  `;
14929
14920
  // Save (create or update) account mutation
14930
14921
  const SaveMutation = gql `
@@ -14933,7 +14924,7 @@ const SaveMutation = gql `
14933
14924
  ...ConfigFragment
14934
14925
  }
14935
14926
  }
14936
- ${Fragments.config}
14927
+ ${Fragments$1.config}
14937
14928
  `;
14938
14929
  const ClearCache = gql `
14939
14930
  query ClearCache($name: String) {
@@ -14984,12 +14975,12 @@ class ConfigService extends BaseGraphqlService {
14984
14975
  return __awaiter(this, void 0, void 0, function* () {
14985
14976
  const now = Date.now();
14986
14977
  console.debug('[config] Loading Pod configuration...');
14987
- const query = opts && opts.query || LoadQuery;
14978
+ const query = opts && opts.query || LoadQuery$1;
14988
14979
  const variables = opts && opts.variables || undefined;
14989
14980
  const res = yield this.graphql.query({
14990
14981
  query,
14991
14982
  variables,
14992
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14983
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14993
14984
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
14994
14985
  });
14995
14986
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -15022,7 +15013,7 @@ class ConfigService extends BaseGraphqlService {
15022
15013
  data: json
15023
15014
  },
15024
15015
  error: {
15025
- code: ErrorCodes$2.SAVE_CONFIG_ERROR,
15016
+ code: ErrorCodes.SAVE_CONFIG_ERROR,
15026
15017
  message: 'ERROR.SAVE_CONFIG_ERROR'
15027
15018
  }
15028
15019
  });
@@ -15048,7 +15039,7 @@ class ConfigService extends BaseGraphqlService {
15048
15039
  const res = yield this.graphql.query({
15049
15040
  query: CacheStatistics,
15050
15041
  variables: null,
15051
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15042
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15052
15043
  fetchPolicy: 'network-only'
15053
15044
  });
15054
15045
  const data = res && res.cacheStatistics || undefined;
@@ -15064,7 +15055,7 @@ class ConfigService extends BaseGraphqlService {
15064
15055
  const res = yield this.graphql.query({
15065
15056
  query: ClearCache,
15066
15057
  variables,
15067
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15058
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15068
15059
  fetchPolicy: 'network-only'
15069
15060
  });
15070
15061
  const data = res && res.clearCache || undefined;
@@ -15223,7 +15214,7 @@ class ConfigService extends BaseGraphqlService {
15223
15214
  });
15224
15215
  }
15225
15216
  }
15226
- 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(AccountService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
15217
+ 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(AccountService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
15227
15218
  ConfigService.decorators = [
15228
15219
  { type: Injectable, args: [{
15229
15220
  providedIn: 'root',
@@ -15243,7 +15234,7 @@ ConfigService.ctorParameters = () => [
15243
15234
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
15244
15235
  ];
15245
15236
 
15246
- const moment$2 = momentImported;
15237
+ const moment$4 = momentImported;
15247
15238
  class PlatformService extends StartableService {
15248
15239
  constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
15249
15240
  super(platform);
@@ -15450,16 +15441,16 @@ class PlatformService extends StartableService {
15450
15441
  }
15451
15442
  // config moment lib
15452
15443
  try {
15453
- moment$2.locale(event.lang);
15444
+ moment$4.locale(event.lang);
15454
15445
  console.debug('[platform] Use locale {' + event.lang + '}');
15455
15446
  }
15456
15447
  // If error, fallback to en
15457
15448
  catch (err) {
15458
- moment$2.locale('en');
15449
+ moment$4.locale('en');
15459
15450
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
15460
15451
  }
15461
15452
  // Config date adapter
15462
- this.dateAdapter.setLocale(moment$2.locale());
15453
+ this.dateAdapter.setLocale(moment$4.locale());
15463
15454
  }
15464
15455
  });
15465
15456
  this.settings.onChange.subscribe(data => {
@@ -15592,7 +15583,7 @@ class PlatformService extends StartableService {
15592
15583
  });
15593
15584
  }
15594
15585
  }
15595
- 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" });
15586
+ 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" });
15596
15587
  PlatformService.decorators = [
15597
15588
  { type: Injectable, args: [{ providedIn: 'root' },] }
15598
15589
  ];
@@ -15607,15 +15598,15 @@ PlatformService.ctorParameters = () => [
15607
15598
  { type: NetworkService },
15608
15599
  { type: AccountService },
15609
15600
  { type: ConfigService },
15610
- { type: CacheService },
15601
+ { type: CacheService$1 },
15611
15602
  { type: Storage },
15612
15603
  { type: AudioProvider },
15613
15604
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
15614
- { type: StatusBar, decorators: [{ type: Optional }] },
15605
+ { type: StatusBar$1, decorators: [{ type: Optional }] },
15615
15606
  { type: Keyboard, decorators: [{ type: Optional }] },
15616
- { type: SplashScreen, decorators: [{ type: Optional }] },
15617
- { type: InAppBrowser, decorators: [{ type: Optional }] },
15618
- { type: Downloader, decorators: [{ type: Optional }] }
15607
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
15608
+ { type: InAppBrowser$1, decorators: [{ type: Optional }] },
15609
+ { type: Downloader$1, decorators: [{ type: Optional }] }
15619
15610
  ];
15620
15611
 
15621
15612
  class AppHelpModal {
@@ -15679,7 +15670,7 @@ class MatStepperI18n extends MatStepperIntl {
15679
15670
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
15680
15671
  }
15681
15672
  }
15682
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
15673
+ MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
15683
15674
  MatStepperI18n.decorators = [
15684
15675
  { type: Injectable, args: [{ providedIn: 'root' },] }
15685
15676
  ];
@@ -17490,7 +17481,7 @@ function state2side(state) {
17490
17481
  return 1;
17491
17482
  }
17492
17483
  }
17493
- const ɵ0$1 = (defaultStateSize) => [
17484
+ const ɵ0$b = (defaultStateSize) => [
17494
17485
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
17495
17486
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
17496
17487
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -17498,7 +17489,7 @@ const ɵ0$1 = (defaultStateSize) => [
17498
17489
  const SCALE_OPTIONS_DEFAULT = {
17499
17490
  startColor: rgbArrayMap.red,
17500
17491
  startStates: [0, 2, 3],
17501
- startStepsFn: ɵ0$1
17492
+ startStepsFn: ɵ0$b
17502
17493
  };
17503
17494
  /**
17504
17495
  * Internal function, that create a colors scale, using iteration
@@ -18295,7 +18286,7 @@ class UserSettingsValidatorService extends AppValidatorService {
18295
18286
  });
18296
18287
  }
18297
18288
  }
18298
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18289
+ UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18299
18290
  UserSettingsValidatorService.decorators = [
18300
18291
  { type: Injectable, args: [{ providedIn: 'root' },] }
18301
18292
  ];
@@ -18339,7 +18330,7 @@ class AccountValidatorService extends AppValidatorService {
18339
18330
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
18340
18331
  }
18341
18332
  }
18342
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18333
+ AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18343
18334
  AccountValidatorService.decorators = [
18344
18335
  { type: Injectable, args: [{ providedIn: 'root' },] }
18345
18336
  ];
@@ -18904,7 +18895,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
18904
18895
  });
18905
18896
  }
18906
18897
  }
18907
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
18898
+ LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
18908
18899
  LocalSettingsValidatorService.decorators = [
18909
18900
  { type: Injectable, args: [{ providedIn: 'root' },] }
18910
18901
  ];
@@ -19523,7 +19514,7 @@ class IsOnFieldModePipe {
19523
19514
  return value === 'FIELD';
19524
19515
  }
19525
19516
  }
19526
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
19517
+ IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
19527
19518
  IsOnFieldModePipe.decorators = [
19528
19519
  { type: Pipe, args: [{
19529
19520
  name: 'isOnField'
@@ -19535,7 +19526,7 @@ class IsNotOnFieldModePipe {
19535
19526
  return value !== 'FIELD';
19536
19527
  }
19537
19528
  }
19538
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
19529
+ IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
19539
19530
  IsNotOnFieldModePipe.decorators = [
19540
19531
  { type: Pipe, args: [{
19541
19532
  name: 'isNotOnField'
@@ -19550,7 +19541,7 @@ class PersonToStringPipe {
19550
19541
  return PersonUtils.personToString(value);
19551
19542
  }
19552
19543
  }
19553
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
19544
+ PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
19554
19545
  PersonToStringPipe.decorators = [
19555
19546
  { type: Pipe, args: [{
19556
19547
  name: 'personToString'
@@ -19935,7 +19926,7 @@ class IsLoginAccountPipe {
19935
19926
  return value && value.pubkey && true;
19936
19927
  }
19937
19928
  }
19938
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
19929
+ IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
19939
19930
  IsLoginAccountPipe.decorators = [
19940
19931
  { type: Pipe, args: [{
19941
19932
  name: 'isLogin'
@@ -19947,7 +19938,7 @@ class AccountToStringPipe {
19947
19938
  return accountToString(value);
19948
19939
  }
19949
19940
  }
19950
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
19941
+ AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
19951
19942
  AccountToStringPipe.decorators = [
19952
19943
  { type: Pipe, args: [{
19953
19944
  name: 'accountToString'
@@ -19962,7 +19953,7 @@ class DepartmentToStringPipe {
19962
19953
  return departmentToString(value);
19963
19954
  }
19964
19955
  }
19965
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
19956
+ DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
19966
19957
  DepartmentToStringPipe.decorators = [
19967
19958
  { type: Pipe, args: [{
19968
19959
  name: 'departmentToString'
@@ -20058,7 +20049,7 @@ class MenuService {
20058
20049
  this._visibleSubject.next(value);
20059
20050
  }
20060
20051
  }
20061
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20052
+ MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20062
20053
  MenuService.decorators = [
20063
20054
  { type: Injectable, args: [{
20064
20055
  providedIn: 'root'
@@ -20520,7 +20511,7 @@ class AuthGuardService {
20520
20511
  }));
20521
20512
  }
20522
20513
  }
20523
- 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" });
20514
+ AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
20524
20515
  AuthGuardService.decorators = [
20525
20516
  { type: Injectable, args: [{ providedIn: 'root' },] }
20526
20517
  ];
@@ -20562,7 +20553,7 @@ class BaseEntityService extends BaseGraphqlService {
20562
20553
  query,
20563
20554
  variables: { id },
20564
20555
  fetchPolicy: opts && opts.fetchPolicy || undefined,
20565
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20556
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20566
20557
  })
20567
20558
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
20568
20559
  ? (data && this.fromObject(data))
@@ -20577,7 +20568,7 @@ class BaseEntityService extends BaseGraphqlService {
20577
20568
  query,
20578
20569
  variables: { id },
20579
20570
  fetchPolicy: opts && opts.fetchPolicy || undefined,
20580
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20571
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20581
20572
  });
20582
20573
  // Convert to entity
20583
20574
  return (!opts || opts.toEntity !== false)
@@ -20608,7 +20599,7 @@ class BaseEntityService extends BaseGraphqlService {
20608
20599
  totalFieldName: withTotal ? 'total' : undefined,
20609
20600
  insertFilterFn: filter && filter.asFilterFn(),
20610
20601
  variables,
20611
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
20602
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
20612
20603
  fetchPolicy: opts && opts.fetchPolicy || undefined
20613
20604
  })
20614
20605
  .pipe(map(({ data, total }) => {
@@ -20644,7 +20635,7 @@ class BaseEntityService extends BaseGraphqlService {
20644
20635
  const { data, total } = yield this.graphql.query({
20645
20636
  query,
20646
20637
  variables,
20647
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
20638
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
20648
20639
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
20649
20640
  });
20650
20641
  const entities = (!opts || opts.toEntity !== false) ?
@@ -20683,7 +20674,7 @@ class BaseEntityService extends BaseGraphqlService {
20683
20674
  variables: {
20684
20675
  filter: filter && filter.asPodObject()
20685
20676
  },
20686
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
20677
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
20687
20678
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
20688
20679
  });
20689
20680
  return res.total;
@@ -20719,7 +20710,7 @@ class BaseEntityService extends BaseGraphqlService {
20719
20710
  variables: {
20720
20711
  data: json
20721
20712
  },
20722
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20713
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20723
20714
  update: (proxy, { data }) => {
20724
20715
  const savedEntities = data && data.data;
20725
20716
  if (savedEntities) {
@@ -20775,7 +20766,7 @@ class BaseEntityService extends BaseGraphqlService {
20775
20766
  variables: {
20776
20767
  data: json
20777
20768
  },
20778
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20769
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20779
20770
  update: (cache, { data }) => {
20780
20771
  // Update entity
20781
20772
  const savedEntity = data && data.data;
@@ -20823,7 +20814,7 @@ class BaseEntityService extends BaseGraphqlService {
20823
20814
  refetchQueries: this.getRefetchQueriesForMutation(opts),
20824
20815
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
20825
20816
  variables: { ids },
20826
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20817
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20827
20818
  update: (cache, res) => {
20828
20819
  // Remove from cache
20829
20820
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -20864,7 +20855,7 @@ class BaseEntityService extends BaseGraphqlService {
20864
20855
  refetchQueries: this.getRefetchQueriesForMutation(opts),
20865
20856
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
20866
20857
  variables: { id },
20867
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20858
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20868
20859
  update: (proxy, res) => {
20869
20860
  // Remove from cache
20870
20861
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -20897,7 +20888,7 @@ class BaseEntityService extends BaseGraphqlService {
20897
20888
  query: opts && opts.query || this.subscriptions.listenChanges,
20898
20889
  variables,
20899
20890
  error: {
20900
- code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
20891
+ code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
20901
20892
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
20902
20893
  }
20903
20894
  })
@@ -21083,7 +21074,7 @@ class EntitiesTableDataSource extends TableDataSource {
21083
21074
  if (this._debug)
21084
21075
  invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
21085
21076
  // Stop with an error
21086
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21077
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21087
21078
  }
21088
21079
  this._editingRowCount = 0;
21089
21080
  let data;
@@ -21948,14 +21939,14 @@ class AppTable {
21948
21939
  return __awaiter(this, void 0, void 0, function* () {
21949
21940
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
21950
21941
  if (this.readOnly) {
21951
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
21942
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
21952
21943
  }
21953
21944
  this.resetError();
21954
21945
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
21955
21946
  this.previouslyEditedRowId = opts.keepEditing ? ((((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined) || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.id)) : undefined;
21956
21947
  const previouslyEditedData = opts.keepEditing ? (isNotNil(this.previouslyEditedRowId) && ((_c = this.editedRow) === null || _c === void 0 ? void 0 : _c.currentData) || ((_d = this.singleSelectedRow) === null || _d === void 0 ? void 0 : _d.currentData)) : undefined;
21957
21948
  if (!this.confirmEditCreate()) {
21958
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21949
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21959
21950
  }
21960
21951
  // Mark as saving
21961
21952
  this.markAsSaving();
@@ -22072,7 +22063,7 @@ class AppTable {
22072
22063
  var _a;
22073
22064
  return __awaiter(this, void 0, void 0, function* () {
22074
22065
  if (this.readOnly) {
22075
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22066
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22076
22067
  }
22077
22068
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
22078
22069
  return 0; // SKip
@@ -23606,7 +23597,7 @@ class AppEntityEditor extends AppTabEditor {
23606
23597
  try {
23607
23598
  const data = yield this.dataService.load(id, opts);
23608
23599
  if (!data)
23609
- throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
23600
+ throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
23610
23601
  this._usageMode = this.computeUsageMode(data);
23611
23602
  yield this.onEntityLoaded(data, opts);
23612
23603
  yield this.updateView(data, opts);
@@ -23637,7 +23628,7 @@ class AppEntityEditor extends AppTabEditor {
23637
23628
  if (!this.dirty) {
23638
23629
  if (this.debug)
23639
23630
  console.debug(`[data-editor] Changes detected on server, at {${data.updateDate}}: reloading page...`);
23640
- this.reload();
23631
+ this.updateView(data);
23641
23632
  }
23642
23633
  else {
23643
23634
  if (this.debug)
@@ -24544,7 +24535,7 @@ class UserEventService extends BaseGraphqlService {
24544
24535
  EntityUtils.copyIdAndUpdateDate(source, target);
24545
24536
  }
24546
24537
  }
24547
- 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" });
24538
+ 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" });
24548
24539
  UserEventService.decorators = [
24549
24540
  { type: Injectable, args: [{ providedIn: 'root' },] }
24550
24541
  ];
@@ -24928,7 +24919,7 @@ class PersonService extends BaseEntityService {
24928
24919
  return target;
24929
24920
  }
24930
24921
  }
24931
- 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" });
24922
+ PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
24932
24923
  PersonService.decorators = [
24933
24924
  { type: Injectable, args: [{ providedIn: 'root' },] }
24934
24925
  ];
@@ -24959,7 +24950,7 @@ class PersonValidatorService {
24959
24950
  return this.formBuilder.group(formConfig);
24960
24951
  }
24961
24952
  }
24962
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
24953
+ PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
24963
24954
  PersonValidatorService.decorators = [
24964
24955
  { type: Injectable, args: [{ providedIn: 'root' },] }
24965
24956
  ];
@@ -25153,16 +25144,16 @@ AdminModule.decorators = [
25153
25144
  ];
25154
25145
  AdminModule.ctorParameters = () => [];
25155
25146
 
25156
- const ɵ0 = {
25147
+ const ɵ0$c = {
25157
25148
  profile: 'ADMIN'
25158
25149
  };
25159
- const routes$5 = [
25150
+ const routes = [
25160
25151
  {
25161
25152
  path: 'users',
25162
25153
  pathMatch: 'full',
25163
25154
  component: UsersPage,
25164
25155
  canActivate: [AuthGuardService],
25165
- data: ɵ0
25156
+ data: ɵ0$c
25166
25157
  }
25167
25158
  ];
25168
25159
  class AdminRoutingModule {
@@ -25172,33 +25163,33 @@ AdminRoutingModule.decorators = [
25172
25163
  imports: [
25173
25164
  SharedRoutingModule,
25174
25165
  AdminModule,
25175
- RouterModule.forChild(routes$5)
25166
+ RouterModule.forChild(routes)
25176
25167
  ],
25177
25168
  exports: [RouterModule]
25178
25169
  },] }
25179
25170
  ];
25180
25171
 
25181
- const ErrorCodes = {
25172
+ const ErrorCodes$2 = {
25182
25173
  LOAD_PERSONS_ERROR: 100,
25183
25174
  SAVE_PERSONS_ERROR: 101,
25184
25175
  DELETE_PERSONS_ERROR: 102,
25185
25176
  };
25186
25177
 
25187
- class EntityTestClass$1 {
25178
+ class EntityTestClass {
25188
25179
  }
25189
- const FAKE_ENTITIES$1 = [
25180
+ const FAKE_ENTITIES = [
25190
25181
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
25191
25182
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
25192
25183
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
25193
25184
  ];
25194
- function deepCopy$1(values, size) {
25185
+ function deepCopy(values, size) {
25195
25186
  if (isNil(size)) {
25196
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
25187
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
25197
25188
  }
25198
25189
  let result = [];
25199
25190
  let i = 1;
25200
25191
  while (result.length < size) {
25201
- result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
25192
+ result = result.concat((values || FAKE_ENTITIES).map(entity => {
25202
25193
  const name = entity.name + ' #' + i;
25203
25194
  return Object.assign(Object.assign({}, entity), { id: i++, name });
25204
25195
  }));
@@ -25208,7 +25199,7 @@ function deepCopy$1(values, size) {
25208
25199
  class AutocompleteTestPage {
25209
25200
  constructor(formBuilder) {
25210
25201
  this.formBuilder = formBuilder;
25211
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
25202
+ this._items = deepCopy(FAKE_ENTITIES, 100);
25212
25203
  this._$items = new BehaviorSubject(undefined);
25213
25204
  this.autocompleteFields = new MatAutocompleteConfigHolder();
25214
25205
  this.memoryHide = false;
@@ -25252,7 +25243,7 @@ class AutocompleteTestPage {
25252
25243
  });
25253
25244
  // From items
25254
25245
  this.autocompleteFields.add('entity-items-large', {
25255
- items: FAKE_ENTITIES$1.slice(),
25246
+ items: FAKE_ENTITIES.slice(),
25256
25247
  attributes: ['label', 'name', 'description', 'comments'],
25257
25248
  displayWith: this.entityToString
25258
25249
  });
@@ -25262,12 +25253,12 @@ class AutocompleteTestPage {
25262
25253
  loadData() {
25263
25254
  return __awaiter(this, void 0, void 0, function* () {
25264
25255
  const data = {
25265
- entity: deepCopy$1(FAKE_ENTITIES$1)[0],
25256
+ entity: deepCopy(FAKE_ENTITIES)[0],
25266
25257
  // This item is NOT in the items list => i should be displayed anyway
25267
25258
  missingEntity: {
25268
25259
  id: -1, label: '??', name: 'Missing item'
25269
25260
  },
25270
- disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
25261
+ disableEntity: deepCopy(FAKE_ENTITIES)[2]
25271
25262
  };
25272
25263
  this.form.setValue(data);
25273
25264
  // Load observables
@@ -25410,13 +25401,13 @@ LatLongTestPage.ctorParameters = () => [
25410
25401
  { type: FormBuilder }
25411
25402
  ];
25412
25403
 
25413
- const moment$1 = momentImported;
25404
+ const moment$5 = momentImported;
25414
25405
  class SwipeTestPage {
25415
25406
  constructor(formBuilder, dateFormatPipe) {
25416
25407
  this.formBuilder = formBuilder;
25417
25408
  this.dateFormatPipe = dateFormatPipe;
25418
25409
  this.$dates = new BehaviorSubject(undefined);
25419
- this._today = moment$1().startOf('day');
25410
+ this._today = moment$5().startOf('day');
25420
25411
  this.form = formBuilder.group({
25421
25412
  empty: [null, Validators.required],
25422
25413
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -25429,7 +25420,7 @@ class SwipeTestPage {
25429
25420
  ngOnInit() {
25430
25421
  const dates = [];
25431
25422
  for (let d = 0; d < 7; d++) {
25432
- dates[d] = moment$1(this._today).add(d - 3, 'day');
25423
+ dates[d] = moment$5(this._today).add(d - 3, 'day');
25433
25424
  }
25434
25425
  this.$dates.next(dates);
25435
25426
  this.loadData();
@@ -25470,7 +25461,7 @@ SwipeTestPage.ctorParameters = () => [
25470
25461
  { type: DateFormatPipe }
25471
25462
  ];
25472
25463
 
25473
- const moment = momentImported;
25464
+ const moment$6 = momentImported;
25474
25465
  class DateTimeTestPage {
25475
25466
  constructor(platform, formBuilder, cd) {
25476
25467
  this.platform = platform;
@@ -25502,7 +25493,7 @@ class DateTimeTestPage {
25502
25493
  // Load the form with data
25503
25494
  loadData() {
25504
25495
  return __awaiter(this, void 0, void 0, function* () {
25505
- const now = moment();
25496
+ const now = moment$6();
25506
25497
  const data = {
25507
25498
  empty: toDateISOString(now.clone().add(2, 'hours')),
25508
25499
  enable: toDateISOString(now),
@@ -25563,9 +25554,9 @@ DateTimeTestPage.ctorParameters = () => [
25563
25554
  { type: ChangeDetectorRef }
25564
25555
  ];
25565
25556
 
25566
- class EntityTestClass {
25557
+ class EntityTestClass$1 {
25567
25558
  }
25568
- const FAKE_ENTITIES = [
25559
+ const FAKE_ENTITIES$1 = [
25569
25560
  { id: 1, label: 'AAA', name: 'Item A' },
25570
25561
  { id: 2, label: 'BBB', name: 'Item B' },
25571
25562
  { id: 3, label: 'CCC', name: 'Item C' },
@@ -25574,14 +25565,14 @@ const FAKE_ENTITIES = [
25574
25565
  { id: 6, label: 'FFF', name: 'Item F' },
25575
25566
  { id: 7, label: 'GGG', name: 'Item G' }
25576
25567
  ];
25577
- function deepCopy(values, size) {
25568
+ function deepCopy$1(values, size) {
25578
25569
  if (isNil(size)) {
25579
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
25570
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
25580
25571
  }
25581
25572
  let result = [];
25582
25573
  let i = 1;
25583
25574
  while (result.length < size) {
25584
- result = result.concat((values || FAKE_ENTITIES).map(entity => {
25575
+ result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
25585
25576
  const name = entity.name + ' #' + i;
25586
25577
  return Object.assign(Object.assign({}, entity), { id: i++, name });
25587
25578
  }));
@@ -25591,7 +25582,7 @@ function deepCopy(values, size) {
25591
25582
  class ChipsTestPage {
25592
25583
  constructor(formBuilder) {
25593
25584
  this.formBuilder = formBuilder;
25594
- this._items = deepCopy(FAKE_ENTITIES, 100);
25585
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
25595
25586
  this._$items = new BehaviorSubject(undefined);
25596
25587
  this.autocompleteFields = new MatAutocompleteConfigHolder();
25597
25588
  this.form = formBuilder.group({
@@ -25630,7 +25621,7 @@ class ChipsTestPage {
25630
25621
  // Load the form with data
25631
25622
  loadData() {
25632
25623
  return __awaiter(this, void 0, void 0, function* () {
25633
- const items = deepCopy(FAKE_ENTITIES);
25624
+ const items = deepCopy$1(FAKE_ENTITIES$1);
25634
25625
  const data = {
25635
25626
  entity: items.slice(0, 1),
25636
25627
  entityInitial: items.slice(1, 2),
@@ -25757,7 +25748,7 @@ const SHARED_MATERIAL_TESTING_PAGES = [
25757
25748
  { label: 'Shared directives', divider: true },
25758
25749
  { label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
25759
25750
  ];
25760
- const routes$4 = [
25751
+ const routes$1 = [
25761
25752
  {
25762
25753
  path: '',
25763
25754
  pathMatch: 'full',
@@ -25809,7 +25800,7 @@ MaterialTestingModule.decorators = [
25809
25800
  ReactiveFormsModule,
25810
25801
  SharedMaterialModule,
25811
25802
  TranslateModule.forChild(),
25812
- RouterModule.forChild(routes$4)
25803
+ RouterModule.forChild(routes$1)
25813
25804
  ],
25814
25805
  declarations: [
25815
25806
  DateTimeTestPage,
@@ -25868,7 +25859,7 @@ ToastTestingPage.ctorParameters = () => [
25868
25859
  { type: TranslateService }
25869
25860
  ];
25870
25861
 
25871
- const routes$3 = [
25862
+ const routes$2 = [
25872
25863
  {
25873
25864
  path: 'toast',
25874
25865
  pathMatch: 'full',
@@ -25883,7 +25874,7 @@ ToastTestingModule.decorators = [
25883
25874
  CommonModule,
25884
25875
  IonicModule,
25885
25876
  TranslateModule.forChild(),
25886
- RouterModule.forChild(routes$3)
25877
+ RouterModule.forChild(routes$2)
25887
25878
  ],
25888
25879
  declarations: [
25889
25880
  ToastTestingPage
@@ -25946,7 +25937,7 @@ UploadFileTestingPage.ctorParameters = () => [
25946
25937
  { type: PopoverController }
25947
25938
  ];
25948
25939
 
25949
- const routes$2 = [
25940
+ const routes$3 = [
25950
25941
  {
25951
25942
  path: 'upload-file',
25952
25943
  pathMatch: 'full',
@@ -25961,7 +25952,7 @@ UploadFileTestingModule.decorators = [
25961
25952
  CommonModule,
25962
25953
  IonicModule,
25963
25954
  TranslateModule.forChild(),
25964
- RouterModule.forChild(routes$2)
25955
+ RouterModule.forChild(routes$3)
25965
25956
  ],
25966
25957
  declarations: [
25967
25958
  UploadFileTestingPage
@@ -26342,7 +26333,7 @@ TextPopoverTestingPage.ctorParameters = () => [
26342
26333
  { type: PopoverController }
26343
26334
  ];
26344
26335
 
26345
- const routes$1 = [
26336
+ const routes$4 = [
26346
26337
  {
26347
26338
  path: 'text-popover',
26348
26339
  pathMatch: 'full',
@@ -26357,7 +26348,7 @@ TextPopoverTestingModule.decorators = [
26357
26348
  CommonModule,
26358
26349
  IonicModule,
26359
26350
  TranslateModule.forChild(),
26360
- RouterModule.forChild(routes$1)
26351
+ RouterModule.forChild(routes$4)
26361
26352
  ],
26362
26353
  declarations: [
26363
26354
  TextPopoverTestingPage
@@ -26374,7 +26365,7 @@ const CORE_TESTING_PAGES = [
26374
26365
  { label: 'Table', page: '/testing/core/table' },
26375
26366
  { label: 'Text popover', page: '/testing/core/text-popover' }
26376
26367
  ];
26377
- const routes = [
26368
+ const routes$5 = [
26378
26369
  {
26379
26370
  path: '',
26380
26371
  pathMatch: 'full',
@@ -26398,7 +26389,7 @@ CoreTestingModule.decorators = [
26398
26389
  imports: [
26399
26390
  CommonModule,
26400
26391
  TranslateModule.forChild(),
26401
- RouterModule.forChild(routes),
26392
+ RouterModule.forChild(routes$5),
26402
26393
  // Sub modules
26403
26394
  TableTestingModule,
26404
26395
  TextPopoverTestingModule
@@ -26418,5 +26409,5 @@ CoreTestingModule.decorators = [
26418
26409
  * Generated bundle index. Do not edit.
26419
26410
  */
26420
26411
 
26421
- 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, AppEditor, 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, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, 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, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, 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, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, 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, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, 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, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, 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, isAndroid, isControlHasInput, isCordova, isDesktop, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isTouchUi, isWindow, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, 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, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$b as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, NumpadTestPage as ɵj, MatBadgeIconTestPage as ɵk, ToastTestingModule as ɵl, ToastTestingPage as ɵm };
26412
+ 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, AppEditor, 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, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, 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, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, 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, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, 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, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, 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, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, 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, isAndroid, isControlHasInput, isCordova, isDesktop, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isTouchUi, isWindow, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, 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, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$1 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, NumpadTestPage as ɵj, MatBadgeIconTestPage as ɵk, ToastTestingModule as ɵl, ToastTestingPage as ɵm };
26422
26413
  //# sourceMappingURL=sumaris-net.ngx-components.js.map