@sumaris-net/ngx-components 1.16.2 → 1.17.1-rc1

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
- import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, PopoverController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent, IonInfiniteScroll } from '@ionic/angular';
37
+ import { IonicModule, Platform, IonRouterOutlet, ModalController, PopoverController, IonicSafeString, createAnimation, ToastController, 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
 
@@ -8891,11 +8876,12 @@ HotkeysDialogComponent.ctorParameters = () => [
8891
8876
  ];
8892
8877
 
8893
8878
  class Hotkeys {
8894
- constructor(eventManager, dialog, document, modalController) {
8879
+ constructor(eventManager, dialog, document, modalController, popoverController) {
8895
8880
  this.eventManager = eventManager;
8896
8881
  this.dialog = dialog;
8897
8882
  this.document = document;
8898
8883
  this.modalController = modalController;
8884
+ this.popoverController = popoverController;
8899
8885
  this._debug = false;
8900
8886
  this._hotkeys = new Map();
8901
8887
  this._defaults = {
@@ -8924,7 +8910,7 @@ class Hotkeys {
8924
8910
  return new Observable(observer => {
8925
8911
  const handler = (e) => __awaiter(this, void 0, void 0, function* () {
8926
8912
  // Get top component from ModalController
8927
- const top = yield this.modalController.getTop();
8913
+ const top = (yield this.modalController.getTop()) || (yield this.popoverController.getTop());
8928
8914
  // If modal present, check its component name against hotkey element name (fix #181)
8929
8915
  if (top && top.component['name'] !== merged.elementName)
8930
8916
  return;
@@ -8950,7 +8936,7 @@ class Hotkeys {
8950
8936
  });
8951
8937
  }
8952
8938
  }
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" });
8939
+ Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController), ɵɵinject(PopoverController)); }, token: Hotkeys, providedIn: "root" });
8954
8940
  Hotkeys.decorators = [
8955
8941
  { type: Injectable, args: [{
8956
8942
  providedIn: 'root'
@@ -8960,7 +8946,8 @@ Hotkeys.ctorParameters = () => [
8960
8946
  { type: EventManager },
8961
8947
  { type: MatDialog },
8962
8948
  { type: undefined, decorators: [{ type: Inject, args: [DOCUMENT,] }] },
8963
- { type: ModalController }
8949
+ { type: ModalController },
8950
+ { type: PopoverController }
8964
8951
  ];
8965
8952
 
8966
8953
  class SharedHotkeysModule {
@@ -9124,7 +9111,7 @@ class Base64ImageReader {
9124
9111
  }
9125
9112
  }
9126
9113
 
9127
- const uuidv4$1 = uuidv4Imported;
9114
+ const uuidv4 = uuidv4Imported;
9128
9115
  class FileService {
9129
9116
  constructor(platform,
9130
9117
  //private transfer: FileTransfer,
@@ -9161,7 +9148,7 @@ class FileService {
9161
9148
  const lastSlashIndex = source.lastIndexOf('/');
9162
9149
  if (lastSlashIndex === -1)
9163
9150
  throw new Error('Invalid URL: ' + source);
9164
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
9151
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
9165
9152
  // Download into the file system
9166
9153
  if (responseType === 'file' && this.canUseFileSystem) {
9167
9154
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -9217,7 +9204,7 @@ class FileService {
9217
9204
  this._started = true;
9218
9205
  }
9219
9206
  }
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" });
9207
+ FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
9221
9208
  FileService.decorators = [
9222
9209
  { type: Injectable, args: [{
9223
9210
  providedIn: 'root',
@@ -9383,7 +9370,7 @@ class Base58 {
9383
9370
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
9384
9371
 
9385
9372
  const scrypt = require('scrypt-async');
9386
- const sha256$1 = require('hash.js/lib/hash/sha/256');
9373
+ const sha256 = require('hash.js/lib/hash/sha/256');
9387
9374
  const sha512 = require('hash.js/lib/hash/sha/512');
9388
9375
  const nacl = {
9389
9376
  sign,
@@ -9487,7 +9474,7 @@ class CryptoService {
9487
9474
  * Hash (using SHA256) a message
9488
9475
  */
9489
9476
  sha256(message) {
9490
- return sha256$1().update(message).digest('hex');
9477
+ return sha256().update(message).digest('hex');
9491
9478
  }
9492
9479
  /**
9493
9480
  * Hash (using SHA512) a message
@@ -9500,7 +9487,7 @@ class CryptoService {
9500
9487
  return nacl.util.encodeBase64(m);
9501
9488
  }
9502
9489
  }
9503
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9490
+ CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9504
9491
  CryptoService.decorators = [
9505
9492
  { type: Injectable, args: [{ providedIn: 'root' },] }
9506
9493
  ];
@@ -10363,7 +10350,7 @@ SelectPeerModal.propDecorators = {
10363
10350
  onRefresh: [{ type: Input }]
10364
10351
  };
10365
10352
 
10366
- const moment$4 = momentImported;
10353
+ const moment$3 = momentImported;
10367
10354
  const SETTINGS_STORAGE_KEY = 'settings';
10368
10355
  const SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
10369
10356
  // fixme: this constant points to static environment
@@ -10606,11 +10593,11 @@ class LocalSettingsService extends StartableService {
10606
10593
  if (!feature) {
10607
10594
  feature = {
10608
10595
  name: featureName.toLowerCase(),
10609
- lastSyncDate: moment$4().toISOString()
10596
+ lastSyncDate: moment$3().toISOString()
10610
10597
  };
10611
10598
  }
10612
10599
  else {
10613
- feature.lastSyncDate = moment$4().toISOString();
10600
+ feature.lastSyncDate = moment$3().toISOString();
10614
10601
  }
10615
10602
  this.saveOfflineFeature(feature);
10616
10603
  }
@@ -10771,7 +10758,7 @@ class LocalSettingsService extends StartableService {
10771
10758
  if (!page || !page.title || !page.path)
10772
10759
  throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
10773
10760
  // Set time
10774
- page.time = page.time || moment$4();
10761
+ page.time = page.time || moment$3();
10775
10762
  // Clean the title (remove <small> tags)
10776
10763
  if (!opts || opts.removeTitleSmallTag !== false) {
10777
10764
  const tagIndex = page.title.indexOf('</small>');
@@ -10787,7 +10774,7 @@ class LocalSettingsService extends StartableService {
10787
10774
  return page;
10788
10775
  }
10789
10776
  }
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" });
10777
+ 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
10778
  LocalSettingsService.decorators = [
10792
10779
  { type: Injectable, args: [{
10793
10780
  providedIn: 'root',
@@ -11504,7 +11491,7 @@ class NetworkService extends StartableService {
11504
11491
  });
11505
11492
  }
11506
11493
  }
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" });
11494
+ 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
11495
  NetworkService.decorators = [
11509
11496
  { type: Injectable, args: [{ providedIn: 'root' },] }
11510
11497
  ];
@@ -11515,16 +11502,16 @@ NetworkService.ctorParameters = () => [
11515
11502
  { type: CryptoService },
11516
11503
  { type: Storage },
11517
11504
  { type: LocalSettingsService },
11518
- { type: CacheService },
11505
+ { type: CacheService$1 },
11519
11506
  { type: HttpClient },
11520
11507
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
11521
- { type: Network, decorators: [{ type: Optional }] },
11522
- { type: SplashScreen, decorators: [{ type: Optional }] },
11508
+ { type: Network$1, decorators: [{ type: Optional }] },
11509
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
11523
11510
  { type: TranslateService, decorators: [{ type: Optional }] },
11524
11511
  { type: ToastController, decorators: [{ type: Optional }] }
11525
11512
  ];
11526
11513
 
11527
- const ErrorCodes$2 = {
11514
+ const ErrorCodes = {
11528
11515
  UNKNOWN_ERROR: 0,
11529
11516
  LOAD_ACCOUNT_ERROR: 1,
11530
11517
  BAD_PASSWORD: 2,
@@ -11876,7 +11863,7 @@ class EntityStore {
11876
11863
  }
11877
11864
  catch (err) {
11878
11865
  console.error(err);
11879
- throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11866
+ throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11880
11867
  }
11881
11868
  }
11882
11869
  // Emit update event
@@ -12450,7 +12437,7 @@ class EntitiesStorage extends StartableService {
12450
12437
  }
12451
12438
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
12452
12439
  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" });
12440
+ 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
12441
  EntitiesStorage.decorators = [
12455
12442
  { type: Injectable, args: [{ providedIn: 'root' },] }
12456
12443
  ];
@@ -12587,10 +12574,10 @@ function referentialToString(obj, properties) {
12587
12574
  function referentialsToString(values, properties, separator) {
12588
12575
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
12589
12576
  }
12590
- const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12577
+ const ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12591
12578
  const StatusList = Object.freeze([
12592
12579
  {
12593
- id: ɵ0$2,
12580
+ id: ɵ0$a,
12594
12581
  icon: 'checkmark',
12595
12582
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
12596
12583
  },
@@ -12865,7 +12852,7 @@ function accountToString(data) {
12865
12852
  (data.lastName || '')) || '';
12866
12853
  }
12867
12854
 
12868
- const uuidv4 = uuidv4Imported;
12855
+ const uuidv4$1 = uuidv4Imported;
12869
12856
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
12870
12857
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
12871
12858
  /**
@@ -12909,7 +12896,7 @@ function createTrackerLink(opts) {
12909
12896
  // Skip if not tracked
12910
12897
  if (!context || !context.tracked)
12911
12898
  return forward(operation);
12912
- const id = context.serializationKey || uuidv4();
12899
+ const id = context.serializationKey || uuidv4$1();
12913
12900
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
12914
12901
  // Clean context, before calling JSON.stringify (remove unused attributes)
12915
12902
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -13572,7 +13559,7 @@ class GraphqlService extends StartableService {
13572
13559
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
13573
13560
  || this.toAppError(err.networkError)
13574
13561
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
13575
- || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
13562
+ || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
13576
13563
  // If graphQL: try to convert the first error found
13577
13564
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
13578
13565
  || this.toAppError(err)
@@ -13580,7 +13567,7 @@ class GraphqlService extends StartableService {
13580
13567
  || (err.graphQLErrors && err.graphQLErrors[0])
13581
13568
  || err;
13582
13569
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
13583
- if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13570
+ if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13584
13571
  console.error('[graphql] original error: ' + err.networkError.message);
13585
13572
  this.onNetworkError.next(error);
13586
13573
  }
@@ -13591,7 +13578,7 @@ class GraphqlService extends StartableService {
13591
13578
  data: null,
13592
13579
  errors: [error],
13593
13580
  loading: false,
13594
- networkStatus: null
13581
+ networkStatus: NetworkStatus.error
13595
13582
  };
13596
13583
  }
13597
13584
  createAppErrorByCode(errorCode) {
@@ -13616,7 +13603,7 @@ class GraphqlService extends StartableService {
13616
13603
  return 'ERROR.UNAUTHORIZED';
13617
13604
  case ServerErrorCodes.FORBIDDEN:
13618
13605
  return 'ERROR.FORBIDDEN';
13619
- case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
13606
+ case ErrorCodes.UNKNOWN_NETWORK_ERROR:
13620
13607
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
13621
13608
  case ServerErrorCodes.BAD_UPDATE_DATE:
13622
13609
  return 'ERROR.BAD_UPDATE_DATE';
@@ -13647,7 +13634,7 @@ class GraphqlService extends StartableService {
13647
13634
  return undefined;
13648
13635
  }
13649
13636
  }
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" });
13637
+ 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
13638
  GraphqlService.decorators = [
13652
13639
  { type: Injectable, args: [{
13653
13640
  providedIn: 'root'
@@ -13664,7 +13651,7 @@ GraphqlService.ctorParameters = () => [
13664
13651
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
13665
13652
  ];
13666
13653
 
13667
- const sha256 = require('hash.js/lib/hash/sha/256');
13654
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
13668
13655
  class BaseGraphqlServiceOptions {
13669
13656
  }
13670
13657
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -13815,8 +13802,8 @@ class BaseGraphqlService extends StartableService {
13815
13802
  }
13816
13803
  /* -- protected methods -- */
13817
13804
  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) || '';
13805
+ const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13806
+ const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13820
13807
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
13821
13808
  }
13822
13809
  findMutableWatchQueries(opts) {
@@ -13886,7 +13873,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
13886
13873
  /* ------------------------------------
13887
13874
  * GraphQL queries
13888
13875
  * ------------------------------------*/
13889
- const Fragments$1 = {
13876
+ const Fragments = {
13890
13877
  account: gql `
13891
13878
  fragment AccountFragment on AccountVO {
13892
13879
  id
@@ -13921,14 +13908,14 @@ const Fragments$1 = {
13921
13908
  }`
13922
13909
  };
13923
13910
  // Load account query
13924
- const LoadQuery$1 = gql `
13911
+ const LoadQuery = gql `
13925
13912
  query Account {
13926
13913
  data: account {
13927
13914
  ...AccountFragment
13928
13915
  }
13929
13916
  }
13930
- ${Fragments$1.account}
13931
- ${Fragments$1.settings}
13917
+ ${Fragments.account}
13918
+ ${Fragments.settings}
13932
13919
  `;
13933
13920
  // Check email query
13934
13921
  const IsEmailExistsQuery = gql `
@@ -13943,21 +13930,21 @@ const AccountMutations = {
13943
13930
  ...AccountFragment
13944
13931
  }
13945
13932
  }
13946
- ${Fragments$1.account}
13947
- ${Fragments$1.settings}`,
13933
+ ${Fragments.account}
13934
+ ${Fragments.settings}`,
13948
13935
  create: gql `mutation CreateAccount($data:AccountVOInput){
13949
13936
  data: createAccount(account: $data){
13950
13937
  ...AccountFragment
13951
13938
  }
13952
13939
  }
13953
- ${Fragments$1.account}
13954
- ${Fragments$1.settings}`,
13940
+ ${Fragments.account}
13941
+ ${Fragments.settings}`,
13955
13942
  saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
13956
13943
  data: saveSettings(settings: $data){
13957
13944
  ...UserSettingsFragment
13958
13945
  }
13959
13946
  }
13960
- ${Fragments$1.settings}`
13947
+ ${Fragments.settings}`
13961
13948
  };
13962
13949
  // Sent confirmation email
13963
13950
  const SendConfirmEmailMutation = gql `
@@ -14272,7 +14259,7 @@ class AccountService extends BaseGraphqlService {
14272
14259
  catch (error) {
14273
14260
  console.error(error);
14274
14261
  this.resetData();
14275
- throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
14262
+ throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
14276
14263
  }
14277
14264
  // Store pubkey+keypair
14278
14265
  this._cache.pubkey = Base58.encode(keypair.publicKey);
@@ -14306,7 +14293,7 @@ class AccountService extends BaseGraphqlService {
14306
14293
  }
14307
14294
  catch (err) {
14308
14295
  // If account not found, check if email is valid
14309
- if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
14296
+ if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
14310
14297
  // Check email exists
14311
14298
  if (data.username.indexOf('@') !== -1) {
14312
14299
  let isEmailExists;
@@ -14318,11 +14305,11 @@ class AccountService extends BaseGraphqlService {
14318
14305
  }
14319
14306
  // Email not exists (no account)
14320
14307
  if (!isEmailExists) {
14321
- throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
14308
+ throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
14322
14309
  }
14323
14310
  }
14324
14311
  // Email exists, so error = 'bad password'
14325
- throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
14312
+ throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
14326
14313
  }
14327
14314
  throw err; // resend the first error
14328
14315
  }
@@ -14468,8 +14455,8 @@ class AccountService extends BaseGraphqlService {
14468
14455
  // Load remotely
14469
14456
  else {
14470
14457
  const { data } = yield this.graphql.query({
14471
- query: LoadQuery$1,
14472
- error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14458
+ query: LoadQuery,
14459
+ error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14473
14460
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
14474
14461
  });
14475
14462
  json = data;
@@ -14496,7 +14483,7 @@ class AccountService extends BaseGraphqlService {
14496
14483
  return __awaiter(this, void 0, void 0, function* () {
14497
14484
  const isEmailExists = yield this.isEmailExists(email);
14498
14485
  if (isEmailExists) {
14499
- throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14486
+ throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14500
14487
  }
14501
14488
  });
14502
14489
  }
@@ -14532,7 +14519,7 @@ class AccountService extends BaseGraphqlService {
14532
14519
  locale
14533
14520
  },
14534
14521
  error: {
14535
- code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
14522
+ code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
14536
14523
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
14537
14524
  }
14538
14525
  });
@@ -14548,7 +14535,7 @@ class AccountService extends BaseGraphqlService {
14548
14535
  code
14549
14536
  },
14550
14537
  error: {
14551
- code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
14538
+ code: ErrorCodes.CONFIRM_EMAIL_FAILED,
14552
14539
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
14553
14540
  }
14554
14541
  });
@@ -14627,7 +14614,7 @@ class AccountService extends BaseGraphqlService {
14627
14614
  throw error;
14628
14615
  console.error(error);
14629
14616
  throw {
14630
- code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
14617
+ code: ErrorCodes.LOAD_ACCOUNT_ERROR,
14631
14618
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
14632
14619
  };
14633
14620
  }
@@ -14797,7 +14784,7 @@ class AccountService extends BaseGraphqlService {
14797
14784
  if (!isNew) {
14798
14785
  const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
14799
14786
  if (!existingAccount || !existingAccount.updateDate) {
14800
- throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14787
+ throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14801
14788
  }
14802
14789
  this.copyIdAndUpdateDate(existingAccount, account);
14803
14790
  }
@@ -14809,7 +14796,7 @@ class AccountService extends BaseGraphqlService {
14809
14796
  mutation: isNew ? AccountMutations.create : AccountMutations.save,
14810
14797
  variables: { data: json },
14811
14798
  error: {
14812
- code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
14799
+ code: ErrorCodes.SAVE_ACCOUNT_ERROR,
14813
14800
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
14814
14801
  }
14815
14802
  });
@@ -14836,7 +14823,7 @@ class AccountService extends BaseGraphqlService {
14836
14823
  mutation: AccountMutations.saveSettings,
14837
14824
  variables: { data: json },
14838
14825
  error: {
14839
- code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
14826
+ code: ErrorCodes.SAVE_SETTINGS_ERROR,
14840
14827
  message: 'ERROR.SAVE_SETTINGS_ERROR'
14841
14828
  }
14842
14829
  });
@@ -14858,7 +14845,7 @@ class AccountService extends BaseGraphqlService {
14858
14845
  if (counter > 4) {
14859
14846
  if (this._debug)
14860
14847
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
14861
- throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14848
+ throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14862
14849
  }
14863
14850
  // Check if valid
14864
14851
  if (token) {
@@ -14868,7 +14855,7 @@ class AccountService extends BaseGraphqlService {
14868
14855
  token
14869
14856
  },
14870
14857
  error: {
14871
- code: ErrorCodes$2.UNAUTHORIZED,
14858
+ code: ErrorCodes.UNAUTHORIZED,
14872
14859
  message: 'ERROR.UNAUTHORIZED'
14873
14860
  },
14874
14861
  fetchPolicy: 'no-cache'
@@ -14884,7 +14871,7 @@ class AccountService extends BaseGraphqlService {
14884
14871
  }
14885
14872
  // Generate a new token
14886
14873
  const challengeError = {
14887
- code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
14874
+ code: ErrorCodes.AUTH_CHALLENGE_ERROR,
14888
14875
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
14889
14876
  };
14890
14877
  const data = yield this.graphql.query({
@@ -14962,7 +14949,7 @@ class AccountService extends BaseGraphqlService {
14962
14949
  query: AccountSubscriptions.listenChanges,
14963
14950
  variables,
14964
14951
  error: {
14965
- code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
14952
+ code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
14966
14953
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
14967
14954
  }
14968
14955
  }).pipe(map(({ data }) => data),
@@ -14991,7 +14978,7 @@ class AccountService extends BaseGraphqlService {
14991
14978
  return Toasts.show(this.toastController, this.translate, opts);
14992
14979
  }
14993
14980
  }
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" });
14981
+ 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
14982
  AccountService.decorators = [
14996
14983
  { type: Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
14997
14984
  ];
@@ -15259,7 +15246,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
15259
15246
  /* ------------------------------------
15260
15247
  * GraphQL queries
15261
15248
  * ------------------------------------*/
15262
- const Fragments = {
15249
+ const Fragments$1 = {
15263
15250
  config: gql `
15264
15251
  fragment ConfigFragment on ConfigurationVO {
15265
15252
  id
@@ -15286,13 +15273,13 @@ const Fragments = {
15286
15273
  }
15287
15274
  `
15288
15275
  };
15289
- const LoadQuery = gql `
15276
+ const LoadQuery$1 = gql `
15290
15277
  query Configuration{
15291
15278
  data: configuration{
15292
15279
  ...ConfigFragment
15293
15280
  }
15294
15281
  }
15295
- ${Fragments.config}
15282
+ ${Fragments$1.config}
15296
15283
  `;
15297
15284
  // Save (create or update) account mutation
15298
15285
  const SaveMutation = gql `
@@ -15301,7 +15288,7 @@ const SaveMutation = gql `
15301
15288
  ...ConfigFragment
15302
15289
  }
15303
15290
  }
15304
- ${Fragments.config}
15291
+ ${Fragments$1.config}
15305
15292
  `;
15306
15293
  const ClearCache = gql `
15307
15294
  query ClearCache($name: String) {
@@ -15352,12 +15339,12 @@ class ConfigService extends BaseGraphqlService {
15352
15339
  return __awaiter(this, void 0, void 0, function* () {
15353
15340
  const now = Date.now();
15354
15341
  console.debug('[config] Loading Pod configuration...');
15355
- const query = opts && opts.query || LoadQuery;
15342
+ const query = opts && opts.query || LoadQuery$1;
15356
15343
  const variables = opts && opts.variables || undefined;
15357
15344
  const res = yield this.graphql.query({
15358
15345
  query,
15359
15346
  variables,
15360
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15347
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15361
15348
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
15362
15349
  });
15363
15350
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -15390,7 +15377,7 @@ class ConfigService extends BaseGraphqlService {
15390
15377
  data: json
15391
15378
  },
15392
15379
  error: {
15393
- code: ErrorCodes$2.SAVE_CONFIG_ERROR,
15380
+ code: ErrorCodes.SAVE_CONFIG_ERROR,
15394
15381
  message: 'ERROR.SAVE_CONFIG_ERROR'
15395
15382
  }
15396
15383
  });
@@ -15416,7 +15403,7 @@ class ConfigService extends BaseGraphqlService {
15416
15403
  const res = yield this.graphql.query({
15417
15404
  query: CacheStatistics,
15418
15405
  variables: null,
15419
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15406
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15420
15407
  fetchPolicy: 'network-only'
15421
15408
  });
15422
15409
  const data = res && res.cacheStatistics || undefined;
@@ -15432,7 +15419,7 @@ class ConfigService extends BaseGraphqlService {
15432
15419
  const res = yield this.graphql.query({
15433
15420
  query: ClearCache,
15434
15421
  variables,
15435
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15422
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15436
15423
  fetchPolicy: 'no-cache'
15437
15424
  });
15438
15425
  const data = res && res.clearCache || undefined;
@@ -15591,7 +15578,7 @@ class ConfigService extends BaseGraphqlService {
15591
15578
  });
15592
15579
  }
15593
15580
  }
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" });
15581
+ 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
15582
  ConfigService.decorators = [
15596
15583
  { type: Injectable, args: [{
15597
15584
  providedIn: 'root',
@@ -15611,7 +15598,7 @@ ConfigService.ctorParameters = () => [
15611
15598
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
15612
15599
  ];
15613
15600
 
15614
- const moment$3 = momentImported;
15601
+ const moment$4 = momentImported;
15615
15602
  const AndroidOsEnvironment = Object.freeze({
15616
15603
  DIRECTORY_DOWNLOADS: 'Download',
15617
15604
  DIRECTORY_DOWNLOADS_OLD: 'Downloads',
@@ -15845,16 +15832,16 @@ class PlatformService extends StartableService {
15845
15832
  }
15846
15833
  // config moment lib
15847
15834
  try {
15848
- moment$3.locale(event.lang);
15835
+ moment$4.locale(event.lang);
15849
15836
  console.debug('[platform] Use locale {' + event.lang + '}');
15850
15837
  }
15851
15838
  // If error, fallback to en
15852
15839
  catch (err) {
15853
- moment$3.locale('en');
15840
+ moment$4.locale('en');
15854
15841
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
15855
15842
  }
15856
15843
  // Config date adapter
15857
- this.dateAdapter.setLocale(moment$3.locale());
15844
+ this.dateAdapter.setLocale(moment$4.locale());
15858
15845
  }
15859
15846
  });
15860
15847
  this.settings.onChange.subscribe(data => {
@@ -16055,7 +16042,7 @@ class PlatformService extends StartableService {
16055
16042
  });
16056
16043
  }
16057
16044
  }
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" });
16045
+ 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
16046
  PlatformService.decorators = [
16060
16047
  { type: Injectable, args: [{ providedIn: 'root' },] }
16061
16048
  ];
@@ -16070,15 +16057,15 @@ PlatformService.ctorParameters = () => [
16070
16057
  { type: NetworkService },
16071
16058
  { type: AccountService },
16072
16059
  { type: ConfigService },
16073
- { type: CacheService },
16060
+ { type: CacheService$1 },
16074
16061
  { type: Storage },
16075
16062
  { type: AudioProvider },
16076
16063
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
16077
- { type: StatusBar, decorators: [{ type: Optional }] },
16064
+ { type: StatusBar$1, decorators: [{ type: Optional }] },
16078
16065
  { type: Keyboard, decorators: [{ type: Optional }] },
16079
- { type: SplashScreen, decorators: [{ type: Optional }] },
16080
- { type: InAppBrowser, decorators: [{ type: Optional }] },
16081
- { type: Downloader, decorators: [{ type: Optional }] }
16066
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
16067
+ { type: InAppBrowser$1, decorators: [{ type: Optional }] },
16068
+ { type: Downloader$1, decorators: [{ type: Optional }] }
16082
16069
  ];
16083
16070
 
16084
16071
  class AppHelpModal {
@@ -16142,7 +16129,7 @@ class MatStepperI18n extends MatStepperIntl {
16142
16129
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
16143
16130
  }
16144
16131
  }
16145
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
16132
+ MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
16146
16133
  MatStepperI18n.decorators = [
16147
16134
  { type: Injectable, args: [{ providedIn: 'root' },] }
16148
16135
  ];
@@ -17274,7 +17261,7 @@ class TextForm extends AppForm {
17274
17261
  TextForm.decorators = [
17275
17262
  { type: Component, args: [{
17276
17263
  selector: 'app-text-form',
17277
- template: "<form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n <mat-form-field *ngIf=\"multiline; else monoline\">\n <textarea\n #textArea\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"control.disabled\"\n [class.fixed-height]=\"!autoHeight\"\n [cdkTextareaAutosize]=\"autoHeight\"\n (keyup)=\"textAreaChanged($event)\"\n (keydown.control.enter)=\"onSubmit.emit($event)\"\n [autofocus]=\"autofocus\"\n ></textarea>\n <mat-error *ngIf=\"control.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: control.errors['maxlength'] }}\n </mat-error>\n <mat-hint *ngIf=\"maxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: textArea.value?.length || 0, max: maxLength } }}\n </mat-hint>\n </mat-form-field>\n <ng-template #monoline>\n <mat-form-field>\n <input\n #textInput\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n [appAutofocus]=\"autofocus\"\n />\n <mat-error *ngIf=\"control.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: control.errors['maxlength'] }}\n </mat-error>\n <mat-hint *ngIf=\"maxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: textInput.value?.length || 0, max: maxLength } }}\n </mat-hint>\n </mat-form-field>\n </ng-template>\n</form>\n",
17264
+ template: "<form class=\"form-container\" [formGroup]=\"form\" (ngSubmit)=\"doSubmit($event)\">\n <mat-form-field *ngIf=\"multiline; else monoline\">\n <textarea\n #textArea\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"control.disabled\"\n [class.fixed-height]=\"!autoHeight\"\n [cdkTextareaAutosize]=\"autoHeight\"\n (keyup)=\"textAreaChanged($event)\"\n (keydown.control.enter)=\"onSubmit.emit($event)\"\n [autofocus]=\"autofocus\"\n ></textarea>\n <mat-error *ngIf=\"control.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: control.errors['maxlength'] }}\n </mat-error>\n <mat-hint *ngIf=\"maxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: textArea.value?.length || 0, max: maxLength } }}\n </mat-hint>\n </mat-form-field>\n <ng-template #monoline>\n <mat-form-field>\n <input\n #textInput\n matInput\n [formControl]=\"control\"\n [placeholder]=\"placeholder\"\n [readonly]=\"disabled\"\n [appAutofocus]=\"autofocus\"\n (keydown.control.enter)=\"onSubmit.emit($event)\"\n />\n <mat-error *ngIf=\"control.hasError('maxlength')\">\n {{ 'ERROR.FIELD_MAX_LENGTH' | translate: control.errors['maxlength'] }}\n </mat-error>\n <mat-hint *ngIf=\"maxLength\" align=\"end\">\n {{ 'INFO.TEXT_PROGRESS' | translate: { current: textInput.value?.length || 0, max: maxLength } }}\n </mat-hint>\n </mat-form-field>\n </ng-template>\n</form>\n",
17278
17265
  styles: ["textarea.fixed-height{height:11.5em}"]
17279
17266
  },] }
17280
17267
  ];
@@ -17363,7 +17350,7 @@ class TextPopover {
17363
17350
  TextPopover.decorators = [
17364
17351
  { type: Component, args: [{
17365
17352
  selector: 'app-text-popover',
17366
- template: "\n<ion-content class=\"ion-padding\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-text-form #form [placeholder]=\"placeholder\"\n [multiline]=\"multiline\"\n [maxLength]=\"maxLength\"\n [autofocus]=\"editing && autofocus\"\n (onSubmit)=\"onValidate($event)\"\n ></app-text-form>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n\n </ion-col>\n\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n >\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n"
17353
+ template: "\n<ion-content class=\"ion-padding\" cdkTrapFocus [cdkTrapFocusAutoCapture]=\"true\">\n <ion-item *ngIf=\"form.error\" visible-xs visible-sm visible-mobile lines=\"none\">\n <ion-icon color=\"danger\" slot=\"start\" name=\"alert-circle\"></ion-icon>\n <ion-label color=\"danger\" class=\"error\" [innerHTML]=\"form.error|translate\"></ion-label>\n </ion-item>\n\n <app-text-form #form [placeholder]=\"placeholder\"\n [multiline]=\"multiline\"\n [maxLength]=\"maxLength\"\n [autofocus]=\"editing && autofocus\"\n (onSubmit)=\"onValidate($event)\"\n ></app-text-form>\n</ion-content>\n\n<ion-footer>\n <ion-toolbar>\n <ion-row class=\"ion-no-padding\" nowrap>\n <ion-col>\n\n </ion-col>\n\n <ion-col size=\"auto\">\n <ion-button fill=\"clear\" color=\"dark\" (click)=\"cancel()\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n <ion-button\n [fill]=\"disabled ? 'clear' : 'solid'\"\n (click)=\"onValidate($event)\"\n (keyup.enter)=\"onValidate($event)\"\n color=\"tertiary\"\n [disabled]=\"disabled\"\n [title]=\"'COMMON.BTN_VALIDATE_WITH_SHORTCUT_HELP'|translate\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-toolbar>\n</ion-footer>\n"
17367
17354
  },] }
17368
17355
  ];
17369
17356
  TextPopover.ctorParameters = () => [
@@ -17692,47 +17679,52 @@ class JobUtils {
17692
17679
  .then(() => {
17693
17680
  if (opts === null || opts === void 0 ? void 0 : opts.maxProgression)
17694
17681
  progression.next(opts.maxProgression);
17695
- if (opts === null || opts === void 0 ? void 0 : opts.progression)
17696
- opts.progression.complete();
17682
+ progression.complete();
17697
17683
  })
17698
17684
  .catch(err => progression.error(err));
17699
17685
  return progression;
17700
17686
  }
17701
17687
  static fetchAllPages(loadPageFn, opts) {
17702
- var _a;
17703
17688
  return __awaiter(this, void 0, void 0, function* () {
17704
- const maxProgression = opts && opts.maxProgression || undefined;
17689
+ const maxProgression = toNumber(opts === null || opts === void 0 ? void 0 : opts.maxProgression, 100);
17690
+ const progression = opts === null || opts === void 0 ? void 0 : opts.progression;
17705
17691
  let total;
17706
17692
  let pageCount;
17707
17693
  let progressionStep;
17708
17694
  let currentPageDataCount;
17709
- const fetchSize = opts && opts.fetchSize || 1000;
17695
+ const fetchSize = toNumber(opts === null || opts === void 0 ? void 0 : opts.fetchSize, 1000);
17696
+ if (fetchSize <= 0)
17697
+ throw new Error('Unable to fetch pages: invalid fetchSize: ' + fetchSize);
17710
17698
  let offset = 0;
17711
17699
  let data = [];
17712
17700
  do {
17713
17701
  if (opts && opts.logPrefix)
17714
17702
  console.debug(`${opts.logPrefix} Fetching page #${offset / fetchSize}...`);
17715
- // Get some items, using paging
17703
+ // Fetch a page
17716
17704
  const res = yield loadPageFn(offset, fetchSize);
17705
+ // Concat to previous result
17717
17706
  data = data.concat(res.data);
17707
+ // Compute variables, for next loop
17718
17708
  currentPageDataCount = res.data && res.data.length || 0;
17719
17709
  offset += currentPageDataCount;
17720
- // Set total count (only if not already set)
17710
+ // Set total count (only once)
17721
17711
  if (isNil(total) && isNotNil(res.total)) {
17722
17712
  total = res.total;
17723
17713
  // Compute the number of page
17724
17714
  pageCount = Math.round(res.total / fetchSize + 0.5); // Round to HALF_UP integer
17725
17715
  // Compute step, by dividing maxProgression by number of page
17726
- const actualProgression = Math.max(0, toNumber(opts && ((_a = opts.progression) === null || _a === void 0 ? void 0 : _a.value), 0));
17727
- progressionStep = maxProgression
17728
- ? (maxProgression - actualProgression) / pageCount
17729
- : undefined /*if 0 reset to undefined*/;
17716
+ if (progression) {
17717
+ progressionStep = maxProgression / pageCount;
17718
+ // DEBUG
17719
+ if (opts && opts.logPrefix)
17720
+ console.debug(`${opts.logPrefix} {pageCount: ${pageCount}, progression: ${progression.value}, pageProgressionStep: ${progressionStep}}`);
17721
+ }
17730
17722
  }
17731
17723
  // Increment progression on each iteration (if possible)
17732
- if (opts && opts.progression && isNotNil(progressionStep)) {
17733
- opts.progression.next(opts.progression.value + progressionStep);
17724
+ if (isNotNil(progressionStep)) {
17725
+ progression.next(progression.value + progressionStep);
17734
17726
  }
17735
- if (opts && opts.onPageLoaded)
17727
+ if (opts === null || opts === void 0 ? void 0 : opts.onPageLoaded)
17736
17728
  opts.onPageLoaded(res);
17737
17729
  } while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
17738
17730
  // Complete progression to reach progressionStep value (because of round)
@@ -17743,14 +17735,19 @@ class JobUtils {
17743
17735
  total = data.length;
17744
17736
  pageCount = Math.round(data.length / fetchSize + 0.5);
17745
17737
  }
17746
- const lastProgressionStep = opts.maxProgression - (progressionStep * pageCount);
17747
- if (opts && opts.progression && lastProgressionStep > 0) {
17748
- opts.progression.next(opts.progression.value + lastProgressionStep);
17749
- }
17738
+ // Compute final increment, using the real page count
17739
+ progressionStep = Math.max(0, maxProgression - (progressionStep * pageCount));
17740
+ }
17741
+ // Or increment once (e.g. when total is not known, in received LoadResult)
17742
+ else if (progression) {
17743
+ progressionStep = maxProgression;
17750
17744
  }
17751
- // Or increment once
17752
- else if (opts && opts.progression && opts.maxProgression) {
17753
- opts.progression.next(opts.maxProgression);
17745
+ // DEBUG
17746
+ if (opts && opts.logPrefix)
17747
+ console.debug(`${opts.logPrefix} All pages fetched - {progression: ${progression.value}, lastProgressionStep: ${progressionStep}`);
17748
+ // Final increment
17749
+ if (progression && progressionStep > 0) {
17750
+ progression.next(progression.value + progressionStep);
17754
17751
  }
17755
17752
  return {
17756
17753
  data,
@@ -17968,7 +17965,7 @@ function state2side(state) {
17968
17965
  return 1;
17969
17966
  }
17970
17967
  }
17971
- const ɵ0$1 = (defaultStateSize) => [
17968
+ const ɵ0$b = (defaultStateSize) => [
17972
17969
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
17973
17970
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
17974
17971
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -17976,7 +17973,7 @@ const ɵ0$1 = (defaultStateSize) => [
17976
17973
  const SCALE_OPTIONS_DEFAULT = {
17977
17974
  startColor: rgbArrayMap.red,
17978
17975
  startStates: [0, 2, 3],
17979
- startStepsFn: ɵ0$1
17976
+ startStepsFn: ɵ0$b
17980
17977
  };
17981
17978
  /**
17982
17979
  * Internal function, that create a colors scale, using iteration
@@ -18773,7 +18770,7 @@ class UserSettingsValidatorService extends AppValidatorService {
18773
18770
  });
18774
18771
  }
18775
18772
  }
18776
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18773
+ UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18777
18774
  UserSettingsValidatorService.decorators = [
18778
18775
  { type: Injectable, args: [{ providedIn: 'root' },] }
18779
18776
  ];
@@ -18817,7 +18814,7 @@ class AccountValidatorService extends AppValidatorService {
18817
18814
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
18818
18815
  }
18819
18816
  }
18820
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18817
+ AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18821
18818
  AccountValidatorService.decorators = [
18822
18819
  { type: Injectable, args: [{ providedIn: 'root' },] }
18823
18820
  ];
@@ -19382,7 +19379,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
19382
19379
  });
19383
19380
  }
19384
19381
  }
19385
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
19382
+ LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
19386
19383
  LocalSettingsValidatorService.decorators = [
19387
19384
  { type: Injectable, args: [{ providedIn: 'root' },] }
19388
19385
  ];
@@ -20001,7 +19998,7 @@ class IsOnFieldModePipe {
20001
19998
  return value === 'FIELD';
20002
19999
  }
20003
20000
  }
20004
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
20001
+ IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
20005
20002
  IsOnFieldModePipe.decorators = [
20006
20003
  { type: Pipe, args: [{
20007
20004
  name: 'isOnField'
@@ -20013,7 +20010,7 @@ class IsNotOnFieldModePipe {
20013
20010
  return value !== 'FIELD';
20014
20011
  }
20015
20012
  }
20016
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
20013
+ IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
20017
20014
  IsNotOnFieldModePipe.decorators = [
20018
20015
  { type: Pipe, args: [{
20019
20016
  name: 'isNotOnField'
@@ -20028,7 +20025,7 @@ class PersonToStringPipe {
20028
20025
  return PersonUtils.personToString(value);
20029
20026
  }
20030
20027
  }
20031
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
20028
+ PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
20032
20029
  PersonToStringPipe.decorators = [
20033
20030
  { type: Pipe, args: [{
20034
20031
  name: 'personToString'
@@ -20413,7 +20410,7 @@ class IsLoginAccountPipe {
20413
20410
  return value && value.pubkey && true;
20414
20411
  }
20415
20412
  }
20416
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
20413
+ IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
20417
20414
  IsLoginAccountPipe.decorators = [
20418
20415
  { type: Pipe, args: [{
20419
20416
  name: 'isLogin'
@@ -20425,7 +20422,7 @@ class AccountToStringPipe {
20425
20422
  return accountToString(value);
20426
20423
  }
20427
20424
  }
20428
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
20425
+ AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
20429
20426
  AccountToStringPipe.decorators = [
20430
20427
  { type: Pipe, args: [{
20431
20428
  name: 'accountToString'
@@ -20440,7 +20437,7 @@ class DepartmentToStringPipe {
20440
20437
  return departmentToString(value);
20441
20438
  }
20442
20439
  }
20443
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
20440
+ DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
20444
20441
  DepartmentToStringPipe.decorators = [
20445
20442
  { type: Pipe, args: [{
20446
20443
  name: 'departmentToString'
@@ -20536,7 +20533,7 @@ class MenuService {
20536
20533
  this._visibleSubject.next(value);
20537
20534
  }
20538
20535
  }
20539
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20536
+ MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20540
20537
  MenuService.decorators = [
20541
20538
  { type: Injectable, args: [{
20542
20539
  providedIn: 'root'
@@ -20566,11 +20563,6 @@ class MenuComponent {
20566
20563
  this.appVersion = this.environment.version;
20567
20564
  this.side = 'left';
20568
20565
  this._debug = !environment.production;
20569
- this.onResize();
20570
- }
20571
- onResize(event) {
20572
- this._screenWidth = window.innerWidth;
20573
- console.debug('[menu] Screen size (px): ' + this._screenWidth);
20574
20566
  }
20575
20567
  ngOnInit() {
20576
20568
  return __awaiter(this, void 0, void 0, function* () {
@@ -20801,8 +20793,7 @@ MenuComponent.propDecorators = {
20801
20793
  appName: [{ type: Input }],
20802
20794
  appVersion: [{ type: Input }],
20803
20795
  side: [{ type: Input }],
20804
- splitPane: [{ type: ViewChild, args: ['splitPane', { static: true },] }],
20805
- onResize: [{ type: HostListener, args: ['window:resize', ['$event'],] }]
20796
+ splitPane: [{ type: ViewChild, args: ['splitPane', { static: true },] }]
20806
20797
  };
20807
20798
 
20808
20799
  class AppMenuModule {
@@ -20998,7 +20989,7 @@ class AuthGuardService {
20998
20989
  }));
20999
20990
  }
21000
20991
  }
21001
- 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" });
20992
+ AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
21002
20993
  AuthGuardService.decorators = [
21003
20994
  { type: Injectable, args: [{ providedIn: 'root' },] }
21004
20995
  ];
@@ -21040,7 +21031,7 @@ class BaseEntityService extends BaseGraphqlService {
21040
21031
  query,
21041
21032
  variables: { id },
21042
21033
  fetchPolicy: opts && opts.fetchPolicy || undefined,
21043
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21034
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21044
21035
  })
21045
21036
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
21046
21037
  ? (data && this.fromObject(data))
@@ -21055,7 +21046,7 @@ class BaseEntityService extends BaseGraphqlService {
21055
21046
  query,
21056
21047
  variables: { id },
21057
21048
  fetchPolicy: opts && opts.fetchPolicy || undefined,
21058
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21049
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
21059
21050
  });
21060
21051
  // Convert to entity
21061
21052
  return (!opts || opts.toEntity !== false)
@@ -21086,7 +21077,7 @@ class BaseEntityService extends BaseGraphqlService {
21086
21077
  totalFieldName: withTotal ? 'total' : undefined,
21087
21078
  insertFilterFn: filter && filter.asFilterFn(),
21088
21079
  variables,
21089
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
21080
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
21090
21081
  fetchPolicy: opts && opts.fetchPolicy || undefined
21091
21082
  })
21092
21083
  .pipe(map(({ data, total }) => {
@@ -21122,7 +21113,7 @@ class BaseEntityService extends BaseGraphqlService {
21122
21113
  const { data, total } = yield this.graphql.query({
21123
21114
  query,
21124
21115
  variables,
21125
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
21116
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
21126
21117
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
21127
21118
  });
21128
21119
  const entities = (!opts || opts.toEntity !== false) ?
@@ -21161,7 +21152,7 @@ class BaseEntityService extends BaseGraphqlService {
21161
21152
  variables: {
21162
21153
  filter: filter && filter.asPodObject()
21163
21154
  },
21164
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
21155
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
21165
21156
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
21166
21157
  });
21167
21158
  return res.total;
@@ -21197,7 +21188,7 @@ class BaseEntityService extends BaseGraphqlService {
21197
21188
  variables: {
21198
21189
  data: json
21199
21190
  },
21200
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21191
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21201
21192
  update: (proxy, { data }) => {
21202
21193
  const savedEntities = data && data.data;
21203
21194
  if (savedEntities) {
@@ -21253,7 +21244,7 @@ class BaseEntityService extends BaseGraphqlService {
21253
21244
  variables: {
21254
21245
  data: json
21255
21246
  },
21256
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21247
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
21257
21248
  update: (cache, { data }) => {
21258
21249
  // Update entity
21259
21250
  const savedEntity = data && data.data;
@@ -21301,7 +21292,7 @@ class BaseEntityService extends BaseGraphqlService {
21301
21292
  refetchQueries: this.getRefetchQueriesForMutation(opts),
21302
21293
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
21303
21294
  variables: { ids },
21304
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21295
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21305
21296
  update: (cache, res) => {
21306
21297
  // Remove from cache
21307
21298
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -21342,7 +21333,7 @@ class BaseEntityService extends BaseGraphqlService {
21342
21333
  refetchQueries: this.getRefetchQueriesForMutation(opts),
21343
21334
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
21344
21335
  variables: { id },
21345
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21336
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
21346
21337
  update: (proxy, res) => {
21347
21338
  // Remove from cache
21348
21339
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -21378,7 +21369,7 @@ class BaseEntityService extends BaseGraphqlService {
21378
21369
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache',
21379
21370
  variables,
21380
21371
  error: {
21381
- code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
21372
+ code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
21382
21373
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
21383
21374
  }
21384
21375
  })
@@ -21564,7 +21555,7 @@ class EntitiesTableDataSource extends TableDataSource {
21564
21555
  if (this._debug)
21565
21556
  invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
21566
21557
  // Stop with an error
21567
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21558
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21568
21559
  }
21569
21560
  this._editingRowCount = 0;
21570
21561
  let data;
@@ -22435,14 +22426,14 @@ class AppTable {
22435
22426
  return __awaiter(this, void 0, void 0, function* () {
22436
22427
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
22437
22428
  if (this.readOnly) {
22438
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22429
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22439
22430
  }
22440
22431
  this.resetError();
22441
22432
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
22442
22433
  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;
22443
22434
  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;
22444
22435
  if (!this.confirmEditCreate()) {
22445
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22436
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22446
22437
  }
22447
22438
  // Mark as saving
22448
22439
  this.markAsSaving();
@@ -22561,7 +22552,7 @@ class AppTable {
22561
22552
  var _a;
22562
22553
  return __awaiter(this, void 0, void 0, function* () {
22563
22554
  if (this.readOnly) {
22564
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22555
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22565
22556
  }
22566
22557
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
22567
22558
  return 0; // SKip
@@ -24141,7 +24132,7 @@ class AppEntityEditor extends AppTabEditor {
24141
24132
  try {
24142
24133
  const data = yield this.dataService.load(id, opts);
24143
24134
  if (!data)
24144
- throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
24135
+ throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
24145
24136
  this._usageMode = this.computeUsageMode(data);
24146
24137
  yield this.onEntityLoaded(data, opts);
24147
24138
  yield this.updateView(data, opts);
@@ -25093,7 +25084,7 @@ class UserEventService extends BaseGraphqlService {
25093
25084
  EntityUtils.copyIdAndUpdateDate(source, target);
25094
25085
  }
25095
25086
  }
25096
- 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" });
25087
+ 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" });
25097
25088
  UserEventService.decorators = [
25098
25089
  { type: Injectable, args: [{ providedIn: 'root' },] }
25099
25090
  ];
@@ -25474,7 +25465,7 @@ class PersonService extends BaseEntityService {
25474
25465
  return target;
25475
25466
  }
25476
25467
  }
25477
- 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" });
25468
+ PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
25478
25469
  PersonService.decorators = [
25479
25470
  { type: Injectable, args: [{ providedIn: 'root' },] }
25480
25471
  ];
@@ -25505,7 +25496,7 @@ class PersonValidatorService {
25505
25496
  return this.formBuilder.group(formConfig);
25506
25497
  }
25507
25498
  }
25508
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
25499
+ PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
25509
25500
  PersonValidatorService.decorators = [
25510
25501
  { type: Injectable, args: [{ providedIn: 'root' },] }
25511
25502
  ];
@@ -25699,16 +25690,16 @@ AdminModule.decorators = [
25699
25690
  ];
25700
25691
  AdminModule.ctorParameters = () => [];
25701
25692
 
25702
- const ɵ0 = {
25693
+ const ɵ0$c = {
25703
25694
  profile: 'ADMIN'
25704
25695
  };
25705
- const routes$5 = [
25696
+ const routes = [
25706
25697
  {
25707
25698
  path: 'users',
25708
25699
  pathMatch: 'full',
25709
25700
  component: UsersPage,
25710
25701
  canActivate: [AuthGuardService],
25711
- data: ɵ0
25702
+ data: ɵ0$c
25712
25703
  }
25713
25704
  ];
25714
25705
  class AdminRoutingModule {
@@ -25718,33 +25709,33 @@ AdminRoutingModule.decorators = [
25718
25709
  imports: [
25719
25710
  SharedRoutingModule,
25720
25711
  AdminModule,
25721
- RouterModule.forChild(routes$5)
25712
+ RouterModule.forChild(routes)
25722
25713
  ],
25723
25714
  exports: [RouterModule]
25724
25715
  },] }
25725
25716
  ];
25726
25717
 
25727
- const ErrorCodes = {
25718
+ const ErrorCodes$2 = {
25728
25719
  LOAD_PERSONS_ERROR: 100,
25729
25720
  SAVE_PERSONS_ERROR: 101,
25730
25721
  DELETE_PERSONS_ERROR: 102,
25731
25722
  };
25732
25723
 
25733
- class EntityTestClass$1 {
25724
+ class EntityTestClass {
25734
25725
  }
25735
- const FAKE_ENTITIES$1 = [
25726
+ const FAKE_ENTITIES = [
25736
25727
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
25737
25728
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
25738
25729
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
25739
25730
  ];
25740
- function deepCopy$1(values, size) {
25731
+ function deepCopy(values, size) {
25741
25732
  if (isNil(size)) {
25742
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
25733
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
25743
25734
  }
25744
25735
  let result = [];
25745
25736
  let i = 1;
25746
25737
  while (result.length < size) {
25747
- result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
25738
+ result = result.concat((values || FAKE_ENTITIES).map(entity => {
25748
25739
  const name = entity.name + ' #' + i;
25749
25740
  return Object.assign(Object.assign({}, entity), { id: i++, name });
25750
25741
  }));
@@ -25754,7 +25745,7 @@ function deepCopy$1(values, size) {
25754
25745
  class AutocompleteTestPage {
25755
25746
  constructor(formBuilder) {
25756
25747
  this.formBuilder = formBuilder;
25757
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
25748
+ this._items = deepCopy(FAKE_ENTITIES, 100);
25758
25749
  this._$items = new BehaviorSubject(undefined);
25759
25750
  this.autocompleteFields = new MatAutocompleteConfigHolder();
25760
25751
  this.memoryHide = false;
@@ -25798,7 +25789,7 @@ class AutocompleteTestPage {
25798
25789
  });
25799
25790
  // From items
25800
25791
  this.autocompleteFields.add('entity-items-large', {
25801
- items: FAKE_ENTITIES$1.slice(),
25792
+ items: FAKE_ENTITIES.slice(),
25802
25793
  attributes: ['label', 'name', 'description', 'comments'],
25803
25794
  displayWith: this.entityToString
25804
25795
  });
@@ -25808,12 +25799,12 @@ class AutocompleteTestPage {
25808
25799
  loadData() {
25809
25800
  return __awaiter(this, void 0, void 0, function* () {
25810
25801
  const data = {
25811
- entity: deepCopy$1(FAKE_ENTITIES$1)[0],
25802
+ entity: deepCopy(FAKE_ENTITIES)[0],
25812
25803
  // This item is NOT in the items list => i should be displayed anyway
25813
25804
  missingEntity: {
25814
25805
  id: -1, label: '??', name: 'Missing item'
25815
25806
  },
25816
- disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
25807
+ disableEntity: deepCopy(FAKE_ENTITIES)[2]
25817
25808
  };
25818
25809
  this.form.setValue(data);
25819
25810
  // Load observables
@@ -25956,13 +25947,13 @@ LatLongTestPage.ctorParameters = () => [
25956
25947
  { type: FormBuilder }
25957
25948
  ];
25958
25949
 
25959
- const moment$2 = momentImported;
25950
+ const moment$5 = momentImported;
25960
25951
  class SwipeTestPage {
25961
25952
  constructor(formBuilder, dateFormatPipe) {
25962
25953
  this.formBuilder = formBuilder;
25963
25954
  this.dateFormatPipe = dateFormatPipe;
25964
25955
  this.$dates = new BehaviorSubject(undefined);
25965
- this._today = moment$2().startOf('day');
25956
+ this._today = moment$5().startOf('day');
25966
25957
  this.form = formBuilder.group({
25967
25958
  empty: [null, Validators.required],
25968
25959
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -25975,7 +25966,7 @@ class SwipeTestPage {
25975
25966
  ngOnInit() {
25976
25967
  const dates = [];
25977
25968
  for (let d = 0; d < 7; d++) {
25978
- dates[d] = moment$2(this._today).add(d - 3, 'day');
25969
+ dates[d] = moment$5(this._today).add(d - 3, 'day');
25979
25970
  }
25980
25971
  this.$dates.next(dates);
25981
25972
  this.loadData();
@@ -26016,7 +26007,7 @@ SwipeTestPage.ctorParameters = () => [
26016
26007
  { type: DateFormatPipe }
26017
26008
  ];
26018
26009
 
26019
- const moment$1 = momentImported;
26010
+ const moment$6 = momentImported;
26020
26011
  class DateTimeTestPage {
26021
26012
  constructor(platform, formBuilder, cd) {
26022
26013
  this.platform = platform;
@@ -26048,7 +26039,7 @@ class DateTimeTestPage {
26048
26039
  // Load the form with data
26049
26040
  loadData() {
26050
26041
  return __awaiter(this, void 0, void 0, function* () {
26051
- const now = moment$1();
26042
+ const now = moment$6();
26052
26043
  const data = {
26053
26044
  empty: toDateISOString(now.clone().add(2, 'hours')),
26054
26045
  enable: toDateISOString(now),
@@ -26109,9 +26100,9 @@ DateTimeTestPage.ctorParameters = () => [
26109
26100
  { type: ChangeDetectorRef }
26110
26101
  ];
26111
26102
 
26112
- class EntityTestClass {
26103
+ class EntityTestClass$1 {
26113
26104
  }
26114
- const FAKE_ENTITIES = [
26105
+ const FAKE_ENTITIES$1 = [
26115
26106
  { id: 1, label: 'AAA', name: 'Item A' },
26116
26107
  { id: 2, label: 'BBB', name: 'Item B' },
26117
26108
  { id: 3, label: 'CCC', name: 'Item C' },
@@ -26120,14 +26111,14 @@ const FAKE_ENTITIES = [
26120
26111
  { id: 6, label: 'FFF', name: 'Item F' },
26121
26112
  { id: 7, label: 'GGG', name: 'Item G' }
26122
26113
  ];
26123
- function deepCopy(values, size) {
26114
+ function deepCopy$1(values, size) {
26124
26115
  if (isNil(size)) {
26125
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
26116
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
26126
26117
  }
26127
26118
  let result = [];
26128
26119
  let i = 1;
26129
26120
  while (result.length < size) {
26130
- result = result.concat((values || FAKE_ENTITIES).map(entity => {
26121
+ result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
26131
26122
  const name = entity.name + ' #' + i;
26132
26123
  return Object.assign(Object.assign({}, entity), { id: i++, name });
26133
26124
  }));
@@ -26137,7 +26128,7 @@ function deepCopy(values, size) {
26137
26128
  class ChipsTestPage {
26138
26129
  constructor(formBuilder) {
26139
26130
  this.formBuilder = formBuilder;
26140
- this._items = deepCopy(FAKE_ENTITIES, 100);
26131
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
26141
26132
  this._$items = new BehaviorSubject(undefined);
26142
26133
  this.autocompleteFields = new MatAutocompleteConfigHolder();
26143
26134
  this.form = formBuilder.group({
@@ -26176,7 +26167,7 @@ class ChipsTestPage {
26176
26167
  // Load the form with data
26177
26168
  loadData() {
26178
26169
  return __awaiter(this, void 0, void 0, function* () {
26179
- const items = deepCopy(FAKE_ENTITIES);
26170
+ const items = deepCopy$1(FAKE_ENTITIES$1);
26180
26171
  const data = {
26181
26172
  entity: items.slice(0, 1),
26182
26173
  entityInitial: items.slice(1, 2),
@@ -26292,7 +26283,7 @@ NumpadTestPage.ctorParameters = () => [
26292
26283
  { type: FormBuilder }
26293
26284
  ];
26294
26285
 
26295
- const moment = momentImported;
26286
+ const moment$7 = momentImported;
26296
26287
  class DateTestPage {
26297
26288
  constructor(platform, formBuilder, cd) {
26298
26289
  this.platform = platform;
@@ -26326,7 +26317,7 @@ class DateTestPage {
26326
26317
  // Load the form with data
26327
26318
  loadData() {
26328
26319
  return __awaiter(this, void 0, void 0, function* () {
26329
- const now = moment();
26320
+ const now = moment$7();
26330
26321
  const nowAtMahe = now.clone().tz(this.timezone).startOf('day');
26331
26322
  const data = {
26332
26323
  empty: toDateISOString(now.clone().add(2, 'hours')),
@@ -26404,7 +26395,7 @@ const SHARED_MATERIAL_TESTING_PAGES = [
26404
26395
  { label: 'Shared directives', divider: true },
26405
26396
  { label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
26406
26397
  ];
26407
- const routes$4 = [
26398
+ const routes$1 = [
26408
26399
  {
26409
26400
  path: '',
26410
26401
  pathMatch: 'full',
@@ -26461,7 +26452,7 @@ MaterialTestingModule.decorators = [
26461
26452
  ReactiveFormsModule,
26462
26453
  SharedMaterialModule,
26463
26454
  TranslateModule.forChild(),
26464
- RouterModule.forChild(routes$4)
26455
+ RouterModule.forChild(routes$1)
26465
26456
  ],
26466
26457
  declarations: [
26467
26458
  DateTimeTestPage,
@@ -26522,7 +26513,7 @@ ToastTestingPage.ctorParameters = () => [
26522
26513
  { type: TranslateService }
26523
26514
  ];
26524
26515
 
26525
- const routes$3 = [
26516
+ const routes$2 = [
26526
26517
  {
26527
26518
  path: 'toast',
26528
26519
  pathMatch: 'full',
@@ -26537,7 +26528,7 @@ ToastTestingModule.decorators = [
26537
26528
  CommonModule,
26538
26529
  IonicModule,
26539
26530
  TranslateModule.forChild(),
26540
- RouterModule.forChild(routes$3)
26531
+ RouterModule.forChild(routes$2)
26541
26532
  ],
26542
26533
  declarations: [
26543
26534
  ToastTestingPage
@@ -26600,7 +26591,7 @@ UploadFileTestingPage.ctorParameters = () => [
26600
26591
  { type: PopoverController }
26601
26592
  ];
26602
26593
 
26603
- const routes$2 = [
26594
+ const routes$3 = [
26604
26595
  {
26605
26596
  path: 'upload-file',
26606
26597
  pathMatch: 'full',
@@ -26615,7 +26606,7 @@ UploadFileTestingModule.decorators = [
26615
26606
  CommonModule,
26616
26607
  IonicModule,
26617
26608
  TranslateModule.forChild(),
26618
- RouterModule.forChild(routes$2)
26609
+ RouterModule.forChild(routes$3)
26619
26610
  ],
26620
26611
  declarations: [
26621
26612
  UploadFileTestingPage
@@ -26996,7 +26987,7 @@ TextPopoverTestingPage.ctorParameters = () => [
26996
26987
  { type: PopoverController }
26997
26988
  ];
26998
26989
 
26999
- const routes$1 = [
26990
+ const routes$4 = [
27000
26991
  {
27001
26992
  path: 'text-popover',
27002
26993
  pathMatch: 'full',
@@ -27011,7 +27002,7 @@ TextPopoverTestingModule.decorators = [
27011
27002
  CommonModule,
27012
27003
  IonicModule,
27013
27004
  TranslateModule.forChild(),
27014
- RouterModule.forChild(routes$1)
27005
+ RouterModule.forChild(routes$4)
27015
27006
  ],
27016
27007
  declarations: [
27017
27008
  TextPopoverTestingPage
@@ -27028,7 +27019,7 @@ const CORE_TESTING_PAGES = [
27028
27019
  { label: 'Table', page: '/testing/core/table' },
27029
27020
  { label: 'Text popover', page: '/testing/core/text-popover' }
27030
27021
  ];
27031
- const routes = [
27022
+ const routes$5 = [
27032
27023
  {
27033
27024
  path: '',
27034
27025
  pathMatch: 'full',
@@ -27052,7 +27043,7 @@ CoreTestingModule.decorators = [
27052
27043
  imports: [
27053
27044
  CommonModule,
27054
27045
  TranslateModule.forChild(),
27055
- RouterModule.forChild(routes),
27046
+ RouterModule.forChild(routes$5),
27056
27047
  // Sub modules
27057
27048
  TableTestingModule,
27058
27049
  TextPopoverTestingModule
@@ -27072,5 +27063,5 @@ CoreTestingModule.decorators = [
27072
27063
  * Generated bundle index. Do not edit.
27073
27064
  */
27074
27065
 
27075
- 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 };
27066
+ 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 };
27076
27067
  //# sourceMappingURL=sumaris-net.ngx-components.js.map