@sumaris-net/ngx-components 0.13.9 → 0.13.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,9 +1,12 @@
1
- import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Inject, Renderer2 } from '@angular/core';
1
+ import * as i0 from '@angular/core';
2
+ import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, Pipe, Injectable, Directive, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, Injector, Inject, Renderer2 } from '@angular/core';
3
+ import * as i1$3 from '@angular/common';
2
4
  import { CommonModule, DOCUMENT, Location } from '@angular/common';
3
5
  import { CdkTableModule } from '@angular/cdk/table';
4
6
  import { A11yModule } from '@angular/cdk/a11y';
5
7
  import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
6
8
  import { ScrollingModule } from '@angular/cdk/scrolling';
9
+ import * as i1$2 from '@angular/material/core';
7
10
  import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
8
11
  import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
9
12
  import { MatSortModule, MatSort } from '@angular/material/sort';
@@ -27,16 +30,21 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
27
30
  import { MatRadioModule } from '@angular/material/radio';
28
31
  import { MatBadgeModule } from '@angular/material/badge';
29
32
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
33
+ import * as i2$1 from '@angular/material/dialog';
30
34
  import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
31
35
  import { MatAutocompleteModule, MatAutocompleteTrigger, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
32
36
  import { __awaiter, __decorate } from 'tslib';
37
+ import * as i1$6 from '@angular/forms';
33
38
  import { NG_VALUE_ACCESSOR, FormGroupDirective, ReactiveFormsModule, AbstractControl, Validators, FormBuilder, FormControl, FormGroup, FormArray } from '@angular/forms';
34
39
  import { fromEvent, Subscription, BehaviorSubject, Subject, isObservable, merge, of, timer, noop as noop$8, Observable, defer, concat, combineLatest, EMPTY } from 'rxjs';
35
40
  import { filter, first, startWith, debounceTime, takeWhile, switchMap, tap, map, distinctUntilChanged, mergeMap, takeUntil, catchError, throttleTime } from 'rxjs/operators';
41
+ import * as i1$1 from '@ngx-translate/core';
36
42
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
43
+ import * as i1$4 from '@ionic/angular';
37
44
  import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, IonicRouteStrategy, NavParams, AlertController, MenuController, IonContent } from '@ionic/angular';
38
45
  import * as momentImported from 'moment';
39
46
  import { isMoment } from 'moment';
47
+ import * as i1 from '@angular/material-moment-adapter';
40
48
  import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
41
49
  import { Keyboard } from '@ionic-native/keyboard/ngx';
42
50
  import { TextMaskModule } from 'angular2-text-mask';
@@ -46,32 +54,38 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
46
54
  import { MatDividerModule } from '@angular/material/divider';
47
55
  import { MatTooltipModule } from '@angular/material/tooltip';
48
56
  import { MatChipsModule } from '@angular/material/chips';
57
+ import * as i3$3 from '@angular/router';
49
58
  import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
59
+ import * as i1$5 from '@angular/platform-browser';
50
60
  import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
61
+ import * as i2$2 from '@angular/common/http';
51
62
  import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
52
63
  import { ColorPickerModule } from 'ngx-color-picker';
53
- import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
54
- import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
64
+ import { NativeAudio } from '@ionic-native/native-audio/ngx';
65
+ import { Vibration } from '@ionic-native/vibration/ngx';
55
66
  import { AudioManagement } from '@ionic-native/audio-management/ngx';
56
- import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
57
- import { Vibration } from '@ionic-native/vibration/ngx/index';
58
- import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
67
+ import * as i2 from '@ionic-native/native-audio/ngx/index';
68
+ import * as i3 from '@ionic-native/vibration/ngx/index';
69
+ import * as i4 from '@ionic-native/audio-management/ngx/index';
59
70
  import * as uuidv4Imported from 'uuid/v4';
60
71
  import { DragDropModule } from '@angular/cdk/drag-drop';
61
72
  import { MarkdownModule } from 'ngx-markdown';
62
73
  import { sign, box, hash, verify } from 'tweetnacl';
74
+ import * as i3$1 from '@ionic/storage';
63
75
  import { Storage, IonicStorageModule } from '@ionic/storage';
64
76
  import 'zone.js/dist/zone-error';
65
- import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
66
- import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
67
- import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
68
- import { CacheService } from 'ionic-cache/dist/cache.service';
69
- import { Network } from '@ionic-native/network/ngx/index';
70
- import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
71
- import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
77
+ import { SplashScreen } from '@ionic-native/splash-screen/ngx';
78
+ import { Connection, Network } from '@ionic-native/network/ngx';
79
+ import { CacheService, CacheModule } from 'ionic-cache';
80
+ import * as i6 from 'ionic-cache/dist/cache.service';
81
+ import * as i9 from '@ionic-native/network/ngx/index';
82
+ import * as i10 from '@ionic-native/splash-screen/ngx/index';
83
+ import { StatusBar } from '@ionic-native/status-bar/ngx';
84
+ import * as i2$4 from '@angular/cdk/platform';
72
85
  import { Platform as Platform$1 } from '@angular/cdk/platform';
73
- import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
86
+ import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
74
87
  import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
88
+ import * as i2$3 from 'apollo-angular';
75
89
  import { Apollo } from 'apollo-angular';
76
90
  import { WebSocketLink } from '@apollo/client/link/ws';
77
91
  import { getMainDefinition } from '@apollo/client/utilities';
@@ -79,11 +93,12 @@ import { RetryLink } from '@apollo/client/link/retry';
79
93
  import QueueLink from 'apollo-link-queue';
80
94
  import SerializingLink from 'apollo-link-serialize';
81
95
  import loggerLink from 'apollo-link-logger';
96
+ import * as i3$2 from 'apollo-angular/http';
82
97
  import { HttpLink } from 'apollo-angular/http';
83
98
  import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
84
- import { StatusBar } from '@ionic-native/status-bar/ngx/index';
85
- import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
86
- import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
99
+ import * as i14 from '@ionic-native/status-bar/ngx/index';
100
+ import * as i15 from '@ionic-native/keyboard/ngx/index';
101
+ import * as i17 from '@ionic-native/in-app-browser/ngx/index';
87
102
  import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
88
103
  import { SelectionModel } from '@angular/cdk/collections';
89
104
  import { NgxJdenticonModule } from 'ngx-jdenticon';
@@ -116,6 +131,9 @@ function isNotNilOrBlank(obj) {
116
131
  function isNotNilOrNaN(obj) {
117
132
  return obj !== undefined && obj !== null && (typeof obj !== 'number' || !isNaN(obj));
118
133
  }
134
+ function isNilOrNaN(obj) {
135
+ return obj === undefined || obj === null || (typeof obj === 'number' && isNaN(obj));
136
+ }
119
137
  function isNotEmptyArray(obj) {
120
138
  return obj !== undefined && obj !== null && obj.length > 0;
121
139
  }
@@ -847,19 +865,19 @@ class MatAutocompleteConfigHolder {
847
865
  return this.fields[fieldName] || this.add(fieldName);
848
866
  }
849
867
  }
850
- const DEFAULT_VALUE_ACCESSOR = {
868
+ const DEFAULT_VALUE_ACCESSOR$6 = {
851
869
  provide: NG_VALUE_ACCESSOR,
852
870
  useExisting: forwardRef(() => MatAutocompleteField),
853
871
  multi: true
854
872
  };
855
- const noop = () => { };
856
- const ɵ0 = noop;
873
+ const noop$7 = () => { };
874
+ const ɵ0$a = noop$7;
857
875
  class MatAutocompleteField {
858
876
  constructor(cd, formGroupDir) {
859
877
  this.cd = cd;
860
878
  this.formGroupDir = formGroupDir;
861
- this._onChangeCallback = noop;
862
- this._onTouchedCallback = noop;
879
+ this._onChangeCallback = noop$7;
880
+ this._onTouchedCallback = noop$7;
863
881
  this._subscription = new Subscription();
864
882
  this._filter$ = new BehaviorSubject(undefined);
865
883
  this._reload$ = new Subject();
@@ -1032,7 +1050,7 @@ class MatAutocompleteField {
1032
1050
  }
1033
1051
  }),
1034
1052
  // Filter if not enough character
1035
- filter(value => value && value.length >= this.suggestLengthThreshold),
1053
+ filter(value => value.length >= this.suggestLengthThreshold),
1036
1054
  // Wait a debounce time
1037
1055
  debounceTime(this.debounceTime)),
1038
1056
  // Object set: use it (no distinctUntilChanged() pipe need)
@@ -1375,7 +1393,7 @@ MatAutocompleteField.decorators = [
1375
1393
  // eslint-disable-next-line @angular-eslint/component-selector
1376
1394
  selector: 'mat-autocomplete-field',
1377
1395
  template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <!-- readonly -->\n <ng-container *ngIf=\"readonly; else writable\">\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n readonly>\n <ion-label>{{ displayWith(value) }}&nbsp;</ion-label>\n </ng-container>\n\n <ng-template #writable>\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 [compareWith]=\"compareWith\"\n [multiple]=\"multiple\">\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 <a class=\"ion-padding mat-option \"\n *ngIf=\"_moreItemsCount\"\n (click)=\"_fetchMore$.emit($event)\" >\n <ion-label color=\"primary\" style=\"width: 100%;\">\n <span translate>COMMON.BTN_SHOW_MORE</span>\n <mat-icon class=\"ion-color-primary\">expand_more</mat-icon>\n </ion-label>\n </a>\n </ng-container>\n </mat-select>\n </ng-template>\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 [readonly]=\"readonly\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"filterInputTextFocusInEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keyup.arrowdown)=\"!autoComplete.showPanel && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autoComplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\" >\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initInfiniteScroll()\"\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\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\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 </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n",
1378
- providers: [DEFAULT_VALUE_ACCESSOR],
1396
+ providers: [DEFAULT_VALUE_ACCESSOR$6],
1379
1397
  changeDetection: ChangeDetectionStrategy.OnPush,
1380
1398
  styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.fact-scroll-viewport{height:100%;width:100%}.fact-item{height:54px;display:flex}.fact-item .fact-date{min-width:100px;text-align:center;font-size:24pt}.fact-item .fact-date,.fact-item .fact-text{height:100%;align-items:center;justify-content:center;display:flex}.fact-item .fact-text{border-radius:10px}cdk-virtual-scroll-viewport{border:1px solid #000}cdk-virtual-scroll-viewport li{list-style:none}"]
1381
1399
  },] }
@@ -1449,7 +1467,7 @@ class DateFormatPipe {
1449
1467
  return this.dateAdapter.format(date, displayFormat);
1450
1468
  }
1451
1469
  }
1452
- DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1470
+ DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1453
1471
  DateFormatPipe.decorators = [
1454
1472
  { type: Pipe, args: [{
1455
1473
  name: 'dateFormat'
@@ -1461,7 +1479,7 @@ DateFormatPipe.ctorParameters = () => [
1461
1479
  { type: TranslateService }
1462
1480
  ];
1463
1481
 
1464
- const moment = momentImported;
1482
+ const moment$6 = momentImported;
1465
1483
  class DateDiffDurationPipe {
1466
1484
  constructor(dateAdapter, translate) {
1467
1485
  this.dateAdapter = dateAdapter;
@@ -1477,17 +1495,17 @@ class DateDiffDurationPipe {
1477
1495
  return this.format(startDate, endDate);
1478
1496
  }
1479
1497
  format(startDate, endDate) {
1480
- const duration = moment.duration(endDate.diff(startDate));
1498
+ const duration = moment$6.duration(endDate.diff(startDate));
1481
1499
  if (duration.asMinutes() < 0)
1482
1500
  return '';
1483
- const timeDuration = moment(0)
1501
+ const timeDuration = moment$6(0)
1484
1502
  .hour(duration.hours())
1485
1503
  .minute(duration.minutes());
1486
1504
  const days = Math.floor(duration.asDays());
1487
1505
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
1488
1506
  }
1489
1507
  }
1490
- DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
1508
+ 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" });
1491
1509
  DateDiffDurationPipe.decorators = [
1492
1510
  { type: Pipe, args: [{
1493
1511
  name: 'dateDiffDuration'
@@ -1508,7 +1526,7 @@ class DateFromNowPipe {
1508
1526
  return date ? date.fromNow(args && args.withoutSuffix) : '';
1509
1527
  }
1510
1528
  }
1511
- DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1529
+ DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1512
1530
  DateFromNowPipe.decorators = [
1513
1531
  { type: Pipe, args: [{
1514
1532
  name: 'dateFromNow'
@@ -1577,7 +1595,7 @@ function formatToDD(value, opts) {
1577
1595
  value *= -1;
1578
1596
  }
1579
1597
  }
1580
- let degrees = roundFloat(value, opts.maxDecimals).toString();
1598
+ let degrees = roundFloat$1(value, opts.maxDecimals).toString();
1581
1599
  // Add sign
1582
1600
  let sign = negative ? '-' : '+';
1583
1601
  if (opts.placeholderChar) {
@@ -1628,7 +1646,7 @@ function formatToDDMMSS(value, opts) {
1628
1646
  }
1629
1647
  let degrees = Math.trunc(value);
1630
1648
  let minutes = Math.trunc((value - degrees) * 60);
1631
- let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1649
+ let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1632
1650
  while (seconds >= 60) {
1633
1651
  seconds -= 60;
1634
1652
  minutes += 1;
@@ -1696,7 +1714,7 @@ function formatToDDMM(value, opts) {
1696
1714
  }
1697
1715
  }
1698
1716
  let degrees = Math.trunc(value);
1699
- let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
1717
+ let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
1700
1718
  while (minutes >= 60) {
1701
1719
  minutes -= 60;
1702
1720
  degrees += 1;
@@ -1747,15 +1765,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
1747
1765
  return NaN;
1748
1766
  }
1749
1767
  if (pattern === 'DD')
1750
- return roundFloat(degrees, maxDecimals);
1768
+ return roundFloat$1(degrees, maxDecimals);
1751
1769
  const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
1752
1770
  const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
1753
1771
  const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
1754
1772
  const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
1755
1773
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
1756
- return roundFloat(degrees, maxDecimals);
1774
+ return roundFloat$1(degrees, maxDecimals);
1757
1775
  }
1758
- function roundFloat(input, maxDecimals) {
1776
+ function roundFloat$1(input, maxDecimals) {
1759
1777
  if (maxDecimals > 0) {
1760
1778
  const powDecimal = Math.pow(10, maxDecimals);
1761
1779
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -1775,7 +1793,7 @@ class LatLongFormatPipe {
1775
1793
  return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
1776
1794
  }
1777
1795
  }
1778
- LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
1796
+ LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
1779
1797
  LatLongFormatPipe.decorators = [
1780
1798
  { type: Pipe, args: [{
1781
1799
  name: 'latLongFormat'
@@ -1787,7 +1805,7 @@ class LatitudeFormatPipe {
1787
1805
  this.transform = formatLatitude;
1788
1806
  }
1789
1807
  }
1790
- LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
1808
+ LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
1791
1809
  LatitudeFormatPipe.decorators = [
1792
1810
  { type: Pipe, args: [{
1793
1811
  name: 'latitudeFormat'
@@ -1799,7 +1817,7 @@ class LongitudeFormatPipe {
1799
1817
  this.transform = formatLongitude;
1800
1818
  }
1801
1819
  }
1802
- LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
1820
+ LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
1803
1821
  LongitudeFormatPipe.decorators = [
1804
1822
  { type: Pipe, args: [{
1805
1823
  name: 'longitudeFormat'
@@ -1819,7 +1837,7 @@ class NumberFormatPipe {
1819
1837
  }
1820
1838
  }
1821
1839
  }
1822
- NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
1840
+ NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
1823
1841
  NumberFormatPipe.decorators = [
1824
1842
  { type: Pipe, args: [{
1825
1843
  name: 'numberFormat'
@@ -1859,7 +1877,7 @@ class HighlightPipe {
1859
1877
  }
1860
1878
  }
1861
1879
  }
1862
- HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
1880
+ HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
1863
1881
  HighlightPipe.decorators = [
1864
1882
  { type: Pipe, args: [{
1865
1883
  name: 'highlight'
@@ -1924,7 +1942,7 @@ FileSizePipe.decorators = [
1924
1942
  { type: Pipe, args: [{ name: 'fileSize' },] }
1925
1943
  ];
1926
1944
 
1927
- const moment$1 = momentImported;
1945
+ const moment$5 = momentImported;
1928
1946
  const DATE_UNIX_TIMESTAMP = 'X';
1929
1947
  const DATE_UNIX_MS_TIMESTAMP = 'x';
1930
1948
  class DateUtils {
@@ -1958,32 +1976,32 @@ function fromDateISOString(value) {
1958
1976
  if (!value || isMoment(value))
1959
1977
  return value;
1960
1978
  // Parse the input value, as a ISO date time
1961
- const date = moment$1(value, DATE_ISO_PATTERN);
1979
+ const date = moment$5(value, DATE_ISO_PATTERN);
1962
1980
  if (date.isValid())
1963
1981
  return date;
1964
1982
  // Not valid: trying to convert from unix timestamp
1965
1983
  if (typeof value === 'string') {
1966
1984
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
1967
1985
  if (value.length === 10) {
1968
- return moment$1(value, DATE_UNIX_TIMESTAMP);
1986
+ return moment$5(value, DATE_UNIX_TIMESTAMP);
1969
1987
  }
1970
1988
  else if (value.length === 13) {
1971
- return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
1989
+ return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
1972
1990
  }
1973
1991
  }
1974
1992
  console.warn('Unable to parse date: ' + value);
1975
1993
  return undefined;
1976
1994
  }
1977
1995
  function fromUnixTimestamp(timeInSec) {
1978
- return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
1996
+ return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
1979
1997
  }
1980
1998
  function fromUnixMsTimestamp(timeInMs) {
1981
- return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
1999
+ return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
1982
2000
  }
1983
2001
  function toDuration(value, unit) {
1984
2002
  if (!value)
1985
2003
  return undefined;
1986
- const duration = moment$1.duration(value, unit);
2004
+ const duration = moment$5.duration(value, unit);
1987
2005
  // fix 990+ ms
1988
2006
  if (duration.milliseconds() >= 990) {
1989
2007
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2012,7 +2030,7 @@ class DurationPipe {
2012
2030
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
2013
2031
  }
2014
2032
  }
2015
- DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
2033
+ DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2016
2034
  DurationPipe.decorators = [
2017
2035
  { type: Pipe, args: [{
2018
2036
  name: 'duration'
@@ -2033,7 +2051,7 @@ class MathAbsPipe {
2033
2051
  }
2034
2052
  }
2035
2053
  }
2036
- MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2054
+ MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2037
2055
  MathAbsPipe.decorators = [
2038
2056
  { type: Pipe, args: [{
2039
2057
  name: 'mathAbs'
@@ -2045,7 +2063,7 @@ class EvenPipe {
2045
2063
  return val % 2 === 0;
2046
2064
  }
2047
2065
  }
2048
- EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2066
+ EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2049
2067
  EvenPipe.decorators = [
2050
2068
  { type: Pipe, args: [{
2051
2069
  name: 'even'
@@ -2057,7 +2075,7 @@ class OddPipe {
2057
2075
  return val % 2 !== 0;
2058
2076
  }
2059
2077
  }
2060
- OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2078
+ OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2061
2079
  OddPipe.decorators = [
2062
2080
  { type: Pipe, args: [{
2063
2081
  name: 'odd'
@@ -2165,7 +2183,7 @@ class MapGetPipe {
2165
2183
  return val[key];
2166
2184
  }
2167
2185
  }
2168
- MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2186
+ MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2169
2187
  MapGetPipe.decorators = [
2170
2188
  { type: Pipe, args: [{
2171
2189
  name: 'mapGet'
@@ -2179,7 +2197,7 @@ class MapKeysPipe {
2179
2197
  return Object.keys(map);
2180
2198
  }
2181
2199
  }
2182
- MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2200
+ MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2183
2201
  MapKeysPipe.decorators = [
2184
2202
  { type: Pipe, args: [{
2185
2203
  name: 'mapKeys'
@@ -2193,7 +2211,7 @@ class MapValuesPipe {
2193
2211
  return Object.values(map);
2194
2212
  }
2195
2213
  }
2196
- MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2214
+ MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2197
2215
  MapValuesPipe.decorators = [
2198
2216
  { type: Pipe, args: [{
2199
2217
  name: 'mapValues'
@@ -2206,7 +2224,7 @@ class IsNotNilOrBlankPipe {
2206
2224
  return isNotNilOrBlank(value);
2207
2225
  }
2208
2226
  }
2209
- IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2227
+ IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2210
2228
  IsNotNilOrBlankPipe.decorators = [
2211
2229
  { type: Pipe, args: [{
2212
2230
  name: 'isNotNilOrBlank'
@@ -2218,7 +2236,7 @@ class IsNilOrBlankPipe {
2218
2236
  return isNilOrBlank(value);
2219
2237
  }
2220
2238
  }
2221
- IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2239
+ IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2222
2240
  IsNilOrBlankPipe.decorators = [
2223
2241
  { type: Pipe, args: [{
2224
2242
  name: 'isNilOrBlank'
@@ -2230,7 +2248,7 @@ class ToStringPipe {
2230
2248
  return (value !== null && value !== undefined) ? value.toString() : '';
2231
2249
  }
2232
2250
  }
2233
- ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2251
+ ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2234
2252
  ToStringPipe.decorators = [
2235
2253
  { type: Pipe, args: [{
2236
2254
  name: 'toString'
@@ -2242,7 +2260,7 @@ class StrLengthPipe {
2242
2260
  return value && value.length || 0;
2243
2261
  }
2244
2262
  }
2245
- StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2263
+ StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2246
2264
  StrLengthPipe.decorators = [
2247
2265
  { type: Pipe, args: [{
2248
2266
  name: 'strLength'
@@ -2293,7 +2311,7 @@ class TranslateContextService {
2293
2311
  : parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
2294
2312
  }
2295
2313
  }
2296
- TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2314
+ TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2297
2315
  TranslateContextService.decorators = [
2298
2316
  { type: Injectable, args: [{ providedIn: 'root' },] }
2299
2317
  ];
@@ -2309,7 +2327,7 @@ class TranslateContextPipe {
2309
2327
  return this.translateContext.instant(key, context);
2310
2328
  }
2311
2329
  }
2312
- TranslateContextPipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2330
+ TranslateContextPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2313
2331
  TranslateContextPipe.decorators = [
2314
2332
  { type: Pipe, args: [{
2315
2333
  name: 'translateContext'
@@ -2326,7 +2344,7 @@ class TranslatablePipe {
2326
2344
  return (_a = changeCaseToUnderscore(value)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
2327
2345
  }
2328
2346
  }
2329
- TranslatablePipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2347
+ TranslatablePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2330
2348
  TranslatablePipe.decorators = [
2331
2349
  { type: Pipe, args: [{
2332
2350
  name: 'translatable'
@@ -2343,7 +2361,7 @@ class PropertyGetPipe {
2343
2361
  args && args.defaultValue);
2344
2362
  }
2345
2363
  }
2346
- PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2364
+ PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2347
2365
  PropertyGetPipe.decorators = [
2348
2366
  { type: Pipe, args: [{
2349
2367
  name: 'propertyGet'
@@ -2587,12 +2605,12 @@ SharedMatAutocompleteModule.decorators = [
2587
2605
  },] }
2588
2606
  ];
2589
2607
 
2590
- const moment$2 = momentImported;
2608
+ const moment$4 = momentImported;
2591
2609
  // @dynamic
2592
2610
  class SharedValidators {
2593
2611
  static validDate(control) {
2594
2612
  const value = control.value;
2595
- const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
2613
+ const date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
2596
2614
  if (date && (!date.isValid() || date.year() < 1970)) {
2597
2615
  return { validDate: true };
2598
2616
  }
@@ -2995,9 +3013,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
2995
3013
  const hour = parseInt(durationParts[0] || '0');
2996
3014
  const minute = parseInt(durationParts[1] || '0');
2997
3015
  const value = hour + (minute + 0.5) / 60;
2998
- return roundFloat$1(value, maxDecimals);
3016
+ return roundFloat(value, maxDecimals);
2999
3017
  }
3000
- function roundFloat$1(input, maxDecimals) {
3018
+ function roundFloat(input, maxDecimals) {
3001
3019
  if (maxDecimals > 0) {
3002
3020
  const powDecimal = Math.pow(10, maxDecimals);
3003
3021
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -3021,9 +3039,9 @@ const MASKS = {
3021
3039
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
3022
3040
  }
3023
3041
  };
3024
- const noop$1 = () => {
3042
+ const noop$6 = () => {
3025
3043
  };
3026
- const ɵ0$1 = noop$1;
3044
+ const ɵ0$9 = noop$6;
3027
3045
  class MatLatLongField {
3028
3046
  constructor(platform, translate, formBuilder, cd, formGroupDir) {
3029
3047
  this.platform = platform;
@@ -3031,8 +3049,8 @@ class MatLatLongField {
3031
3049
  this.formBuilder = formBuilder;
3032
3050
  this.cd = cd;
3033
3051
  this.formGroupDir = formGroupDir;
3034
- this._onChangeCallback = noop$1;
3035
- this._onTouchedCallback = noop$1;
3052
+ this._onChangeCallback = noop$6;
3053
+ this._onTouchedCallback = noop$6;
3036
3054
  this._subscription = new Subscription();
3037
3055
  this.disabling = false;
3038
3056
  this.writing = false;
@@ -3373,14 +3391,14 @@ SharedMatLatLongModule.decorators = [
3373
3391
  },] }
3374
3392
  ];
3375
3393
 
3376
- const DEFAULT_VALUE_ACCESSOR$1 = {
3394
+ const DEFAULT_VALUE_ACCESSOR$5 = {
3377
3395
  provide: NG_VALUE_ACCESSOR,
3378
3396
  useExisting: forwardRef(() => MatDate),
3379
3397
  multi: true
3380
3398
  };
3381
- const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
3382
- const noop$2 = () => { };
3383
- const ɵ0$2 = noop$2;
3399
+ const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
3400
+ const noop$5 = () => { };
3401
+ const ɵ0$8 = noop$5;
3384
3402
  class MatDate {
3385
3403
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
3386
3404
  this.dateAdapter = dateAdapter;
@@ -3389,12 +3407,12 @@ class MatDate {
3389
3407
  this.cd = cd;
3390
3408
  this.keyboard = keyboard;
3391
3409
  this.formGroupDir = formGroupDir;
3392
- this._onChangeCallback = noop$2;
3393
- this._onTouchedCallback = noop$2;
3410
+ this._onChangeCallback = noop$5;
3411
+ this._onTouchedCallback = noop$5;
3394
3412
  this._subscription = new Subscription();
3395
3413
  this.writing = true;
3396
3414
  this.disabling = false;
3397
- this.dayMask = DAY_MASK;
3415
+ this.dayMask = DAY_MASK$2;
3398
3416
  this.disabled = false;
3399
3417
  this.floatLabel = 'auto';
3400
3418
  this.readonly = false;
@@ -3631,7 +3649,7 @@ MatDate.decorators = [
3631
3649
  selector: 'mat-date-field',
3632
3650
  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",
3633
3651
  providers: [
3634
- DEFAULT_VALUE_ACCESSOR$1,
3652
+ DEFAULT_VALUE_ACCESSOR$5,
3635
3653
  ],
3636
3654
  changeDetection: ChangeDetectionStrategy.OnPush,
3637
3655
  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%}"]
@@ -3664,17 +3682,17 @@ MatDate.propDecorators = {
3664
3682
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
3665
3683
  };
3666
3684
 
3667
- const DEFAULT_VALUE_ACCESSOR$2 = {
3685
+ const DEFAULT_VALUE_ACCESSOR$4 = {
3668
3686
  provide: NG_VALUE_ACCESSOR,
3669
3687
  useExisting: forwardRef(() => MatDateTime),
3670
3688
  multi: true
3671
3689
  };
3672
3690
  const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
3673
3691
  const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
3674
- const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
3675
- const noop$3 = () => {
3692
+ const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
3693
+ const noop$4 = () => {
3676
3694
  };
3677
- const ɵ0$3 = noop$3;
3695
+ const ɵ0$7 = noop$4;
3678
3696
  class MatDateTime {
3679
3697
  constructor(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
3680
3698
  this.platform = platform;
@@ -3684,14 +3702,14 @@ class MatDateTime {
3684
3702
  this.keyboard = keyboard;
3685
3703
  this.cd = cd;
3686
3704
  this.formGroupDir = formGroupDir;
3687
- this._onChangeCallback = noop$3;
3688
- this._onTouchedCallback = noop$3;
3705
+ this._onChangeCallback = noop$4;
3706
+ this._onTouchedCallback = noop$4;
3689
3707
  this._subscription = new Subscription();
3690
3708
  this.writing = true;
3691
3709
  this.disabling = false;
3692
3710
  this._onDestroy = new EventEmitter();
3693
3711
  this.dayMask = DAY_MASK$1;
3694
- this.hourMask = HOUR_MASK;
3712
+ this.hourMask = HOUR_MASK$1;
3695
3713
  this.floatLabel = 'auto';
3696
3714
  this.readonly = false;
3697
3715
  this.compact = false;
@@ -3997,7 +4015,7 @@ MatDateTime.decorators = [
3997
4015
  selector: 'mat-date-time-field',
3998
4016
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\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><ng-content select=\"[matPrefix]\"></ng-content></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}}</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",
3999
4017
  providers: [
4000
- DEFAULT_VALUE_ACCESSOR$2,
4018
+ DEFAULT_VALUE_ACCESSOR$4,
4001
4019
  ],
4002
4020
  changeDetection: ChangeDetectionStrategy.OnPush,
4003
4021
  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%}"]
@@ -4036,10 +4054,10 @@ const DEFAULT_VALUE_ACCESSOR$3 = {
4036
4054
  useExisting: forwardRef(() => MatDateShort),
4037
4055
  multi: true
4038
4056
  };
4039
- const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
4040
- const noop$4 = () => {
4057
+ const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
4058
+ const noop$3 = () => {
4041
4059
  };
4042
- const ɵ0$4 = noop$4;
4060
+ const ɵ0$6 = noop$3;
4043
4061
  class MatDateShort {
4044
4062
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4045
4063
  this.dateAdapter = dateAdapter;
@@ -4048,11 +4066,11 @@ class MatDateShort {
4048
4066
  this.cd = cd;
4049
4067
  this.keyboard = keyboard;
4050
4068
  this.formGroupDir = formGroupDir;
4051
- this._onChangeCallback = noop$4;
4052
- this._onTouchedCallback = noop$4;
4069
+ this._onChangeCallback = noop$3;
4070
+ this._onTouchedCallback = noop$3;
4053
4071
  this.writing = true;
4054
4072
  this.disabling = false;
4055
- this.dayMask = DAY_MASK$2;
4073
+ this.dayMask = DAY_MASK;
4056
4074
  this.disabled = false;
4057
4075
  this.floatLabel = 'auto';
4058
4076
  this.readonly = false;
@@ -4365,16 +4383,16 @@ SharedMatDateTimeModule.decorators = [
4365
4383
  },] }
4366
4384
  ];
4367
4385
 
4368
- const DEFAULT_VALUE_ACCESSOR$4 = {
4386
+ const DEFAULT_VALUE_ACCESSOR$2 = {
4369
4387
  provide: NG_VALUE_ACCESSOR,
4370
4388
  useExisting: forwardRef(() => MatDuration),
4371
4389
  multi: true
4372
4390
  };
4373
4391
  const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
4374
- const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
4375
- const noop$5 = () => {
4392
+ const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
4393
+ const noop$2 = () => {
4376
4394
  };
4377
- const ɵ0$5 = noop$5;
4395
+ const ɵ0$5 = noop$2;
4378
4396
  class MatDuration {
4379
4397
  constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
4380
4398
  this.dateAdapter = dateAdapter;
@@ -4383,11 +4401,11 @@ class MatDuration {
4383
4401
  this.cd = cd;
4384
4402
  this.formGroupDir = formGroupDir;
4385
4403
  this._subscription = new Subscription();
4386
- this._onChangeCallback = noop$5;
4387
- this._onTouchedCallback = noop$5;
4404
+ this._onChangeCallback = noop$2;
4405
+ this._onTouchedCallback = noop$2;
4388
4406
  this.writing = true;
4389
4407
  this.disabling = false;
4390
- this.hourMask = HOUR_MASK$1;
4408
+ this.hourMask = HOUR_MASK;
4391
4409
  this.disabled = false;
4392
4410
  this.floatLabel = 'auto';
4393
4411
  this.readonly = false;
@@ -4567,7 +4585,7 @@ MatDuration.decorators = [
4567
4585
  selector: 'mat-duration-field',
4568
4586
  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",
4569
4587
  providers: [
4570
- DEFAULT_VALUE_ACCESSOR$4,
4588
+ DEFAULT_VALUE_ACCESSOR$2,
4571
4589
  ],
4572
4590
  changeDetection: ChangeDetectionStrategy.OnPush,
4573
4591
  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%}"]
@@ -4624,22 +4642,22 @@ SharedMatDurationModule.decorators = [
4624
4642
  },] }
4625
4643
  ];
4626
4644
 
4627
- const DEFAULT_VALUE_ACCESSOR$5 = {
4645
+ const DEFAULT_VALUE_ACCESSOR$1 = {
4628
4646
  provide: NG_VALUE_ACCESSOR,
4629
4647
  useExisting: forwardRef(() => MatBooleanField),
4630
4648
  multi: true
4631
4649
  };
4632
- const noop$6 = () => {
4650
+ const noop$1 = () => {
4633
4651
  };
4634
- const ɵ0$6 = noop$6;
4652
+ const ɵ0$4 = noop$1;
4635
4653
  class MatBooleanField {
4636
4654
  constructor(translate, formBuilder, cd, formGroupDir) {
4637
4655
  this.translate = translate;
4638
4656
  this.formBuilder = formBuilder;
4639
4657
  this.cd = cd;
4640
4658
  this.formGroupDir = formGroupDir;
4641
- this._onChangeCallback = noop$6;
4642
- this._onTouchedCallback = noop$6;
4659
+ this._onChangeCallback = noop$1;
4660
+ this._onTouchedCallback = noop$1;
4643
4661
  this._writing = false;
4644
4662
  this.showRadio = false;
4645
4663
  this.disabled = false;
@@ -4803,7 +4821,7 @@ MatBooleanField.decorators = [
4803
4821
  selector: 'mat-boolean-field',
4804
4822
  template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value ? 'COMMON.YES' : 'COMMON.NO') | translate }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{'COMMON.YES'|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span translate>COMMON.YES</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span translate>COMMON.NO</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label>&nbsp;</ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button\">\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <ion-grid class=\"ion-no-padding\" *ngIf=\"!formControl.disabled; else disabledLabel\">\n <ion-row class=\"ion-no-padding\">\n <!-- Yes button -->\n <ion-col>\n <ion-button style=\"width: 100%;\"\n class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'danger' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon slot=\"start\" name=\"checkmark\"></ion-icon>\n {{'COMMON.YES'|translate}}\n </ion-button>\n </ion-col>\n <!-- No button -->\n <ion-col>\n <ion-button style=\"width: 100%;\"\n 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 ? 'danger' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.NO'|translate}}\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-grid>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </ng-container>\n\n <div class=\"cdk-visually-hidden\">\n <div #suffix><ng-content select=\"[matSuffix]\"></ng-content></div>\n </div>\n\n</ng-template>\n\n\n",
4805
4823
  providers: [
4806
- DEFAULT_VALUE_ACCESSOR$5
4824
+ DEFAULT_VALUE_ACCESSOR$1
4807
4825
  ],
4808
4826
  changeDetection: ChangeDetectionStrategy.OnPush,
4809
4827
  styles: [":host{width:100%}"]
@@ -5044,7 +5062,7 @@ class MatNumpadDomService {
5044
5062
  this.appRef.detachView(this.componentRef.hostView);
5045
5063
  }
5046
5064
  }
5047
- MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
5065
+ 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" });
5048
5066
  MatNumpadDomService.decorators = [
5049
5067
  { type: Injectable, args: [{
5050
5068
  providedIn: 'root'
@@ -5408,7 +5426,7 @@ SharedMatNumpadModule.decorators = [
5408
5426
  },] }
5409
5427
  ];
5410
5428
 
5411
- const DEFAULT_VALUE_ACCESSOR$6 = {
5429
+ const DEFAULT_VALUE_ACCESSOR = {
5412
5430
  provide: NG_VALUE_ACCESSOR,
5413
5431
  useExisting: forwardRef(() => MatSwipeField),
5414
5432
  multi: true
@@ -5671,7 +5689,7 @@ MatSwipeField.decorators = [
5671
5689
  { type: Component, args: [{
5672
5690
  selector: 'mat-swipe-field',
5673
5691
  template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\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",
5674
- providers: [DEFAULT_VALUE_ACCESSOR$6],
5692
+ providers: [DEFAULT_VALUE_ACCESSOR],
5675
5693
  changeDetection: ChangeDetectionStrategy.OnPush,
5676
5694
  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}"]
5677
5695
  },] }
@@ -6166,7 +6184,7 @@ class ProgressBarService {
6166
6184
  }
6167
6185
  }
6168
6186
  }
6169
- ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
6187
+ ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
6170
6188
  ProgressBarService.decorators = [
6171
6189
  { type: Injectable, args: [{ providedIn: 'root' },] }
6172
6190
  ];
@@ -6210,7 +6228,7 @@ class AppGestureConfig extends HammerGestureConfig {
6210
6228
  return mc;
6211
6229
  }
6212
6230
  }
6213
- AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
6231
+ AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
6214
6232
  AppGestureConfig.decorators = [
6215
6233
  { type: Injectable, args: [{ providedIn: 'root' },] }
6216
6234
  ];
@@ -6433,7 +6451,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
6433
6451
  this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
6434
6452
  }
6435
6453
  }
6436
- MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
6454
+ MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
6437
6455
  MatPaginatorI18n.decorators = [
6438
6456
  { type: Injectable, args: [{ providedIn: 'root' },] }
6439
6457
  ];
@@ -6523,17 +6541,17 @@ function getColorContrast(color, bw) {
6523
6541
  return rgbArrayToHex(rgb.map(v => 255 - v));
6524
6542
  }
6525
6543
 
6526
- const noop$7 = () => {
6544
+ const noop = () => {
6527
6545
  };
6528
- const ɵ0$7 = noop$7;
6546
+ const ɵ0$3 = noop;
6529
6547
  class AppFormField {
6530
6548
  constructor(translate, cd, injector, formGroupDir) {
6531
6549
  this.translate = translate;
6532
6550
  this.cd = cd;
6533
6551
  this.injector = injector;
6534
6552
  this.formGroupDir = formGroupDir;
6535
- this._onChangeCallback = noop$7;
6536
- this._onTouchedCallback = noop$7;
6553
+ this._onChangeCallback = noop;
6554
+ this._onTouchedCallback = noop;
6537
6555
  this.readonly = false;
6538
6556
  this.compact = false;
6539
6557
  this.floatLabel = 'auto';
@@ -6904,14 +6922,14 @@ class AudioProvider {
6904
6922
  });
6905
6923
  }
6906
6924
  }
6907
- 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" });
6925
+ 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" });
6908
6926
  AudioProvider.decorators = [
6909
6927
  { type: Injectable, args: [{ providedIn: 'root' },] }
6910
6928
  ];
6911
6929
  AudioProvider.ctorParameters = () => [
6912
6930
  { type: Platform },
6913
- { type: NativeAudio$1, decorators: [{ type: Optional }] },
6914
- { type: Vibration$1, decorators: [{ type: Optional }] },
6931
+ { type: NativeAudio, decorators: [{ type: Optional }] },
6932
+ { type: Vibration, decorators: [{ type: Optional }] },
6915
6933
  { type: AudioManagement, decorators: [{ type: Optional }] }
6916
6934
  ];
6917
6935
 
@@ -6993,7 +7011,7 @@ class Hotkeys {
6993
7011
  });
6994
7012
  }
6995
7013
  }
6996
- Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
7014
+ 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" });
6997
7015
  Hotkeys.decorators = [
6998
7016
  { type: Injectable, args: [{
6999
7017
  providedIn: 'root'
@@ -7167,7 +7185,7 @@ class Base64ImageReader {
7167
7185
  }
7168
7186
  }
7169
7187
 
7170
- const uuidv4 = uuidv4Imported;
7188
+ const uuidv4$1 = uuidv4Imported;
7171
7189
  class FileService {
7172
7190
  constructor(platform,
7173
7191
  //private transfer: FileTransfer,
@@ -7204,7 +7222,7 @@ class FileService {
7204
7222
  const lastSlashIndex = source.lastIndexOf('/');
7205
7223
  if (lastSlashIndex === -1)
7206
7224
  throw new Error('Invalid URL: ' + source);
7207
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
7225
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
7208
7226
  // Download into the file system
7209
7227
  if (responseType === 'file' && this.canUseFileSystem) {
7210
7228
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -7260,7 +7278,7 @@ class FileService {
7260
7278
  this._started = true;
7261
7279
  }
7262
7280
  }
7263
- FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
7281
+ 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" });
7264
7282
  FileService.decorators = [
7265
7283
  { type: Injectable, args: [{
7266
7284
  providedIn: 'root',
@@ -7422,7 +7440,7 @@ class Base58 {
7422
7440
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
7423
7441
 
7424
7442
  const scrypt = require('scrypt-async');
7425
- const sha256 = require('hash.js/lib/hash/sha/256');
7443
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
7426
7444
  const sha512 = require('hash.js/lib/hash/sha/512');
7427
7445
  const nacl = {
7428
7446
  sign,
@@ -7526,7 +7544,7 @@ class CryptoService {
7526
7544
  * Hash (using SHA256) a message
7527
7545
  */
7528
7546
  sha256(message) {
7529
- return sha256().update(message).digest('hex');
7547
+ return sha256$1().update(message).digest('hex');
7530
7548
  }
7531
7549
  /**
7532
7550
  * Hash (using SHA512) a message
@@ -7539,7 +7557,7 @@ class CryptoService {
7539
7557
  return nacl.util.encodeBase64(m);
7540
7558
  }
7541
7559
  }
7542
- CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
7560
+ CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
7543
7561
  CryptoService.decorators = [
7544
7562
  { type: Injectable, args: [{ providedIn: 'root' },] }
7545
7563
  ];
@@ -8746,7 +8764,7 @@ class LocalSettingsService {
8746
8764
  return page;
8747
8765
  }
8748
8766
  }
8749
- 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" });
8767
+ 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" });
8750
8768
  LocalSettingsService.decorators = [
8751
8769
  { type: Injectable, args: [{
8752
8770
  providedIn: 'root',
@@ -9442,7 +9460,7 @@ class NetworkService {
9442
9460
  });
9443
9461
  }
9444
9462
  }
9445
- 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" });
9463
+ 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" });
9446
9464
  NetworkService.decorators = [
9447
9465
  { type: Injectable, args: [{ providedIn: 'root' },] }
9448
9466
  ];
@@ -9453,16 +9471,16 @@ NetworkService.ctorParameters = () => [
9453
9471
  { type: CryptoService },
9454
9472
  { type: Storage },
9455
9473
  { type: LocalSettingsService },
9456
- { type: CacheService$1 },
9474
+ { type: CacheService },
9457
9475
  { type: HttpClient },
9458
9476
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
9459
- { type: Network$1, decorators: [{ type: Optional }] },
9460
- { type: SplashScreen$1, decorators: [{ type: Optional }] },
9477
+ { type: Network, decorators: [{ type: Optional }] },
9478
+ { type: SplashScreen, decorators: [{ type: Optional }] },
9461
9479
  { type: TranslateService, decorators: [{ type: Optional }] },
9462
9480
  { type: ToastController, decorators: [{ type: Optional }] }
9463
9481
  ];
9464
9482
 
9465
- const ErrorCodes = {
9483
+ const ErrorCodes$2 = {
9466
9484
  UNKNOWN_ERROR: 0,
9467
9485
  LOAD_ACCOUNT_ERROR: 1,
9468
9486
  BAD_PASSWORD: 2,
@@ -9809,7 +9827,7 @@ class EntityStore {
9809
9827
  }
9810
9828
  catch (err) {
9811
9829
  console.error(err);
9812
- throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
9830
+ throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
9813
9831
  }
9814
9832
  }
9815
9833
  // Emit update event
@@ -10386,7 +10404,7 @@ class EntitiesStorage {
10386
10404
  }
10387
10405
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
10388
10406
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
10389
- 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" });
10407
+ 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" });
10390
10408
  EntitiesStorage.decorators = [
10391
10409
  { type: Injectable, args: [{ providedIn: 'root' },] }
10392
10410
  ];
@@ -10483,10 +10501,10 @@ function referentialToString(obj, properties) {
10483
10501
  function referentialsToString(values, properties, separator) {
10484
10502
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
10485
10503
  }
10486
- const ɵ0$8 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
10504
+ const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
10487
10505
  const StatusList = Object.freeze([
10488
10506
  {
10489
- id: ɵ0$8,
10507
+ id: ɵ0$2,
10490
10508
  icon: 'checkmark',
10491
10509
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
10492
10510
  },
@@ -10757,7 +10775,7 @@ function accountToString(data) {
10757
10775
  (data.lastName || '')) || '';
10758
10776
  }
10759
10777
 
10760
- const uuidv4$1 = uuidv4Imported;
10778
+ const uuidv4 = uuidv4Imported;
10761
10779
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
10762
10780
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
10763
10781
  /**
@@ -10801,7 +10819,7 @@ function createTrackerLink(opts) {
10801
10819
  // Skip if not tracked
10802
10820
  if (!context || !context.tracked)
10803
10821
  return forward(operation);
10804
- const id = context.serializationKey || uuidv4$1();
10822
+ const id = context.serializationKey || uuidv4();
10805
10823
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
10806
10824
  // Clean context, before calling JSON.stringify (remove unused attributes)
10807
10825
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -11509,7 +11527,7 @@ class GraphqlService {
11509
11527
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
11510
11528
  || this.toAppError(err.networkError)
11511
11529
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
11512
- || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
11530
+ || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
11513
11531
  // If graphQL: try to convert the first error found
11514
11532
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
11515
11533
  || this.toAppError(err)
@@ -11517,7 +11535,7 @@ class GraphqlService {
11517
11535
  || (err.graphQLErrors && err.graphQLErrors[0])
11518
11536
  || err;
11519
11537
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
11520
- if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
11538
+ if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
11521
11539
  console.error('[graphql] original error: ' + err.networkError.message);
11522
11540
  this.onNetworkError.next(error);
11523
11541
  }
@@ -11553,7 +11571,7 @@ class GraphqlService {
11553
11571
  return 'ERROR.UNAUTHORIZED';
11554
11572
  case ServerErrorCodes.FORBIDDEN:
11555
11573
  return 'ERROR.FORBIDDEN';
11556
- case ErrorCodes.UNKNOWN_NETWORK_ERROR:
11574
+ case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
11557
11575
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
11558
11576
  case ServerErrorCodes.BAD_UPDATE_DATE:
11559
11577
  return 'ERROR.BAD_UPDATE_DATE';
@@ -11590,7 +11608,7 @@ class GraphqlService {
11590
11608
  });
11591
11609
  }
11592
11610
  }
11593
- 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" });
11611
+ 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" });
11594
11612
  GraphqlService.decorators = [
11595
11613
  { type: Injectable, args: [{
11596
11614
  providedIn: 'root'
@@ -11607,7 +11625,7 @@ GraphqlService.ctorParameters = () => [
11607
11625
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
11608
11626
  ];
11609
11627
 
11610
- const sha256$1 = require('hash.js/lib/hash/sha/256');
11628
+ const sha256 = require('hash.js/lib/hash/sha/256');
11611
11629
  class BaseGraphqlServiceOptions {
11612
11630
  }
11613
11631
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -11757,8 +11775,8 @@ class BaseGraphqlService {
11757
11775
  }
11758
11776
  /* -- protected methods -- */
11759
11777
  computeMutableWatchQueryId(opts) {
11760
- const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
11761
- const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
11778
+ const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
11779
+ const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
11762
11780
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
11763
11781
  }
11764
11782
  findMutableWatchQueries(opts) {
@@ -11821,7 +11839,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
11821
11839
  /* ------------------------------------
11822
11840
  * GraphQL queries
11823
11841
  * ------------------------------------*/
11824
- const Fragments = {
11842
+ const Fragments$1 = {
11825
11843
  account: gql `
11826
11844
  fragment AccountFragment on AccountVO {
11827
11845
  id
@@ -11854,13 +11872,13 @@ const Fragments = {
11854
11872
  `
11855
11873
  };
11856
11874
  // Load account query
11857
- const LoadQuery = gql `
11875
+ const LoadQuery$1 = gql `
11858
11876
  query Account {
11859
11877
  account {
11860
11878
  ...AccountFragment
11861
11879
  }
11862
11880
  }
11863
- ${Fragments.account}
11881
+ ${Fragments$1.account}
11864
11882
  `;
11865
11883
  // Check email query
11866
11884
  const IsEmailExistsQuery = gql `
@@ -11869,13 +11887,13 @@ const IsEmailExistsQuery = gql `
11869
11887
  }
11870
11888
  `;
11871
11889
  // Save (create or update) account mutation
11872
- const SaveMutation = gql `
11890
+ const SaveMutation$1 = gql `
11873
11891
  mutation SaveAccount($account:AccountVOInput){
11874
11892
  saveAccount(account: $account){
11875
11893
  ...AccountFragment
11876
11894
  }
11877
11895
  }
11878
- ${Fragments.account}
11896
+ ${Fragments$1.account}
11879
11897
  `;
11880
11898
  // Create account mutation
11881
11899
  const CreateMutation = gql `
@@ -11884,7 +11902,7 @@ const CreateMutation = gql `
11884
11902
  ...AccountFragment
11885
11903
  }
11886
11904
  }
11887
- ${Fragments.account}
11905
+ ${Fragments$1.account}
11888
11906
  `;
11889
11907
  // Sent confirmation email
11890
11908
  const SendConfirmEmailMutation = gql `
@@ -12223,7 +12241,7 @@ class AccountService extends BaseGraphqlService {
12223
12241
  catch (error) {
12224
12242
  console.error(error);
12225
12243
  this.resetData();
12226
- throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
12244
+ throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
12227
12245
  }
12228
12246
  // Store pubkey+keypair
12229
12247
  this.data.pubkey = Base58.encode(keypair.publicKey);
@@ -12257,7 +12275,7 @@ class AccountService extends BaseGraphqlService {
12257
12275
  }
12258
12276
  catch (err) {
12259
12277
  // If account not found, check if email is valid
12260
- if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
12278
+ if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
12261
12279
  // Check email exists
12262
12280
  if (data.username.indexOf('@') !== -1) {
12263
12281
  let isEmailExists;
@@ -12269,11 +12287,11 @@ class AccountService extends BaseGraphqlService {
12269
12287
  }
12270
12288
  // Email not exists (no account)
12271
12289
  if (!isEmailExists) {
12272
- throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
12290
+ throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
12273
12291
  }
12274
12292
  }
12275
12293
  // Email exists, so error = 'bad password'
12276
- throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
12294
+ throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
12277
12295
  }
12278
12296
  throw err; // resend the first error
12279
12297
  }
@@ -12334,7 +12352,7 @@ class AccountService extends BaseGraphqlService {
12334
12352
  throw error;
12335
12353
  console.error(error);
12336
12354
  throw {
12337
- code: ErrorCodes.LOAD_ACCOUNT_ERROR,
12355
+ code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
12338
12356
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
12339
12357
  };
12340
12358
  }
@@ -12546,8 +12564,8 @@ class AccountService extends BaseGraphqlService {
12546
12564
  }
12547
12565
  else {
12548
12566
  const res = yield this.graphql.query({
12549
- query: LoadQuery,
12550
- error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
12567
+ query: LoadQuery$1,
12568
+ error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
12551
12569
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
12552
12570
  });
12553
12571
  accountJson = res && res.account;
@@ -12581,7 +12599,7 @@ class AccountService extends BaseGraphqlService {
12581
12599
  if (!isNew) {
12582
12600
  const existingAccount = yield this.loadAccount({ fetchPolicy: 'network-only' });
12583
12601
  if (!existingAccount || !existingAccount.updateDate) {
12584
- throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
12602
+ throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
12585
12603
  }
12586
12604
  account.updateDate = existingAccount.updateDate || account.updateDate;
12587
12605
  if (account.settings && existingAccount.settings) {
@@ -12594,12 +12612,12 @@ class AccountService extends BaseGraphqlService {
12594
12612
  delete json.mainProfile; // Not known on server
12595
12613
  // Execute mutation
12596
12614
  const res = yield this.graphql.mutate({
12597
- mutation: isNew ? CreateMutation : SaveMutation,
12615
+ mutation: isNew ? CreateMutation : SaveMutation$1,
12598
12616
  variables: {
12599
12617
  account: json
12600
12618
  },
12601
12619
  error: {
12602
- code: ErrorCodes.SAVE_ACCOUNT_ERROR,
12620
+ code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
12603
12621
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
12604
12622
  }
12605
12623
  });
@@ -12624,7 +12642,7 @@ class AccountService extends BaseGraphqlService {
12624
12642
  return __awaiter(this, void 0, void 0, function* () {
12625
12643
  const isEmailExists = yield this.isEmailExists(email);
12626
12644
  if (isEmailExists) {
12627
- throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
12645
+ throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
12628
12646
  }
12629
12647
  });
12630
12648
  }
@@ -12660,7 +12678,7 @@ class AccountService extends BaseGraphqlService {
12660
12678
  locale
12661
12679
  },
12662
12680
  error: {
12663
- code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
12681
+ code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
12664
12682
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
12665
12683
  }
12666
12684
  });
@@ -12676,7 +12694,7 @@ class AccountService extends BaseGraphqlService {
12676
12694
  code
12677
12695
  },
12678
12696
  error: {
12679
- code: ErrorCodes.CONFIRM_EMAIL_FAILED,
12697
+ code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
12680
12698
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
12681
12699
  }
12682
12700
  });
@@ -12694,7 +12712,7 @@ class AccountService extends BaseGraphqlService {
12694
12712
  interval: 10
12695
12713
  },
12696
12714
  error: {
12697
- code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
12715
+ code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
12698
12716
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
12699
12717
  }
12700
12718
  }).subscribe({
@@ -12773,7 +12791,7 @@ class AccountService extends BaseGraphqlService {
12773
12791
  if (counter > 4) {
12774
12792
  if (this._debug)
12775
12793
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
12776
- throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
12794
+ throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
12777
12795
  }
12778
12796
  // Check if valid
12779
12797
  if (token) {
@@ -12783,7 +12801,7 @@ class AccountService extends BaseGraphqlService {
12783
12801
  token
12784
12802
  },
12785
12803
  error: {
12786
- code: ErrorCodes.UNAUTHORIZED,
12804
+ code: ErrorCodes$2.UNAUTHORIZED,
12787
12805
  message: 'ERROR.UNAUTHORIZED'
12788
12806
  },
12789
12807
  fetchPolicy: 'no-cache'
@@ -12799,7 +12817,7 @@ class AccountService extends BaseGraphqlService {
12799
12817
  }
12800
12818
  // Generate a new token
12801
12819
  const challengeError = {
12802
- code: ErrorCodes.AUTH_CHALLENGE_ERROR,
12820
+ code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
12803
12821
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
12804
12822
  };
12805
12823
  const data = yield this.graphql.query({
@@ -12825,7 +12843,7 @@ class AccountService extends BaseGraphqlService {
12825
12843
  });
12826
12844
  }
12827
12845
  }
12828
- AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
12846
+ AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
12829
12847
  AccountService.decorators = [
12830
12848
  { type: Injectable, args: [{ providedIn: 'root' },] }
12831
12849
  ];
@@ -13075,7 +13093,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
13075
13093
  /* ------------------------------------
13076
13094
  * GraphQL queries
13077
13095
  * ------------------------------------*/
13078
- const Fragments$1 = {
13096
+ const Fragments = {
13079
13097
  config: gql `
13080
13098
  fragment ConfigFragment on ConfigurationVO {
13081
13099
  id
@@ -13102,22 +13120,22 @@ const Fragments$1 = {
13102
13120
  }
13103
13121
  `
13104
13122
  };
13105
- const LoadQuery$1 = gql `
13123
+ const LoadQuery = gql `
13106
13124
  query Configuration{
13107
13125
  data: configuration{
13108
13126
  ...ConfigFragment
13109
13127
  }
13110
13128
  }
13111
- ${Fragments$1.config}
13129
+ ${Fragments.config}
13112
13130
  `;
13113
13131
  // Save (create or update) account mutation
13114
- const SaveMutation$1 = gql `
13132
+ const SaveMutation = gql `
13115
13133
  mutation SaveConfiguration($data: ConfigurationVOInput){
13116
13134
  data: saveConfiguration(config: $data){
13117
13135
  ...ConfigFragment
13118
13136
  }
13119
13137
  }
13120
- ${Fragments$1.config}
13138
+ ${Fragments.config}
13121
13139
  `;
13122
13140
  const ClearCache = gql `
13123
13141
  query ClearCache($name: String) {
@@ -13205,12 +13223,12 @@ class ConfigService extends BaseGraphqlService {
13205
13223
  return __awaiter(this, void 0, void 0, function* () {
13206
13224
  const now = Date.now();
13207
13225
  console.debug('[config] Loading Pod configuration...');
13208
- const query = opts && opts.query || LoadQuery$1;
13226
+ const query = opts && opts.query || LoadQuery;
13209
13227
  const variables = opts && opts.variables || undefined;
13210
13228
  const res = yield this.graphql.query({
13211
13229
  query,
13212
13230
  variables,
13213
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
13231
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
13214
13232
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
13215
13233
  });
13216
13234
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -13235,12 +13253,12 @@ class ConfigService extends BaseGraphqlService {
13235
13253
  const json = config.asObject();
13236
13254
  // Execute mutation
13237
13255
  const res = yield this.graphql.mutate({
13238
- mutation: SaveMutation$1,
13256
+ mutation: SaveMutation,
13239
13257
  variables: {
13240
13258
  data: json
13241
13259
  },
13242
13260
  error: {
13243
- code: ErrorCodes.SAVE_CONFIG_ERROR,
13261
+ code: ErrorCodes$2.SAVE_CONFIG_ERROR,
13244
13262
  message: 'ERROR.SAVE_CONFIG_ERROR'
13245
13263
  }
13246
13264
  });
@@ -13266,7 +13284,7 @@ class ConfigService extends BaseGraphqlService {
13266
13284
  const res = yield this.graphql.query({
13267
13285
  query: CacheStatistics,
13268
13286
  variables: null,
13269
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
13287
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
13270
13288
  fetchPolicy: 'network-only'
13271
13289
  });
13272
13290
  const data = res && res.cacheStatistics || undefined;
@@ -13282,7 +13300,7 @@ class ConfigService extends BaseGraphqlService {
13282
13300
  const res = yield this.graphql.query({
13283
13301
  query: ClearCache,
13284
13302
  variables,
13285
- error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
13303
+ error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
13286
13304
  fetchPolicy: 'network-only'
13287
13305
  });
13288
13306
  const data = res && res.clearCache || undefined;
@@ -13441,7 +13459,7 @@ class ConfigService extends BaseGraphqlService {
13441
13459
  });
13442
13460
  }
13443
13461
  }
13444
- ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
13462
+ ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
13445
13463
  ConfigService.decorators = [
13446
13464
  { type: Injectable, args: [{
13447
13465
  providedIn: 'root',
@@ -13460,7 +13478,7 @@ ConfigService.ctorParameters = () => [
13460
13478
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
13461
13479
  ];
13462
13480
 
13463
- const moment$4 = momentImported;
13481
+ const moment$2 = momentImported;
13464
13482
  class PlatformService {
13465
13483
  constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser) {
13466
13484
  this.platform = platform;
@@ -13625,16 +13643,16 @@ class PlatformService {
13625
13643
  }
13626
13644
  // config moment lib
13627
13645
  try {
13628
- moment$4.locale(event.lang);
13646
+ moment$2.locale(event.lang);
13629
13647
  console.debug('[platform] Use locale {' + event.lang + '}');
13630
13648
  }
13631
13649
  // If error, fallback to en
13632
13650
  catch (err) {
13633
- moment$4.locale('en');
13651
+ moment$2.locale('en');
13634
13652
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
13635
13653
  }
13636
13654
  // Config date adapter
13637
- this.dateAdapter.setLocale(moment$4.locale());
13655
+ this.dateAdapter.setLocale(moment$2.locale());
13638
13656
  }
13639
13657
  });
13640
13658
  this.settings.onChange.subscribe(data => {
@@ -13771,7 +13789,7 @@ class PlatformService {
13771
13789
  });
13772
13790
  }
13773
13791
  }
13774
- 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)); }, token: PlatformService, providedIn: "root" });
13792
+ 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)); }, token: PlatformService, providedIn: "root" });
13775
13793
  PlatformService.decorators = [
13776
13794
  { type: Injectable, args: [{ providedIn: 'root' },] }
13777
13795
  ];
@@ -13786,14 +13804,14 @@ PlatformService.ctorParameters = () => [
13786
13804
  { type: NetworkService },
13787
13805
  { type: AccountService },
13788
13806
  { type: ConfigService },
13789
- { type: CacheService$1 },
13807
+ { type: CacheService },
13790
13808
  { type: Storage },
13791
13809
  { type: AudioProvider },
13792
13810
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
13793
- { type: StatusBar$1, decorators: [{ type: Optional }] },
13811
+ { type: StatusBar, decorators: [{ type: Optional }] },
13794
13812
  { type: Keyboard, decorators: [{ type: Optional }] },
13795
- { type: SplashScreen$1, decorators: [{ type: Optional }] },
13796
- { type: InAppBrowser$1, decorators: [{ type: Optional }] }
13813
+ { type: SplashScreen, decorators: [{ type: Optional }] },
13814
+ { type: InAppBrowser, decorators: [{ type: Optional }] }
13797
13815
  ];
13798
13816
 
13799
13817
  class AppHelpModal {
@@ -13857,7 +13875,7 @@ class MatStepperI18n extends MatStepperIntl {
13857
13875
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
13858
13876
  }
13859
13877
  }
13860
- MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
13878
+ MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
13861
13879
  MatStepperI18n.decorators = [
13862
13880
  { type: Injectable, args: [{ providedIn: 'root' },] }
13863
13881
  ];
@@ -14765,7 +14783,7 @@ function state2side(state) {
14765
14783
  return 1;
14766
14784
  }
14767
14785
  }
14768
- const ɵ0$9 = (defaultStateSize) => [
14786
+ const ɵ0$1 = (defaultStateSize) => [
14769
14787
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
14770
14788
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
14771
14789
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -14773,7 +14791,7 @@ const ɵ0$9 = (defaultStateSize) => [
14773
14791
  const SCALE_OPTIONS_DEFAULT = {
14774
14792
  startColor: rgbArrayMap.red,
14775
14793
  startStates: [0, 2, 3],
14776
- startStepsFn: ɵ0$9
14794
+ startStepsFn: ɵ0$1
14777
14795
  };
14778
14796
  /**
14779
14797
  * Internal function, that create a colors scale, using iteration
@@ -14865,21 +14883,21 @@ function linearColorGradient(count, options) {
14865
14883
  return result;
14866
14884
  }
14867
14885
 
14868
- class EntityTestClass {
14886
+ class EntityTestClass$1 {
14869
14887
  }
14870
- const FAKE_ENTITIES = [
14888
+ const FAKE_ENTITIES$1 = [
14871
14889
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
14872
14890
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
14873
14891
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
14874
14892
  ];
14875
- function deepCopy(values, size) {
14893
+ function deepCopy$1(values, size) {
14876
14894
  if (isNil(size)) {
14877
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
14895
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
14878
14896
  }
14879
14897
  let result = [];
14880
14898
  let i = 1;
14881
14899
  while (result.length < size) {
14882
- result = result.concat((values || FAKE_ENTITIES).map(entity => {
14900
+ result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
14883
14901
  const name = entity.name + ' #' + i;
14884
14902
  return Object.assign(Object.assign({}, entity), { id: i++, name });
14885
14903
  }));
@@ -14889,7 +14907,7 @@ function deepCopy(values, size) {
14889
14907
  class AutocompleteTestPage {
14890
14908
  constructor(formBuilder) {
14891
14909
  this.formBuilder = formBuilder;
14892
- this._items = deepCopy(FAKE_ENTITIES, 100);
14910
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
14893
14911
  this.$items = new BehaviorSubject(undefined);
14894
14912
  this.autocompleteFields = new MatAutocompleteConfigHolder();
14895
14913
  this.memoryHide = false;
@@ -14933,7 +14951,7 @@ class AutocompleteTestPage {
14933
14951
  });
14934
14952
  // From items
14935
14953
  this.autocompleteFields.add('entity-items-large', {
14936
- items: FAKE_ENTITIES.slice(),
14954
+ items: FAKE_ENTITIES$1.slice(),
14937
14955
  attributes: ['label', 'name', 'description', 'comments'],
14938
14956
  displayWith: this.entityToString
14939
14957
  });
@@ -14943,12 +14961,12 @@ class AutocompleteTestPage {
14943
14961
  loadData() {
14944
14962
  return __awaiter(this, void 0, void 0, function* () {
14945
14963
  const data = {
14946
- entity: deepCopy(FAKE_ENTITIES)[1],
14964
+ entity: deepCopy$1(FAKE_ENTITIES$1)[1],
14947
14965
  // This item is NOT in the items list => i should be displayed anyway
14948
14966
  missingEntity: {
14949
14967
  id: -1, label: '??', name: 'Missing item'
14950
14968
  },
14951
- disableEntity: deepCopy(FAKE_ENTITIES)[2]
14969
+ disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
14952
14970
  };
14953
14971
  this.form.setValue(data);
14954
14972
  // Load observables
@@ -15118,13 +15136,13 @@ MaterialTestingPage.ctorParameters = () => [
15118
15136
  { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
15119
15137
  ];
15120
15138
 
15121
- const moment$5 = momentImported;
15139
+ const moment$1 = momentImported;
15122
15140
  class SwipeTestPage {
15123
15141
  constructor(formBuilder, dateFormatPipe) {
15124
15142
  this.formBuilder = formBuilder;
15125
15143
  this.dateFormatPipe = dateFormatPipe;
15126
15144
  this.$dates = new BehaviorSubject(undefined);
15127
- this._today = moment$5().startOf('day');
15145
+ this._today = moment$1().startOf('day');
15128
15146
  this.form = formBuilder.group({
15129
15147
  empty: [null, Validators.required],
15130
15148
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -15137,7 +15155,7 @@ class SwipeTestPage {
15137
15155
  ngOnInit() {
15138
15156
  const dates = [];
15139
15157
  for (let d = 0; d < 7; d++) {
15140
- dates[d] = moment$5(this._today).add(d - 3, 'day');
15158
+ dates[d] = moment$1(this._today).add(d - 3, 'day');
15141
15159
  }
15142
15160
  this.$dates.next(dates);
15143
15161
  this.loadData();
@@ -15738,7 +15756,7 @@ class FormArrayHelper {
15738
15756
  }
15739
15757
  }
15740
15758
 
15741
- const moment$6 = momentImported;
15759
+ const moment = momentImported;
15742
15760
  class DateTimeTestPage {
15743
15761
  constructor(platform, formBuilder, cd) {
15744
15762
  this.platform = platform;
@@ -15769,7 +15787,7 @@ class DateTimeTestPage {
15769
15787
  // Load the form with data
15770
15788
  loadData() {
15771
15789
  return __awaiter(this, void 0, void 0, function* () {
15772
- const now = moment$6();
15790
+ const now = moment();
15773
15791
  const data = {
15774
15792
  empty: toDateISOString(now.clone().add(2, 'hours')),
15775
15793
  enable: toDateISOString(now),
@@ -15829,20 +15847,20 @@ DateTimeTestPage.ctorParameters = () => [
15829
15847
  { type: ChangeDetectorRef }
15830
15848
  ];
15831
15849
 
15832
- class EntityTestClass$1 {
15850
+ class EntityTestClass {
15833
15851
  }
15834
- const FAKE_ENTITIES$1 = [
15852
+ const FAKE_ENTITIES = [
15835
15853
  { id: 1, label: 'AAA', name: 'Item A' },
15836
15854
  { id: 2, label: 'BBB', name: 'Item B' },
15837
15855
  { id: 3, label: 'CCC', name: 'Item C' }
15838
15856
  ];
15839
- function deepCopy$1(values) {
15840
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
15857
+ function deepCopy(values) {
15858
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
15841
15859
  }
15842
15860
  class ChipsTestPage {
15843
15861
  constructor(formBuilder) {
15844
15862
  this.formBuilder = formBuilder;
15845
- this._items = deepCopy$1(FAKE_ENTITIES$1);
15863
+ this._items = deepCopy(FAKE_ENTITIES);
15846
15864
  this._$items = new BehaviorSubject(undefined);
15847
15865
  this.autocompleteFields = new MatAutocompleteConfigHolder();
15848
15866
  this.form = formBuilder.group({
@@ -15861,7 +15879,7 @@ class ChipsTestPage {
15861
15879
  });
15862
15880
  // From items
15863
15881
  this.autocompleteFields.add('entity-items', {
15864
- items: FAKE_ENTITIES$1.slice(),
15882
+ items: FAKE_ENTITIES.slice(),
15865
15883
  attributes: ['label', 'name'],
15866
15884
  displayWith: this.entityToString
15867
15885
  });
@@ -15882,15 +15900,15 @@ class ChipsTestPage {
15882
15900
  const data = {
15883
15901
  entity: [],
15884
15902
  // THis item is NOT in the items list => i should be displayed anyway
15885
- entityInitial: FAKE_ENTITIES$1.slice(1, 2),
15886
- disableEntity: FAKE_ENTITIES$1.slice(1, 2)
15903
+ entityInitial: FAKE_ENTITIES.slice(1, 2),
15904
+ disableEntity: FAKE_ENTITIES.slice(1, 2)
15887
15905
  };
15888
15906
  this.form.setValue(data);
15889
15907
  });
15890
15908
  }
15891
15909
  loadItems() {
15892
15910
  return __awaiter(this, void 0, void 0, function* () {
15893
- this._$items.next(deepCopy$1(FAKE_ENTITIES$1));
15911
+ this._$items.next(deepCopy(FAKE_ENTITIES));
15894
15912
  });
15895
15913
  }
15896
15914
  entityToString(item) {
@@ -15922,7 +15940,7 @@ ChipsTestPage.ctorParameters = () => [
15922
15940
  { type: FormBuilder }
15923
15941
  ];
15924
15942
 
15925
- const routes = [
15943
+ const routes$1 = [
15926
15944
  {
15927
15945
  path: '',
15928
15946
  pathMatch: 'full',
@@ -15969,7 +15987,7 @@ MaterialTestingModule.decorators = [
15969
15987
  ReactiveFormsModule,
15970
15988
  SharedMaterialModule,
15971
15989
  TranslateModule.forChild(),
15972
- RouterModule.forChild(routes)
15990
+ RouterModule.forChild(routes$1)
15973
15991
  ],
15974
15992
  declarations: [
15975
15993
  MaterialTestingPage,
@@ -16870,7 +16888,7 @@ class UserSettingsValidatorService extends AppValidatorService {
16870
16888
  });
16871
16889
  }
16872
16890
  }
16873
- UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
16891
+ UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
16874
16892
  UserSettingsValidatorService.decorators = [
16875
16893
  { type: Injectable, args: [{ providedIn: 'root' },] }
16876
16894
  ];
@@ -16914,7 +16932,7 @@ class AccountValidatorService extends AppValidatorService {
16914
16932
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
16915
16933
  }
16916
16934
  }
16917
- AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
16935
+ AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
16918
16936
  AccountValidatorService.decorators = [
16919
16937
  { type: Injectable, args: [{ providedIn: 'root' },] }
16920
16938
  ];
@@ -17443,7 +17461,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
17443
17461
  });
17444
17462
  }
17445
17463
  }
17446
- LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
17464
+ LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
17447
17465
  LocalSettingsValidatorService.decorators = [
17448
17466
  { type: Injectable, args: [{ providedIn: 'root' },] }
17449
17467
  ];
@@ -18051,7 +18069,7 @@ class IsOnFieldModePipe {
18051
18069
  return value === 'FIELD';
18052
18070
  }
18053
18071
  }
18054
- IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18072
+ IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18055
18073
  IsOnFieldModePipe.decorators = [
18056
18074
  { type: Pipe, args: [{
18057
18075
  name: 'isOnField'
@@ -18063,7 +18081,7 @@ class IsNotOnFieldModePipe {
18063
18081
  return value !== 'FIELD';
18064
18082
  }
18065
18083
  }
18066
- IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18084
+ IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18067
18085
  IsNotOnFieldModePipe.decorators = [
18068
18086
  { type: Pipe, args: [{
18069
18087
  name: 'isNotOnField'
@@ -18078,7 +18096,7 @@ class PersonToStringPipe {
18078
18096
  return PersonUtils.personToString(value);
18079
18097
  }
18080
18098
  }
18081
- PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18099
+ PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18082
18100
  PersonToStringPipe.decorators = [
18083
18101
  { type: Pipe, args: [{
18084
18102
  name: 'personToString'
@@ -18295,7 +18313,7 @@ class IsLoginAccountPipe {
18295
18313
  return value && value.pubkey && true;
18296
18314
  }
18297
18315
  }
18298
- IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
18316
+ IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
18299
18317
  IsLoginAccountPipe.decorators = [
18300
18318
  { type: Pipe, args: [{
18301
18319
  name: 'isLogin'
@@ -18307,7 +18325,7 @@ class AccountToStringPipe {
18307
18325
  return accountToString(value);
18308
18326
  }
18309
18327
  }
18310
- AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
18328
+ AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
18311
18329
  AccountToStringPipe.decorators = [
18312
18330
  { type: Pipe, args: [{
18313
18331
  name: 'accountToString'
@@ -18322,7 +18340,7 @@ class DepartmentToStringPipe {
18322
18340
  return departmentToString(value);
18323
18341
  }
18324
18342
  }
18325
- DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
18343
+ DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
18326
18344
  DepartmentToStringPipe.decorators = [
18327
18345
  { type: Pipe, args: [{
18328
18346
  name: 'departmentToString'
@@ -18348,7 +18366,7 @@ class MenuService {
18348
18366
  this._visibleSubject.next(value);
18349
18367
  }
18350
18368
  }
18351
- MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
18369
+ MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
18352
18370
  MenuService.decorators = [
18353
18371
  { type: Injectable, args: [{
18354
18372
  providedIn: 'root'
@@ -18842,7 +18860,7 @@ class AuthGuardService {
18842
18860
  }));
18843
18861
  }
18844
18862
  }
18845
- AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
18863
+ 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" });
18846
18864
  AuthGuardService.decorators = [
18847
18865
  { type: Injectable, args: [{ providedIn: 'root' },] }
18848
18866
  ];
@@ -18890,7 +18908,7 @@ class BaseEntityService extends BaseGraphqlService {
18890
18908
  query,
18891
18909
  variables: { id },
18892
18910
  fetchPolicy: opts && opts.fetchPolicy || undefined,
18893
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
18911
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
18894
18912
  })
18895
18913
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
18896
18914
  ? (data && this.fromObject(data))
@@ -18905,7 +18923,7 @@ class BaseEntityService extends BaseGraphqlService {
18905
18923
  query,
18906
18924
  variables: { id },
18907
18925
  fetchPolicy: opts && opts.fetchPolicy || undefined,
18908
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
18926
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
18909
18927
  });
18910
18928
  // Convert to entity
18911
18929
  return (!opts || opts.toEntity !== false)
@@ -18936,7 +18954,7 @@ class BaseEntityService extends BaseGraphqlService {
18936
18954
  totalFieldName: withTotal ? 'total' : undefined,
18937
18955
  insertFilterFn: filter && filter.asFilterFn(),
18938
18956
  variables,
18939
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
18957
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
18940
18958
  fetchPolicy: opts && opts.fetchPolicy || undefined
18941
18959
  })
18942
18960
  .pipe(map(({ data, total }) => {
@@ -18972,7 +18990,7 @@ class BaseEntityService extends BaseGraphqlService {
18972
18990
  const { data, total } = yield this.graphql.query({
18973
18991
  query,
18974
18992
  variables,
18975
- error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
18993
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
18976
18994
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
18977
18995
  });
18978
18996
  const entities = (!opts || opts.toEntity !== false) ?
@@ -18994,6 +19012,29 @@ class BaseEntityService extends BaseGraphqlService {
18994
19012
  return res;
18995
19013
  });
18996
19014
  }
19015
+ countAll(filter, opts) {
19016
+ var _a;
19017
+ return __awaiter(this, void 0, void 0, function* () {
19018
+ // If no countAll query
19019
+ if (!this.queries.countAll) {
19020
+ // Fail if no loadAll (cannot count)
19021
+ if (!this.queries.loadAllWithTotal)
19022
+ throw new Error('Not implemented');
19023
+ // Use loadAll query, with size = 0;
19024
+ return ((_a = (yield this.loadAll(0, 1, null, null, filter, { withTotal: true }))) === null || _a === void 0 ? void 0 : _a.total) || 0;
19025
+ }
19026
+ filter = this.asFilter(filter);
19027
+ const res = yield this.graphql.query({
19028
+ query: this.queries.countAll,
19029
+ variables: {
19030
+ filter: filter && filter.asPodObject()
19031
+ },
19032
+ error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
19033
+ fetchPolicy: opts && opts.fetchPolicy || 'network-only'
19034
+ });
19035
+ return res.total;
19036
+ });
19037
+ }
18997
19038
  saveAll(entities, opts) {
18998
19039
  return __awaiter(this, void 0, void 0, function* () {
18999
19040
  if (isEmptyArray(entities))
@@ -19021,7 +19062,7 @@ class BaseEntityService extends BaseGraphqlService {
19021
19062
  variables: {
19022
19063
  data: json
19023
19064
  },
19024
- error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19065
+ error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19025
19066
  update: (proxy, { data }) => {
19026
19067
  const savedEntities = data && data.data;
19027
19068
  if (savedEntities) {
@@ -19077,7 +19118,7 @@ class BaseEntityService extends BaseGraphqlService {
19077
19118
  variables: {
19078
19119
  data: json
19079
19120
  },
19080
- error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19121
+ error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19081
19122
  update: (cache, { data }) => {
19082
19123
  // Update entity
19083
19124
  const savedEntity = data && data.data;
@@ -19125,7 +19166,7 @@ class BaseEntityService extends BaseGraphqlService {
19125
19166
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19126
19167
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19127
19168
  variables: { ids },
19128
- error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19169
+ error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19129
19170
  update: (cache, res) => {
19130
19171
  // Remove from cache
19131
19172
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19166,7 +19207,7 @@ class BaseEntityService extends BaseGraphqlService {
19166
19207
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19167
19208
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19168
19209
  variables: { id },
19169
- error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19210
+ error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19170
19211
  update: (proxy, res) => {
19171
19212
  // Remove from cache
19172
19213
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19199,7 +19240,7 @@ class BaseEntityService extends BaseGraphqlService {
19199
19240
  query: opts && opts.query || this.subscriptions.listenChanges,
19200
19241
  variables,
19201
19242
  error: {
19202
- code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
19243
+ code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
19203
19244
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
19204
19245
  }
19205
19246
  })
@@ -19361,7 +19402,7 @@ class EntitiesTableDataSource extends TableDataSource {
19361
19402
  if (this._debug)
19362
19403
  invalidRows.forEach(this.logRowErrors);
19363
19404
  // Stop with an error
19364
- throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
19405
+ throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
19365
19406
  }
19366
19407
  this._editingRowCount = 0;
19367
19408
  let data;
@@ -19484,8 +19525,10 @@ class EntitiesTableDataSource extends TableDataSource {
19484
19525
  throw error;
19485
19526
  }
19486
19527
  delete(id) {
19487
- if (id === -1)
19488
- return; // new row: no data to delete
19528
+ // If new row: not need to propagate to the dataService
19529
+ if (id === -1) {
19530
+ return super.delete(id);
19531
+ }
19489
19532
  const row = this.getRow(id);
19490
19533
  if (!row) {
19491
19534
  console.error(`[table-datasource] Row to delete with id=${id} not found`);
@@ -20176,13 +20219,13 @@ class AppTable {
20176
20219
  return __awaiter(this, void 0, void 0, function* () {
20177
20220
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
20178
20221
  if (this.readOnly) {
20179
- throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20222
+ throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20180
20223
  }
20181
20224
  this.resetError();
20182
20225
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
20183
20226
  this.previouslySavedEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
20184
20227
  if (!this.confirmEditCreate()) {
20185
- throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20228
+ throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20186
20229
  }
20187
20230
  try {
20188
20231
  // Mark as saving
@@ -20307,7 +20350,7 @@ class AppTable {
20307
20350
  deleteRows(event, rows, opts) {
20308
20351
  return __awaiter(this, void 0, void 0, function* () {
20309
20352
  if (this.readOnly) {
20310
- throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20353
+ throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20311
20354
  }
20312
20355
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
20313
20356
  return 0; // SKip
@@ -20320,11 +20363,16 @@ class AppTable {
20320
20363
  const canDelete = yield this.canDeleteRows(rows, opts);
20321
20364
  if (!canDelete)
20322
20365
  return 0; // Cannot delete
20323
- // If data need to be saved first: do it
20324
- const saved = yield this.saveBeforeAction('delete');
20325
- if (!saved) {
20326
- // Stop if save cancelled or save failed
20327
- return;
20366
+ if (this.saveBeforeDelete) {
20367
+ // Cancel invalid rows (because of save() will failed if there is invalid rows)
20368
+ rows.filter(row => { var _a; return !((_a = row.validator) === null || _a === void 0 ? void 0 : _a.valid); })
20369
+ .forEach(row => row.cancelOrDelete());
20370
+ // If data need to be saved first: do it
20371
+ const saved = yield this.saveBeforeAction('delete');
20372
+ if (!saved) {
20373
+ // Stop if save cancelled or save failed
20374
+ return;
20375
+ }
20328
20376
  }
20329
20377
  if (this.debug)
20330
20378
  console.debug('[table] Delete selection...');
@@ -21014,6 +21062,7 @@ AppTable.ctorParameters = () => [
21014
21062
  { type: Injector }
21015
21063
  ];
21016
21064
  AppTable.propDecorators = {
21065
+ settingsId: [{ type: Input }],
21017
21066
  debug: [{ type: Input }],
21018
21067
  i18nColumnPrefix: [{ type: Input }],
21019
21068
  i18nColumnSuffix: [{ type: Input }],
@@ -21578,7 +21627,7 @@ class AppEntityEditor extends AppTabEditor {
21578
21627
  this.onUpdateView = new EventEmitter();
21579
21628
  options = Object.assign({
21580
21629
  // Default options
21581
- enableListenChanges: (injector.get(ENVIRONMENT).listenRemoteChanges === true), pathIdAttribute: 'id', autoLoad: true, autoLoadDelay: 0, autoUpdateRoute: true, i18nPrefix: '' }, options);
21630
+ enableListenChanges: (injector.get(ENVIRONMENT).listenRemoteChanges === true), pathIdAttribute: 'id', autoLoad: true, autoUpdateRoute: true, i18nPrefix: '' }, options);
21582
21631
  this.settings = injector.get(LocalSettingsService);
21583
21632
  this.cd = injector.get(ChangeDetectorRef);
21584
21633
  this.dateFormat = injector.get(DateFormatPipe);
@@ -21692,7 +21741,7 @@ class AppEntityEditor extends AppTabEditor {
21692
21741
  const data = new this.dataType();
21693
21742
  this._usageMode = this.computeUsageMode(data);
21694
21743
  yield this.onNewEntity(data, opts);
21695
- this.updateView(data, Object.assign({ openTabIndex: 0 }, opts));
21744
+ yield this.updateView(data, Object.assign({ openTabIndex: 0 }, opts));
21696
21745
  this.markAsLoaded({ emitEvent: false });
21697
21746
  }
21698
21747
  // Load existing data
@@ -21700,10 +21749,10 @@ class AppEntityEditor extends AppTabEditor {
21700
21749
  try {
21701
21750
  const data = yield this.dataService.load(id, opts);
21702
21751
  if (!data)
21703
- throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
21752
+ throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
21704
21753
  this._usageMode = this.computeUsageMode(data);
21705
21754
  yield this.onEntityLoaded(data, opts);
21706
- this.updateView(data, opts);
21755
+ yield this.updateView(data, opts);
21707
21756
  this.markAsLoaded({ emitEvent: false });
21708
21757
  this.startListenRemoteChanges();
21709
21758
  }
@@ -21739,31 +21788,35 @@ class AppEntityEditor extends AppTabEditor {
21739
21788
  .add(() => this.hasRemoteListener = false));
21740
21789
  }
21741
21790
  updateView(data, opts) {
21742
- const idChanged = isNotNil(data.id)
21743
- && this.previousDataId !== undefined // Ignore if first loading (=undefined)
21744
- && this.previousDataId !== data.id;
21745
- opts = Object.assign({ updateRoute: this._autoUpdateRoute && idChanged && !this.loading, openTabIndex: this._autoOpenNextTab && idChanged && isNil(this.previousDataId) && this.selectedTabIndex < this.tabCount - 1 ? this.selectedTabIndex + 1 : undefined }, opts);
21746
- this.data = data;
21747
- this.previousDataId = data.id || null;
21748
- this.setValue(data);
21749
- if (!opts || opts.emitEvent !== false) {
21750
- this.markAsPristine();
21751
- this.markAsUntouched();
21752
- this.updateViewState(data);
21753
- // Need to update route
21754
- if (opts.updateRoute === true) {
21755
- this.updateTabAndRoute(data, opts)
21756
- // Update the title - should be executed AFTER updateRoute because of path change - fix #185
21757
- .then(() => this.updateTitle(data));
21758
- }
21759
- else {
21760
- // Update the tag group index
21761
- this.updateTabIndex(opts.openTabIndex);
21762
- // Update the title.
21763
- this.updateTitle(data);
21791
+ return __awaiter(this, void 0, void 0, function* () {
21792
+ const idChanged = isNotNil(data.id)
21793
+ && this.previousDataId !== undefined // Ignore if first loading (=undefined)
21794
+ && this.previousDataId !== data.id;
21795
+ opts = Object.assign({ updateRoute: this._autoUpdateRoute && idChanged && !this.loading, openTabIndex: this._autoOpenNextTab && idChanged && isNil(this.previousDataId) && this.selectedTabIndex < this.tabCount - 1 ? this.selectedTabIndex + 1 : undefined }, opts);
21796
+ this.data = data;
21797
+ this.previousDataId = data.id || null;
21798
+ const promiseOrVoid = this.setValue(data);
21799
+ if (promiseOrVoid)
21800
+ yield promiseOrVoid;
21801
+ if (!opts || opts.emitEvent !== false) {
21802
+ this.markAsPristine();
21803
+ this.markAsUntouched();
21804
+ this.updateViewState(data);
21805
+ // Need to update route
21806
+ if (opts.updateRoute === true) {
21807
+ this.updateTabAndRoute(data, opts)
21808
+ // Update the title - should be executed AFTER updateRoute because of path change - fix #185
21809
+ .then(() => this.updateTitle(data));
21810
+ }
21811
+ else {
21812
+ // Update the tag group index
21813
+ this.updateTabIndex(opts.openTabIndex);
21814
+ // Update the title.
21815
+ this.updateTitle(data);
21816
+ }
21817
+ this.onUpdateView.emit(data);
21764
21818
  }
21765
- this.onUpdateView.emit(data);
21766
- }
21819
+ });
21767
21820
  }
21768
21821
  /**
21769
21822
  * Enable or disable state
@@ -22001,6 +22054,11 @@ class AppEntityEditor extends AppTabEditor {
22001
22054
  this.saving = false;
22002
22055
  });
22003
22056
  }
22057
+ onBeforeEntityLoad() {
22058
+ return __awaiter(this, void 0, void 0, function* () {
22059
+ // can be overwrite by subclasses
22060
+ });
22061
+ }
22004
22062
  onNewEntity(data, options) {
22005
22063
  return __awaiter(this, void 0, void 0, function* () {
22006
22064
  // can be overwrite by subclasses
@@ -22592,7 +22650,7 @@ class UserEventService extends BaseGraphqlService {
22592
22650
  EntityUtils.copyIdAndUpdateDate(source, target);
22593
22651
  }
22594
22652
  }
22595
- 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" });
22653
+ 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" });
22596
22654
  UserEventService.decorators = [
22597
22655
  { type: Injectable, args: [{ providedIn: 'root' },] }
22598
22656
  ];
@@ -22974,7 +23032,7 @@ class PersonService extends BaseEntityService {
22974
23032
  return target;
22975
23033
  }
22976
23034
  }
22977
- PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
23035
+ 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" });
22978
23036
  PersonService.decorators = [
22979
23037
  { type: Injectable, args: [{ providedIn: 'root' },] }
22980
23038
  ];
@@ -23005,7 +23063,7 @@ class PersonValidatorService {
23005
23063
  return this.formBuilder.group(formConfig);
23006
23064
  }
23007
23065
  }
23008
- PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23066
+ PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23009
23067
  PersonValidatorService.decorators = [
23010
23068
  { type: Injectable, args: [{ providedIn: 'root' },] }
23011
23069
  ];
@@ -23161,7 +23219,7 @@ UsersPage.decorators = [
23161
23219
  ],
23162
23220
  animations: [slideUpDownAnimation],
23163
23221
  changeDetection: ChangeDetectionStrategy.OnPush,
23164
- styles: [".mat-expansion-panel{margin-bottom:5px}.mat-expansion-panel .form-container mat-form-field{width:100%}.mat-expansion-panel mat-action-row ion-label{line-height:36px}.table-container{height:100%}.mat-table .mat-cell .avatar{height:40px;width:40px;margin:2px 0 0;background-size:cover;background-repeat:no-repeat;background-position:50%}.mat-table .mat-column-avatar{min-width:50px}.mat-table .mat-column-profile{min-width:110px}.mat-table .mat-column-status{min-width:130px}.mat-table .mat-column-department{min-width:150px}"]
23222
+ styles: [".mat-expansion-panel{margin-bottom:5px}.mat-expansion-panel .form-container mat-form-field{width:100%}.mat-expansion-panel mat-action-row ion-label{line-height:36px}.table-container{height:calc(100%)}.mat-table .mat-cell .avatar{height:40px;width:40px;margin:2px 0 0;background-size:cover;background-repeat:no-repeat;background-position:50%}.mat-table .mat-column-avatar{min-width:50px}.mat-table .mat-column-profile{min-width:110px}.mat-table .mat-column-status{min-width:130px}.mat-table .mat-column-department{min-width:150px}"]
23165
23223
  },] }
23166
23224
  ];
23167
23225
  UsersPage.ctorParameters = () => [
@@ -23209,16 +23267,16 @@ AdminModule.decorators = [
23209
23267
  ];
23210
23268
  AdminModule.ctorParameters = () => [];
23211
23269
 
23212
- const ɵ0$a = {
23270
+ const ɵ0 = {
23213
23271
  profile: 'ADMIN'
23214
23272
  };
23215
- const routes$1 = [
23273
+ const routes = [
23216
23274
  {
23217
23275
  path: 'users',
23218
23276
  pathMatch: 'full',
23219
23277
  component: UsersPage,
23220
23278
  canActivate: [AuthGuardService],
23221
- data: ɵ0$a
23279
+ data: ɵ0
23222
23280
  }
23223
23281
  ];
23224
23282
  class AdminRoutingModule {
@@ -23228,13 +23286,13 @@ AdminRoutingModule.decorators = [
23228
23286
  imports: [
23229
23287
  SharedRoutingModule,
23230
23288
  AdminModule,
23231
- RouterModule.forChild(routes$1)
23289
+ RouterModule.forChild(routes)
23232
23290
  ],
23233
23291
  exports: [RouterModule]
23234
23292
  },] }
23235
23293
  ];
23236
23294
 
23237
- const ErrorCodes$2 = {
23295
+ const ErrorCodes = {
23238
23296
  LOAD_PERSONS_ERROR: 100,
23239
23297
  SAVE_PERSONS_ERROR: 101,
23240
23298
  DELETE_PERSONS_ERROR: 102,
@@ -23246,5 +23304,5 @@ const ErrorCodes$2 = {
23246
23304
  * Generated bundle index. Do not edit.
23247
23305
  */
23248
23306
 
23249
- export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormHolder, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, copyForm2Entity, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitWhilePending, ɵ0$5 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 };
23307
+ export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormHolder, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, copyForm2Entity, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitWhilePending, ɵ0$5 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 };
23250
23308
  //# sourceMappingURL=ngx-sumaris-components.js.map