@sumaris-net/ngx-components 0.26.1 → 0.26.5

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.
Files changed (30) hide show
  1. package/bundles/sumaris-net.ngx-components.umd.js +388 -303
  2. package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
  3. package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
  4. package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
  5. package/doc/changelog.md +1 -0
  6. package/esm2015/src/app/core/form/entity-editor.class.js +9 -5
  7. package/esm2015/src/app/core/form/form.class.js +3 -3
  8. package/esm2015/src/app/core/table/table.class.js +3 -3
  9. package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +62 -0
  10. package/esm2015/src/app/shared/material/badge/badge-icon.module.js +23 -0
  11. package/esm2015/src/app/shared/material/badge/badge-icon.test.js +10 -0
  12. package/esm2015/src/app/shared/material/material.module.js +4 -2
  13. package/esm2015/src/app/shared/material/testing/material.testing.module.js +9 -2
  14. package/esm2015/src/app/shared/material/testing/material.testing.page.js +2 -2
  15. package/esm2015/src/app/shared/pipes/form.pipes.js +3 -3
  16. package/esm2015/src/app/shared/validator/form-error-adapter.class.js +5 -5
  17. package/esm2015/sumaris-net.ngx-components.js +10 -7
  18. package/fesm2015/sumaris-net.ngx-components.js +368 -284
  19. package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
  20. package/package.json +1 -1
  21. package/src/app/core/form/entity-editor.class.d.ts +6 -2
  22. package/src/app/core/form/form.class.d.ts +2 -2
  23. package/src/app/core/table/table.class.d.ts +2 -2
  24. package/src/app/shared/material/badge/badge-icon.directive.d.ts +15 -0
  25. package/src/app/shared/material/badge/badge-icon.module.d.ts +2 -0
  26. package/src/app/shared/material/badge/badge-icon.test.d.ts +2 -0
  27. package/src/app/shared/pipes/form.pipes.d.ts +2 -2
  28. package/src/app/shared/validator/form-error-adapter.class.d.ts +1 -1
  29. package/sumaris-net.ngx-components.d.ts +9 -6
  30. package/sumaris-net.ngx-components.metadata.json +1 -1
@@ -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
  }
@@ -3469,7 +3454,7 @@ class FormArrayHelper {
3469
3454
  }
3470
3455
 
3471
3456
  const APP_FORM_ERROR_I18N_KEYS = new InjectionToken('appFormErrorKeys');
3472
- class FormErrorAdapter {
3457
+ class FormErrorTranslator {
3473
3458
  constructor(translate, errorI18nKeys) {
3474
3459
  this.translate = translate;
3475
3460
  this.errorI18nKeys = Object.assign(Object.assign({}, SharedValidators.I18N_ERROR_KEYS), errorI18nKeys);
@@ -3527,11 +3512,11 @@ class FormErrorAdapter {
3527
3512
  return errorKey;
3528
3513
  }
3529
3514
  }
3530
- 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" });
3531
- FormErrorAdapter.decorators = [
3515
+ FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
3516
+ FormErrorTranslator.decorators = [
3532
3517
  { type: Injectable, args: [{ providedIn: 'root' },] }
3533
3518
  ];
3534
- FormErrorAdapter.ctorParameters = () => [
3519
+ FormErrorTranslator.ctorParameters = () => [
3535
3520
  { type: TranslateService },
3536
3521
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_FORM_ERROR_I18N_KEYS,] }] }
3537
3522
  ];
@@ -3550,7 +3535,7 @@ FormErrorTranslatePipe.decorators = [
3550
3535
  },] }
3551
3536
  ];
3552
3537
  FormErrorTranslatePipe.ctorParameters = () => [
3553
- { type: FormErrorAdapter }
3538
+ { type: FormErrorTranslator }
3554
3539
  ];
3555
3540
 
3556
3541
  class SharedPipesModule {
@@ -3796,9 +3781,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
3796
3781
  const hour = parseInt(durationParts[0] || '0');
3797
3782
  const minute = parseInt(durationParts[1] || '0');
3798
3783
  const value = hour + (minute + 0.5) / 60;
3799
- return roundFloat(value, maxDecimals);
3784
+ return roundFloat$1(value, maxDecimals);
3800
3785
  }
3801
- function roundFloat(input, maxDecimals) {
3786
+ function roundFloat$1(input, maxDecimals) {
3802
3787
  if (maxDecimals > 0) {
3803
3788
  const powDecimal = Math.pow(10, maxDecimals);
3804
3789
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -3822,9 +3807,9 @@ const MASKS = {
3822
3807
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
3823
3808
  }
3824
3809
  };
3825
- const noop$6 = () => {
3810
+ const noop$1 = () => {
3826
3811
  };
3827
- const ɵ0$9 = noop$6;
3812
+ const ɵ0$1 = noop$1;
3828
3813
  class MatLatLongField {
3829
3814
  constructor(platform, translate, formBuilder, cd, formGroupDir) {
3830
3815
  this.platform = platform;
@@ -3832,8 +3817,8 @@ class MatLatLongField {
3832
3817
  this.formBuilder = formBuilder;
3833
3818
  this.cd = cd;
3834
3819
  this.formGroupDir = formGroupDir;
3835
- this._onChangeCallback = noop$6;
3836
- this._onTouchedCallback = noop$6;
3820
+ this._onChangeCallback = noop$1;
3821
+ this._onTouchedCallback = noop$1;
3837
3822
  this._subscription = new Subscription();
3838
3823
  this.disabling = false;
3839
3824
  this.writing = false;
@@ -4169,14 +4154,14 @@ SharedMatLatLongModule.decorators = [
4169
4154
  },] }
4170
4155
  ];
4171
4156
 
4172
- const DEFAULT_VALUE_ACCESSOR$5 = {
4157
+ const DEFAULT_VALUE_ACCESSOR$1 = {
4173
4158
  provide: NG_VALUE_ACCESSOR,
4174
4159
  useExisting: forwardRef(() => MatDate),
4175
4160
  multi: true
4176
4161
  };
4177
- const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4178
- const noop$5 = () => { };
4179
- const ɵ0$8 = noop$5;
4162
+ const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4163
+ const noop$2 = () => { };
4164
+ const ɵ0$2 = noop$2;
4180
4165
  class MatDate {
4181
4166
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4182
4167
  this.dateAdapter = dateAdapter;
@@ -4185,12 +4170,12 @@ class MatDate {
4185
4170
  this.cd = cd;
4186
4171
  this.keyboard = keyboard;
4187
4172
  this.formGroupDir = formGroupDir;
4188
- this._onChangeCallback = noop$5;
4189
- this._onTouchedCallback = noop$5;
4173
+ this._onChangeCallback = noop$2;
4174
+ this._onTouchedCallback = noop$2;
4190
4175
  this._subscription = new Subscription();
4191
4176
  this.writing = true;
4192
4177
  this.disabling = false;
4193
- this.dayMask = DAY_MASK$2;
4178
+ this.dayMask = DAY_MASK;
4194
4179
  this.disabled = false;
4195
4180
  this.floatLabel = 'auto';
4196
4181
  this.readonly = false;
@@ -4427,7 +4412,7 @@ MatDate.decorators = [
4427
4412
  selector: 'mat-date-field',
4428
4413
  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",
4429
4414
  providers: [
4430
- DEFAULT_VALUE_ACCESSOR$5,
4415
+ DEFAULT_VALUE_ACCESSOR$1,
4431
4416
  ],
4432
4417
  changeDetection: ChangeDetectionStrategy.OnPush,
4433
4418
  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%}"]
@@ -4460,17 +4445,17 @@ MatDate.propDecorators = {
4460
4445
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
4461
4446
  };
4462
4447
 
4463
- const DEFAULT_VALUE_ACCESSOR$4 = {
4448
+ const DEFAULT_VALUE_ACCESSOR$2 = {
4464
4449
  provide: NG_VALUE_ACCESSOR,
4465
4450
  useExisting: forwardRef(() => MatDateTime),
4466
4451
  multi: true
4467
4452
  };
4468
4453
  const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4469
4454
  const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
4470
- const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4471
- const noop$4 = () => {
4455
+ const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4456
+ const noop$3 = () => {
4472
4457
  };
4473
- const ɵ0$7 = noop$4;
4458
+ const ɵ0$3 = noop$3;
4474
4459
  class MatDateTime {
4475
4460
  constructor(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
4476
4461
  this.platform = platform;
@@ -4480,14 +4465,14 @@ class MatDateTime {
4480
4465
  this.keyboard = keyboard;
4481
4466
  this.cd = cd;
4482
4467
  this.formGroupDir = formGroupDir;
4483
- this._onChangeCallback = noop$4;
4484
- this._onTouchedCallback = noop$4;
4468
+ this._onChangeCallback = noop$3;
4469
+ this._onTouchedCallback = noop$3;
4485
4470
  this._subscription = new Subscription();
4486
4471
  this.writing = true;
4487
4472
  this.disabling = false;
4488
4473
  this._readonly = false;
4489
4474
  this.dayMask = DAY_MASK$1;
4490
- this.hourMask = HOUR_MASK$1;
4475
+ this.hourMask = HOUR_MASK;
4491
4476
  this.floatLabel = 'auto';
4492
4477
  this.compact = false;
4493
4478
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -4798,7 +4783,7 @@ MatDateTime.decorators = [
4798
4783
  selector: 'mat-date-time-field',
4799
4784
  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",
4800
4785
  providers: [
4801
- DEFAULT_VALUE_ACCESSOR$4,
4786
+ DEFAULT_VALUE_ACCESSOR$2,
4802
4787
  ],
4803
4788
  changeDetection: ChangeDetectionStrategy.OnPush,
4804
4789
  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%}"]
@@ -4837,10 +4822,10 @@ const DEFAULT_VALUE_ACCESSOR$3 = {
4837
4822
  useExisting: forwardRef(() => MatDateShort),
4838
4823
  multi: true
4839
4824
  };
4840
- const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
4841
- const noop$3 = () => {
4825
+ const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
4826
+ const noop$4 = () => {
4842
4827
  };
4843
- const ɵ0$6 = noop$3;
4828
+ const ɵ0$4 = noop$4;
4844
4829
  class MatDateShort {
4845
4830
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4846
4831
  this.dateAdapter = dateAdapter;
@@ -4849,11 +4834,11 @@ class MatDateShort {
4849
4834
  this.cd = cd;
4850
4835
  this.keyboard = keyboard;
4851
4836
  this.formGroupDir = formGroupDir;
4852
- this._onChangeCallback = noop$3;
4853
- this._onTouchedCallback = noop$3;
4837
+ this._onChangeCallback = noop$4;
4838
+ this._onTouchedCallback = noop$4;
4854
4839
  this.writing = true;
4855
4840
  this.disabling = false;
4856
- this.dayMask = DAY_MASK;
4841
+ this.dayMask = DAY_MASK$2;
4857
4842
  this.disabled = false;
4858
4843
  this.floatLabel = 'auto';
4859
4844
  this.readonly = false;
@@ -5166,16 +5151,16 @@ SharedMatDateTimeModule.decorators = [
5166
5151
  },] }
5167
5152
  ];
5168
5153
 
5169
- const DEFAULT_VALUE_ACCESSOR$2 = {
5154
+ const DEFAULT_VALUE_ACCESSOR$4 = {
5170
5155
  provide: NG_VALUE_ACCESSOR,
5171
5156
  useExisting: forwardRef(() => MatDuration),
5172
5157
  multi: true
5173
5158
  };
5174
5159
  const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
5175
- const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5176
- const noop$2 = () => {
5160
+ const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5161
+ const noop$5 = () => {
5177
5162
  };
5178
- const ɵ0$5 = noop$2;
5163
+ const ɵ0$5 = noop$5;
5179
5164
  class MatDuration {
5180
5165
  constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
5181
5166
  this.dateAdapter = dateAdapter;
@@ -5184,11 +5169,11 @@ class MatDuration {
5184
5169
  this.cd = cd;
5185
5170
  this.formGroupDir = formGroupDir;
5186
5171
  this._subscription = new Subscription();
5187
- this._onChangeCallback = noop$2;
5188
- this._onTouchedCallback = noop$2;
5172
+ this._onChangeCallback = noop$5;
5173
+ this._onTouchedCallback = noop$5;
5189
5174
  this.writing = true;
5190
5175
  this.disabling = false;
5191
- this.hourMask = HOUR_MASK;
5176
+ this.hourMask = HOUR_MASK$1;
5192
5177
  this.disabled = false;
5193
5178
  this.floatLabel = 'auto';
5194
5179
  this.readonly = false;
@@ -5368,7 +5353,7 @@ MatDuration.decorators = [
5368
5353
  selector: 'mat-duration-field',
5369
5354
  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",
5370
5355
  providers: [
5371
- DEFAULT_VALUE_ACCESSOR$2,
5356
+ DEFAULT_VALUE_ACCESSOR$4,
5372
5357
  ],
5373
5358
  changeDetection: ChangeDetectionStrategy.OnPush,
5374
5359
  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%}"]
@@ -5425,22 +5410,22 @@ SharedMatDurationModule.decorators = [
5425
5410
  },] }
5426
5411
  ];
5427
5412
 
5428
- const DEFAULT_VALUE_ACCESSOR$1 = {
5413
+ const DEFAULT_VALUE_ACCESSOR$5 = {
5429
5414
  provide: NG_VALUE_ACCESSOR,
5430
5415
  useExisting: forwardRef(() => MatBooleanField),
5431
5416
  multi: true
5432
5417
  };
5433
- const noop$1 = () => {
5418
+ const noop$6 = () => {
5434
5419
  };
5435
- const ɵ0$4 = noop$1;
5420
+ const ɵ0$6 = noop$6;
5436
5421
  class MatBooleanField {
5437
5422
  constructor(translate, formBuilder, cd, formGroupDir) {
5438
5423
  this.translate = translate;
5439
5424
  this.formBuilder = formBuilder;
5440
5425
  this.cd = cd;
5441
5426
  this.formGroupDir = formGroupDir;
5442
- this._onChangeCallback = noop$1;
5443
- this._onTouchedCallback = noop$1;
5427
+ this._onChangeCallback = noop$6;
5428
+ this._onTouchedCallback = noop$6;
5444
5429
  this._writing = false;
5445
5430
  this.showRadio = false;
5446
5431
  this.disabled = false;
@@ -5613,7 +5598,7 @@ MatBooleanField.decorators = [
5613
5598
  selector: 'mat-boolean-field',
5614
5599
  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",
5615
5600
  providers: [
5616
- DEFAULT_VALUE_ACCESSOR$1
5601
+ DEFAULT_VALUE_ACCESSOR$5
5617
5602
  ],
5618
5603
  changeDetection: ChangeDetectionStrategy.OnPush,
5619
5604
  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}"]
@@ -5861,7 +5846,7 @@ class MatNumpadDomService {
5861
5846
  this.appRef.detachView(this.componentRef.hostView);
5862
5847
  }
5863
5848
  }
5864
- 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" });
5849
+ MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
5865
5850
  MatNumpadDomService.decorators = [
5866
5851
  { type: Injectable, args: [{
5867
5852
  providedIn: 'root'
@@ -6225,7 +6210,7 @@ SharedMatNumpadModule.decorators = [
6225
6210
  },] }
6226
6211
  ];
6227
6212
 
6228
- const DEFAULT_VALUE_ACCESSOR = {
6213
+ const DEFAULT_VALUE_ACCESSOR$6 = {
6229
6214
  provide: NG_VALUE_ACCESSOR,
6230
6215
  useExisting: forwardRef(() => MatSwipeField),
6231
6216
  multi: true
@@ -6488,7 +6473,7 @@ MatSwipeField.decorators = [
6488
6473
  { type: Component, args: [{
6489
6474
  selector: 'mat-swipe-field',
6490
6475
  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",
6491
- providers: [DEFAULT_VALUE_ACCESSOR],
6476
+ providers: [DEFAULT_VALUE_ACCESSOR$6],
6492
6477
  changeDetection: ChangeDetectionStrategy.OnPush,
6493
6478
  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}"]
6494
6479
  },] }
@@ -6908,6 +6893,85 @@ MaterialChipsModule.decorators = [
6908
6893
  },] }
6909
6894
  ];
6910
6895
 
6896
+ class MatBadgeIconDirective {
6897
+ constructor(el) {
6898
+ this.el = el;
6899
+ }
6900
+ ngOnInit() {
6901
+ this.size = this.size || 'medium';
6902
+ this.color = this.color || 'primary';
6903
+ if (this.color === 'warn')
6904
+ this.color = 'warning';
6905
+ let fontSize;
6906
+ switch (this.size) {
6907
+ case 'large':
6908
+ fontSize = '24px';
6909
+ break;
6910
+ case 'medium':
6911
+ fontSize = '22px';
6912
+ break;
6913
+ case 'small':
6914
+ fontSize = '16px';
6915
+ break;
6916
+ }
6917
+ const badge = this.el.nativeElement.querySelector('.mat-badge-content');
6918
+ badge.style.display = 'flex';
6919
+ badge.style.alignItems = 'center';
6920
+ badge.style.justifyContent = 'center';
6921
+ // fill: 'clear'
6922
+ if (this.fill === 'clear') {
6923
+ badge.style.color = `var(--ion-color-${this.color})`;
6924
+ badge.style.background = 'transparent';
6925
+ }
6926
+ // fill: 'solid' (default value)
6927
+ else {
6928
+ badge.style.background = `var(--ion-color-${this.color})`;
6929
+ badge.style.color = `var(--ion-color-${this.color}-contrast)`;
6930
+ }
6931
+ if (this.matIcon) {
6932
+ badge.innerHTML = `<i class="material-icons" style="font-size: ${fontSize};">${this.matIcon}</i>`;
6933
+ }
6934
+ else if (this.ionIcon) {
6935
+ badge.innerHTML = `<ion-icon style="font-size: ${fontSize};" name="${this.ionIcon}"></ion-icon>`;
6936
+ }
6937
+ }
6938
+ }
6939
+ MatBadgeIconDirective.decorators = [
6940
+ { type: Directive, args: [{
6941
+ selector: '[matBadgeIcon], [ionBadgeIcon]',
6942
+ inputs: [
6943
+ 'size: matBadgeSize',
6944
+ 'color: matBadgeColor',
6945
+ 'fill: matBadgeFill',
6946
+ ]
6947
+ },] }
6948
+ ];
6949
+ MatBadgeIconDirective.ctorParameters = () => [
6950
+ { type: ElementRef }
6951
+ ];
6952
+ MatBadgeIconDirective.propDecorators = {
6953
+ matIcon: [{ type: Input, args: ['matBadgeIcon',] }],
6954
+ ionIcon: [{ type: Input, args: ['ionBadgeIcon',] }]
6955
+ };
6956
+
6957
+ class SharedMatBadgeIconModule {
6958
+ }
6959
+ SharedMatBadgeIconModule.decorators = [
6960
+ { type: NgModule, args: [{
6961
+ imports: [
6962
+ CommonModule,
6963
+ IonicModule,
6964
+ MatBadgeModule,
6965
+ ],
6966
+ exports: [
6967
+ MatBadgeIconDirective
6968
+ ],
6969
+ declarations: [
6970
+ MatBadgeIconDirective
6971
+ ]
6972
+ },] }
6973
+ ];
6974
+
6911
6975
  const modules = [
6912
6976
  // Angular material components
6913
6977
  MatCommonModule,
@@ -6949,7 +7013,8 @@ const modules = [
6949
7013
  SharedMatBooleanModule,
6950
7014
  SharedMatNumpadModule,
6951
7015
  SharedMatSwipeModule,
6952
- MaterialChipsModule
7016
+ MaterialChipsModule,
7017
+ SharedMatBadgeIconModule
6953
7018
  ];
6954
7019
  class SharedMaterialModule {
6955
7020
  }
@@ -6983,7 +7048,7 @@ class ProgressBarService {
6983
7048
  }
6984
7049
  }
6985
7050
  }
6986
- ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7051
+ ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
6987
7052
  ProgressBarService.decorators = [
6988
7053
  { type: Injectable, args: [{ providedIn: 'root' },] }
6989
7054
  ];
@@ -7027,7 +7092,7 @@ class AppGestureConfig extends HammerGestureConfig {
7027
7092
  return mc;
7028
7093
  }
7029
7094
  }
7030
- AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7095
+ AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7031
7096
  AppGestureConfig.decorators = [
7032
7097
  { type: Injectable, args: [{ providedIn: 'root' },] }
7033
7098
  ];
@@ -7250,7 +7315,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
7250
7315
  this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
7251
7316
  }
7252
7317
  }
7253
- MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7318
+ MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
7254
7319
  MatPaginatorI18n.decorators = [
7255
7320
  { type: Injectable, args: [{ providedIn: 'root' },] }
7256
7321
  ];
@@ -7340,17 +7405,17 @@ function getColorContrast(color, bw) {
7340
7405
  return rgbArrayToHex(rgb.map(v => 255 - v));
7341
7406
  }
7342
7407
 
7343
- const noop = () => {
7408
+ const noop$7 = () => {
7344
7409
  };
7345
- const ɵ0$3 = noop;
7410
+ const ɵ0$7 = noop$7;
7346
7411
  class AppFormField {
7347
7412
  constructor(translate, cd, injector, formGroupDir) {
7348
7413
  this.translate = translate;
7349
7414
  this.cd = cd;
7350
7415
  this.injector = injector;
7351
7416
  this.formGroupDir = formGroupDir;
7352
- this._onChangeCallback = noop;
7353
- this._onTouchedCallback = noop;
7417
+ this._onChangeCallback = noop$7;
7418
+ this._onTouchedCallback = noop$7;
7354
7419
  this.readonly = false;
7355
7420
  this.compact = false;
7356
7421
  this.floatLabel = 'auto';
@@ -7766,14 +7831,14 @@ class AudioProvider extends StartableService {
7766
7831
  });
7767
7832
  }
7768
7833
  }
7769
- 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" });
7834
+ AudioProvider.ɵprov = ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(ɵɵinject(Platform), ɵɵinject(NativeAudio, 8), ɵɵinject(Vibration, 8), ɵɵinject(AudioManagement$1, 8)); }, token: AudioProvider, providedIn: "root" });
7770
7835
  AudioProvider.decorators = [
7771
7836
  { type: Injectable, args: [{ providedIn: 'root' },] }
7772
7837
  ];
7773
7838
  AudioProvider.ctorParameters = () => [
7774
7839
  { type: Platform },
7775
- { type: NativeAudio, decorators: [{ type: Optional }] },
7776
- { type: Vibration, decorators: [{ type: Optional }] },
7840
+ { type: NativeAudio$1, decorators: [{ type: Optional }] },
7841
+ { type: Vibration$1, decorators: [{ type: Optional }] },
7777
7842
  { type: AudioManagement, decorators: [{ type: Optional }] }
7778
7843
  ];
7779
7844
 
@@ -7855,7 +7920,7 @@ class Hotkeys {
7855
7920
  });
7856
7921
  }
7857
7922
  }
7858
- 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" });
7923
+ Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
7859
7924
  Hotkeys.decorators = [
7860
7925
  { type: Injectable, args: [{
7861
7926
  providedIn: 'root'
@@ -8029,7 +8094,7 @@ class Base64ImageReader {
8029
8094
  }
8030
8095
  }
8031
8096
 
8032
- const uuidv4$1 = uuidv4Imported;
8097
+ const uuidv4 = uuidv4Imported;
8033
8098
  class FileService {
8034
8099
  constructor(platform,
8035
8100
  //private transfer: FileTransfer,
@@ -8066,7 +8131,7 @@ class FileService {
8066
8131
  const lastSlashIndex = source.lastIndexOf('/');
8067
8132
  if (lastSlashIndex === -1)
8068
8133
  throw new Error('Invalid URL: ' + source);
8069
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
8134
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
8070
8135
  // Download into the file system
8071
8136
  if (responseType === 'file' && this.canUseFileSystem) {
8072
8137
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -8122,7 +8187,7 @@ class FileService {
8122
8187
  this._started = true;
8123
8188
  }
8124
8189
  }
8125
- 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" });
8190
+ FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
8126
8191
  FileService.decorators = [
8127
8192
  { type: Injectable, args: [{
8128
8193
  providedIn: 'root',
@@ -8284,7 +8349,7 @@ class Base58 {
8284
8349
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
8285
8350
 
8286
8351
  const scrypt = require('scrypt-async');
8287
- const sha256$1 = require('hash.js/lib/hash/sha/256');
8352
+ const sha256 = require('hash.js/lib/hash/sha/256');
8288
8353
  const sha512 = require('hash.js/lib/hash/sha/512');
8289
8354
  const nacl = {
8290
8355
  sign,
@@ -8388,7 +8453,7 @@ class CryptoService {
8388
8453
  * Hash (using SHA256) a message
8389
8454
  */
8390
8455
  sha256(message) {
8391
- return sha256$1().update(message).digest('hex');
8456
+ return sha256().update(message).digest('hex');
8392
8457
  }
8393
8458
  /**
8394
8459
  * Hash (using SHA512) a message
@@ -8401,7 +8466,7 @@ class CryptoService {
8401
8466
  return nacl.util.encodeBase64(m);
8402
8467
  }
8403
8468
  }
8404
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8469
+ CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
8405
8470
  CryptoService.decorators = [
8406
8471
  { type: Injectable, args: [{ providedIn: 'root' },] }
8407
8472
  ];
@@ -9622,7 +9687,7 @@ class LocalSettingsService extends StartableService {
9622
9687
  return page;
9623
9688
  }
9624
9689
  }
9625
- 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" });
9690
+ LocalSettingsService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(ɵɵinject(TranslateService), ɵɵinject(Platform), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_SETTINGS, 8), ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
9626
9691
  LocalSettingsService.decorators = [
9627
9692
  { type: Injectable, args: [{
9628
9693
  providedIn: 'root',
@@ -10282,7 +10347,7 @@ class NetworkService extends StartableService {
10282
10347
  });
10283
10348
  }
10284
10349
  }
10285
- 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" });
10350
+ NetworkService.ɵprov = ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(ModalController), ɵɵinject(CryptoService), ɵɵinject(Storage), ɵɵinject(LocalSettingsService), ɵɵinject(CacheService), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT), ɵɵinject(Network, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8)); }, token: NetworkService, providedIn: "root" });
10286
10351
  NetworkService.decorators = [
10287
10352
  { type: Injectable, args: [{ providedIn: 'root' },] }
10288
10353
  ];
@@ -10293,16 +10358,16 @@ NetworkService.ctorParameters = () => [
10293
10358
  { type: CryptoService },
10294
10359
  { type: Storage },
10295
10360
  { type: LocalSettingsService },
10296
- { type: CacheService },
10361
+ { type: CacheService$1 },
10297
10362
  { type: HttpClient },
10298
10363
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
10299
- { type: Network, decorators: [{ type: Optional }] },
10300
- { type: SplashScreen, decorators: [{ type: Optional }] },
10364
+ { type: Network$1, decorators: [{ type: Optional }] },
10365
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
10301
10366
  { type: TranslateService, decorators: [{ type: Optional }] },
10302
10367
  { type: ToastController, decorators: [{ type: Optional }] }
10303
10368
  ];
10304
10369
 
10305
- const ErrorCodes$2 = {
10370
+ const ErrorCodes = {
10306
10371
  UNKNOWN_ERROR: 0,
10307
10372
  LOAD_ACCOUNT_ERROR: 1,
10308
10373
  BAD_PASSWORD: 2,
@@ -10649,7 +10714,7 @@ class EntityStore {
10649
10714
  }
10650
10715
  catch (err) {
10651
10716
  console.error(err);
10652
- throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
10717
+ throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
10653
10718
  }
10654
10719
  }
10655
10720
  // Emit update event
@@ -11220,7 +11285,7 @@ class EntitiesStorage extends StartableService {
11220
11285
  }
11221
11286
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
11222
11287
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
11223
- 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" });
11288
+ EntitiesStorage.ɵprov = ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(ɵɵinject(Platform), ɵɵinject(ProgressBarService), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
11224
11289
  EntitiesStorage.decorators = [
11225
11290
  { type: Injectable, args: [{ providedIn: 'root' },] }
11226
11291
  ];
@@ -11320,10 +11385,10 @@ function referentialToString(obj, properties) {
11320
11385
  function referentialsToString(values, properties, separator) {
11321
11386
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
11322
11387
  }
11323
- const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
11388
+ const ɵ0$8 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
11324
11389
  const StatusList = Object.freeze([
11325
11390
  {
11326
- id: ɵ0$2,
11391
+ id: ɵ0$8,
11327
11392
  icon: 'checkmark',
11328
11393
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
11329
11394
  },
@@ -11598,7 +11663,7 @@ function accountToString(data) {
11598
11663
  (data.lastName || '')) || '';
11599
11664
  }
11600
11665
 
11601
- const uuidv4 = uuidv4Imported;
11666
+ const uuidv4$1 = uuidv4Imported;
11602
11667
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
11603
11668
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
11604
11669
  /**
@@ -11642,7 +11707,7 @@ function createTrackerLink(opts) {
11642
11707
  // Skip if not tracked
11643
11708
  if (!context || !context.tracked)
11644
11709
  return forward(operation);
11645
- const id = context.serializationKey || uuidv4();
11710
+ const id = context.serializationKey || uuidv4$1();
11646
11711
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
11647
11712
  // Clean context, before calling JSON.stringify (remove unused attributes)
11648
11713
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -12311,7 +12376,7 @@ class GraphqlService extends StartableService {
12311
12376
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
12312
12377
  || this.toAppError(err.networkError)
12313
12378
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
12314
- || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
12379
+ || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
12315
12380
  // If graphQL: try to convert the first error found
12316
12381
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
12317
12382
  || this.toAppError(err)
@@ -12319,7 +12384,7 @@ class GraphqlService extends StartableService {
12319
12384
  || (err.graphQLErrors && err.graphQLErrors[0])
12320
12385
  || err;
12321
12386
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
12322
- if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
12387
+ if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
12323
12388
  console.error('[graphql] original error: ' + err.networkError.message);
12324
12389
  this.onNetworkError.next(error);
12325
12390
  }
@@ -12355,7 +12420,7 @@ class GraphqlService extends StartableService {
12355
12420
  return 'ERROR.UNAUTHORIZED';
12356
12421
  case ServerErrorCodes.FORBIDDEN:
12357
12422
  return 'ERROR.FORBIDDEN';
12358
- case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
12423
+ case ErrorCodes.UNKNOWN_NETWORK_ERROR:
12359
12424
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
12360
12425
  case ServerErrorCodes.BAD_UPDATE_DATE:
12361
12426
  return 'ERROR.BAD_UPDATE_DATE';
@@ -12383,7 +12448,7 @@ class GraphqlService extends StartableService {
12383
12448
  return undefined;
12384
12449
  }
12385
12450
  }
12386
- 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" });
12451
+ GraphqlService.ɵprov = ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(ɵɵinject(Platform), ɵɵinject(Apollo), ɵɵinject(HttpLink), ɵɵinject(NetworkService), ɵɵinject(Storage), ɵɵinject(CryptoService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
12387
12452
  GraphqlService.decorators = [
12388
12453
  { type: Injectable, args: [{
12389
12454
  providedIn: 'root'
@@ -12400,7 +12465,7 @@ GraphqlService.ctorParameters = () => [
12400
12465
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
12401
12466
  ];
12402
12467
 
12403
- const sha256 = require('hash.js/lib/hash/sha/256');
12468
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
12404
12469
  class BaseGraphqlServiceOptions {
12405
12470
  }
12406
12471
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -12550,8 +12615,8 @@ class BaseGraphqlService {
12550
12615
  }
12551
12616
  /* -- protected methods -- */
12552
12617
  computeMutableWatchQueryId(opts) {
12553
- const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
12554
- const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
12618
+ const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
12619
+ const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
12555
12620
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
12556
12621
  }
12557
12622
  findMutableWatchQueries(opts) {
@@ -12614,7 +12679,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
12614
12679
  /* ------------------------------------
12615
12680
  * GraphQL queries
12616
12681
  * ------------------------------------*/
12617
- const Fragments$1 = {
12682
+ const Fragments = {
12618
12683
  account: gql `
12619
12684
  fragment AccountFragment on AccountVO {
12620
12685
  id
@@ -12647,13 +12712,13 @@ const Fragments$1 = {
12647
12712
  `
12648
12713
  };
12649
12714
  // Load account query
12650
- const LoadQuery$1 = gql `
12715
+ const LoadQuery = gql `
12651
12716
  query Account {
12652
12717
  data: account {
12653
12718
  ...AccountFragment
12654
12719
  }
12655
12720
  }
12656
- ${Fragments$1.account}
12721
+ ${Fragments.account}
12657
12722
  `;
12658
12723
  // Check email query
12659
12724
  const IsEmailExistsQuery = gql `
@@ -12662,13 +12727,13 @@ const IsEmailExistsQuery = gql `
12662
12727
  }
12663
12728
  `;
12664
12729
  // Save (create or update) account mutation
12665
- const SaveMutation$1 = gql `
12730
+ const SaveMutation = gql `
12666
12731
  mutation SaveAccount($data:AccountVOInput){
12667
12732
  data: saveAccount(account: $data){
12668
12733
  ...AccountFragment
12669
12734
  }
12670
12735
  }
12671
- ${Fragments$1.account}
12736
+ ${Fragments.account}
12672
12737
  `;
12673
12738
  // Create account mutation
12674
12739
  const CreateMutation = gql `
@@ -12677,7 +12742,7 @@ const CreateMutation = gql `
12677
12742
  ...AccountFragment
12678
12743
  }
12679
12744
  }
12680
- ${Fragments$1.account}
12745
+ ${Fragments.account}
12681
12746
  `;
12682
12747
  // Sent confirmation email
12683
12748
  const SendConfirmEmailMutation = gql `
@@ -13015,7 +13080,7 @@ class AccountService extends BaseGraphqlService {
13015
13080
  catch (error) {
13016
13081
  console.error(error);
13017
13082
  this.resetData();
13018
- throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13083
+ throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13019
13084
  }
13020
13085
  // Store pubkey+keypair
13021
13086
  this._data.pubkey = Base58.encode(keypair.publicKey);
@@ -13049,7 +13114,7 @@ class AccountService extends BaseGraphqlService {
13049
13114
  }
13050
13115
  catch (err) {
13051
13116
  // If account not found, check if email is valid
13052
- if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
13117
+ if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
13053
13118
  // Check email exists
13054
13119
  if (data.username.indexOf('@') !== -1) {
13055
13120
  let isEmailExists;
@@ -13061,11 +13126,11 @@ class AccountService extends BaseGraphqlService {
13061
13126
  }
13062
13127
  // Email not exists (no account)
13063
13128
  if (!isEmailExists) {
13064
- throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13129
+ throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13065
13130
  }
13066
13131
  }
13067
13132
  // Email exists, so error = 'bad password'
13068
- throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13133
+ throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13069
13134
  }
13070
13135
  throw err; // resend the first error
13071
13136
  }
@@ -13190,8 +13255,8 @@ class AccountService extends BaseGraphqlService {
13190
13255
  // Load remotely
13191
13256
  else {
13192
13257
  const { data } = yield this.graphql.query({
13193
- query: LoadQuery$1,
13194
- error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
13258
+ query: LoadQuery,
13259
+ error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
13195
13260
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
13196
13261
  });
13197
13262
  json = data;
@@ -13218,7 +13283,7 @@ class AccountService extends BaseGraphqlService {
13218
13283
  return __awaiter(this, void 0, void 0, function* () {
13219
13284
  const isEmailExists = yield this.isEmailExists(email);
13220
13285
  if (isEmailExists) {
13221
- throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
13286
+ throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
13222
13287
  }
13223
13288
  });
13224
13289
  }
@@ -13254,7 +13319,7 @@ class AccountService extends BaseGraphqlService {
13254
13319
  locale
13255
13320
  },
13256
13321
  error: {
13257
- code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
13322
+ code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
13258
13323
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
13259
13324
  }
13260
13325
  });
@@ -13270,7 +13335,7 @@ class AccountService extends BaseGraphqlService {
13270
13335
  code
13271
13336
  },
13272
13337
  error: {
13273
- code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
13338
+ code: ErrorCodes.CONFIRM_EMAIL_FAILED,
13274
13339
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
13275
13340
  }
13276
13341
  });
@@ -13288,7 +13353,7 @@ class AccountService extends BaseGraphqlService {
13288
13353
  interval: 10
13289
13354
  },
13290
13355
  error: {
13291
- code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
13356
+ code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
13292
13357
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
13293
13358
  }
13294
13359
  }).subscribe({
@@ -13397,7 +13462,7 @@ class AccountService extends BaseGraphqlService {
13397
13462
  throw error;
13398
13463
  console.error(error);
13399
13464
  throw {
13400
- code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
13465
+ code: ErrorCodes.LOAD_ACCOUNT_ERROR,
13401
13466
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
13402
13467
  };
13403
13468
  }
@@ -13542,7 +13607,7 @@ class AccountService extends BaseGraphqlService {
13542
13607
  if (!isNew) {
13543
13608
  const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
13544
13609
  if (!existingAccount || !existingAccount.updateDate) {
13545
- throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
13610
+ throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
13546
13611
  }
13547
13612
  this.copyIdAndUpdateDate(existingAccount, account);
13548
13613
  }
@@ -13551,10 +13616,10 @@ class AccountService extends BaseGraphqlService {
13551
13616
  delete json.profiles;
13552
13617
  // Execute mutation
13553
13618
  const { data } = yield this.graphql.mutate({
13554
- mutation: isNew ? CreateMutation : SaveMutation$1,
13619
+ mutation: isNew ? CreateMutation : SaveMutation,
13555
13620
  variables: { data: json },
13556
13621
  error: {
13557
- code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
13622
+ code: ErrorCodes.SAVE_ACCOUNT_ERROR,
13558
13623
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
13559
13624
  }
13560
13625
  });
@@ -13574,7 +13639,7 @@ class AccountService extends BaseGraphqlService {
13574
13639
  if (counter > 4) {
13575
13640
  if (this._debug)
13576
13641
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
13577
- throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
13642
+ throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
13578
13643
  }
13579
13644
  // Check if valid
13580
13645
  if (token) {
@@ -13584,7 +13649,7 @@ class AccountService extends BaseGraphqlService {
13584
13649
  token
13585
13650
  },
13586
13651
  error: {
13587
- code: ErrorCodes$2.UNAUTHORIZED,
13652
+ code: ErrorCodes.UNAUTHORIZED,
13588
13653
  message: 'ERROR.UNAUTHORIZED'
13589
13654
  },
13590
13655
  fetchPolicy: 'no-cache'
@@ -13600,7 +13665,7 @@ class AccountService extends BaseGraphqlService {
13600
13665
  }
13601
13666
  // Generate a new token
13602
13667
  const challengeError = {
13603
- code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
13668
+ code: ErrorCodes.AUTH_CHALLENGE_ERROR,
13604
13669
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
13605
13670
  };
13606
13671
  const data = yield this.graphql.query({
@@ -13634,7 +13699,7 @@ class AccountService extends BaseGraphqlService {
13634
13699
  target.settings.updateDate = source.settings && source.settings.updateDate || target.settings.updateDate;
13635
13700
  }
13636
13701
  }
13637
- 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" });
13702
+ AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
13638
13703
  AccountService.decorators = [
13639
13704
  { type: Injectable, args: [{ providedIn: 'root' },] }
13640
13705
  ];
@@ -13894,7 +13959,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
13894
13959
  /* ------------------------------------
13895
13960
  * GraphQL queries
13896
13961
  * ------------------------------------*/
13897
- const Fragments = {
13962
+ const Fragments$1 = {
13898
13963
  config: gql `
13899
13964
  fragment ConfigFragment on ConfigurationVO {
13900
13965
  id
@@ -13921,22 +13986,22 @@ const Fragments = {
13921
13986
  }
13922
13987
  `
13923
13988
  };
13924
- const LoadQuery = gql `
13989
+ const LoadQuery$1 = gql `
13925
13990
  query Configuration{
13926
13991
  data: configuration{
13927
13992
  ...ConfigFragment
13928
13993
  }
13929
13994
  }
13930
- ${Fragments.config}
13995
+ ${Fragments$1.config}
13931
13996
  `;
13932
13997
  // Save (create or update) account mutation
13933
- const SaveMutation = gql `
13998
+ const SaveMutation$1 = gql `
13934
13999
  mutation SaveConfiguration($data: ConfigurationVOInput){
13935
14000
  data: saveConfiguration(config: $data){
13936
14001
  ...ConfigFragment
13937
14002
  }
13938
14003
  }
13939
- ${Fragments.config}
14004
+ ${Fragments$1.config}
13940
14005
  `;
13941
14006
  const ClearCache = gql `
13942
14007
  query ClearCache($name: String) {
@@ -14031,12 +14096,12 @@ class ConfigService extends BaseGraphqlService {
14031
14096
  return __awaiter(this, void 0, void 0, function* () {
14032
14097
  const now = Date.now();
14033
14098
  console.debug('[config] Loading Pod configuration...');
14034
- const query = opts && opts.query || LoadQuery;
14099
+ const query = opts && opts.query || LoadQuery$1;
14035
14100
  const variables = opts && opts.variables || undefined;
14036
14101
  const res = yield this.graphql.query({
14037
14102
  query,
14038
14103
  variables,
14039
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14104
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14040
14105
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
14041
14106
  });
14042
14107
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -14061,12 +14126,12 @@ class ConfigService extends BaseGraphqlService {
14061
14126
  const json = config.asObject();
14062
14127
  // Execute mutation
14063
14128
  const res = yield this.graphql.mutate({
14064
- mutation: SaveMutation,
14129
+ mutation: SaveMutation$1,
14065
14130
  variables: {
14066
14131
  data: json
14067
14132
  },
14068
14133
  error: {
14069
- code: ErrorCodes$2.SAVE_CONFIG_ERROR,
14134
+ code: ErrorCodes.SAVE_CONFIG_ERROR,
14070
14135
  message: 'ERROR.SAVE_CONFIG_ERROR'
14071
14136
  }
14072
14137
  });
@@ -14092,7 +14157,7 @@ class ConfigService extends BaseGraphqlService {
14092
14157
  const res = yield this.graphql.query({
14093
14158
  query: CacheStatistics,
14094
14159
  variables: null,
14095
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14160
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14096
14161
  fetchPolicy: 'network-only'
14097
14162
  });
14098
14163
  const data = res && res.cacheStatistics || undefined;
@@ -14108,7 +14173,7 @@ class ConfigService extends BaseGraphqlService {
14108
14173
  const res = yield this.graphql.query({
14109
14174
  query: ClearCache,
14110
14175
  variables,
14111
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14176
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14112
14177
  fetchPolicy: 'network-only'
14113
14178
  });
14114
14179
  const data = res && res.clearCache || undefined;
@@ -14267,7 +14332,7 @@ class ConfigService extends BaseGraphqlService {
14267
14332
  });
14268
14333
  }
14269
14334
  }
14270
- 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" });
14335
+ ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
14271
14336
  ConfigService.decorators = [
14272
14337
  { type: Injectable, args: [{
14273
14338
  providedIn: 'root',
@@ -14286,7 +14351,7 @@ ConfigService.ctorParameters = () => [
14286
14351
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
14287
14352
  ];
14288
14353
 
14289
- const moment$2 = momentImported;
14354
+ const moment$4 = momentImported;
14290
14355
  class PlatformService {
14291
14356
  constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
14292
14357
  this.platform = platform;
@@ -14495,16 +14560,16 @@ class PlatformService {
14495
14560
  }
14496
14561
  // config moment lib
14497
14562
  try {
14498
- moment$2.locale(event.lang);
14563
+ moment$4.locale(event.lang);
14499
14564
  console.debug('[platform] Use locale {' + event.lang + '}');
14500
14565
  }
14501
14566
  // If error, fallback to en
14502
14567
  catch (err) {
14503
- moment$2.locale('en');
14568
+ moment$4.locale('en');
14504
14569
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
14505
14570
  }
14506
14571
  // Config date adapter
14507
- this.dateAdapter.setLocale(moment$2.locale());
14572
+ this.dateAdapter.setLocale(moment$4.locale());
14508
14573
  }
14509
14574
  });
14510
14575
  this.settings.onChange.subscribe(data => {
@@ -14642,7 +14707,7 @@ class PlatformService {
14642
14707
  });
14643
14708
  }
14644
14709
  }
14645
- 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" });
14710
+ PlatformService.ɵprov = ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(ɵɵinject(Platform), ɵɵinject(Platform$1), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(MomentDateAdapter), ɵɵinject(EntitiesStorage), ɵɵinject(LocalSettingsService), ɵɵinject(NetworkService), ɵɵinject(AccountService), ɵɵinject(ConfigService), ɵɵinject(CacheService), ɵɵinject(Storage), ɵɵinject(AudioProvider), ɵɵinject(ENVIRONMENT), ɵɵinject(StatusBar, 8), ɵɵinject(Keyboard$1, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(InAppBrowser, 8), ɵɵinject(Downloader, 8)); }, token: PlatformService, providedIn: "root" });
14646
14711
  PlatformService.decorators = [
14647
14712
  { type: Injectable, args: [{ providedIn: 'root' },] }
14648
14713
  ];
@@ -14657,15 +14722,15 @@ PlatformService.ctorParameters = () => [
14657
14722
  { type: NetworkService },
14658
14723
  { type: AccountService },
14659
14724
  { type: ConfigService },
14660
- { type: CacheService },
14725
+ { type: CacheService$1 },
14661
14726
  { type: Storage },
14662
14727
  { type: AudioProvider },
14663
14728
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
14664
- { type: StatusBar, decorators: [{ type: Optional }] },
14729
+ { type: StatusBar$1, decorators: [{ type: Optional }] },
14665
14730
  { type: Keyboard, decorators: [{ type: Optional }] },
14666
- { type: SplashScreen, decorators: [{ type: Optional }] },
14667
- { type: InAppBrowser, decorators: [{ type: Optional }] },
14668
- { type: Downloader, decorators: [{ type: Optional }] }
14731
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
14732
+ { type: InAppBrowser$1, decorators: [{ type: Optional }] },
14733
+ { type: Downloader$1, decorators: [{ type: Optional }] }
14669
14734
  ];
14670
14735
 
14671
14736
  class AppHelpModal {
@@ -14729,7 +14794,7 @@ class MatStepperI18n extends MatStepperIntl {
14729
14794
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
14730
14795
  }
14731
14796
  }
14732
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
14797
+ MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
14733
14798
  MatStepperI18n.decorators = [
14734
14799
  { type: Injectable, args: [{ providedIn: 'root' },] }
14735
14800
  ];
@@ -15721,7 +15786,7 @@ function state2side(state) {
15721
15786
  return 1;
15722
15787
  }
15723
15788
  }
15724
- const ɵ0$1 = (defaultStateSize) => [
15789
+ const ɵ0$9 = (defaultStateSize) => [
15725
15790
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
15726
15791
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
15727
15792
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -15729,7 +15794,7 @@ const ɵ0$1 = (defaultStateSize) => [
15729
15794
  const SCALE_OPTIONS_DEFAULT = {
15730
15795
  startColor: rgbArrayMap.red,
15731
15796
  startStates: [0, 2, 3],
15732
- startStepsFn: ɵ0$1
15797
+ startStepsFn: ɵ0$9
15733
15798
  };
15734
15799
  /**
15735
15800
  * Internal function, that create a colors scale, using iteration
@@ -15821,21 +15886,21 @@ function linearColorGradient(count, options) {
15821
15886
  return result;
15822
15887
  }
15823
15888
 
15824
- class EntityTestClass$1 {
15889
+ class EntityTestClass {
15825
15890
  }
15826
- const FAKE_ENTITIES$1 = [
15891
+ const FAKE_ENTITIES = [
15827
15892
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
15828
15893
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
15829
15894
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
15830
15895
  ];
15831
- function deepCopy$1(values, size) {
15896
+ function deepCopy(values, size) {
15832
15897
  if (isNil(size)) {
15833
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
15898
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
15834
15899
  }
15835
15900
  let result = [];
15836
15901
  let i = 1;
15837
15902
  while (result.length < size) {
15838
- result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
15903
+ result = result.concat((values || FAKE_ENTITIES).map(entity => {
15839
15904
  const name = entity.name + ' #' + i;
15840
15905
  return Object.assign(Object.assign({}, entity), { id: i++, name });
15841
15906
  }));
@@ -15845,7 +15910,7 @@ function deepCopy$1(values, size) {
15845
15910
  class AutocompleteTestPage {
15846
15911
  constructor(formBuilder) {
15847
15912
  this.formBuilder = formBuilder;
15848
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
15913
+ this._items = deepCopy(FAKE_ENTITIES, 100);
15849
15914
  this.$items = new BehaviorSubject(undefined);
15850
15915
  this.autocompleteFields = new MatAutocompleteConfigHolder();
15851
15916
  this.memoryHide = false;
@@ -15889,7 +15954,7 @@ class AutocompleteTestPage {
15889
15954
  });
15890
15955
  // From items
15891
15956
  this.autocompleteFields.add('entity-items-large', {
15892
- items: FAKE_ENTITIES$1.slice(),
15957
+ items: FAKE_ENTITIES.slice(),
15893
15958
  attributes: ['label', 'name', 'description', 'comments'],
15894
15959
  displayWith: this.entityToString
15895
15960
  });
@@ -15899,12 +15964,12 @@ class AutocompleteTestPage {
15899
15964
  loadData() {
15900
15965
  return __awaiter(this, void 0, void 0, function* () {
15901
15966
  const data = {
15902
- entity: deepCopy$1(FAKE_ENTITIES$1)[0],
15967
+ entity: deepCopy(FAKE_ENTITIES)[0],
15903
15968
  // This item is NOT in the items list => i should be displayed anyway
15904
15969
  missingEntity: {
15905
15970
  id: -1, label: '??', name: 'Missing item'
15906
15971
  },
15907
- disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
15972
+ disableEntity: deepCopy(FAKE_ENTITIES)[2]
15908
15973
  };
15909
15974
  this.form.setValue(data);
15910
15975
  // Load observables
@@ -16067,7 +16132,7 @@ class MaterialTestingPage {
16067
16132
  MaterialTestingPage.decorators = [
16068
16133
  { type: Component, args: [{
16069
16134
  selector: 'app-material-testing',
16070
- template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Material components</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list>\n\n <ion-item-divider>Shared Material components</ion-item-divider>\n\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./datetime')\">\n Date/Time field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./autocomplete')\">\n Autocomplete field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./latlong')\">\n Lat/Long field\n </ion-item>\n<!-- <ion-item tappable class=\"text-1x\" (click)=\"openPage('./numpad')\">-->\n<!-- Numeric pad component-->\n<!-- </ion-item>-->\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./swipe')\">\n Swipe component\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./chips')\">\n Chips component\n </ion-item>\n\n <ng-container *ngIf=\"pages && pages.length\">\n <ion-item-divider>Other components</ion-item-divider>\n\n <ion-item *ngFor=\"let item of pages\"\n tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n\n </ng-container>\n </ion-list>\n\n</ion-content>\n"
16135
+ template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Material components</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list>\n\n <ion-item-divider>Shared Material components</ion-item-divider>\n\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./datetime')\">\n Date/Time field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./autocomplete')\">\n Autocomplete field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./latlong')\">\n Lat/Long field\n </ion-item>\n<!-- <ion-item tappable class=\"text-1x\" (click)=\"openPage('./numpad')\">-->\n<!-- Numeric pad component-->\n<!-- </ion-item>-->\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./swipe')\">\n Swipe component\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./chips')\">\n Chips component\n </ion-item>\n\n <ion-item-divider>Directive</ion-item-divider>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./badge-icon')\">\n Badge icon directive\n </ion-item>\n\n <ng-container *ngIf=\"pages && pages.length\">\n <ion-item-divider>Other components</ion-item-divider>\n\n <ion-item *ngFor=\"let item of pages\"\n tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n\n </ng-container>\n </ion-list>\n\n</ion-content>\n"
16071
16136
  },] }
16072
16137
  ];
16073
16138
  MaterialTestingPage.ctorParameters = () => [
@@ -16077,13 +16142,13 @@ MaterialTestingPage.ctorParameters = () => [
16077
16142
  { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
16078
16143
  ];
16079
16144
 
16080
- const moment$1 = momentImported;
16145
+ const moment$5 = momentImported;
16081
16146
  class SwipeTestPage {
16082
16147
  constructor(formBuilder, dateFormatPipe) {
16083
16148
  this.formBuilder = formBuilder;
16084
16149
  this.dateFormatPipe = dateFormatPipe;
16085
16150
  this.$dates = new BehaviorSubject(undefined);
16086
- this._today = moment$1().startOf('day');
16151
+ this._today = moment$5().startOf('day');
16087
16152
  this.form = formBuilder.group({
16088
16153
  empty: [null, Validators.required],
16089
16154
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -16096,7 +16161,7 @@ class SwipeTestPage {
16096
16161
  ngOnInit() {
16097
16162
  const dates = [];
16098
16163
  for (let d = 0; d < 7; d++) {
16099
- dates[d] = moment$1(this._today).add(d - 3, 'day');
16164
+ dates[d] = moment$5(this._today).add(d - 3, 'day');
16100
16165
  }
16101
16166
  this.$dates.next(dates);
16102
16167
  this.loadData();
@@ -16137,7 +16202,7 @@ SwipeTestPage.ctorParameters = () => [
16137
16202
  { type: DateFormatPipe }
16138
16203
  ];
16139
16204
 
16140
- const moment = momentImported;
16205
+ const moment$6 = momentImported;
16141
16206
  class DateTimeTestPage {
16142
16207
  constructor(platform, formBuilder, cd) {
16143
16208
  this.platform = platform;
@@ -16169,7 +16234,7 @@ class DateTimeTestPage {
16169
16234
  // Load the form with data
16170
16235
  loadData() {
16171
16236
  return __awaiter(this, void 0, void 0, function* () {
16172
- const now = moment();
16237
+ const now = moment$6();
16173
16238
  const data = {
16174
16239
  empty: toDateISOString(now.clone().add(2, 'hours')),
16175
16240
  enable: toDateISOString(now),
@@ -16230,20 +16295,20 @@ DateTimeTestPage.ctorParameters = () => [
16230
16295
  { type: ChangeDetectorRef }
16231
16296
  ];
16232
16297
 
16233
- class EntityTestClass {
16298
+ class EntityTestClass$1 {
16234
16299
  }
16235
- const FAKE_ENTITIES = [
16300
+ const FAKE_ENTITIES$1 = [
16236
16301
  { id: 1, label: 'AAA', name: 'Item A' },
16237
16302
  { id: 2, label: 'BBB', name: 'Item B' },
16238
16303
  { id: 3, label: 'CCC', name: 'Item C' }
16239
16304
  ];
16240
- function deepCopy(values) {
16241
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
16305
+ function deepCopy$1(values) {
16306
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
16242
16307
  }
16243
16308
  class ChipsTestPage {
16244
16309
  constructor(formBuilder) {
16245
16310
  this.formBuilder = formBuilder;
16246
- this._items = deepCopy(FAKE_ENTITIES);
16311
+ this._items = deepCopy$1(FAKE_ENTITIES$1);
16247
16312
  this._$items = new BehaviorSubject(undefined);
16248
16313
  this.autocompleteFields = new MatAutocompleteConfigHolder();
16249
16314
  this.form = formBuilder.group({
@@ -16262,7 +16327,7 @@ class ChipsTestPage {
16262
16327
  });
16263
16328
  // From items
16264
16329
  this.autocompleteFields.add('entity-items', {
16265
- items: FAKE_ENTITIES.slice(),
16330
+ items: FAKE_ENTITIES$1.slice(),
16266
16331
  attributes: ['label', 'name'],
16267
16332
  displayWith: this.entityToString
16268
16333
  });
@@ -16283,15 +16348,15 @@ class ChipsTestPage {
16283
16348
  const data = {
16284
16349
  entity: [],
16285
16350
  // THis item is NOT in the items list => i should be displayed anyway
16286
- entityInitial: FAKE_ENTITIES.slice(1, 2),
16287
- disableEntity: FAKE_ENTITIES.slice(1, 2)
16351
+ entityInitial: FAKE_ENTITIES$1.slice(1, 2),
16352
+ disableEntity: FAKE_ENTITIES$1.slice(1, 2)
16288
16353
  };
16289
16354
  this.form.setValue(data);
16290
16355
  });
16291
16356
  }
16292
16357
  loadItems() {
16293
16358
  return __awaiter(this, void 0, void 0, function* () {
16294
- this._$items.next(deepCopy(FAKE_ENTITIES));
16359
+ this._$items.next(deepCopy$1(FAKE_ENTITIES$1));
16295
16360
  });
16296
16361
  }
16297
16362
  entityToString(item) {
@@ -16323,7 +16388,16 @@ ChipsTestPage.ctorParameters = () => [
16323
16388
  { type: FormBuilder }
16324
16389
  ];
16325
16390
 
16326
- const routes$1 = [
16391
+ class MatBadgeIconTestPage {
16392
+ }
16393
+ MatBadgeIconTestPage.decorators = [
16394
+ { type: Component, args: [{
16395
+ selector: 'mat-badge-icon-test',
16396
+ template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>matBadgeIcon directive</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <!-- small badge -->\n <p>\n <ion-text color=\"tertiary\">\n <span matBadge matIcon=\"check\"\n matBadgeSize=\"small\"\n matBadgeColor=\"accent\"\n matBadgeOverlap=\"false\">Small badge</span>\n </ion-text>\n </p>\n\n <!-- medium badge -->\n <p>\n <ion-text matBadge matBadgeIcon=\"check\"\n matBadgeSize=\"medium\"\n matBadgeColor=\"tertiary\"\n matBadgeOverlap=\"false\"\n >Medium badge</ion-text>\n </p>\n\n <!-- small badge -->\n <p>\n <ion-label matBadge matBadgeIcon=\"close\" matBadgeSize=\"large\"\n matBadgeOverlap=\"false\">Large badge</ion-label>\n </p>\n\n <!-- default size badge -->\n <p>\n <ion-label matBadge matBadgeIcon=\"check\" matBadgeColor=\"success\"\n matBadgeOverlap=\"false\">Badge (no size, no color)\n </ion-label>\n </p>\n\n <!-- ion icon -->\n <p>\n <ion-label matBadge\n ionBadgeIcon=\"checkmark\"\n matBadgeColor=\"success\"\n matBadgeOverlap=\"false\">Badge with ion-icon\n </ion-label>\n </p>\n\n <!-- ion icon clear -->\n <p>\n <ion-label matBadge\n ionBadgeIcon=\"checkmark-circle\"\n matBadgeColor=\"tertiary\"\n matBadgeFill=\"clear\"\n matBadgeOverlap=\"false\">Badge with clear icon\n </ion-label>\n </p>\n\n\n</ion-content>\n"
16397
+ },] }
16398
+ ];
16399
+
16400
+ const routes = [
16327
16401
  {
16328
16402
  path: '',
16329
16403
  pathMatch: 'full',
@@ -16358,6 +16432,11 @@ const routes$1 = [
16358
16432
  path: 'chips',
16359
16433
  pathMatch: 'full',
16360
16434
  component: ChipsTestPage
16435
+ },
16436
+ {
16437
+ path: 'badge-icon',
16438
+ pathMatch: 'full',
16439
+ component: MatBadgeIconTestPage
16361
16440
  }
16362
16441
  ];
16363
16442
  class MaterialTestingModule {
@@ -16370,7 +16449,7 @@ MaterialTestingModule.decorators = [
16370
16449
  ReactiveFormsModule,
16371
16450
  SharedMaterialModule,
16372
16451
  TranslateModule.forChild(),
16373
- RouterModule.forChild(routes$1)
16452
+ RouterModule.forChild(routes)
16374
16453
  ],
16375
16454
  declarations: [
16376
16455
  MaterialTestingPage,
@@ -16379,7 +16458,8 @@ MaterialTestingModule.decorators = [
16379
16458
  LatLongTestPage,
16380
16459
  // NumpadTestPage,
16381
16460
  SwipeTestPage,
16382
- ChipsTestPage
16461
+ ChipsTestPage,
16462
+ MatBadgeIconTestPage
16383
16463
  ],
16384
16464
  exports: [
16385
16465
  SharedMaterialModule,
@@ -16475,7 +16555,7 @@ class AppForm {
16475
16555
  if (form)
16476
16556
  this.setForm(form);
16477
16557
  this.settings = injector.get(LocalSettingsService);
16478
- this.errorTranslator = injector.get(FormErrorAdapter);
16558
+ this.errorTranslator = injector.get(FormErrorTranslator);
16479
16559
  this.autocompleteHelper = new MatAutocompleteConfigHolder(this.settings && {
16480
16560
  getUserAttributes: (a, b) => this.settings.getFieldDisplayAttributes(a, b)
16481
16561
  });
@@ -17328,7 +17408,7 @@ class UserSettingsValidatorService extends AppValidatorService {
17328
17408
  });
17329
17409
  }
17330
17410
  }
17331
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
17411
+ UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
17332
17412
  UserSettingsValidatorService.decorators = [
17333
17413
  { type: Injectable, args: [{ providedIn: 'root' },] }
17334
17414
  ];
@@ -17372,7 +17452,7 @@ class AccountValidatorService extends AppValidatorService {
17372
17452
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
17373
17453
  }
17374
17454
  }
17375
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
17455
+ AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
17376
17456
  AccountValidatorService.decorators = [
17377
17457
  { type: Injectable, args: [{ providedIn: 'root' },] }
17378
17458
  ];
@@ -17905,7 +17985,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
17905
17985
  });
17906
17986
  }
17907
17987
  }
17908
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
17988
+ LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
17909
17989
  LocalSettingsValidatorService.decorators = [
17910
17990
  { type: Injectable, args: [{ providedIn: 'root' },] }
17911
17991
  ];
@@ -18523,7 +18603,7 @@ class IsOnFieldModePipe {
18523
18603
  return value === 'FIELD';
18524
18604
  }
18525
18605
  }
18526
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18606
+ IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
18527
18607
  IsOnFieldModePipe.decorators = [
18528
18608
  { type: Pipe, args: [{
18529
18609
  name: 'isOnField'
@@ -18535,7 +18615,7 @@ class IsNotOnFieldModePipe {
18535
18615
  return value !== 'FIELD';
18536
18616
  }
18537
18617
  }
18538
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18618
+ IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
18539
18619
  IsNotOnFieldModePipe.decorators = [
18540
18620
  { type: Pipe, args: [{
18541
18621
  name: 'isNotOnField'
@@ -18550,7 +18630,7 @@ class PersonToStringPipe {
18550
18630
  return PersonUtils.personToString(value);
18551
18631
  }
18552
18632
  }
18553
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18633
+ PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
18554
18634
  PersonToStringPipe.decorators = [
18555
18635
  { type: Pipe, args: [{
18556
18636
  name: 'personToString'
@@ -18896,7 +18976,7 @@ class IsLoginAccountPipe {
18896
18976
  return value && value.pubkey && true;
18897
18977
  }
18898
18978
  }
18899
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
18979
+ IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
18900
18980
  IsLoginAccountPipe.decorators = [
18901
18981
  { type: Pipe, args: [{
18902
18982
  name: 'isLogin'
@@ -18908,7 +18988,7 @@ class AccountToStringPipe {
18908
18988
  return accountToString(value);
18909
18989
  }
18910
18990
  }
18911
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
18991
+ AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
18912
18992
  AccountToStringPipe.decorators = [
18913
18993
  { type: Pipe, args: [{
18914
18994
  name: 'accountToString'
@@ -18923,7 +19003,7 @@ class DepartmentToStringPipe {
18923
19003
  return departmentToString(value);
18924
19004
  }
18925
19005
  }
18926
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
19006
+ DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
18927
19007
  DepartmentToStringPipe.decorators = [
18928
19008
  { type: Pipe, args: [{
18929
19009
  name: 'departmentToString'
@@ -18949,7 +19029,7 @@ class MenuService {
18949
19029
  this._visibleSubject.next(value);
18950
19030
  }
18951
19031
  }
18952
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
19032
+ MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
18953
19033
  MenuService.decorators = [
18954
19034
  { type: Injectable, args: [{
18955
19035
  providedIn: 'root'
@@ -19443,7 +19523,7 @@ class AuthGuardService {
19443
19523
  }));
19444
19524
  }
19445
19525
  }
19446
- 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" });
19526
+ AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
19447
19527
  AuthGuardService.decorators = [
19448
19528
  { type: Injectable, args: [{ providedIn: 'root' },] }
19449
19529
  ];
@@ -19491,7 +19571,7 @@ class BaseEntityService extends BaseGraphqlService {
19491
19571
  query,
19492
19572
  variables: { id },
19493
19573
  fetchPolicy: opts && opts.fetchPolicy || undefined,
19494
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19574
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19495
19575
  })
19496
19576
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
19497
19577
  ? (data && this.fromObject(data))
@@ -19506,7 +19586,7 @@ class BaseEntityService extends BaseGraphqlService {
19506
19586
  query,
19507
19587
  variables: { id },
19508
19588
  fetchPolicy: opts && opts.fetchPolicy || undefined,
19509
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19589
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
19510
19590
  });
19511
19591
  // Convert to entity
19512
19592
  return (!opts || opts.toEntity !== false)
@@ -19537,7 +19617,7 @@ class BaseEntityService extends BaseGraphqlService {
19537
19617
  totalFieldName: withTotal ? 'total' : undefined,
19538
19618
  insertFilterFn: filter && filter.asFilterFn(),
19539
19619
  variables,
19540
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
19620
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
19541
19621
  fetchPolicy: opts && opts.fetchPolicy || undefined
19542
19622
  })
19543
19623
  .pipe(map(({ data, total }) => {
@@ -19573,7 +19653,7 @@ class BaseEntityService extends BaseGraphqlService {
19573
19653
  const { data, total } = yield this.graphql.query({
19574
19654
  query,
19575
19655
  variables,
19576
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
19656
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
19577
19657
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
19578
19658
  });
19579
19659
  const entities = (!opts || opts.toEntity !== false) ?
@@ -19612,7 +19692,7 @@ class BaseEntityService extends BaseGraphqlService {
19612
19692
  variables: {
19613
19693
  filter: filter && filter.asPodObject()
19614
19694
  },
19615
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
19695
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
19616
19696
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
19617
19697
  });
19618
19698
  return res.total;
@@ -19645,7 +19725,7 @@ class BaseEntityService extends BaseGraphqlService {
19645
19725
  variables: {
19646
19726
  data: json
19647
19727
  },
19648
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19728
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19649
19729
  update: (proxy, { data }) => {
19650
19730
  const savedEntities = data && data.data;
19651
19731
  if (savedEntities) {
@@ -19701,7 +19781,7 @@ class BaseEntityService extends BaseGraphqlService {
19701
19781
  variables: {
19702
19782
  data: json
19703
19783
  },
19704
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19784
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
19705
19785
  update: (cache, { data }) => {
19706
19786
  // Update entity
19707
19787
  const savedEntity = data && data.data;
@@ -19749,7 +19829,7 @@ class BaseEntityService extends BaseGraphqlService {
19749
19829
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19750
19830
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19751
19831
  variables: { ids },
19752
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19832
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19753
19833
  update: (cache, res) => {
19754
19834
  // Remove from cache
19755
19835
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19790,7 +19870,7 @@ class BaseEntityService extends BaseGraphqlService {
19790
19870
  refetchQueries: this.getRefetchQueriesForMutation(opts),
19791
19871
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
19792
19872
  variables: { id },
19793
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19873
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
19794
19874
  update: (proxy, res) => {
19795
19875
  // Remove from cache
19796
19876
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -19823,7 +19903,7 @@ class BaseEntityService extends BaseGraphqlService {
19823
19903
  query: opts && opts.query || this.subscriptions.listenChanges,
19824
19904
  variables,
19825
19905
  error: {
19826
- code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
19906
+ code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
19827
19907
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
19828
19908
  }
19829
19909
  })
@@ -19998,7 +20078,7 @@ class EntitiesTableDataSource extends TableDataSource {
19998
20078
  if (this._debug)
19999
20079
  invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
20000
20080
  // Stop with an error
20001
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20081
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20002
20082
  }
20003
20083
  this._editingRowCount = 0;
20004
20084
  let data;
@@ -20281,7 +20361,7 @@ class AppTable {
20281
20361
  this._paginator = null;
20282
20362
  this.mobile = this.platform.is('mobile');
20283
20363
  this.translate = injector === null || injector === void 0 ? void 0 : injector.get(TranslateService);
20284
- this.formErrorAdapter = injector === null || injector === void 0 ? void 0 : injector.get(FormErrorAdapter);
20364
+ this.formErrorAdapter = injector === null || injector === void 0 ? void 0 : injector.get(FormErrorTranslator);
20285
20365
  this.alertCtrl = injector === null || injector === void 0 ? void 0 : injector.get(AlertController);
20286
20366
  this.toastController = injector === null || injector === void 0 ? void 0 : injector.get(ToastController);
20287
20367
  this._autocompleteConfigHolder = new MatAutocompleteConfigHolder({
@@ -20820,14 +20900,14 @@ class AppTable {
20820
20900
  return __awaiter(this, void 0, void 0, function* () {
20821
20901
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
20822
20902
  if (this.readOnly) {
20823
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20903
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20824
20904
  }
20825
20905
  this.resetError();
20826
20906
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
20827
20907
  this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
20828
20908
  const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
20829
20909
  if (!this.confirmEditCreate()) {
20830
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20910
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
20831
20911
  }
20832
20912
  // Mark as saving
20833
20913
  this.markAsSaving();
@@ -20943,7 +21023,7 @@ class AppTable {
20943
21023
  deleteRows(event, rows, opts) {
20944
21024
  return __awaiter(this, void 0, void 0, function* () {
20945
21025
  if (this.readOnly) {
20946
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
21026
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
20947
21027
  }
20948
21028
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
20949
21029
  return 0; // SKip
@@ -22230,7 +22310,7 @@ class AppEntityEditor extends AppTabEditor {
22230
22310
  // Default options
22231
22311
  enableListenChanges: (injector.get(ENVIRONMENT).listenRemoteChanges === true), pathIdAttribute: 'id', autoLoad: true, autoUpdateRoute: true, i18nPrefix: '' }, options);
22232
22312
  this.settings = injector.get(LocalSettingsService);
22233
- this.formErrorAdapter = injector.get(FormErrorAdapter);
22313
+ this.formErrorAdapter = injector.get(FormErrorTranslator);
22234
22314
  this.cd = injector.get(ChangeDetectorRef);
22235
22315
  this.dateFormat = injector.get(DateFormatPipe);
22236
22316
  this.toastController = injector.get(ToastController);
@@ -22354,7 +22434,7 @@ class AppEntityEditor extends AppTabEditor {
22354
22434
  try {
22355
22435
  const data = yield this.dataService.load(id, opts);
22356
22436
  if (!data)
22357
- throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
22437
+ throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
22358
22438
  this._usageMode = this.computeUsageMode(data);
22359
22439
  yield this.onEntityLoaded(data, opts);
22360
22440
  yield this.updateView(data, opts);
@@ -22398,7 +22478,7 @@ class AppEntityEditor extends AppTabEditor {
22398
22478
  const idChanged = isNotNil(data.id)
22399
22479
  && this.previousDataId !== undefined // Ignore if first loading (=undefined)
22400
22480
  && this.previousDataId !== data.id;
22401
- opts = Object.assign({ updateRoute: this._autoUpdateRoute && idChanged && !this.loading, openTabIndex: this._autoOpenNextTab && idChanged && this.computeNextTabIndex() }, opts);
22481
+ opts = Object.assign({ updateRoute: this._autoUpdateRoute && idChanged && !this.loading, openTabIndex: this._autoOpenNextTab && idChanged && isNil(this.previousDataId) && this.computeNextTabIndex() }, opts);
22402
22482
  this.data = data;
22403
22483
  this.previousDataId = data.id || null;
22404
22484
  const promiseOrVoid = this.setValue(data);
@@ -22657,9 +22737,13 @@ class AppEntityEditor extends AppTabEditor {
22657
22737
  this.error = userMessage;
22658
22738
  }
22659
22739
  /* -- protected methods -- */
22740
+ /**
22741
+ * Return undefined to keep same tab
22742
+ * @protected
22743
+ */
22660
22744
  computeNextTabIndex() {
22661
22745
  const nextTabIndex = this.selectedTabIndex + 1;
22662
- return nextTabIndex < this.tabCount ? nextTabIndex : this.selectedTabIndex;
22746
+ return nextTabIndex < this.tabCount ? nextTabIndex : undefined;
22663
22747
  }
22664
22748
  unload() {
22665
22749
  return __awaiter(this, void 0, void 0, function* () {
@@ -23254,7 +23338,7 @@ class UserEventService extends BaseGraphqlService {
23254
23338
  EntityUtils.copyIdAndUpdateDate(source, target);
23255
23339
  }
23256
23340
  }
23257
- 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" });
23341
+ UserEventService.ɵprov = ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(ɵɵinject(GraphqlService), ɵɵinject(AccountService), ɵɵinject(NetworkService), ɵɵinject(TranslateService), ɵɵinject(ToastController), ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
23258
23342
  UserEventService.decorators = [
23259
23343
  { type: Injectable, args: [{ providedIn: 'root' },] }
23260
23344
  ];
@@ -23639,7 +23723,7 @@ class PersonService extends BaseEntityService {
23639
23723
  return target;
23640
23724
  }
23641
23725
  }
23642
- 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" });
23726
+ PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
23643
23727
  PersonService.decorators = [
23644
23728
  { type: Injectable, args: [{ providedIn: 'root' },] }
23645
23729
  ];
@@ -23670,7 +23754,7 @@ class PersonValidatorService {
23670
23754
  return this.formBuilder.group(formConfig);
23671
23755
  }
23672
23756
  }
23673
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23757
+ PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
23674
23758
  PersonValidatorService.decorators = [
23675
23759
  { type: Injectable, args: [{ providedIn: 'root' },] }
23676
23760
  ];
@@ -23876,16 +23960,16 @@ AdminModule.decorators = [
23876
23960
  ];
23877
23961
  AdminModule.ctorParameters = () => [];
23878
23962
 
23879
- const ɵ0 = {
23963
+ const ɵ0$a = {
23880
23964
  profile: 'ADMIN'
23881
23965
  };
23882
- const routes = [
23966
+ const routes$1 = [
23883
23967
  {
23884
23968
  path: 'users',
23885
23969
  pathMatch: 'full',
23886
23970
  component: UsersPage,
23887
23971
  canActivate: [AuthGuardService],
23888
- data: ɵ0
23972
+ data: ɵ0$a
23889
23973
  }
23890
23974
  ];
23891
23975
  class AdminRoutingModule {
@@ -23895,13 +23979,13 @@ AdminRoutingModule.decorators = [
23895
23979
  imports: [
23896
23980
  SharedRoutingModule,
23897
23981
  AdminModule,
23898
- RouterModule.forChild(routes)
23982
+ RouterModule.forChild(routes$1)
23899
23983
  ],
23900
23984
  exports: [RouterModule]
23901
23985
  },] }
23902
23986
  ];
23903
23987
 
23904
- const ErrorCodes = {
23988
+ const ErrorCodes$2 = {
23905
23989
  LOAD_PERSONS_ERROR: 100,
23906
23990
  SAVE_PERSONS_ERROR: 101,
23907
23991
  DELETE_PERSONS_ERROR: 102,
@@ -23913,5 +23997,5 @@ const ErrorCodes = {
23913
23997
  * Generated bundle index. Do not edit.
23914
23998
  */
23915
23999
 
23916
- 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 };
24000
+ export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitIdle, waitWhilePending, ɵ0$5 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, RegisterForm as ɵg, AccountValidatorService as ɵh, RegisterModal as ɵi, UserSettingsValidatorService as ɵj, LocalSettingsValidatorService as ɵk };
23917
24001
  //# sourceMappingURL=sumaris-net.ngx-components.js.map