@sumaris-net/ngx-components 1.10.6 → 1.10.8
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.
- package/bundles/sumaris-net.ngx-components.umd.js +298 -316
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/core/home/home.js +7 -5
- package/esm2015/src/app/core/services/model/entity.model.js +5 -1
- package/esm2015/src/environments/environment.class.js +1 -1
- package/fesm2015/sumaris-net.ngx-components.js +264 -273
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/home/home.d.ts +4 -2
- package/src/app/core/services/model/entity.model.d.ts +1 -0
- package/src/environments/environment.class.d.ts +1 -0
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import
|
|
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
|
|
68
|
-
import
|
|
69
|
-
import
|
|
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
|
|
81
|
-
import
|
|
82
|
-
import
|
|
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
|
|
101
|
-
import
|
|
102
|
-
import
|
|
103
|
-
import
|
|
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
|
|
995
|
-
const ɵ0
|
|
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
|
|
1001
|
-
this._onTouchedCallback = noop
|
|
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 =
|
|
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
|
|
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
|
|
1734
|
+
const duration = moment.duration(endDate.diff(startDate));
|
|
1750
1735
|
if (duration.asMinutes() < 0)
|
|
1751
1736
|
return '';
|
|
1752
|
-
const timeDuration = moment
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2010
|
+
return roundFloat(degrees, maxDecimals);
|
|
2026
2011
|
}
|
|
2027
|
-
function roundFloat
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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$
|
|
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$
|
|
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$
|
|
2230
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2246
2231
|
}
|
|
2247
2232
|
else if (value.length === 13) {
|
|
2248
|
-
return moment$
|
|
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$
|
|
2240
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2256
2241
|
}
|
|
2257
2242
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2258
|
-
return moment$
|
|
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$
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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$
|
|
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$
|
|
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 =
|
|
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$
|
|
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$
|
|
4154
|
+
const noop$1 = () => {
|
|
4170
4155
|
};
|
|
4171
|
-
const ɵ0$
|
|
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$
|
|
4180
|
-
this._onTouchedCallback = noop$
|
|
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
|
|
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
|
|
4523
|
-
const noop$
|
|
4524
|
-
const ɵ0$
|
|
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$
|
|
4534
|
-
this._onTouchedCallback = noop$
|
|
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
|
|
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
|
|
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$
|
|
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
|
|
4816
|
-
const noop$
|
|
4800
|
+
const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4801
|
+
const noop$3 = () => {
|
|
4817
4802
|
};
|
|
4818
|
-
const ɵ0$
|
|
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$
|
|
4829
|
-
this._onTouchedCallback = noop$
|
|
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
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
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$
|
|
5506
|
+
const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5507
|
+
const noop$5 = () => {
|
|
5523
5508
|
};
|
|
5524
|
-
const ɵ0$6 = noop$
|
|
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$
|
|
5534
|
-
this._onTouchedCallback = noop$
|
|
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$
|
|
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$
|
|
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$
|
|
5764
|
+
const noop$6 = () => {
|
|
5780
5765
|
};
|
|
5781
|
-
const ɵ0$
|
|
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$
|
|
5789
|
-
this._onTouchedCallback = noop$
|
|
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> \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> </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$
|
|
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 =
|
|
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$
|
|
6884
|
-
const ɵ0$
|
|
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$
|
|
6890
|
-
this._onTouchedCallback = noop$
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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$
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
|
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
|
|
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 =
|
|
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
|
];
|
|
@@ -9253,6 +9238,10 @@ function isInstanceOf(obj, constructor) {
|
|
|
9253
9238
|
}
|
|
9254
9239
|
// @dynamic
|
|
9255
9240
|
class EntityUtils {
|
|
9241
|
+
// Check that the object has a NOT nil attribute (ID by default)
|
|
9242
|
+
static isEntity(obj) {
|
|
9243
|
+
return isNotNil(obj.__typename) && (typeof obj.fromObject === 'function') && (typeof obj.asObject === 'function');
|
|
9244
|
+
}
|
|
9256
9245
|
// Check that the object has a NOT nil attribute (ID by default)
|
|
9257
9246
|
static isNotEmpty(obj, checkedAttribute) {
|
|
9258
9247
|
return !!obj && obj[checkedAttribute] !== null && obj[checkedAttribute] !== undefined;
|
|
@@ -10437,7 +10426,7 @@ class LocalSettingsService extends StartableService {
|
|
|
10437
10426
|
return page;
|
|
10438
10427
|
}
|
|
10439
10428
|
}
|
|
10440
|
-
LocalSettingsService.ɵprov =
|
|
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" });
|
|
10441
10430
|
LocalSettingsService.decorators = [
|
|
10442
10431
|
{ type: Injectable, args: [{
|
|
10443
10432
|
providedIn: 'root',
|
|
@@ -11095,7 +11084,7 @@ class NetworkService extends StartableService {
|
|
|
11095
11084
|
});
|
|
11096
11085
|
}
|
|
11097
11086
|
}
|
|
11098
|
-
NetworkService.ɵprov =
|
|
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" });
|
|
11099
11088
|
NetworkService.decorators = [
|
|
11100
11089
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
11101
11090
|
];
|
|
@@ -11106,16 +11095,16 @@ NetworkService.ctorParameters = () => [
|
|
|
11106
11095
|
{ type: CryptoService },
|
|
11107
11096
|
{ type: Storage },
|
|
11108
11097
|
{ type: LocalSettingsService },
|
|
11109
|
-
{ type: CacheService },
|
|
11098
|
+
{ type: CacheService$1 },
|
|
11110
11099
|
{ type: HttpClient },
|
|
11111
11100
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
11112
|
-
{ type: Network, decorators: [{ type: Optional }] },
|
|
11113
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
11101
|
+
{ type: Network$1, decorators: [{ type: Optional }] },
|
|
11102
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
11114
11103
|
{ type: TranslateService, decorators: [{ type: Optional }] },
|
|
11115
11104
|
{ type: ToastController, decorators: [{ type: Optional }] }
|
|
11116
11105
|
];
|
|
11117
11106
|
|
|
11118
|
-
const ErrorCodes
|
|
11107
|
+
const ErrorCodes = {
|
|
11119
11108
|
UNKNOWN_ERROR: 0,
|
|
11120
11109
|
LOAD_ACCOUNT_ERROR: 1,
|
|
11121
11110
|
BAD_PASSWORD: 2,
|
|
@@ -11467,7 +11456,7 @@ class EntityStore {
|
|
|
11467
11456
|
}
|
|
11468
11457
|
catch (err) {
|
|
11469
11458
|
console.error(err);
|
|
11470
|
-
throw { code: ErrorCodes
|
|
11459
|
+
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
11471
11460
|
}
|
|
11472
11461
|
}
|
|
11473
11462
|
// Emit update event
|
|
@@ -12041,7 +12030,7 @@ class EntitiesStorage extends StartableService {
|
|
|
12041
12030
|
}
|
|
12042
12031
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
12043
12032
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
12044
|
-
EntitiesStorage.ɵprov =
|
|
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" });
|
|
12045
12034
|
EntitiesStorage.decorators = [
|
|
12046
12035
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
12047
12036
|
];
|
|
@@ -12178,10 +12167,10 @@ function referentialToString(obj, properties) {
|
|
|
12178
12167
|
function referentialsToString(values, properties, separator) {
|
|
12179
12168
|
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
12180
12169
|
}
|
|
12181
|
-
const ɵ0$
|
|
12170
|
+
const ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
12182
12171
|
const StatusList = Object.freeze([
|
|
12183
12172
|
{
|
|
12184
|
-
id: ɵ0$
|
|
12173
|
+
id: ɵ0$a,
|
|
12185
12174
|
icon: 'checkmark',
|
|
12186
12175
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
12187
12176
|
},
|
|
@@ -12456,7 +12445,7 @@ function accountToString(data) {
|
|
|
12456
12445
|
(data.lastName || '')) || '';
|
|
12457
12446
|
}
|
|
12458
12447
|
|
|
12459
|
-
const uuidv4 = uuidv4Imported;
|
|
12448
|
+
const uuidv4$1 = uuidv4Imported;
|
|
12460
12449
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
12461
12450
|
const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
12462
12451
|
/**
|
|
@@ -12500,7 +12489,7 @@ function createTrackerLink(opts) {
|
|
|
12500
12489
|
// Skip if not tracked
|
|
12501
12490
|
if (!context || !context.tracked)
|
|
12502
12491
|
return forward(operation);
|
|
12503
|
-
const id = context.serializationKey || uuidv4();
|
|
12492
|
+
const id = context.serializationKey || uuidv4$1();
|
|
12504
12493
|
console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
|
|
12505
12494
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
12506
12495
|
const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -13163,7 +13152,7 @@ class GraphqlService extends StartableService {
|
|
|
13163
13152
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
13164
13153
|
|| this.toAppError(err.networkError)
|
|
13165
13154
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
13166
|
-
|| this.createAppErrorByCode(ErrorCodes
|
|
13155
|
+
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
13167
13156
|
// If graphQL: try to convert the first error found
|
|
13168
13157
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
13169
13158
|
|| this.toAppError(err)
|
|
@@ -13171,7 +13160,7 @@ class GraphqlService extends StartableService {
|
|
|
13171
13160
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
13172
13161
|
|| err;
|
|
13173
13162
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
13174
|
-
if (error && error.code === ErrorCodes
|
|
13163
|
+
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
13175
13164
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
13176
13165
|
this.onNetworkError.next(error);
|
|
13177
13166
|
}
|
|
@@ -13207,7 +13196,7 @@ class GraphqlService extends StartableService {
|
|
|
13207
13196
|
return 'ERROR.UNAUTHORIZED';
|
|
13208
13197
|
case ServerErrorCodes.FORBIDDEN:
|
|
13209
13198
|
return 'ERROR.FORBIDDEN';
|
|
13210
|
-
case ErrorCodes
|
|
13199
|
+
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
13211
13200
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
13212
13201
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
13213
13202
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -13238,7 +13227,7 @@ class GraphqlService extends StartableService {
|
|
|
13238
13227
|
return undefined;
|
|
13239
13228
|
}
|
|
13240
13229
|
}
|
|
13241
|
-
GraphqlService.ɵprov =
|
|
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" });
|
|
13242
13231
|
GraphqlService.decorators = [
|
|
13243
13232
|
{ type: Injectable, args: [{
|
|
13244
13233
|
providedIn: 'root'
|
|
@@ -13255,7 +13244,7 @@ GraphqlService.ctorParameters = () => [
|
|
|
13255
13244
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
13256
13245
|
];
|
|
13257
13246
|
|
|
13258
|
-
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
13247
|
+
const sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
13259
13248
|
class BaseGraphqlServiceOptions {
|
|
13260
13249
|
}
|
|
13261
13250
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
@@ -13406,8 +13395,8 @@ class BaseGraphqlService extends StartableService {
|
|
|
13406
13395
|
}
|
|
13407
13396
|
/* -- protected methods -- */
|
|
13408
13397
|
computeMutableWatchQueryId(opts) {
|
|
13409
|
-
const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13410
|
-
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) || '';
|
|
13411
13400
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
13412
13401
|
}
|
|
13413
13402
|
findMutableWatchQueries(opts) {
|
|
@@ -13473,7 +13462,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
|
|
|
13473
13462
|
/* ------------------------------------
|
|
13474
13463
|
* GraphQL queries
|
|
13475
13464
|
* ------------------------------------*/
|
|
13476
|
-
const Fragments
|
|
13465
|
+
const Fragments = {
|
|
13477
13466
|
account: gql `
|
|
13478
13467
|
fragment AccountFragment on AccountVO {
|
|
13479
13468
|
id
|
|
@@ -13508,14 +13497,14 @@ const Fragments$1 = {
|
|
|
13508
13497
|
}`
|
|
13509
13498
|
};
|
|
13510
13499
|
// Load account query
|
|
13511
|
-
const LoadQuery
|
|
13500
|
+
const LoadQuery = gql `
|
|
13512
13501
|
query Account {
|
|
13513
13502
|
data: account {
|
|
13514
13503
|
...AccountFragment
|
|
13515
13504
|
}
|
|
13516
13505
|
}
|
|
13517
|
-
${Fragments
|
|
13518
|
-
${Fragments
|
|
13506
|
+
${Fragments.account}
|
|
13507
|
+
${Fragments.settings}
|
|
13519
13508
|
`;
|
|
13520
13509
|
// Check email query
|
|
13521
13510
|
const IsEmailExistsQuery = gql `
|
|
@@ -13530,21 +13519,21 @@ const AccountMutations = {
|
|
|
13530
13519
|
...AccountFragment
|
|
13531
13520
|
}
|
|
13532
13521
|
}
|
|
13533
|
-
${Fragments
|
|
13534
|
-
${Fragments
|
|
13522
|
+
${Fragments.account}
|
|
13523
|
+
${Fragments.settings}`,
|
|
13535
13524
|
create: gql `mutation CreateAccount($data:AccountVOInput){
|
|
13536
13525
|
data: createAccount(account: $data){
|
|
13537
13526
|
...AccountFragment
|
|
13538
13527
|
}
|
|
13539
13528
|
}
|
|
13540
|
-
${Fragments
|
|
13541
|
-
${Fragments
|
|
13529
|
+
${Fragments.account}
|
|
13530
|
+
${Fragments.settings}`,
|
|
13542
13531
|
saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
|
|
13543
13532
|
data: saveSettings(settings: $data){
|
|
13544
13533
|
...UserSettingsFragment
|
|
13545
13534
|
}
|
|
13546
13535
|
}
|
|
13547
|
-
${Fragments
|
|
13536
|
+
${Fragments.settings}`
|
|
13548
13537
|
};
|
|
13549
13538
|
// Sent confirmation email
|
|
13550
13539
|
const SendConfirmEmailMutation = gql `
|
|
@@ -13861,7 +13850,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13861
13850
|
catch (error) {
|
|
13862
13851
|
console.error(error);
|
|
13863
13852
|
this.resetData();
|
|
13864
|
-
throw { code: ErrorCodes
|
|
13853
|
+
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
13865
13854
|
}
|
|
13866
13855
|
// Store pubkey+keypair
|
|
13867
13856
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -13895,7 +13884,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13895
13884
|
}
|
|
13896
13885
|
catch (err) {
|
|
13897
13886
|
// If account not found, check if email is valid
|
|
13898
|
-
if (err && +(err.code) === ErrorCodes
|
|
13887
|
+
if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
|
|
13899
13888
|
// Check email exists
|
|
13900
13889
|
if (data.username.indexOf('@') !== -1) {
|
|
13901
13890
|
let isEmailExists;
|
|
@@ -13907,11 +13896,11 @@ class AccountService extends BaseGraphqlService {
|
|
|
13907
13896
|
}
|
|
13908
13897
|
// Email not exists (no account)
|
|
13909
13898
|
if (!isEmailExists) {
|
|
13910
|
-
throw { code: ErrorCodes
|
|
13899
|
+
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
13911
13900
|
}
|
|
13912
13901
|
}
|
|
13913
13902
|
// Email exists, so error = 'bad password'
|
|
13914
|
-
throw { code: ErrorCodes
|
|
13903
|
+
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
13915
13904
|
}
|
|
13916
13905
|
throw err; // resend the first error
|
|
13917
13906
|
}
|
|
@@ -14057,8 +14046,8 @@ class AccountService extends BaseGraphqlService {
|
|
|
14057
14046
|
// Load remotely
|
|
14058
14047
|
else {
|
|
14059
14048
|
const { data } = yield this.graphql.query({
|
|
14060
|
-
query: LoadQuery
|
|
14061
|
-
error: { code: ErrorCodes
|
|
14049
|
+
query: LoadQuery,
|
|
14050
|
+
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
14062
14051
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
14063
14052
|
});
|
|
14064
14053
|
json = data;
|
|
@@ -14085,7 +14074,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14085
14074
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14086
14075
|
const isEmailExists = yield this.isEmailExists(email);
|
|
14087
14076
|
if (isEmailExists) {
|
|
14088
|
-
throw { code: ErrorCodes
|
|
14077
|
+
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
14089
14078
|
}
|
|
14090
14079
|
});
|
|
14091
14080
|
}
|
|
@@ -14121,7 +14110,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14121
14110
|
locale
|
|
14122
14111
|
},
|
|
14123
14112
|
error: {
|
|
14124
|
-
code: ErrorCodes
|
|
14113
|
+
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
14125
14114
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
14126
14115
|
}
|
|
14127
14116
|
});
|
|
@@ -14137,7 +14126,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14137
14126
|
code
|
|
14138
14127
|
},
|
|
14139
14128
|
error: {
|
|
14140
|
-
code: ErrorCodes
|
|
14129
|
+
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
14141
14130
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
14142
14131
|
}
|
|
14143
14132
|
});
|
|
@@ -14216,7 +14205,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14216
14205
|
throw error;
|
|
14217
14206
|
console.error(error);
|
|
14218
14207
|
throw {
|
|
14219
|
-
code: ErrorCodes
|
|
14208
|
+
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
14220
14209
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
14221
14210
|
};
|
|
14222
14211
|
}
|
|
@@ -14386,7 +14375,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14386
14375
|
if (!isNew) {
|
|
14387
14376
|
const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
|
|
14388
14377
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
14389
|
-
throw { code: ErrorCodes
|
|
14378
|
+
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
14390
14379
|
}
|
|
14391
14380
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
14392
14381
|
}
|
|
@@ -14398,7 +14387,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14398
14387
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
14399
14388
|
variables: { data: json },
|
|
14400
14389
|
error: {
|
|
14401
|
-
code: ErrorCodes
|
|
14390
|
+
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
14402
14391
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
14403
14392
|
}
|
|
14404
14393
|
});
|
|
@@ -14425,7 +14414,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14425
14414
|
mutation: AccountMutations.saveSettings,
|
|
14426
14415
|
variables: { data: json },
|
|
14427
14416
|
error: {
|
|
14428
|
-
code: ErrorCodes
|
|
14417
|
+
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
14429
14418
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
14430
14419
|
}
|
|
14431
14420
|
});
|
|
@@ -14447,7 +14436,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14447
14436
|
if (counter > 4) {
|
|
14448
14437
|
if (this._debug)
|
|
14449
14438
|
console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
|
|
14450
|
-
throw { code: ErrorCodes
|
|
14439
|
+
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
14451
14440
|
}
|
|
14452
14441
|
// Check if valid
|
|
14453
14442
|
if (token) {
|
|
@@ -14457,7 +14446,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14457
14446
|
token
|
|
14458
14447
|
},
|
|
14459
14448
|
error: {
|
|
14460
|
-
code: ErrorCodes
|
|
14449
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
14461
14450
|
message: 'ERROR.UNAUTHORIZED'
|
|
14462
14451
|
},
|
|
14463
14452
|
fetchPolicy: 'no-cache'
|
|
@@ -14473,7 +14462,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14473
14462
|
}
|
|
14474
14463
|
// Generate a new token
|
|
14475
14464
|
const challengeError = {
|
|
14476
|
-
code: ErrorCodes
|
|
14465
|
+
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
14477
14466
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
14478
14467
|
};
|
|
14479
14468
|
const data = yield this.graphql.query({
|
|
@@ -14551,7 +14540,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14551
14540
|
query: AccountSubscriptions.listenChanges,
|
|
14552
14541
|
variables,
|
|
14553
14542
|
error: {
|
|
14554
|
-
code: ErrorCodes
|
|
14543
|
+
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
14555
14544
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
|
|
14556
14545
|
}
|
|
14557
14546
|
}).pipe(map(({ data }) => data),
|
|
@@ -14580,7 +14569,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14580
14569
|
return Toasts.show(this.toastController, this.translate, opts);
|
|
14581
14570
|
}
|
|
14582
14571
|
}
|
|
14583
|
-
AccountService.ɵprov =
|
|
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" });
|
|
14584
14573
|
AccountService.decorators = [
|
|
14585
14574
|
{ type: Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
14586
14575
|
];
|
|
@@ -14842,7 +14831,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
|
|
|
14842
14831
|
/* ------------------------------------
|
|
14843
14832
|
* GraphQL queries
|
|
14844
14833
|
* ------------------------------------*/
|
|
14845
|
-
const Fragments = {
|
|
14834
|
+
const Fragments$1 = {
|
|
14846
14835
|
config: gql `
|
|
14847
14836
|
fragment ConfigFragment on ConfigurationVO {
|
|
14848
14837
|
id
|
|
@@ -14869,13 +14858,13 @@ const Fragments = {
|
|
|
14869
14858
|
}
|
|
14870
14859
|
`
|
|
14871
14860
|
};
|
|
14872
|
-
const LoadQuery = gql `
|
|
14861
|
+
const LoadQuery$1 = gql `
|
|
14873
14862
|
query Configuration{
|
|
14874
14863
|
data: configuration{
|
|
14875
14864
|
...ConfigFragment
|
|
14876
14865
|
}
|
|
14877
14866
|
}
|
|
14878
|
-
${Fragments.config}
|
|
14867
|
+
${Fragments$1.config}
|
|
14879
14868
|
`;
|
|
14880
14869
|
// Save (create or update) account mutation
|
|
14881
14870
|
const SaveMutation = gql `
|
|
@@ -14884,7 +14873,7 @@ const SaveMutation = gql `
|
|
|
14884
14873
|
...ConfigFragment
|
|
14885
14874
|
}
|
|
14886
14875
|
}
|
|
14887
|
-
${Fragments.config}
|
|
14876
|
+
${Fragments$1.config}
|
|
14888
14877
|
`;
|
|
14889
14878
|
const ClearCache = gql `
|
|
14890
14879
|
query ClearCache($name: String) {
|
|
@@ -14935,12 +14924,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14935
14924
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14936
14925
|
const now = Date.now();
|
|
14937
14926
|
console.debug('[config] Loading Pod configuration...');
|
|
14938
|
-
const query = opts && opts.query || LoadQuery;
|
|
14927
|
+
const query = opts && opts.query || LoadQuery$1;
|
|
14939
14928
|
const variables = opts && opts.variables || undefined;
|
|
14940
14929
|
const res = yield this.graphql.query({
|
|
14941
14930
|
query,
|
|
14942
14931
|
variables,
|
|
14943
|
-
error: { code: ErrorCodes
|
|
14932
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14944
14933
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
14945
14934
|
});
|
|
14946
14935
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -14973,7 +14962,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14973
14962
|
data: json
|
|
14974
14963
|
},
|
|
14975
14964
|
error: {
|
|
14976
|
-
code: ErrorCodes
|
|
14965
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
14977
14966
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
14978
14967
|
}
|
|
14979
14968
|
});
|
|
@@ -14999,7 +14988,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14999
14988
|
const res = yield this.graphql.query({
|
|
15000
14989
|
query: CacheStatistics,
|
|
15001
14990
|
variables: null,
|
|
15002
|
-
error: { code: ErrorCodes
|
|
14991
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15003
14992
|
fetchPolicy: 'network-only'
|
|
15004
14993
|
});
|
|
15005
14994
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -15015,7 +15004,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15015
15004
|
const res = yield this.graphql.query({
|
|
15016
15005
|
query: ClearCache,
|
|
15017
15006
|
variables,
|
|
15018
|
-
error: { code: ErrorCodes
|
|
15007
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15019
15008
|
fetchPolicy: 'network-only'
|
|
15020
15009
|
});
|
|
15021
15010
|
const data = res && res.clearCache || undefined;
|
|
@@ -15174,7 +15163,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15174
15163
|
});
|
|
15175
15164
|
}
|
|
15176
15165
|
}
|
|
15177
|
-
ConfigService.ɵprov =
|
|
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" });
|
|
15178
15167
|
ConfigService.decorators = [
|
|
15179
15168
|
{ type: Injectable, args: [{
|
|
15180
15169
|
providedIn: 'root',
|
|
@@ -15194,7 +15183,7 @@ ConfigService.ctorParameters = () => [
|
|
|
15194
15183
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
15195
15184
|
];
|
|
15196
15185
|
|
|
15197
|
-
const moment$
|
|
15186
|
+
const moment$4 = momentImported;
|
|
15198
15187
|
class PlatformService extends StartableService {
|
|
15199
15188
|
constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
|
|
15200
15189
|
super(platform);
|
|
@@ -15401,16 +15390,16 @@ class PlatformService extends StartableService {
|
|
|
15401
15390
|
}
|
|
15402
15391
|
// config moment lib
|
|
15403
15392
|
try {
|
|
15404
|
-
moment$
|
|
15393
|
+
moment$4.locale(event.lang);
|
|
15405
15394
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
15406
15395
|
}
|
|
15407
15396
|
// If error, fallback to en
|
|
15408
15397
|
catch (err) {
|
|
15409
|
-
moment$
|
|
15398
|
+
moment$4.locale('en');
|
|
15410
15399
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
15411
15400
|
}
|
|
15412
15401
|
// Config date adapter
|
|
15413
|
-
this.dateAdapter.setLocale(moment$
|
|
15402
|
+
this.dateAdapter.setLocale(moment$4.locale());
|
|
15414
15403
|
}
|
|
15415
15404
|
});
|
|
15416
15405
|
this.settings.onChange.subscribe(data => {
|
|
@@ -15543,7 +15532,7 @@ class PlatformService extends StartableService {
|
|
|
15543
15532
|
});
|
|
15544
15533
|
}
|
|
15545
15534
|
}
|
|
15546
|
-
PlatformService.ɵprov =
|
|
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" });
|
|
15547
15536
|
PlatformService.decorators = [
|
|
15548
15537
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15549
15538
|
];
|
|
@@ -15558,15 +15547,15 @@ PlatformService.ctorParameters = () => [
|
|
|
15558
15547
|
{ type: NetworkService },
|
|
15559
15548
|
{ type: AccountService },
|
|
15560
15549
|
{ type: ConfigService },
|
|
15561
|
-
{ type: CacheService },
|
|
15550
|
+
{ type: CacheService$1 },
|
|
15562
15551
|
{ type: Storage },
|
|
15563
15552
|
{ type: AudioProvider },
|
|
15564
15553
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
15565
|
-
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
15554
|
+
{ type: StatusBar$1, decorators: [{ type: Optional }] },
|
|
15566
15555
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
15567
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
15568
|
-
{ type: InAppBrowser, decorators: [{ type: Optional }] },
|
|
15569
|
-
{ 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 }] }
|
|
15570
15559
|
];
|
|
15571
15560
|
|
|
15572
15561
|
class AppHelpModal {
|
|
@@ -15630,7 +15619,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
15630
15619
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
15631
15620
|
}
|
|
15632
15621
|
}
|
|
15633
|
-
MatStepperI18n.ɵprov =
|
|
15622
|
+
MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
15634
15623
|
MatStepperI18n.decorators = [
|
|
15635
15624
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15636
15625
|
];
|
|
@@ -16632,7 +16621,7 @@ function state2side(state) {
|
|
|
16632
16621
|
return 1;
|
|
16633
16622
|
}
|
|
16634
16623
|
}
|
|
16635
|
-
const ɵ0$
|
|
16624
|
+
const ɵ0$b = (defaultStateSize) => [
|
|
16636
16625
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
16637
16626
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
16638
16627
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -16640,7 +16629,7 @@ const ɵ0$1 = (defaultStateSize) => [
|
|
|
16640
16629
|
const SCALE_OPTIONS_DEFAULT = {
|
|
16641
16630
|
startColor: rgbArrayMap.red,
|
|
16642
16631
|
startStates: [0, 2, 3],
|
|
16643
|
-
startStepsFn: ɵ0$
|
|
16632
|
+
startStepsFn: ɵ0$b
|
|
16644
16633
|
};
|
|
16645
16634
|
/**
|
|
16646
16635
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -16732,21 +16721,21 @@ function linearColorGradient(count, options) {
|
|
|
16732
16721
|
return result;
|
|
16733
16722
|
}
|
|
16734
16723
|
|
|
16735
|
-
class EntityTestClass
|
|
16724
|
+
class EntityTestClass {
|
|
16736
16725
|
}
|
|
16737
|
-
const FAKE_ENTITIES
|
|
16726
|
+
const FAKE_ENTITIES = [
|
|
16738
16727
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
16739
16728
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
16740
16729
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
16741
16730
|
];
|
|
16742
|
-
function deepCopy
|
|
16731
|
+
function deepCopy(values, size) {
|
|
16743
16732
|
if (isNil(size)) {
|
|
16744
|
-
return (values || FAKE_ENTITIES
|
|
16733
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
16745
16734
|
}
|
|
16746
16735
|
let result = [];
|
|
16747
16736
|
let i = 1;
|
|
16748
16737
|
while (result.length < size) {
|
|
16749
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
16738
|
+
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
16750
16739
|
const name = entity.name + ' #' + i;
|
|
16751
16740
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
16752
16741
|
}));
|
|
@@ -16756,7 +16745,7 @@ function deepCopy$1(values, size) {
|
|
|
16756
16745
|
class AutocompleteTestPage {
|
|
16757
16746
|
constructor(formBuilder) {
|
|
16758
16747
|
this.formBuilder = formBuilder;
|
|
16759
|
-
this._items = deepCopy
|
|
16748
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
16760
16749
|
this._$items = new BehaviorSubject(undefined);
|
|
16761
16750
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
16762
16751
|
this.memoryHide = false;
|
|
@@ -16800,7 +16789,7 @@ class AutocompleteTestPage {
|
|
|
16800
16789
|
});
|
|
16801
16790
|
// From items
|
|
16802
16791
|
this.autocompleteFields.add('entity-items-large', {
|
|
16803
|
-
items: FAKE_ENTITIES
|
|
16792
|
+
items: FAKE_ENTITIES.slice(),
|
|
16804
16793
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
16805
16794
|
displayWith: this.entityToString
|
|
16806
16795
|
});
|
|
@@ -16810,12 +16799,12 @@ class AutocompleteTestPage {
|
|
|
16810
16799
|
loadData() {
|
|
16811
16800
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16812
16801
|
const data = {
|
|
16813
|
-
entity: deepCopy
|
|
16802
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
16814
16803
|
// This item is NOT in the items list => i should be displayed anyway
|
|
16815
16804
|
missingEntity: {
|
|
16816
16805
|
id: -1, label: '??', name: 'Missing item'
|
|
16817
16806
|
},
|
|
16818
|
-
disableEntity: deepCopy
|
|
16807
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
16819
16808
|
};
|
|
16820
16809
|
this.form.setValue(data);
|
|
16821
16810
|
// Load observables
|
|
@@ -16988,13 +16977,13 @@ MaterialTestingPage.ctorParameters = () => [
|
|
|
16988
16977
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
|
|
16989
16978
|
];
|
|
16990
16979
|
|
|
16991
|
-
const moment$
|
|
16980
|
+
const moment$5 = momentImported;
|
|
16992
16981
|
class SwipeTestPage {
|
|
16993
16982
|
constructor(formBuilder, dateFormatPipe) {
|
|
16994
16983
|
this.formBuilder = formBuilder;
|
|
16995
16984
|
this.dateFormatPipe = dateFormatPipe;
|
|
16996
16985
|
this.$dates = new BehaviorSubject(undefined);
|
|
16997
|
-
this._today = moment$
|
|
16986
|
+
this._today = moment$5().startOf('day');
|
|
16998
16987
|
this.form = formBuilder.group({
|
|
16999
16988
|
empty: [null, Validators.required],
|
|
17000
16989
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -17007,7 +16996,7 @@ class SwipeTestPage {
|
|
|
17007
16996
|
ngOnInit() {
|
|
17008
16997
|
const dates = [];
|
|
17009
16998
|
for (let d = 0; d < 7; d++) {
|
|
17010
|
-
dates[d] = moment$
|
|
16999
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
17011
17000
|
}
|
|
17012
17001
|
this.$dates.next(dates);
|
|
17013
17002
|
this.loadData();
|
|
@@ -17048,7 +17037,7 @@ SwipeTestPage.ctorParameters = () => [
|
|
|
17048
17037
|
{ type: DateFormatPipe }
|
|
17049
17038
|
];
|
|
17050
17039
|
|
|
17051
|
-
const moment = momentImported;
|
|
17040
|
+
const moment$6 = momentImported;
|
|
17052
17041
|
class DateTimeTestPage {
|
|
17053
17042
|
constructor(platform, formBuilder, cd) {
|
|
17054
17043
|
this.platform = platform;
|
|
@@ -17080,7 +17069,7 @@ class DateTimeTestPage {
|
|
|
17080
17069
|
// Load the form with data
|
|
17081
17070
|
loadData() {
|
|
17082
17071
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17083
|
-
const now = moment();
|
|
17072
|
+
const now = moment$6();
|
|
17084
17073
|
const data = {
|
|
17085
17074
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
17086
17075
|
enable: toDateISOString(now),
|
|
@@ -17141,9 +17130,9 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
17141
17130
|
{ type: ChangeDetectorRef }
|
|
17142
17131
|
];
|
|
17143
17132
|
|
|
17144
|
-
class EntityTestClass {
|
|
17133
|
+
class EntityTestClass$1 {
|
|
17145
17134
|
}
|
|
17146
|
-
const FAKE_ENTITIES = [
|
|
17135
|
+
const FAKE_ENTITIES$1 = [
|
|
17147
17136
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
17148
17137
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
17149
17138
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -17152,14 +17141,14 @@ const FAKE_ENTITIES = [
|
|
|
17152
17141
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
17153
17142
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
17154
17143
|
];
|
|
17155
|
-
function deepCopy(values, size) {
|
|
17144
|
+
function deepCopy$1(values, size) {
|
|
17156
17145
|
if (isNil(size)) {
|
|
17157
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
17146
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
17158
17147
|
}
|
|
17159
17148
|
let result = [];
|
|
17160
17149
|
let i = 1;
|
|
17161
17150
|
while (result.length < size) {
|
|
17162
|
-
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
17151
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
|
|
17163
17152
|
const name = entity.name + ' #' + i;
|
|
17164
17153
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
17165
17154
|
}));
|
|
@@ -17169,7 +17158,7 @@ function deepCopy(values, size) {
|
|
|
17169
17158
|
class ChipsTestPage {
|
|
17170
17159
|
constructor(formBuilder) {
|
|
17171
17160
|
this.formBuilder = formBuilder;
|
|
17172
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
17161
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
17173
17162
|
this._$items = new BehaviorSubject(undefined);
|
|
17174
17163
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
17175
17164
|
this.form = formBuilder.group({
|
|
@@ -17208,7 +17197,7 @@ class ChipsTestPage {
|
|
|
17208
17197
|
// Load the form with data
|
|
17209
17198
|
loadData() {
|
|
17210
17199
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17211
|
-
const items = deepCopy(FAKE_ENTITIES);
|
|
17200
|
+
const items = deepCopy$1(FAKE_ENTITIES$1);
|
|
17212
17201
|
const data = {
|
|
17213
17202
|
entity: items.slice(0, 1),
|
|
17214
17203
|
entityInitial: items.slice(1, 2),
|
|
@@ -17284,7 +17273,7 @@ MatBadgeIconTestPage.decorators = [
|
|
|
17284
17273
|
},] }
|
|
17285
17274
|
];
|
|
17286
17275
|
|
|
17287
|
-
const routes
|
|
17276
|
+
const routes = [
|
|
17288
17277
|
{
|
|
17289
17278
|
path: '',
|
|
17290
17279
|
pathMatch: 'full',
|
|
@@ -17336,7 +17325,7 @@ MaterialTestingModule.decorators = [
|
|
|
17336
17325
|
ReactiveFormsModule,
|
|
17337
17326
|
SharedMaterialModule,
|
|
17338
17327
|
TranslateModule.forChild(),
|
|
17339
|
-
RouterModule.forChild(routes
|
|
17328
|
+
RouterModule.forChild(routes)
|
|
17340
17329
|
],
|
|
17341
17330
|
declarations: [
|
|
17342
17331
|
MaterialTestingPage,
|
|
@@ -18045,6 +18034,7 @@ function getRandomImage(files) {
|
|
|
18045
18034
|
const APP_HOME_BUTTONS = new InjectionToken('homeButton');
|
|
18046
18035
|
class HomePage {
|
|
18047
18036
|
constructor(accountService, modalCtrl, translate, toastController, configService, platform, cd, network, settings, environment, locales, buttons) {
|
|
18037
|
+
var _a;
|
|
18048
18038
|
this.accountService = accountService;
|
|
18049
18039
|
this.modalCtrl = modalCtrl;
|
|
18050
18040
|
this.translate = translate;
|
|
@@ -18070,6 +18060,7 @@ class HomePage {
|
|
|
18070
18060
|
this._debug = !environment.production;
|
|
18071
18061
|
this.showSpinner = !this.platform.started;
|
|
18072
18062
|
this.platform.ready().then(() => this.start());
|
|
18063
|
+
this.showAccountButton = toBoolean((_a = environment.account) === null || _a === void 0 ? void 0 : _a.showAccountButton, true);
|
|
18073
18064
|
}
|
|
18074
18065
|
get currentLocaleCode() {
|
|
18075
18066
|
return this.loading ? '' :
|
|
@@ -18259,7 +18250,7 @@ HomePage.decorators = [
|
|
|
18259
18250
|
{ type: Component, args: [{
|
|
18260
18251
|
moduleId: module.id.toString(),
|
|
18261
18252
|
selector: 'app-page-home',
|
|
18262
|
-
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\"> {{ 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\"> {{ 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}} </ion-label>\n </div>\n </ng-container>\n\n <!--<p *ngIf=\"buttons.length\" class=\"visible-mobile\"> </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> {{ page.time|dateFromNow }}</small> \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\"> {{ 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\"> {{ 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}} </ion-label>\n </div>\n </ng-container>\n\n <!--<p *ngIf=\"buttons.length\" class=\"visible-mobile\"> </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> {{ page.time|dateFromNow }}</small> \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",
|
|
18263
18254
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
18264
18255
|
animations: [fadeInAnimation, slideUpDownAnimation],
|
|
18265
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)}}"]
|
|
@@ -18275,7 +18266,7 @@ HomePage.ctorParameters = () => [
|
|
|
18275
18266
|
{ type: ChangeDetectorRef },
|
|
18276
18267
|
{ type: NetworkService },
|
|
18277
18268
|
{ type: LocalSettingsService },
|
|
18278
|
-
{ type:
|
|
18269
|
+
{ type: Environment, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
18279
18270
|
{ type: Array, decorators: [{ type: Inject, args: [APP_LOCALES,] }] },
|
|
18280
18271
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_HOME_BUTTONS,] }] }
|
|
18281
18272
|
];
|
|
@@ -18418,7 +18409,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
18418
18409
|
});
|
|
18419
18410
|
}
|
|
18420
18411
|
}
|
|
18421
|
-
UserSettingsValidatorService.ɵprov =
|
|
18412
|
+
UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
18422
18413
|
UserSettingsValidatorService.decorators = [
|
|
18423
18414
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18424
18415
|
];
|
|
@@ -18462,7 +18453,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
18462
18453
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
18463
18454
|
}
|
|
18464
18455
|
}
|
|
18465
|
-
AccountValidatorService.ɵprov =
|
|
18456
|
+
AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
18466
18457
|
AccountValidatorService.decorators = [
|
|
18467
18458
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18468
18459
|
];
|
|
@@ -19027,7 +19018,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
19027
19018
|
});
|
|
19028
19019
|
}
|
|
19029
19020
|
}
|
|
19030
|
-
LocalSettingsValidatorService.ɵprov =
|
|
19021
|
+
LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
19031
19022
|
LocalSettingsValidatorService.decorators = [
|
|
19032
19023
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
19033
19024
|
];
|
|
@@ -19646,7 +19637,7 @@ class IsOnFieldModePipe {
|
|
|
19646
19637
|
return value === 'FIELD';
|
|
19647
19638
|
}
|
|
19648
19639
|
}
|
|
19649
|
-
IsOnFieldModePipe.ɵprov =
|
|
19640
|
+
IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
19650
19641
|
IsOnFieldModePipe.decorators = [
|
|
19651
19642
|
{ type: Pipe, args: [{
|
|
19652
19643
|
name: 'isOnField'
|
|
@@ -19658,7 +19649,7 @@ class IsNotOnFieldModePipe {
|
|
|
19658
19649
|
return value !== 'FIELD';
|
|
19659
19650
|
}
|
|
19660
19651
|
}
|
|
19661
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
19652
|
+
IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
19662
19653
|
IsNotOnFieldModePipe.decorators = [
|
|
19663
19654
|
{ type: Pipe, args: [{
|
|
19664
19655
|
name: 'isNotOnField'
|
|
@@ -19673,7 +19664,7 @@ class PersonToStringPipe {
|
|
|
19673
19664
|
return PersonUtils.personToString(value);
|
|
19674
19665
|
}
|
|
19675
19666
|
}
|
|
19676
|
-
PersonToStringPipe.ɵprov =
|
|
19667
|
+
PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
19677
19668
|
PersonToStringPipe.decorators = [
|
|
19678
19669
|
{ type: Pipe, args: [{
|
|
19679
19670
|
name: 'personToString'
|
|
@@ -20058,7 +20049,7 @@ class IsLoginAccountPipe {
|
|
|
20058
20049
|
return value && value.pubkey && true;
|
|
20059
20050
|
}
|
|
20060
20051
|
}
|
|
20061
|
-
IsLoginAccountPipe.ɵprov =
|
|
20052
|
+
IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
20062
20053
|
IsLoginAccountPipe.decorators = [
|
|
20063
20054
|
{ type: Pipe, args: [{
|
|
20064
20055
|
name: 'isLogin'
|
|
@@ -20070,7 +20061,7 @@ class AccountToStringPipe {
|
|
|
20070
20061
|
return accountToString(value);
|
|
20071
20062
|
}
|
|
20072
20063
|
}
|
|
20073
|
-
AccountToStringPipe.ɵprov =
|
|
20064
|
+
AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
20074
20065
|
AccountToStringPipe.decorators = [
|
|
20075
20066
|
{ type: Pipe, args: [{
|
|
20076
20067
|
name: 'accountToString'
|
|
@@ -20085,7 +20076,7 @@ class DepartmentToStringPipe {
|
|
|
20085
20076
|
return departmentToString(value);
|
|
20086
20077
|
}
|
|
20087
20078
|
}
|
|
20088
|
-
DepartmentToStringPipe.ɵprov =
|
|
20079
|
+
DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
20089
20080
|
DepartmentToStringPipe.decorators = [
|
|
20090
20081
|
{ type: Pipe, args: [{
|
|
20091
20082
|
name: 'departmentToString'
|
|
@@ -20111,7 +20102,7 @@ class MenuService {
|
|
|
20111
20102
|
this._visibleSubject.next(value);
|
|
20112
20103
|
}
|
|
20113
20104
|
}
|
|
20114
|
-
MenuService.ɵprov =
|
|
20105
|
+
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
20115
20106
|
MenuService.decorators = [
|
|
20116
20107
|
{ type: Injectable, args: [{
|
|
20117
20108
|
providedIn: 'root'
|
|
@@ -20637,7 +20628,7 @@ class AuthGuardService {
|
|
|
20637
20628
|
}));
|
|
20638
20629
|
}
|
|
20639
20630
|
}
|
|
20640
|
-
AuthGuardService.ɵprov =
|
|
20631
|
+
AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
20641
20632
|
AuthGuardService.decorators = [
|
|
20642
20633
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
20643
20634
|
];
|
|
@@ -20679,7 +20670,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20679
20670
|
query,
|
|
20680
20671
|
variables: { id },
|
|
20681
20672
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20682
|
-
error: { code: ErrorCodes
|
|
20673
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20683
20674
|
})
|
|
20684
20675
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
20685
20676
|
? (data && this.fromObject(data))
|
|
@@ -20694,7 +20685,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20694
20685
|
query,
|
|
20695
20686
|
variables: { id },
|
|
20696
20687
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20697
|
-
error: { code: ErrorCodes
|
|
20688
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20698
20689
|
});
|
|
20699
20690
|
// Convert to entity
|
|
20700
20691
|
return (!opts || opts.toEntity !== false)
|
|
@@ -20725,7 +20716,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20725
20716
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
20726
20717
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
20727
20718
|
variables,
|
|
20728
|
-
error: { code: ErrorCodes
|
|
20719
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
20729
20720
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
20730
20721
|
})
|
|
20731
20722
|
.pipe(map(({ data, total }) => {
|
|
@@ -20761,7 +20752,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20761
20752
|
const { data, total } = yield this.graphql.query({
|
|
20762
20753
|
query,
|
|
20763
20754
|
variables,
|
|
20764
|
-
error: { code: ErrorCodes
|
|
20755
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
20765
20756
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20766
20757
|
});
|
|
20767
20758
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -20800,7 +20791,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20800
20791
|
variables: {
|
|
20801
20792
|
filter: filter && filter.asPodObject()
|
|
20802
20793
|
},
|
|
20803
|
-
error: { code: ErrorCodes
|
|
20794
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
20804
20795
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20805
20796
|
});
|
|
20806
20797
|
return res.total;
|
|
@@ -20836,7 +20827,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20836
20827
|
variables: {
|
|
20837
20828
|
data: json
|
|
20838
20829
|
},
|
|
20839
|
-
error: { code: ErrorCodes
|
|
20830
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20840
20831
|
update: (proxy, { data }) => {
|
|
20841
20832
|
const savedEntities = data && data.data;
|
|
20842
20833
|
if (savedEntities) {
|
|
@@ -20892,7 +20883,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20892
20883
|
variables: {
|
|
20893
20884
|
data: json
|
|
20894
20885
|
},
|
|
20895
|
-
error: { code: ErrorCodes
|
|
20886
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20896
20887
|
update: (cache, { data }) => {
|
|
20897
20888
|
// Update entity
|
|
20898
20889
|
const savedEntity = data && data.data;
|
|
@@ -20940,7 +20931,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20940
20931
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20941
20932
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20942
20933
|
variables: { ids },
|
|
20943
|
-
error: { code: ErrorCodes
|
|
20934
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20944
20935
|
update: (cache, res) => {
|
|
20945
20936
|
// Remove from cache
|
|
20946
20937
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -20981,7 +20972,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20981
20972
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20982
20973
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20983
20974
|
variables: { id },
|
|
20984
|
-
error: { code: ErrorCodes
|
|
20975
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20985
20976
|
update: (proxy, res) => {
|
|
20986
20977
|
// Remove from cache
|
|
20987
20978
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -21014,7 +21005,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21014
21005
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
21015
21006
|
variables,
|
|
21016
21007
|
error: {
|
|
21017
|
-
code: ErrorCodes
|
|
21008
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
21018
21009
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
21019
21010
|
}
|
|
21020
21011
|
})
|
|
@@ -21200,7 +21191,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21200
21191
|
if (this._debug)
|
|
21201
21192
|
invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
21202
21193
|
// Stop with an error
|
|
21203
|
-
throw { code: ErrorCodes
|
|
21194
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21204
21195
|
}
|
|
21205
21196
|
this._editingRowCount = 0;
|
|
21206
21197
|
let data;
|
|
@@ -22064,14 +22055,14 @@ class AppTable {
|
|
|
22064
22055
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22065
22056
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
22066
22057
|
if (this.readOnly) {
|
|
22067
|
-
throw { code: ErrorCodes
|
|
22058
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
22068
22059
|
}
|
|
22069
22060
|
this.resetError();
|
|
22070
22061
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
22071
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));
|
|
22072
22063
|
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);
|
|
22073
22064
|
if (!this.confirmEditCreate()) {
|
|
22074
|
-
throw { code: ErrorCodes
|
|
22065
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
22075
22066
|
}
|
|
22076
22067
|
// Mark as saving
|
|
22077
22068
|
this.markAsSaving();
|
|
@@ -22188,7 +22179,7 @@ class AppTable {
|
|
|
22188
22179
|
var _a;
|
|
22189
22180
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22190
22181
|
if (this.readOnly) {
|
|
22191
|
-
throw { code: ErrorCodes
|
|
22182
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
22192
22183
|
}
|
|
22193
22184
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
22194
22185
|
return 0; // SKip
|
|
@@ -23722,7 +23713,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23722
23713
|
try {
|
|
23723
23714
|
const data = yield this.dataService.load(id, opts);
|
|
23724
23715
|
if (!data)
|
|
23725
|
-
throw { code: ErrorCodes
|
|
23716
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
23726
23717
|
this._usageMode = this.computeUsageMode(data);
|
|
23727
23718
|
yield this.onEntityLoaded(data, opts);
|
|
23728
23719
|
yield this.updateView(data, opts);
|
|
@@ -24657,7 +24648,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
24657
24648
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
24658
24649
|
}
|
|
24659
24650
|
}
|
|
24660
|
-
UserEventService.ɵprov =
|
|
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" });
|
|
24661
24652
|
UserEventService.decorators = [
|
|
24662
24653
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24663
24654
|
];
|
|
@@ -25041,7 +25032,7 @@ class PersonService extends BaseEntityService {
|
|
|
25041
25032
|
return target;
|
|
25042
25033
|
}
|
|
25043
25034
|
}
|
|
25044
|
-
PersonService.ɵprov =
|
|
25035
|
+
PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
25045
25036
|
PersonService.decorators = [
|
|
25046
25037
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
25047
25038
|
];
|
|
@@ -25072,7 +25063,7 @@ class PersonValidatorService {
|
|
|
25072
25063
|
return this.formBuilder.group(formConfig);
|
|
25073
25064
|
}
|
|
25074
25065
|
}
|
|
25075
|
-
PersonValidatorService.ɵprov =
|
|
25066
|
+
PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
25076
25067
|
PersonValidatorService.decorators = [
|
|
25077
25068
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
25078
25069
|
];
|
|
@@ -25266,16 +25257,16 @@ AdminModule.decorators = [
|
|
|
25266
25257
|
];
|
|
25267
25258
|
AdminModule.ctorParameters = () => [];
|
|
25268
25259
|
|
|
25269
|
-
const ɵ0 = {
|
|
25260
|
+
const ɵ0$c = {
|
|
25270
25261
|
profile: 'ADMIN'
|
|
25271
25262
|
};
|
|
25272
|
-
const routes = [
|
|
25263
|
+
const routes$2 = [
|
|
25273
25264
|
{
|
|
25274
25265
|
path: 'users',
|
|
25275
25266
|
pathMatch: 'full',
|
|
25276
25267
|
component: UsersPage,
|
|
25277
25268
|
canActivate: [AuthGuardService],
|
|
25278
|
-
data: ɵ0
|
|
25269
|
+
data: ɵ0$c
|
|
25279
25270
|
}
|
|
25280
25271
|
];
|
|
25281
25272
|
class AdminRoutingModule {
|
|
@@ -25285,13 +25276,13 @@ AdminRoutingModule.decorators = [
|
|
|
25285
25276
|
imports: [
|
|
25286
25277
|
SharedRoutingModule,
|
|
25287
25278
|
AdminModule,
|
|
25288
|
-
RouterModule.forChild(routes)
|
|
25279
|
+
RouterModule.forChild(routes$2)
|
|
25289
25280
|
],
|
|
25290
25281
|
exports: [RouterModule]
|
|
25291
25282
|
},] }
|
|
25292
25283
|
];
|
|
25293
25284
|
|
|
25294
|
-
const ErrorCodes = {
|
|
25285
|
+
const ErrorCodes$2 = {
|
|
25295
25286
|
LOAD_PERSONS_ERROR: 100,
|
|
25296
25287
|
SAVE_PERSONS_ERROR: 101,
|
|
25297
25288
|
DELETE_PERSONS_ERROR: 102,
|
|
@@ -25303,5 +25294,5 @@ const ErrorCodes = {
|
|
|
25303
25294
|
* Generated bundle index. Do not edit.
|
|
25304
25295
|
*/
|
|
25305
25296
|
|
|
25306
|
-
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$
|
|
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 };
|
|
25307
25298
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|