@sumaris-net/ngx-components 1.10.7 → 1.10.9-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, ViewChildren, HostListener, 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, ViewChildren, HostListener, 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, noop as noop$9, Observable, defer, of, from, combineLatest, EMPTY } from 'rxjs';
40
35
  import { filter, first, map, takeUntil, switchMap, startWith, debounceTime, takeWhile, tap, distinctUntilChanged, mergeMap, catchError, throttleTime, skip } from 'rxjs/operators';
41
- import * as i1$1 from '@ngx-translate/core';
42
36
  import { TranslateService, TranslateModule } from '@ngx-translate/core';
43
- import * as i1$4 from '@ionic/angular';
44
37
  import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent } from '@ionic/angular';
45
38
  import * as momentImported from 'moment';
46
39
  import { isMoment } from 'moment';
47
- import * as i1 from '@angular/material-moment-adapter';
48
40
  import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
49
41
  import { Keyboard } from '@ionic-native/keyboard/ngx';
50
42
  import { TextMaskModule } from 'angular2-text-mask';
@@ -54,38 +46,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
54
46
  import { MatDividerModule } from '@angular/material/divider';
55
47
  import { MatTooltipModule } from '@angular/material/tooltip';
56
48
  import { MatChipsModule } from '@angular/material/chips';
57
- import * as i3$3 from '@angular/router';
58
49
  import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
59
- import * as i1$5 from '@angular/platform-browser';
60
50
  import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
61
- import * as i2$2 from '@angular/common/http';
62
51
  import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
63
52
  import { ColorPickerModule } from 'ngx-color-picker';
64
- import { NativeAudio } from '@ionic-native/native-audio/ngx';
65
- import { Vibration } from '@ionic-native/vibration/ngx';
53
+ import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
54
+ import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
66
55
  import { AudioManagement } from '@ionic-native/audio-management/ngx';
67
- import * as i2 from '@ionic-native/native-audio/ngx/index';
68
- import * as i3 from '@ionic-native/vibration/ngx/index';
69
- import * as i4 from '@ionic-native/audio-management/ngx/index';
56
+ import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
57
+ import { Vibration } from '@ionic-native/vibration/ngx/index';
58
+ import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
70
59
  import * as uuidv4Imported from 'uuid/v4';
71
60
  import { DragDropModule } from '@angular/cdk/drag-drop';
72
61
  import { MarkdownModule } from 'ngx-markdown';
73
62
  import { sign, box, hash, verify } from 'tweetnacl';
74
- import * as i3$1 from '@ionic/storage';
75
63
  import { Storage, IonicStorageModule } from '@ionic/storage';
76
64
  import 'zone.js/dist/zone-error';
77
- import { SplashScreen } from '@ionic-native/splash-screen/ngx';
78
- import { Connection, Network } from '@ionic-native/network/ngx';
79
- import { CacheService, CacheModule } from 'ionic-cache';
80
- import * as i6 from 'ionic-cache/dist/cache.service';
81
- import * as i9 from '@ionic-native/network/ngx/index';
82
- import * as i10 from '@ionic-native/splash-screen/ngx/index';
83
- import { StatusBar } from '@ionic-native/status-bar/ngx';
84
- import * as i2$4 from '@angular/cdk/platform';
65
+ import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
66
+ import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
67
+ import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
68
+ import { CacheService } from 'ionic-cache/dist/cache.service';
69
+ import { Network } from '@ionic-native/network/ngx/index';
70
+ import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
71
+ import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
85
72
  import { Platform as Platform$1 } from '@angular/cdk/platform';
86
- import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
73
+ import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
87
74
  import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
88
- import * as i2$3 from 'apollo-angular';
89
75
  import { Apollo } from 'apollo-angular';
90
76
  import { WebSocketLink } from '@apollo/client/link/ws';
91
77
  import { getMainDefinition } from '@apollo/client/utilities';
@@ -93,14 +79,13 @@ import { RetryLink } from '@apollo/client/link/retry';
93
79
  import QueueLink from 'apollo-link-queue';
94
80
  import SerializingLink from 'apollo-link-serialize';
95
81
  import loggerLink from 'apollo-link-logger';
96
- import * as i3$2 from 'apollo-angular/http';
97
82
  import { HttpLink } from 'apollo-angular/http';
98
83
  import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
99
- import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
100
- import * as i14 from '@ionic-native/status-bar/ngx/index';
101
- import * as i15 from '@ionic-native/keyboard/ngx/index';
102
- import * as i17 from '@ionic-native/in-app-browser/ngx/index';
103
- import * as i18 from '@ionic-native/downloader/ngx/index';
84
+ import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
85
+ import { StatusBar } from '@ionic-native/status-bar/ngx/index';
86
+ import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
87
+ import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
88
+ import { Downloader } from '@ionic-native/downloader/ngx/index';
104
89
  import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
105
90
  import { SelectionModel } from '@angular/cdk/collections';
106
91
  import { NgxJdenticonModule } from 'ngx-jdenticon';
@@ -991,14 +976,14 @@ class MatAutocompleteConfigHolder {
991
976
  return this.fields[fieldName] || this.add(fieldName);
992
977
  }
993
978
  }
994
- const noop$8 = (_) => { };
995
- const ɵ0$c = noop$8;
979
+ const noop = (_) => { };
980
+ const ɵ0 = noop;
996
981
  class MatAutocompleteField {
997
982
  constructor(cd, formGroupDir) {
998
983
  this.cd = cd;
999
984
  this.formGroupDir = formGroupDir;
1000
- this._onChangeCallback = noop$8;
1001
- this._onTouchedCallback = noop$8;
985
+ this._onChangeCallback = noop;
986
+ this._onTouchedCallback = noop;
1002
987
  this.logPrefix = '[mat-autocomplete] ';
1003
988
  this.formControlName = null;
1004
989
  this.required = false;
@@ -1718,7 +1703,7 @@ class DateFormatPipe {
1718
1703
  return this.dateAdapter.format(date, displayFormat);
1719
1704
  }
1720
1705
  }
1721
- DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1706
+ DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
1722
1707
  DateFormatPipe.decorators = [
1723
1708
  { type: Pipe, args: [{
1724
1709
  name: 'dateFormat'
@@ -1730,7 +1715,7 @@ DateFormatPipe.ctorParameters = () => [
1730
1715
  { type: TranslateService }
1731
1716
  ];
1732
1717
 
1733
- const moment$6 = momentImported;
1718
+ const moment = momentImported;
1734
1719
  class DateDiffDurationPipe {
1735
1720
  constructor(dateAdapter, translate) {
1736
1721
  this.dateAdapter = dateAdapter;
@@ -1746,17 +1731,17 @@ class DateDiffDurationPipe {
1746
1731
  return this.format(startDate, endDate);
1747
1732
  }
1748
1733
  format(startDate, endDate) {
1749
- const duration = moment$6.duration(endDate.diff(startDate));
1734
+ const duration = moment.duration(endDate.diff(startDate));
1750
1735
  if (duration.asMinutes() < 0)
1751
1736
  return '';
1752
- const timeDuration = moment$6(0)
1737
+ const timeDuration = moment(0)
1753
1738
  .hour(duration.hours())
1754
1739
  .minute(duration.minutes());
1755
1740
  const days = Math.floor(duration.asDays());
1756
1741
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
1757
1742
  }
1758
1743
  }
1759
- 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" });
1744
+ DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
1760
1745
  DateDiffDurationPipe.decorators = [
1761
1746
  { type: Pipe, args: [{
1762
1747
  name: 'dateDiffDuration'
@@ -1777,7 +1762,7 @@ class DateFromNowPipe {
1777
1762
  return date ? date.fromNow(args && args.withoutSuffix) : '';
1778
1763
  }
1779
1764
  }
1780
- DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1765
+ DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
1781
1766
  DateFromNowPipe.decorators = [
1782
1767
  { type: Pipe, args: [{
1783
1768
  name: 'dateFromNow'
@@ -1846,7 +1831,7 @@ function formatToDD(value, opts) {
1846
1831
  value *= -1;
1847
1832
  }
1848
1833
  }
1849
- let degrees = roundFloat$1(value, opts.maxDecimals).toString();
1834
+ let degrees = roundFloat(value, opts.maxDecimals).toString();
1850
1835
  // Add sign
1851
1836
  let sign = negative ? '-' : '+';
1852
1837
  if (opts.placeholderChar) {
@@ -1897,7 +1882,7 @@ function formatToDDMMSS(value, opts) {
1897
1882
  }
1898
1883
  let degrees = Math.trunc(value);
1899
1884
  let minutes = Math.trunc((value - degrees) * 60);
1900
- let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1885
+ let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
1901
1886
  while (seconds >= 60) {
1902
1887
  seconds -= 60;
1903
1888
  minutes += 1;
@@ -1965,7 +1950,7 @@ function formatToDDMM(value, opts) {
1965
1950
  }
1966
1951
  }
1967
1952
  let degrees = Math.trunc(value);
1968
- let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
1953
+ let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
1969
1954
  while (minutes >= 60) {
1970
1955
  minutes -= 60;
1971
1956
  degrees += 1;
@@ -2016,15 +2001,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
2016
2001
  return NaN;
2017
2002
  }
2018
2003
  if (pattern === 'DD')
2019
- return roundFloat$1(degrees, maxDecimals);
2004
+ return roundFloat(degrees, maxDecimals);
2020
2005
  const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
2021
2006
  const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
2022
2007
  const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
2023
2008
  const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
2024
2009
  degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
2025
- return roundFloat$1(degrees, maxDecimals);
2010
+ return roundFloat(degrees, maxDecimals);
2026
2011
  }
2027
- function roundFloat$1(input, maxDecimals) {
2012
+ function roundFloat(input, maxDecimals) {
2028
2013
  if (maxDecimals > 0) {
2029
2014
  const powDecimal = Math.pow(10, maxDecimals);
2030
2015
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -2044,7 +2029,7 @@ class LatLongFormatPipe {
2044
2029
  return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
2045
2030
  }
2046
2031
  }
2047
- LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2032
+ LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
2048
2033
  LatLongFormatPipe.decorators = [
2049
2034
  { type: Pipe, args: [{
2050
2035
  name: 'latLongFormat'
@@ -2056,7 +2041,7 @@ class LatitudeFormatPipe {
2056
2041
  this.transform = formatLatitude;
2057
2042
  }
2058
2043
  }
2059
- LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2044
+ LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
2060
2045
  LatitudeFormatPipe.decorators = [
2061
2046
  { type: Pipe, args: [{
2062
2047
  name: 'latitudeFormat'
@@ -2068,7 +2053,7 @@ class LongitudeFormatPipe {
2068
2053
  this.transform = formatLongitude;
2069
2054
  }
2070
2055
  }
2071
- LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2056
+ LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
2072
2057
  LongitudeFormatPipe.decorators = [
2073
2058
  { type: Pipe, args: [{
2074
2059
  name: 'longitudeFormat'
@@ -2088,7 +2073,7 @@ class NumberFormatPipe {
2088
2073
  }
2089
2074
  }
2090
2075
  }
2091
- NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2076
+ NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
2092
2077
  NumberFormatPipe.decorators = [
2093
2078
  { type: Pipe, args: [{
2094
2079
  name: 'numberFormat'
@@ -2128,7 +2113,7 @@ class HighlightPipe {
2128
2113
  }
2129
2114
  }
2130
2115
  }
2131
- HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2116
+ HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
2132
2117
  HighlightPipe.decorators = [
2133
2118
  { type: Pipe, args: [{
2134
2119
  name: 'highlight'
@@ -2193,7 +2178,7 @@ FileSizePipe.decorators = [
2193
2178
  { type: Pipe, args: [{ name: 'fileSize' },] }
2194
2179
  ];
2195
2180
 
2196
- const moment$5 = momentImported;
2181
+ const moment$1 = momentImported;
2197
2182
  const DATE_UNIX_TIMESTAMP = 'X';
2198
2183
  const DATE_UNIX_MS_TIMESTAMP = 'x';
2199
2184
  class DateUtils {
@@ -2235,32 +2220,32 @@ function fromDateISOString(value) {
2235
2220
  if (!value || isMoment(value))
2236
2221
  return value;
2237
2222
  // Parse the input value, as a ISO date time
2238
- const date = moment$5(value, DATE_ISO_PATTERN);
2223
+ const date = moment$1(value, DATE_ISO_PATTERN);
2239
2224
  if (date.isValid())
2240
2225
  return date;
2241
2226
  // Not valid: trying to convert from unix timestamp
2242
2227
  if (typeof value === 'string') {
2243
2228
  console.warn('Wrong date format - Trying to convert from local time: ' + value);
2244
2229
  if (value.length === 10) {
2245
- return moment$5(value, DATE_UNIX_TIMESTAMP);
2230
+ return moment$1(value, DATE_UNIX_TIMESTAMP);
2246
2231
  }
2247
2232
  else if (value.length === 13) {
2248
- return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
2233
+ return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
2249
2234
  }
2250
2235
  }
2251
2236
  console.warn('Unable to parse date: ' + value);
2252
2237
  return undefined;
2253
2238
  }
2254
2239
  function fromUnixTimestamp(timeInSec) {
2255
- return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
2240
+ return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
2256
2241
  }
2257
2242
  function fromUnixMsTimestamp(timeInMs) {
2258
- return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2243
+ return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
2259
2244
  }
2260
2245
  function toDuration(value, unit) {
2261
2246
  if (!value)
2262
2247
  return undefined;
2263
- const duration = moment$5.duration(value, unit);
2248
+ const duration = moment$1.duration(value, unit);
2264
2249
  // fix 990+ ms
2265
2250
  if (duration.milliseconds() >= 990) {
2266
2251
  duration.add(1000 - duration.milliseconds(), 'ms');
@@ -2289,7 +2274,7 @@ class DurationPipe {
2289
2274
  return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
2290
2275
  }
2291
2276
  }
2292
- DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
2277
+ DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
2293
2278
  DurationPipe.decorators = [
2294
2279
  { type: Pipe, args: [{
2295
2280
  name: 'duration'
@@ -2310,7 +2295,7 @@ class MathAbsPipe {
2310
2295
  }
2311
2296
  }
2312
2297
  }
2313
- MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2298
+ MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
2314
2299
  MathAbsPipe.decorators = [
2315
2300
  { type: Pipe, args: [{
2316
2301
  name: 'mathAbs'
@@ -2322,7 +2307,7 @@ class EvenPipe {
2322
2307
  return val % 2 === 0;
2323
2308
  }
2324
2309
  }
2325
- EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2310
+ EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
2326
2311
  EvenPipe.decorators = [
2327
2312
  { type: Pipe, args: [{
2328
2313
  name: 'even'
@@ -2334,7 +2319,7 @@ class OddPipe {
2334
2319
  return val % 2 !== 0;
2335
2320
  }
2336
2321
  }
2337
- OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2322
+ OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
2338
2323
  OddPipe.decorators = [
2339
2324
  { type: Pipe, args: [{
2340
2325
  name: 'odd'
@@ -2442,7 +2427,7 @@ class MapGetPipe {
2442
2427
  return val[key];
2443
2428
  }
2444
2429
  }
2445
- MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2430
+ MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
2446
2431
  MapGetPipe.decorators = [
2447
2432
  { type: Pipe, args: [{
2448
2433
  name: 'mapGet'
@@ -2456,7 +2441,7 @@ class MapKeysPipe {
2456
2441
  return Object.keys(map);
2457
2442
  }
2458
2443
  }
2459
- MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2444
+ MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
2460
2445
  MapKeysPipe.decorators = [
2461
2446
  { type: Pipe, args: [{
2462
2447
  name: 'mapKeys'
@@ -2470,7 +2455,7 @@ class MapValuesPipe {
2470
2455
  return Object.values(map);
2471
2456
  }
2472
2457
  }
2473
- MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2458
+ MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
2474
2459
  MapValuesPipe.decorators = [
2475
2460
  { type: Pipe, args: [{
2476
2461
  name: 'mapValues'
@@ -2483,7 +2468,7 @@ class IsNotNilOrBlankPipe {
2483
2468
  return isNotNilOrBlank(value);
2484
2469
  }
2485
2470
  }
2486
- IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2471
+ IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
2487
2472
  IsNotNilOrBlankPipe.decorators = [
2488
2473
  { type: Pipe, args: [{
2489
2474
  name: 'isNotNilOrBlank'
@@ -2495,7 +2480,7 @@ class IsNilOrBlankPipe {
2495
2480
  return isNilOrBlank(value);
2496
2481
  }
2497
2482
  }
2498
- IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2483
+ IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
2499
2484
  IsNilOrBlankPipe.decorators = [
2500
2485
  { type: Pipe, args: [{
2501
2486
  name: 'isNilOrBlank'
@@ -2507,7 +2492,7 @@ class ToStringPipe {
2507
2492
  return (value !== null && value !== undefined) ? value.toString() : '';
2508
2493
  }
2509
2494
  }
2510
- ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2495
+ ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
2511
2496
  ToStringPipe.decorators = [
2512
2497
  { type: Pipe, args: [{
2513
2498
  name: 'toString'
@@ -2519,7 +2504,7 @@ class StrLengthPipe {
2519
2504
  return value && value.length || 0;
2520
2505
  }
2521
2506
  }
2522
- StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2507
+ StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
2523
2508
  StrLengthPipe.decorators = [
2524
2509
  { type: Pipe, args: [{
2525
2510
  name: 'strLength'
@@ -2596,7 +2581,7 @@ class TranslateContextService {
2596
2581
  return translations[keys[keys.length - 1]]; // Return the last keys translation
2597
2582
  }
2598
2583
  }
2599
- TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2584
+ TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
2600
2585
  TranslateContextService.decorators = [
2601
2586
  { type: Injectable, args: [{ providedIn: 'root' },] }
2602
2587
  ];
@@ -2646,7 +2631,7 @@ class PropertyGetPipe {
2646
2631
  args && args.defaultValue);
2647
2632
  }
2648
2633
  }
2649
- PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2634
+ PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
2650
2635
  PropertyGetPipe.decorators = [
2651
2636
  { type: Pipe, args: [{
2652
2637
  name: 'propertyGet'
@@ -2671,7 +2656,7 @@ NgInitDirective.propDecorators = {
2671
2656
  ngInit: [{ type: Output }]
2672
2657
  };
2673
2658
 
2674
- const moment$4 = momentImported;
2659
+ const moment$2 = momentImported;
2675
2660
  // @dynamic
2676
2661
  class SharedValidators {
2677
2662
  static getDoubleRegexp(maxDecimals) {
@@ -2688,7 +2673,7 @@ class SharedValidators {
2688
2673
  }
2689
2674
  static validDate(control) {
2690
2675
  const value = control.value;
2691
- const date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
2676
+ const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
2692
2677
  if (date && (!date.isValid() || date.year() < 1970)) {
2693
2678
  return { validDate: true };
2694
2679
  }
@@ -3762,7 +3747,7 @@ class FormErrorTranslator {
3762
3747
  return errorKey;
3763
3748
  }
3764
3749
  }
3765
- 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" });
3750
+ FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
3766
3751
  FormErrorTranslator.decorators = [
3767
3752
  { type: Injectable, args: [{ providedIn: 'root' },] }
3768
3753
  ];
@@ -3948,7 +3933,7 @@ const isIpad = (win) => {
3948
3933
  }
3949
3934
  return false;
3950
3935
  };
3951
- const ɵ0$b = isIpad;
3936
+ const ɵ0$1 = isIpad;
3952
3937
  const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
3953
3938
  const isAndroid = (win) => testUserAgent(win, /android|sink/i);
3954
3939
  const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
@@ -4140,9 +4125,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
4140
4125
  const hour = parseInt(durationParts[0] || '0');
4141
4126
  const minute = parseInt(durationParts[1] || '0');
4142
4127
  const value = hour + (minute + 0.5) / 60;
4143
- return roundFloat(value, maxDecimals);
4128
+ return roundFloat$1(value, maxDecimals);
4144
4129
  }
4145
- function roundFloat(input, maxDecimals) {
4130
+ function roundFloat$1(input, maxDecimals) {
4146
4131
  if (maxDecimals > 0) {
4147
4132
  const powDecimal = Math.pow(10, maxDecimals);
4148
4133
  return Math.trunc(input * powDecimal + 0.5) / powDecimal;
@@ -4166,9 +4151,9 @@ const MASKS = {
4166
4151
  DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
4167
4152
  }
4168
4153
  };
4169
- const noop$7 = () => {
4154
+ const noop$1 = () => {
4170
4155
  };
4171
- const ɵ0$a = noop$7;
4156
+ const ɵ0$2 = noop$1;
4172
4157
  class MatLatLongField {
4173
4158
  constructor(platform, translate, formBuilder, cd, formGroupDir) {
4174
4159
  this.platform = platform;
@@ -4176,8 +4161,8 @@ class MatLatLongField {
4176
4161
  this.formBuilder = formBuilder;
4177
4162
  this.cd = cd;
4178
4163
  this.formGroupDir = formGroupDir;
4179
- this._onChangeCallback = noop$7;
4180
- this._onTouchedCallback = noop$7;
4164
+ this._onChangeCallback = noop$1;
4165
+ this._onTouchedCallback = noop$1;
4181
4166
  this._subscription = new Subscription();
4182
4167
  this.disabling = false;
4183
4168
  this.writing = false;
@@ -4514,14 +4499,14 @@ SharedMatLatLongModule.decorators = [
4514
4499
  },] }
4515
4500
  ];
4516
4501
 
4517
- const DEFAULT_VALUE_ACCESSOR$5 = {
4502
+ const DEFAULT_VALUE_ACCESSOR = {
4518
4503
  provide: NG_VALUE_ACCESSOR,
4519
4504
  useExisting: forwardRef(() => MatDate),
4520
4505
  multi: true
4521
4506
  };
4522
- const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4523
- const noop$6 = () => { };
4524
- const ɵ0$9 = noop$6;
4507
+ const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4508
+ const noop$2 = () => { };
4509
+ const ɵ0$3 = noop$2;
4525
4510
  class MatDate {
4526
4511
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4527
4512
  this.dateAdapter = dateAdapter;
@@ -4530,12 +4515,12 @@ class MatDate {
4530
4515
  this.cd = cd;
4531
4516
  this.keyboard = keyboard;
4532
4517
  this.formGroupDir = formGroupDir;
4533
- this._onChangeCallback = noop$6;
4534
- this._onTouchedCallback = noop$6;
4518
+ this._onChangeCallback = noop$2;
4519
+ this._onTouchedCallback = noop$2;
4535
4520
  this._subscription = new Subscription();
4536
4521
  this.writing = true;
4537
4522
  this.disabling = false;
4538
- this.dayMask = DAY_MASK$2;
4523
+ this.dayMask = DAY_MASK;
4539
4524
  this.disabled = false;
4540
4525
  this.floatLabel = 'auto';
4541
4526
  this.readonly = false;
@@ -4772,7 +4757,7 @@ MatDate.decorators = [
4772
4757
  selector: 'mat-date-field',
4773
4758
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors.msg}}</mat-error>\n </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n\n",
4774
4759
  providers: [
4775
- DEFAULT_VALUE_ACCESSOR$5,
4760
+ DEFAULT_VALUE_ACCESSOR,
4776
4761
  ],
4777
4762
  changeDetection: ChangeDetectionStrategy.OnPush,
4778
4763
  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%}"]
@@ -4805,17 +4790,17 @@ MatDate.propDecorators = {
4805
4790
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
4806
4791
  };
4807
4792
 
4808
- const DEFAULT_VALUE_ACCESSOR$4 = {
4793
+ const DEFAULT_VALUE_ACCESSOR$1 = {
4809
4794
  provide: NG_VALUE_ACCESSOR,
4810
4795
  useExisting: forwardRef(() => MatDateTime),
4811
4796
  multi: true
4812
4797
  };
4813
4798
  const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
4814
4799
  const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
4815
- const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4816
- const noop$5 = () => {
4800
+ const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
4801
+ const noop$3 = () => {
4817
4802
  };
4818
- const ɵ0$8 = noop$5;
4803
+ const ɵ0$4 = noop$3;
4819
4804
  class MatDateTime {
4820
4805
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
4821
4806
  this.platform = platform;
@@ -4825,14 +4810,14 @@ class MatDateTime {
4825
4810
  this.cd = cd;
4826
4811
  this.keyboard = keyboard;
4827
4812
  this.formGroupDir = formGroupDir;
4828
- this._onChangeCallback = noop$5;
4829
- this._onTouchedCallback = noop$5;
4813
+ this._onChangeCallback = noop$3;
4814
+ this._onTouchedCallback = noop$3;
4830
4815
  this._subscription = new Subscription();
4831
4816
  this.writing = true;
4832
4817
  this.disabling = false;
4833
4818
  this._readonly = false;
4834
4819
  this.dayMask = DAY_MASK$1;
4835
- this.hourMask = HOUR_MASK$1;
4820
+ this.hourMask = HOUR_MASK;
4836
4821
  this.floatLabel = 'auto';
4837
4822
  this.compact = false;
4838
4823
  this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
@@ -5144,7 +5129,7 @@ MatDateTime.decorators = [
5144
5129
  selector: 'mat-date-time-field',
5145
5130
  template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable + time -->\n<ng-template #writable >\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding no-wrap\" nowrap>\n\n <!-- day -->\n <ion-col class=\"day ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dateFormControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dateFormControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix #datePickerButton2 (click)=\"openDatePicker($event, datePicker)\" [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (timeFormControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"timeFormControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"timeFormControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"timeFormControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
5146
5131
  providers: [
5147
- DEFAULT_VALUE_ACCESSOR$4,
5132
+ DEFAULT_VALUE_ACCESSOR$1,
5148
5133
  ],
5149
5134
  changeDetection: ChangeDetectionStrategy.OnPush,
5150
5135
  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%}"]
@@ -5178,15 +5163,15 @@ MatDateTime.propDecorators = {
5178
5163
  matInputs: [{ type: ViewChildren, args: ['matInput',] }]
5179
5164
  };
5180
5165
 
5181
- const DEFAULT_VALUE_ACCESSOR$3 = {
5166
+ const DEFAULT_VALUE_ACCESSOR$2 = {
5182
5167
  provide: NG_VALUE_ACCESSOR,
5183
5168
  useExisting: forwardRef(() => MatDateShort),
5184
5169
  multi: true
5185
5170
  };
5186
- const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
5171
+ const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
5187
5172
  const noop$4 = () => {
5188
5173
  };
5189
- const ɵ0$7 = noop$4;
5174
+ const ɵ0$5 = noop$4;
5190
5175
  class MatDateShort {
5191
5176
  constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
5192
5177
  this.dateAdapter = dateAdapter;
@@ -5199,7 +5184,7 @@ class MatDateShort {
5199
5184
  this._onTouchedCallback = noop$4;
5200
5185
  this.writing = true;
5201
5186
  this.disabling = false;
5202
- this.dayMask = DAY_MASK;
5187
+ this.dayMask = DAY_MASK$2;
5203
5188
  this.disabled = false;
5204
5189
  this.floatLabel = 'auto';
5205
5190
  this.readonly = false;
@@ -5444,7 +5429,7 @@ MatDateShort.decorators = [
5444
5429
  selector: 'mat-date-short-field',
5445
5430
  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",
5446
5431
  providers: [
5447
- DEFAULT_VALUE_ACCESSOR$3,
5432
+ DEFAULT_VALUE_ACCESSOR$2,
5448
5433
  ],
5449
5434
  changeDetection: ChangeDetectionStrategy.OnPush,
5450
5435
  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%}"]
@@ -5512,16 +5497,16 @@ SharedMatDateTimeModule.decorators = [
5512
5497
  },] }
5513
5498
  ];
5514
5499
 
5515
- const DEFAULT_VALUE_ACCESSOR$2 = {
5500
+ const DEFAULT_VALUE_ACCESSOR$3 = {
5516
5501
  provide: NG_VALUE_ACCESSOR,
5517
5502
  useExisting: forwardRef(() => MatDuration),
5518
5503
  multi: true
5519
5504
  };
5520
5505
  const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
5521
- const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5522
- const noop$3 = () => {
5506
+ const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
5507
+ const noop$5 = () => {
5523
5508
  };
5524
- const ɵ0$6 = noop$3;
5509
+ const ɵ0$6 = noop$5;
5525
5510
  class MatDuration {
5526
5511
  constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
5527
5512
  this.dateAdapter = dateAdapter;
@@ -5530,11 +5515,11 @@ class MatDuration {
5530
5515
  this.cd = cd;
5531
5516
  this.formGroupDir = formGroupDir;
5532
5517
  this._subscription = new Subscription();
5533
- this._onChangeCallback = noop$3;
5534
- this._onTouchedCallback = noop$3;
5518
+ this._onChangeCallback = noop$5;
5519
+ this._onTouchedCallback = noop$5;
5535
5520
  this.writing = true;
5536
5521
  this.disabling = false;
5537
- this.hourMask = HOUR_MASK;
5522
+ this.hourMask = HOUR_MASK$1;
5538
5523
  this.disabled = false;
5539
5524
  this.floatLabel = 'auto';
5540
5525
  this.readonly = false;
@@ -5714,7 +5699,7 @@ MatDuration.decorators = [
5714
5699
  selector: 'mat-duration-field',
5715
5700
  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",
5716
5701
  providers: [
5717
- DEFAULT_VALUE_ACCESSOR$2,
5702
+ DEFAULT_VALUE_ACCESSOR$3,
5718
5703
  ],
5719
5704
  changeDetection: ChangeDetectionStrategy.OnPush,
5720
5705
  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%}"]
@@ -5771,22 +5756,22 @@ SharedMatDurationModule.decorators = [
5771
5756
  },] }
5772
5757
  ];
5773
5758
 
5774
- const DEFAULT_VALUE_ACCESSOR$1 = {
5759
+ const DEFAULT_VALUE_ACCESSOR$4 = {
5775
5760
  provide: NG_VALUE_ACCESSOR,
5776
5761
  useExisting: forwardRef(() => MatBooleanField),
5777
5762
  multi: true
5778
5763
  };
5779
- const noop$2 = () => {
5764
+ const noop$6 = () => {
5780
5765
  };
5781
- const ɵ0$5 = noop$2;
5766
+ const ɵ0$7 = noop$6;
5782
5767
  class MatBooleanField {
5783
5768
  constructor(translate, formBuilder, cd, formGroupDir) {
5784
5769
  this.translate = translate;
5785
5770
  this.formBuilder = formBuilder;
5786
5771
  this.cd = cd;
5787
5772
  this.formGroupDir = formGroupDir;
5788
- this._onChangeCallback = noop$2;
5789
- this._onTouchedCallback = noop$2;
5773
+ this._onChangeCallback = noop$6;
5774
+ this._onTouchedCallback = noop$6;
5790
5775
  this._writing = false;
5791
5776
  this.showRadio = false;
5792
5777
  this.disabled = false;
@@ -5949,7 +5934,7 @@ MatBooleanField.decorators = [
5949
5934
  selector: 'mat-boolean-field',
5950
5935
  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",
5951
5936
  providers: [
5952
- DEFAULT_VALUE_ACCESSOR$1
5937
+ DEFAULT_VALUE_ACCESSOR$4
5953
5938
  ],
5954
5939
  changeDetection: ChangeDetectionStrategy.OnPush,
5955
5940
  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}"]
@@ -6195,7 +6180,7 @@ class MatNumpadDomService {
6195
6180
  this.appRef.detachView(this.componentRef.hostView);
6196
6181
  }
6197
6182
  }
6198
- 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" });
6183
+ MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
6199
6184
  MatNumpadDomService.decorators = [
6200
6185
  { type: Injectable, args: [{
6201
6186
  providedIn: 'root'
@@ -6559,7 +6544,7 @@ SharedMatNumpadModule.decorators = [
6559
6544
  },] }
6560
6545
  ];
6561
6546
 
6562
- const DEFAULT_VALUE_ACCESSOR = {
6547
+ const DEFAULT_VALUE_ACCESSOR$5 = {
6563
6548
  provide: NG_VALUE_ACCESSOR,
6564
6549
  useExisting: forwardRef(() => MatSwipeField),
6565
6550
  multi: true
@@ -6822,7 +6807,7 @@ MatSwipeField.decorators = [
6822
6807
  { type: Component, args: [{
6823
6808
  selector: 'mat-swipe-field',
6824
6809
  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",
6825
- providers: [DEFAULT_VALUE_ACCESSOR],
6810
+ providers: [DEFAULT_VALUE_ACCESSOR$5],
6826
6811
  changeDetection: ChangeDetectionStrategy.OnPush,
6827
6812
  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}"]
6828
6813
  },] }
@@ -6880,14 +6865,14 @@ SharedMatSwipeModule.decorators = [
6880
6865
  },] }
6881
6866
  ];
6882
6867
 
6883
- const noop$1 = () => { };
6884
- const ɵ0$4 = noop$1;
6868
+ const noop$7 = () => { };
6869
+ const ɵ0$8 = noop$7;
6885
6870
  class MatChipsField {
6886
6871
  constructor(cd, formGroupDir) {
6887
6872
  this.cd = cd;
6888
6873
  this.formGroupDir = formGroupDir;
6889
- this._onChangeCallback = noop$1;
6890
- this._onTouchedCallback = noop$1;
6874
+ this._onChangeCallback = noop$7;
6875
+ this._onTouchedCallback = noop$7;
6891
6876
  this.logPrefix = '[mat-chips] ';
6892
6877
  this.formControlName = null;
6893
6878
  this.required = false;
@@ -7756,7 +7741,7 @@ class ProgressBarService {
7756
7741
  }
7757
7742
  }
7758
7743
  }
7759
- ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7744
+ ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
7760
7745
  ProgressBarService.decorators = [
7761
7746
  { type: Injectable, args: [{ providedIn: 'root' },] }
7762
7747
  ];
@@ -7800,7 +7785,7 @@ class AppGestureConfig extends HammerGestureConfig {
7800
7785
  return mc;
7801
7786
  }
7802
7787
  }
7803
- AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7788
+ AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
7804
7789
  AppGestureConfig.decorators = [
7805
7790
  { type: Injectable, args: [{ providedIn: 'root' },] }
7806
7791
  ];
@@ -8025,7 +8010,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
8025
8010
  this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
8026
8011
  }
8027
8012
  }
8028
- MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8013
+ MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
8029
8014
  MatPaginatorI18n.decorators = [
8030
8015
  { type: Injectable, args: [{ providedIn: 'root' },] }
8031
8016
  ];
@@ -8115,17 +8100,17 @@ function getColorContrast(color, bw) {
8115
8100
  return rgbArrayToHex(rgb.map(v => 255 - v));
8116
8101
  }
8117
8102
 
8118
- const noop = () => {
8103
+ const noop$8 = () => {
8119
8104
  };
8120
- const ɵ0$3 = noop;
8105
+ const ɵ0$9 = noop$8;
8121
8106
  class AppFormField {
8122
8107
  constructor(translate, cd, injector, formGroupDir) {
8123
8108
  this.translate = translate;
8124
8109
  this.cd = cd;
8125
8110
  this.injector = injector;
8126
8111
  this.formGroupDir = formGroupDir;
8127
- this._onChangeCallback = noop;
8128
- this._onTouchedCallback = noop;
8112
+ this._onChangeCallback = noop$8;
8113
+ this._onTouchedCallback = noop$8;
8129
8114
  this.readonly = false;
8130
8115
  this.compact = false;
8131
8116
  this.floatLabel = 'auto';
@@ -8561,14 +8546,14 @@ class AudioProvider extends StartableService {
8561
8546
  });
8562
8547
  }
8563
8548
  }
8564
- 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" });
8549
+ 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" });
8565
8550
  AudioProvider.decorators = [
8566
8551
  { type: Injectable, args: [{ providedIn: 'root' },] }
8567
8552
  ];
8568
8553
  AudioProvider.ctorParameters = () => [
8569
8554
  { type: Platform },
8570
- { type: NativeAudio, decorators: [{ type: Optional }] },
8571
- { type: Vibration, decorators: [{ type: Optional }] },
8555
+ { type: NativeAudio$1, decorators: [{ type: Optional }] },
8556
+ { type: Vibration$1, decorators: [{ type: Optional }] },
8572
8557
  { type: AudioManagement, decorators: [{ type: Optional }] }
8573
8558
  ];
8574
8559
 
@@ -8650,7 +8635,7 @@ class Hotkeys {
8650
8635
  });
8651
8636
  }
8652
8637
  }
8653
- 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" });
8638
+ Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
8654
8639
  Hotkeys.decorators = [
8655
8640
  { type: Injectable, args: [{
8656
8641
  providedIn: 'root'
@@ -8824,7 +8809,7 @@ class Base64ImageReader {
8824
8809
  }
8825
8810
  }
8826
8811
 
8827
- const uuidv4$1 = uuidv4Imported;
8812
+ const uuidv4 = uuidv4Imported;
8828
8813
  class FileService {
8829
8814
  constructor(platform,
8830
8815
  //private transfer: FileTransfer,
@@ -8861,7 +8846,7 @@ class FileService {
8861
8846
  const lastSlashIndex = source.lastIndexOf('/');
8862
8847
  if (lastSlashIndex === -1)
8863
8848
  throw new Error('Invalid URL: ' + source);
8864
- const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
8849
+ const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
8865
8850
  // Download into the file system
8866
8851
  if (responseType === 'file' && this.canUseFileSystem) {
8867
8852
  console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
@@ -8917,7 +8902,7 @@ class FileService {
8917
8902
  this._started = true;
8918
8903
  }
8919
8904
  }
8920
- 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" });
8905
+ FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
8921
8906
  FileService.decorators = [
8922
8907
  { type: Injectable, args: [{
8923
8908
  providedIn: 'root',
@@ -9083,7 +9068,7 @@ class Base58 {
9083
9068
  Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
9084
9069
 
9085
9070
  const scrypt = require('scrypt-async');
9086
- const sha256$1 = require('hash.js/lib/hash/sha/256');
9071
+ const sha256 = require('hash.js/lib/hash/sha/256');
9087
9072
  const sha512 = require('hash.js/lib/hash/sha/512');
9088
9073
  const nacl = {
9089
9074
  sign,
@@ -9187,7 +9172,7 @@ class CryptoService {
9187
9172
  * Hash (using SHA256) a message
9188
9173
  */
9189
9174
  sha256(message) {
9190
- return sha256$1().update(message).digest('hex');
9175
+ return sha256().update(message).digest('hex');
9191
9176
  }
9192
9177
  /**
9193
9178
  * Hash (using SHA512) a message
@@ -9200,7 +9185,7 @@ class CryptoService {
9200
9185
  return nacl.util.encodeBase64(m);
9201
9186
  }
9202
9187
  }
9203
- CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9188
+ CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
9204
9189
  CryptoService.decorators = [
9205
9190
  { type: Injectable, args: [{ providedIn: 'root' },] }
9206
9191
  ];
@@ -10441,7 +10426,7 @@ class LocalSettingsService extends StartableService {
10441
10426
  return page;
10442
10427
  }
10443
10428
  }
10444
- 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" });
10429
+ 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" });
10445
10430
  LocalSettingsService.decorators = [
10446
10431
  { type: Injectable, args: [{
10447
10432
  providedIn: 'root',
@@ -11099,7 +11084,7 @@ class NetworkService extends StartableService {
11099
11084
  });
11100
11085
  }
11101
11086
  }
11102
- 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" });
11087
+ 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" });
11103
11088
  NetworkService.decorators = [
11104
11089
  { type: Injectable, args: [{ providedIn: 'root' },] }
11105
11090
  ];
@@ -11110,16 +11095,16 @@ NetworkService.ctorParameters = () => [
11110
11095
  { type: CryptoService },
11111
11096
  { type: Storage },
11112
11097
  { type: LocalSettingsService },
11113
- { type: CacheService },
11098
+ { type: CacheService$1 },
11114
11099
  { type: HttpClient },
11115
11100
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
11116
- { type: Network, decorators: [{ type: Optional }] },
11117
- { type: SplashScreen, decorators: [{ type: Optional }] },
11101
+ { type: Network$1, decorators: [{ type: Optional }] },
11102
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
11118
11103
  { type: TranslateService, decorators: [{ type: Optional }] },
11119
11104
  { type: ToastController, decorators: [{ type: Optional }] }
11120
11105
  ];
11121
11106
 
11122
- const ErrorCodes$2 = {
11107
+ const ErrorCodes = {
11123
11108
  UNKNOWN_ERROR: 0,
11124
11109
  LOAD_ACCOUNT_ERROR: 1,
11125
11110
  BAD_PASSWORD: 2,
@@ -11471,7 +11456,7 @@ class EntityStore {
11471
11456
  }
11472
11457
  catch (err) {
11473
11458
  console.error(err);
11474
- throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11459
+ throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
11475
11460
  }
11476
11461
  }
11477
11462
  // Emit update event
@@ -12045,7 +12030,7 @@ class EntitiesStorage extends StartableService {
12045
12030
  }
12046
12031
  EntitiesStorage.TRASH_PREFIX = 'Trash#';
12047
12032
  EntitiesStorage.REMOTE_PREFIX = 'Remote#';
12048
- 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" });
12033
+ 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" });
12049
12034
  EntitiesStorage.decorators = [
12050
12035
  { type: Injectable, args: [{ providedIn: 'root' },] }
12051
12036
  ];
@@ -12182,10 +12167,10 @@ function referentialToString(obj, properties) {
12182
12167
  function referentialsToString(values, properties, separator) {
12183
12168
  return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
12184
12169
  }
12185
- const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12170
+ const ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
12186
12171
  const StatusList = Object.freeze([
12187
12172
  {
12188
- id: ɵ0$2,
12173
+ id: ɵ0$a,
12189
12174
  icon: 'checkmark',
12190
12175
  label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
12191
12176
  },
@@ -12460,7 +12445,7 @@ function accountToString(data) {
12460
12445
  (data.lastName || '')) || '';
12461
12446
  }
12462
12447
 
12463
- const uuidv4 = uuidv4Imported;
12448
+ const uuidv4$1 = uuidv4Imported;
12464
12449
  const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
12465
12450
  const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
12466
12451
  /**
@@ -12504,7 +12489,7 @@ function createTrackerLink(opts) {
12504
12489
  // Skip if not tracked
12505
12490
  if (!context || !context.tracked)
12506
12491
  return forward(operation);
12507
- const id = context.serializationKey || uuidv4();
12492
+ const id = context.serializationKey || uuidv4$1();
12508
12493
  console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
12509
12494
  // Clean context, before calling JSON.stringify (remove unused attributes)
12510
12495
  const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
@@ -13167,7 +13152,7 @@ class GraphqlService extends StartableService {
13167
13152
  (err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
13168
13153
  || this.toAppError(err.networkError)
13169
13154
  || (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
13170
- || this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
13155
+ || this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
13171
13156
  // If graphQL: try to convert the first error found
13172
13157
  || (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
13173
13158
  || this.toAppError(err)
@@ -13175,7 +13160,7 @@ class GraphqlService extends StartableService {
13175
13160
  || (err.graphQLErrors && err.graphQLErrors[0])
13176
13161
  || err;
13177
13162
  console.error('[graphql] ' + (error && error.message || error), error.stack || '');
13178
- if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13163
+ if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
13179
13164
  console.error('[graphql] original error: ' + err.networkError.message);
13180
13165
  this.onNetworkError.next(error);
13181
13166
  }
@@ -13211,7 +13196,7 @@ class GraphqlService extends StartableService {
13211
13196
  return 'ERROR.UNAUTHORIZED';
13212
13197
  case ServerErrorCodes.FORBIDDEN:
13213
13198
  return 'ERROR.FORBIDDEN';
13214
- case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
13199
+ case ErrorCodes.UNKNOWN_NETWORK_ERROR:
13215
13200
  return 'ERROR.UNKNOWN_NETWORK_ERROR';
13216
13201
  case ServerErrorCodes.BAD_UPDATE_DATE:
13217
13202
  return 'ERROR.BAD_UPDATE_DATE';
@@ -13242,7 +13227,7 @@ class GraphqlService extends StartableService {
13242
13227
  return undefined;
13243
13228
  }
13244
13229
  }
13245
- 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" });
13230
+ 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" });
13246
13231
  GraphqlService.decorators = [
13247
13232
  { type: Injectable, args: [{
13248
13233
  providedIn: 'root'
@@ -13259,7 +13244,7 @@ GraphqlService.ctorParameters = () => [
13259
13244
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
13260
13245
  ];
13261
13246
 
13262
- const sha256 = require('hash.js/lib/hash/sha/256');
13247
+ const sha256$1 = require('hash.js/lib/hash/sha/256');
13263
13248
  class BaseGraphqlServiceOptions {
13264
13249
  }
13265
13250
  // eslint-disable-next-line @angular-eslint/directive-class-suffix
@@ -13410,8 +13395,8 @@ class BaseGraphqlService extends StartableService {
13410
13395
  }
13411
13396
  /* -- protected methods -- */
13412
13397
  computeMutableWatchQueryId(opts) {
13413
- const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13414
- const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13398
+ const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
13399
+ const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
13415
13400
  return [queryName, opts.arrayFieldName, variablesKey].join('|');
13416
13401
  }
13417
13402
  findMutableWatchQueries(opts) {
@@ -13477,7 +13462,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
13477
13462
  /* ------------------------------------
13478
13463
  * GraphQL queries
13479
13464
  * ------------------------------------*/
13480
- const Fragments$1 = {
13465
+ const Fragments = {
13481
13466
  account: gql `
13482
13467
  fragment AccountFragment on AccountVO {
13483
13468
  id
@@ -13512,14 +13497,14 @@ const Fragments$1 = {
13512
13497
  }`
13513
13498
  };
13514
13499
  // Load account query
13515
- const LoadQuery$1 = gql `
13500
+ const LoadQuery = gql `
13516
13501
  query Account {
13517
13502
  data: account {
13518
13503
  ...AccountFragment
13519
13504
  }
13520
13505
  }
13521
- ${Fragments$1.account}
13522
- ${Fragments$1.settings}
13506
+ ${Fragments.account}
13507
+ ${Fragments.settings}
13523
13508
  `;
13524
13509
  // Check email query
13525
13510
  const IsEmailExistsQuery = gql `
@@ -13534,21 +13519,21 @@ const AccountMutations = {
13534
13519
  ...AccountFragment
13535
13520
  }
13536
13521
  }
13537
- ${Fragments$1.account}
13538
- ${Fragments$1.settings}`,
13522
+ ${Fragments.account}
13523
+ ${Fragments.settings}`,
13539
13524
  create: gql `mutation CreateAccount($data:AccountVOInput){
13540
13525
  data: createAccount(account: $data){
13541
13526
  ...AccountFragment
13542
13527
  }
13543
13528
  }
13544
- ${Fragments$1.account}
13545
- ${Fragments$1.settings}`,
13529
+ ${Fragments.account}
13530
+ ${Fragments.settings}`,
13546
13531
  saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
13547
13532
  data: saveSettings(settings: $data){
13548
13533
  ...UserSettingsFragment
13549
13534
  }
13550
13535
  }
13551
- ${Fragments$1.settings}`
13536
+ ${Fragments.settings}`
13552
13537
  };
13553
13538
  // Sent confirmation email
13554
13539
  const SendConfirmEmailMutation = gql `
@@ -13865,7 +13850,7 @@ class AccountService extends BaseGraphqlService {
13865
13850
  catch (error) {
13866
13851
  console.error(error);
13867
13852
  this.resetData();
13868
- throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13853
+ throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
13869
13854
  }
13870
13855
  // Store pubkey+keypair
13871
13856
  this._cache.pubkey = Base58.encode(keypair.publicKey);
@@ -13899,7 +13884,7 @@ class AccountService extends BaseGraphqlService {
13899
13884
  }
13900
13885
  catch (err) {
13901
13886
  // If account not found, check if email is valid
13902
- if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
13887
+ if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
13903
13888
  // Check email exists
13904
13889
  if (data.username.indexOf('@') !== -1) {
13905
13890
  let isEmailExists;
@@ -13911,11 +13896,11 @@ class AccountService extends BaseGraphqlService {
13911
13896
  }
13912
13897
  // Email not exists (no account)
13913
13898
  if (!isEmailExists) {
13914
- throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13899
+ throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
13915
13900
  }
13916
13901
  }
13917
13902
  // Email exists, so error = 'bad password'
13918
- throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13903
+ throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
13919
13904
  }
13920
13905
  throw err; // resend the first error
13921
13906
  }
@@ -14061,8 +14046,8 @@ class AccountService extends BaseGraphqlService {
14061
14046
  // Load remotely
14062
14047
  else {
14063
14048
  const { data } = yield this.graphql.query({
14064
- query: LoadQuery$1,
14065
- error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14049
+ query: LoadQuery,
14050
+ error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
14066
14051
  fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
14067
14052
  });
14068
14053
  json = data;
@@ -14089,7 +14074,7 @@ class AccountService extends BaseGraphqlService {
14089
14074
  return __awaiter(this, void 0, void 0, function* () {
14090
14075
  const isEmailExists = yield this.isEmailExists(email);
14091
14076
  if (isEmailExists) {
14092
- throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14077
+ throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
14093
14078
  }
14094
14079
  });
14095
14080
  }
@@ -14125,7 +14110,7 @@ class AccountService extends BaseGraphqlService {
14125
14110
  locale
14126
14111
  },
14127
14112
  error: {
14128
- code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
14113
+ code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
14129
14114
  message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
14130
14115
  }
14131
14116
  });
@@ -14141,7 +14126,7 @@ class AccountService extends BaseGraphqlService {
14141
14126
  code
14142
14127
  },
14143
14128
  error: {
14144
- code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
14129
+ code: ErrorCodes.CONFIRM_EMAIL_FAILED,
14145
14130
  message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
14146
14131
  }
14147
14132
  });
@@ -14220,7 +14205,7 @@ class AccountService extends BaseGraphqlService {
14220
14205
  throw error;
14221
14206
  console.error(error);
14222
14207
  throw {
14223
- code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
14208
+ code: ErrorCodes.LOAD_ACCOUNT_ERROR,
14224
14209
  message: 'ERROR.LOAD_ACCOUNT_ERROR'
14225
14210
  };
14226
14211
  }
@@ -14390,7 +14375,7 @@ class AccountService extends BaseGraphqlService {
14390
14375
  if (!isNew) {
14391
14376
  const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
14392
14377
  if (!existingAccount || !existingAccount.updateDate) {
14393
- throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14378
+ throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
14394
14379
  }
14395
14380
  this.copyIdAndUpdateDate(existingAccount, account);
14396
14381
  }
@@ -14402,7 +14387,7 @@ class AccountService extends BaseGraphqlService {
14402
14387
  mutation: isNew ? AccountMutations.create : AccountMutations.save,
14403
14388
  variables: { data: json },
14404
14389
  error: {
14405
- code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
14390
+ code: ErrorCodes.SAVE_ACCOUNT_ERROR,
14406
14391
  message: 'ERROR.SAVE_ACCOUNT_ERROR'
14407
14392
  }
14408
14393
  });
@@ -14429,7 +14414,7 @@ class AccountService extends BaseGraphqlService {
14429
14414
  mutation: AccountMutations.saveSettings,
14430
14415
  variables: { data: json },
14431
14416
  error: {
14432
- code: ErrorCodes$2.SAVE_SETTINGS_ERROR,
14417
+ code: ErrorCodes.SAVE_SETTINGS_ERROR,
14433
14418
  message: 'ERROR.SAVE_SETTINGS_ERROR'
14434
14419
  }
14435
14420
  });
@@ -14451,7 +14436,7 @@ class AccountService extends BaseGraphqlService {
14451
14436
  if (counter > 4) {
14452
14437
  if (this._debug)
14453
14438
  console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
14454
- throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14439
+ throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
14455
14440
  }
14456
14441
  // Check if valid
14457
14442
  if (token) {
@@ -14461,7 +14446,7 @@ class AccountService extends BaseGraphqlService {
14461
14446
  token
14462
14447
  },
14463
14448
  error: {
14464
- code: ErrorCodes$2.UNAUTHORIZED,
14449
+ code: ErrorCodes.UNAUTHORIZED,
14465
14450
  message: 'ERROR.UNAUTHORIZED'
14466
14451
  },
14467
14452
  fetchPolicy: 'no-cache'
@@ -14477,7 +14462,7 @@ class AccountService extends BaseGraphqlService {
14477
14462
  }
14478
14463
  // Generate a new token
14479
14464
  const challengeError = {
14480
- code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
14465
+ code: ErrorCodes.AUTH_CHALLENGE_ERROR,
14481
14466
  message: 'ERROR.AUTH_CHALLENGE_ERROR'
14482
14467
  };
14483
14468
  const data = yield this.graphql.query({
@@ -14555,7 +14540,7 @@ class AccountService extends BaseGraphqlService {
14555
14540
  query: AccountSubscriptions.listenChanges,
14556
14541
  variables,
14557
14542
  error: {
14558
- code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
14543
+ code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
14559
14544
  message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
14560
14545
  }
14561
14546
  }).pipe(map(({ data }) => data),
@@ -14584,7 +14569,7 @@ class AccountService extends BaseGraphqlService {
14584
14569
  return Toasts.show(this.toastController, this.translate, opts);
14585
14570
  }
14586
14571
  }
14587
- 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" });
14572
+ 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" });
14588
14573
  AccountService.decorators = [
14589
14574
  { type: Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
14590
14575
  ];
@@ -14846,7 +14831,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
14846
14831
  /* ------------------------------------
14847
14832
  * GraphQL queries
14848
14833
  * ------------------------------------*/
14849
- const Fragments = {
14834
+ const Fragments$1 = {
14850
14835
  config: gql `
14851
14836
  fragment ConfigFragment on ConfigurationVO {
14852
14837
  id
@@ -14873,13 +14858,13 @@ const Fragments = {
14873
14858
  }
14874
14859
  `
14875
14860
  };
14876
- const LoadQuery = gql `
14861
+ const LoadQuery$1 = gql `
14877
14862
  query Configuration{
14878
14863
  data: configuration{
14879
14864
  ...ConfigFragment
14880
14865
  }
14881
14866
  }
14882
- ${Fragments.config}
14867
+ ${Fragments$1.config}
14883
14868
  `;
14884
14869
  // Save (create or update) account mutation
14885
14870
  const SaveMutation = gql `
@@ -14888,7 +14873,7 @@ const SaveMutation = gql `
14888
14873
  ...ConfigFragment
14889
14874
  }
14890
14875
  }
14891
- ${Fragments.config}
14876
+ ${Fragments$1.config}
14892
14877
  `;
14893
14878
  const ClearCache = gql `
14894
14879
  query ClearCache($name: String) {
@@ -14939,12 +14924,12 @@ class ConfigService extends BaseGraphqlService {
14939
14924
  return __awaiter(this, void 0, void 0, function* () {
14940
14925
  const now = Date.now();
14941
14926
  console.debug('[config] Loading Pod configuration...');
14942
- const query = opts && opts.query || LoadQuery;
14927
+ const query = opts && opts.query || LoadQuery$1;
14943
14928
  const variables = opts && opts.variables || undefined;
14944
14929
  const res = yield this.graphql.query({
14945
14930
  query,
14946
14931
  variables,
14947
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14932
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14948
14933
  fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
14949
14934
  });
14950
14935
  const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
@@ -14977,7 +14962,7 @@ class ConfigService extends BaseGraphqlService {
14977
14962
  data: json
14978
14963
  },
14979
14964
  error: {
14980
- code: ErrorCodes$2.SAVE_CONFIG_ERROR,
14965
+ code: ErrorCodes.SAVE_CONFIG_ERROR,
14981
14966
  message: 'ERROR.SAVE_CONFIG_ERROR'
14982
14967
  }
14983
14968
  });
@@ -15003,7 +14988,7 @@ class ConfigService extends BaseGraphqlService {
15003
14988
  const res = yield this.graphql.query({
15004
14989
  query: CacheStatistics,
15005
14990
  variables: null,
15006
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
14991
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15007
14992
  fetchPolicy: 'network-only'
15008
14993
  });
15009
14994
  const data = res && res.cacheStatistics || undefined;
@@ -15019,7 +15004,7 @@ class ConfigService extends BaseGraphqlService {
15019
15004
  const res = yield this.graphql.query({
15020
15005
  query: ClearCache,
15021
15006
  variables,
15022
- error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15007
+ error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
15023
15008
  fetchPolicy: 'network-only'
15024
15009
  });
15025
15010
  const data = res && res.clearCache || undefined;
@@ -15178,7 +15163,7 @@ class ConfigService extends BaseGraphqlService {
15178
15163
  });
15179
15164
  }
15180
15165
  }
15181
- 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" });
15166
+ 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" });
15182
15167
  ConfigService.decorators = [
15183
15168
  { type: Injectable, args: [{
15184
15169
  providedIn: 'root',
@@ -15198,7 +15183,7 @@ ConfigService.ctorParameters = () => [
15198
15183
  { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
15199
15184
  ];
15200
15185
 
15201
- const moment$2 = momentImported;
15186
+ const moment$4 = momentImported;
15202
15187
  class PlatformService extends StartableService {
15203
15188
  constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
15204
15189
  super(platform);
@@ -15405,16 +15390,16 @@ class PlatformService extends StartableService {
15405
15390
  }
15406
15391
  // config moment lib
15407
15392
  try {
15408
- moment$2.locale(event.lang);
15393
+ moment$4.locale(event.lang);
15409
15394
  console.debug('[platform] Use locale {' + event.lang + '}');
15410
15395
  }
15411
15396
  // If error, fallback to en
15412
15397
  catch (err) {
15413
- moment$2.locale('en');
15398
+ moment$4.locale('en');
15414
15399
  console.warn('[platform] Unknown local for moment lib. Using default [en]');
15415
15400
  }
15416
15401
  // Config date adapter
15417
- this.dateAdapter.setLocale(moment$2.locale());
15402
+ this.dateAdapter.setLocale(moment$4.locale());
15418
15403
  }
15419
15404
  });
15420
15405
  this.settings.onChange.subscribe(data => {
@@ -15547,7 +15532,7 @@ class PlatformService extends StartableService {
15547
15532
  });
15548
15533
  }
15549
15534
  }
15550
- 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" });
15535
+ 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" });
15551
15536
  PlatformService.decorators = [
15552
15537
  { type: Injectable, args: [{ providedIn: 'root' },] }
15553
15538
  ];
@@ -15562,15 +15547,15 @@ PlatformService.ctorParameters = () => [
15562
15547
  { type: NetworkService },
15563
15548
  { type: AccountService },
15564
15549
  { type: ConfigService },
15565
- { type: CacheService },
15550
+ { type: CacheService$1 },
15566
15551
  { type: Storage },
15567
15552
  { type: AudioProvider },
15568
15553
  { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
15569
- { type: StatusBar, decorators: [{ type: Optional }] },
15554
+ { type: StatusBar$1, decorators: [{ type: Optional }] },
15570
15555
  { type: Keyboard, decorators: [{ type: Optional }] },
15571
- { type: SplashScreen, decorators: [{ type: Optional }] },
15572
- { type: InAppBrowser, decorators: [{ type: Optional }] },
15573
- { type: Downloader, decorators: [{ type: Optional }] }
15556
+ { type: SplashScreen$1, decorators: [{ type: Optional }] },
15557
+ { type: InAppBrowser$1, decorators: [{ type: Optional }] },
15558
+ { type: Downloader$1, decorators: [{ type: Optional }] }
15574
15559
  ];
15575
15560
 
15576
15561
  class AppHelpModal {
@@ -15634,7 +15619,7 @@ class MatStepperI18n extends MatStepperIntl {
15634
15619
  this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
15635
15620
  }
15636
15621
  }
15637
- MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
15622
+ MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
15638
15623
  MatStepperI18n.decorators = [
15639
15624
  { type: Injectable, args: [{ providedIn: 'root' },] }
15640
15625
  ];
@@ -16636,7 +16621,7 @@ function state2side(state) {
16636
16621
  return 1;
16637
16622
  }
16638
16623
  }
16639
- const ɵ0$1 = (defaultStateSize) => [
16624
+ const ɵ0$b = (defaultStateSize) => [
16640
16625
  Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
16641
16626
  Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
16642
16627
  Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
@@ -16644,7 +16629,7 @@ const ɵ0$1 = (defaultStateSize) => [
16644
16629
  const SCALE_OPTIONS_DEFAULT = {
16645
16630
  startColor: rgbArrayMap.red,
16646
16631
  startStates: [0, 2, 3],
16647
- startStepsFn: ɵ0$1
16632
+ startStepsFn: ɵ0$b
16648
16633
  };
16649
16634
  /**
16650
16635
  * Internal function, that create a colors scale, using iteration
@@ -16736,21 +16721,21 @@ function linearColorGradient(count, options) {
16736
16721
  return result;
16737
16722
  }
16738
16723
 
16739
- class EntityTestClass$1 {
16724
+ class EntityTestClass {
16740
16725
  }
16741
- const FAKE_ENTITIES$1 = [
16726
+ const FAKE_ENTITIES = [
16742
16727
  { id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
16743
16728
  { id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
16744
16729
  { id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
16745
16730
  ];
16746
- function deepCopy$1(values, size) {
16731
+ function deepCopy(values, size) {
16747
16732
  if (isNil(size)) {
16748
- return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
16733
+ return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
16749
16734
  }
16750
16735
  let result = [];
16751
16736
  let i = 1;
16752
16737
  while (result.length < size) {
16753
- result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
16738
+ result = result.concat((values || FAKE_ENTITIES).map(entity => {
16754
16739
  const name = entity.name + ' #' + i;
16755
16740
  return Object.assign(Object.assign({}, entity), { id: i++, name });
16756
16741
  }));
@@ -16760,7 +16745,7 @@ function deepCopy$1(values, size) {
16760
16745
  class AutocompleteTestPage {
16761
16746
  constructor(formBuilder) {
16762
16747
  this.formBuilder = formBuilder;
16763
- this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
16748
+ this._items = deepCopy(FAKE_ENTITIES, 100);
16764
16749
  this._$items = new BehaviorSubject(undefined);
16765
16750
  this.autocompleteFields = new MatAutocompleteConfigHolder();
16766
16751
  this.memoryHide = false;
@@ -16804,7 +16789,7 @@ class AutocompleteTestPage {
16804
16789
  });
16805
16790
  // From items
16806
16791
  this.autocompleteFields.add('entity-items-large', {
16807
- items: FAKE_ENTITIES$1.slice(),
16792
+ items: FAKE_ENTITIES.slice(),
16808
16793
  attributes: ['label', 'name', 'description', 'comments'],
16809
16794
  displayWith: this.entityToString
16810
16795
  });
@@ -16814,12 +16799,12 @@ class AutocompleteTestPage {
16814
16799
  loadData() {
16815
16800
  return __awaiter(this, void 0, void 0, function* () {
16816
16801
  const data = {
16817
- entity: deepCopy$1(FAKE_ENTITIES$1)[0],
16802
+ entity: deepCopy(FAKE_ENTITIES)[0],
16818
16803
  // This item is NOT in the items list => i should be displayed anyway
16819
16804
  missingEntity: {
16820
16805
  id: -1, label: '??', name: 'Missing item'
16821
16806
  },
16822
- disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
16807
+ disableEntity: deepCopy(FAKE_ENTITIES)[2]
16823
16808
  };
16824
16809
  this.form.setValue(data);
16825
16810
  // Load observables
@@ -16992,13 +16977,13 @@ MaterialTestingPage.ctorParameters = () => [
16992
16977
  { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
16993
16978
  ];
16994
16979
 
16995
- const moment$1 = momentImported;
16980
+ const moment$5 = momentImported;
16996
16981
  class SwipeTestPage {
16997
16982
  constructor(formBuilder, dateFormatPipe) {
16998
16983
  this.formBuilder = formBuilder;
16999
16984
  this.dateFormatPipe = dateFormatPipe;
17000
16985
  this.$dates = new BehaviorSubject(undefined);
17001
- this._today = moment$1().startOf('day');
16986
+ this._today = moment$5().startOf('day');
17002
16987
  this.form = formBuilder.group({
17003
16988
  empty: [null, Validators.required],
17004
16989
  date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
@@ -17011,7 +16996,7 @@ class SwipeTestPage {
17011
16996
  ngOnInit() {
17012
16997
  const dates = [];
17013
16998
  for (let d = 0; d < 7; d++) {
17014
- dates[d] = moment$1(this._today).add(d - 3, 'day');
16999
+ dates[d] = moment$5(this._today).add(d - 3, 'day');
17015
17000
  }
17016
17001
  this.$dates.next(dates);
17017
17002
  this.loadData();
@@ -17052,7 +17037,7 @@ SwipeTestPage.ctorParameters = () => [
17052
17037
  { type: DateFormatPipe }
17053
17038
  ];
17054
17039
 
17055
- const moment = momentImported;
17040
+ const moment$6 = momentImported;
17056
17041
  class DateTimeTestPage {
17057
17042
  constructor(platform, formBuilder, cd) {
17058
17043
  this.platform = platform;
@@ -17084,7 +17069,7 @@ class DateTimeTestPage {
17084
17069
  // Load the form with data
17085
17070
  loadData() {
17086
17071
  return __awaiter(this, void 0, void 0, function* () {
17087
- const now = moment();
17072
+ const now = moment$6();
17088
17073
  const data = {
17089
17074
  empty: toDateISOString(now.clone().add(2, 'hours')),
17090
17075
  enable: toDateISOString(now),
@@ -17145,9 +17130,9 @@ DateTimeTestPage.ctorParameters = () => [
17145
17130
  { type: ChangeDetectorRef }
17146
17131
  ];
17147
17132
 
17148
- class EntityTestClass {
17133
+ class EntityTestClass$1 {
17149
17134
  }
17150
- const FAKE_ENTITIES = [
17135
+ const FAKE_ENTITIES$1 = [
17151
17136
  { id: 1, label: 'AAA', name: 'Item A' },
17152
17137
  { id: 2, label: 'BBB', name: 'Item B' },
17153
17138
  { id: 3, label: 'CCC', name: 'Item C' },
@@ -17156,14 +17141,14 @@ const FAKE_ENTITIES = [
17156
17141
  { id: 6, label: 'FFF', name: 'Item F' },
17157
17142
  { id: 7, label: 'GGG', name: 'Item G' }
17158
17143
  ];
17159
- function deepCopy(values, size) {
17144
+ function deepCopy$1(values, size) {
17160
17145
  if (isNil(size)) {
17161
- return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
17146
+ return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
17162
17147
  }
17163
17148
  let result = [];
17164
17149
  let i = 1;
17165
17150
  while (result.length < size) {
17166
- result = result.concat((values || FAKE_ENTITIES).map(entity => {
17151
+ result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
17167
17152
  const name = entity.name + ' #' + i;
17168
17153
  return Object.assign(Object.assign({}, entity), { id: i++, name });
17169
17154
  }));
@@ -17173,7 +17158,7 @@ function deepCopy(values, size) {
17173
17158
  class ChipsTestPage {
17174
17159
  constructor(formBuilder) {
17175
17160
  this.formBuilder = formBuilder;
17176
- this._items = deepCopy(FAKE_ENTITIES, 100);
17161
+ this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
17177
17162
  this._$items = new BehaviorSubject(undefined);
17178
17163
  this.autocompleteFields = new MatAutocompleteConfigHolder();
17179
17164
  this.form = formBuilder.group({
@@ -17212,7 +17197,7 @@ class ChipsTestPage {
17212
17197
  // Load the form with data
17213
17198
  loadData() {
17214
17199
  return __awaiter(this, void 0, void 0, function* () {
17215
- const items = deepCopy(FAKE_ENTITIES);
17200
+ const items = deepCopy$1(FAKE_ENTITIES$1);
17216
17201
  const data = {
17217
17202
  entity: items.slice(0, 1),
17218
17203
  entityInitial: items.slice(1, 2),
@@ -17288,7 +17273,7 @@ MatBadgeIconTestPage.decorators = [
17288
17273
  },] }
17289
17274
  ];
17290
17275
 
17291
- const routes$2 = [
17276
+ const routes = [
17292
17277
  {
17293
17278
  path: '',
17294
17279
  pathMatch: 'full',
@@ -17340,7 +17325,7 @@ MaterialTestingModule.decorators = [
17340
17325
  ReactiveFormsModule,
17341
17326
  SharedMaterialModule,
17342
17327
  TranslateModule.forChild(),
17343
- RouterModule.forChild(routes$2)
17328
+ RouterModule.forChild(routes)
17344
17329
  ],
17345
17330
  declarations: [
17346
17331
  MaterialTestingPage,
@@ -18049,6 +18034,7 @@ function getRandomImage(files) {
18049
18034
  const APP_HOME_BUTTONS = new InjectionToken('homeButton');
18050
18035
  class HomePage {
18051
18036
  constructor(accountService, modalCtrl, translate, toastController, configService, platform, cd, network, settings, environment, locales, buttons) {
18037
+ var _a;
18052
18038
  this.accountService = accountService;
18053
18039
  this.modalCtrl = modalCtrl;
18054
18040
  this.translate = translate;
@@ -18074,6 +18060,7 @@ class HomePage {
18074
18060
  this._debug = !environment.production;
18075
18061
  this.showSpinner = !this.platform.started;
18076
18062
  this.platform.ready().then(() => this.start());
18063
+ this.showAccountButton = toBoolean((_a = environment.account) === null || _a === void 0 ? void 0 : _a.showAccountButton, true);
18077
18064
  }
18078
18065
  get currentLocaleCode() {
18079
18066
  return this.loading ? '' :
@@ -18263,7 +18250,7 @@ HomePage.decorators = [
18263
18250
  { type: Component, args: [{
18264
18251
  moduleId: module.id.toString(),
18265
18252
  selector: 'app-page-home',
18266
- template: "<app-toolbar [canGoBack]=\"false\"\n visible-xs visible-sm visible-mobile>\n\n <!-- change locale button -->\n <ion-button slot=\"end\" *ngIf=\"currentLocaleCode; let code\"\n [matMenuTriggerFor]=\"localeMenu\">\n <ion-label class=\"ion-text-uppercase\">&nbsp;{{ code }}</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n</app-toolbar>\n\n<!-- change locale menu -->\n<mat-menu #localeMenu=\"matMenu\">\n <button *ngFor=\"let item of locales\"\n mat-menu-item\n (click)=\"changeLanguage(item.key)\">\n <ion-label>{{item.value}}</ion-label>\n </button>\n</mat-menu>\n\n<ion-content [ngStyle]=\"contentStyle\" no-padding-xs>\n\n <!-- loading spinner -->\n <div class=\"loading-page\" [class.cdk-visually-hidden]=\"!loading\">\n <div class=\"spinner\" *ngIf=\"loading && showSpinner\">\n <p>Loading...</p>\n <div class=\"sk-cube1 sk-cube\"></div>\n <div class=\"sk-cube2 sk-cube\"></div>\n <div class=\"sk-cube4 sk-cube\"></div>\n <div class=\"sk-cube3 sk-cube\"></div>\n </div>\n </div>\n\n <!-- Desktop: translucent top toolbar -->\n <div hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar translucent>\n <ion-buttons slot=\"start\">\n <ion-menu-toggle>\n <ion-button color=\"light\" fill=\"clear\">\n <ion-icon slot=\"icon-only\" name=\"menu\"></ion-icon>\n </ion-button>\n </ion-menu-toggle>\n </ion-buttons>\n\n <ion-buttons slot=\"end\">\n <!-- change locale button -->\n <ion-button color=\"secondary\" fill=\"solid\"\n *ngIf=\"currentLocaleCode; let code\"\n [matMenuTriggerFor]=\"localeMenu\">\n <ion-label class=\"ion-text-uppercase\">&nbsp;{{ code }}</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </div>\n\n <!-- Install (and upgrade) card -->\n <app-install-upgrade-card [isLogin]=\"isLogin\"\n showInstallButton=\"true\">\n </app-install-upgrade-card>\n\n <!-- Welcome card -->\n <ion-card *ngIf=\"!loading\"\n class=\"main welcome ion-padding ion-text-center ion-align-self-center\"\n @fadeInAnimation>\n <ion-card-header>\n <ion-card-title class=\"ion-text-center\">\n <span *ngIf=\"isWeb\" [innerHTML]=\"'HOME.WELCOME_WEB'|translate: {appName: appName}\"></span>\n <span *ngIf=\"!isWeb\" [innerHTML]=\"'HOME.WELCOME_APP'|translate: {appName: appName}\"></span>\n </ion-card-title>\n <ion-card-subtitle [innerHTML]=\"description\">\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content class=\"ion-no-padding\">\n <ion-text color=\"primary\">\n <img class=\"logo\" *ngIf=\"logo\" src=\"{{ logo }}\">\n </ion-text>\n <!-- register help text -->\n <ion-text *ngIf=\"!isLogin && canRegister\">\n <br/>\n <span translate>HOME.REGISTER_HELP</span>\n </ion-text>\n </ion-card-content>\n\n <ion-footer class=\"ion-padding-top\">\n\n <!-- If NOT login -->\n <ng-container *ngIf=\"!isLogin; else loginButtons;\">\n\n <ion-button *ngIf=\"canRegister\" expand=\"block\" color=\"tertiary\" (click)=\"register()\">\n <span translate>HOME.BTN_REGISTER</span>\n </ion-button>\n <ion-button expand=\"block\" color=\"light\" [routerLink]=\"['/']\" (click)=\"login()\">\n <span translate>AUTH.BTN_LOGIN</span>\n </ion-button>\n\n </ng-container>\n\n <!-- If user login -->\n <ng-template #loginButtons>\n\n <!-- Feature buttons -->\n <ng-container *ngIf=\"$filteredButtons | async as buttons\">\n <ng-container *ngFor=\"let item of buttons\">\n <ion-button *ngIf=\"item.path\"\n expand=\"block\" color=\"tertiary\"\n [class]=\"item.cssClass\"\n [routerLink]=\"item.path\"\n routerDirection=\"root\">\n <ion-icon slot=\"start\" class=\"ion-float-start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" class=\"ion-float-start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-text>{{'HOME.BTN_DATA_ENTRY'|translate: {name: (item.title | translate) } }}</ion-text>\n </ion-button>\n\n <!-- divider -->\n <div *ngIf=\"!item.path && !item.action\" [class]=\"item.cssClass\">\n <ion-label translate>{{item.title}}&nbsp;</ion-label>\n </div>\n </ng-container>\n\n <!--<p *ngIf=\"buttons.length\" class=\"visible-mobile\">&nbsp;</p>-->\n </ng-container>\n\n <ion-button expand=\"block\" color=\"secondary\" [routerLink]=\"['/account']\">\n <ion-icon slot=\"start\" class=\"ion-float-start\" name=\"person-circle\"></ion-icon>\n <ion-text translate>HOME.BTN_MY_ACCOUNT</ion-text>\n </ion-button>\n\n <p hidden-xs hidden-sm hidden-mobile>\n <ion-text [innerHTML]=\"'HOME.NOT_THIS_ACCOUNT_QUESTION' | translate: {displayName: accountName }\"></ion-text>\n <br/>\n <ion-text>\n <a href=\"#\" (click)=\"logout($event)\">\n <span translate>HOME.BTN_DISCONNECT</span>\n </a>\n </ion-text>\n </p>\n\n\n </ng-template>\n\n </ion-footer>\n </ion-card>\n\n <!-- Page history -->\n <ion-grid *ngIf=\"!loading && isLogin && pageHistory.length; else bottomBanner\"\n class=\"history-container ion-align-self-center\">\n <ion-row>\n <ion-col size=\"12\" size-xl=\"\" *ngFor=\"let page of pageHistory; trackBy: getPagePath\"\n class=\"ion-text-center\">\n <ion-card class=\"ion-align-self-start ion-text-start\" @fadeInAnimation>\n <ion-card-header class=\"ion-no-padding\">\n <!-- top bar -->\n <ion-card-subtitle>\n <button type=\"button\" tabindex=\"-1\"\n (click)=\"settings.removePageHistory(page.path)\"\n mat-icon-button class=\"ion-float-start ion-no-margin\">\n <mat-icon>close</mat-icon>\n </button>\n <ion-label [innerHTML]=\"page.subtitle|translate\"></ion-label>\n <ion-text class=\"ion-float-end\" [title]=\"page.time|dateFormat:{time: true}\">\n <small><ion-icon name=\"time-outline\"></ion-icon>&nbsp;{{ page.time|dateFromNow }}</small>&nbsp;\n </ion-text>\n </ion-card-subtitle>\n\n <!-- main page -->\n <ion-card-title class=\"ion-no-margin ion-no-padding\">\n <ion-item detail=\"true\"\n tappable class=\"text-1x\"\n [routerLink]=\"page.path\"\n routerDirection=\"root\" lines=\"none\">\n <!-- page icon-->\n <ion-icon *ngIf=\"page.icon\" slot=\"start\" [name]=\"page.icon\"></ion-icon>\n <mat-icon *ngIf=\"page.matIcon\" slot=\"start\">{{page.matIcon}}</mat-icon>\n\n <ion-label color=\"primary\" [innerHTML]=\"page.title\"></ion-label>\n </ion-item>\n </ion-card-title>\n </ion-card-header>\n\n <!-- children pages -->\n <ion-card-content class=\"ion-no-padding ion-padding-start\" *ngIf=\"page.children?.length\">\n <ion-list class=\"ion-no-padding\">\n <ion-item detail=\"true\"\n *ngFor=\"let childPage of page.children\"\n tappable class=\"text-1x\"\n [routerLink]=\"childPage.path\"\n routerDirection=\"root\">\n <!-- page icon-->\n <ion-icon *ngIf=\"childPage.icon\" slot=\"start\" color=\"dark\" [name]=\"childPage.icon\"></ion-icon>\n <mat-icon *ngIf=\"childPage.matIcon\" slot=\"start\" color=\"dark\">{{childPage.matIcon}}</mat-icon>\n\n <ion-label color=\"dark\" [innerHTML]=\"childPage.title\"></ion-label>\n </ion-item>\n </ion-list>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <!-- Display configured Departments logos -->\n <ng-template #bottomBanner>\n <div class=\"bottom-banner ion-text-center ion-padding\" *ngIf=\"!loadingBanner\" @fadeInAnimation>\n <a href=\"{{ item.siteUrl }}\" *ngFor=\"let item of $partners | async \">\n <img class=\"logo\" src=\"{{ item.logo }}\" alt=\"{{item.label}}\" [title]=\"item.label\" />\n </a>\n </div>\n </ng-template>\n\n\n</ion-content>\n",
18253
+ template: "<app-toolbar [canGoBack]=\"false\"\n visible-xs visible-sm visible-mobile>\n\n <!-- change locale button -->\n <ion-button slot=\"end\" *ngIf=\"currentLocaleCode; let code\"\n [matMenuTriggerFor]=\"localeMenu\">\n <ion-label class=\"ion-text-uppercase\">&nbsp;{{ code }}</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n</app-toolbar>\n\n<!-- change locale menu -->\n<mat-menu #localeMenu=\"matMenu\">\n <button *ngFor=\"let item of locales\"\n mat-menu-item\n (click)=\"changeLanguage(item.key)\">\n <ion-label>{{item.value}}</ion-label>\n </button>\n</mat-menu>\n\n<ion-content [ngStyle]=\"contentStyle\" no-padding-xs>\n\n <!-- loading spinner -->\n <div class=\"loading-page\" [class.cdk-visually-hidden]=\"!loading\">\n <div class=\"spinner\" *ngIf=\"loading && showSpinner\">\n <p>Loading...</p>\n <div class=\"sk-cube1 sk-cube\"></div>\n <div class=\"sk-cube2 sk-cube\"></div>\n <div class=\"sk-cube4 sk-cube\"></div>\n <div class=\"sk-cube3 sk-cube\"></div>\n </div>\n </div>\n\n <!-- Desktop: translucent top toolbar -->\n <div hidden-xs hidden-sm hidden-mobile>\n <ion-toolbar translucent>\n <ion-buttons slot=\"start\">\n <ion-menu-toggle>\n <ion-button color=\"light\" fill=\"clear\">\n <ion-icon slot=\"icon-only\" name=\"menu\"></ion-icon>\n </ion-button>\n </ion-menu-toggle>\n </ion-buttons>\n\n <ion-buttons slot=\"end\">\n <!-- change locale button -->\n <ion-button color=\"secondary\" fill=\"solid\"\n *ngIf=\"currentLocaleCode; let code\"\n [matMenuTriggerFor]=\"localeMenu\">\n <ion-label class=\"ion-text-uppercase\">&nbsp;{{ code }}</ion-label>\n <mat-icon slot=\"end\">arrow_drop_down</mat-icon>\n </ion-button>\n </ion-buttons>\n </ion-toolbar>\n </div>\n\n <!-- Install (and upgrade) card -->\n <app-install-upgrade-card [isLogin]=\"isLogin\"\n showInstallButton=\"true\">\n </app-install-upgrade-card>\n\n <!-- Welcome card -->\n <ion-card *ngIf=\"!loading\"\n class=\"main welcome ion-padding ion-text-center ion-align-self-center\"\n @fadeInAnimation>\n <ion-card-header>\n <ion-card-title class=\"ion-text-center\">\n <span *ngIf=\"isWeb\" [innerHTML]=\"'HOME.WELCOME_WEB'|translate: {appName: appName}\"></span>\n <span *ngIf=\"!isWeb\" [innerHTML]=\"'HOME.WELCOME_APP'|translate: {appName: appName}\"></span>\n </ion-card-title>\n <ion-card-subtitle [innerHTML]=\"description\">\n </ion-card-subtitle>\n </ion-card-header>\n <ion-card-content class=\"ion-no-padding\">\n <ion-text color=\"primary\">\n <img class=\"logo\" *ngIf=\"logo\" src=\"{{ logo }}\">\n </ion-text>\n <!-- register help text -->\n <ion-text *ngIf=\"!isLogin && canRegister\">\n <br/>\n <span translate>HOME.REGISTER_HELP</span>\n </ion-text>\n </ion-card-content>\n\n <ion-footer class=\"ion-padding-top\">\n\n <!-- If NOT login -->\n <ng-container *ngIf=\"!isLogin; else loginButtons;\">\n\n <ion-button *ngIf=\"canRegister\" expand=\"block\" color=\"tertiary\" (click)=\"register()\">\n <span translate>HOME.BTN_REGISTER</span>\n </ion-button>\n <ion-button expand=\"block\" color=\"light\" [routerLink]=\"['/']\" (click)=\"login()\">\n <span translate>AUTH.BTN_LOGIN</span>\n </ion-button>\n\n </ng-container>\n\n <!-- If user login -->\n <ng-template #loginButtons>\n\n <!-- Feature buttons -->\n <ng-container *ngIf=\"$filteredButtons | async as buttons\">\n <ng-container *ngFor=\"let item of buttons\">\n <ion-button *ngIf=\"item.path\"\n expand=\"block\" color=\"tertiary\"\n [class]=\"item.cssClass\"\n [routerLink]=\"item.path\"\n routerDirection=\"root\">\n <ion-icon slot=\"start\" class=\"ion-float-start\" *ngIf=\"item.icon\" [name]=\"item.icon\"></ion-icon>\n <mat-icon slot=\"start\" class=\"ion-float-start\" *ngIf=\"item.matIcon\">{{item.matIcon}}</mat-icon>\n <ion-text>{{'HOME.BTN_DATA_ENTRY'|translate: {name: (item.title | translate) } }}</ion-text>\n </ion-button>\n\n <!-- divider -->\n <div *ngIf=\"!item.path && !item.action\" [class]=\"item.cssClass\">\n <ion-label translate>{{item.title}}&nbsp;</ion-label>\n </div>\n </ng-container>\n\n <!--<p *ngIf=\"buttons.length\" class=\"visible-mobile\">&nbsp;</p>-->\n </ng-container>\n\n <ion-button *ngIf=\"showAccountButton\" expand=\"block\" color=\"secondary\" [routerLink]=\"['/account']\">\n <ion-icon slot=\"start\" class=\"ion-float-start\" name=\"person-circle\"></ion-icon>\n <ion-text translate>HOME.BTN_MY_ACCOUNT</ion-text>\n </ion-button>\n\n <p hidden-xs hidden-sm hidden-mobile>\n <ion-text [innerHTML]=\"'HOME.NOT_THIS_ACCOUNT_QUESTION' | translate: {displayName: accountName }\"></ion-text>\n <br/>\n <ion-text>\n <a href=\"#\" (click)=\"logout($event)\">\n <span translate>HOME.BTN_DISCONNECT</span>\n </a>\n </ion-text>\n </p>\n\n\n </ng-template>\n\n </ion-footer>\n </ion-card>\n\n <!-- Page history -->\n <ion-grid *ngIf=\"!loading && isLogin && pageHistory.length; else bottomBanner\"\n class=\"history-container ion-align-self-center\">\n <ion-row>\n <ion-col size=\"12\" size-xl=\"\" *ngFor=\"let page of pageHistory; trackBy: getPagePath\"\n class=\"ion-text-center\">\n <ion-card class=\"ion-align-self-start ion-text-start\" @fadeInAnimation>\n <ion-card-header class=\"ion-no-padding\">\n <!-- top bar -->\n <ion-card-subtitle>\n <button type=\"button\" tabindex=\"-1\"\n (click)=\"settings.removePageHistory(page.path)\"\n mat-icon-button class=\"ion-float-start ion-no-margin\">\n <mat-icon>close</mat-icon>\n </button>\n <ion-label [innerHTML]=\"page.subtitle|translate\"></ion-label>\n <ion-text class=\"ion-float-end\" [title]=\"page.time|dateFormat:{time: true}\">\n <small><ion-icon name=\"time-outline\"></ion-icon>&nbsp;{{ page.time|dateFromNow }}</small>&nbsp;\n </ion-text>\n </ion-card-subtitle>\n\n <!-- main page -->\n <ion-card-title class=\"ion-no-margin ion-no-padding\">\n <ion-item detail=\"true\"\n tappable class=\"text-1x\"\n [routerLink]=\"page.path\"\n routerDirection=\"root\" lines=\"none\">\n <!-- page icon-->\n <ion-icon *ngIf=\"page.icon\" slot=\"start\" [name]=\"page.icon\"></ion-icon>\n <mat-icon *ngIf=\"page.matIcon\" slot=\"start\">{{page.matIcon}}</mat-icon>\n\n <ion-label color=\"primary\" [innerHTML]=\"page.title\"></ion-label>\n </ion-item>\n </ion-card-title>\n </ion-card-header>\n\n <!-- children pages -->\n <ion-card-content class=\"ion-no-padding ion-padding-start\" *ngIf=\"page.children?.length\">\n <ion-list class=\"ion-no-padding\">\n <ion-item detail=\"true\"\n *ngFor=\"let childPage of page.children\"\n tappable class=\"text-1x\"\n [routerLink]=\"childPage.path\"\n routerDirection=\"root\">\n <!-- page icon-->\n <ion-icon *ngIf=\"childPage.icon\" slot=\"start\" color=\"dark\" [name]=\"childPage.icon\"></ion-icon>\n <mat-icon *ngIf=\"childPage.matIcon\" slot=\"start\" color=\"dark\">{{childPage.matIcon}}</mat-icon>\n\n <ion-label color=\"dark\" [innerHTML]=\"childPage.title\"></ion-label>\n </ion-item>\n </ion-list>\n </ion-card-content>\n </ion-card>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n <!-- Display configured Departments logos -->\n <ng-template #bottomBanner>\n <div class=\"bottom-banner ion-text-center ion-padding\" *ngIf=\"!loadingBanner\" @fadeInAnimation>\n <a href=\"{{ item.siteUrl }}\" *ngFor=\"let item of $partners | async \">\n <img class=\"logo\" src=\"{{ item.logo }}\" alt=\"{{item.label}}\" [title]=\"item.label\" />\n </a>\n </div>\n </ng-template>\n\n\n</ion-content>\n",
18267
18254
  changeDetection: ChangeDetectionStrategy.OnPush,
18268
18255
  animations: [fadeInAnimation, slideUpDownAnimation],
18269
18256
  styles: ["h1,h2,h3,h4,h5{white-space:normal}.center,ion-content ion-card.welcome img{text-align:center;display:inline-block}ion-content{--background:transparent;background-size:cover;-webkit-background-size:cover;-moz-background-size:cover;-o-background-size:cover;display:inline-block;padding:15px}ion-content,ion-content .loading-page{background-color:var(--ion-color-primary)}ion-content .loading-page{display:block;height:100%;width:100%;position:absolute;z-index:5;transition:background .5s linear;-webkit-transition:background 1.5s linear}ion-content .loading-page.hidden{background-color:rgba(var(--ion-color-primary),0)}ion-content ion-card{z-index:9}ion-content ion-card ion-card-header{display:block}ion-content ion-card ion-card-header ion-card-subtitle,ion-content ion-card ion-card-header ion-card-title{display:block;width:100%}ion-content ion-card.main{min-width:240px;max-width:400px;margin-left:auto;margin-right:auto}ion-content ion-card.welcome{background-color:hsla(0,0%,100%,.7)}ion-content ion-card.welcome button{margin-top:16px}ion-content ion-card.welcome img{max-width:250px}ion-content .history-container{margin-left:auto;margin-right:auto}ion-content .history-container ion-card{display:inline-block;box-sizing:border-box;z-index:8;min-width:240px;max-width:400px;width:100%;margin-left:auto;margin-right:auto;background-color:hsla(0,0%,100%,.7)}ion-content .history-container ion-card ion-card-header ion-card-subtitle{height:40px}ion-content .history-container ion-card ion-card-header ion-card-subtitle button[float-start]{z-index:99;margin:0}ion-content .history-container ion-card ion-card-header ion-card-subtitle ion-label{line-height:40px}ion-content .history-container ion-card ion-card-header ion-card-subtitle ion-label[float-end]{padding-right:16px;font-weight:400}ion-content .history-container ion-card ion-card-header ion-card-title ion-item{--ion-item-background:$transparent;--ion-item-icon-color:var(--ion-color-primary);--ion-item-text-color:var(--ion-color-primary)}ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-icon[slot=start],ion-content .history-container ion-card ion-card-header ion-card-title ion-item mat-icon[slot=start]{margin-right:unset;-webkit-margin-end:16px!important;margin-inline-end:16px!important;color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor}ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-label,ion-content .history-container ion-card ion-card-header ion-card-title ion-item ion-text{color:var(--ion-item-text-color)!important;-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%}ion-content .history-container ion-card ion-card-content ion-list{--ion-item-background:var(--ion-color-transparent)}ion-content .history-container ion-card ion-card-content ion-list ion-item{--ion-item-icon-color:var(--ion-color-dark);--ion-item-text-color:var(--ion-color-dark)}ion-content .history-container ion-card ion-card-content ion-list ion-item ion-icon[slot=start],ion-content .history-container ion-card ion-card-content ion-list ion-item mat-icon[slot=start]{color:var(--ion-item-icon-color)!important;fill:currentColor;stroke:currentColor;margin-right:unset;-webkit-margin-end:16px!important;margin-inline-end:16px!important}ion-content .history-container ion-card ion-card-content ion-list ion-item ion-label,ion-content .history-container ion-card ion-card-content ion-list ion-item ion-text{color:var(--ion-item-text-color)!important}ion-content .bottom-banner{background-color:hsla(0,0%,100%,.7);min-width:240px;z-index:0;position:absolute;left:16px;right:16px;bottom:16px}ion-content .bottom-banner img.logo{max-height:50px;margin-left:8px}ion-content ion-text{text-align:center}@media screen and (max-width:575px){ion-content ion-card{min-width:160px;width:calc(100% - 20px);max-width:100%;margin-left:10px;margin-right:10px}ion-content ion-card h1{margin-top:0;font-size:20px}ion-content ion-card ion-card-content ion-button{margin-top:8px}ion-content .bottom-banner{display:block;position:unset}ion-content .bottom-banner img.logo{max-height:30px}}@media screen and (max-width:767px) and (min-width:576px){ion-content{min-height:555px}ion-content .bottom-banner img.logo{max-height:40px}}@media screen and (min-width:768px){ion-content{min-height:calc(100% - 100px)}}"]
@@ -18279,7 +18266,7 @@ HomePage.ctorParameters = () => [
18279
18266
  { type: ChangeDetectorRef },
18280
18267
  { type: NetworkService },
18281
18268
  { type: LocalSettingsService },
18282
- { type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
18269
+ { type: Environment, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
18283
18270
  { type: Array, decorators: [{ type: Inject, args: [APP_LOCALES,] }] },
18284
18271
  { type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_HOME_BUTTONS,] }] }
18285
18272
  ];
@@ -18422,7 +18409,7 @@ class UserSettingsValidatorService extends AppValidatorService {
18422
18409
  });
18423
18410
  }
18424
18411
  }
18425
- UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18412
+ UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
18426
18413
  UserSettingsValidatorService.decorators = [
18427
18414
  { type: Injectable, args: [{ providedIn: 'root' },] }
18428
18415
  ];
@@ -18466,7 +18453,7 @@ class AccountValidatorService extends AppValidatorService {
18466
18453
  return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
18467
18454
  }
18468
18455
  }
18469
- AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18456
+ AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
18470
18457
  AccountValidatorService.decorators = [
18471
18458
  { type: Injectable, args: [{ providedIn: 'root' },] }
18472
18459
  ];
@@ -19031,7 +19018,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
19031
19018
  });
19032
19019
  }
19033
19020
  }
19034
- LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
19021
+ LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
19035
19022
  LocalSettingsValidatorService.decorators = [
19036
19023
  { type: Injectable, args: [{ providedIn: 'root' },] }
19037
19024
  ];
@@ -19650,7 +19637,7 @@ class IsOnFieldModePipe {
19650
19637
  return value === 'FIELD';
19651
19638
  }
19652
19639
  }
19653
- IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
19640
+ IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
19654
19641
  IsOnFieldModePipe.decorators = [
19655
19642
  { type: Pipe, args: [{
19656
19643
  name: 'isOnField'
@@ -19662,7 +19649,7 @@ class IsNotOnFieldModePipe {
19662
19649
  return value !== 'FIELD';
19663
19650
  }
19664
19651
  }
19665
- IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
19652
+ IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
19666
19653
  IsNotOnFieldModePipe.decorators = [
19667
19654
  { type: Pipe, args: [{
19668
19655
  name: 'isNotOnField'
@@ -19677,7 +19664,7 @@ class PersonToStringPipe {
19677
19664
  return PersonUtils.personToString(value);
19678
19665
  }
19679
19666
  }
19680
- PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
19667
+ PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
19681
19668
  PersonToStringPipe.decorators = [
19682
19669
  { type: Pipe, args: [{
19683
19670
  name: 'personToString'
@@ -20062,7 +20049,7 @@ class IsLoginAccountPipe {
20062
20049
  return value && value.pubkey && true;
20063
20050
  }
20064
20051
  }
20065
- IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
20052
+ IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
20066
20053
  IsLoginAccountPipe.decorators = [
20067
20054
  { type: Pipe, args: [{
20068
20055
  name: 'isLogin'
@@ -20074,7 +20061,7 @@ class AccountToStringPipe {
20074
20061
  return accountToString(value);
20075
20062
  }
20076
20063
  }
20077
- AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
20064
+ AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
20078
20065
  AccountToStringPipe.decorators = [
20079
20066
  { type: Pipe, args: [{
20080
20067
  name: 'accountToString'
@@ -20089,7 +20076,7 @@ class DepartmentToStringPipe {
20089
20076
  return departmentToString(value);
20090
20077
  }
20091
20078
  }
20092
- DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
20079
+ DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
20093
20080
  DepartmentToStringPipe.decorators = [
20094
20081
  { type: Pipe, args: [{
20095
20082
  name: 'departmentToString'
@@ -20115,7 +20102,7 @@ class MenuService {
20115
20102
  this._visibleSubject.next(value);
20116
20103
  }
20117
20104
  }
20118
- MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20105
+ MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
20119
20106
  MenuService.decorators = [
20120
20107
  { type: Injectable, args: [{
20121
20108
  providedIn: 'root'
@@ -20641,7 +20628,7 @@ class AuthGuardService {
20641
20628
  }));
20642
20629
  }
20643
20630
  }
20644
- 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" });
20631
+ AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
20645
20632
  AuthGuardService.decorators = [
20646
20633
  { type: Injectable, args: [{ providedIn: 'root' },] }
20647
20634
  ];
@@ -20683,7 +20670,7 @@ class BaseEntityService extends BaseGraphqlService {
20683
20670
  query,
20684
20671
  variables: { id },
20685
20672
  fetchPolicy: opts && opts.fetchPolicy || undefined,
20686
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20673
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20687
20674
  })
20688
20675
  .pipe(map(({ data }) => (!opts || opts.toEntity !== false)
20689
20676
  ? (data && this.fromObject(data))
@@ -20698,7 +20685,7 @@ class BaseEntityService extends BaseGraphqlService {
20698
20685
  query,
20699
20686
  variables: { id },
20700
20687
  fetchPolicy: opts && opts.fetchPolicy || undefined,
20701
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20688
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
20702
20689
  });
20703
20690
  // Convert to entity
20704
20691
  return (!opts || opts.toEntity !== false)
@@ -20729,7 +20716,7 @@ class BaseEntityService extends BaseGraphqlService {
20729
20716
  totalFieldName: withTotal ? 'total' : undefined,
20730
20717
  insertFilterFn: filter && filter.asFilterFn(),
20731
20718
  variables,
20732
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
20719
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
20733
20720
  fetchPolicy: opts && opts.fetchPolicy || undefined
20734
20721
  })
20735
20722
  .pipe(map(({ data, total }) => {
@@ -20765,7 +20752,7 @@ class BaseEntityService extends BaseGraphqlService {
20765
20752
  const { data, total } = yield this.graphql.query({
20766
20753
  query,
20767
20754
  variables,
20768
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
20755
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
20769
20756
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
20770
20757
  });
20771
20758
  const entities = (!opts || opts.toEntity !== false) ?
@@ -20804,7 +20791,7 @@ class BaseEntityService extends BaseGraphqlService {
20804
20791
  variables: {
20805
20792
  filter: filter && filter.asPodObject()
20806
20793
  },
20807
- error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
20794
+ error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
20808
20795
  fetchPolicy: opts && opts.fetchPolicy || 'network-only'
20809
20796
  });
20810
20797
  return res.total;
@@ -20840,7 +20827,7 @@ class BaseEntityService extends BaseGraphqlService {
20840
20827
  variables: {
20841
20828
  data: json
20842
20829
  },
20843
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20830
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20844
20831
  update: (proxy, { data }) => {
20845
20832
  const savedEntities = data && data.data;
20846
20833
  if (savedEntities) {
@@ -20896,7 +20883,7 @@ class BaseEntityService extends BaseGraphqlService {
20896
20883
  variables: {
20897
20884
  data: json
20898
20885
  },
20899
- error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20886
+ error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
20900
20887
  update: (cache, { data }) => {
20901
20888
  // Update entity
20902
20889
  const savedEntity = data && data.data;
@@ -20944,7 +20931,7 @@ class BaseEntityService extends BaseGraphqlService {
20944
20931
  refetchQueries: this.getRefetchQueriesForMutation(opts),
20945
20932
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
20946
20933
  variables: { ids },
20947
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20934
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20948
20935
  update: (cache, res) => {
20949
20936
  // Remove from cache
20950
20937
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -20985,7 +20972,7 @@ class BaseEntityService extends BaseGraphqlService {
20985
20972
  refetchQueries: this.getRefetchQueriesForMutation(opts),
20986
20973
  awaitRefetchQueries: opts && opts.awaitRefetchQueries,
20987
20974
  variables: { id },
20988
- error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20975
+ error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
20989
20976
  update: (proxy, res) => {
20990
20977
  // Remove from cache
20991
20978
  if (this.watchQueriesUpdatePolicy === 'update-cache') {
@@ -21018,7 +21005,7 @@ class BaseEntityService extends BaseGraphqlService {
21018
21005
  query: opts && opts.query || this.subscriptions.listenChanges,
21019
21006
  variables,
21020
21007
  error: {
21021
- code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
21008
+ code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
21022
21009
  message: 'ERROR.SUBSCRIBE_DATA_ERROR'
21023
21010
  }
21024
21011
  })
@@ -21204,7 +21191,7 @@ class EntitiesTableDataSource extends TableDataSource {
21204
21191
  if (this._debug)
21205
21192
  invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
21206
21193
  // Stop with an error
21207
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21194
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
21208
21195
  }
21209
21196
  this._editingRowCount = 0;
21210
21197
  let data;
@@ -22068,14 +22055,14 @@ class AppTable {
22068
22055
  return __awaiter(this, void 0, void 0, function* () {
22069
22056
  opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
22070
22057
  if (this.readOnly) {
22071
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22058
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22072
22059
  }
22073
22060
  this.resetError();
22074
22061
  // Keep edited row id (should be done BEFORE confirmEditCreate() )
22075
- 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));
22076
- const previouslyEditedData = 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);
22062
+ 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;
22063
+ 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;
22077
22064
  if (!this.confirmEditCreate()) {
22078
- throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22065
+ throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
22079
22066
  }
22080
22067
  // Mark as saving
22081
22068
  this.markAsSaving();
@@ -22192,7 +22179,7 @@ class AppTable {
22192
22179
  var _a;
22193
22180
  return __awaiter(this, void 0, void 0, function* () {
22194
22181
  if (this.readOnly) {
22195
- throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22182
+ throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
22196
22183
  }
22197
22184
  if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
22198
22185
  return 0; // SKip
@@ -23726,7 +23713,7 @@ class AppEntityEditor extends AppTabEditor {
23726
23713
  try {
23727
23714
  const data = yield this.dataService.load(id, opts);
23728
23715
  if (!data)
23729
- throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
23716
+ throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
23730
23717
  this._usageMode = this.computeUsageMode(data);
23731
23718
  yield this.onEntityLoaded(data, opts);
23732
23719
  yield this.updateView(data, opts);
@@ -24661,7 +24648,7 @@ class UserEventService extends BaseGraphqlService {
24661
24648
  EntityUtils.copyIdAndUpdateDate(source, target);
24662
24649
  }
24663
24650
  }
24664
- 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" });
24651
+ 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" });
24665
24652
  UserEventService.decorators = [
24666
24653
  { type: Injectable, args: [{ providedIn: 'root' },] }
24667
24654
  ];
@@ -25045,7 +25032,7 @@ class PersonService extends BaseEntityService {
25045
25032
  return target;
25046
25033
  }
25047
25034
  }
25048
- 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" });
25035
+ PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
25049
25036
  PersonService.decorators = [
25050
25037
  { type: Injectable, args: [{ providedIn: 'root' },] }
25051
25038
  ];
@@ -25076,7 +25063,7 @@ class PersonValidatorService {
25076
25063
  return this.formBuilder.group(formConfig);
25077
25064
  }
25078
25065
  }
25079
- PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
25066
+ PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
25080
25067
  PersonValidatorService.decorators = [
25081
25068
  { type: Injectable, args: [{ providedIn: 'root' },] }
25082
25069
  ];
@@ -25270,16 +25257,16 @@ AdminModule.decorators = [
25270
25257
  ];
25271
25258
  AdminModule.ctorParameters = () => [];
25272
25259
 
25273
- const ɵ0 = {
25260
+ const ɵ0$c = {
25274
25261
  profile: 'ADMIN'
25275
25262
  };
25276
- const routes = [
25263
+ const routes$2 = [
25277
25264
  {
25278
25265
  path: 'users',
25279
25266
  pathMatch: 'full',
25280
25267
  component: UsersPage,
25281
25268
  canActivate: [AuthGuardService],
25282
- data: ɵ0
25269
+ data: ɵ0$c
25283
25270
  }
25284
25271
  ];
25285
25272
  class AdminRoutingModule {
@@ -25289,13 +25276,13 @@ AdminRoutingModule.decorators = [
25289
25276
  imports: [
25290
25277
  SharedRoutingModule,
25291
25278
  AdminModule,
25292
- RouterModule.forChild(routes)
25279
+ RouterModule.forChild(routes$2)
25293
25280
  ],
25294
25281
  exports: [RouterModule]
25295
25282
  },] }
25296
25283
  ];
25297
25284
 
25298
- const ErrorCodes = {
25285
+ const ErrorCodes$2 = {
25299
25286
  LOAD_PERSONS_ERROR: 100,
25300
25287
  SAVE_PERSONS_ERROR: 101,
25301
25288
  DELETE_PERSONS_ERROR: 102,
@@ -25307,5 +25294,5 @@ const ErrorCodes = {
25307
25294
  * Generated bundle index. Do not edit.
25308
25295
  */
25309
25296
 
25310
- export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, 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, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, 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, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, 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, isDesktop, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isTouchUi, isWindow, 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, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, ToastTestingModule as ɵg, ToastTestingPage as ɵh, RegisterForm as ɵi, AccountValidatorService as ɵj, RegisterModal as ɵk, UserSettingsValidatorService as ɵl, LocalSettingsValidatorService as ɵm, AppIconComponent as ɵn };
25297
+ export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, 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, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, 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, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, 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, isDesktop, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isTouchUi, isWindow, 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, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, ToastTestingModule as ɵg, ToastTestingPage as ɵh, RegisterForm as ɵi, AccountValidatorService as ɵj, RegisterModal as ɵk, UserSettingsValidatorService as ɵl, LocalSettingsValidatorService as ɵm, AppIconComponent as ɵn };
25311
25298
  //# sourceMappingURL=sumaris-net.ngx-components.js.map