@sumaris-net/ngx-components 1.16.3 → 1.17.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,12 +1,9 @@
1
- import * as i0 from '@angular/core';
2
- import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
3
- import * as i1$3 from '@angular/common';
1
+ import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
4
2
  import { CommonModule, DOCUMENT, Location } from '@angular/common';
5
3
  import { CdkTableModule } from '@angular/cdk/table';
6
4
  import { A11yModule } from '@angular/cdk/a11y';
7
5
  import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
8
6
  import { ScrollingModule } from '@angular/cdk/scrolling';
9
- import * as i1$2 from '@angular/material/core';
10
7
  import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
11
8
  import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
12
9
  import { MatSortModule, MatSort } from '@angular/material/sort';
@@ -30,21 +27,16 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
30
27
  import { MatRadioModule } from '@angular/material/radio';
31
28
  import { MatBadgeModule } from '@angular/material/badge';
32
29
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
33
- import * as i2$1 from '@angular/material/dialog';
34
30
  import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
35
31
  import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
36
32
  import { __awaiter, __decorate } from 'tslib';
37
- import * as i1$6 from '@angular/forms';
38
33
  import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
39
34
  import { timer, merge, fromEvent, BehaviorSubject, Subscription, Subject, isObservable, from, of, noop as noop$9, Observable, defer, forkJoin, combineLatest, EMPTY } from 'rxjs';
40
35
  import { filter, first, map, takeUntil, switchMap, startWith, debounceTime, takeWhile, tap, distinctUntilChanged, mergeMap, catchError, throttleTime, skip } from 'rxjs/operators';
41
- import * as i1$1 from '@ngx-translate/core';
42
36
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
43
- import * as i1$4 from '@ionic/angular';
44
37
  import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, PopoverController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent, IonInfiniteScroll } from '@ionic/angular';
45
38
  import * as momentImported from 'moment';
46
39
  import { isMoment } from 'moment';
47
- import * as i1 from '@angular/material-moment-adapter';
48
40
  import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
49
41
  import * as momentTZImported from 'moment-timezone';
50
42
  import { Keyboard } from '@ionic-native/keyboard/ngx';
@@ -55,38 +47,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
55
47
  import { MatDividerModule } from '@angular/material/divider';
56
48
  import { MatTooltipModule } from '@angular/material/tooltip';
57
49
  import { MatChipsModule } from '@angular/material/chips';
58
- import * as i3$3 from '@angular/router';
59
50
  import { Router, ActivatedRoute, RouterModule, RouteReuseStrategy } from '@angular/router';
60
- import * as i1$5 from '@angular/platform-browser';
61
51
  import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
62
- import * as i2$2 from '@angular/common/http';
63
52
  import { HttpResponse, HttpClient, HttpHeaders, HttpEventType, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
64
53
  import { ColorPickerModule } from 'ngx-color-picker';
65
- import { NativeAudio } from '@ionic-native/native-audio/ngx';
66
- import { Vibration } from '@ionic-native/vibration/ngx';
54
+ import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
55
+ import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
67
56
  import { AudioManagement } from '@ionic-native/audio-management/ngx';
68
- import * as i2 from '@ionic-native/native-audio/ngx/index';
69
- import * as i3 from '@ionic-native/vibration/ngx/index';
70
- import * as i4 from '@ionic-native/audio-management/ngx/index';
57
+ import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
58
+ import { Vibration } from '@ionic-native/vibration/ngx/index';
59
+ import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
71
60
  import * as uuidv4Imported from 'uuid/v4';
72
61
  import { DragDropModule } from '@angular/cdk/drag-drop';
73
62
  import { MarkdownModule } from 'ngx-markdown';
74
63
  import { sign, box, hash, verify } from 'tweetnacl';
75
- import * as i3$1 from '@ionic/storage';
76
64
  import { Storage, IonicStorageModule } from '@ionic/storage';
77
65
  import 'zone.js/dist/zone-error';
78
- import { SplashScreen } from '@ionic-native/splash-screen/ngx';
79
- import { Connection, Network } from '@ionic-native/network/ngx';
80
- import { CacheService, CacheModule } from 'ionic-cache';
81
- import * as i6 from 'ionic-cache/dist/cache.service';
82
- import * as i9 from '@ionic-native/network/ngx/index';
83
- import * as i10 from '@ionic-native/splash-screen/ngx/index';
84
- import { StatusBar } from '@ionic-native/status-bar/ngx';
85
- import * as i2$4 from '@angular/cdk/platform';
66
+ import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
67
+ import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
68
+ import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
69
+ import { CacheService } from 'ionic-cache/dist/cache.service';
70
+ import { Network } from '@ionic-native/network/ngx/index';
71
+ import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
72
+ import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
86
73
  import { Platform as Platform$1 } from '@angular/cdk/platform';
87
- import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
74
+ import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
88
75
  import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
89
- import * as i2$3 from 'apollo-angular';
90
76
  import { Apollo } from 'apollo-angular';
91
77
  import { WebSocketLink } from '@apollo/client/link/ws';
92
78
  import { getMainDefinition } from '@apollo/client/utilities';
@@ -94,14 +80,13 @@ import { RetryLink } from '@apollo/client/link/retry';
94
80
  import QueueLink from 'apollo-link-queue';
95
81
  import SerializingLink from 'apollo-link-serialize';
96
82
  import loggerLink from 'apollo-link-logger';
97
- import * as i3$2 from 'apollo-angular/http';
98
83
  import { HttpLink } from 'apollo-angular/http';
99
84
  import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
100
- import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
101
- import * as i14 from '@ionic-native/status-bar/ngx/index';
102
- import * as i15 from '@ionic-native/keyboard/ngx/index';
103
- import * as i17 from '@ionic-native/in-app-browser/ngx/index';
104
- import * as i18 from '@ionic-native/downloader/ngx/index';
85
+ import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
86
+ import { StatusBar } from '@ionic-native/status-bar/ngx/index';
87
+ import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
88
+ import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
89
+ import { Downloader } from '@ionic-native/downloader/ngx/index';
105
90
  import { CdkTextareaAutosize } from '@angular/cdk/text-field';
106
91
  import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
107
92
  import { SelectionModel } from '@angular/cdk/collections';
@@ -994,14 +979,14 @@ class MatAutocompleteConfigHolder {
994
979
  return this.fields[fieldName] || this.add(fieldName);
995
980
  }
996
981
  }
997
- const noop$8 = (_) => { };
998
- const ɵ0$c = noop$8;
982
+ const noop = (_) => { };
983
+ const ɵ0 = noop;
999
984
  class MatAutocompleteField {
1000
985
  constructor(cd, formGroupDir) {
1001
986
  this.cd = cd;
1002
987
  this.formGroupDir = formGroupDir;
1003
- this._onChangeCallback = noop$8;
1004
- this._onTouchedCallback = noop$8;
988
+ this._onChangeCallback = noop;
989
+ this._onTouchedCallback = noop;
1005
990
  this.logPrefix = '[mat-autocomplete] ';
1006
991
  this.formControlName = null;
1007
992
  this.required = false;
@@ -1721,7 +1706,7 @@ class DateFormatPipe {
1721
1706
  return this.dateAdapter.format(date, displayFormat);
1722
1707
  }
1723
1708
  }
1724
- DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1709
+ DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1725
1710
  DateFormatPipe.decorators = [
1726
1711
  { type: Pipe, args: [{
1727
1712
  name: 'dateFormat'
@@ -1733,7 +1718,7 @@ DateFormatPipe.ctorParameters = () => [
1733
1718
  { type: TranslateService }
1734
1719
  ];
1735
1720
 
1736
- const moment$7 = momentImported;
1721
+ const moment = momentImported;
1737
1722
  class DateDiffDurationPipe {
1738
1723
  constructor(dateAdapter, translate) {
1739
1724
  this.dateAdapter = dateAdapter;
@@ -1749,17 +1734,17 @@ class DateDiffDurationPipe {
1749
1734
  return this.format(startDate, endDate);
1750
1735
  }
1751
1736
  format(startDate, endDate) {
1752
- const duration = moment$7.duration(endDate.diff(startDate));
1737
+ const duration = moment.duration(endDate.diff(startDate));
1753
1738
  if (duration.asMinutes() < 0)
1754
1739
  return '';
1755
- const timeDuration = moment$7(0)
1740
+ const timeDuration = moment(0)
1756
1741
  .hour(duration.hours())
1757
1742
  .minute(duration.minutes());
1758
1743
  const days = Math.floor(duration.asDays());
1759
1744
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
1760
1745
  }
1761
1746
  }
1762
- 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" });
1747
+ DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
1763
1748
  DateDiffDurationPipe.decorators = [
1764
1749
  { type: Pipe, args: [{
1765
1750
  name: 'dateDiffDuration'
@@ -1780,7 +1765,7 @@ class DateFromNowPipe {
1780
1765
  return date ? date.fromNow(args && args.withoutSuffix) : '';
1781
1766
  }
1782
1767
  }
1783
- DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1768
+ DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1784
1769
  DateFromNowPipe.decorators = [
1785
1770
  { type: Pipe, args: [{
1786
1771
  name: 'dateFromNow'
@@ -1849,7 +1834,7 @@ function formatToDD(value, opts) {
1849
1834
  value *= -1;
1850
1835
  }
1851
1836
  }
1852
- let degrees = roundFloat$1(value, opts.maxDecimals).toString();
1837
+ let degrees = roundFloat(value, opts.maxDecimals).toString();
1853
1838
  // Add sign
1854
1839
  let sign = negative ? '-' : '+';
1855
1840
  if (opts.placeholderChar) {
@@ -1900,7 +1885,7 @@ function formatToDDMMSS(value, opts) {
1900
1885
  }
1901
1886
  let degrees = Math.trunc(value);
1902
1887
  let minutes = Math.trunc((value - degrees) * 60);
1903
- let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1888
+ let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1904
1889
  while (seconds >= 60) {
1905
1890
  seconds -= 60;
1906
1891
  minutes += 1;
@@ -1968,7 +1953,7 @@ function formatToDDMM(value, opts) {
1968
1953
  }
1969
1954
  }
1970
1955
  let degrees = Math.trunc(value);
1971
- let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
1956
+ let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
1972
1957
  while (minutes >= 60) {
1973
1958
  minutes -= 60;
1974
1959
  degrees += 1;
@@ -2019,15 +2004,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
2019
2004
  return NaN;
2020
2005
  }
2021
2006
  if (pattern === 'DD')
2022
- return roundFloat$1(degrees, maxDecimals);
2007
+ return roundFloat(degrees, maxDecimals);
2023
2008
  const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
2024
2009
  const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
2025
2010
  const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
2026
2011
  const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
2027
2012
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
2028
- return roundFloat$1(degrees, maxDecimals);
2013
+ return roundFloat(degrees, maxDecimals);
2029
2014
  }
2030
- function roundFloat$1(input, maxDecimals) {
2015
+ function roundFloat(input, maxDecimals) {
2031
2016
  if (maxDecimals > 0) {
2032
2017
  const powDecimal = Math.pow(10, maxDecimals);
2033
2018
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -2047,7 +2032,7 @@ class LatLongFormatPipe {
2047
2032
  return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
2048
2033
  }
2049
2034
  }
2050
- LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2035
+ LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2051
2036
  LatLongFormatPipe.decorators = [
2052
2037
  { type: Pipe, args: [{
2053
2038
  name: 'latLongFormat'
@@ -2059,7 +2044,7 @@ class LatitudeFormatPipe {
2059
2044
  this.transform = formatLatitude;
2060
2045
  }
2061
2046
  }
2062
- LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2047
+ LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2063
2048
  LatitudeFormatPipe.decorators = [
2064
2049
  { type: Pipe, args: [{
2065
2050
  name: 'latitudeFormat'
@@ -2071,7 +2056,7 @@ class LongitudeFormatPipe {
2071
2056
  this.transform = formatLongitude;
2072
2057
  }
2073
2058
  }
2074
- LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2059
+ LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2075
2060
  LongitudeFormatPipe.decorators = [
2076
2061
  { type: Pipe, args: [{
2077
2062
  name: 'longitudeFormat'
@@ -2091,7 +2076,7 @@ class NumberFormatPipe {
2091
2076
  }
2092
2077
  }
2093
2078
  }
2094
- NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2079
+ NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2095
2080
  NumberFormatPipe.decorators = [
2096
2081
  { type: Pipe, args: [{
2097
2082
  name: 'numberFormat'
@@ -2131,7 +2116,7 @@ class HighlightPipe {
2131
2116
  }
2132
2117
  }
2133
2118
  }
2134
- HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2119
+ HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2135
2120
  HighlightPipe.decorators = [
2136
2121
  { type: Pipe, args: [{
2137
2122
  name: 'highlight'
@@ -2196,7 +2181,7 @@ FileSizePipe.decorators = [
2196
2181
  { type: Pipe, args: [{ name: 'fileSize' },] }
2197
2182
  ];
2198
2183
 
2199
- const moment$6 = momentImported;
2184
+ const moment$1 = momentImported;
2200
2185
  const tz = momentTZImported;
2201
2186
  const DATE_UNIX_TIMESTAMP = 'X';
2202
2187
  const DATE_UNIX_MS_TIMESTAMP = 'x';
@@ -2273,32 +2258,32 @@ function fromDateISOString(value) {
2273
2258
  if (!value || isMoment(value))
2274
2259
  return value;
2275
2260
  // Parse the input value, as a ISO date time
2276
- const date = moment$6(value, DATE_ISO_PATTERN);
2261
+ const date = moment$1(value, DATE_ISO_PATTERN);
2277
2262
  if (date.isValid())
2278
2263
  return date;
2279
2264
  // Not valid: trying to convert from unix timestamp
2280
2265
  if (typeof value === 'string') {
2281
2266
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2282
2267
  if (value.length === 10) {
2283
- return moment$6(value, DATE_UNIX_TIMESTAMP);
2268
+ return moment$1(value, DATE_UNIX_TIMESTAMP);
2284
2269
  }
2285
2270
  else if (value.length === 13) {
2286
- return moment$6(value, DATE_UNIX_MS_TIMESTAMP);
2271
+ return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2287
2272
  }
2288
2273
  }
2289
2274
  console.warn('Unable to parse date: ' + value);
2290
2275
  return undefined;
2291
2276
  }
2292
2277
  function fromUnixTimestamp(timeInSec) {
2293
- return moment$6(timeInSec, DATE_UNIX_TIMESTAMP);
2278
+ return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2294
2279
  }
2295
2280
  function fromUnixMsTimestamp(timeInMs) {
2296
- return moment$6(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2281
+ return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2297
2282
  }
2298
2283
  function toDuration(value, unit) {
2299
2284
  if (!value)
2300
2285
  return undefined;
2301
- const duration = moment$6.duration(value, unit);
2286
+ const duration = moment$1.duration(value, unit);
2302
2287
  // fix 990+ ms
2303
2288
  if (duration.milliseconds() >= 990) {
2304
2289
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2327,7 +2312,7 @@ class DurationPipe {
2327
2312
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
2328
2313
  }
2329
2314
  }
2330
- DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2315
+ DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
2331
2316
  DurationPipe.decorators = [
2332
2317
  { type: Pipe, args: [{
2333
2318
  name: 'duration'
@@ -2348,7 +2333,7 @@ class MathAbsPipe {
2348
2333
  }
2349
2334
  }
2350
2335
  }
2351
- MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2336
+ MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2352
2337
  MathAbsPipe.decorators = [
2353
2338
  { type: Pipe, args: [{
2354
2339
  name: 'mathAbs'
@@ -2360,7 +2345,7 @@ class EvenPipe {
2360
2345
  return val % 2 === 0;
2361
2346
  }
2362
2347
  }
2363
- EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2348
+ EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2364
2349
  EvenPipe.decorators = [
2365
2350
  { type: Pipe, args: [{
2366
2351
  name: 'even'
@@ -2372,7 +2357,7 @@ class OddPipe {
2372
2357
  return val % 2 !== 0;
2373
2358
  }
2374
2359
  }
2375
- OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2360
+ OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2376
2361
  OddPipe.decorators = [
2377
2362
  { type: Pipe, args: [{
2378
2363
  name: 'odd'
@@ -2480,7 +2465,7 @@ class MapGetPipe {
2480
2465
  return val[key];
2481
2466
  }
2482
2467
  }
2483
- MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2468
+ MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2484
2469
  MapGetPipe.decorators = [
2485
2470
  { type: Pipe, args: [{
2486
2471
  name: 'mapGet'
@@ -2494,7 +2479,7 @@ class MapKeysPipe {
2494
2479
  return Object.keys(map);
2495
2480
  }
2496
2481
  }
2497
- MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2482
+ MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2498
2483
  MapKeysPipe.decorators = [
2499
2484
  { type: Pipe, args: [{
2500
2485
  name: 'mapKeys'
@@ -2508,7 +2493,7 @@ class MapValuesPipe {
2508
2493
  return Object.values(map);
2509
2494
  }
2510
2495
  }
2511
- MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2496
+ MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2512
2497
  MapValuesPipe.decorators = [
2513
2498
  { type: Pipe, args: [{
2514
2499
  name: 'mapValues'
@@ -2521,7 +2506,7 @@ class IsNotNilOrBlankPipe {
2521
2506
  return isNotNilOrBlank(value);
2522
2507
  }
2523
2508
  }
2524
- IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2509
+ IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2525
2510
  IsNotNilOrBlankPipe.decorators = [
2526
2511
  { type: Pipe, args: [{
2527
2512
  name: 'isNotNilOrBlank'
@@ -2533,7 +2518,7 @@ class IsNilOrBlankPipe {
2533
2518
  return isNilOrBlank(value);
2534
2519
  }
2535
2520
  }
2536
- IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2521
+ IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2537
2522
  IsNilOrBlankPipe.decorators = [
2538
2523
  { type: Pipe, args: [{
2539
2524
  name: 'isNilOrBlank'
@@ -2545,7 +2530,7 @@ class ToStringPipe {
2545
2530
  return (value !== null && value !== undefined) ? value.toString() : '';
2546
2531
  }
2547
2532
  }
2548
- ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2533
+ ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2549
2534
  ToStringPipe.decorators = [
2550
2535
  { type: Pipe, args: [{
2551
2536
  name: 'toString'
@@ -2557,7 +2542,7 @@ class StrLengthPipe {
2557
2542
  return value && value.length || 0;
2558
2543
  }
2559
2544
  }
2560
- StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2545
+ StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2561
2546
  StrLengthPipe.decorators = [
2562
2547
  { type: Pipe, args: [{
2563
2548
  name: 'strLength'
@@ -2569,7 +2554,7 @@ class StrIncludesPipe {
2569
2554
  return (value === null || value === void 0 ? void 0 : value.includes(searchString, position)) || false;
2570
2555
  }
2571
2556
  }
2572
- StrIncludesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
2557
+ StrIncludesPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
2573
2558
  StrIncludesPipe.decorators = [
2574
2559
  { type: Pipe, args: [{
2575
2560
  name: 'strIncludes'
@@ -2646,7 +2631,7 @@ class TranslateContextService {
2646
2631
  return translations[keys[keys.length - 1]]; // Return the last keys translation
2647
2632
  }
2648
2633
  }
2649
- TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2634
+ TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2650
2635
  TranslateContextService.decorators = [
2651
2636
  { type: Injectable, args: [{ providedIn: 'root' },] }
2652
2637
  ];
@@ -2696,7 +2681,7 @@ class PropertyGetPipe {
2696
2681
  args && args.defaultValue);
2697
2682
  }
2698
2683
  }
2699
- PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2684
+ PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2700
2685
  PropertyGetPipe.decorators = [
2701
2686
  { type: Pipe, args: [{
2702
2687
  name: 'propertyGet'
@@ -2721,7 +2706,7 @@ NgInitDirective.propDecorators = {
2721
2706
  ngInit: [{ type: Output }]
2722
2707
  };
2723
2708
 
2724
- const moment$5 = momentImported;
2709
+ const moment$2 = momentImported;
2725
2710
  // @dynamic
2726
2711
  class SharedValidators {
2727
2712
  static getDoubleRegexp(maxDecimals) {
@@ -2802,7 +2787,7 @@ class SharedValidators {
2802
2787
  }
2803
2788
  static validDate(control) {
2804
2789
  const value = control.value;
2805
- const date = !value || moment$5.isMoment(value) ? value : moment$5(control.value, DATE_ISO_PATTERN);
2790
+ const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
2806
2791
  if (date && (!date.isValid() || date.year() < 1970)) {
2807
2792
  return { validDate: true };
2808
2793
  }
@@ -3914,7 +3899,7 @@ class FormErrorTranslator {
3914
3899
  return errorKey;
3915
3900
  }
3916
3901
  }
3917
- FormErrorTranslator.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
3902
+ FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
3918
3903
  FormErrorTranslator.decorators = [
3919
3904
  { type: Injectable, args: [{ providedIn: 'root' },] }
3920
3905
  ];
@@ -3994,7 +3979,7 @@ class FormGetPipe {
3994
3979
  return form.get(path);
3995
3980
  }
3996
3981
  }
3997
- FormGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetPipe_Factory() { return new FormGetPipe(); }, token: FormGetPipe, providedIn: "root" });
3982
+ FormGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetPipe_Factory() { return new FormGetPipe(); }, token: FormGetPipe, providedIn: "root" });
3998
3983
  FormGetPipe.decorators = [
3999
3984
  { type: Pipe, args: [{
4000
3985
  name: 'formGet'
@@ -4006,7 +3991,7 @@ class FormGetControlPipe {
4006
3991
  return form.get(path);
4007
3992
  }
4008
3993
  }
4009
- FormGetControlPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetControlPipe_Factory() { return new FormGetControlPipe(); }, token: FormGetControlPipe, providedIn: "root" });
3994
+ FormGetControlPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetControlPipe_Factory() { return new FormGetControlPipe(); }, token: FormGetControlPipe, providedIn: "root" });
4010
3995
  FormGetControlPipe.decorators = [
4011
3996
  { type: Pipe, args: [{
4012
3997
  name: 'formGetControl'
@@ -4018,7 +4003,7 @@ class FormGetArrayPipe {
4018
4003
  return form.get(path);
4019
4004
  }
4020
4005
  }
4021
- FormGetArrayPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetArrayPipe_Factory() { return new FormGetArrayPipe(); }, token: FormGetArrayPipe, providedIn: "root" });
4006
+ FormGetArrayPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetArrayPipe_Factory() { return new FormGetArrayPipe(); }, token: FormGetArrayPipe, providedIn: "root" });
4022
4007
  FormGetArrayPipe.decorators = [
4023
4008
  { type: Pipe, args: [{
4024
4009
  name: 'formGetArray'
@@ -4030,7 +4015,7 @@ class FormGetGroupPipe {
4030
4015
  return form.get(path);
4031
4016
  }
4032
4017
  }
4033
- FormGetGroupPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
4018
+ FormGetGroupPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
4034
4019
  FormGetGroupPipe.decorators = [
4035
4020
  { type: Pipe, args: [{
4036
4021
  name: 'formGetGroup'
@@ -4150,7 +4135,7 @@ const isIpad = (win) => {
4150
4135
  }
4151
4136
  return false;
4152
4137
  };
4153
- const ɵ0$b = isIpad;
4138
+ const ɵ0$1 = isIpad;
4154
4139
  const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
4155
4140
  const isAndroid = (win) => testUserAgent(win, /android|sink/i);
4156
4141
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
@@ -4385,9 +4370,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
4385
4370
  const hour = parseInt(durationParts[0] || '0');
4386
4371
  const minute = parseInt(durationParts[1] || '0');
4387
4372
  const value = hour + (minute + 0.5) / 60;
4388
- return roundFloat(value, maxDecimals);
4373
+ return roundFloat$1(value, maxDecimals);
4389
4374
  }
4390
- function roundFloat(input, maxDecimals) {
4375
+ function roundFloat$1(input, maxDecimals) {
4391
4376
  if (maxDecimals > 0) {
4392
4377
  const powDecimal = Math.pow(10, maxDecimals);
4393
4378
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -4411,9 +4396,9 @@ const MASKS = {
4411
4396
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
4412
4397
  }
4413
4398
  };
4414
- const noop$7 = () => {
4399
+ const noop$1 = () => {
4415
4400
  };
4416
- const ɵ0$a = noop$7;
4401
+ const ɵ0$2 = noop$1;
4417
4402
  class MatLatLongField {
4418
4403
  constructor(platform, translate, formBuilder, cd, formGroupDir) {
4419
4404
  this.platform = platform;
@@ -4421,8 +4406,8 @@ class MatLatLongField {
4421
4406
  this.formBuilder = formBuilder;
4422
4407
  this.cd = cd;
4423
4408
  this.formGroupDir = formGroupDir;
4424
- this._onChangeCallback = noop$7;
4425
- this._onTouchedCallback = noop$7;
4409
+ this._onChangeCallback = noop$1;
4410
+ this._onTouchedCallback = noop$1;
4426
4411
  this._subscription = new Subscription();
4427
4412
  this.disabling = false;
4428
4413
  this.writing = false;
@@ -4759,14 +4744,14 @@ SharedMatLatLongModule.decorators = [
4759
4744
  },] }
4760
4745
  ];
4761
4746
 
4762
- const DEFAULT_VALUE_ACCESSOR$5 = {
4747
+ const DEFAULT_VALUE_ACCESSOR = {
4763
4748
  provide: NG_VALUE_ACCESSOR,
4764
4749
  useExisting: forwardRef(() => MatDate),
4765
4750
  multi: true
4766
4751
  };
4767
- const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4768
- const noop$6 = () => { };
4769
- const ɵ0$9 = noop$6;
4752
+ const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4753
+ const noop$2 = () => { };
4754
+ const ɵ0$3 = noop$2;
4770
4755
  class MatDate {
4771
4756
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4772
4757
  this.platform = platform;
@@ -4776,13 +4761,13 @@ class MatDate {
4776
4761
  this.cd = cd;
4777
4762
  this.keyboard = keyboard;
4778
4763
  this.formGroupDir = formGroupDir;
4779
- this._onChangeCallback = noop$6;
4780
- this._onTouchedCallback = noop$6;
4764
+ this._onChangeCallback = noop$2;
4765
+ this._onTouchedCallback = noop$2;
4781
4766
  this._subscription = new Subscription();
4782
4767
  this._writing = true;
4783
4768
  this._disabling = false;
4784
4769
  this._readonly = false;
4785
- this.dayMask = DAY_MASK$2;
4770
+ this.dayMask = DAY_MASK;
4786
4771
  this.floatLabel = 'auto';
4787
4772
  this.compact = false;
4788
4773
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -5069,7 +5054,7 @@ MatDate.decorators = [
5069
5054
  selector: 'mat-date-field',
5070
5055
  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 -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\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]=\"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 input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\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)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <!-- errors -->\n <mat-error *ngIf=\"formControl.touched && formControl.errors|mapKeys|arrayFirst; let errorKey\">\n <ng-container [ngSwitch]=\"errorKey\">\n <span *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</span>\n <span *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</span>\n <span *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</span>\n <span *ngSwitchCase=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</span>\n <span *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</span>\n <span *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</span>\n <span *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</span>\n <span *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</span>\n </ng-container>\n </mat-error>\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 </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"\n ></mat-datepicker>\n\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",
5071
5056
  providers: [
5072
- DEFAULT_VALUE_ACCESSOR$5,
5057
+ DEFAULT_VALUE_ACCESSOR,
5073
5058
  ],
5074
5059
  changeDetection: ChangeDetectionStrategy.OnPush,
5075
5060
  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%}"]
@@ -5104,16 +5089,16 @@ MatDate.propDecorators = {
5104
5089
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
5105
5090
  };
5106
5091
 
5107
- const DEFAULT_VALUE_ACCESSOR$4 = {
5092
+ const DEFAULT_VALUE_ACCESSOR$1 = {
5108
5093
  provide: NG_VALUE_ACCESSOR,
5109
5094
  useExisting: forwardRef(() => MatDateTime),
5110
5095
  multi: true
5111
5096
  };
5112
5097
  const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
5113
5098
  const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
5114
- const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
5115
- const noop$5 = () => { };
5116
- const ɵ0$8 = noop$5;
5099
+ const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
5100
+ const noop$3 = () => { };
5101
+ const ɵ0$4 = noop$3;
5117
5102
  class MatDateTime {
5118
5103
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5119
5104
  this.platform = platform;
@@ -5123,14 +5108,14 @@ class MatDateTime {
5123
5108
  this.cd = cd;
5124
5109
  this.keyboard = keyboard;
5125
5110
  this.formGroupDir = formGroupDir;
5126
- this._onChangeCallback = noop$5;
5127
- this._onTouchedCallback = noop$5;
5111
+ this._onChangeCallback = noop$3;
5112
+ this._onTouchedCallback = noop$3;
5128
5113
  this._subscription = new Subscription();
5129
5114
  this._writing = true;
5130
5115
  this._disabling = false;
5131
5116
  this._readonly = false;
5132
5117
  this.dayMask = DAY_MASK$1;
5133
- this.hourMask = HOUR_MASK$1;
5118
+ this.hourMask = HOUR_MASK;
5134
5119
  this.floatLabel = 'auto';
5135
5120
  this.compact = false;
5136
5121
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -5443,7 +5428,7 @@ MatDateTime.decorators = [
5443
5428
  selector: 'mat-date-time-field',
5444
5429
  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]=\"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 input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\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)=\"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=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</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 && (hourControl.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]=\"hourControl\"\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]=\"hourControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"hourControl\"\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",
5445
5430
  providers: [
5446
- DEFAULT_VALUE_ACCESSOR$4,
5431
+ DEFAULT_VALUE_ACCESSOR$1,
5447
5432
  ],
5448
5433
  changeDetection: ChangeDetectionStrategy.OnPush,
5449
5434
  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%}"]
@@ -5478,15 +5463,15 @@ MatDateTime.propDecorators = {
5478
5463
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
5479
5464
  };
5480
5465
 
5481
- const DEFAULT_VALUE_ACCESSOR$3 = {
5466
+ const DEFAULT_VALUE_ACCESSOR$2 = {
5482
5467
  provide: NG_VALUE_ACCESSOR,
5483
5468
  useExisting: forwardRef(() => MatDateShort),
5484
5469
  multi: true
5485
5470
  };
5486
- const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
5471
+ const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
5487
5472
  const noop$4 = () => {
5488
5473
  };
5489
- const ɵ0$7 = noop$4;
5474
+ const ɵ0$5 = noop$4;
5490
5475
  class MatDateShort {
5491
5476
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5492
5477
  this.dateAdapter = dateAdapter;
@@ -5499,7 +5484,7 @@ class MatDateShort {
5499
5484
  this._onTouchedCallback = noop$4;
5500
5485
  this.writing = true;
5501
5486
  this.disabling = false;
5502
- this.dayMask = DAY_MASK;
5487
+ this.dayMask = DAY_MASK$2;
5503
5488
  this.disabled = false;
5504
5489
  this.floatLabel = 'auto';
5505
5490
  this.readonly = false;
@@ -5744,7 +5729,7 @@ MatDateShort.decorators = [
5744
5729
  selector: 'mat-date-short-field',
5745
5730
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_YEAR_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker1)\"\n (keyup.escape)=\"preventEvent($event)\"\n (click)=\"matInput.select()\"\n [required]=\"required\"\n [tabindex]=\"tabindex\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker1)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker1\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker1)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors.msg}}</mat-error>\n <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n\n <mat-datepicker #datePicker1\n startView=\"multi-year\"\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n (yearSelected)=\"closeDatePicker($event, datePicker1)\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n",
5746
5731
  providers: [
5747
- DEFAULT_VALUE_ACCESSOR$3,
5732
+ DEFAULT_VALUE_ACCESSOR$2,
5748
5733
  ],
5749
5734
  changeDetection: ChangeDetectionStrategy.OnPush,
5750
5735
  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%}"]
@@ -5812,16 +5797,16 @@ SharedMatDateTimeModule.decorators = [
5812
5797
  },] }
5813
5798
  ];
5814
5799
 
5815
- const DEFAULT_VALUE_ACCESSOR$2 = {
5800
+ const DEFAULT_VALUE_ACCESSOR$3 = {
5816
5801
  provide: NG_VALUE_ACCESSOR,
5817
5802
  useExisting: forwardRef(() => MatDuration),
5818
5803
  multi: true
5819
5804
  };
5820
5805
  const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
5821
- const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5822
- const noop$3 = () => {
5806
+ const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5807
+ const noop$5 = () => {
5823
5808
  };
5824
- const ɵ0$6 = noop$3;
5809
+ const ɵ0$6 = noop$5;
5825
5810
  class MatDuration {
5826
5811
  constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
5827
5812
  this.dateAdapter = dateAdapter;
@@ -5830,11 +5815,11 @@ class MatDuration {
5830
5815
  this.cd = cd;
5831
5816
  this.formGroupDir = formGroupDir;
5832
5817
  this._subscription = new Subscription();
5833
- this._onChangeCallback = noop$3;
5834
- this._onTouchedCallback = noop$3;
5818
+ this._onChangeCallback = noop$5;
5819
+ this._onTouchedCallback = noop$5;
5835
5820
  this.writing = true;
5836
5821
  this.disabling = false;
5837
- this.hourMask = HOUR_MASK;
5822
+ this.hourMask = HOUR_MASK$1;
5838
5823
  this.disabled = false;
5839
5824
  this.floatLabel = 'auto';
5840
5825
  this.readonly = false;
@@ -6014,7 +5999,7 @@ MatDuration.decorators = [
6014
5999
  selector: 'mat-duration-field',
6015
6000
  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",
6016
6001
  providers: [
6017
- DEFAULT_VALUE_ACCESSOR$2,
6002
+ DEFAULT_VALUE_ACCESSOR$3,
6018
6003
  ],
6019
6004
  changeDetection: ChangeDetectionStrategy.OnPush,
6020
6005
  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%}"]
@@ -6071,22 +6056,22 @@ SharedMatDurationModule.decorators = [
6071
6056
  },] }
6072
6057
  ];
6073
6058
 
6074
- const DEFAULT_VALUE_ACCESSOR$1 = {
6059
+ const DEFAULT_VALUE_ACCESSOR$4 = {
6075
6060
  provide: NG_VALUE_ACCESSOR,
6076
6061
  useExisting: forwardRef(() => MatBooleanField),
6077
6062
  multi: true
6078
6063
  };
6079
- const noop$2 = () => {
6064
+ const noop$6 = () => {
6080
6065
  };
6081
- const ɵ0$5 = noop$2;
6066
+ const ɵ0$7 = noop$6;
6082
6067
  class MatBooleanField {
6083
6068
  constructor(translate, formBuilder, cd, formGroupDir) {
6084
6069
  this.translate = translate;
6085
6070
  this.formBuilder = formBuilder;
6086
6071
  this.cd = cd;
6087
6072
  this.formGroupDir = formGroupDir;
6088
- this._onChangeCallback = noop$2;
6089
- this._onTouchedCallback = noop$2;
6073
+ this._onChangeCallback = noop$6;
6074
+ this._onTouchedCallback = noop$6;
6090
6075
  this._writing = false;
6091
6076
  this.showRadio = false;
6092
6077
  this.disabled = false;
@@ -6249,7 +6234,7 @@ MatBooleanField.decorators = [
6249
6234
  selector: 'mat-boolean-field',
6250
6235
  template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button>&nbsp;\n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label>&nbsp;</ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
6251
6236
  providers: [
6252
- DEFAULT_VALUE_ACCESSOR$1
6237
+ DEFAULT_VALUE_ACCESSOR$4
6253
6238
  ],
6254
6239
  changeDetection: ChangeDetectionStrategy.OnPush,
6255
6240
  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}"]
@@ -6495,7 +6480,7 @@ class MatNumpadDomService {
6495
6480
  this.appRef.detachView(this.componentRef.hostView);
6496
6481
  }
6497
6482
  }
6498
- 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" });
6483
+ MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
6499
6484
  MatNumpadDomService.decorators = [
6500
6485
  { type: Injectable, args: [{
6501
6486
  providedIn: 'root'
@@ -6859,7 +6844,7 @@ SharedMatNumpadModule.decorators = [
6859
6844
  },] }
6860
6845
  ];
6861
6846
 
6862
- const DEFAULT_VALUE_ACCESSOR = {
6847
+ const DEFAULT_VALUE_ACCESSOR$5 = {
6863
6848
  provide: NG_VALUE_ACCESSOR,
6864
6849
  useExisting: forwardRef(() => MatSwipeField),
6865
6850
  multi: true
@@ -7122,7 +7107,7 @@ MatSwipeField.decorators = [
7122
7107
  { type: Component, args: [{
7123
7108
  selector: 'mat-swipe-field',
7124
7109
  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",
7125
- providers: [DEFAULT_VALUE_ACCESSOR],
7110
+ providers: [DEFAULT_VALUE_ACCESSOR$5],
7126
7111
  changeDetection: ChangeDetectionStrategy.OnPush,
7127
7112
  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}"]
7128
7113
  },] }
@@ -7180,14 +7165,14 @@ SharedMatSwipeModule.decorators = [
7180
7165
  },] }
7181
7166
  ];
7182
7167
 
7183
- const noop$1 = () => { };
7184
- const ɵ0$4 = noop$1;
7168
+ const noop$7 = () => { };
7169
+ const ɵ0$8 = noop$7;
7185
7170
  class MatChipsField {
7186
7171
  constructor(cd, formGroupDir) {
7187
7172
  this.cd = cd;
7188
7173
  this.formGroupDir = formGroupDir;
7189
- this._onChangeCallback = noop$1;
7190
- this._onTouchedCallback = noop$1;
7174
+ this._onChangeCallback = noop$7;
7175
+ this._onTouchedCallback = noop$7;
7191
7176
  this.logPrefix = '[mat-chips] ';
7192
7177
  this.formControlName = null;
7193
7178
  this.required = false;
@@ -8056,7 +8041,7 @@ class ProgressBarService {
8056
8041
  }
8057
8042
  }
8058
8043
  }
8059
- ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
8044
+ ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
8060
8045
  ProgressBarService.decorators = [
8061
8046
  { type: Injectable, args: [{ providedIn: 'root' },] }
8062
8047
  ];
@@ -8100,7 +8085,7 @@ class AppGestureConfig extends HammerGestureConfig {
8100
8085
  return mc;
8101
8086
  }
8102
8087
  }
8103
- AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
8088
+ AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
8104
8089
  AppGestureConfig.decorators = [
8105
8090
  { type: Injectable, args: [{ providedIn: 'root' },] }
8106
8091
  ];
@@ -8325,7 +8310,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
8325
8310
  this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
8326
8311
  }
8327
8312
  }
8328
- MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8313
+ MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8329
8314
  MatPaginatorI18n.decorators = [
8330
8315
  { type: Injectable, args: [{ providedIn: 'root' },] }
8331
8316
  ];
@@ -8415,17 +8400,17 @@ function getColorContrast(color, bw) {
8415
8400
  return rgbArrayToHex(rgb.map(v => 255 - v));
8416
8401
  }
8417
8402
 
8418
- const noop = () => {
8403
+ const noop$8 = () => {
8419
8404
  };
8420
- const ɵ0$3 = noop;
8405
+ const ɵ0$9 = noop$8;
8421
8406
  class AppFormField {
8422
8407
  constructor(translate, cd, injector, formGroupDir) {
8423
8408
  this.translate = translate;
8424
8409
  this.cd = cd;
8425
8410
  this.injector = injector;
8426
8411
  this.formGroupDir = formGroupDir;
8427
- this._onChangeCallback = noop;
8428
- this._onTouchedCallback = noop;
8412
+ this._onChangeCallback = noop$8;
8413
+ this._onTouchedCallback = noop$8;
8429
8414
  this.readonly = false;
8430
8415
  this.compact = false;
8431
8416
  this.floatLabel = 'auto';
@@ -8861,14 +8846,14 @@ class AudioProvider extends StartableService {
8861
8846
  });
8862
8847
  }
8863
8848
  }
8864
- 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" });
8849
+ 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" });
8865
8850
  AudioProvider.decorators = [
8866
8851
  { type: Injectable, args: [{ providedIn: 'root' },] }
8867
8852
  ];
8868
8853
  AudioProvider.ctorParameters = () => [
8869
8854
  { type: Platform },
8870
- { type: NativeAudio, decorators: [{ type: Optional }] },
8871
- { type: Vibration, decorators: [{ type: Optional }] },
8855
+ { type: NativeAudio$1, decorators: [{ type: Optional }] },
8856
+ { type: Vibration$1, decorators: [{ type: Optional }] },
8872
8857
  { type: AudioManagement, decorators: [{ type: Optional }] }
8873
8858
  ];
8874
8859
 
@@ -8950,7 +8935,7 @@ class Hotkeys {
8950
8935
  });
8951
8936
  }
8952
8937
  }
8953
- 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" });
8938
+ Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
8954
8939
  Hotkeys.decorators = [
8955
8940
  { type: Injectable, args: [{
8956
8941
  providedIn: 'root'
@@ -9124,7 +9109,7 @@ class Base64ImageReader {
9124
9109
  }
9125
9110
  }
9126
9111
 
9127
- const uuidv4$1 = uuidv4Imported;
9112
+ const uuidv4 = uuidv4Imported;
9128
9113
  class FileService {
9129
9114
  constructor(platform,
9130
9115
  //private transfer: FileTransfer,
@@ -9161,7 +9146,7 @@ class FileService {
9161
9146
  const lastSlashIndex = source.lastIndexOf('/');
9162
9147
  if (lastSlashIndex === -1)
9163
9148
  throw new Error('Invalid URL: ' + source);
9164
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
9149
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
9165
9150
  // Download into the file system
9166
9151
  if (responseType === 'file' && this.canUseFileSystem) {
9167
9152
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -9217,7 +9202,7 @@ class FileService {
9217
9202
  this._started = true;
9218
9203
  }
9219
9204
  }
9220
- 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" });
9205
+ FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
9221
9206
  FileService.decorators = [
9222
9207
  { type: Injectable, args: [{
9223
9208
  providedIn: 'root',
@@ -9383,7 +9368,7 @@ class Base58 {
9383
9368
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
9384
9369
 
9385
9370
  const scrypt = require('scrypt-async');
9386
- const sha256$1 = require('hash.js/lib/hash/sha/256');
9371
+ const sha256 = require('hash.js/lib/hash/sha/256');
9387
9372
  const sha512 = require('hash.js/lib/hash/sha/512');
9388
9373
  const nacl = {
9389
9374
  sign,
@@ -9487,7 +9472,7 @@ class CryptoService {
9487
9472
  * Hash (using SHA256) a message
9488
9473
  */
9489
9474
  sha256(message) {
9490
- return sha256$1().update(message).digest('hex');
9475
+ return sha256().update(message).digest('hex');
9491
9476
  }
9492
9477
  /**
9493
9478
  * Hash (using SHA512) a message
@@ -9500,7 +9485,7 @@ class CryptoService {
9500
9485
  return nacl.util.encodeBase64(m);
9501
9486
  }
9502
9487
  }
9503
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9488
+ CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9504
9489
  CryptoService.decorators = [
9505
9490
  { type: Injectable, args: [{ providedIn: 'root' },] }
9506
9491
  ];
@@ -9740,9 +9725,6 @@ class EntityUtils {
9740
9725
  static isLocalId(id) {
9741
9726
  return isNotNil(id) && +id < 0;
9742
9727
  }
9743
- static isRemoteId(id) {
9744
- return isNotNil(id) && +id >= 0;
9745
- }
9746
9728
  }
9747
9729
 
9748
9730
  // This file can be replaced during build by using the `fileReplacements` array.
@@ -10363,7 +10345,7 @@ SelectPeerModal.propDecorators = {
10363
10345
  onRefresh: [{ type: Input }]
10364
10346
  };
10365
10347
 
10366
- const moment$4 = momentImported;
10348
+ const moment$3 = momentImported;
10367
10349
  const SETTINGS_STORAGE_KEY = 'settings';
10368
10350
  const SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
10369
10351
  // fixme: this constant points to static environment
@@ -10606,11 +10588,11 @@ class LocalSettingsService extends StartableService {
10606
10588
  if (!feature) {
10607
10589
  feature = {
10608
10590
  name: featureName.toLowerCase(),
10609
- lastSyncDate: moment$4().toISOString()
10591
+ lastSyncDate: moment$3().toISOString()
10610
10592
  };
10611
10593
  }
10612
10594
  else {
10613
- feature.lastSyncDate = moment$4().toISOString();
10595
+ feature.lastSyncDate = moment$3().toISOString();
10614
10596
  }
10615
10597
  this.saveOfflineFeature(feature);
10616
10598
  }
@@ -10771,7 +10753,7 @@ class LocalSettingsService extends StartableService {
10771
10753
  if (!page || !page.title || !page.path)
10772
10754
  throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
10773
10755
  // Set time
10774
- page.time = page.time || moment$4();
10756
+ page.time = page.time || moment$3();
10775
10757
  // Clean the title (remove <small> tags)
10776
10758
  if (!opts || opts.removeTitleSmallTag !== false) {
10777
10759
  const tagIndex = page.title.indexOf('</small>');
@@ -10787,7 +10769,7 @@ class LocalSettingsService extends StartableService {
10787
10769
  return page;
10788
10770
  }
10789
10771
  }
10790
- 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" });
10772
+ 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" });
10791
10773
  LocalSettingsService.decorators = [
10792
10774
  { type: Injectable, args: [{
10793
10775
  providedIn: 'root',
@@ -11504,7 +11486,7 @@ class NetworkService extends StartableService {
11504
11486
  });
11505
11487
  }
11506
11488
  }
11507
- 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" });
11489
+ 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" });
11508
11490
  NetworkService.decorators = [
11509
11491
  { type: Injectable, args: [{ providedIn: 'root' },] }
11510
11492
  ];
@@ -11515,16 +11497,16 @@ NetworkService.ctorParameters = () => [
11515
11497
  { type: CryptoService },
11516
11498
  { type: Storage },
11517
11499
  { type: LocalSettingsService },
11518
- { type: CacheService },
11500
+ { type: CacheService$1 },
11519
11501
  { type: HttpClient },
11520
11502
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
11521
- { type: Network, decorators: [{ type: Optional }] },
11522
- { type: SplashScreen, decorators: [{ type: Optional }] },
11503
+ { type: Network$1, decorators: [{ type: Optional }] },
11504
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
11523
11505
  { type: TranslateService, decorators: [{ type: Optional }] },
11524
11506
  { type: ToastController, decorators: [{ type: Optional }] }
11525
11507
  ];
11526
11508
 
11527
- const ErrorCodes$2 = {
11509
+ const ErrorCodes = {
11528
11510
  UNKNOWN_ERROR: 0,
11529
11511
  LOAD_ACCOUNT_ERROR: 1,
11530
11512
  BAD_PASSWORD: 2,
@@ -11876,7 +11858,7 @@ class EntityStore {
11876
11858
  }
11877
11859
  catch (err) {
11878
11860
  console.error(err);
11879
- throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11861
+ throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11880
11862
  }
11881
11863
  }
11882
11864
  // Emit update event
@@ -12450,7 +12432,7 @@ class EntitiesStorage extends StartableService {
12450
12432
  }
12451
12433
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
12452
12434
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
12453
- 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" });
12435
+ 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" });
12454
12436
  EntitiesStorage.decorators = [
12455
12437
  { type: Injectable, args: [{ providedIn: 'root' },] }
12456
12438
  ];
@@ -12587,10 +12569,10 @@ function referentialToString(obj, properties) {
12587
12569
  function referentialsToString(values, properties, separator) {
12588
12570
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
12589
12571
  }
12590
- const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12572
+ const ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12591
12573
  const StatusList = Object.freeze([
12592
12574
  {
12593
- id: ɵ0$2,
12575
+ id: ɵ0$a,
12594
12576
  icon: 'checkmark',
12595
12577
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
12596
12578
  },
@@ -12865,7 +12847,7 @@ function accountToString(data) {
12865
12847
  (data.lastName || '')) || '';
12866
12848
  }
12867
12849
 
12868
- const uuidv4 = uuidv4Imported;
12850
+ const uuidv4$1 = uuidv4Imported;
12869
12851
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
12870
12852
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
12871
12853
  /**
@@ -12909,7 +12891,7 @@ function createTrackerLink(opts) {
12909
12891
  // Skip if not tracked
12910
12892
  if (!context || !context.tracked)
12911
12893
  return forward(operation);
12912
- const id = context.serializationKey || uuidv4();
12894
+ const id = context.serializationKey || uuidv4$1();
12913
12895
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
12914
12896
  // Clean context, before calling JSON.stringify (remove unused attributes)
12915
12897
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -13572,7 +13554,7 @@ class GraphqlService extends StartableService {
13572
13554
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
13573
13555
  || this.toAppError(err.networkError)
13574
13556
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
13575
- || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
13557
+ || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
13576
13558
  // If graphQL: try to convert the first error found
13577
13559
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
13578
13560
  || this.toAppError(err)
@@ -13580,7 +13562,7 @@ class GraphqlService extends StartableService {
13580
13562
  || (err.graphQLErrors && err.graphQLErrors[0])
13581
13563
  || err;
13582
13564
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
13583
- if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13565
+ if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13584
13566
  console.error('[graphql] original error: ' + err.networkError.message);
13585
13567
  this.onNetworkError.next(error);
13586
13568
  }
@@ -13591,7 +13573,7 @@ class GraphqlService extends StartableService {
13591
13573
  data: null,
13592
13574
  errors: [error],
13593
13575
  loading: false,
13594
- networkStatus: null
13576
+ networkStatus: NetworkStatus.error
13595
13577
  };
13596
13578
  }
13597
13579
  createAppErrorByCode(errorCode) {
@@ -13616,7 +13598,7 @@ class GraphqlService extends StartableService {
13616
13598
  return 'ERROR.UNAUTHORIZED';
13617
13599
  case ServerErrorCodes.FORBIDDEN:
13618
13600
  return 'ERROR.FORBIDDEN';
13619
- case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
13601
+ case ErrorCodes.UNKNOWN_NETWORK_ERROR:
13620
13602
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
13621
13603
  case ServerErrorCodes.BAD_UPDATE_DATE:
13622
13604
  return 'ERROR.BAD_UPDATE_DATE';
@@ -13647,7 +13629,7 @@ class GraphqlService extends StartableService {
13647
13629
  return undefined;
13648
13630
  }
13649
13631
  }
13650
- 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" });
13632
+ 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" });
13651
13633
  GraphqlService.decorators = [
13652
13634
  { type: Injectable, args: [{
13653
13635
  providedIn: 'root'
@@ -13664,7 +13646,7 @@ GraphqlService.ctorParameters = () => [
13664
13646
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
13665
13647
  ];
13666
13648
 
13667
- const sha256 = require('hash.js/lib/hash/sha/256');
13649
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
13668
13650
  class BaseGraphqlServiceOptions {
13669
13651
  }
13670
13652
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -13815,8 +13797,8 @@ class BaseGraphqlService extends StartableService {
13815
13797
  }
13816
13798
  /* -- protected methods -- */
13817
13799
  computeMutableWatchQueryId(opts) {
13818
- const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13819
- const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13800
+ const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13801
+ const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13820
13802
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
13821
13803
  }
13822
13804
  findMutableWatchQueries(opts) {
@@ -13886,7 +13868,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
13886
13868
  /* ------------------------------------
13887
13869
  * GraphQL queries
13888
13870
  * ------------------------------------*/
13889
- const Fragments$1 = {
13871
+ const Fragments = {
13890
13872
  account: gql `
13891
13873
  fragment AccountFragment on AccountVO {
13892
13874
  id
@@ -13921,14 +13903,14 @@ const Fragments$1 = {
13921
13903
  }`
13922
13904
  };
13923
13905
  // Load account query
13924
- const LoadQuery$1 = gql `
13906
+ const LoadQuery = gql `
13925
13907
  query Account {
13926
13908
  data: account {
13927
13909
  ...AccountFragment
13928
13910
  }
13929
13911
  }
13930
- ${Fragments$1.account}
13931
- ${Fragments$1.settings}
13912
+ ${Fragments.account}
13913
+ ${Fragments.settings}
13932
13914
  `;
13933
13915
  // Check email query
13934
13916
  const IsEmailExistsQuery = gql `
@@ -13943,21 +13925,21 @@ const AccountMutations = {
13943
13925
  ...AccountFragment
13944
13926
  }
13945
13927
  }
13946
- ${Fragments$1.account}
13947
- ${Fragments$1.settings}`,
13928
+ ${Fragments.account}
13929
+ ${Fragments.settings}`,
13948
13930
  create: gql `mutation CreateAccount($data:AccountVOInput){
13949
13931
  data: createAccount(account: $data){
13950
13932
  ...AccountFragment
13951
13933
  }
13952
13934
  }
13953
- ${Fragments$1.account}
13954
- ${Fragments$1.settings}`,
13935
+ ${Fragments.account}
13936
+ ${Fragments.settings}`,
13955
13937
  saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
13956
13938
  data: saveSettings(settings: $data){
13957
13939
  ...UserSettingsFragment
13958
13940
  }
13959
13941
  }
13960
- ${Fragments$1.settings}`
13942
+ ${Fragments.settings}`
13961
13943
  };
13962
13944
  // Sent confirmation email
13963
13945
  const SendConfirmEmailMutation = gql `
@@ -14272,7 +14254,7 @@ class AccountService extends BaseGraphqlService {
14272
14254
  catch (error) {
14273
14255
  console.error(error);
14274
14256
  this.resetData();
14275
- throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
14257
+ throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
14276
14258
  }
14277
14259
  // Store pubkey+keypair
14278
14260
  this._cache.pubkey = Base58.encode(keypair.publicKey);
@@ -14306,7 +14288,7 @@ class AccountService extends BaseGraphqlService {
14306
14288
  }
14307
14289
  catch (err) {
14308
14290
  // If account not found, check if email is valid
14309
- if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
14291
+ if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
14310
14292
  // Check email exists
14311
14293
  if (data.username.indexOf('@') !== -1) {
14312
14294
  let isEmailExists;
@@ -14318,11 +14300,11 @@ class AccountService extends BaseGraphqlService {
14318
14300
  }
14319
14301
  // Email not exists (no account)
14320
14302
  if (!isEmailExists) {
14321
- throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
14303
+ throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
14322
14304
  }
14323
14305
  }
14324
14306
  // Email exists, so error = 'bad password'
14325
- throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
14307
+ throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
14326
14308
  }
14327
14309
  throw err; // resend the first error
14328
14310
  }
@@ -14468,8 +14450,8 @@ class AccountService extends BaseGraphqlService {
14468
14450
  // Load remotely
14469
14451
  else {
14470
14452
  const { data } = yield this.graphql.query({
14471
- query: LoadQuery$1,
14472
- error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14453
+ query: LoadQuery,
14454
+ error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14473
14455
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
14474
14456
  });
14475
14457
  json = data;
@@ -14496,7 +14478,7 @@ class AccountService extends BaseGraphqlService {
14496
14478
  return __awaiter(this, void 0, void 0, function* () {
14497
14479
  const isEmailExists = yield this.isEmailExists(email);
14498
14480
  if (isEmailExists) {
14499
- throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14481
+ throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14500
14482
  }
14501
14483
  });
14502
14484
  }
@@ -14532,7 +14514,7 @@ class AccountService extends BaseGraphqlService {
14532
14514
  locale
14533
14515
  },
14534
14516
  error: {
14535
- code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
14517
+ code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
14536
14518
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
14537
14519
  }
14538
14520
  });
@@ -14548,7 +14530,7 @@ class AccountService extends BaseGraphqlService {
14548
14530
  code
14549
14531
  },
14550
14532
  error: {
14551
- code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
14533
+ code: ErrorCodes.CONFIRM_EMAIL_FAILED,
14552
14534
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
14553
14535
  }
14554
14536
  });
@@ -14627,7 +14609,7 @@ class AccountService extends BaseGraphqlService {
14627
14609
  throw error;
14628
14610
  console.error(error);
14629
14611
  throw {
14630
- code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
14612
+ code: ErrorCodes.LOAD_ACCOUNT_ERROR,
14631
14613
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
14632
14614
  };
14633
14615
  }
@@ -14797,7 +14779,7 @@ class AccountService extends BaseGraphqlService {
14797
14779
  if (!isNew) {
14798
14780
  const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
14799
14781
  if (!existingAccount || !existingAccount.updateDate) {
14800
- throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14782
+ throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14801
14783
  }
14802
14784
  this.copyIdAndUpdateDate(existingAccount, account);
14803
14785
  }
@@ -14809,7 +14791,7 @@ class AccountService extends BaseGraphqlService {
14809
14791
  mutation: isNew ? AccountMutations.create : AccountMutations.save,
14810
14792
  variables: { data: json },
14811
14793
  error: {
14812
- code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
14794
+ code: ErrorCodes.SAVE_ACCOUNT_ERROR,
14813
14795
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
14814
14796
  }
14815
14797
  });
@@ -14836,7 +14818,7 @@ class AccountService extends BaseGraphqlService {
14836
14818
  mutation: AccountMutations.saveSettings,
14837
14819
  variables: { data: json },
14838
14820
  error: {
14839
- code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
14821
+ code: ErrorCodes.SAVE_SETTINGS_ERROR,
14840
14822
  message: 'ERROR.SAVE_SETTINGS_ERROR'
14841
14823
  }
14842
14824
  });
@@ -14858,7 +14840,7 @@ class AccountService extends BaseGraphqlService {
14858
14840
  if (counter > 4) {
14859
14841
  if (this._debug)
14860
14842
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
14861
- throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14843
+ throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14862
14844
  }
14863
14845
  // Check if valid
14864
14846
  if (token) {
@@ -14868,7 +14850,7 @@ class AccountService extends BaseGraphqlService {
14868
14850
  token
14869
14851
  },
14870
14852
  error: {
14871
- code: ErrorCodes$2.UNAUTHORIZED,
14853
+ code: ErrorCodes.UNAUTHORIZED,
14872
14854
  message: 'ERROR.UNAUTHORIZED'
14873
14855
  },
14874
14856
  fetchPolicy: 'no-cache'
@@ -14884,7 +14866,7 @@ class AccountService extends BaseGraphqlService {
14884
14866
  }
14885
14867
  // Generate a new token
14886
14868
  const challengeError = {
14887
- code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
14869
+ code: ErrorCodes.AUTH_CHALLENGE_ERROR,
14888
14870
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
14889
14871
  };
14890
14872
  const data = yield this.graphql.query({
@@ -14962,7 +14944,7 @@ class AccountService extends BaseGraphqlService {
14962
14944
  query: AccountSubscriptions.listenChanges,
14963
14945
  variables,
14964
14946
  error: {
14965
- code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
14947
+ code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
14966
14948
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
14967
14949
  }
14968
14950
  }).pipe(map(({ data }) => data),
@@ -14991,7 +14973,7 @@ class AccountService extends BaseGraphqlService {
14991
14973
  return Toasts.show(this.toastController, this.translate, opts);
14992
14974
  }
14993
14975
  }
14994
- AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$1.TranslateService, 8), i0.ɵɵinject(i1$4.ToastController, 8), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
14976
+ AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
14995
14977
  AccountService.decorators = [
14996
14978
  { type: Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
14997
14979
  ];
@@ -15259,7 +15241,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
15259
15241
  /* ------------------------------------
15260
15242
  * GraphQL queries
15261
15243
  * ------------------------------------*/
15262
- const Fragments = {
15244
+ const Fragments$1 = {
15263
15245
  config: gql `
15264
15246
  fragment ConfigFragment on ConfigurationVO {
15265
15247
  id
@@ -15286,13 +15268,13 @@ const Fragments = {
15286
15268
  }
15287
15269
  `
15288
15270
  };
15289
- const LoadQuery = gql `
15271
+ const LoadQuery$1 = gql `
15290
15272
  query Configuration{
15291
15273
  data: configuration{
15292
15274
  ...ConfigFragment
15293
15275
  }
15294
15276
  }
15295
- ${Fragments.config}
15277
+ ${Fragments$1.config}
15296
15278
  `;
15297
15279
  // Save (create or update) account mutation
15298
15280
  const SaveMutation = gql `
@@ -15301,7 +15283,7 @@ const SaveMutation = gql `
15301
15283
  ...ConfigFragment
15302
15284
  }
15303
15285
  }
15304
- ${Fragments.config}
15286
+ ${Fragments$1.config}
15305
15287
  `;
15306
15288
  const ClearCache = gql `
15307
15289
  query ClearCache($name: String) {
@@ -15352,12 +15334,12 @@ class ConfigService extends BaseGraphqlService {
15352
15334
  return __awaiter(this, void 0, void 0, function* () {
15353
15335
  const now = Date.now();
15354
15336
  console.debug('[config] Loading Pod configuration...');
15355
- const query = opts && opts.query || LoadQuery;
15337
+ const query = opts && opts.query || LoadQuery$1;
15356
15338
  const variables = opts && opts.variables || undefined;
15357
15339
  const res = yield this.graphql.query({
15358
15340
  query,
15359
15341
  variables,
15360
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15342
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15361
15343
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
15362
15344
  });
15363
15345
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -15390,7 +15372,7 @@ class ConfigService extends BaseGraphqlService {
15390
15372
  data: json
15391
15373
  },
15392
15374
  error: {
15393
- code: ErrorCodes$2.SAVE_CONFIG_ERROR,
15375
+ code: ErrorCodes.SAVE_CONFIG_ERROR,
15394
15376
  message: 'ERROR.SAVE_CONFIG_ERROR'
15395
15377
  }
15396
15378
  });
@@ -15416,7 +15398,7 @@ class ConfigService extends BaseGraphqlService {
15416
15398
  const res = yield this.graphql.query({
15417
15399
  query: CacheStatistics,
15418
15400
  variables: null,
15419
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15401
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15420
15402
  fetchPolicy: 'network-only'
15421
15403
  });
15422
15404
  const data = res && res.cacheStatistics || undefined;
@@ -15432,7 +15414,7 @@ class ConfigService extends BaseGraphqlService {
15432
15414
  const res = yield this.graphql.query({
15433
15415
  query: ClearCache,
15434
15416
  variables,
15435
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15417
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15436
15418
  fetchPolicy: 'no-cache'
15437
15419
  });
15438
15420
  const data = res && res.clearCache || undefined;
@@ -15591,7 +15573,7 @@ class ConfigService extends BaseGraphqlService {
15591
15573
  });
15592
15574
  }
15593
15575
  }
15594
- ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
15576
+ ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(AccountService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
15595
15577
  ConfigService.decorators = [
15596
15578
  { type: Injectable, args: [{
15597
15579
  providedIn: 'root',
@@ -15611,7 +15593,7 @@ ConfigService.ctorParameters = () => [
15611
15593
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
15612
15594
  ];
15613
15595
 
15614
- const moment$3 = momentImported;
15596
+ const moment$4 = momentImported;
15615
15597
  const AndroidOsEnvironment = Object.freeze({
15616
15598
  DIRECTORY_DOWNLOADS: 'Download',
15617
15599
  DIRECTORY_DOWNLOADS_OLD: 'Downloads',
@@ -15845,16 +15827,16 @@ class PlatformService extends StartableService {
15845
15827
  }
15846
15828
  // config moment lib
15847
15829
  try {
15848
- moment$3.locale(event.lang);
15830
+ moment$4.locale(event.lang);
15849
15831
  console.debug('[platform] Use locale {' + event.lang + '}');
15850
15832
  }
15851
15833
  // If error, fallback to en
15852
15834
  catch (err) {
15853
- moment$3.locale('en');
15835
+ moment$4.locale('en');
15854
15836
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
15855
15837
  }
15856
15838
  // Config date adapter
15857
- this.dateAdapter.setLocale(moment$3.locale());
15839
+ this.dateAdapter.setLocale(moment$4.locale());
15858
15840
  }
15859
15841
  });
15860
15842
  this.settings.onChange.subscribe(data => {
@@ -16055,7 +16037,7 @@ class PlatformService extends StartableService {
16055
16037
  });
16056
16038
  }
16057
16039
  }
16058
- 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" });
16040
+ 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" });
16059
16041
  PlatformService.decorators = [
16060
16042
  { type: Injectable, args: [{ providedIn: 'root' },] }
16061
16043
  ];
@@ -16070,15 +16052,15 @@ PlatformService.ctorParameters = () => [
16070
16052
  { type: NetworkService },
16071
16053
  { type: AccountService },
16072
16054
  { type: ConfigService },
16073
- { type: CacheService },
16055
+ { type: CacheService$1 },
16074
16056
  { type: Storage },
16075
16057
  { type: AudioProvider },
16076
16058
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
16077
- { type: StatusBar, decorators: [{ type: Optional }] },
16059
+ { type: StatusBar$1, decorators: [{ type: Optional }] },
16078
16060
  { type: Keyboard, decorators: [{ type: Optional }] },
16079
- { type: SplashScreen, decorators: [{ type: Optional }] },
16080
- { type: InAppBrowser, decorators: [{ type: Optional }] },
16081
- { type: Downloader, decorators: [{ type: Optional }] }
16061
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
16062
+ { type: InAppBrowser$1, decorators: [{ type: Optional }] },
16063
+ { type: Downloader$1, decorators: [{ type: Optional }] }
16082
16064
  ];
16083
16065
 
16084
16066
  class AppHelpModal {
@@ -16142,7 +16124,7 @@ class MatStepperI18n extends MatStepperIntl {
16142
16124
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
16143
16125
  }
16144
16126
  }
16145
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
16127
+ MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
16146
16128
  MatStepperI18n.decorators = [
16147
16129
  { type: Injectable, args: [{ providedIn: 'root' },] }
16148
16130
  ];
@@ -17692,52 +17674,47 @@ class JobUtils {
17692
17674
  .then(() => {
17693
17675
  if (opts === null || opts === void 0 ? void 0 : opts.maxProgression)
17694
17676
  progression.next(opts.maxProgression);
17695
- progression.complete();
17677
+ if (opts === null || opts === void 0 ? void 0 : opts.progression)
17678
+ opts.progression.complete();
17696
17679
  })
17697
17680
  .catch(err => progression.error(err));
17698
17681
  return progression;
17699
17682
  }
17700
17683
  static fetchAllPages(loadPageFn, opts) {
17684
+ var _a;
17701
17685
  return __awaiter(this, void 0, void 0, function* () {
17702
- const maxProgression = toNumber(opts === null || opts === void 0 ? void 0 : opts.maxProgression, 100);
17703
- const progression = opts === null || opts === void 0 ? void 0 : opts.progression;
17686
+ const maxProgression = opts && opts.maxProgression || undefined;
17704
17687
  let total;
17705
17688
  let pageCount;
17706
17689
  let progressionStep;
17707
17690
  let currentPageDataCount;
17708
- const fetchSize = toNumber(opts === null || opts === void 0 ? void 0 : opts.fetchSize, 1000);
17709
- if (fetchSize <= 0)
17710
- throw new Error('Unable to fetch pages: invalid fetchSize: ' + fetchSize);
17691
+ const fetchSize = opts && opts.fetchSize || 1000;
17711
17692
  let offset = 0;
17712
17693
  let data = [];
17713
17694
  do {
17714
17695
  if (opts && opts.logPrefix)
17715
17696
  console.debug(`${opts.logPrefix} Fetching page #${offset / fetchSize}...`);
17716
- // Fetch a page
17697
+ // Get some items, using paging
17717
17698
  const res = yield loadPageFn(offset, fetchSize);
17718
- // Concat to previous result
17719
17699
  data = data.concat(res.data);
17720
- // Compute variables, for next loop
17721
17700
  currentPageDataCount = res.data && res.data.length || 0;
17722
17701
  offset += currentPageDataCount;
17723
- // Set total count (only once)
17702
+ // Set total count (only if not already set)
17724
17703
  if (isNil(total) && isNotNil(res.total)) {
17725
17704
  total = res.total;
17726
17705
  // Compute the number of page
17727
17706
  pageCount = Math.round(res.total / fetchSize + 0.5); // Round to HALF_UP integer
17728
17707
  // Compute step, by dividing maxProgression by number of page
17729
- if (progression) {
17730
- progressionStep = maxProgression / pageCount;
17731
- // DEBUG
17732
- if (opts && opts.logPrefix)
17733
- console.debug(`${opts.logPrefix} {pageCount: ${pageCount}, progression: ${progression.value}, pageProgressionStep: ${progressionStep}}`);
17734
- }
17708
+ const actualProgression = Math.max(0, toNumber(opts && ((_a = opts.progression) === null || _a === void 0 ? void 0 : _a.value), 0));
17709
+ progressionStep = maxProgression
17710
+ ? (maxProgression - actualProgression) / pageCount
17711
+ : undefined /*if 0 reset to undefined*/;
17735
17712
  }
17736
17713
  // Increment progression on each iteration (if possible)
17737
- if (isNotNil(progressionStep)) {
17738
- progression.next(progression.value + progressionStep);
17714
+ if (opts && opts.progression && isNotNil(progressionStep)) {
17715
+ opts.progression.next(opts.progression.value + progressionStep);
17739
17716
  }
17740
- if (opts === null || opts === void 0 ? void 0 : opts.onPageLoaded)
17717
+ if (opts && opts.onPageLoaded)
17741
17718
  opts.onPageLoaded(res);
17742
17719
  } while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
17743
17720
  // Complete progression to reach progressionStep value (because of round)
@@ -17748,19 +17725,14 @@ class JobUtils {
17748
17725
  total = data.length;
17749
17726
  pageCount = Math.round(data.length / fetchSize + 0.5);
17750
17727
  }
17751
- // Compute final increment, using the real page count
17752
- progressionStep = Math.max(0, maxProgression - (progressionStep * pageCount));
17753
- }
17754
- // Or increment once (e.g. when total is not known, in received LoadResult)
17755
- else if (progression) {
17756
- progressionStep = maxProgression;
17728
+ const lastProgressionStep = opts.maxProgression - (progressionStep * pageCount);
17729
+ if (opts && opts.progression && lastProgressionStep > 0) {
17730
+ opts.progression.next(opts.progression.value + lastProgressionStep);
17731
+ }
17757
17732
  }
17758
- // DEBUG
17759
- if (opts && opts.logPrefix)
17760
- console.debug(`${opts.logPrefix} All pages fetched - {progression: ${progression.value}, lastProgressionStep: ${progressionStep}`);
17761
- // Final increment
17762
- if (progression && progressionStep > 0) {
17763
- progression.next(progression.value + progressionStep);
17733
+ // Or increment once
17734
+ else if (opts && opts.progression && opts.maxProgression) {
17735
+ opts.progression.next(opts.progression.value + opts.maxProgression);
17764
17736
  }
17765
17737
  return {
17766
17738
  data,
@@ -17978,7 +17950,7 @@ function state2side(state) {
17978
17950
  return 1;
17979
17951
  }
17980
17952
  }
17981
- const ɵ0$1 = (defaultStateSize) => [
17953
+ const ɵ0$b = (defaultStateSize) => [
17982
17954
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
17983
17955
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
17984
17956
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -17986,7 +17958,7 @@ const ɵ0$1 = (defaultStateSize) => [
17986
17958
  const SCALE_OPTIONS_DEFAULT = {
17987
17959
  startColor: rgbArrayMap.red,
17988
17960
  startStates: [0, 2, 3],
17989
- startStepsFn: ɵ0$1
17961
+ startStepsFn: ɵ0$b
17990
17962
  };
17991
17963
  /**
17992
17964
  * Internal function, that create a colors scale, using iteration
@@ -18783,7 +18755,7 @@ class UserSettingsValidatorService extends AppValidatorService {
18783
18755
  });
18784
18756
  }
18785
18757
  }
18786
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18758
+ UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18787
18759
  UserSettingsValidatorService.decorators = [
18788
18760
  { type: Injectable, args: [{ providedIn: 'root' },] }
18789
18761
  ];
@@ -18827,7 +18799,7 @@ class AccountValidatorService extends AppValidatorService {
18827
18799
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
18828
18800
  }
18829
18801
  }
18830
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18802
+ AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18831
18803
  AccountValidatorService.decorators = [
18832
18804
  { type: Injectable, args: [{ providedIn: 'root' },] }
18833
18805
  ];
@@ -19392,7 +19364,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
19392
19364
  });
19393
19365
  }
19394
19366
  }
19395
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
19367
+ LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
19396
19368
  LocalSettingsValidatorService.decorators = [
19397
19369
  { type: Injectable, args: [{ providedIn: 'root' },] }
19398
19370
  ];
@@ -20011,7 +19983,7 @@ class IsOnFieldModePipe {
20011
19983
  return value === 'FIELD';
20012
19984
  }
20013
19985
  }
20014
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
19986
+ IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
20015
19987
  IsOnFieldModePipe.decorators = [
20016
19988
  { type: Pipe, args: [{
20017
19989
  name: 'isOnField'
@@ -20023,7 +19995,7 @@ class IsNotOnFieldModePipe {
20023
19995
  return value !== 'FIELD';
20024
19996
  }
20025
19997
  }
20026
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
19998
+ IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
20027
19999
  IsNotOnFieldModePipe.decorators = [
20028
20000
  { type: Pipe, args: [{
20029
20001
  name: 'isNotOnField'
@@ -20038,7 +20010,7 @@ class PersonToStringPipe {
20038
20010
  return PersonUtils.personToString(value);
20039
20011
  }
20040
20012
  }
20041
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
20013
+ PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
20042
20014
  PersonToStringPipe.decorators = [
20043
20015
  { type: Pipe, args: [{
20044
20016
  name: 'personToString'
@@ -20423,7 +20395,7 @@ class IsLoginAccountPipe {
20423
20395
  return value && value.pubkey && true;
20424
20396
  }
20425
20397
  }
20426
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
20398
+ IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
20427
20399
  IsLoginAccountPipe.decorators = [
20428
20400
  { type: Pipe, args: [{
20429
20401
  name: 'isLogin'
@@ -20435,7 +20407,7 @@ class AccountToStringPipe {
20435
20407
  return accountToString(value);
20436
20408
  }
20437
20409
  }
20438
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
20410
+ AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
20439
20411
  AccountToStringPipe.decorators = [
20440
20412
  { type: Pipe, args: [{
20441
20413
  name: 'accountToString'
@@ -20450,7 +20422,7 @@ class DepartmentToStringPipe {
20450
20422
  return departmentToString(value);
20451
20423
  }
20452
20424
  }
20453
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
20425
+ DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
20454
20426
  DepartmentToStringPipe.decorators = [
20455
20427
  { type: Pipe, args: [{
20456
20428
  name: 'departmentToString'
@@ -20546,7 +20518,7 @@ class MenuService {
20546
20518
  this._visibleSubject.next(value);
20547
20519
  }
20548
20520
  }
20549
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20521
+ MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20550
20522
  MenuService.decorators = [
20551
20523
  { type: Injectable, args: [{
20552
20524
  providedIn: 'root'
@@ -21008,7 +20980,7 @@ class AuthGuardService {
21008
20980
  }));
21009
20981
  }
21010
20982
  }
21011
- 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" });
20983
+ AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
21012
20984
  AuthGuardService.decorators = [
21013
20985
  { type: Injectable, args: [{ providedIn: 'root' },] }
21014
20986
  ];
@@ -21050,7 +21022,7 @@ class BaseEntityService extends BaseGraphqlService {
21050
21022
  query,
21051
21023
  variables: { id },
21052
21024
  fetchPolicy: opts && opts.fetchPolicy || undefined,
21053
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21025
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21054
21026
  })
21055
21027
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
21056
21028
  ? (data && this.fromObject(data))
@@ -21065,7 +21037,7 @@ class BaseEntityService extends BaseGraphqlService {
21065
21037
  query,
21066
21038
  variables: { id },
21067
21039
  fetchPolicy: opts && opts.fetchPolicy || undefined,
21068
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21040
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21069
21041
  });
21070
21042
  // Convert to entity
21071
21043
  return (!opts || opts.toEntity !== false)
@@ -21096,7 +21068,7 @@ class BaseEntityService extends BaseGraphqlService {
21096
21068
  totalFieldName: withTotal ? 'total' : undefined,
21097
21069
  insertFilterFn: filter && filter.asFilterFn(),
21098
21070
  variables,
21099
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
21071
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
21100
21072
  fetchPolicy: opts && opts.fetchPolicy || undefined
21101
21073
  })
21102
21074
  .pipe(map(({ data, total }) => {
@@ -21132,7 +21104,7 @@ class BaseEntityService extends BaseGraphqlService {
21132
21104
  const { data, total } = yield this.graphql.query({
21133
21105
  query,
21134
21106
  variables,
21135
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
21107
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
21136
21108
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
21137
21109
  });
21138
21110
  const entities = (!opts || opts.toEntity !== false) ?
@@ -21171,7 +21143,7 @@ class BaseEntityService extends BaseGraphqlService {
21171
21143
  variables: {
21172
21144
  filter: filter && filter.asPodObject()
21173
21145
  },
21174
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
21146
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
21175
21147
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
21176
21148
  });
21177
21149
  return res.total;
@@ -21207,7 +21179,7 @@ class BaseEntityService extends BaseGraphqlService {
21207
21179
  variables: {
21208
21180
  data: json
21209
21181
  },
21210
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21182
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21211
21183
  update: (proxy, { data }) => {
21212
21184
  const savedEntities = data && data.data;
21213
21185
  if (savedEntities) {
@@ -21263,7 +21235,7 @@ class BaseEntityService extends BaseGraphqlService {
21263
21235
  variables: {
21264
21236
  data: json
21265
21237
  },
21266
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21238
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21267
21239
  update: (cache, { data }) => {
21268
21240
  // Update entity
21269
21241
  const savedEntity = data && data.data;
@@ -21311,7 +21283,7 @@ class BaseEntityService extends BaseGraphqlService {
21311
21283
  refetchQueries: this.getRefetchQueriesForMutation(opts),
21312
21284
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
21313
21285
  variables: { ids },
21314
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21286
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21315
21287
  update: (cache, res) => {
21316
21288
  // Remove from cache
21317
21289
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -21352,7 +21324,7 @@ class BaseEntityService extends BaseGraphqlService {
21352
21324
  refetchQueries: this.getRefetchQueriesForMutation(opts),
21353
21325
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
21354
21326
  variables: { id },
21355
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21327
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21356
21328
  update: (proxy, res) => {
21357
21329
  // Remove from cache
21358
21330
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -21388,7 +21360,7 @@ class BaseEntityService extends BaseGraphqlService {
21388
21360
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache',
21389
21361
  variables,
21390
21362
  error: {
21391
- code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
21363
+ code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
21392
21364
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
21393
21365
  }
21394
21366
  })
@@ -21574,7 +21546,7 @@ class EntitiesTableDataSource extends TableDataSource {
21574
21546
  if (this._debug)
21575
21547
  invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
21576
21548
  // Stop with an error
21577
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21549
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21578
21550
  }
21579
21551
  this._editingRowCount = 0;
21580
21552
  let data;
@@ -22445,14 +22417,14 @@ class AppTable {
22445
22417
  return __awaiter(this, void 0, void 0, function* () {
22446
22418
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
22447
22419
  if (this.readOnly) {
22448
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22420
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22449
22421
  }
22450
22422
  this.resetError();
22451
22423
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
22452
22424
  this.previouslyEditedRowId = opts.keepEditing ? ((((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined) || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.id)) : undefined;
22453
22425
  const previouslyEditedData = opts.keepEditing ? (isNotNil(this.previouslyEditedRowId) && ((_c = this.editedRow) === null || _c === void 0 ? void 0 : _c.currentData) || ((_d = this.singleSelectedRow) === null || _d === void 0 ? void 0 : _d.currentData)) : undefined;
22454
22426
  if (!this.confirmEditCreate()) {
22455
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22427
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22456
22428
  }
22457
22429
  // Mark as saving
22458
22430
  this.markAsSaving();
@@ -22571,7 +22543,7 @@ class AppTable {
22571
22543
  var _a;
22572
22544
  return __awaiter(this, void 0, void 0, function* () {
22573
22545
  if (this.readOnly) {
22574
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22546
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22575
22547
  }
22576
22548
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
22577
22549
  return 0; // SKip
@@ -24151,7 +24123,7 @@ class AppEntityEditor extends AppTabEditor {
24151
24123
  try {
24152
24124
  const data = yield this.dataService.load(id, opts);
24153
24125
  if (!data)
24154
- throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
24126
+ throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
24155
24127
  this._usageMode = this.computeUsageMode(data);
24156
24128
  yield this.onEntityLoaded(data, opts);
24157
24129
  yield this.updateView(data, opts);
@@ -25103,7 +25075,7 @@ class UserEventService extends BaseGraphqlService {
25103
25075
  EntityUtils.copyIdAndUpdateDate(source, target);
25104
25076
  }
25105
25077
  }
25106
- 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" });
25078
+ 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" });
25107
25079
  UserEventService.decorators = [
25108
25080
  { type: Injectable, args: [{ providedIn: 'root' },] }
25109
25081
  ];
@@ -25463,7 +25435,7 @@ class PersonService extends BaseEntityService {
25463
25435
  fetchPolicy: 'network-only',
25464
25436
  withTotal: (offset === 0),
25465
25437
  toEntity: false
25466
- }), { progression: opts === null || opts === void 0 ? void 0 : opts.progression, maxProgression: maxProgression * 0.9 });
25438
+ }), Object.assign(Object.assign({}, opts), { maxProgression: maxProgression * 0.9 }));
25467
25439
  // Save result locally
25468
25440
  yield this.entities.saveAll(res.data, { entityName: 'PersonVO', reset: true });
25469
25441
  });
@@ -25484,7 +25456,7 @@ class PersonService extends BaseEntityService {
25484
25456
  return target;
25485
25457
  }
25486
25458
  }
25487
- 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" });
25459
+ PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
25488
25460
  PersonService.decorators = [
25489
25461
  { type: Injectable, args: [{ providedIn: 'root' },] }
25490
25462
  ];
@@ -25515,7 +25487,7 @@ class PersonValidatorService {
25515
25487
  return this.formBuilder.group(formConfig);
25516
25488
  }
25517
25489
  }
25518
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
25490
+ PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
25519
25491
  PersonValidatorService.decorators = [
25520
25492
  { type: Injectable, args: [{ providedIn: 'root' },] }
25521
25493
  ];
@@ -25709,16 +25681,16 @@ AdminModule.decorators = [
25709
25681
  ];
25710
25682
  AdminModule.ctorParameters = () => [];
25711
25683
 
25712
- const ɵ0 = {
25684
+ const ɵ0$c = {
25713
25685
  profile: 'ADMIN'
25714
25686
  };
25715
- const routes$5 = [
25687
+ const routes = [
25716
25688
  {
25717
25689
  path: 'users',
25718
25690
  pathMatch: 'full',
25719
25691
  component: UsersPage,
25720
25692
  canActivate: [AuthGuardService],
25721
- data: ɵ0
25693
+ data: ɵ0$c
25722
25694
  }
25723
25695
  ];
25724
25696
  class AdminRoutingModule {
@@ -25728,33 +25700,33 @@ AdminRoutingModule.decorators = [
25728
25700
  imports: [
25729
25701
  SharedRoutingModule,
25730
25702
  AdminModule,
25731
- RouterModule.forChild(routes$5)
25703
+ RouterModule.forChild(routes)
25732
25704
  ],
25733
25705
  exports: [RouterModule]
25734
25706
  },] }
25735
25707
  ];
25736
25708
 
25737
- const ErrorCodes = {
25709
+ const ErrorCodes$2 = {
25738
25710
  LOAD_PERSONS_ERROR: 100,
25739
25711
  SAVE_PERSONS_ERROR: 101,
25740
25712
  DELETE_PERSONS_ERROR: 102,
25741
25713
  };
25742
25714
 
25743
- class EntityTestClass$1 {
25715
+ class EntityTestClass {
25744
25716
  }
25745
- const FAKE_ENTITIES$1 = [
25717
+ const FAKE_ENTITIES = [
25746
25718
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
25747
25719
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
25748
25720
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
25749
25721
  ];
25750
- function deepCopy$1(values, size) {
25722
+ function deepCopy(values, size) {
25751
25723
  if (isNil(size)) {
25752
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
25724
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
25753
25725
  }
25754
25726
  let result = [];
25755
25727
  let i = 1;
25756
25728
  while (result.length < size) {
25757
- result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
25729
+ result = result.concat((values || FAKE_ENTITIES).map(entity => {
25758
25730
  const name = entity.name + ' #' + i;
25759
25731
  return Object.assign(Object.assign({}, entity), { id: i++, name });
25760
25732
  }));
@@ -25764,7 +25736,7 @@ function deepCopy$1(values, size) {
25764
25736
  class AutocompleteTestPage {
25765
25737
  constructor(formBuilder) {
25766
25738
  this.formBuilder = formBuilder;
25767
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
25739
+ this._items = deepCopy(FAKE_ENTITIES, 100);
25768
25740
  this._$items = new BehaviorSubject(undefined);
25769
25741
  this.autocompleteFields = new MatAutocompleteConfigHolder();
25770
25742
  this.memoryHide = false;
@@ -25808,7 +25780,7 @@ class AutocompleteTestPage {
25808
25780
  });
25809
25781
  // From items
25810
25782
  this.autocompleteFields.add('entity-items-large', {
25811
- items: FAKE_ENTITIES$1.slice(),
25783
+ items: FAKE_ENTITIES.slice(),
25812
25784
  attributes: ['label', 'name', 'description', 'comments'],
25813
25785
  displayWith: this.entityToString
25814
25786
  });
@@ -25818,12 +25790,12 @@ class AutocompleteTestPage {
25818
25790
  loadData() {
25819
25791
  return __awaiter(this, void 0, void 0, function* () {
25820
25792
  const data = {
25821
- entity: deepCopy$1(FAKE_ENTITIES$1)[0],
25793
+ entity: deepCopy(FAKE_ENTITIES)[0],
25822
25794
  // This item is NOT in the items list => i should be displayed anyway
25823
25795
  missingEntity: {
25824
25796
  id: -1, label: '??', name: 'Missing item'
25825
25797
  },
25826
- disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
25798
+ disableEntity: deepCopy(FAKE_ENTITIES)[2]
25827
25799
  };
25828
25800
  this.form.setValue(data);
25829
25801
  // Load observables
@@ -25966,13 +25938,13 @@ LatLongTestPage.ctorParameters = () => [
25966
25938
  { type: FormBuilder }
25967
25939
  ];
25968
25940
 
25969
- const moment$2 = momentImported;
25941
+ const moment$5 = momentImported;
25970
25942
  class SwipeTestPage {
25971
25943
  constructor(formBuilder, dateFormatPipe) {
25972
25944
  this.formBuilder = formBuilder;
25973
25945
  this.dateFormatPipe = dateFormatPipe;
25974
25946
  this.$dates = new BehaviorSubject(undefined);
25975
- this._today = moment$2().startOf('day');
25947
+ this._today = moment$5().startOf('day');
25976
25948
  this.form = formBuilder.group({
25977
25949
  empty: [null, Validators.required],
25978
25950
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -25985,7 +25957,7 @@ class SwipeTestPage {
25985
25957
  ngOnInit() {
25986
25958
  const dates = [];
25987
25959
  for (let d = 0; d < 7; d++) {
25988
- dates[d] = moment$2(this._today).add(d - 3, 'day');
25960
+ dates[d] = moment$5(this._today).add(d - 3, 'day');
25989
25961
  }
25990
25962
  this.$dates.next(dates);
25991
25963
  this.loadData();
@@ -26026,7 +25998,7 @@ SwipeTestPage.ctorParameters = () => [
26026
25998
  { type: DateFormatPipe }
26027
25999
  ];
26028
26000
 
26029
- const moment$1 = momentImported;
26001
+ const moment$6 = momentImported;
26030
26002
  class DateTimeTestPage {
26031
26003
  constructor(platform, formBuilder, cd) {
26032
26004
  this.platform = platform;
@@ -26058,7 +26030,7 @@ class DateTimeTestPage {
26058
26030
  // Load the form with data
26059
26031
  loadData() {
26060
26032
  return __awaiter(this, void 0, void 0, function* () {
26061
- const now = moment$1();
26033
+ const now = moment$6();
26062
26034
  const data = {
26063
26035
  empty: toDateISOString(now.clone().add(2, 'hours')),
26064
26036
  enable: toDateISOString(now),
@@ -26119,9 +26091,9 @@ DateTimeTestPage.ctorParameters = () => [
26119
26091
  { type: ChangeDetectorRef }
26120
26092
  ];
26121
26093
 
26122
- class EntityTestClass {
26094
+ class EntityTestClass$1 {
26123
26095
  }
26124
- const FAKE_ENTITIES = [
26096
+ const FAKE_ENTITIES$1 = [
26125
26097
  { id: 1, label: 'AAA', name: 'Item A' },
26126
26098
  { id: 2, label: 'BBB', name: 'Item B' },
26127
26099
  { id: 3, label: 'CCC', name: 'Item C' },
@@ -26130,14 +26102,14 @@ const FAKE_ENTITIES = [
26130
26102
  { id: 6, label: 'FFF', name: 'Item F' },
26131
26103
  { id: 7, label: 'GGG', name: 'Item G' }
26132
26104
  ];
26133
- function deepCopy(values, size) {
26105
+ function deepCopy$1(values, size) {
26134
26106
  if (isNil(size)) {
26135
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
26107
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
26136
26108
  }
26137
26109
  let result = [];
26138
26110
  let i = 1;
26139
26111
  while (result.length < size) {
26140
- result = result.concat((values || FAKE_ENTITIES).map(entity => {
26112
+ result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
26141
26113
  const name = entity.name + ' #' + i;
26142
26114
  return Object.assign(Object.assign({}, entity), { id: i++, name });
26143
26115
  }));
@@ -26147,7 +26119,7 @@ function deepCopy(values, size) {
26147
26119
  class ChipsTestPage {
26148
26120
  constructor(formBuilder) {
26149
26121
  this.formBuilder = formBuilder;
26150
- this._items = deepCopy(FAKE_ENTITIES, 100);
26122
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
26151
26123
  this._$items = new BehaviorSubject(undefined);
26152
26124
  this.autocompleteFields = new MatAutocompleteConfigHolder();
26153
26125
  this.form = formBuilder.group({
@@ -26186,7 +26158,7 @@ class ChipsTestPage {
26186
26158
  // Load the form with data
26187
26159
  loadData() {
26188
26160
  return __awaiter(this, void 0, void 0, function* () {
26189
- const items = deepCopy(FAKE_ENTITIES);
26161
+ const items = deepCopy$1(FAKE_ENTITIES$1);
26190
26162
  const data = {
26191
26163
  entity: items.slice(0, 1),
26192
26164
  entityInitial: items.slice(1, 2),
@@ -26302,7 +26274,7 @@ NumpadTestPage.ctorParameters = () => [
26302
26274
  { type: FormBuilder }
26303
26275
  ];
26304
26276
 
26305
- const moment = momentImported;
26277
+ const moment$7 = momentImported;
26306
26278
  class DateTestPage {
26307
26279
  constructor(platform, formBuilder, cd) {
26308
26280
  this.platform = platform;
@@ -26336,7 +26308,7 @@ class DateTestPage {
26336
26308
  // Load the form with data
26337
26309
  loadData() {
26338
26310
  return __awaiter(this, void 0, void 0, function* () {
26339
- const now = moment();
26311
+ const now = moment$7();
26340
26312
  const nowAtMahe = now.clone().tz(this.timezone).startOf('day');
26341
26313
  const data = {
26342
26314
  empty: toDateISOString(now.clone().add(2, 'hours')),
@@ -26414,7 +26386,7 @@ const SHARED_MATERIAL_TESTING_PAGES = [
26414
26386
  { label: 'Shared directives', divider: true },
26415
26387
  { label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
26416
26388
  ];
26417
- const routes$4 = [
26389
+ const routes$1 = [
26418
26390
  {
26419
26391
  path: '',
26420
26392
  pathMatch: 'full',
@@ -26471,7 +26443,7 @@ MaterialTestingModule.decorators = [
26471
26443
  ReactiveFormsModule,
26472
26444
  SharedMaterialModule,
26473
26445
  TranslateModule.forChild(),
26474
- RouterModule.forChild(routes$4)
26446
+ RouterModule.forChild(routes$1)
26475
26447
  ],
26476
26448
  declarations: [
26477
26449
  DateTimeTestPage,
@@ -26532,7 +26504,7 @@ ToastTestingPage.ctorParameters = () => [
26532
26504
  { type: TranslateService }
26533
26505
  ];
26534
26506
 
26535
- const routes$3 = [
26507
+ const routes$2 = [
26536
26508
  {
26537
26509
  path: 'toast',
26538
26510
  pathMatch: 'full',
@@ -26547,7 +26519,7 @@ ToastTestingModule.decorators = [
26547
26519
  CommonModule,
26548
26520
  IonicModule,
26549
26521
  TranslateModule.forChild(),
26550
- RouterModule.forChild(routes$3)
26522
+ RouterModule.forChild(routes$2)
26551
26523
  ],
26552
26524
  declarations: [
26553
26525
  ToastTestingPage
@@ -26610,7 +26582,7 @@ UploadFileTestingPage.ctorParameters = () => [
26610
26582
  { type: PopoverController }
26611
26583
  ];
26612
26584
 
26613
- const routes$2 = [
26585
+ const routes$3 = [
26614
26586
  {
26615
26587
  path: 'upload-file',
26616
26588
  pathMatch: 'full',
@@ -26625,7 +26597,7 @@ UploadFileTestingModule.decorators = [
26625
26597
  CommonModule,
26626
26598
  IonicModule,
26627
26599
  TranslateModule.forChild(),
26628
- RouterModule.forChild(routes$2)
26600
+ RouterModule.forChild(routes$3)
26629
26601
  ],
26630
26602
  declarations: [
26631
26603
  UploadFileTestingPage
@@ -27006,7 +26978,7 @@ TextPopoverTestingPage.ctorParameters = () => [
27006
26978
  { type: PopoverController }
27007
26979
  ];
27008
26980
 
27009
- const routes$1 = [
26981
+ const routes$4 = [
27010
26982
  {
27011
26983
  path: 'text-popover',
27012
26984
  pathMatch: 'full',
@@ -27021,7 +26993,7 @@ TextPopoverTestingModule.decorators = [
27021
26993
  CommonModule,
27022
26994
  IonicModule,
27023
26995
  TranslateModule.forChild(),
27024
- RouterModule.forChild(routes$1)
26996
+ RouterModule.forChild(routes$4)
27025
26997
  ],
27026
26998
  declarations: [
27027
26999
  TextPopoverTestingPage
@@ -27038,7 +27010,7 @@ const CORE_TESTING_PAGES = [
27038
27010
  { label: 'Table', page: '/testing/core/table' },
27039
27011
  { label: 'Text popover', page: '/testing/core/text-popover' }
27040
27012
  ];
27041
- const routes = [
27013
+ const routes$5 = [
27042
27014
  {
27043
27015
  path: '',
27044
27016
  pathMatch: 'full',
@@ -27062,7 +27034,7 @@ CoreTestingModule.decorators = [
27062
27034
  imports: [
27063
27035
  CommonModule,
27064
27036
  TranslateModule.forChild(),
27065
- RouterModule.forChild(routes),
27037
+ RouterModule.forChild(routes$5),
27066
27038
  // Sub modules
27067
27039
  TableTestingModule,
27068
27040
  TextPopoverTestingModule
@@ -27082,5 +27054,5 @@ CoreTestingModule.decorators = [
27082
27054
  * Generated bundle index. Do not edit.
27083
27055
  */
27084
27056
 
27085
- 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, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$b as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, DateTestPage as ɵj, NumpadTestPage as ɵk, MatBadgeIconTestPage as ɵl, ToastTestingModule as ɵm, ToastTestingPage as ɵn };
27057
+ 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, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$1 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, DateTestPage as ɵj, NumpadTestPage as ɵk, MatBadgeIconTestPage as ɵl, ToastTestingModule as ɵm, ToastTestingPage as ɵn };
27086
27058
  //# sourceMappingURL=sumaris-net.ngx-components.js.map