@sumaris-net/ngx-components 0.25.17 → 0.25.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,9 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2 } from '@angular/core';
3
- import * as i1$3 from '@angular/common';
1
+ import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Renderer2 } from '@angular/core';
4
2
  import { CommonModule, DOCUMENT, Location } from '@angular/common';
5
3
  import { CdkTableModule } from '@angular/cdk/table';
6
4
  import { A11yModule } from '@angular/cdk/a11y';
7
5
  import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
8
6
  import { ScrollingModule } from '@angular/cdk/scrolling';
9
- import * as i1$2 from '@angular/material/core';
10
7
  import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
11
8
  import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
12
9
  import { MatSortModule, MatSort } from '@angular/material/sort';
@@ -30,21 +27,16 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
30
27
  import { MatRadioModule } from '@angular/material/radio';
31
28
  import { MatBadgeModule } from '@angular/material/badge';
32
29
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
33
- import * as i2$1 from '@angular/material/dialog';
34
30
  import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
35
31
  import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
36
32
  import { __awaiter, __decorate } from 'tslib';
37
- import * as i1$6 from '@angular/forms';
38
33
  import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
39
34
  import { timer, merge, fromEvent, Subscription, BehaviorSubject, Subject, isObservable, of, noop as noop$8, Observable, defer, from, combineLatest, EMPTY } from 'rxjs';
40
35
  import { filter, first, map, takeUntil, startWith, debounceTime, takeWhile, switchMap, tap, distinctUntilChanged, mergeMap, catchError, throttleTime } from 'rxjs/operators';
41
- import * as i1$1 from '@ngx-translate/core';
42
36
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
43
- import * as i1$4 from '@ionic/angular';
44
37
  import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent } from '@ionic/angular';
45
38
  import * as momentImported from 'moment';
46
39
  import { isMoment } from 'moment';
47
- import * as i1 from '@angular/material-moment-adapter';
48
40
  import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
49
41
  import { Keyboard } from '@ionic-native/keyboard/ngx';
50
42
  import { TextMaskModule } from 'angular2-text-mask';
@@ -54,38 +46,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
54
46
  import { MatDividerModule } from '@angular/material/divider';
55
47
  import { MatTooltipModule } from '@angular/material/tooltip';
56
48
  import { MatChipsModule } from '@angular/material/chips';
57
- import * as i3$3 from '@angular/router';
58
49
  import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
59
- import * as i1$5 from '@angular/platform-browser';
60
50
  import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
61
- import * as i2$2 from '@angular/common/http';
62
51
  import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
63
52
  import { ColorPickerModule } from 'ngx-color-picker';
64
- import { NativeAudio } from '@ionic-native/native-audio/ngx';
65
- import { Vibration } from '@ionic-native/vibration/ngx';
53
+ import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
54
+ import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
66
55
  import { AudioManagement } from '@ionic-native/audio-management/ngx';
67
- import * as i2 from '@ionic-native/native-audio/ngx/index';
68
- import * as i3 from '@ionic-native/vibration/ngx/index';
69
- import * as i4 from '@ionic-native/audio-management/ngx/index';
56
+ import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
57
+ import { Vibration } from '@ionic-native/vibration/ngx/index';
58
+ import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
70
59
  import * as uuidv4Imported from 'uuid/v4';
71
60
  import { DragDropModule } from '@angular/cdk/drag-drop';
72
61
  import { MarkdownModule } from 'ngx-markdown';
73
62
  import { sign, box, hash, verify } from 'tweetnacl';
74
- import * as i3$1 from '@ionic/storage';
75
63
  import { Storage, IonicStorageModule } from '@ionic/storage';
76
64
  import 'zone.js/dist/zone-error';
77
- import { SplashScreen } from '@ionic-native/splash-screen/ngx';
78
- import { Connection, Network } from '@ionic-native/network/ngx';
79
- import { CacheService, CacheModule } from 'ionic-cache';
80
- import * as i6 from 'ionic-cache/dist/cache.service';
81
- import * as i9 from '@ionic-native/network/ngx/index';
82
- import * as i10 from '@ionic-native/splash-screen/ngx/index';
83
- import { StatusBar } from '@ionic-native/status-bar/ngx';
84
- import * as i2$4 from '@angular/cdk/platform';
65
+ import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
66
+ import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
67
+ import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
68
+ import { CacheService } from 'ionic-cache/dist/cache.service';
69
+ import { Network } from '@ionic-native/network/ngx/index';
70
+ import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
71
+ import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
85
72
  import { Platform as Platform$1 } from '@angular/cdk/platform';
86
- import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
73
+ import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
87
74
  import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
88
- import * as i2$3 from 'apollo-angular';
89
75
  import { Apollo } from 'apollo-angular';
90
76
  import { WebSocketLink } from '@apollo/client/link/ws';
91
77
  import { getMainDefinition } from '@apollo/client/utilities';
@@ -93,14 +79,13 @@ import { RetryLink } from '@apollo/client/link/retry';
93
79
  import QueueLink from 'apollo-link-queue';
94
80
  import SerializingLink from 'apollo-link-serialize';
95
81
  import loggerLink from 'apollo-link-logger';
96
- import * as i3$2 from 'apollo-angular/http';
97
82
  import { HttpLink } from 'apollo-angular/http';
98
83
  import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
99
- import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
100
- import * as i14 from '@ionic-native/status-bar/ngx/index';
101
- import * as i15 from '@ionic-native/keyboard/ngx/index';
102
- import * as i17 from '@ionic-native/in-app-browser/ngx/index';
103
- import * as i18 from '@ionic-native/downloader/ngx/index';
84
+ import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
85
+ import { StatusBar } from '@ionic-native/status-bar/ngx/index';
86
+ import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
87
+ import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
88
+ import { Downloader } from '@ionic-native/downloader/ngx/index';
104
89
  import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
105
90
  import { SelectionModel } from '@angular/cdk/collections';
106
91
  import { NgxJdenticonModule } from 'ngx-jdenticon';
@@ -885,19 +870,19 @@ class MatAutocompleteConfigHolder {
885
870
  return this.fields[fieldName] || this.add(fieldName);
886
871
  }
887
872
  }
888
- const DEFAULT_VALUE_ACCESSOR$6 = {
873
+ const DEFAULT_VALUE_ACCESSOR = {
889
874
  provide: NG_VALUE_ACCESSOR,
890
875
  useExisting: forwardRef(() => MatAutocompleteField),
891
876
  multi: true
892
877
  };
893
- const noop$7 = () => { };
894
- const ɵ0$a = noop$7;
878
+ const noop = () => { };
879
+ const ɵ0 = noop;
895
880
  class MatAutocompleteField {
896
881
  constructor(cd, formGroupDir) {
897
882
  this.cd = cd;
898
883
  this.formGroupDir = formGroupDir;
899
- this._onChangeCallback = noop$7;
900
- this._onTouchedCallback = noop$7;
884
+ this._onChangeCallback = noop;
885
+ this._onTouchedCallback = noop;
901
886
  this._subscription = new Subscription();
902
887
  this._filter$ = new BehaviorSubject(undefined);
903
888
  this._reload$ = new Subject();
@@ -1491,7 +1476,7 @@ MatAutocompleteField.decorators = [
1491
1476
  // eslint-disable-next-line @angular-eslint/component-selector
1492
1477
  selector: 'mat-autocomplete-field',
1493
1478
  template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field *ngIf=\"_readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [title]=\"displayValue\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- readonly -->\n <ng-container>\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n </ng-container>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n\n <ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\"\n [required]=\"required\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n </mat-select>\n\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autocomplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"filterInputTextFocusInEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"onKeydownEscape.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.opened && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initAutocompleteInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ng-template>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
1494
- providers: [DEFAULT_VALUE_ACCESSOR$6],
1479
+ providers: [DEFAULT_VALUE_ACCESSOR],
1495
1480
  changeDetection: ChangeDetectionStrategy.OnPush,
1496
1481
  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}"]
1497
1482
  },] }
@@ -1568,7 +1553,7 @@ class DateFormatPipe {
1568
1553
  return this.dateAdapter.format(date, displayFormat);
1569
1554
  }
1570
1555
  }
1571
- DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1556
+ DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1572
1557
  DateFormatPipe.decorators = [
1573
1558
  { type: Pipe, args: [{
1574
1559
  name: 'dateFormat'
@@ -1580,7 +1565,7 @@ DateFormatPipe.ctorParameters = () => [
1580
1565
  { type: TranslateService }
1581
1566
  ];
1582
1567
 
1583
- const moment$6 = momentImported;
1568
+ const moment = momentImported;
1584
1569
  class DateDiffDurationPipe {
1585
1570
  constructor(dateAdapter, translate) {
1586
1571
  this.dateAdapter = dateAdapter;
@@ -1596,17 +1581,17 @@ class DateDiffDurationPipe {
1596
1581
  return this.format(startDate, endDate);
1597
1582
  }
1598
1583
  format(startDate, endDate) {
1599
- const duration = moment$6.duration(endDate.diff(startDate));
1584
+ const duration = moment.duration(endDate.diff(startDate));
1600
1585
  if (duration.asMinutes() < 0)
1601
1586
  return '';
1602
- const timeDuration = moment$6(0)
1587
+ const timeDuration = moment(0)
1603
1588
  .hour(duration.hours())
1604
1589
  .minute(duration.minutes());
1605
1590
  const days = Math.floor(duration.asDays());
1606
1591
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
1607
1592
  }
1608
1593
  }
1609
- 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" });
1594
+ DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
1610
1595
  DateDiffDurationPipe.decorators = [
1611
1596
  { type: Pipe, args: [{
1612
1597
  name: 'dateDiffDuration'
@@ -1627,7 +1612,7 @@ class DateFromNowPipe {
1627
1612
  return date ? date.fromNow(args && args.withoutSuffix) : '';
1628
1613
  }
1629
1614
  }
1630
- DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1615
+ DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1631
1616
  DateFromNowPipe.decorators = [
1632
1617
  { type: Pipe, args: [{
1633
1618
  name: 'dateFromNow'
@@ -1696,7 +1681,7 @@ function formatToDD(value, opts) {
1696
1681
  value *= -1;
1697
1682
  }
1698
1683
  }
1699
- let degrees = roundFloat$1(value, opts.maxDecimals).toString();
1684
+ let degrees = roundFloat(value, opts.maxDecimals).toString();
1700
1685
  // Add sign
1701
1686
  let sign = negative ? '-' : '+';
1702
1687
  if (opts.placeholderChar) {
@@ -1747,7 +1732,7 @@ function formatToDDMMSS(value, opts) {
1747
1732
  }
1748
1733
  let degrees = Math.trunc(value);
1749
1734
  let minutes = Math.trunc((value - degrees) * 60);
1750
- let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1735
+ let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1751
1736
  while (seconds >= 60) {
1752
1737
  seconds -= 60;
1753
1738
  minutes += 1;
@@ -1815,7 +1800,7 @@ function formatToDDMM(value, opts) {
1815
1800
  }
1816
1801
  }
1817
1802
  let degrees = Math.trunc(value);
1818
- let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
1803
+ let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
1819
1804
  while (minutes >= 60) {
1820
1805
  minutes -= 60;
1821
1806
  degrees += 1;
@@ -1866,15 +1851,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
1866
1851
  return NaN;
1867
1852
  }
1868
1853
  if (pattern === 'DD')
1869
- return roundFloat$1(degrees, maxDecimals);
1854
+ return roundFloat(degrees, maxDecimals);
1870
1855
  const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
1871
1856
  const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
1872
1857
  const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
1873
1858
  const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
1874
1859
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
1875
- return roundFloat$1(degrees, maxDecimals);
1860
+ return roundFloat(degrees, maxDecimals);
1876
1861
  }
1877
- function roundFloat$1(input, maxDecimals) {
1862
+ function roundFloat(input, maxDecimals) {
1878
1863
  if (maxDecimals > 0) {
1879
1864
  const powDecimal = Math.pow(10, maxDecimals);
1880
1865
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -1894,7 +1879,7 @@ class LatLongFormatPipe {
1894
1879
  return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
1895
1880
  }
1896
1881
  }
1897
- LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
1882
+ LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
1898
1883
  LatLongFormatPipe.decorators = [
1899
1884
  { type: Pipe, args: [{
1900
1885
  name: 'latLongFormat'
@@ -1906,7 +1891,7 @@ class LatitudeFormatPipe {
1906
1891
  this.transform = formatLatitude;
1907
1892
  }
1908
1893
  }
1909
- LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
1894
+ LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
1910
1895
  LatitudeFormatPipe.decorators = [
1911
1896
  { type: Pipe, args: [{
1912
1897
  name: 'latitudeFormat'
@@ -1918,7 +1903,7 @@ class LongitudeFormatPipe {
1918
1903
  this.transform = formatLongitude;
1919
1904
  }
1920
1905
  }
1921
- LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
1906
+ LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
1922
1907
  LongitudeFormatPipe.decorators = [
1923
1908
  { type: Pipe, args: [{
1924
1909
  name: 'longitudeFormat'
@@ -1938,7 +1923,7 @@ class NumberFormatPipe {
1938
1923
  }
1939
1924
  }
1940
1925
  }
1941
- NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
1926
+ NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
1942
1927
  NumberFormatPipe.decorators = [
1943
1928
  { type: Pipe, args: [{
1944
1929
  name: 'numberFormat'
@@ -1978,7 +1963,7 @@ class HighlightPipe {
1978
1963
  }
1979
1964
  }
1980
1965
  }
1981
- HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
1966
+ HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
1982
1967
  HighlightPipe.decorators = [
1983
1968
  { type: Pipe, args: [{
1984
1969
  name: 'highlight'
@@ -2043,7 +2028,7 @@ FileSizePipe.decorators = [
2043
2028
  { type: Pipe, args: [{ name: 'fileSize' },] }
2044
2029
  ];
2045
2030
 
2046
- const moment$5 = momentImported;
2031
+ const moment$1 = momentImported;
2047
2032
  const DATE_UNIX_TIMESTAMP = 'X';
2048
2033
  const DATE_UNIX_MS_TIMESTAMP = 'x';
2049
2034
  class DateUtils {
@@ -2077,32 +2062,32 @@ function fromDateISOString(value) {
2077
2062
  if (!value || isMoment(value))
2078
2063
  return value;
2079
2064
  // Parse the input value, as a ISO date time
2080
- const date = moment$5(value, DATE_ISO_PATTERN);
2065
+ const date = moment$1(value, DATE_ISO_PATTERN);
2081
2066
  if (date.isValid())
2082
2067
  return date;
2083
2068
  // Not valid: trying to convert from unix timestamp
2084
2069
  if (typeof value === 'string') {
2085
2070
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2086
2071
  if (value.length === 10) {
2087
- return moment$5(value, DATE_UNIX_TIMESTAMP);
2072
+ return moment$1(value, DATE_UNIX_TIMESTAMP);
2088
2073
  }
2089
2074
  else if (value.length === 13) {
2090
- return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
2075
+ return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2091
2076
  }
2092
2077
  }
2093
2078
  console.warn('Unable to parse date: ' + value);
2094
2079
  return undefined;
2095
2080
  }
2096
2081
  function fromUnixTimestamp(timeInSec) {
2097
- return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
2082
+ return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2098
2083
  }
2099
2084
  function fromUnixMsTimestamp(timeInMs) {
2100
- return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2085
+ return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2101
2086
  }
2102
2087
  function toDuration(value, unit) {
2103
2088
  if (!value)
2104
2089
  return undefined;
2105
- const duration = moment$5.duration(value, unit);
2090
+ const duration = moment$1.duration(value, unit);
2106
2091
  // fix 990+ ms
2107
2092
  if (duration.milliseconds() >= 990) {
2108
2093
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2131,7 +2116,7 @@ class DurationPipe {
2131
2116
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
2132
2117
  }
2133
2118
  }
2134
- DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2119
+ DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
2135
2120
  DurationPipe.decorators = [
2136
2121
  { type: Pipe, args: [{
2137
2122
  name: 'duration'
@@ -2152,7 +2137,7 @@ class MathAbsPipe {
2152
2137
  }
2153
2138
  }
2154
2139
  }
2155
- MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2140
+ MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2156
2141
  MathAbsPipe.decorators = [
2157
2142
  { type: Pipe, args: [{
2158
2143
  name: 'mathAbs'
@@ -2164,7 +2149,7 @@ class EvenPipe {
2164
2149
  return val % 2 === 0;
2165
2150
  }
2166
2151
  }
2167
- EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2152
+ EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2168
2153
  EvenPipe.decorators = [
2169
2154
  { type: Pipe, args: [{
2170
2155
  name: 'even'
@@ -2176,7 +2161,7 @@ class OddPipe {
2176
2161
  return val % 2 !== 0;
2177
2162
  }
2178
2163
  }
2179
- OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2164
+ OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2180
2165
  OddPipe.decorators = [
2181
2166
  { type: Pipe, args: [{
2182
2167
  name: 'odd'
@@ -2284,7 +2269,7 @@ class MapGetPipe {
2284
2269
  return val[key];
2285
2270
  }
2286
2271
  }
2287
- MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2272
+ MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2288
2273
  MapGetPipe.decorators = [
2289
2274
  { type: Pipe, args: [{
2290
2275
  name: 'mapGet'
@@ -2298,7 +2283,7 @@ class MapKeysPipe {
2298
2283
  return Object.keys(map);
2299
2284
  }
2300
2285
  }
2301
- MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2286
+ MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2302
2287
  MapKeysPipe.decorators = [
2303
2288
  { type: Pipe, args: [{
2304
2289
  name: 'mapKeys'
@@ -2312,7 +2297,7 @@ class MapValuesPipe {
2312
2297
  return Object.values(map);
2313
2298
  }
2314
2299
  }
2315
- MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2300
+ MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2316
2301
  MapValuesPipe.decorators = [
2317
2302
  { type: Pipe, args: [{
2318
2303
  name: 'mapValues'
@@ -2325,7 +2310,7 @@ class IsNotNilOrBlankPipe {
2325
2310
  return isNotNilOrBlank(value);
2326
2311
  }
2327
2312
  }
2328
- IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2313
+ IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2329
2314
  IsNotNilOrBlankPipe.decorators = [
2330
2315
  { type: Pipe, args: [{
2331
2316
  name: 'isNotNilOrBlank'
@@ -2337,7 +2322,7 @@ class IsNilOrBlankPipe {
2337
2322
  return isNilOrBlank(value);
2338
2323
  }
2339
2324
  }
2340
- IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2325
+ IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2341
2326
  IsNilOrBlankPipe.decorators = [
2342
2327
  { type: Pipe, args: [{
2343
2328
  name: 'isNilOrBlank'
@@ -2349,7 +2334,7 @@ class ToStringPipe {
2349
2334
  return (value !== null && value !== undefined) ? value.toString() : '';
2350
2335
  }
2351
2336
  }
2352
- ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2337
+ ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2353
2338
  ToStringPipe.decorators = [
2354
2339
  { type: Pipe, args: [{
2355
2340
  name: 'toString'
@@ -2361,7 +2346,7 @@ class StrLengthPipe {
2361
2346
  return value && value.length || 0;
2362
2347
  }
2363
2348
  }
2364
- StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2349
+ StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2365
2350
  StrLengthPipe.decorators = [
2366
2351
  { type: Pipe, args: [{
2367
2352
  name: 'strLength'
@@ -2412,7 +2397,7 @@ class TranslateContextService {
2412
2397
  : parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
2413
2398
  }
2414
2399
  }
2415
- TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2400
+ TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2416
2401
  TranslateContextService.decorators = [
2417
2402
  { type: Injectable, args: [{ providedIn: 'root' },] }
2418
2403
  ];
@@ -2428,7 +2413,7 @@ class TranslateContextPipe {
2428
2413
  return this.translateContext.instant(key, context);
2429
2414
  }
2430
2415
  }
2431
- TranslateContextPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2416
+ TranslateContextPipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
2432
2417
  TranslateContextPipe.decorators = [
2433
2418
  { type: Pipe, args: [{
2434
2419
  name: 'translateContext'
@@ -2445,7 +2430,7 @@ class TranslatablePipe {
2445
2430
  return (_a = changeCaseToUnderscore(value)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
2446
2431
  }
2447
2432
  }
2448
- TranslatablePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2433
+ TranslatablePipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
2449
2434
  TranslatablePipe.decorators = [
2450
2435
  { type: Pipe, args: [{
2451
2436
  name: 'translatable'
@@ -2462,7 +2447,7 @@ class PropertyGetPipe {
2462
2447
  args && args.defaultValue);
2463
2448
  }
2464
2449
  }
2465
- PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2450
+ PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2466
2451
  PropertyGetPipe.decorators = [
2467
2452
  { type: Pipe, args: [{
2468
2453
  name: 'propertyGet'
@@ -2487,12 +2472,12 @@ NgInitDirective.propDecorators = {
2487
2472
  ngInit: [{ type: Output }]
2488
2473
  };
2489
2474
 
2490
- const moment$4 = momentImported;
2475
+ const moment$2 = momentImported;
2491
2476
  // @dynamic
2492
2477
  class SharedValidators {
2493
2478
  static validDate(control) {
2494
2479
  const value = control.value;
2495
- const date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
2480
+ const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
2496
2481
  if (date && (!date.isValid() || date.year() < 1970)) {
2497
2482
  return { validDate: true };
2498
2483
  }
@@ -3528,7 +3513,7 @@ class FormErrorAdapter {
3528
3513
  return errorKey;
3529
3514
  }
3530
3515
  }
3531
- FormErrorAdapter.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorAdapter_Factory() { return new FormErrorAdapter(i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorAdapter, providedIn: "root" });
3516
+ FormErrorAdapter.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorAdapter_Factory() { return new FormErrorAdapter(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorAdapter, providedIn: "root" });
3532
3517
  FormErrorAdapter.decorators = [
3533
3518
  { type: Injectable, args: [{ providedIn: 'root' },] }
3534
3519
  ];
@@ -3797,9 +3782,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
3797
3782
  const hour = parseInt(durationParts[0] || '0');
3798
3783
  const minute = parseInt(durationParts[1] || '0');
3799
3784
  const value = hour + (minute + 0.5) / 60;
3800
- return roundFloat(value, maxDecimals);
3785
+ return roundFloat$1(value, maxDecimals);
3801
3786
  }
3802
- function roundFloat(input, maxDecimals) {
3787
+ function roundFloat$1(input, maxDecimals) {
3803
3788
  if (maxDecimals > 0) {
3804
3789
  const powDecimal = Math.pow(10, maxDecimals);
3805
3790
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -3823,9 +3808,9 @@ const MASKS = {
3823
3808
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
3824
3809
  }
3825
3810
  };
3826
- const noop$6 = () => {
3811
+ const noop$1 = () => {
3827
3812
  };
3828
- const ɵ0$9 = noop$6;
3813
+ const ɵ0$1 = noop$1;
3829
3814
  class MatLatLongField {
3830
3815
  constructor(platform, translate, formBuilder, cd, formGroupDir) {
3831
3816
  this.platform = platform;
@@ -3833,8 +3818,8 @@ class MatLatLongField {
3833
3818
  this.formBuilder = formBuilder;
3834
3819
  this.cd = cd;
3835
3820
  this.formGroupDir = formGroupDir;
3836
- this._onChangeCallback = noop$6;
3837
- this._onTouchedCallback = noop$6;
3821
+ this._onChangeCallback = noop$1;
3822
+ this._onTouchedCallback = noop$1;
3838
3823
  this._subscription = new Subscription();
3839
3824
  this.disabling = false;
3840
3825
  this.writing = false;
@@ -4170,14 +4155,14 @@ SharedMatLatLongModule.decorators = [
4170
4155
  },] }
4171
4156
  ];
4172
4157
 
4173
- const DEFAULT_VALUE_ACCESSOR$5 = {
4158
+ const DEFAULT_VALUE_ACCESSOR$1 = {
4174
4159
  provide: NG_VALUE_ACCESSOR,
4175
4160
  useExisting: forwardRef(() => MatDate),
4176
4161
  multi: true
4177
4162
  };
4178
- const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4179
- const noop$5 = () => { };
4180
- const ɵ0$8 = noop$5;
4163
+ const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4164
+ const noop$2 = () => { };
4165
+ const ɵ0$2 = noop$2;
4181
4166
  class MatDate {
4182
4167
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4183
4168
  this.dateAdapter = dateAdapter;
@@ -4186,12 +4171,12 @@ class MatDate {
4186
4171
  this.cd = cd;
4187
4172
  this.keyboard = keyboard;
4188
4173
  this.formGroupDir = formGroupDir;
4189
- this._onChangeCallback = noop$5;
4190
- this._onTouchedCallback = noop$5;
4174
+ this._onChangeCallback = noop$2;
4175
+ this._onTouchedCallback = noop$2;
4191
4176
  this._subscription = new Subscription();
4192
4177
  this.writing = true;
4193
4178
  this.disabling = false;
4194
- this.dayMask = DAY_MASK$2;
4179
+ this.dayMask = DAY_MASK;
4195
4180
  this.disabled = false;
4196
4181
  this.floatLabel = 'auto';
4197
4182
  this.readonly = false;
@@ -4428,7 +4413,7 @@ MatDate.decorators = [
4428
4413
  selector: 'mat-date-field',
4429
4414
  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",
4430
4415
  providers: [
4431
- DEFAULT_VALUE_ACCESSOR$5,
4416
+ DEFAULT_VALUE_ACCESSOR$1,
4432
4417
  ],
4433
4418
  changeDetection: ChangeDetectionStrategy.OnPush,
4434
4419
  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%}"]
@@ -4461,17 +4446,17 @@ MatDate.propDecorators = {
4461
4446
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
4462
4447
  };
4463
4448
 
4464
- const DEFAULT_VALUE_ACCESSOR$4 = {
4449
+ const DEFAULT_VALUE_ACCESSOR$2 = {
4465
4450
  provide: NG_VALUE_ACCESSOR,
4466
4451
  useExisting: forwardRef(() => MatDateTime),
4467
4452
  multi: true
4468
4453
  };
4469
4454
  const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4470
4455
  const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
4471
- const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4472
- const noop$4 = () => {
4456
+ const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4457
+ const noop$3 = () => {
4473
4458
  };
4474
- const ɵ0$7 = noop$4;
4459
+ const ɵ0$3 = noop$3;
4475
4460
  class MatDateTime {
4476
4461
  constructor(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
4477
4462
  this.platform = platform;
@@ -4481,14 +4466,14 @@ class MatDateTime {
4481
4466
  this.keyboard = keyboard;
4482
4467
  this.cd = cd;
4483
4468
  this.formGroupDir = formGroupDir;
4484
- this._onChangeCallback = noop$4;
4485
- this._onTouchedCallback = noop$4;
4469
+ this._onChangeCallback = noop$3;
4470
+ this._onTouchedCallback = noop$3;
4486
4471
  this._subscription = new Subscription();
4487
4472
  this.writing = true;
4488
4473
  this.disabling = false;
4489
4474
  this._readonly = false;
4490
4475
  this.dayMask = DAY_MASK$1;
4491
- this.hourMask = HOUR_MASK$1;
4476
+ this.hourMask = HOUR_MASK;
4492
4477
  this.floatLabel = 'auto';
4493
4478
  this.compact = false;
4494
4479
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -4799,7 +4784,7 @@ MatDateTime.decorators = [
4799
4784
  selector: 'mat-date-time-field',
4800
4785
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable + time -->\n<ng-template #writable >\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding no-wrap\" nowrap>\n\n <!-- day -->\n <ion-col class=\"day ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dateFormControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dateFormControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix #datePickerButton2 (click)=\"openDatePicker($event, datePicker)\" [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (timeFormControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"timeFormControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"timeFormControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"timeFormControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
4801
4786
  providers: [
4802
- DEFAULT_VALUE_ACCESSOR$4,
4787
+ DEFAULT_VALUE_ACCESSOR$2,
4803
4788
  ],
4804
4789
  changeDetection: ChangeDetectionStrategy.OnPush,
4805
4790
  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%}"]
@@ -4838,10 +4823,10 @@ const DEFAULT_VALUE_ACCESSOR$3 = {
4838
4823
  useExisting: forwardRef(() => MatDateShort),
4839
4824
  multi: true
4840
4825
  };
4841
- const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
4842
- const noop$3 = () => {
4826
+ const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
4827
+ const noop$4 = () => {
4843
4828
  };
4844
- const ɵ0$6 = noop$3;
4829
+ const ɵ0$4 = noop$4;
4845
4830
  class MatDateShort {
4846
4831
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4847
4832
  this.dateAdapter = dateAdapter;
@@ -4850,11 +4835,11 @@ class MatDateShort {
4850
4835
  this.cd = cd;
4851
4836
  this.keyboard = keyboard;
4852
4837
  this.formGroupDir = formGroupDir;
4853
- this._onChangeCallback = noop$3;
4854
- this._onTouchedCallback = noop$3;
4838
+ this._onChangeCallback = noop$4;
4839
+ this._onTouchedCallback = noop$4;
4855
4840
  this.writing = true;
4856
4841
  this.disabling = false;
4857
- this.dayMask = DAY_MASK;
4842
+ this.dayMask = DAY_MASK$2;
4858
4843
  this.disabled = false;
4859
4844
  this.floatLabel = 'auto';
4860
4845
  this.readonly = false;
@@ -5167,16 +5152,16 @@ SharedMatDateTimeModule.decorators = [
5167
5152
  },] }
5168
5153
  ];
5169
5154
 
5170
- const DEFAULT_VALUE_ACCESSOR$2 = {
5155
+ const DEFAULT_VALUE_ACCESSOR$4 = {
5171
5156
  provide: NG_VALUE_ACCESSOR,
5172
5157
  useExisting: forwardRef(() => MatDuration),
5173
5158
  multi: true
5174
5159
  };
5175
5160
  const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
5176
- const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5177
- const noop$2 = () => {
5161
+ const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5162
+ const noop$5 = () => {
5178
5163
  };
5179
- const ɵ0$5 = noop$2;
5164
+ const ɵ0$5 = noop$5;
5180
5165
  class MatDuration {
5181
5166
  constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
5182
5167
  this.dateAdapter = dateAdapter;
@@ -5185,11 +5170,11 @@ class MatDuration {
5185
5170
  this.cd = cd;
5186
5171
  this.formGroupDir = formGroupDir;
5187
5172
  this._subscription = new Subscription();
5188
- this._onChangeCallback = noop$2;
5189
- this._onTouchedCallback = noop$2;
5173
+ this._onChangeCallback = noop$5;
5174
+ this._onTouchedCallback = noop$5;
5190
5175
  this.writing = true;
5191
5176
  this.disabling = false;
5192
- this.hourMask = HOUR_MASK;
5177
+ this.hourMask = HOUR_MASK$1;
5193
5178
  this.disabled = false;
5194
5179
  this.floatLabel = 'auto';
5195
5180
  this.readonly = false;
@@ -5369,7 +5354,7 @@ MatDuration.decorators = [
5369
5354
  selector: 'mat-duration-field',
5370
5355
  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",
5371
5356
  providers: [
5372
- DEFAULT_VALUE_ACCESSOR$2,
5357
+ DEFAULT_VALUE_ACCESSOR$4,
5373
5358
  ],
5374
5359
  changeDetection: ChangeDetectionStrategy.OnPush,
5375
5360
  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%}"]
@@ -5426,22 +5411,22 @@ SharedMatDurationModule.decorators = [
5426
5411
  },] }
5427
5412
  ];
5428
5413
 
5429
- const DEFAULT_VALUE_ACCESSOR$1 = {
5414
+ const DEFAULT_VALUE_ACCESSOR$5 = {
5430
5415
  provide: NG_VALUE_ACCESSOR,
5431
5416
  useExisting: forwardRef(() => MatBooleanField),
5432
5417
  multi: true
5433
5418
  };
5434
- const noop$1 = () => {
5419
+ const noop$6 = () => {
5435
5420
  };
5436
- const ɵ0$4 = noop$1;
5421
+ const ɵ0$6 = noop$6;
5437
5422
  class MatBooleanField {
5438
5423
  constructor(translate, formBuilder, cd, formGroupDir) {
5439
5424
  this.translate = translate;
5440
5425
  this.formBuilder = formBuilder;
5441
5426
  this.cd = cd;
5442
5427
  this.formGroupDir = formGroupDir;
5443
- this._onChangeCallback = noop$1;
5444
- this._onTouchedCallback = noop$1;
5428
+ this._onChangeCallback = noop$6;
5429
+ this._onTouchedCallback = noop$6;
5445
5430
  this._writing = false;
5446
5431
  this.showRadio = false;
5447
5432
  this.disabled = false;
@@ -5614,7 +5599,7 @@ MatBooleanField.decorators = [
5614
5599
  selector: 'mat-boolean-field',
5615
5600
  template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label>&nbsp;</ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </ng-container>\n\n <div class=\"cdk-visually-hidden\">\n <div #suffix><ng-content select=\"[matSuffix]\"></ng-content></div>\n </div>\n\n</ng-template>\n\n\n",
5616
5601
  providers: [
5617
- DEFAULT_VALUE_ACCESSOR$1
5602
+ DEFAULT_VALUE_ACCESSOR$5
5618
5603
  ],
5619
5604
  changeDetection: ChangeDetectionStrategy.OnPush,
5620
5605
  styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--flex-basis:calc(100% / var(--buttons-col-count, 2));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);white-space:normal;padding:0 2px;height:40px}"]
@@ -5862,7 +5847,7 @@ class MatNumpadDomService {
5862
5847
  this.appRef.detachView(this.componentRef.hostView);
5863
5848
  }
5864
5849
  }
5865
- MatNumpadDomService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1$3.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
5850
+ MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
5866
5851
  MatNumpadDomService.decorators = [
5867
5852
  { type: Injectable, args: [{
5868
5853
  providedIn: 'root'
@@ -6226,7 +6211,7 @@ SharedMatNumpadModule.decorators = [
6226
6211
  },] }
6227
6212
  ];
6228
6213
 
6229
- const DEFAULT_VALUE_ACCESSOR = {
6214
+ const DEFAULT_VALUE_ACCESSOR$6 = {
6230
6215
  provide: NG_VALUE_ACCESSOR,
6231
6216
  useExisting: forwardRef(() => MatSwipeField),
6232
6217
  multi: true
@@ -6489,7 +6474,7 @@ MatSwipeField.decorators = [
6489
6474
  { type: Component, args: [{
6490
6475
  selector: 'mat-swipe-field',
6491
6476
  template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [class]=\"classList\"\n [class.mat-form-field-disabled]=\"disabled\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n </mat-label>\n <input matInput #fakeInput type=\"text\"\n [formControl]=\"formControl\"\n [readonly]=\"true\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showSlides\"\n [tabindex]=\"tabindex\">\n\n <div class=\"slides-container\" [class.hidden]=\"!showSlides\">\n <ion-slides #slides\n [options]=\"slidesOptions\"\n (ionSlidesDidLoad)=\"slidesLoaded()\"\n (ionSlideReachStart)=\"reachStart(true)\"\n (ionSlideReachEnd)=\"reachEnd(true)\"\n (ionSlideNextEnd)=\"reachStart(false)\"\n (ionSlidePrevEnd)=\"reachEnd(false)\"\n (ionSlideDidChange)=\"slideChanged()\"\n >\n <ion-slide *ngFor=\"let item of $items | async\">\n <ion-label>{{ displayWith(item) }}</ion-label>\n </ion-slide>\n\n </ion-slides>\n </div>\n\n <button #prevButton\n mat-icon-button\n type=\"button\"\n class=\"button-prev\"\n [hidden]=\"!showSlides\"\n [disabled]=\"previousDisabled\"\n (click)=\"previous()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button #nextButton\n mat-icon-button\n type=\"button\"\n class=\"button-next\"\n [hidden]=\"!showSlides\"\n [disabled]=\"nextDisabled\"\n (click)=\"next()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n\n</mat-form-field>\n",
6492
- providers: [DEFAULT_VALUE_ACCESSOR],
6477
+ providers: [DEFAULT_VALUE_ACCESSOR$6],
6493
6478
  changeDetection: ChangeDetectionStrategy.OnPush,
6494
6479
  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}"]
6495
6480
  },] }
@@ -6984,7 +6969,7 @@ class ProgressBarService {
6984
6969
  }
6985
6970
  }
6986
6971
  }
6987
- ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
6972
+ ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
6988
6973
  ProgressBarService.decorators = [
6989
6974
  { type: Injectable, args: [{ providedIn: 'root' },] }
6990
6975
  ];
@@ -7028,7 +7013,7 @@ class AppGestureConfig extends HammerGestureConfig {
7028
7013
  return mc;
7029
7014
  }
7030
7015
  }
7031
- AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7016
+ AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7032
7017
  AppGestureConfig.decorators = [
7033
7018
  { type: Injectable, args: [{ providedIn: 'root' },] }
7034
7019
  ];
@@ -7251,7 +7236,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
7251
7236
  this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
7252
7237
  }
7253
7238
  }
7254
- MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7239
+ MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7255
7240
  MatPaginatorI18n.decorators = [
7256
7241
  { type: Injectable, args: [{ providedIn: 'root' },] }
7257
7242
  ];
@@ -7341,17 +7326,17 @@ function getColorContrast(color, bw) {
7341
7326
  return rgbArrayToHex(rgb.map(v => 255 - v));
7342
7327
  }
7343
7328
 
7344
- const noop = () => {
7329
+ const noop$7 = () => {
7345
7330
  };
7346
- const ɵ0$3 = noop;
7331
+ const ɵ0$7 = noop$7;
7347
7332
  class AppFormField {
7348
7333
  constructor(translate, cd, injector, formGroupDir) {
7349
7334
  this.translate = translate;
7350
7335
  this.cd = cd;
7351
7336
  this.injector = injector;
7352
7337
  this.formGroupDir = formGroupDir;
7353
- this._onChangeCallback = noop;
7354
- this._onTouchedCallback = noop;
7338
+ this._onChangeCallback = noop$7;
7339
+ this._onTouchedCallback = noop$7;
7355
7340
  this.readonly = false;
7356
7341
  this.compact = false;
7357
7342
  this.floatLabel = 'auto';
@@ -7767,14 +7752,14 @@ class AudioProvider extends StartableService {
7767
7752
  });
7768
7753
  }
7769
7754
  }
7770
- 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" });
7755
+ 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" });
7771
7756
  AudioProvider.decorators = [
7772
7757
  { type: Injectable, args: [{ providedIn: 'root' },] }
7773
7758
  ];
7774
7759
  AudioProvider.ctorParameters = () => [
7775
7760
  { type: Platform },
7776
- { type: NativeAudio, decorators: [{ type: Optional }] },
7777
- { type: Vibration, decorators: [{ type: Optional }] },
7761
+ { type: NativeAudio$1, decorators: [{ type: Optional }] },
7762
+ { type: Vibration$1, decorators: [{ type: Optional }] },
7778
7763
  { type: AudioManagement, decorators: [{ type: Optional }] }
7779
7764
  ];
7780
7765
 
@@ -7856,7 +7841,7 @@ class Hotkeys {
7856
7841
  });
7857
7842
  }
7858
7843
  }
7859
- 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" });
7844
+ Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
7860
7845
  Hotkeys.decorators = [
7861
7846
  { type: Injectable, args: [{
7862
7847
  providedIn: 'root'
@@ -8030,7 +8015,7 @@ class Base64ImageReader {
8030
8015
  }
8031
8016
  }
8032
8017
 
8033
- const uuidv4$1 = uuidv4Imported;
8018
+ const uuidv4 = uuidv4Imported;
8034
8019
  class FileService {
8035
8020
  constructor(platform,
8036
8021
  //private transfer: FileTransfer,
@@ -8067,7 +8052,7 @@ class FileService {
8067
8052
  const lastSlashIndex = source.lastIndexOf('/');
8068
8053
  if (lastSlashIndex === -1)
8069
8054
  throw new Error('Invalid URL: ' + source);
8070
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
8055
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
8071
8056
  // Download into the file system
8072
8057
  if (responseType === 'file' && this.canUseFileSystem) {
8073
8058
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -8123,7 +8108,7 @@ class FileService {
8123
8108
  this._started = true;
8124
8109
  }
8125
8110
  }
8126
- 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" });
8111
+ FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
8127
8112
  FileService.decorators = [
8128
8113
  { type: Injectable, args: [{
8129
8114
  providedIn: 'root',
@@ -8285,7 +8270,7 @@ class Base58 {
8285
8270
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
8286
8271
 
8287
8272
  const scrypt = require('scrypt-async');
8288
- const sha256$1 = require('hash.js/lib/hash/sha/256');
8273
+ const sha256 = require('hash.js/lib/hash/sha/256');
8289
8274
  const sha512 = require('hash.js/lib/hash/sha/512');
8290
8275
  const nacl = {
8291
8276
  sign,
@@ -8389,7 +8374,7 @@ class CryptoService {
8389
8374
  * Hash (using SHA256) a message
8390
8375
  */
8391
8376
  sha256(message) {
8392
- return sha256$1().update(message).digest('hex');
8377
+ return sha256().update(message).digest('hex');
8393
8378
  }
8394
8379
  /**
8395
8380
  * Hash (using SHA512) a message
@@ -8402,7 +8387,7 @@ class CryptoService {
8402
8387
  return nacl.util.encodeBase64(m);
8403
8388
  }
8404
8389
  }
8405
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8390
+ CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8406
8391
  CryptoService.decorators = [
8407
8392
  { type: Injectable, args: [{ providedIn: 'root' },] }
8408
8393
  ];
@@ -9623,7 +9608,7 @@ class LocalSettingsService extends StartableService {
9623
9608
  return page;
9624
9609
  }
9625
9610
  }
9626
- 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" });
9611
+ 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" });
9627
9612
  LocalSettingsService.decorators = [
9628
9613
  { type: Injectable, args: [{
9629
9614
  providedIn: 'root',
@@ -10283,7 +10268,7 @@ class NetworkService extends StartableService {
10283
10268
  });
10284
10269
  }
10285
10270
  }
10286
- 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" });
10271
+ 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" });
10287
10272
  NetworkService.decorators = [
10288
10273
  { type: Injectable, args: [{ providedIn: 'root' },] }
10289
10274
  ];
@@ -10294,16 +10279,16 @@ NetworkService.ctorParameters = () => [
10294
10279
  { type: CryptoService },
10295
10280
  { type: Storage },
10296
10281
  { type: LocalSettingsService },
10297
- { type: CacheService },
10282
+ { type: CacheService$1 },
10298
10283
  { type: HttpClient },
10299
10284
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
10300
- { type: Network, decorators: [{ type: Optional }] },
10301
- { type: SplashScreen, decorators: [{ type: Optional }] },
10285
+ { type: Network$1, decorators: [{ type: Optional }] },
10286
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
10302
10287
  { type: TranslateService, decorators: [{ type: Optional }] },
10303
10288
  { type: ToastController, decorators: [{ type: Optional }] }
10304
10289
  ];
10305
10290
 
10306
- const ErrorCodes$2 = {
10291
+ const ErrorCodes = {
10307
10292
  UNKNOWN_ERROR: 0,
10308
10293
  LOAD_ACCOUNT_ERROR: 1,
10309
10294
  BAD_PASSWORD: 2,
@@ -10650,7 +10635,7 @@ class EntityStore {
10650
10635
  }
10651
10636
  catch (err) {
10652
10637
  console.error(err);
10653
- throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
10638
+ throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
10654
10639
  }
10655
10640
  }
10656
10641
  // Emit update event
@@ -11221,7 +11206,7 @@ class EntitiesStorage extends StartableService {
11221
11206
  }
11222
11207
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
11223
11208
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
11224
- 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" });
11209
+ 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" });
11225
11210
  EntitiesStorage.decorators = [
11226
11211
  { type: Injectable, args: [{ providedIn: 'root' },] }
11227
11212
  ];
@@ -11321,10 +11306,10 @@ function referentialToString(obj, properties) {
11321
11306
  function referentialsToString(values, properties, separator) {
11322
11307
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
11323
11308
  }
11324
- const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
11309
+ const ɵ0$8 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
11325
11310
  const StatusList = Object.freeze([
11326
11311
  {
11327
- id: ɵ0$2,
11312
+ id: ɵ0$8,
11328
11313
  icon: 'checkmark',
11329
11314
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
11330
11315
  },
@@ -11599,7 +11584,7 @@ function accountToString(data) {
11599
11584
  (data.lastName || '')) || '';
11600
11585
  }
11601
11586
 
11602
- const uuidv4 = uuidv4Imported;
11587
+ const uuidv4$1 = uuidv4Imported;
11603
11588
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
11604
11589
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
11605
11590
  /**
@@ -11643,7 +11628,7 @@ function createTrackerLink(opts) {
11643
11628
  // Skip if not tracked
11644
11629
  if (!context || !context.tracked)
11645
11630
  return forward(operation);
11646
- const id = context.serializationKey || uuidv4();
11631
+ const id = context.serializationKey || uuidv4$1();
11647
11632
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
11648
11633
  // Clean context, before calling JSON.stringify (remove unused attributes)
11649
11634
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -12312,7 +12297,7 @@ class GraphqlService extends StartableService {
12312
12297
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
12313
12298
  || this.toAppError(err.networkError)
12314
12299
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
12315
- || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
12300
+ || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
12316
12301
  // If graphQL: try to convert the first error found
12317
12302
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
12318
12303
  || this.toAppError(err)
@@ -12320,7 +12305,7 @@ class GraphqlService extends StartableService {
12320
12305
  || (err.graphQLErrors && err.graphQLErrors[0])
12321
12306
  || err;
12322
12307
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
12323
- if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
12308
+ if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
12324
12309
  console.error('[graphql] original error: ' + err.networkError.message);
12325
12310
  this.onNetworkError.next(error);
12326
12311
  }
@@ -12356,7 +12341,7 @@ class GraphqlService extends StartableService {
12356
12341
  return 'ERROR.UNAUTHORIZED';
12357
12342
  case ServerErrorCodes.FORBIDDEN:
12358
12343
  return 'ERROR.FORBIDDEN';
12359
- case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
12344
+ case ErrorCodes.UNKNOWN_NETWORK_ERROR:
12360
12345
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
12361
12346
  case ServerErrorCodes.BAD_UPDATE_DATE:
12362
12347
  return 'ERROR.BAD_UPDATE_DATE';
@@ -12384,7 +12369,7 @@ class GraphqlService extends StartableService {
12384
12369
  return undefined;
12385
12370
  }
12386
12371
  }
12387
- 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" });
12372
+ 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" });
12388
12373
  GraphqlService.decorators = [
12389
12374
  { type: Injectable, args: [{
12390
12375
  providedIn: 'root'
@@ -12401,7 +12386,7 @@ GraphqlService.ctorParameters = () => [
12401
12386
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
12402
12387
  ];
12403
12388
 
12404
- const sha256 = require('hash.js/lib/hash/sha/256');
12389
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
12405
12390
  class BaseGraphqlServiceOptions {
12406
12391
  }
12407
12392
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -12551,8 +12536,8 @@ class BaseGraphqlService {
12551
12536
  }
12552
12537
  /* -- protected methods -- */
12553
12538
  computeMutableWatchQueryId(opts) {
12554
- const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
12555
- const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
12539
+ const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
12540
+ const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
12556
12541
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
12557
12542
  }
12558
12543
  findMutableWatchQueries(opts) {
@@ -12615,7 +12600,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
12615
12600
  /* ------------------------------------
12616
12601
  * GraphQL queries
12617
12602
  * ------------------------------------*/
12618
- const Fragments$1 = {
12603
+ const Fragments = {
12619
12604
  account: gql `
12620
12605
  fragment AccountFragment on AccountVO {
12621
12606
  id
@@ -12648,13 +12633,13 @@ const Fragments$1 = {
12648
12633
  `
12649
12634
  };
12650
12635
  // Load account query
12651
- const LoadQuery$1 = gql `
12636
+ const LoadQuery = gql `
12652
12637
  query Account {
12653
12638
  data: account {
12654
12639
  ...AccountFragment
12655
12640
  }
12656
12641
  }
12657
- ${Fragments$1.account}
12642
+ ${Fragments.account}
12658
12643
  `;
12659
12644
  // Check email query
12660
12645
  const IsEmailExistsQuery = gql `
@@ -12663,13 +12648,13 @@ const IsEmailExistsQuery = gql `
12663
12648
  }
12664
12649
  `;
12665
12650
  // Save (create or update) account mutation
12666
- const SaveMutation$1 = gql `
12651
+ const SaveMutation = gql `
12667
12652
  mutation SaveAccount($data:AccountVOInput){
12668
12653
  data: saveAccount(account: $data){
12669
12654
  ...AccountFragment
12670
12655
  }
12671
12656
  }
12672
- ${Fragments$1.account}
12657
+ ${Fragments.account}
12673
12658
  `;
12674
12659
  // Create account mutation
12675
12660
  const CreateMutation = gql `
@@ -12678,7 +12663,7 @@ const CreateMutation = gql `
12678
12663
  ...AccountFragment
12679
12664
  }
12680
12665
  }
12681
- ${Fragments$1.account}
12666
+ ${Fragments.account}
12682
12667
  `;
12683
12668
  // Sent confirmation email
12684
12669
  const SendConfirmEmailMutation = gql `
@@ -13016,7 +13001,7 @@ class AccountService extends BaseGraphqlService {
13016
13001
  catch (error) {
13017
13002
  console.error(error);
13018
13003
  this.resetData();
13019
- throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13004
+ throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13020
13005
  }
13021
13006
  // Store pubkey+keypair
13022
13007
  this._data.pubkey = Base58.encode(keypair.publicKey);
@@ -13050,7 +13035,7 @@ class AccountService extends BaseGraphqlService {
13050
13035
  }
13051
13036
  catch (err) {
13052
13037
  // If account not found, check if email is valid
13053
- if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
13038
+ if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
13054
13039
  // Check email exists
13055
13040
  if (data.username.indexOf('@') !== -1) {
13056
13041
  let isEmailExists;
@@ -13062,11 +13047,11 @@ class AccountService extends BaseGraphqlService {
13062
13047
  }
13063
13048
  // Email not exists (no account)
13064
13049
  if (!isEmailExists) {
13065
- throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13050
+ throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13066
13051
  }
13067
13052
  }
13068
13053
  // Email exists, so error = 'bad password'
13069
- throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13054
+ throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13070
13055
  }
13071
13056
  throw err; // resend the first error
13072
13057
  }
@@ -13191,8 +13176,8 @@ class AccountService extends BaseGraphqlService {
13191
13176
  // Load remotely
13192
13177
  else {
13193
13178
  const { data } = yield this.graphql.query({
13194
- query: LoadQuery$1,
13195
- error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
13179
+ query: LoadQuery,
13180
+ error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
13196
13181
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
13197
13182
  });
13198
13183
  json = data;
@@ -13219,7 +13204,7 @@ class AccountService extends BaseGraphqlService {
13219
13204
  return __awaiter(this, void 0, void 0, function* () {
13220
13205
  const isEmailExists = yield this.isEmailExists(email);
13221
13206
  if (isEmailExists) {
13222
- throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
13207
+ throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
13223
13208
  }
13224
13209
  });
13225
13210
  }
@@ -13255,7 +13240,7 @@ class AccountService extends BaseGraphqlService {
13255
13240
  locale
13256
13241
  },
13257
13242
  error: {
13258
- code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
13243
+ code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
13259
13244
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
13260
13245
  }
13261
13246
  });
@@ -13271,7 +13256,7 @@ class AccountService extends BaseGraphqlService {
13271
13256
  code
13272
13257
  },
13273
13258
  error: {
13274
- code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
13259
+ code: ErrorCodes.CONFIRM_EMAIL_FAILED,
13275
13260
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
13276
13261
  }
13277
13262
  });
@@ -13289,7 +13274,7 @@ class AccountService extends BaseGraphqlService {
13289
13274
  interval: 10
13290
13275
  },
13291
13276
  error: {
13292
- code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
13277
+ code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
13293
13278
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
13294
13279
  }
13295
13280
  }).subscribe({
@@ -13398,7 +13383,7 @@ class AccountService extends BaseGraphqlService {
13398
13383
  throw error;
13399
13384
  console.error(error);
13400
13385
  throw {
13401
- code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
13386
+ code: ErrorCodes.LOAD_ACCOUNT_ERROR,
13402
13387
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
13403
13388
  };
13404
13389
  }
@@ -13543,7 +13528,7 @@ class AccountService extends BaseGraphqlService {
13543
13528
  if (!isNew) {
13544
13529
  const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
13545
13530
  if (!existingAccount || !existingAccount.updateDate) {
13546
- throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
13531
+ throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
13547
13532
  }
13548
13533
  this.copyIdAndUpdateDate(existingAccount, account);
13549
13534
  }
@@ -13552,10 +13537,10 @@ class AccountService extends BaseGraphqlService {
13552
13537
  delete json.profiles;
13553
13538
  // Execute mutation
13554
13539
  const { data } = yield this.graphql.mutate({
13555
- mutation: isNew ? CreateMutation : SaveMutation$1,
13540
+ mutation: isNew ? CreateMutation : SaveMutation,
13556
13541
  variables: { data: json },
13557
13542
  error: {
13558
- code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
13543
+ code: ErrorCodes.SAVE_ACCOUNT_ERROR,
13559
13544
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
13560
13545
  }
13561
13546
  });
@@ -13575,7 +13560,7 @@ class AccountService extends BaseGraphqlService {
13575
13560
  if (counter > 4) {
13576
13561
  if (this._debug)
13577
13562
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
13578
- throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
13563
+ throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
13579
13564
  }
13580
13565
  // Check if valid
13581
13566
  if (token) {
@@ -13585,7 +13570,7 @@ class AccountService extends BaseGraphqlService {
13585
13570
  token
13586
13571
  },
13587
13572
  error: {
13588
- code: ErrorCodes$2.UNAUTHORIZED,
13573
+ code: ErrorCodes.UNAUTHORIZED,
13589
13574
  message: 'ERROR.UNAUTHORIZED'
13590
13575
  },
13591
13576
  fetchPolicy: 'no-cache'
@@ -13601,7 +13586,7 @@ class AccountService extends BaseGraphqlService {
13601
13586
  }
13602
13587
  // Generate a new token
13603
13588
  const challengeError = {
13604
- code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
13589
+ code: ErrorCodes.AUTH_CHALLENGE_ERROR,
13605
13590
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
13606
13591
  };
13607
13592
  const data = yield this.graphql.query({
@@ -13635,7 +13620,7 @@ class AccountService extends BaseGraphqlService {
13635
13620
  target.settings.updateDate = source.settings && source.settings.updateDate || target.settings.updateDate;
13636
13621
  }
13637
13622
  }
13638
- 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" });
13623
+ 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" });
13639
13624
  AccountService.decorators = [
13640
13625
  { type: Injectable, args: [{ providedIn: 'root' },] }
13641
13626
  ];
@@ -13895,7 +13880,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
13895
13880
  /* ------------------------------------
13896
13881
  * GraphQL queries
13897
13882
  * ------------------------------------*/
13898
- const Fragments = {
13883
+ const Fragments$1 = {
13899
13884
  config: gql `
13900
13885
  fragment ConfigFragment on ConfigurationVO {
13901
13886
  id
@@ -13922,22 +13907,22 @@ const Fragments = {
13922
13907
  }
13923
13908
  `
13924
13909
  };
13925
- const LoadQuery = gql `
13910
+ const LoadQuery$1 = gql `
13926
13911
  query Configuration{
13927
13912
  data: configuration{
13928
13913
  ...ConfigFragment
13929
13914
  }
13930
13915
  }
13931
- ${Fragments.config}
13916
+ ${Fragments$1.config}
13932
13917
  `;
13933
13918
  // Save (create or update) account mutation
13934
- const SaveMutation = gql `
13919
+ const SaveMutation$1 = gql `
13935
13920
  mutation SaveConfiguration($data: ConfigurationVOInput){
13936
13921
  data: saveConfiguration(config: $data){
13937
13922
  ...ConfigFragment
13938
13923
  }
13939
13924
  }
13940
- ${Fragments.config}
13925
+ ${Fragments$1.config}
13941
13926
  `;
13942
13927
  const ClearCache = gql `
13943
13928
  query ClearCache($name: String) {
@@ -14032,12 +14017,12 @@ class ConfigService extends BaseGraphqlService {
14032
14017
  return __awaiter(this, void 0, void 0, function* () {
14033
14018
  const now = Date.now();
14034
14019
  console.debug('[config] Loading Pod configuration...');
14035
- const query = opts && opts.query || LoadQuery;
14020
+ const query = opts && opts.query || LoadQuery$1;
14036
14021
  const variables = opts && opts.variables || undefined;
14037
14022
  const res = yield this.graphql.query({
14038
14023
  query,
14039
14024
  variables,
14040
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14025
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14041
14026
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
14042
14027
  });
14043
14028
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -14062,12 +14047,12 @@ class ConfigService extends BaseGraphqlService {
14062
14047
  const json = config.asObject();
14063
14048
  // Execute mutation
14064
14049
  const res = yield this.graphql.mutate({
14065
- mutation: SaveMutation,
14050
+ mutation: SaveMutation$1,
14066
14051
  variables: {
14067
14052
  data: json
14068
14053
  },
14069
14054
  error: {
14070
- code: ErrorCodes$2.SAVE_CONFIG_ERROR,
14055
+ code: ErrorCodes.SAVE_CONFIG_ERROR,
14071
14056
  message: 'ERROR.SAVE_CONFIG_ERROR'
14072
14057
  }
14073
14058
  });
@@ -14093,7 +14078,7 @@ class ConfigService extends BaseGraphqlService {
14093
14078
  const res = yield this.graphql.query({
14094
14079
  query: CacheStatistics,
14095
14080
  variables: null,
14096
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14081
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14097
14082
  fetchPolicy: 'network-only'
14098
14083
  });
14099
14084
  const data = res && res.cacheStatistics || undefined;
@@ -14109,7 +14094,7 @@ class ConfigService extends BaseGraphqlService {
14109
14094
  const res = yield this.graphql.query({
14110
14095
  query: ClearCache,
14111
14096
  variables,
14112
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14097
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14113
14098
  fetchPolicy: 'network-only'
14114
14099
  });
14115
14100
  const data = res && res.clearCache || undefined;
@@ -14268,7 +14253,7 @@ class ConfigService extends BaseGraphqlService {
14268
14253
  });
14269
14254
  }
14270
14255
  }
14271
- 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" });
14256
+ 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" });
14272
14257
  ConfigService.decorators = [
14273
14258
  { type: Injectable, args: [{
14274
14259
  providedIn: 'root',
@@ -14287,7 +14272,7 @@ ConfigService.ctorParameters = () => [
14287
14272
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
14288
14273
  ];
14289
14274
 
14290
- const moment$2 = momentImported;
14275
+ const moment$4 = momentImported;
14291
14276
  class PlatformService {
14292
14277
  constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
14293
14278
  this.platform = platform;
@@ -14496,16 +14481,16 @@ class PlatformService {
14496
14481
  }
14497
14482
  // config moment lib
14498
14483
  try {
14499
- moment$2.locale(event.lang);
14484
+ moment$4.locale(event.lang);
14500
14485
  console.debug('[platform] Use locale {' + event.lang + '}');
14501
14486
  }
14502
14487
  // If error, fallback to en
14503
14488
  catch (err) {
14504
- moment$2.locale('en');
14489
+ moment$4.locale('en');
14505
14490
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
14506
14491
  }
14507
14492
  // Config date adapter
14508
- this.dateAdapter.setLocale(moment$2.locale());
14493
+ this.dateAdapter.setLocale(moment$4.locale());
14509
14494
  }
14510
14495
  });
14511
14496
  this.settings.onChange.subscribe(data => {
@@ -14643,7 +14628,7 @@ class PlatformService {
14643
14628
  });
14644
14629
  }
14645
14630
  }
14646
- PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8), i0.ɵɵinject(i18.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
14631
+ PlatformService.ɵprov = ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(ɵɵinject(Platform), ɵɵinject(Platform$1), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(MomentDateAdapter), ɵɵinject(EntitiesStorage), ɵɵinject(LocalSettingsService), ɵɵinject(NetworkService), ɵɵinject(AccountService), ɵɵinject(ConfigService), ɵɵinject(CacheService), ɵɵinject(Storage), ɵɵinject(AudioProvider), ɵɵinject(ENVIRONMENT), ɵɵinject(StatusBar, 8), ɵɵinject(Keyboard$1, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(InAppBrowser, 8), ɵɵinject(Downloader, 8)); }, token: PlatformService, providedIn: "root" });
14647
14632
  PlatformService.decorators = [
14648
14633
  { type: Injectable, args: [{ providedIn: 'root' },] }
14649
14634
  ];
@@ -14658,15 +14643,15 @@ PlatformService.ctorParameters = () => [
14658
14643
  { type: NetworkService },
14659
14644
  { type: AccountService },
14660
14645
  { type: ConfigService },
14661
- { type: CacheService },
14646
+ { type: CacheService$1 },
14662
14647
  { type: Storage },
14663
14648
  { type: AudioProvider },
14664
14649
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
14665
- { type: StatusBar, decorators: [{ type: Optional }] },
14650
+ { type: StatusBar$1, decorators: [{ type: Optional }] },
14666
14651
  { type: Keyboard, decorators: [{ type: Optional }] },
14667
- { type: SplashScreen, decorators: [{ type: Optional }] },
14668
- { type: InAppBrowser, decorators: [{ type: Optional }] },
14669
- { type: Downloader, decorators: [{ type: Optional }] }
14652
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
14653
+ { type: InAppBrowser$1, decorators: [{ type: Optional }] },
14654
+ { type: Downloader$1, decorators: [{ type: Optional }] }
14670
14655
  ];
14671
14656
 
14672
14657
  class AppHelpModal {
@@ -14730,7 +14715,7 @@ class MatStepperI18n extends MatStepperIntl {
14730
14715
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
14731
14716
  }
14732
14717
  }
14733
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
14718
+ MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
14734
14719
  MatStepperI18n.decorators = [
14735
14720
  { type: Injectable, args: [{ providedIn: 'root' },] }
14736
14721
  ];
@@ -15722,7 +15707,7 @@ function state2side(state) {
15722
15707
  return 1;
15723
15708
  }
15724
15709
  }
15725
- const ɵ0$1 = (defaultStateSize) => [
15710
+ const ɵ0$9 = (defaultStateSize) => [
15726
15711
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
15727
15712
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
15728
15713
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -15730,7 +15715,7 @@ const ɵ0$1 = (defaultStateSize) => [
15730
15715
  const SCALE_OPTIONS_DEFAULT = {
15731
15716
  startColor: rgbArrayMap.red,
15732
15717
  startStates: [0, 2, 3],
15733
- startStepsFn: ɵ0$1
15718
+ startStepsFn: ɵ0$9
15734
15719
  };
15735
15720
  /**
15736
15721
  * Internal function, that create a colors scale, using iteration
@@ -15822,21 +15807,21 @@ function linearColorGradient(count, options) {
15822
15807
  return result;
15823
15808
  }
15824
15809
 
15825
- class EntityTestClass$1 {
15810
+ class EntityTestClass {
15826
15811
  }
15827
- const FAKE_ENTITIES$1 = [
15812
+ const FAKE_ENTITIES = [
15828
15813
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
15829
15814
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
15830
15815
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
15831
15816
  ];
15832
- function deepCopy$1(values, size) {
15817
+ function deepCopy(values, size) {
15833
15818
  if (isNil(size)) {
15834
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
15819
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
15835
15820
  }
15836
15821
  let result = [];
15837
15822
  let i = 1;
15838
15823
  while (result.length < size) {
15839
- result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
15824
+ result = result.concat((values || FAKE_ENTITIES).map(entity => {
15840
15825
  const name = entity.name + ' #' + i;
15841
15826
  return Object.assign(Object.assign({}, entity), { id: i++, name });
15842
15827
  }));
@@ -15846,7 +15831,7 @@ function deepCopy$1(values, size) {
15846
15831
  class AutocompleteTestPage {
15847
15832
  constructor(formBuilder) {
15848
15833
  this.formBuilder = formBuilder;
15849
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
15834
+ this._items = deepCopy(FAKE_ENTITIES, 100);
15850
15835
  this.$items = new BehaviorSubject(undefined);
15851
15836
  this.autocompleteFields = new MatAutocompleteConfigHolder();
15852
15837
  this.memoryHide = false;
@@ -15890,7 +15875,7 @@ class AutocompleteTestPage {
15890
15875
  });
15891
15876
  // From items
15892
15877
  this.autocompleteFields.add('entity-items-large', {
15893
- items: FAKE_ENTITIES$1.slice(),
15878
+ items: FAKE_ENTITIES.slice(),
15894
15879
  attributes: ['label', 'name', 'description', 'comments'],
15895
15880
  displayWith: this.entityToString
15896
15881
  });
@@ -15900,12 +15885,12 @@ class AutocompleteTestPage {
15900
15885
  loadData() {
15901
15886
  return __awaiter(this, void 0, void 0, function* () {
15902
15887
  const data = {
15903
- entity: deepCopy$1(FAKE_ENTITIES$1)[0],
15888
+ entity: deepCopy(FAKE_ENTITIES)[0],
15904
15889
  // This item is NOT in the items list => i should be displayed anyway
15905
15890
  missingEntity: {
15906
15891
  id: -1, label: '??', name: 'Missing item'
15907
15892
  },
15908
- disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
15893
+ disableEntity: deepCopy(FAKE_ENTITIES)[2]
15909
15894
  };
15910
15895
  this.form.setValue(data);
15911
15896
  // Load observables
@@ -16078,13 +16063,13 @@ MaterialTestingPage.ctorParameters = () => [
16078
16063
  { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
16079
16064
  ];
16080
16065
 
16081
- const moment$1 = momentImported;
16066
+ const moment$5 = momentImported;
16082
16067
  class SwipeTestPage {
16083
16068
  constructor(formBuilder, dateFormatPipe) {
16084
16069
  this.formBuilder = formBuilder;
16085
16070
  this.dateFormatPipe = dateFormatPipe;
16086
16071
  this.$dates = new BehaviorSubject(undefined);
16087
- this._today = moment$1().startOf('day');
16072
+ this._today = moment$5().startOf('day');
16088
16073
  this.form = formBuilder.group({
16089
16074
  empty: [null, Validators.required],
16090
16075
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -16097,7 +16082,7 @@ class SwipeTestPage {
16097
16082
  ngOnInit() {
16098
16083
  const dates = [];
16099
16084
  for (let d = 0; d < 7; d++) {
16100
- dates[d] = moment$1(this._today).add(d - 3, 'day');
16085
+ dates[d] = moment$5(this._today).add(d - 3, 'day');
16101
16086
  }
16102
16087
  this.$dates.next(dates);
16103
16088
  this.loadData();
@@ -16138,7 +16123,7 @@ SwipeTestPage.ctorParameters = () => [
16138
16123
  { type: DateFormatPipe }
16139
16124
  ];
16140
16125
 
16141
- const moment = momentImported;
16126
+ const moment$6 = momentImported;
16142
16127
  class DateTimeTestPage {
16143
16128
  constructor(platform, formBuilder, cd) {
16144
16129
  this.platform = platform;
@@ -16170,7 +16155,7 @@ class DateTimeTestPage {
16170
16155
  // Load the form with data
16171
16156
  loadData() {
16172
16157
  return __awaiter(this, void 0, void 0, function* () {
16173
- const now = moment();
16158
+ const now = moment$6();
16174
16159
  const data = {
16175
16160
  empty: toDateISOString(now.clone().add(2, 'hours')),
16176
16161
  enable: toDateISOString(now),
@@ -16231,20 +16216,20 @@ DateTimeTestPage.ctorParameters = () => [
16231
16216
  { type: ChangeDetectorRef }
16232
16217
  ];
16233
16218
 
16234
- class EntityTestClass {
16219
+ class EntityTestClass$1 {
16235
16220
  }
16236
- const FAKE_ENTITIES = [
16221
+ const FAKE_ENTITIES$1 = [
16237
16222
  { id: 1, label: 'AAA', name: 'Item A' },
16238
16223
  { id: 2, label: 'BBB', name: 'Item B' },
16239
16224
  { id: 3, label: 'CCC', name: 'Item C' }
16240
16225
  ];
16241
- function deepCopy(values) {
16242
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
16226
+ function deepCopy$1(values) {
16227
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
16243
16228
  }
16244
16229
  class ChipsTestPage {
16245
16230
  constructor(formBuilder) {
16246
16231
  this.formBuilder = formBuilder;
16247
- this._items = deepCopy(FAKE_ENTITIES);
16232
+ this._items = deepCopy$1(FAKE_ENTITIES$1);
16248
16233
  this._$items = new BehaviorSubject(undefined);
16249
16234
  this.autocompleteFields = new MatAutocompleteConfigHolder();
16250
16235
  this.form = formBuilder.group({
@@ -16263,7 +16248,7 @@ class ChipsTestPage {
16263
16248
  });
16264
16249
  // From items
16265
16250
  this.autocompleteFields.add('entity-items', {
16266
- items: FAKE_ENTITIES.slice(),
16251
+ items: FAKE_ENTITIES$1.slice(),
16267
16252
  attributes: ['label', 'name'],
16268
16253
  displayWith: this.entityToString
16269
16254
  });
@@ -16284,15 +16269,15 @@ class ChipsTestPage {
16284
16269
  const data = {
16285
16270
  entity: [],
16286
16271
  // THis item is NOT in the items list => i should be displayed anyway
16287
- entityInitial: FAKE_ENTITIES.slice(1, 2),
16288
- disableEntity: FAKE_ENTITIES.slice(1, 2)
16272
+ entityInitial: FAKE_ENTITIES$1.slice(1, 2),
16273
+ disableEntity: FAKE_ENTITIES$1.slice(1, 2)
16289
16274
  };
16290
16275
  this.form.setValue(data);
16291
16276
  });
16292
16277
  }
16293
16278
  loadItems() {
16294
16279
  return __awaiter(this, void 0, void 0, function* () {
16295
- this._$items.next(deepCopy(FAKE_ENTITIES));
16280
+ this._$items.next(deepCopy$1(FAKE_ENTITIES$1));
16296
16281
  });
16297
16282
  }
16298
16283
  entityToString(item) {
@@ -16324,7 +16309,7 @@ ChipsTestPage.ctorParameters = () => [
16324
16309
  { type: FormBuilder }
16325
16310
  ];
16326
16311
 
16327
- const routes$1 = [
16312
+ const routes = [
16328
16313
  {
16329
16314
  path: '',
16330
16315
  pathMatch: 'full',
@@ -16371,7 +16356,7 @@ MaterialTestingModule.decorators = [
16371
16356
  ReactiveFormsModule,
16372
16357
  SharedMaterialModule,
16373
16358
  TranslateModule.forChild(),
16374
- RouterModule.forChild(routes$1)
16359
+ RouterModule.forChild(routes)
16375
16360
  ],
16376
16361
  declarations: [
16377
16362
  MaterialTestingPage,
@@ -17314,7 +17299,7 @@ class UserSettingsValidatorService extends AppValidatorService {
17314
17299
  });
17315
17300
  }
17316
17301
  }
17317
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
17302
+ UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
17318
17303
  UserSettingsValidatorService.decorators = [
17319
17304
  { type: Injectable, args: [{ providedIn: 'root' },] }
17320
17305
  ];
@@ -17358,7 +17343,7 @@ class AccountValidatorService extends AppValidatorService {
17358
17343
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
17359
17344
  }
17360
17345
  }
17361
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
17346
+ AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
17362
17347
  AccountValidatorService.decorators = [
17363
17348
  { type: Injectable, args: [{ providedIn: 'root' },] }
17364
17349
  ];
@@ -17892,7 +17877,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
17892
17877
  });
17893
17878
  }
17894
17879
  }
17895
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
17880
+ LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
17896
17881
  LocalSettingsValidatorService.decorators = [
17897
17882
  { type: Injectable, args: [{ providedIn: 'root' },] }
17898
17883
  ];
@@ -18512,7 +18497,7 @@ class IsOnFieldModePipe {
18512
18497
  return value === 'FIELD';
18513
18498
  }
18514
18499
  }
18515
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18500
+ IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18516
18501
  IsOnFieldModePipe.decorators = [
18517
18502
  { type: Pipe, args: [{
18518
18503
  name: 'isOnField'
@@ -18524,7 +18509,7 @@ class IsNotOnFieldModePipe {
18524
18509
  return value !== 'FIELD';
18525
18510
  }
18526
18511
  }
18527
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18512
+ IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18528
18513
  IsNotOnFieldModePipe.decorators = [
18529
18514
  { type: Pipe, args: [{
18530
18515
  name: 'isNotOnField'
@@ -18539,7 +18524,7 @@ class PersonToStringPipe {
18539
18524
  return PersonUtils.personToString(value);
18540
18525
  }
18541
18526
  }
18542
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18527
+ PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18543
18528
  PersonToStringPipe.decorators = [
18544
18529
  { type: Pipe, args: [{
18545
18530
  name: 'personToString'
@@ -18885,7 +18870,7 @@ class IsLoginAccountPipe {
18885
18870
  return value && value.pubkey && true;
18886
18871
  }
18887
18872
  }
18888
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
18873
+ IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
18889
18874
  IsLoginAccountPipe.decorators = [
18890
18875
  { type: Pipe, args: [{
18891
18876
  name: 'isLogin'
@@ -18897,7 +18882,7 @@ class AccountToStringPipe {
18897
18882
  return accountToString(value);
18898
18883
  }
18899
18884
  }
18900
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
18885
+ AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
18901
18886
  AccountToStringPipe.decorators = [
18902
18887
  { type: Pipe, args: [{
18903
18888
  name: 'accountToString'
@@ -18912,7 +18897,7 @@ class DepartmentToStringPipe {
18912
18897
  return departmentToString(value);
18913
18898
  }
18914
18899
  }
18915
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
18900
+ DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
18916
18901
  DepartmentToStringPipe.decorators = [
18917
18902
  { type: Pipe, args: [{
18918
18903
  name: 'departmentToString'
@@ -18938,7 +18923,7 @@ class MenuService {
18938
18923
  this._visibleSubject.next(value);
18939
18924
  }
18940
18925
  }
18941
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
18926
+ MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
18942
18927
  MenuService.decorators = [
18943
18928
  { type: Injectable, args: [{
18944
18929
  providedIn: 'root'
@@ -19432,7 +19417,7 @@ class AuthGuardService {
19432
19417
  }));
19433
19418
  }
19434
19419
  }
19435
- 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" });
19420
+ AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
19436
19421
  AuthGuardService.decorators = [
19437
19422
  { type: Injectable, args: [{ providedIn: 'root' },] }
19438
19423
  ];
@@ -19480,7 +19465,7 @@ class BaseEntityService extends BaseGraphqlService {
19480
19465
  query,
19481
19466
  variables: { id },
19482
19467
  fetchPolicy: opts && opts.fetchPolicy || undefined,
19483
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19468
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19484
19469
  })
19485
19470
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
19486
19471
  ? (data && this.fromObject(data))
@@ -19495,7 +19480,7 @@ class BaseEntityService extends BaseGraphqlService {
19495
19480
  query,
19496
19481
  variables: { id },
19497
19482
  fetchPolicy: opts && opts.fetchPolicy || undefined,
19498
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19483
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19499
19484
  });
19500
19485
  // Convert to entity
19501
19486
  return (!opts || opts.toEntity !== false)
@@ -19526,7 +19511,7 @@ class BaseEntityService extends BaseGraphqlService {
19526
19511
  totalFieldName: withTotal ? 'total' : undefined,
19527
19512
  insertFilterFn: filter && filter.asFilterFn(),
19528
19513
  variables,
19529
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
19514
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
19530
19515
  fetchPolicy: opts && opts.fetchPolicy || undefined
19531
19516
  })
19532
19517
  .pipe(map(({ data, total }) => {
@@ -19562,7 +19547,7 @@ class BaseEntityService extends BaseGraphqlService {
19562
19547
  const { data, total } = yield this.graphql.query({
19563
19548
  query,
19564
19549
  variables,
19565
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
19550
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
19566
19551
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
19567
19552
  });
19568
19553
  const entities = (!opts || opts.toEntity !== false) ?
@@ -19601,7 +19586,7 @@ class BaseEntityService extends BaseGraphqlService {
19601
19586
  variables: {
19602
19587
  filter: filter && filter.asPodObject()
19603
19588
  },
19604
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
19589
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
19605
19590
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
19606
19591
  });
19607
19592
  return res.total;
@@ -19634,7 +19619,7 @@ class BaseEntityService extends BaseGraphqlService {
19634
19619
  variables: {
19635
19620
  data: json
19636
19621
  },
19637
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19622
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19638
19623
  update: (proxy, { data }) => {
19639
19624
  const savedEntities = data && data.data;
19640
19625
  if (savedEntities) {
@@ -19690,7 +19675,7 @@ class BaseEntityService extends BaseGraphqlService {
19690
19675
  variables: {
19691
19676
  data: json
19692
19677
  },
19693
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19678
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19694
19679
  update: (cache, { data }) => {
19695
19680
  // Update entity
19696
19681
  const savedEntity = data && data.data;
@@ -19738,7 +19723,7 @@ class BaseEntityService extends BaseGraphqlService {
19738
19723
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19739
19724
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19740
19725
  variables: { ids },
19741
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19726
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19742
19727
  update: (cache, res) => {
19743
19728
  // Remove from cache
19744
19729
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19779,7 +19764,7 @@ class BaseEntityService extends BaseGraphqlService {
19779
19764
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19780
19765
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19781
19766
  variables: { id },
19782
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19767
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19783
19768
  update: (proxy, res) => {
19784
19769
  // Remove from cache
19785
19770
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19812,7 +19797,7 @@ class BaseEntityService extends BaseGraphqlService {
19812
19797
  query: opts && opts.query || this.subscriptions.listenChanges,
19813
19798
  variables,
19814
19799
  error: {
19815
- code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
19800
+ code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
19816
19801
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
19817
19802
  }
19818
19803
  })
@@ -19987,7 +19972,7 @@ class EntitiesTableDataSource extends TableDataSource {
19987
19972
  if (this._debug)
19988
19973
  invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
19989
19974
  // Stop with an error
19990
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
19975
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
19991
19976
  }
19992
19977
  this._editingRowCount = 0;
19993
19978
  let data;
@@ -20811,14 +20796,14 @@ class AppTable {
20811
20796
  return __awaiter(this, void 0, void 0, function* () {
20812
20797
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
20813
20798
  if (this.readOnly) {
20814
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20799
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20815
20800
  }
20816
20801
  this.resetError();
20817
20802
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
20818
20803
  this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
20819
20804
  const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
20820
20805
  if (!this.confirmEditCreate()) {
20821
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20806
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20822
20807
  }
20823
20808
  // Mark as saving
20824
20809
  this.markAsSaving();
@@ -20934,7 +20919,7 @@ class AppTable {
20934
20919
  deleteRows(event, rows, opts) {
20935
20920
  return __awaiter(this, void 0, void 0, function* () {
20936
20921
  if (this.readOnly) {
20937
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20922
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20938
20923
  }
20939
20924
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
20940
20925
  return 0; // SKip
@@ -20987,7 +20972,7 @@ class AppTable {
20987
20972
  selectRowById(id) {
20988
20973
  if (id === undefined)
20989
20974
  return Promise.resolve(false);
20990
- return this.dataSource.waitIdle()
20975
+ return firstFalsePromise(this.loadingSubject)
20991
20976
  .then(() => this.dataSource.getRow(id))
20992
20977
  .then(row => row && this.clickRow(null, row));
20993
20978
  }
@@ -20998,18 +20983,17 @@ class AppTable {
20998
20983
  selectRowByData(data) {
20999
20984
  if (data === undefined)
21000
20985
  return Promise.resolve(false);
21001
- return this.dataSource.waitIdle()
20986
+ return firstFalsePromise(this.loadingSubject)
21002
20987
  .then(() => this.dataSource.getRows())
21003
20988
  .then(rows => rows.find(row => this.equals(row.currentData, data)))
21004
20989
  .then(row => row && this.clickRow(null, row));
21005
20990
  }
21006
20991
  clickRow(event, row) {
21007
- var _a;
21008
20992
  if (this.loading) {
21009
20993
  // Wait while loading, and loop
21010
20994
  if (this.debug)
21011
20995
  console.debug("[table] Waiting before apply clickRow() (datasource is busy)...");
21012
- (_a = this.dataSource) === null || _a === void 0 ? void 0 : _a.waitIdle().then(() => this.clickRow(event, row));
20996
+ firstFalsePromise(this.loadingSubject).then(() => this.clickRow(event, row));
21013
20997
  return false;
21014
20998
  }
21015
20999
  // DEBUG
@@ -22339,7 +22323,7 @@ class AppEntityEditor extends AppTabEditor {
22339
22323
  try {
22340
22324
  const data = yield this.dataService.load(id, opts);
22341
22325
  if (!data)
22342
- throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
22326
+ throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
22343
22327
  this._usageMode = this.computeUsageMode(data);
22344
22328
  yield this.onEntityLoaded(data, opts);
22345
22329
  yield this.updateView(data, opts);
@@ -23232,7 +23216,7 @@ class UserEventService extends BaseGraphqlService {
23232
23216
  EntityUtils.copyIdAndUpdateDate(source, target);
23233
23217
  }
23234
23218
  }
23235
- 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" });
23219
+ 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" });
23236
23220
  UserEventService.decorators = [
23237
23221
  { type: Injectable, args: [{ providedIn: 'root' },] }
23238
23222
  ];
@@ -23617,7 +23601,7 @@ class PersonService extends BaseEntityService {
23617
23601
  return target;
23618
23602
  }
23619
23603
  }
23620
- 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" });
23604
+ PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
23621
23605
  PersonService.decorators = [
23622
23606
  { type: Injectable, args: [{ providedIn: 'root' },] }
23623
23607
  ];
@@ -23648,7 +23632,7 @@ class PersonValidatorService {
23648
23632
  return this.formBuilder.group(formConfig);
23649
23633
  }
23650
23634
  }
23651
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23635
+ PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23652
23636
  PersonValidatorService.decorators = [
23653
23637
  { type: Injectable, args: [{ providedIn: 'root' },] }
23654
23638
  ];
@@ -23854,16 +23838,16 @@ AdminModule.decorators = [
23854
23838
  ];
23855
23839
  AdminModule.ctorParameters = () => [];
23856
23840
 
23857
- const ɵ0 = {
23841
+ const ɵ0$a = {
23858
23842
  profile: 'ADMIN'
23859
23843
  };
23860
- const routes = [
23844
+ const routes$1 = [
23861
23845
  {
23862
23846
  path: 'users',
23863
23847
  pathMatch: 'full',
23864
23848
  component: UsersPage,
23865
23849
  canActivate: [AuthGuardService],
23866
- data: ɵ0
23850
+ data: ɵ0$a
23867
23851
  }
23868
23852
  ];
23869
23853
  class AdminRoutingModule {
@@ -23873,13 +23857,13 @@ AdminRoutingModule.decorators = [
23873
23857
  imports: [
23874
23858
  SharedRoutingModule,
23875
23859
  AdminModule,
23876
- RouterModule.forChild(routes)
23860
+ RouterModule.forChild(routes$1)
23877
23861
  ],
23878
23862
  exports: [RouterModule]
23879
23863
  },] }
23880
23864
  ];
23881
23865
 
23882
- const ErrorCodes = {
23866
+ const ErrorCodes$2 = {
23883
23867
  LOAD_PERSONS_ERROR: 100,
23884
23868
  SAVE_PERSONS_ERROR: 101,
23885
23869
  DELETE_PERSONS_ERROR: 102,
@@ -23891,5 +23875,5 @@ const ErrorCodes = {
23891
23875
  * Generated bundle index. Do not edit.
23892
23876
  */
23893
23877
 
23894
- export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorAdapter, FormErrorTranslatePipe, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitIdle, waitWhilePending, ɵ0$5 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh };
23878
+ export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorAdapter, FormErrorTranslatePipe, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitIdle, waitWhilePending, ɵ0$5 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh };
23895
23879
  //# sourceMappingURL=sumaris-net.ngx-components.js.map