@sumaris-net/ngx-components 1.15.13 → 1.16.1-rc1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +391 -372
- 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/doc/changelog.md +3 -0
- package/esm2015/src/app/admin/services/person.service.js +5 -9
- package/esm2015/src/app/core/graphql/graphql.service.js +2 -2
- package/esm2015/src/app/core/services/network.service.js +28 -19
- package/esm2015/src/app/core/services/network.utils.js +2 -2
- package/esm2015/src/app/shared/http/http.utils.js +31 -9
- package/esm2015/src/app/shared/services/job.utils.js +28 -21
- package/fesm2015/sumaris-net.ngx-components.js +364 -344
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/admin/services/person.service.d.ts +2 -1
- package/src/app/core/services/network.service.d.ts +8 -0
- package/src/app/core/services/network.utils.d.ts +1 -0
- package/src/app/shared/http/http.utils.d.ts +13 -1
- package/src/app/shared/services/job.utils.d.ts +4 -2
- 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, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import * as i1$3 from '@angular/common';
|
|
1
|
+
import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
4
2
|
import { CommonModule, DOCUMENT, Location } from '@angular/common';
|
|
5
3
|
import { CdkTableModule } from '@angular/cdk/table';
|
|
6
4
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
7
5
|
import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
8
6
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
9
|
-
import * as i1$2 from '@angular/material/core';
|
|
10
7
|
import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
|
|
11
8
|
import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
|
|
12
9
|
import { MatSortModule, MatSort } from '@angular/material/sort';
|
|
@@ -30,21 +27,16 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
|
30
27
|
import { MatRadioModule } from '@angular/material/radio';
|
|
31
28
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
32
29
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
33
|
-
import * as i2$1 from '@angular/material/dialog';
|
|
34
30
|
import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
35
31
|
import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
|
|
36
32
|
import { __awaiter, __decorate } from 'tslib';
|
|
37
|
-
import * as i1$6 from '@angular/forms';
|
|
38
33
|
import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
|
|
39
34
|
import { timer, merge, fromEvent, BehaviorSubject, Subscription, Subject, isObservable, from, of, noop as noop$9, Observable, defer, forkJoin, combineLatest, EMPTY } from 'rxjs';
|
|
40
35
|
import { filter, first, map, takeUntil, switchMap, startWith, debounceTime, takeWhile, tap, distinctUntilChanged, mergeMap, catchError, throttleTime, skip } from 'rxjs/operators';
|
|
41
|
-
import * as i1$1 from '@ngx-translate/core';
|
|
42
36
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
43
|
-
import * as i1$4 from '@ionic/angular';
|
|
44
37
|
import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, PopoverController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent, IonInfiniteScroll } from '@ionic/angular';
|
|
45
38
|
import * as momentImported from 'moment';
|
|
46
39
|
import { isMoment } from 'moment';
|
|
47
|
-
import * as i1 from '@angular/material-moment-adapter';
|
|
48
40
|
import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
49
41
|
import * as momentTZImported from 'moment-timezone';
|
|
50
42
|
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
@@ -55,38 +47,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
|
|
|
55
47
|
import { MatDividerModule } from '@angular/material/divider';
|
|
56
48
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
57
49
|
import { MatChipsModule } from '@angular/material/chips';
|
|
58
|
-
import * as i3$3 from '@angular/router';
|
|
59
50
|
import { Router, ActivatedRoute, RouterModule, RouteReuseStrategy } from '@angular/router';
|
|
60
|
-
import * as i1$5 from '@angular/platform-browser';
|
|
61
51
|
import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
|
|
62
|
-
import * as i2$2 from '@angular/common/http';
|
|
63
52
|
import { HttpResponse, HttpClient, HttpHeaders, HttpEventType, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
64
53
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
65
|
-
import { NativeAudio } from '@ionic-native/native-audio/ngx';
|
|
66
|
-
import { Vibration } from '@ionic-native/vibration/ngx';
|
|
54
|
+
import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
|
|
55
|
+
import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
|
|
67
56
|
import { AudioManagement } from '@ionic-native/audio-management/ngx';
|
|
68
|
-
import
|
|
69
|
-
import
|
|
70
|
-
import
|
|
57
|
+
import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
|
|
58
|
+
import { Vibration } from '@ionic-native/vibration/ngx/index';
|
|
59
|
+
import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
|
|
71
60
|
import * as uuidv4Imported from 'uuid/v4';
|
|
72
61
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
73
62
|
import { MarkdownModule } from 'ngx-markdown';
|
|
74
63
|
import { sign, box, hash, verify } from 'tweetnacl';
|
|
75
|
-
import * as i3$1 from '@ionic/storage';
|
|
76
64
|
import { Storage, IonicStorageModule } from '@ionic/storage';
|
|
77
65
|
import 'zone.js/dist/zone-error';
|
|
78
|
-
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
|
|
79
|
-
import { Connection, Network } from '@ionic-native/network/ngx';
|
|
80
|
-
import { CacheService, CacheModule } from 'ionic-cache';
|
|
81
|
-
import
|
|
82
|
-
import
|
|
83
|
-
import
|
|
84
|
-
import { StatusBar } from '@ionic-native/status-bar/ngx';
|
|
85
|
-
import * as i2$4 from '@angular/cdk/platform';
|
|
66
|
+
import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
|
|
67
|
+
import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
|
|
68
|
+
import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
|
|
69
|
+
import { CacheService } from 'ionic-cache/dist/cache.service';
|
|
70
|
+
import { Network } from '@ionic-native/network/ngx/index';
|
|
71
|
+
import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
|
|
72
|
+
import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
|
|
86
73
|
import { Platform as Platform$1 } from '@angular/cdk/platform';
|
|
87
|
-
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
|
74
|
+
import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
|
|
88
75
|
import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
|
|
89
|
-
import * as i2$3 from 'apollo-angular';
|
|
90
76
|
import { Apollo } from 'apollo-angular';
|
|
91
77
|
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
92
78
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
@@ -94,14 +80,13 @@ import { RetryLink } from '@apollo/client/link/retry';
|
|
|
94
80
|
import QueueLink from 'apollo-link-queue';
|
|
95
81
|
import SerializingLink from 'apollo-link-serialize';
|
|
96
82
|
import loggerLink from 'apollo-link-logger';
|
|
97
|
-
import * as i3$2 from 'apollo-angular/http';
|
|
98
83
|
import { HttpLink } from 'apollo-angular/http';
|
|
99
84
|
import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
|
|
100
|
-
import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
|
|
101
|
-
import
|
|
102
|
-
import
|
|
103
|
-
import
|
|
104
|
-
import
|
|
85
|
+
import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
|
|
86
|
+
import { StatusBar } from '@ionic-native/status-bar/ngx/index';
|
|
87
|
+
import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
|
|
88
|
+
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
|
|
89
|
+
import { Downloader } from '@ionic-native/downloader/ngx/index';
|
|
105
90
|
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
|
106
91
|
import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
|
|
107
92
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
@@ -994,14 +979,14 @@ class MatAutocompleteConfigHolder {
|
|
|
994
979
|
return this.fields[fieldName] || this.add(fieldName);
|
|
995
980
|
}
|
|
996
981
|
}
|
|
997
|
-
const noop
|
|
998
|
-
const ɵ0
|
|
982
|
+
const noop = (_) => { };
|
|
983
|
+
const ɵ0 = noop;
|
|
999
984
|
class MatAutocompleteField {
|
|
1000
985
|
constructor(cd, formGroupDir) {
|
|
1001
986
|
this.cd = cd;
|
|
1002
987
|
this.formGroupDir = formGroupDir;
|
|
1003
|
-
this._onChangeCallback = noop
|
|
1004
|
-
this._onTouchedCallback = noop
|
|
988
|
+
this._onChangeCallback = noop;
|
|
989
|
+
this._onTouchedCallback = noop;
|
|
1005
990
|
this.logPrefix = '[mat-autocomplete] ';
|
|
1006
991
|
this.formControlName = null;
|
|
1007
992
|
this.required = false;
|
|
@@ -1721,7 +1706,7 @@ class DateFormatPipe {
|
|
|
1721
1706
|
return this.dateAdapter.format(date, displayFormat);
|
|
1722
1707
|
}
|
|
1723
1708
|
}
|
|
1724
|
-
DateFormatPipe.ɵprov =
|
|
1709
|
+
DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
1725
1710
|
DateFormatPipe.decorators = [
|
|
1726
1711
|
{ type: Pipe, args: [{
|
|
1727
1712
|
name: 'dateFormat'
|
|
@@ -1733,7 +1718,7 @@ DateFormatPipe.ctorParameters = () => [
|
|
|
1733
1718
|
{ type: TranslateService }
|
|
1734
1719
|
];
|
|
1735
1720
|
|
|
1736
|
-
const moment
|
|
1721
|
+
const moment = momentImported;
|
|
1737
1722
|
class DateDiffDurationPipe {
|
|
1738
1723
|
constructor(dateAdapter, translate) {
|
|
1739
1724
|
this.dateAdapter = dateAdapter;
|
|
@@ -1749,17 +1734,17 @@ class DateDiffDurationPipe {
|
|
|
1749
1734
|
return this.format(startDate, endDate);
|
|
1750
1735
|
}
|
|
1751
1736
|
format(startDate, endDate) {
|
|
1752
|
-
const duration = moment
|
|
1737
|
+
const duration = moment.duration(endDate.diff(startDate));
|
|
1753
1738
|
if (duration.asMinutes() < 0)
|
|
1754
1739
|
return '';
|
|
1755
|
-
const timeDuration = moment
|
|
1740
|
+
const timeDuration = moment(0)
|
|
1756
1741
|
.hour(duration.hours())
|
|
1757
1742
|
.minute(duration.minutes());
|
|
1758
1743
|
const days = Math.floor(duration.asDays());
|
|
1759
1744
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
|
|
1760
1745
|
}
|
|
1761
1746
|
}
|
|
1762
|
-
DateDiffDurationPipe.ɵprov =
|
|
1747
|
+
DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
1763
1748
|
DateDiffDurationPipe.decorators = [
|
|
1764
1749
|
{ type: Pipe, args: [{
|
|
1765
1750
|
name: 'dateDiffDuration'
|
|
@@ -1780,7 +1765,7 @@ class DateFromNowPipe {
|
|
|
1780
1765
|
return date ? date.fromNow(args && args.withoutSuffix) : '';
|
|
1781
1766
|
}
|
|
1782
1767
|
}
|
|
1783
|
-
DateFromNowPipe.ɵprov =
|
|
1768
|
+
DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
1784
1769
|
DateFromNowPipe.decorators = [
|
|
1785
1770
|
{ type: Pipe, args: [{
|
|
1786
1771
|
name: 'dateFromNow'
|
|
@@ -1849,7 +1834,7 @@ function formatToDD(value, opts) {
|
|
|
1849
1834
|
value *= -1;
|
|
1850
1835
|
}
|
|
1851
1836
|
}
|
|
1852
|
-
let degrees = roundFloat
|
|
1837
|
+
let degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
1853
1838
|
// Add sign
|
|
1854
1839
|
let sign = negative ? '-' : '+';
|
|
1855
1840
|
if (opts.placeholderChar) {
|
|
@@ -1900,7 +1885,7 @@ function formatToDDMMSS(value, opts) {
|
|
|
1900
1885
|
}
|
|
1901
1886
|
let degrees = Math.trunc(value);
|
|
1902
1887
|
let minutes = Math.trunc((value - degrees) * 60);
|
|
1903
|
-
let seconds = roundFloat
|
|
1888
|
+
let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1904
1889
|
while (seconds >= 60) {
|
|
1905
1890
|
seconds -= 60;
|
|
1906
1891
|
minutes += 1;
|
|
@@ -1968,7 +1953,7 @@ function formatToDDMM(value, opts) {
|
|
|
1968
1953
|
}
|
|
1969
1954
|
}
|
|
1970
1955
|
let degrees = Math.trunc(value);
|
|
1971
|
-
let minutes = roundFloat
|
|
1956
|
+
let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
1972
1957
|
while (minutes >= 60) {
|
|
1973
1958
|
minutes -= 60;
|
|
1974
1959
|
degrees += 1;
|
|
@@ -2019,15 +2004,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
|
|
|
2019
2004
|
return NaN;
|
|
2020
2005
|
}
|
|
2021
2006
|
if (pattern === 'DD')
|
|
2022
|
-
return roundFloat
|
|
2007
|
+
return roundFloat(degrees, maxDecimals);
|
|
2023
2008
|
const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2024
2009
|
const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2025
2010
|
const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2026
2011
|
const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2027
2012
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2028
|
-
return roundFloat
|
|
2013
|
+
return roundFloat(degrees, maxDecimals);
|
|
2029
2014
|
}
|
|
2030
|
-
function roundFloat
|
|
2015
|
+
function roundFloat(input, maxDecimals) {
|
|
2031
2016
|
if (maxDecimals > 0) {
|
|
2032
2017
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
2033
2018
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2047,7 +2032,7 @@ class LatLongFormatPipe {
|
|
|
2047
2032
|
return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
|
|
2048
2033
|
}
|
|
2049
2034
|
}
|
|
2050
|
-
LatLongFormatPipe.ɵprov =
|
|
2035
|
+
LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2051
2036
|
LatLongFormatPipe.decorators = [
|
|
2052
2037
|
{ type: Pipe, args: [{
|
|
2053
2038
|
name: 'latLongFormat'
|
|
@@ -2059,7 +2044,7 @@ class LatitudeFormatPipe {
|
|
|
2059
2044
|
this.transform = formatLatitude;
|
|
2060
2045
|
}
|
|
2061
2046
|
}
|
|
2062
|
-
LatitudeFormatPipe.ɵprov =
|
|
2047
|
+
LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2063
2048
|
LatitudeFormatPipe.decorators = [
|
|
2064
2049
|
{ type: Pipe, args: [{
|
|
2065
2050
|
name: 'latitudeFormat'
|
|
@@ -2071,7 +2056,7 @@ class LongitudeFormatPipe {
|
|
|
2071
2056
|
this.transform = formatLongitude;
|
|
2072
2057
|
}
|
|
2073
2058
|
}
|
|
2074
|
-
LongitudeFormatPipe.ɵprov =
|
|
2059
|
+
LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2075
2060
|
LongitudeFormatPipe.decorators = [
|
|
2076
2061
|
{ type: Pipe, args: [{
|
|
2077
2062
|
name: 'longitudeFormat'
|
|
@@ -2091,7 +2076,7 @@ class NumberFormatPipe {
|
|
|
2091
2076
|
}
|
|
2092
2077
|
}
|
|
2093
2078
|
}
|
|
2094
|
-
NumberFormatPipe.ɵprov =
|
|
2079
|
+
NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2095
2080
|
NumberFormatPipe.decorators = [
|
|
2096
2081
|
{ type: Pipe, args: [{
|
|
2097
2082
|
name: 'numberFormat'
|
|
@@ -2131,7 +2116,7 @@ class HighlightPipe {
|
|
|
2131
2116
|
}
|
|
2132
2117
|
}
|
|
2133
2118
|
}
|
|
2134
|
-
HighlightPipe.ɵprov =
|
|
2119
|
+
HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2135
2120
|
HighlightPipe.decorators = [
|
|
2136
2121
|
{ type: Pipe, args: [{
|
|
2137
2122
|
name: 'highlight'
|
|
@@ -2196,7 +2181,7 @@ FileSizePipe.decorators = [
|
|
|
2196
2181
|
{ type: Pipe, args: [{ name: 'fileSize' },] }
|
|
2197
2182
|
];
|
|
2198
2183
|
|
|
2199
|
-
const moment$
|
|
2184
|
+
const moment$1 = momentImported;
|
|
2200
2185
|
const tz = momentTZImported;
|
|
2201
2186
|
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2202
2187
|
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
@@ -2273,32 +2258,32 @@ function fromDateISOString(value) {
|
|
|
2273
2258
|
if (!value || isMoment(value))
|
|
2274
2259
|
return value;
|
|
2275
2260
|
// Parse the input value, as a ISO date time
|
|
2276
|
-
const date = moment$
|
|
2261
|
+
const date = moment$1(value, DATE_ISO_PATTERN);
|
|
2277
2262
|
if (date.isValid())
|
|
2278
2263
|
return date;
|
|
2279
2264
|
// Not valid: trying to convert from unix timestamp
|
|
2280
2265
|
if (typeof value === 'string') {
|
|
2281
2266
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2282
2267
|
if (value.length === 10) {
|
|
2283
|
-
return moment$
|
|
2268
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2284
2269
|
}
|
|
2285
2270
|
else if (value.length === 13) {
|
|
2286
|
-
return moment$
|
|
2271
|
+
return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2287
2272
|
}
|
|
2288
2273
|
}
|
|
2289
2274
|
console.warn('Unable to parse date: ' + value);
|
|
2290
2275
|
return undefined;
|
|
2291
2276
|
}
|
|
2292
2277
|
function fromUnixTimestamp(timeInSec) {
|
|
2293
|
-
return moment$
|
|
2278
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2294
2279
|
}
|
|
2295
2280
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2296
|
-
return moment$
|
|
2281
|
+
return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2297
2282
|
}
|
|
2298
2283
|
function toDuration(value, unit) {
|
|
2299
2284
|
if (!value)
|
|
2300
2285
|
return undefined;
|
|
2301
|
-
const duration = moment$
|
|
2286
|
+
const duration = moment$1.duration(value, unit);
|
|
2302
2287
|
// fix 990+ ms
|
|
2303
2288
|
if (duration.milliseconds() >= 990) {
|
|
2304
2289
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2327,7 +2312,7 @@ class DurationPipe {
|
|
|
2327
2312
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
|
|
2328
2313
|
}
|
|
2329
2314
|
}
|
|
2330
|
-
DurationPipe.ɵprov =
|
|
2315
|
+
DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2331
2316
|
DurationPipe.decorators = [
|
|
2332
2317
|
{ type: Pipe, args: [{
|
|
2333
2318
|
name: 'duration'
|
|
@@ -2348,7 +2333,7 @@ class MathAbsPipe {
|
|
|
2348
2333
|
}
|
|
2349
2334
|
}
|
|
2350
2335
|
}
|
|
2351
|
-
MathAbsPipe.ɵprov =
|
|
2336
|
+
MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2352
2337
|
MathAbsPipe.decorators = [
|
|
2353
2338
|
{ type: Pipe, args: [{
|
|
2354
2339
|
name: 'mathAbs'
|
|
@@ -2360,7 +2345,7 @@ class EvenPipe {
|
|
|
2360
2345
|
return val % 2 === 0;
|
|
2361
2346
|
}
|
|
2362
2347
|
}
|
|
2363
|
-
EvenPipe.ɵprov =
|
|
2348
|
+
EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2364
2349
|
EvenPipe.decorators = [
|
|
2365
2350
|
{ type: Pipe, args: [{
|
|
2366
2351
|
name: 'even'
|
|
@@ -2372,7 +2357,7 @@ class OddPipe {
|
|
|
2372
2357
|
return val % 2 !== 0;
|
|
2373
2358
|
}
|
|
2374
2359
|
}
|
|
2375
|
-
OddPipe.ɵprov =
|
|
2360
|
+
OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2376
2361
|
OddPipe.decorators = [
|
|
2377
2362
|
{ type: Pipe, args: [{
|
|
2378
2363
|
name: 'odd'
|
|
@@ -2480,7 +2465,7 @@ class MapGetPipe {
|
|
|
2480
2465
|
return val[key];
|
|
2481
2466
|
}
|
|
2482
2467
|
}
|
|
2483
|
-
MapGetPipe.ɵprov =
|
|
2468
|
+
MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2484
2469
|
MapGetPipe.decorators = [
|
|
2485
2470
|
{ type: Pipe, args: [{
|
|
2486
2471
|
name: 'mapGet'
|
|
@@ -2494,7 +2479,7 @@ class MapKeysPipe {
|
|
|
2494
2479
|
return Object.keys(map);
|
|
2495
2480
|
}
|
|
2496
2481
|
}
|
|
2497
|
-
MapKeysPipe.ɵprov =
|
|
2482
|
+
MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2498
2483
|
MapKeysPipe.decorators = [
|
|
2499
2484
|
{ type: Pipe, args: [{
|
|
2500
2485
|
name: 'mapKeys'
|
|
@@ -2508,7 +2493,7 @@ class MapValuesPipe {
|
|
|
2508
2493
|
return Object.values(map);
|
|
2509
2494
|
}
|
|
2510
2495
|
}
|
|
2511
|
-
MapValuesPipe.ɵprov =
|
|
2496
|
+
MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2512
2497
|
MapValuesPipe.decorators = [
|
|
2513
2498
|
{ type: Pipe, args: [{
|
|
2514
2499
|
name: 'mapValues'
|
|
@@ -2521,7 +2506,7 @@ class IsNotNilOrBlankPipe {
|
|
|
2521
2506
|
return isNotNilOrBlank(value);
|
|
2522
2507
|
}
|
|
2523
2508
|
}
|
|
2524
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
2509
|
+
IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2525
2510
|
IsNotNilOrBlankPipe.decorators = [
|
|
2526
2511
|
{ type: Pipe, args: [{
|
|
2527
2512
|
name: 'isNotNilOrBlank'
|
|
@@ -2533,7 +2518,7 @@ class IsNilOrBlankPipe {
|
|
|
2533
2518
|
return isNilOrBlank(value);
|
|
2534
2519
|
}
|
|
2535
2520
|
}
|
|
2536
|
-
IsNilOrBlankPipe.ɵprov =
|
|
2521
|
+
IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2537
2522
|
IsNilOrBlankPipe.decorators = [
|
|
2538
2523
|
{ type: Pipe, args: [{
|
|
2539
2524
|
name: 'isNilOrBlank'
|
|
@@ -2545,7 +2530,7 @@ class ToStringPipe {
|
|
|
2545
2530
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
2546
2531
|
}
|
|
2547
2532
|
}
|
|
2548
|
-
ToStringPipe.ɵprov =
|
|
2533
|
+
ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2549
2534
|
ToStringPipe.decorators = [
|
|
2550
2535
|
{ type: Pipe, args: [{
|
|
2551
2536
|
name: 'toString'
|
|
@@ -2557,7 +2542,7 @@ class StrLengthPipe {
|
|
|
2557
2542
|
return value && value.length || 0;
|
|
2558
2543
|
}
|
|
2559
2544
|
}
|
|
2560
|
-
StrLengthPipe.ɵprov =
|
|
2545
|
+
StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2561
2546
|
StrLengthPipe.decorators = [
|
|
2562
2547
|
{ type: Pipe, args: [{
|
|
2563
2548
|
name: 'strLength'
|
|
@@ -2569,7 +2554,7 @@ class StrIncludesPipe {
|
|
|
2569
2554
|
return (value === null || value === void 0 ? void 0 : value.includes(searchString, position)) || false;
|
|
2570
2555
|
}
|
|
2571
2556
|
}
|
|
2572
|
-
StrIncludesPipe.ɵprov =
|
|
2557
|
+
StrIncludesPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrIncludesPipe_Factory() { return new StrIncludesPipe(); }, token: StrIncludesPipe, providedIn: "root" });
|
|
2573
2558
|
StrIncludesPipe.decorators = [
|
|
2574
2559
|
{ type: Pipe, args: [{
|
|
2575
2560
|
name: 'strIncludes'
|
|
@@ -2646,7 +2631,7 @@ class TranslateContextService {
|
|
|
2646
2631
|
return translations[keys[keys.length - 1]]; // Return the last keys translation
|
|
2647
2632
|
}
|
|
2648
2633
|
}
|
|
2649
|
-
TranslateContextService.ɵprov =
|
|
2634
|
+
TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
2650
2635
|
TranslateContextService.decorators = [
|
|
2651
2636
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2652
2637
|
];
|
|
@@ -2696,7 +2681,7 @@ class PropertyGetPipe {
|
|
|
2696
2681
|
args && args.defaultValue);
|
|
2697
2682
|
}
|
|
2698
2683
|
}
|
|
2699
|
-
PropertyGetPipe.ɵprov =
|
|
2684
|
+
PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
2700
2685
|
PropertyGetPipe.decorators = [
|
|
2701
2686
|
{ type: Pipe, args: [{
|
|
2702
2687
|
name: 'propertyGet'
|
|
@@ -2721,7 +2706,7 @@ NgInitDirective.propDecorators = {
|
|
|
2721
2706
|
ngInit: [{ type: Output }]
|
|
2722
2707
|
};
|
|
2723
2708
|
|
|
2724
|
-
const moment$
|
|
2709
|
+
const moment$2 = momentImported;
|
|
2725
2710
|
// @dynamic
|
|
2726
2711
|
class SharedValidators {
|
|
2727
2712
|
static getDoubleRegexp(maxDecimals) {
|
|
@@ -2802,7 +2787,7 @@ class SharedValidators {
|
|
|
2802
2787
|
}
|
|
2803
2788
|
static validDate(control) {
|
|
2804
2789
|
const value = control.value;
|
|
2805
|
-
const date = !value || moment$
|
|
2790
|
+
const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
|
|
2806
2791
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
2807
2792
|
return { validDate: true };
|
|
2808
2793
|
}
|
|
@@ -3914,7 +3899,7 @@ class FormErrorTranslator {
|
|
|
3914
3899
|
return errorKey;
|
|
3915
3900
|
}
|
|
3916
3901
|
}
|
|
3917
|
-
FormErrorTranslator.ɵprov =
|
|
3902
|
+
FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
3918
3903
|
FormErrorTranslator.decorators = [
|
|
3919
3904
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
3920
3905
|
];
|
|
@@ -3994,7 +3979,7 @@ class FormGetPipe {
|
|
|
3994
3979
|
return form.get(path);
|
|
3995
3980
|
}
|
|
3996
3981
|
}
|
|
3997
|
-
FormGetPipe.ɵprov =
|
|
3982
|
+
FormGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetPipe_Factory() { return new FormGetPipe(); }, token: FormGetPipe, providedIn: "root" });
|
|
3998
3983
|
FormGetPipe.decorators = [
|
|
3999
3984
|
{ type: Pipe, args: [{
|
|
4000
3985
|
name: 'formGet'
|
|
@@ -4006,7 +3991,7 @@ class FormGetControlPipe {
|
|
|
4006
3991
|
return form.get(path);
|
|
4007
3992
|
}
|
|
4008
3993
|
}
|
|
4009
|
-
FormGetControlPipe.ɵprov =
|
|
3994
|
+
FormGetControlPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetControlPipe_Factory() { return new FormGetControlPipe(); }, token: FormGetControlPipe, providedIn: "root" });
|
|
4010
3995
|
FormGetControlPipe.decorators = [
|
|
4011
3996
|
{ type: Pipe, args: [{
|
|
4012
3997
|
name: 'formGetControl'
|
|
@@ -4018,7 +4003,7 @@ class FormGetArrayPipe {
|
|
|
4018
4003
|
return form.get(path);
|
|
4019
4004
|
}
|
|
4020
4005
|
}
|
|
4021
|
-
FormGetArrayPipe.ɵprov =
|
|
4006
|
+
FormGetArrayPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetArrayPipe_Factory() { return new FormGetArrayPipe(); }, token: FormGetArrayPipe, providedIn: "root" });
|
|
4022
4007
|
FormGetArrayPipe.decorators = [
|
|
4023
4008
|
{ type: Pipe, args: [{
|
|
4024
4009
|
name: 'formGetArray'
|
|
@@ -4030,7 +4015,7 @@ class FormGetGroupPipe {
|
|
|
4030
4015
|
return form.get(path);
|
|
4031
4016
|
}
|
|
4032
4017
|
}
|
|
4033
|
-
FormGetGroupPipe.ɵprov =
|
|
4018
|
+
FormGetGroupPipe.ɵprov = ɵɵdefineInjectable({ factory: function FormGetGroupPipe_Factory() { return new FormGetGroupPipe(); }, token: FormGetGroupPipe, providedIn: "root" });
|
|
4034
4019
|
FormGetGroupPipe.decorators = [
|
|
4035
4020
|
{ type: Pipe, args: [{
|
|
4036
4021
|
name: 'formGetGroup'
|
|
@@ -4150,7 +4135,7 @@ const isIpad = (win) => {
|
|
|
4150
4135
|
}
|
|
4151
4136
|
return false;
|
|
4152
4137
|
};
|
|
4153
|
-
const ɵ0$
|
|
4138
|
+
const ɵ0$1 = isIpad;
|
|
4154
4139
|
const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
|
|
4155
4140
|
const isAndroid = (win) => testUserAgent(win, /android|sink/i);
|
|
4156
4141
|
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
@@ -4385,9 +4370,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
|
|
|
4385
4370
|
const hour = parseInt(durationParts[0] || '0');
|
|
4386
4371
|
const minute = parseInt(durationParts[1] || '0');
|
|
4387
4372
|
const value = hour + (minute + 0.5) / 60;
|
|
4388
|
-
return roundFloat(value, maxDecimals);
|
|
4373
|
+
return roundFloat$1(value, maxDecimals);
|
|
4389
4374
|
}
|
|
4390
|
-
function roundFloat(input, maxDecimals) {
|
|
4375
|
+
function roundFloat$1(input, maxDecimals) {
|
|
4391
4376
|
if (maxDecimals > 0) {
|
|
4392
4377
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
4393
4378
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -4411,9 +4396,9 @@ const MASKS = {
|
|
|
4411
4396
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
4412
4397
|
}
|
|
4413
4398
|
};
|
|
4414
|
-
const noop$
|
|
4399
|
+
const noop$1 = () => {
|
|
4415
4400
|
};
|
|
4416
|
-
const ɵ0$
|
|
4401
|
+
const ɵ0$2 = noop$1;
|
|
4417
4402
|
class MatLatLongField {
|
|
4418
4403
|
constructor(platform, translate, formBuilder, cd, formGroupDir) {
|
|
4419
4404
|
this.platform = platform;
|
|
@@ -4421,8 +4406,8 @@ class MatLatLongField {
|
|
|
4421
4406
|
this.formBuilder = formBuilder;
|
|
4422
4407
|
this.cd = cd;
|
|
4423
4408
|
this.formGroupDir = formGroupDir;
|
|
4424
|
-
this._onChangeCallback = noop$
|
|
4425
|
-
this._onTouchedCallback = noop$
|
|
4409
|
+
this._onChangeCallback = noop$1;
|
|
4410
|
+
this._onTouchedCallback = noop$1;
|
|
4426
4411
|
this._subscription = new Subscription();
|
|
4427
4412
|
this.disabling = false;
|
|
4428
4413
|
this.writing = false;
|
|
@@ -4759,14 +4744,14 @@ SharedMatLatLongModule.decorators = [
|
|
|
4759
4744
|
},] }
|
|
4760
4745
|
];
|
|
4761
4746
|
|
|
4762
|
-
const DEFAULT_VALUE_ACCESSOR
|
|
4747
|
+
const DEFAULT_VALUE_ACCESSOR = {
|
|
4763
4748
|
provide: NG_VALUE_ACCESSOR,
|
|
4764
4749
|
useExisting: forwardRef(() => MatDate),
|
|
4765
4750
|
multi: true
|
|
4766
4751
|
};
|
|
4767
|
-
const DAY_MASK
|
|
4768
|
-
const noop$
|
|
4769
|
-
const ɵ0$
|
|
4752
|
+
const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4753
|
+
const noop$2 = () => { };
|
|
4754
|
+
const ɵ0$3 = noop$2;
|
|
4770
4755
|
class MatDate {
|
|
4771
4756
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4772
4757
|
this.platform = platform;
|
|
@@ -4776,13 +4761,13 @@ class MatDate {
|
|
|
4776
4761
|
this.cd = cd;
|
|
4777
4762
|
this.keyboard = keyboard;
|
|
4778
4763
|
this.formGroupDir = formGroupDir;
|
|
4779
|
-
this._onChangeCallback = noop$
|
|
4780
|
-
this._onTouchedCallback = noop$
|
|
4764
|
+
this._onChangeCallback = noop$2;
|
|
4765
|
+
this._onTouchedCallback = noop$2;
|
|
4781
4766
|
this._subscription = new Subscription();
|
|
4782
4767
|
this._writing = true;
|
|
4783
4768
|
this._disabling = false;
|
|
4784
4769
|
this._readonly = false;
|
|
4785
|
-
this.dayMask = DAY_MASK
|
|
4770
|
+
this.dayMask = DAY_MASK;
|
|
4786
4771
|
this.floatLabel = 'auto';
|
|
4787
4772
|
this.compact = false;
|
|
4788
4773
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5069,7 +5054,7 @@ MatDate.decorators = [
|
|
|
5069
5054
|
selector: 'mat-date-field',
|
|
5070
5055
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <!-- errors -->\n <mat-error *ngIf=\"formControl.touched && formControl.errors|mapKeys|arrayFirst; let errorKey\">\n <ng-container [ngSwitch]=\"errorKey\">\n <span *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</span>\n <span *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</span>\n <span *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</span>\n <span *ngSwitchCase=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</span>\n <span *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</span>\n <span *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</span>\n <span *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</span>\n <span *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</span>\n </ng-container>\n </mat-error>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"\n ></mat-datepicker>\n\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
|
|
5071
5056
|
providers: [
|
|
5072
|
-
DEFAULT_VALUE_ACCESSOR
|
|
5057
|
+
DEFAULT_VALUE_ACCESSOR,
|
|
5073
5058
|
],
|
|
5074
5059
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5075
5060
|
styles: [":host{display:inline-block;width:100%;position:relative}:host [no-padding]{--ion-grid-column-padding:0}:host [nowrap]{flex-wrap:nowrap}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}mat-form-field .datetime-md,mat-form-field ion-datetime{padding:0!important}ion-col.day{min-width:100px}ion-col.day .mat-form-field-subscript-wrapper{overflow:visible;right:-64px;width:calc(100% + 64px)}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}ion-col.hour{min-width:55px;max-width:65px}ion-col.hour mat-form-field{width:100%}ion-col.hour mat-form-field input[type=text],ion-col.hour mat-form-field mat-label{text-align:left;min-width:50px}mat-form-field.mat-form-field-disabled ion-col.day{min-width:100px}.hour .mat-form-field-label{max-width:40px}.hour mat-form-field.mat-form-field-should-float .mat-form-field-placeholder{max-width:inherit}mat-error{text-align:right;width:100%}"]
|
|
@@ -5104,16 +5089,16 @@ MatDate.propDecorators = {
|
|
|
5104
5089
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
5105
5090
|
};
|
|
5106
5091
|
|
|
5107
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5092
|
+
const DEFAULT_VALUE_ACCESSOR$1 = {
|
|
5108
5093
|
provide: NG_VALUE_ACCESSOR,
|
|
5109
5094
|
useExisting: forwardRef(() => MatDateTime),
|
|
5110
5095
|
multi: true
|
|
5111
5096
|
};
|
|
5112
5097
|
const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
5113
5098
|
const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
5114
|
-
const HOUR_MASK
|
|
5115
|
-
const noop$
|
|
5116
|
-
const ɵ0$
|
|
5099
|
+
const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
5100
|
+
const noop$3 = () => { };
|
|
5101
|
+
const ɵ0$4 = noop$3;
|
|
5117
5102
|
class MatDateTime {
|
|
5118
5103
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5119
5104
|
this.platform = platform;
|
|
@@ -5123,14 +5108,14 @@ class MatDateTime {
|
|
|
5123
5108
|
this.cd = cd;
|
|
5124
5109
|
this.keyboard = keyboard;
|
|
5125
5110
|
this.formGroupDir = formGroupDir;
|
|
5126
|
-
this._onChangeCallback = noop$
|
|
5127
|
-
this._onTouchedCallback = noop$
|
|
5111
|
+
this._onChangeCallback = noop$3;
|
|
5112
|
+
this._onTouchedCallback = noop$3;
|
|
5128
5113
|
this._subscription = new Subscription();
|
|
5129
5114
|
this._writing = true;
|
|
5130
5115
|
this._disabling = false;
|
|
5131
5116
|
this._readonly = false;
|
|
5132
5117
|
this.dayMask = DAY_MASK$1;
|
|
5133
|
-
this.hourMask = HOUR_MASK
|
|
5118
|
+
this.hourMask = HOUR_MASK;
|
|
5134
5119
|
this.floatLabel = 'auto';
|
|
5135
5120
|
this.compact = false;
|
|
5136
5121
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5443,7 +5428,7 @@ MatDateTime.decorators = [
|
|
|
5443
5428
|
selector: 'mat-date-time-field',
|
|
5444
5429
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable + time -->\n<ng-template #writable >\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding no-wrap\" nowrap>\n\n <!-- day -->\n <ion-col class=\"day ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final input -->\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n [matDatepickerFilter]=\"datePickerFilter\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsBefore'\">{{'ERROR.FIELD_NOT_VALID_DATE_BEFORE' | translate: formControl.errors.dateIsBefore }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (hourControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"hourControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"hourControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"hourControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
|
|
5445
5430
|
providers: [
|
|
5446
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5431
|
+
DEFAULT_VALUE_ACCESSOR$1,
|
|
5447
5432
|
],
|
|
5448
5433
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5449
5434
|
styles: [":host{display:inline-block;width:100%;position:relative;--ion-grid-column-padding:0}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}mat-form-field .datetime-md{padding:0!important}ion-row.no-wrap{flex-wrap:nowrap}ion-col.day{min-width:100px}ion-col.day .mat-form-field-subscript-wrapper{overflow:visible;right:-64px;width:calc(100% + 64px)}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}ion-col.hour{min-width:55px;max-width:65px}ion-col.hour mat-form-field{width:100%}ion-col.hour mat-form-field input[type=text],ion-col.hour mat-form-field mat-label{text-align:left;min-width:50px}mat-form-field.mat-form-field-disabled ion-col.day{min-width:100px}.hour .mat-form-field-label{max-width:40px}.hour mat-form-field.mat-form-field-should-float .mat-form-field-placeholder{max-width:inherit}mat-error{text-align:right;width:100%}"]
|
|
@@ -5478,15 +5463,15 @@ MatDateTime.propDecorators = {
|
|
|
5478
5463
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
5479
5464
|
};
|
|
5480
5465
|
|
|
5481
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5466
|
+
const DEFAULT_VALUE_ACCESSOR$2 = {
|
|
5482
5467
|
provide: NG_VALUE_ACCESSOR,
|
|
5483
5468
|
useExisting: forwardRef(() => MatDateShort),
|
|
5484
5469
|
multi: true
|
|
5485
5470
|
};
|
|
5486
|
-
const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
5471
|
+
const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
|
|
5487
5472
|
const noop$4 = () => {
|
|
5488
5473
|
};
|
|
5489
|
-
const ɵ0$
|
|
5474
|
+
const ɵ0$5 = noop$4;
|
|
5490
5475
|
class MatDateShort {
|
|
5491
5476
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5492
5477
|
this.dateAdapter = dateAdapter;
|
|
@@ -5499,7 +5484,7 @@ class MatDateShort {
|
|
|
5499
5484
|
this._onTouchedCallback = noop$4;
|
|
5500
5485
|
this.writing = true;
|
|
5501
5486
|
this.disabling = false;
|
|
5502
|
-
this.dayMask = DAY_MASK;
|
|
5487
|
+
this.dayMask = DAY_MASK$2;
|
|
5503
5488
|
this.disabled = false;
|
|
5504
5489
|
this.floatLabel = 'auto';
|
|
5505
5490
|
this.readonly = false;
|
|
@@ -5744,7 +5729,7 @@ MatDateShort.decorators = [
|
|
|
5744
5729
|
selector: 'mat-date-short-field',
|
|
5745
5730
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_YEAR_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker1)\"\n (keyup.escape)=\"preventEvent($event)\"\n (click)=\"matInput.select()\"\n [required]=\"required\"\n [tabindex]=\"tabindex\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker1)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker1\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker1)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors.msg}}</mat-error>\n <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n\n <mat-datepicker #datePicker1\n startView=\"multi-year\"\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n (yearSelected)=\"closeDatePicker($event, datePicker1)\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n",
|
|
5746
5731
|
providers: [
|
|
5747
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5732
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
5748
5733
|
],
|
|
5749
5734
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5750
5735
|
styles: [":host{display:inline-block;width:100%;position:relative}:host [no-padding]{--ion-grid-column-padding:0}:host [nowrap]{flex-wrap:nowrap}input[type=number]::-webkit-inner-spin-button,input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}mat-form-field .datetime-md,mat-form-field ion-datetime{padding:0!important}ion-col.day{min-width:100px}ion-col.day .mat-form-field-subscript-wrapper{overflow:visible;right:-64px;width:calc(100% + 64px)}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}ion-col.day .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}ion-col.hour{min-width:55px;max-width:65px}ion-col.hour mat-form-field{width:100%}ion-col.hour mat-form-field input[type=text],ion-col.hour mat-form-field mat-label{text-align:left;min-width:50px}mat-form-field.mat-form-field-disabled ion-col.day{min-width:100px}.hour .mat-form-field-label{max-width:40px}.hour mat-form-field.mat-form-field-should-float .mat-form-field-placeholder{max-width:inherit}mat-error{text-align:right;width:100%}"]
|
|
@@ -5812,16 +5797,16 @@ SharedMatDateTimeModule.decorators = [
|
|
|
5812
5797
|
},] }
|
|
5813
5798
|
];
|
|
5814
5799
|
|
|
5815
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5800
|
+
const DEFAULT_VALUE_ACCESSOR$3 = {
|
|
5816
5801
|
provide: NG_VALUE_ACCESSOR,
|
|
5817
5802
|
useExisting: forwardRef(() => MatDuration),
|
|
5818
5803
|
multi: true
|
|
5819
5804
|
};
|
|
5820
5805
|
const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
5821
|
-
const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5822
|
-
const noop$
|
|
5806
|
+
const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5807
|
+
const noop$5 = () => {
|
|
5823
5808
|
};
|
|
5824
|
-
const ɵ0$6 = noop$
|
|
5809
|
+
const ɵ0$6 = noop$5;
|
|
5825
5810
|
class MatDuration {
|
|
5826
5811
|
constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
5827
5812
|
this.dateAdapter = dateAdapter;
|
|
@@ -5830,11 +5815,11 @@ class MatDuration {
|
|
|
5830
5815
|
this.cd = cd;
|
|
5831
5816
|
this.formGroupDir = formGroupDir;
|
|
5832
5817
|
this._subscription = new Subscription();
|
|
5833
|
-
this._onChangeCallback = noop$
|
|
5834
|
-
this._onTouchedCallback = noop$
|
|
5818
|
+
this._onChangeCallback = noop$5;
|
|
5819
|
+
this._onTouchedCallback = noop$5;
|
|
5835
5820
|
this.writing = true;
|
|
5836
5821
|
this.disabling = false;
|
|
5837
|
-
this.hourMask = HOUR_MASK;
|
|
5822
|
+
this.hourMask = HOUR_MASK$1;
|
|
5838
5823
|
this.disabled = false;
|
|
5839
5824
|
this.floatLabel = 'auto';
|
|
5840
5825
|
this.readonly = false;
|
|
@@ -6014,7 +5999,7 @@ MatDuration.decorators = [
|
|
|
6014
5999
|
selector: 'mat-duration-field',
|
|
6015
6000
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{ formControl.value|duration }}</ion-text>\n</mat-form-field>\n\n<!-- writable -->\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"formControl.disabled\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput type=\"text\"\n autocomplete=\"off\"\n [formControl]=\"textControl\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.DURATION_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keydown.tab)=\"moveCaretToSeparator($event, true)\"\n (keydown.shift.tab)=\"moveCaretToSeparator($event, false)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n\n <!-- errors -->\n <mat-error *ngIf=\"!formControl.hasError('required') && textControl.hasError('pattern')\" translate>ERROR.FIELD_NOT_VALID_PATTERN</mat-error>\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('min')\">\n {{(compact ? 'ERROR.FIELD_MIN_COMPACT' : 'ERROR.FIELD_MIN') | translate:formControl.errors.min }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('max')\">\n {{(compact ? 'ERROR.FIELD_MAX_COMPACT' : 'ERROR.FIELD_MAX') | translate:formControl.errors.max }}</mat-error>\n\n <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n</ng-template>\n\n",
|
|
6016
6001
|
providers: [
|
|
6017
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6002
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
6018
6003
|
],
|
|
6019
6004
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6020
6005
|
styles: [":host{display:inline-block;min-width:140px;position:relative;--ion-grid-column-padding:0}:host,mat-form-field{width:100%}mat-form-field .mat-form-field-subscript-wrapper{overflow:visible;top:100%}mat-form-field .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper{display:flex}mat-form-field .mat-form-field-subscript-wrapper .mat-form-field-hint-wrapper .mat-form-field-hint-spacer{flex:1 0 1em}mat-error{text-align:right;width:100%}"]
|
|
@@ -6071,22 +6056,22 @@ SharedMatDurationModule.decorators = [
|
|
|
6071
6056
|
},] }
|
|
6072
6057
|
];
|
|
6073
6058
|
|
|
6074
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
6059
|
+
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
6075
6060
|
provide: NG_VALUE_ACCESSOR,
|
|
6076
6061
|
useExisting: forwardRef(() => MatBooleanField),
|
|
6077
6062
|
multi: true
|
|
6078
6063
|
};
|
|
6079
|
-
const noop$
|
|
6064
|
+
const noop$6 = () => {
|
|
6080
6065
|
};
|
|
6081
|
-
const ɵ0$
|
|
6066
|
+
const ɵ0$7 = noop$6;
|
|
6082
6067
|
class MatBooleanField {
|
|
6083
6068
|
constructor(translate, formBuilder, cd, formGroupDir) {
|
|
6084
6069
|
this.translate = translate;
|
|
6085
6070
|
this.formBuilder = formBuilder;
|
|
6086
6071
|
this.cd = cd;
|
|
6087
6072
|
this.formGroupDir = formGroupDir;
|
|
6088
|
-
this._onChangeCallback = noop$
|
|
6089
|
-
this._onTouchedCallback = noop$
|
|
6073
|
+
this._onChangeCallback = noop$6;
|
|
6074
|
+
this._onTouchedCallback = noop$6;
|
|
6090
6075
|
this._writing = false;
|
|
6091
6076
|
this.showRadio = false;
|
|
6092
6077
|
this.disabled = false;
|
|
@@ -6249,7 +6234,7 @@ MatBooleanField.decorators = [
|
|
|
6249
6234
|
selector: 'mat-boolean-field',
|
|
6250
6235
|
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button> \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",
|
|
6251
6236
|
providers: [
|
|
6252
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
6237
|
+
DEFAULT_VALUE_ACCESSOR$4
|
|
6253
6238
|
],
|
|
6254
6239
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6255
6240
|
styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--flex-basis:calc(100% / var(--buttons-col-count, 2));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);white-space:normal;padding:0 2px;height:40px}"]
|
|
@@ -6495,7 +6480,7 @@ class MatNumpadDomService {
|
|
|
6495
6480
|
this.appRef.detachView(this.componentRef.hostView);
|
|
6496
6481
|
}
|
|
6497
6482
|
}
|
|
6498
|
-
MatNumpadDomService.ɵprov =
|
|
6483
|
+
MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
6499
6484
|
MatNumpadDomService.decorators = [
|
|
6500
6485
|
{ type: Injectable, args: [{
|
|
6501
6486
|
providedIn: 'root'
|
|
@@ -6859,7 +6844,7 @@ SharedMatNumpadModule.decorators = [
|
|
|
6859
6844
|
},] }
|
|
6860
6845
|
];
|
|
6861
6846
|
|
|
6862
|
-
const DEFAULT_VALUE_ACCESSOR = {
|
|
6847
|
+
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
6863
6848
|
provide: NG_VALUE_ACCESSOR,
|
|
6864
6849
|
useExisting: forwardRef(() => MatSwipeField),
|
|
6865
6850
|
multi: true
|
|
@@ -7122,7 +7107,7 @@ MatSwipeField.decorators = [
|
|
|
7122
7107
|
{ type: Component, args: [{
|
|
7123
7108
|
selector: 'mat-swipe-field',
|
|
7124
7109
|
template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [class]=\"classList\"\n [class.mat-form-field-disabled]=\"disabled\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n </mat-label>\n <input matInput #fakeInput type=\"text\"\n [formControl]=\"formControl\"\n [readonly]=\"true\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showSlides\"\n [tabindex]=\"tabindex\">\n\n <div class=\"slides-container\" [class.hidden]=\"!showSlides\">\n <ion-slides #slides\n [options]=\"slidesOptions\"\n (ionSlidesDidLoad)=\"slidesLoaded()\"\n (ionSlideReachStart)=\"reachStart(true)\"\n (ionSlideReachEnd)=\"reachEnd(true)\"\n (ionSlideNextEnd)=\"reachStart(false)\"\n (ionSlidePrevEnd)=\"reachEnd(false)\"\n (ionSlideDidChange)=\"slideChanged()\"\n >\n <ion-slide *ngFor=\"let item of $items | async\">\n <ion-label>{{ displayWith(item) }}</ion-label>\n </ion-slide>\n\n </ion-slides>\n </div>\n\n <button #prevButton\n mat-icon-button\n type=\"button\"\n class=\"button-prev\"\n [hidden]=\"!showSlides\"\n [disabled]=\"previousDisabled\"\n (click)=\"previous()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button #nextButton\n mat-icon-button\n type=\"button\"\n class=\"button-next\"\n [hidden]=\"!showSlides\"\n [disabled]=\"nextDisabled\"\n (click)=\"next()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n\n</mat-form-field>\n",
|
|
7125
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
7110
|
+
providers: [DEFAULT_VALUE_ACCESSOR$5],
|
|
7126
7111
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
7127
7112
|
styles: [":host{display:inline-block;width:100%;position:relative}input.hidden{display:none}.slides-container .swiper-slide{font-size:16px!important}.slides-container.hidden{visibility:hidden;height:0!important}.button-next,.button-prev{position:absolute;top:calc(50% - 20px);z-index:10}.button-prev{left:0;right:auto}.button-next{left:auto;right:0}"]
|
|
7128
7113
|
},] }
|
|
@@ -7180,14 +7165,14 @@ SharedMatSwipeModule.decorators = [
|
|
|
7180
7165
|
},] }
|
|
7181
7166
|
];
|
|
7182
7167
|
|
|
7183
|
-
const noop$
|
|
7184
|
-
const ɵ0$
|
|
7168
|
+
const noop$7 = () => { };
|
|
7169
|
+
const ɵ0$8 = noop$7;
|
|
7185
7170
|
class MatChipsField {
|
|
7186
7171
|
constructor(cd, formGroupDir) {
|
|
7187
7172
|
this.cd = cd;
|
|
7188
7173
|
this.formGroupDir = formGroupDir;
|
|
7189
|
-
this._onChangeCallback = noop$
|
|
7190
|
-
this._onTouchedCallback = noop$
|
|
7174
|
+
this._onChangeCallback = noop$7;
|
|
7175
|
+
this._onTouchedCallback = noop$7;
|
|
7191
7176
|
this.logPrefix = '[mat-chips] ';
|
|
7192
7177
|
this.formControlName = null;
|
|
7193
7178
|
this.required = false;
|
|
@@ -8056,7 +8041,7 @@ class ProgressBarService {
|
|
|
8056
8041
|
}
|
|
8057
8042
|
}
|
|
8058
8043
|
}
|
|
8059
|
-
ProgressBarService.ɵprov =
|
|
8044
|
+
ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
8060
8045
|
ProgressBarService.decorators = [
|
|
8061
8046
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8062
8047
|
];
|
|
@@ -8100,7 +8085,7 @@ class AppGestureConfig extends HammerGestureConfig {
|
|
|
8100
8085
|
return mc;
|
|
8101
8086
|
}
|
|
8102
8087
|
}
|
|
8103
|
-
AppGestureConfig.ɵprov =
|
|
8088
|
+
AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
8104
8089
|
AppGestureConfig.decorators = [
|
|
8105
8090
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8106
8091
|
];
|
|
@@ -8325,7 +8310,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
|
|
|
8325
8310
|
this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
|
|
8326
8311
|
}
|
|
8327
8312
|
}
|
|
8328
|
-
MatPaginatorI18n.ɵprov =
|
|
8313
|
+
MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
8329
8314
|
MatPaginatorI18n.decorators = [
|
|
8330
8315
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8331
8316
|
];
|
|
@@ -8415,17 +8400,17 @@ function getColorContrast(color, bw) {
|
|
|
8415
8400
|
return rgbArrayToHex(rgb.map(v => 255 - v));
|
|
8416
8401
|
}
|
|
8417
8402
|
|
|
8418
|
-
const noop = () => {
|
|
8403
|
+
const noop$8 = () => {
|
|
8419
8404
|
};
|
|
8420
|
-
const ɵ0$
|
|
8405
|
+
const ɵ0$9 = noop$8;
|
|
8421
8406
|
class AppFormField {
|
|
8422
8407
|
constructor(translate, cd, injector, formGroupDir) {
|
|
8423
8408
|
this.translate = translate;
|
|
8424
8409
|
this.cd = cd;
|
|
8425
8410
|
this.injector = injector;
|
|
8426
8411
|
this.formGroupDir = formGroupDir;
|
|
8427
|
-
this._onChangeCallback = noop;
|
|
8428
|
-
this._onTouchedCallback = noop;
|
|
8412
|
+
this._onChangeCallback = noop$8;
|
|
8413
|
+
this._onTouchedCallback = noop$8;
|
|
8429
8414
|
this.readonly = false;
|
|
8430
8415
|
this.compact = false;
|
|
8431
8416
|
this.floatLabel = 'auto';
|
|
@@ -8861,14 +8846,14 @@ class AudioProvider extends StartableService {
|
|
|
8861
8846
|
});
|
|
8862
8847
|
}
|
|
8863
8848
|
}
|
|
8864
|
-
AudioProvider.ɵprov =
|
|
8849
|
+
AudioProvider.ɵprov = ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(ɵɵinject(Platform), ɵɵinject(NativeAudio, 8), ɵɵinject(Vibration, 8), ɵɵinject(AudioManagement$1, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
8865
8850
|
AudioProvider.decorators = [
|
|
8866
8851
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8867
8852
|
];
|
|
8868
8853
|
AudioProvider.ctorParameters = () => [
|
|
8869
8854
|
{ type: Platform },
|
|
8870
|
-
{ type: NativeAudio, decorators: [{ type: Optional }] },
|
|
8871
|
-
{ type: Vibration, decorators: [{ type: Optional }] },
|
|
8855
|
+
{ type: NativeAudio$1, decorators: [{ type: Optional }] },
|
|
8856
|
+
{ type: Vibration$1, decorators: [{ type: Optional }] },
|
|
8872
8857
|
{ type: AudioManagement, decorators: [{ type: Optional }] }
|
|
8873
8858
|
];
|
|
8874
8859
|
|
|
@@ -8950,7 +8935,7 @@ class Hotkeys {
|
|
|
8950
8935
|
});
|
|
8951
8936
|
}
|
|
8952
8937
|
}
|
|
8953
|
-
Hotkeys.ɵprov =
|
|
8938
|
+
Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
8954
8939
|
Hotkeys.decorators = [
|
|
8955
8940
|
{ type: Injectable, args: [{
|
|
8956
8941
|
providedIn: 'root'
|
|
@@ -9124,7 +9109,7 @@ class Base64ImageReader {
|
|
|
9124
9109
|
}
|
|
9125
9110
|
}
|
|
9126
9111
|
|
|
9127
|
-
const uuidv4
|
|
9112
|
+
const uuidv4 = uuidv4Imported;
|
|
9128
9113
|
class FileService {
|
|
9129
9114
|
constructor(platform,
|
|
9130
9115
|
//private transfer: FileTransfer,
|
|
@@ -9161,7 +9146,7 @@ class FileService {
|
|
|
9161
9146
|
const lastSlashIndex = source.lastIndexOf('/');
|
|
9162
9147
|
if (lastSlashIndex === -1)
|
|
9163
9148
|
throw new Error('Invalid URL: ' + source);
|
|
9164
|
-
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4
|
|
9149
|
+
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
9165
9150
|
// Download into the file system
|
|
9166
9151
|
if (responseType === 'file' && this.canUseFileSystem) {
|
|
9167
9152
|
console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
|
|
@@ -9217,7 +9202,7 @@ class FileService {
|
|
|
9217
9202
|
this._started = true;
|
|
9218
9203
|
}
|
|
9219
9204
|
}
|
|
9220
|
-
FileService.ɵprov =
|
|
9205
|
+
FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
9221
9206
|
FileService.decorators = [
|
|
9222
9207
|
{ type: Injectable, args: [{
|
|
9223
9208
|
providedIn: 'root',
|
|
@@ -9383,7 +9368,7 @@ class Base58 {
|
|
|
9383
9368
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
9384
9369
|
|
|
9385
9370
|
const scrypt = require('scrypt-async');
|
|
9386
|
-
const sha256
|
|
9371
|
+
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
9387
9372
|
const sha512 = require('hash.js/lib/hash/sha/512');
|
|
9388
9373
|
const nacl = {
|
|
9389
9374
|
sign,
|
|
@@ -9487,7 +9472,7 @@ class CryptoService {
|
|
|
9487
9472
|
* Hash (using SHA256) a message
|
|
9488
9473
|
*/
|
|
9489
9474
|
sha256(message) {
|
|
9490
|
-
return sha256
|
|
9475
|
+
return sha256().update(message).digest('hex');
|
|
9491
9476
|
}
|
|
9492
9477
|
/**
|
|
9493
9478
|
* Hash (using SHA512) a message
|
|
@@ -9500,7 +9485,7 @@ class CryptoService {
|
|
|
9500
9485
|
return nacl.util.encodeBase64(m);
|
|
9501
9486
|
}
|
|
9502
9487
|
}
|
|
9503
|
-
CryptoService.ɵprov =
|
|
9488
|
+
CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
9504
9489
|
CryptoService.decorators = [
|
|
9505
9490
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
9506
9491
|
];
|
|
@@ -10084,14 +10069,36 @@ trigger('slideUpDownAnimation', [
|
|
|
10084
10069
|
]);
|
|
10085
10070
|
|
|
10086
10071
|
class HttpUtils {
|
|
10087
|
-
static
|
|
10072
|
+
static getText(http, uri, opts) {
|
|
10088
10073
|
return __awaiter(this, void 0, void 0, function* () {
|
|
10089
10074
|
// Add headers
|
|
10090
|
-
opts =
|
|
10091
|
-
//
|
|
10092
|
-
|
|
10093
|
-
|
|
10094
|
-
|
|
10075
|
+
opts = opts || { responseType: 'text' };
|
|
10076
|
+
// Force no cache
|
|
10077
|
+
if (opts.nocache === true) {
|
|
10078
|
+
opts.headers = (opts.headers instanceof HttpHeaders ? opts.headers : new HttpHeaders(opts.headers));
|
|
10079
|
+
opts.headers
|
|
10080
|
+
.append('Cache-Control', 'no-cache')
|
|
10081
|
+
.append('Pragma', 'no-cache');
|
|
10082
|
+
}
|
|
10083
|
+
// Use web http client
|
|
10084
|
+
try {
|
|
10085
|
+
return (yield http.get(uri, Object.assign(Object.assign({}, opts), { responseType: 'text' })).toPromise());
|
|
10086
|
+
}
|
|
10087
|
+
catch (err) {
|
|
10088
|
+
if (err && err.message) {
|
|
10089
|
+
console.error(`[network] Error on get request ${uri}: ${err.message}`, err);
|
|
10090
|
+
}
|
|
10091
|
+
else {
|
|
10092
|
+
console.error(`[network] Error on get request ${uri}: ${err && err.statusText} - ${JSON.stringify(err)}`);
|
|
10093
|
+
}
|
|
10094
|
+
throw { code: err.status, message: 'ERROR.UNKNOWN_NETWORK_ERROR' };
|
|
10095
|
+
}
|
|
10096
|
+
});
|
|
10097
|
+
}
|
|
10098
|
+
static getJson(http, uri, opts) {
|
|
10099
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
10100
|
+
// Add headers
|
|
10101
|
+
opts = opts || {};
|
|
10095
10102
|
// Force no cache
|
|
10096
10103
|
if (opts.nocache === true) {
|
|
10097
10104
|
opts.headers = (opts.headers instanceof HttpHeaders ? opts.headers : new HttpHeaders(opts.headers));
|
|
@@ -10099,9 +10106,9 @@ class HttpUtils {
|
|
|
10099
10106
|
.append('Cache-Control', 'no-cache')
|
|
10100
10107
|
.append('Pragma', 'no-cache');
|
|
10101
10108
|
}
|
|
10109
|
+
// Use web http client
|
|
10102
10110
|
try {
|
|
10103
|
-
|
|
10104
|
-
return (yield http.get(uri, opts).toPromise());
|
|
10111
|
+
return (yield http.get(uri, Object.assign(Object.assign({}, opts), { responseType: 'json' })).toPromise());
|
|
10105
10112
|
}
|
|
10106
10113
|
catch (err) {
|
|
10107
10114
|
if (err && err.message) {
|
|
@@ -10128,7 +10135,7 @@ function getNodeInfo(http, peer, opts) {
|
|
|
10128
10135
|
if (peerUrl.endsWith('/')) {
|
|
10129
10136
|
peerUrl = peerUrl.substr(0, peerUrl.length - 1);
|
|
10130
10137
|
}
|
|
10131
|
-
return HttpUtils.
|
|
10138
|
+
return HttpUtils.getJson(http, peerUrl + '/api/node/info', opts);
|
|
10132
10139
|
});
|
|
10133
10140
|
}
|
|
10134
10141
|
|
|
@@ -10338,7 +10345,7 @@ SelectPeerModal.propDecorators = {
|
|
|
10338
10345
|
onRefresh: [{ type: Input }]
|
|
10339
10346
|
};
|
|
10340
10347
|
|
|
10341
|
-
const moment$
|
|
10348
|
+
const moment$3 = momentImported;
|
|
10342
10349
|
const SETTINGS_STORAGE_KEY = 'settings';
|
|
10343
10350
|
const SETTINGS_TRANSIENT_PROPERTIES = ['mobile', 'touchUi' /*deprecated*/];
|
|
10344
10351
|
// fixme: this constant points to static environment
|
|
@@ -10581,11 +10588,11 @@ class LocalSettingsService extends StartableService {
|
|
|
10581
10588
|
if (!feature) {
|
|
10582
10589
|
feature = {
|
|
10583
10590
|
name: featureName.toLowerCase(),
|
|
10584
|
-
lastSyncDate: moment$
|
|
10591
|
+
lastSyncDate: moment$3().toISOString()
|
|
10585
10592
|
};
|
|
10586
10593
|
}
|
|
10587
10594
|
else {
|
|
10588
|
-
feature.lastSyncDate = moment$
|
|
10595
|
+
feature.lastSyncDate = moment$3().toISOString();
|
|
10589
10596
|
}
|
|
10590
10597
|
this.saveOfflineFeature(feature);
|
|
10591
10598
|
}
|
|
@@ -10746,7 +10753,7 @@ class LocalSettingsService extends StartableService {
|
|
|
10746
10753
|
if (!page || !page.title || !page.path)
|
|
10747
10754
|
throw Error('Missing required argument \'page\', \'page.path\' or \'page.title\'');
|
|
10748
10755
|
// Set time
|
|
10749
|
-
page.time = page.time || moment$
|
|
10756
|
+
page.time = page.time || moment$3();
|
|
10750
10757
|
// Clean the title (remove <small> tags)
|
|
10751
10758
|
if (!opts || opts.removeTitleSmallTag !== false) {
|
|
10752
10759
|
const tagIndex = page.title.indexOf('</small>');
|
|
@@ -10762,7 +10769,7 @@ class LocalSettingsService extends StartableService {
|
|
|
10762
10769
|
return page;
|
|
10763
10770
|
}
|
|
10764
10771
|
}
|
|
10765
|
-
LocalSettingsService.ɵprov =
|
|
10772
|
+
LocalSettingsService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(ɵɵinject(TranslateService), ɵɵinject(Platform), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_SETTINGS, 8), ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
10766
10773
|
LocalSettingsService.decorators = [
|
|
10767
10774
|
{ type: Injectable, args: [{
|
|
10768
10775
|
providedIn: 'root',
|
|
@@ -11171,7 +11178,7 @@ class NetworkService extends StartableService {
|
|
|
11171
11178
|
if (opts === null || opts === void 0 ? void 0 : opts.nocache) {
|
|
11172
11179
|
path += '?t=' + Date.now();
|
|
11173
11180
|
}
|
|
11174
|
-
const appVersion = yield this.
|
|
11181
|
+
const appVersion = yield this.getText(path, opts);
|
|
11175
11182
|
if (isNotNilOrBlank(appVersion))
|
|
11176
11183
|
return appVersion;
|
|
11177
11184
|
}
|
|
@@ -11379,28 +11386,37 @@ class NetworkService extends StartableService {
|
|
|
11379
11386
|
});
|
|
11380
11387
|
this._timerSubscription.add(() => console.debug('[network] Refresh timer stopped'));
|
|
11381
11388
|
}
|
|
11389
|
+
getText(path, opts) {
|
|
11390
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
11391
|
+
let uri = this.getUri(path);
|
|
11392
|
+
return HttpUtils.getText(this.http, uri, opts);
|
|
11393
|
+
});
|
|
11394
|
+
}
|
|
11382
11395
|
get(path, opts) {
|
|
11383
11396
|
return __awaiter(this, void 0, void 0, function* () {
|
|
11384
|
-
let uri = path;
|
|
11385
|
-
|
|
11386
|
-
if (!uri.startsWith('http://') && !uri.startsWith('https://')) {
|
|
11387
|
-
let peerUrl = (this.peer && this.peer.url);
|
|
11388
|
-
// Remove trailing slash
|
|
11389
|
-
if (peerUrl.endsWith('/')) {
|
|
11390
|
-
peerUrl = peerUrl.substr(0, peerUrl.length - 1);
|
|
11391
|
-
}
|
|
11392
|
-
// Add first path
|
|
11393
|
-
if (!path.startsWith('/')) {
|
|
11394
|
-
path = '/' + path;
|
|
11395
|
-
}
|
|
11396
|
-
// Create the URI: concat peer URL and path
|
|
11397
|
-
uri = peerUrl + path;
|
|
11398
|
-
}
|
|
11399
|
-
// Execute the request
|
|
11400
|
-
return HttpUtils.getResource(this.http, uri, opts);
|
|
11397
|
+
let uri = this.getUri(path);
|
|
11398
|
+
return HttpUtils.getJson(this.http, uri, opts);
|
|
11401
11399
|
});
|
|
11402
11400
|
}
|
|
11403
11401
|
/* -- Protected methods -- */
|
|
11402
|
+
getUri(path) {
|
|
11403
|
+
let uri = path;
|
|
11404
|
+
// If path is not an URI: prepend with peer URL
|
|
11405
|
+
if (!uri.startsWith('http://') && !uri.startsWith('https://')) {
|
|
11406
|
+
let peerUrl = (this.peer && this.peer.url);
|
|
11407
|
+
// Remove trailing slash
|
|
11408
|
+
if (peerUrl.endsWith('/')) {
|
|
11409
|
+
peerUrl = peerUrl.substr(0, peerUrl.length - 1);
|
|
11410
|
+
}
|
|
11411
|
+
// Add first path
|
|
11412
|
+
if (!path.startsWith('/')) {
|
|
11413
|
+
path = '/' + path;
|
|
11414
|
+
}
|
|
11415
|
+
// Create the URI: concat peer URL and path
|
|
11416
|
+
uri = peerUrl + path;
|
|
11417
|
+
}
|
|
11418
|
+
return uri;
|
|
11419
|
+
}
|
|
11404
11420
|
onDeviceConnectionChanged(connectionType) {
|
|
11405
11421
|
connectionType = (connectionType || 'unknown').toLowerCase();
|
|
11406
11422
|
if (connectionType.startsWith('cell'))
|
|
@@ -11470,7 +11486,7 @@ class NetworkService extends StartableService {
|
|
|
11470
11486
|
});
|
|
11471
11487
|
}
|
|
11472
11488
|
}
|
|
11473
|
-
NetworkService.ɵprov =
|
|
11489
|
+
NetworkService.ɵprov = ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(ModalController), ɵɵinject(CryptoService), ɵɵinject(Storage), ɵɵinject(LocalSettingsService), ɵɵinject(CacheService), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT), ɵɵinject(Network, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
11474
11490
|
NetworkService.decorators = [
|
|
11475
11491
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
11476
11492
|
];
|
|
@@ -11481,16 +11497,16 @@ NetworkService.ctorParameters = () => [
|
|
|
11481
11497
|
{ type: CryptoService },
|
|
11482
11498
|
{ type: Storage },
|
|
11483
11499
|
{ type: LocalSettingsService },
|
|
11484
|
-
{ type: CacheService },
|
|
11500
|
+
{ type: CacheService$1 },
|
|
11485
11501
|
{ type: HttpClient },
|
|
11486
11502
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
11487
|
-
{ type: Network, decorators: [{ type: Optional }] },
|
|
11488
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
11503
|
+
{ type: Network$1, decorators: [{ type: Optional }] },
|
|
11504
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
11489
11505
|
{ type: TranslateService, decorators: [{ type: Optional }] },
|
|
11490
11506
|
{ type: ToastController, decorators: [{ type: Optional }] }
|
|
11491
11507
|
];
|
|
11492
11508
|
|
|
11493
|
-
const ErrorCodes
|
|
11509
|
+
const ErrorCodes = {
|
|
11494
11510
|
UNKNOWN_ERROR: 0,
|
|
11495
11511
|
LOAD_ACCOUNT_ERROR: 1,
|
|
11496
11512
|
BAD_PASSWORD: 2,
|
|
@@ -11842,7 +11858,7 @@ class EntityStore {
|
|
|
11842
11858
|
}
|
|
11843
11859
|
catch (err) {
|
|
11844
11860
|
console.error(err);
|
|
11845
|
-
throw { code: ErrorCodes
|
|
11861
|
+
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
11846
11862
|
}
|
|
11847
11863
|
}
|
|
11848
11864
|
// Emit update event
|
|
@@ -12416,7 +12432,7 @@ class EntitiesStorage extends StartableService {
|
|
|
12416
12432
|
}
|
|
12417
12433
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
12418
12434
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
12419
|
-
EntitiesStorage.ɵprov =
|
|
12435
|
+
EntitiesStorage.ɵprov = ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(ɵɵinject(Platform), ɵɵinject(ProgressBarService), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
12420
12436
|
EntitiesStorage.decorators = [
|
|
12421
12437
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
12422
12438
|
];
|
|
@@ -12553,10 +12569,10 @@ function referentialToString(obj, properties) {
|
|
|
12553
12569
|
function referentialsToString(values, properties, separator) {
|
|
12554
12570
|
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
12555
12571
|
}
|
|
12556
|
-
const ɵ0$
|
|
12572
|
+
const ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
12557
12573
|
const StatusList = Object.freeze([
|
|
12558
12574
|
{
|
|
12559
|
-
id: ɵ0$
|
|
12575
|
+
id: ɵ0$a,
|
|
12560
12576
|
icon: 'checkmark',
|
|
12561
12577
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
12562
12578
|
},
|
|
@@ -12831,7 +12847,7 @@ function accountToString(data) {
|
|
|
12831
12847
|
(data.lastName || '')) || '';
|
|
12832
12848
|
}
|
|
12833
12849
|
|
|
12834
|
-
const uuidv4 = uuidv4Imported;
|
|
12850
|
+
const uuidv4$1 = uuidv4Imported;
|
|
12835
12851
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
12836
12852
|
const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
12837
12853
|
/**
|
|
@@ -12875,7 +12891,7 @@ function createTrackerLink(opts) {
|
|
|
12875
12891
|
// Skip if not tracked
|
|
12876
12892
|
if (!context || !context.tracked)
|
|
12877
12893
|
return forward(operation);
|
|
12878
|
-
const id = context.serializationKey || uuidv4();
|
|
12894
|
+
const id = context.serializationKey || uuidv4$1();
|
|
12879
12895
|
console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
|
|
12880
12896
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
12881
12897
|
const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -13538,7 +13554,7 @@ class GraphqlService extends StartableService {
|
|
|
13538
13554
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
13539
13555
|
|| this.toAppError(err.networkError)
|
|
13540
13556
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
13541
|
-
|| this.createAppErrorByCode(ErrorCodes
|
|
13557
|
+
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
13542
13558
|
// If graphQL: try to convert the first error found
|
|
13543
13559
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
13544
13560
|
|| this.toAppError(err)
|
|
@@ -13546,7 +13562,7 @@ class GraphqlService extends StartableService {
|
|
|
13546
13562
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
13547
13563
|
|| err;
|
|
13548
13564
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
13549
|
-
if (error && error.code === ErrorCodes
|
|
13565
|
+
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
13550
13566
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
13551
13567
|
this.onNetworkError.next(error);
|
|
13552
13568
|
}
|
|
@@ -13557,7 +13573,7 @@ class GraphqlService extends StartableService {
|
|
|
13557
13573
|
data: null,
|
|
13558
13574
|
errors: [error],
|
|
13559
13575
|
loading: false,
|
|
13560
|
-
networkStatus:
|
|
13576
|
+
networkStatus: NetworkStatus.error
|
|
13561
13577
|
};
|
|
13562
13578
|
}
|
|
13563
13579
|
createAppErrorByCode(errorCode) {
|
|
@@ -13582,7 +13598,7 @@ class GraphqlService extends StartableService {
|
|
|
13582
13598
|
return 'ERROR.UNAUTHORIZED';
|
|
13583
13599
|
case ServerErrorCodes.FORBIDDEN:
|
|
13584
13600
|
return 'ERROR.FORBIDDEN';
|
|
13585
|
-
case ErrorCodes
|
|
13601
|
+
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
13586
13602
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
13587
13603
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
13588
13604
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -13613,7 +13629,7 @@ class GraphqlService extends StartableService {
|
|
|
13613
13629
|
return undefined;
|
|
13614
13630
|
}
|
|
13615
13631
|
}
|
|
13616
|
-
GraphqlService.ɵprov =
|
|
13632
|
+
GraphqlService.ɵprov = ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(ɵɵinject(Platform), ɵɵinject(Apollo), ɵɵinject(HttpLink), ɵɵinject(NetworkService), ɵɵinject(Storage), ɵɵinject(CryptoService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
13617
13633
|
GraphqlService.decorators = [
|
|
13618
13634
|
{ type: Injectable, args: [{
|
|
13619
13635
|
providedIn: 'root'
|
|
@@ -13630,7 +13646,7 @@ GraphqlService.ctorParameters = () => [
|
|
|
13630
13646
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
13631
13647
|
];
|
|
13632
13648
|
|
|
13633
|
-
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
13649
|
+
const sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
13634
13650
|
class BaseGraphqlServiceOptions {
|
|
13635
13651
|
}
|
|
13636
13652
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
@@ -13781,8 +13797,8 @@ class BaseGraphqlService extends StartableService {
|
|
|
13781
13797
|
}
|
|
13782
13798
|
/* -- protected methods -- */
|
|
13783
13799
|
computeMutableWatchQueryId(opts) {
|
|
13784
|
-
const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13785
|
-
const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
13800
|
+
const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13801
|
+
const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
13786
13802
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
13787
13803
|
}
|
|
13788
13804
|
findMutableWatchQueries(opts) {
|
|
@@ -13852,7 +13868,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
|
|
|
13852
13868
|
/* ------------------------------------
|
|
13853
13869
|
* GraphQL queries
|
|
13854
13870
|
* ------------------------------------*/
|
|
13855
|
-
const Fragments
|
|
13871
|
+
const Fragments = {
|
|
13856
13872
|
account: gql `
|
|
13857
13873
|
fragment AccountFragment on AccountVO {
|
|
13858
13874
|
id
|
|
@@ -13887,14 +13903,14 @@ const Fragments$1 = {
|
|
|
13887
13903
|
}`
|
|
13888
13904
|
};
|
|
13889
13905
|
// Load account query
|
|
13890
|
-
const LoadQuery
|
|
13906
|
+
const LoadQuery = gql `
|
|
13891
13907
|
query Account {
|
|
13892
13908
|
data: account {
|
|
13893
13909
|
...AccountFragment
|
|
13894
13910
|
}
|
|
13895
13911
|
}
|
|
13896
|
-
${Fragments
|
|
13897
|
-
${Fragments
|
|
13912
|
+
${Fragments.account}
|
|
13913
|
+
${Fragments.settings}
|
|
13898
13914
|
`;
|
|
13899
13915
|
// Check email query
|
|
13900
13916
|
const IsEmailExistsQuery = gql `
|
|
@@ -13909,21 +13925,21 @@ const AccountMutations = {
|
|
|
13909
13925
|
...AccountFragment
|
|
13910
13926
|
}
|
|
13911
13927
|
}
|
|
13912
|
-
${Fragments
|
|
13913
|
-
${Fragments
|
|
13928
|
+
${Fragments.account}
|
|
13929
|
+
${Fragments.settings}`,
|
|
13914
13930
|
create: gql `mutation CreateAccount($data:AccountVOInput){
|
|
13915
13931
|
data: createAccount(account: $data){
|
|
13916
13932
|
...AccountFragment
|
|
13917
13933
|
}
|
|
13918
13934
|
}
|
|
13919
|
-
${Fragments
|
|
13920
|
-
${Fragments
|
|
13935
|
+
${Fragments.account}
|
|
13936
|
+
${Fragments.settings}`,
|
|
13921
13937
|
saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
|
|
13922
13938
|
data: saveSettings(settings: $data){
|
|
13923
13939
|
...UserSettingsFragment
|
|
13924
13940
|
}
|
|
13925
13941
|
}
|
|
13926
|
-
${Fragments
|
|
13942
|
+
${Fragments.settings}`
|
|
13927
13943
|
};
|
|
13928
13944
|
// Sent confirmation email
|
|
13929
13945
|
const SendConfirmEmailMutation = gql `
|
|
@@ -14238,7 +14254,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14238
14254
|
catch (error) {
|
|
14239
14255
|
console.error(error);
|
|
14240
14256
|
this.resetData();
|
|
14241
|
-
throw { code: ErrorCodes
|
|
14257
|
+
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
14242
14258
|
}
|
|
14243
14259
|
// Store pubkey+keypair
|
|
14244
14260
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -14272,7 +14288,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14272
14288
|
}
|
|
14273
14289
|
catch (err) {
|
|
14274
14290
|
// If account not found, check if email is valid
|
|
14275
|
-
if (err && +(err.code) === ErrorCodes
|
|
14291
|
+
if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
|
|
14276
14292
|
// Check email exists
|
|
14277
14293
|
if (data.username.indexOf('@') !== -1) {
|
|
14278
14294
|
let isEmailExists;
|
|
@@ -14284,11 +14300,11 @@ class AccountService extends BaseGraphqlService {
|
|
|
14284
14300
|
}
|
|
14285
14301
|
// Email not exists (no account)
|
|
14286
14302
|
if (!isEmailExists) {
|
|
14287
|
-
throw { code: ErrorCodes
|
|
14303
|
+
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
14288
14304
|
}
|
|
14289
14305
|
}
|
|
14290
14306
|
// Email exists, so error = 'bad password'
|
|
14291
|
-
throw { code: ErrorCodes
|
|
14307
|
+
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
14292
14308
|
}
|
|
14293
14309
|
throw err; // resend the first error
|
|
14294
14310
|
}
|
|
@@ -14434,8 +14450,8 @@ class AccountService extends BaseGraphqlService {
|
|
|
14434
14450
|
// Load remotely
|
|
14435
14451
|
else {
|
|
14436
14452
|
const { data } = yield this.graphql.query({
|
|
14437
|
-
query: LoadQuery
|
|
14438
|
-
error: { code: ErrorCodes
|
|
14453
|
+
query: LoadQuery,
|
|
14454
|
+
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
14439
14455
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
14440
14456
|
});
|
|
14441
14457
|
json = data;
|
|
@@ -14462,7 +14478,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14462
14478
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14463
14479
|
const isEmailExists = yield this.isEmailExists(email);
|
|
14464
14480
|
if (isEmailExists) {
|
|
14465
|
-
throw { code: ErrorCodes
|
|
14481
|
+
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
14466
14482
|
}
|
|
14467
14483
|
});
|
|
14468
14484
|
}
|
|
@@ -14498,7 +14514,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14498
14514
|
locale
|
|
14499
14515
|
},
|
|
14500
14516
|
error: {
|
|
14501
|
-
code: ErrorCodes
|
|
14517
|
+
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
14502
14518
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
14503
14519
|
}
|
|
14504
14520
|
});
|
|
@@ -14514,7 +14530,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14514
14530
|
code
|
|
14515
14531
|
},
|
|
14516
14532
|
error: {
|
|
14517
|
-
code: ErrorCodes
|
|
14533
|
+
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
14518
14534
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
14519
14535
|
}
|
|
14520
14536
|
});
|
|
@@ -14593,7 +14609,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14593
14609
|
throw error;
|
|
14594
14610
|
console.error(error);
|
|
14595
14611
|
throw {
|
|
14596
|
-
code: ErrorCodes
|
|
14612
|
+
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
14597
14613
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
14598
14614
|
};
|
|
14599
14615
|
}
|
|
@@ -14763,7 +14779,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14763
14779
|
if (!isNew) {
|
|
14764
14780
|
const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
|
|
14765
14781
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
14766
|
-
throw { code: ErrorCodes
|
|
14782
|
+
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
14767
14783
|
}
|
|
14768
14784
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
14769
14785
|
}
|
|
@@ -14775,7 +14791,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14775
14791
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
14776
14792
|
variables: { data: json },
|
|
14777
14793
|
error: {
|
|
14778
|
-
code: ErrorCodes
|
|
14794
|
+
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
14779
14795
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
14780
14796
|
}
|
|
14781
14797
|
});
|
|
@@ -14802,7 +14818,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14802
14818
|
mutation: AccountMutations.saveSettings,
|
|
14803
14819
|
variables: { data: json },
|
|
14804
14820
|
error: {
|
|
14805
|
-
code: ErrorCodes
|
|
14821
|
+
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
14806
14822
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
14807
14823
|
}
|
|
14808
14824
|
});
|
|
@@ -14824,7 +14840,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14824
14840
|
if (counter > 4) {
|
|
14825
14841
|
if (this._debug)
|
|
14826
14842
|
console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
|
|
14827
|
-
throw { code: ErrorCodes
|
|
14843
|
+
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
14828
14844
|
}
|
|
14829
14845
|
// Check if valid
|
|
14830
14846
|
if (token) {
|
|
@@ -14834,7 +14850,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14834
14850
|
token
|
|
14835
14851
|
},
|
|
14836
14852
|
error: {
|
|
14837
|
-
code: ErrorCodes
|
|
14853
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
14838
14854
|
message: 'ERROR.UNAUTHORIZED'
|
|
14839
14855
|
},
|
|
14840
14856
|
fetchPolicy: 'no-cache'
|
|
@@ -14850,7 +14866,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14850
14866
|
}
|
|
14851
14867
|
// Generate a new token
|
|
14852
14868
|
const challengeError = {
|
|
14853
|
-
code: ErrorCodes
|
|
14869
|
+
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
14854
14870
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
14855
14871
|
};
|
|
14856
14872
|
const data = yield this.graphql.query({
|
|
@@ -14928,7 +14944,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14928
14944
|
query: AccountSubscriptions.listenChanges,
|
|
14929
14945
|
variables,
|
|
14930
14946
|
error: {
|
|
14931
|
-
code: ErrorCodes
|
|
14947
|
+
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
14932
14948
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
|
|
14933
14949
|
}
|
|
14934
14950
|
}).pipe(map(({ data }) => data),
|
|
@@ -14957,7 +14973,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14957
14973
|
return Toasts.show(this.toastController, this.translate, opts);
|
|
14958
14974
|
}
|
|
14959
14975
|
}
|
|
14960
|
-
AccountService.ɵprov =
|
|
14976
|
+
AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
14961
14977
|
AccountService.decorators = [
|
|
14962
14978
|
{ type: Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
14963
14979
|
];
|
|
@@ -15225,7 +15241,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
|
|
|
15225
15241
|
/* ------------------------------------
|
|
15226
15242
|
* GraphQL queries
|
|
15227
15243
|
* ------------------------------------*/
|
|
15228
|
-
const Fragments = {
|
|
15244
|
+
const Fragments$1 = {
|
|
15229
15245
|
config: gql `
|
|
15230
15246
|
fragment ConfigFragment on ConfigurationVO {
|
|
15231
15247
|
id
|
|
@@ -15252,13 +15268,13 @@ const Fragments = {
|
|
|
15252
15268
|
}
|
|
15253
15269
|
`
|
|
15254
15270
|
};
|
|
15255
|
-
const LoadQuery = gql `
|
|
15271
|
+
const LoadQuery$1 = gql `
|
|
15256
15272
|
query Configuration{
|
|
15257
15273
|
data: configuration{
|
|
15258
15274
|
...ConfigFragment
|
|
15259
15275
|
}
|
|
15260
15276
|
}
|
|
15261
|
-
${Fragments.config}
|
|
15277
|
+
${Fragments$1.config}
|
|
15262
15278
|
`;
|
|
15263
15279
|
// Save (create or update) account mutation
|
|
15264
15280
|
const SaveMutation = gql `
|
|
@@ -15267,7 +15283,7 @@ const SaveMutation = gql `
|
|
|
15267
15283
|
...ConfigFragment
|
|
15268
15284
|
}
|
|
15269
15285
|
}
|
|
15270
|
-
${Fragments.config}
|
|
15286
|
+
${Fragments$1.config}
|
|
15271
15287
|
`;
|
|
15272
15288
|
const ClearCache = gql `
|
|
15273
15289
|
query ClearCache($name: String) {
|
|
@@ -15318,12 +15334,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15318
15334
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15319
15335
|
const now = Date.now();
|
|
15320
15336
|
console.debug('[config] Loading Pod configuration...');
|
|
15321
|
-
const query = opts && opts.query || LoadQuery;
|
|
15337
|
+
const query = opts && opts.query || LoadQuery$1;
|
|
15322
15338
|
const variables = opts && opts.variables || undefined;
|
|
15323
15339
|
const res = yield this.graphql.query({
|
|
15324
15340
|
query,
|
|
15325
15341
|
variables,
|
|
15326
|
-
error: { code: ErrorCodes
|
|
15342
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15327
15343
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
15328
15344
|
});
|
|
15329
15345
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -15356,7 +15372,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15356
15372
|
data: json
|
|
15357
15373
|
},
|
|
15358
15374
|
error: {
|
|
15359
|
-
code: ErrorCodes
|
|
15375
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
15360
15376
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
15361
15377
|
}
|
|
15362
15378
|
});
|
|
@@ -15382,7 +15398,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15382
15398
|
const res = yield this.graphql.query({
|
|
15383
15399
|
query: CacheStatistics,
|
|
15384
15400
|
variables: null,
|
|
15385
|
-
error: { code: ErrorCodes
|
|
15401
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15386
15402
|
fetchPolicy: 'network-only'
|
|
15387
15403
|
});
|
|
15388
15404
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -15398,7 +15414,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15398
15414
|
const res = yield this.graphql.query({
|
|
15399
15415
|
query: ClearCache,
|
|
15400
15416
|
variables,
|
|
15401
|
-
error: { code: ErrorCodes
|
|
15417
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15402
15418
|
fetchPolicy: 'no-cache'
|
|
15403
15419
|
});
|
|
15404
15420
|
const data = res && res.clearCache || undefined;
|
|
@@ -15557,7 +15573,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15557
15573
|
});
|
|
15558
15574
|
}
|
|
15559
15575
|
}
|
|
15560
|
-
ConfigService.ɵprov =
|
|
15576
|
+
ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(AccountService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
15561
15577
|
ConfigService.decorators = [
|
|
15562
15578
|
{ type: Injectable, args: [{
|
|
15563
15579
|
providedIn: 'root',
|
|
@@ -15577,7 +15593,7 @@ ConfigService.ctorParameters = () => [
|
|
|
15577
15593
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
15578
15594
|
];
|
|
15579
15595
|
|
|
15580
|
-
const moment$
|
|
15596
|
+
const moment$4 = momentImported;
|
|
15581
15597
|
const AndroidOsEnvironment = Object.freeze({
|
|
15582
15598
|
DIRECTORY_DOWNLOADS: 'Download',
|
|
15583
15599
|
DIRECTORY_DOWNLOADS_OLD: 'Downloads',
|
|
@@ -15811,16 +15827,16 @@ class PlatformService extends StartableService {
|
|
|
15811
15827
|
}
|
|
15812
15828
|
// config moment lib
|
|
15813
15829
|
try {
|
|
15814
|
-
moment$
|
|
15830
|
+
moment$4.locale(event.lang);
|
|
15815
15831
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
15816
15832
|
}
|
|
15817
15833
|
// If error, fallback to en
|
|
15818
15834
|
catch (err) {
|
|
15819
|
-
moment$
|
|
15835
|
+
moment$4.locale('en');
|
|
15820
15836
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
15821
15837
|
}
|
|
15822
15838
|
// Config date adapter
|
|
15823
|
-
this.dateAdapter.setLocale(moment$
|
|
15839
|
+
this.dateAdapter.setLocale(moment$4.locale());
|
|
15824
15840
|
}
|
|
15825
15841
|
});
|
|
15826
15842
|
this.settings.onChange.subscribe(data => {
|
|
@@ -16021,7 +16037,7 @@ class PlatformService extends StartableService {
|
|
|
16021
16037
|
});
|
|
16022
16038
|
}
|
|
16023
16039
|
}
|
|
16024
|
-
PlatformService.ɵprov =
|
|
16040
|
+
PlatformService.ɵprov = ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(ɵɵinject(Platform), ɵɵinject(Platform$1), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(MomentDateAdapter), ɵɵinject(EntitiesStorage), ɵɵinject(LocalSettingsService), ɵɵinject(NetworkService), ɵɵinject(AccountService), ɵɵinject(ConfigService), ɵɵinject(CacheService), ɵɵinject(Storage), ɵɵinject(AudioProvider), ɵɵinject(ENVIRONMENT), ɵɵinject(StatusBar, 8), ɵɵinject(Keyboard$1, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(InAppBrowser, 8), ɵɵinject(Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
16025
16041
|
PlatformService.decorators = [
|
|
16026
16042
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
16027
16043
|
];
|
|
@@ -16036,15 +16052,15 @@ PlatformService.ctorParameters = () => [
|
|
|
16036
16052
|
{ type: NetworkService },
|
|
16037
16053
|
{ type: AccountService },
|
|
16038
16054
|
{ type: ConfigService },
|
|
16039
|
-
{ type: CacheService },
|
|
16055
|
+
{ type: CacheService$1 },
|
|
16040
16056
|
{ type: Storage },
|
|
16041
16057
|
{ type: AudioProvider },
|
|
16042
16058
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
16043
|
-
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
16059
|
+
{ type: StatusBar$1, decorators: [{ type: Optional }] },
|
|
16044
16060
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
16045
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
16046
|
-
{ type: InAppBrowser, decorators: [{ type: Optional }] },
|
|
16047
|
-
{ type: Downloader, decorators: [{ type: Optional }] }
|
|
16061
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
16062
|
+
{ type: InAppBrowser$1, decorators: [{ type: Optional }] },
|
|
16063
|
+
{ type: Downloader$1, decorators: [{ type: Optional }] }
|
|
16048
16064
|
];
|
|
16049
16065
|
|
|
16050
16066
|
class AppHelpModal {
|
|
@@ -16108,7 +16124,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
16108
16124
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
16109
16125
|
}
|
|
16110
16126
|
}
|
|
16111
|
-
MatStepperI18n.ɵprov =
|
|
16127
|
+
MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
16112
16128
|
MatStepperI18n.decorators = [
|
|
16113
16129
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
16114
16130
|
];
|
|
@@ -17654,22 +17670,24 @@ class JobUtils {
|
|
|
17654
17670
|
}
|
|
17655
17671
|
static run(runnable, opts) {
|
|
17656
17672
|
const progression = new BehaviorSubject(0);
|
|
17657
|
-
runnable(
|
|
17673
|
+
runnable(Object.assign(Object.assign({}, opts), { progression }))
|
|
17658
17674
|
.then(() => {
|
|
17659
|
-
if (opts
|
|
17675
|
+
if (opts === null || opts === void 0 ? void 0 : opts.maxProgression)
|
|
17660
17676
|
progression.next(opts.maxProgression);
|
|
17661
|
-
progression
|
|
17677
|
+
if (opts === null || opts === void 0 ? void 0 : opts.progression)
|
|
17678
|
+
opts.progression.complete();
|
|
17662
17679
|
})
|
|
17663
17680
|
.catch(err => progression.error(err));
|
|
17664
17681
|
return progression;
|
|
17665
17682
|
}
|
|
17666
|
-
static fetchAllPages(loadPageFn,
|
|
17683
|
+
static fetchAllPages(loadPageFn, opts) {
|
|
17684
|
+
var _a;
|
|
17667
17685
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17668
17686
|
const maxProgression = opts && opts.maxProgression || undefined;
|
|
17669
17687
|
let total;
|
|
17670
|
-
let
|
|
17688
|
+
let pageCount;
|
|
17671
17689
|
let progressionStep;
|
|
17672
|
-
let
|
|
17690
|
+
let currentPageDataCount;
|
|
17673
17691
|
const fetchSize = opts && opts.fetchSize || 1000;
|
|
17674
17692
|
let offset = 0;
|
|
17675
17693
|
let data = [];
|
|
@@ -17679,37 +17697,42 @@ class JobUtils {
|
|
|
17679
17697
|
// Get some items, using paging
|
|
17680
17698
|
const res = yield loadPageFn(offset, fetchSize);
|
|
17681
17699
|
data = data.concat(res.data);
|
|
17682
|
-
|
|
17683
|
-
offset +=
|
|
17700
|
+
currentPageDataCount = res.data && res.data.length || 0;
|
|
17701
|
+
offset += currentPageDataCount;
|
|
17684
17702
|
// Set total count (only if not already set)
|
|
17685
17703
|
if (isNil(total) && isNotNil(res.total)) {
|
|
17686
17704
|
total = res.total;
|
|
17687
|
-
|
|
17688
|
-
|
|
17705
|
+
// Compute the number of page
|
|
17706
|
+
pageCount = Math.round(res.total / fetchSize + 0.5); // Round to HALF_UP integer
|
|
17707
|
+
// Compute step, by dividing maxProgression by number of page
|
|
17708
|
+
const actualProgression = Math.max(0, toNumber(opts && ((_a = opts.progression) === null || _a === void 0 ? void 0 : _a.value), 0));
|
|
17709
|
+
progressionStep = maxProgression
|
|
17710
|
+
? (maxProgression - actualProgression) / pageCount
|
|
17711
|
+
: undefined /*if 0 reset to undefined*/;
|
|
17689
17712
|
}
|
|
17690
17713
|
// Increment progression on each iteration (if possible)
|
|
17691
|
-
if (isNotNil(progressionStep)) {
|
|
17692
|
-
progression.next(progression.
|
|
17714
|
+
if (opts && opts.progression && isNotNil(progressionStep)) {
|
|
17715
|
+
opts.progression.next(opts.progression.value + progressionStep);
|
|
17693
17716
|
}
|
|
17694
17717
|
if (opts && opts.onPageLoaded)
|
|
17695
17718
|
opts.onPageLoaded(res);
|
|
17696
|
-
} while (
|
|
17719
|
+
} while (currentPageDataCount > 0 && ((isNil(total) && currentPageDataCount === fetchSize) || (isNotNil(total) && (offset < total))));
|
|
17697
17720
|
// Complete progression to reach progressionStep value (because of round)
|
|
17698
17721
|
if (isNotNil(progressionStep)) {
|
|
17699
17722
|
// If total return by loadAll was bad !
|
|
17700
17723
|
if (isNotNil(total) && data.length < total) {
|
|
17701
17724
|
console.warn(`A function loadAll() returned a bad total (less than all page's data)! Expected ${total} but fetch ${data.length}`);
|
|
17702
17725
|
total = data.length;
|
|
17703
|
-
|
|
17726
|
+
pageCount = Math.round(data.length / fetchSize + 0.5);
|
|
17704
17727
|
}
|
|
17705
|
-
const lastProgressionStep = opts.maxProgression - (progressionStep *
|
|
17706
|
-
if (lastProgressionStep > 0) {
|
|
17707
|
-
progression.next(progression.
|
|
17728
|
+
const lastProgressionStep = opts.maxProgression - (progressionStep * pageCount);
|
|
17729
|
+
if (opts && opts.progression && lastProgressionStep > 0) {
|
|
17730
|
+
opts.progression.next(opts.progression.value + lastProgressionStep);
|
|
17708
17731
|
}
|
|
17709
17732
|
}
|
|
17710
17733
|
// Or increment once
|
|
17711
|
-
else if (opts.maxProgression) {
|
|
17712
|
-
progression.next(progression.
|
|
17734
|
+
else if (opts && opts.progression && opts.maxProgression) {
|
|
17735
|
+
opts.progression.next(opts.progression.value + opts.maxProgression);
|
|
17713
17736
|
}
|
|
17714
17737
|
return {
|
|
17715
17738
|
data,
|
|
@@ -17927,7 +17950,7 @@ function state2side(state) {
|
|
|
17927
17950
|
return 1;
|
|
17928
17951
|
}
|
|
17929
17952
|
}
|
|
17930
|
-
const ɵ0$
|
|
17953
|
+
const ɵ0$b = (defaultStateSize) => [
|
|
17931
17954
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
17932
17955
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
17933
17956
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -17935,7 +17958,7 @@ const ɵ0$1 = (defaultStateSize) => [
|
|
|
17935
17958
|
const SCALE_OPTIONS_DEFAULT = {
|
|
17936
17959
|
startColor: rgbArrayMap.red,
|
|
17937
17960
|
startStates: [0, 2, 3],
|
|
17938
|
-
startStepsFn: ɵ0$
|
|
17961
|
+
startStepsFn: ɵ0$b
|
|
17939
17962
|
};
|
|
17940
17963
|
/**
|
|
17941
17964
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -18732,7 +18755,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
18732
18755
|
});
|
|
18733
18756
|
}
|
|
18734
18757
|
}
|
|
18735
|
-
UserSettingsValidatorService.ɵprov =
|
|
18758
|
+
UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
18736
18759
|
UserSettingsValidatorService.decorators = [
|
|
18737
18760
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18738
18761
|
];
|
|
@@ -18776,7 +18799,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
18776
18799
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
18777
18800
|
}
|
|
18778
18801
|
}
|
|
18779
|
-
AccountValidatorService.ɵprov =
|
|
18802
|
+
AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
18780
18803
|
AccountValidatorService.decorators = [
|
|
18781
18804
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18782
18805
|
];
|
|
@@ -19341,7 +19364,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
19341
19364
|
});
|
|
19342
19365
|
}
|
|
19343
19366
|
}
|
|
19344
|
-
LocalSettingsValidatorService.ɵprov =
|
|
19367
|
+
LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
19345
19368
|
LocalSettingsValidatorService.decorators = [
|
|
19346
19369
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
19347
19370
|
];
|
|
@@ -19960,7 +19983,7 @@ class IsOnFieldModePipe {
|
|
|
19960
19983
|
return value === 'FIELD';
|
|
19961
19984
|
}
|
|
19962
19985
|
}
|
|
19963
|
-
IsOnFieldModePipe.ɵprov =
|
|
19986
|
+
IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
19964
19987
|
IsOnFieldModePipe.decorators = [
|
|
19965
19988
|
{ type: Pipe, args: [{
|
|
19966
19989
|
name: 'isOnField'
|
|
@@ -19972,7 +19995,7 @@ class IsNotOnFieldModePipe {
|
|
|
19972
19995
|
return value !== 'FIELD';
|
|
19973
19996
|
}
|
|
19974
19997
|
}
|
|
19975
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
19998
|
+
IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
19976
19999
|
IsNotOnFieldModePipe.decorators = [
|
|
19977
20000
|
{ type: Pipe, args: [{
|
|
19978
20001
|
name: 'isNotOnField'
|
|
@@ -19987,7 +20010,7 @@ class PersonToStringPipe {
|
|
|
19987
20010
|
return PersonUtils.personToString(value);
|
|
19988
20011
|
}
|
|
19989
20012
|
}
|
|
19990
|
-
PersonToStringPipe.ɵprov =
|
|
20013
|
+
PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
19991
20014
|
PersonToStringPipe.decorators = [
|
|
19992
20015
|
{ type: Pipe, args: [{
|
|
19993
20016
|
name: 'personToString'
|
|
@@ -20372,7 +20395,7 @@ class IsLoginAccountPipe {
|
|
|
20372
20395
|
return value && value.pubkey && true;
|
|
20373
20396
|
}
|
|
20374
20397
|
}
|
|
20375
|
-
IsLoginAccountPipe.ɵprov =
|
|
20398
|
+
IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
20376
20399
|
IsLoginAccountPipe.decorators = [
|
|
20377
20400
|
{ type: Pipe, args: [{
|
|
20378
20401
|
name: 'isLogin'
|
|
@@ -20384,7 +20407,7 @@ class AccountToStringPipe {
|
|
|
20384
20407
|
return accountToString(value);
|
|
20385
20408
|
}
|
|
20386
20409
|
}
|
|
20387
|
-
AccountToStringPipe.ɵprov =
|
|
20410
|
+
AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
20388
20411
|
AccountToStringPipe.decorators = [
|
|
20389
20412
|
{ type: Pipe, args: [{
|
|
20390
20413
|
name: 'accountToString'
|
|
@@ -20399,7 +20422,7 @@ class DepartmentToStringPipe {
|
|
|
20399
20422
|
return departmentToString(value);
|
|
20400
20423
|
}
|
|
20401
20424
|
}
|
|
20402
|
-
DepartmentToStringPipe.ɵprov =
|
|
20425
|
+
DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
20403
20426
|
DepartmentToStringPipe.decorators = [
|
|
20404
20427
|
{ type: Pipe, args: [{
|
|
20405
20428
|
name: 'departmentToString'
|
|
@@ -20495,7 +20518,7 @@ class MenuService {
|
|
|
20495
20518
|
this._visibleSubject.next(value);
|
|
20496
20519
|
}
|
|
20497
20520
|
}
|
|
20498
|
-
MenuService.ɵprov =
|
|
20521
|
+
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
20499
20522
|
MenuService.decorators = [
|
|
20500
20523
|
{ type: Injectable, args: [{
|
|
20501
20524
|
providedIn: 'root'
|
|
@@ -20957,7 +20980,7 @@ class AuthGuardService {
|
|
|
20957
20980
|
}));
|
|
20958
20981
|
}
|
|
20959
20982
|
}
|
|
20960
|
-
AuthGuardService.ɵprov =
|
|
20983
|
+
AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
20961
20984
|
AuthGuardService.decorators = [
|
|
20962
20985
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
20963
20986
|
];
|
|
@@ -20999,7 +21022,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20999
21022
|
query,
|
|
21000
21023
|
variables: { id },
|
|
21001
21024
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
21002
|
-
error: { code: ErrorCodes
|
|
21025
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
21003
21026
|
})
|
|
21004
21027
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
21005
21028
|
? (data && this.fromObject(data))
|
|
@@ -21014,7 +21037,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21014
21037
|
query,
|
|
21015
21038
|
variables: { id },
|
|
21016
21039
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
21017
|
-
error: { code: ErrorCodes
|
|
21040
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
21018
21041
|
});
|
|
21019
21042
|
// Convert to entity
|
|
21020
21043
|
return (!opts || opts.toEntity !== false)
|
|
@@ -21045,7 +21068,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21045
21068
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
21046
21069
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
21047
21070
|
variables,
|
|
21048
|
-
error: { code: ErrorCodes
|
|
21071
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
21049
21072
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
21050
21073
|
})
|
|
21051
21074
|
.pipe(map(({ data, total }) => {
|
|
@@ -21081,7 +21104,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21081
21104
|
const { data, total } = yield this.graphql.query({
|
|
21082
21105
|
query,
|
|
21083
21106
|
variables,
|
|
21084
|
-
error: { code: ErrorCodes
|
|
21107
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
21085
21108
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
21086
21109
|
});
|
|
21087
21110
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -21120,7 +21143,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21120
21143
|
variables: {
|
|
21121
21144
|
filter: filter && filter.asPodObject()
|
|
21122
21145
|
},
|
|
21123
|
-
error: { code: ErrorCodes
|
|
21146
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
21124
21147
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
21125
21148
|
});
|
|
21126
21149
|
return res.total;
|
|
@@ -21156,7 +21179,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21156
21179
|
variables: {
|
|
21157
21180
|
data: json
|
|
21158
21181
|
},
|
|
21159
|
-
error: { code: ErrorCodes
|
|
21182
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
21160
21183
|
update: (proxy, { data }) => {
|
|
21161
21184
|
const savedEntities = data && data.data;
|
|
21162
21185
|
if (savedEntities) {
|
|
@@ -21212,7 +21235,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21212
21235
|
variables: {
|
|
21213
21236
|
data: json
|
|
21214
21237
|
},
|
|
21215
|
-
error: { code: ErrorCodes
|
|
21238
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
21216
21239
|
update: (cache, { data }) => {
|
|
21217
21240
|
// Update entity
|
|
21218
21241
|
const savedEntity = data && data.data;
|
|
@@ -21260,7 +21283,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21260
21283
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
21261
21284
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
21262
21285
|
variables: { ids },
|
|
21263
|
-
error: { code: ErrorCodes
|
|
21286
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
21264
21287
|
update: (cache, res) => {
|
|
21265
21288
|
// Remove from cache
|
|
21266
21289
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -21301,7 +21324,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21301
21324
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
21302
21325
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
21303
21326
|
variables: { id },
|
|
21304
|
-
error: { code: ErrorCodes
|
|
21327
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
21305
21328
|
update: (proxy, res) => {
|
|
21306
21329
|
// Remove from cache
|
|
21307
21330
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -21337,7 +21360,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
21337
21360
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache',
|
|
21338
21361
|
variables,
|
|
21339
21362
|
error: {
|
|
21340
|
-
code: ErrorCodes
|
|
21363
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
21341
21364
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
21342
21365
|
}
|
|
21343
21366
|
})
|
|
@@ -21523,7 +21546,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21523
21546
|
if (this._debug)
|
|
21524
21547
|
invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
21525
21548
|
// Stop with an error
|
|
21526
|
-
throw { code: ErrorCodes
|
|
21549
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21527
21550
|
}
|
|
21528
21551
|
this._editingRowCount = 0;
|
|
21529
21552
|
let data;
|
|
@@ -22394,14 +22417,14 @@ class AppTable {
|
|
|
22394
22417
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22395
22418
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
22396
22419
|
if (this.readOnly) {
|
|
22397
|
-
throw { code: ErrorCodes
|
|
22420
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
22398
22421
|
}
|
|
22399
22422
|
this.resetError();
|
|
22400
22423
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
22401
22424
|
this.previouslyEditedRowId = opts.keepEditing ? ((((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined) || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.id)) : undefined;
|
|
22402
22425
|
const previouslyEditedData = opts.keepEditing ? (isNotNil(this.previouslyEditedRowId) && ((_c = this.editedRow) === null || _c === void 0 ? void 0 : _c.currentData) || ((_d = this.singleSelectedRow) === null || _d === void 0 ? void 0 : _d.currentData)) : undefined;
|
|
22403
22426
|
if (!this.confirmEditCreate()) {
|
|
22404
|
-
throw { code: ErrorCodes
|
|
22427
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
22405
22428
|
}
|
|
22406
22429
|
// Mark as saving
|
|
22407
22430
|
this.markAsSaving();
|
|
@@ -22520,7 +22543,7 @@ class AppTable {
|
|
|
22520
22543
|
var _a;
|
|
22521
22544
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22522
22545
|
if (this.readOnly) {
|
|
22523
|
-
throw { code: ErrorCodes
|
|
22546
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
22524
22547
|
}
|
|
22525
22548
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
22526
22549
|
return 0; // SKip
|
|
@@ -24100,7 +24123,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
24100
24123
|
try {
|
|
24101
24124
|
const data = yield this.dataService.load(id, opts);
|
|
24102
24125
|
if (!data)
|
|
24103
|
-
throw { code: ErrorCodes
|
|
24126
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
24104
24127
|
this._usageMode = this.computeUsageMode(data);
|
|
24105
24128
|
yield this.onEntityLoaded(data, opts);
|
|
24106
24129
|
yield this.updateView(data, opts);
|
|
@@ -25052,7 +25075,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
25052
25075
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
25053
25076
|
}
|
|
25054
25077
|
}
|
|
25055
|
-
UserEventService.ɵprov =
|
|
25078
|
+
UserEventService.ɵprov = ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(ɵɵinject(GraphqlService), ɵɵinject(AccountService), ɵɵinject(NetworkService), ɵɵinject(TranslateService), ɵɵinject(ToastController), ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
|
|
25056
25079
|
UserEventService.decorators = [
|
|
25057
25080
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
25058
25081
|
];
|
|
@@ -25399,23 +25422,20 @@ class PersonService extends BaseEntityService {
|
|
|
25399
25422
|
return this.loadAll(0, !value ? 30 : 10, sortBy, sortDirection, Object.assign(Object.assign({}, filter), { searchText: value, statusIds: filter && filter.statusIds || [StatusIds.ENABLE], userProfiles: filter && filter.userProfiles }), { withTotal: true /* need by autocomplete */ });
|
|
25400
25423
|
});
|
|
25401
25424
|
}
|
|
25402
|
-
executeImport(
|
|
25425
|
+
executeImport(filter, opts) {
|
|
25403
25426
|
const _super = Object.create(null, {
|
|
25404
25427
|
loadAll: { get: () => super.loadAll }
|
|
25405
25428
|
});
|
|
25406
25429
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25407
25430
|
const maxProgression = opts && opts.maxProgression || 100;
|
|
25408
|
-
|
|
25409
|
-
statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY],
|
|
25410
|
-
userProfiles: ['SUPERVISOR', 'USER', 'GUEST']
|
|
25411
|
-
};
|
|
25431
|
+
filter = Object.assign(Object.assign({}, filter), { statusIds: [StatusIds.ENABLE, StatusIds.TEMPORARY], userProfiles: ['SUPERVISOR', 'USER', 'GUEST'] });
|
|
25412
25432
|
console.info('[person-service] Importing persons...');
|
|
25413
25433
|
const res = yield JobUtils.fetchAllPages((offset, size) => _super.loadAll.call(this, offset, size, 'id', null, filter, {
|
|
25414
25434
|
debug: false,
|
|
25415
25435
|
fetchPolicy: 'network-only',
|
|
25416
25436
|
withTotal: (offset === 0),
|
|
25417
25437
|
toEntity: false
|
|
25418
|
-
}),
|
|
25438
|
+
}), Object.assign(Object.assign({}, opts), { maxProgression: maxProgression * 0.9 }));
|
|
25419
25439
|
// Save result locally
|
|
25420
25440
|
yield this.entities.saveAll(res.data, { entityName: 'PersonVO', reset: true });
|
|
25421
25441
|
});
|
|
@@ -25425,7 +25445,7 @@ class PersonService extends BaseEntityService {
|
|
|
25425
25445
|
if (!source)
|
|
25426
25446
|
return undefined;
|
|
25427
25447
|
console.debug('TODO check isInstanceOf');
|
|
25428
|
-
if (!
|
|
25448
|
+
if (!(source instanceof Person)) {
|
|
25429
25449
|
source = Person.fromObject(source);
|
|
25430
25450
|
}
|
|
25431
25451
|
const target = source.asObject();
|
|
@@ -25436,7 +25456,7 @@ class PersonService extends BaseEntityService {
|
|
|
25436
25456
|
return target;
|
|
25437
25457
|
}
|
|
25438
25458
|
}
|
|
25439
|
-
PersonService.ɵprov =
|
|
25459
|
+
PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
25440
25460
|
PersonService.decorators = [
|
|
25441
25461
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
25442
25462
|
];
|
|
@@ -25467,7 +25487,7 @@ class PersonValidatorService {
|
|
|
25467
25487
|
return this.formBuilder.group(formConfig);
|
|
25468
25488
|
}
|
|
25469
25489
|
}
|
|
25470
|
-
PersonValidatorService.ɵprov =
|
|
25490
|
+
PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
25471
25491
|
PersonValidatorService.decorators = [
|
|
25472
25492
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
25473
25493
|
];
|
|
@@ -25661,16 +25681,16 @@ AdminModule.decorators = [
|
|
|
25661
25681
|
];
|
|
25662
25682
|
AdminModule.ctorParameters = () => [];
|
|
25663
25683
|
|
|
25664
|
-
const ɵ0 = {
|
|
25684
|
+
const ɵ0$c = {
|
|
25665
25685
|
profile: 'ADMIN'
|
|
25666
25686
|
};
|
|
25667
|
-
const routes
|
|
25687
|
+
const routes = [
|
|
25668
25688
|
{
|
|
25669
25689
|
path: 'users',
|
|
25670
25690
|
pathMatch: 'full',
|
|
25671
25691
|
component: UsersPage,
|
|
25672
25692
|
canActivate: [AuthGuardService],
|
|
25673
|
-
data: ɵ0
|
|
25693
|
+
data: ɵ0$c
|
|
25674
25694
|
}
|
|
25675
25695
|
];
|
|
25676
25696
|
class AdminRoutingModule {
|
|
@@ -25680,33 +25700,33 @@ AdminRoutingModule.decorators = [
|
|
|
25680
25700
|
imports: [
|
|
25681
25701
|
SharedRoutingModule,
|
|
25682
25702
|
AdminModule,
|
|
25683
|
-
RouterModule.forChild(routes
|
|
25703
|
+
RouterModule.forChild(routes)
|
|
25684
25704
|
],
|
|
25685
25705
|
exports: [RouterModule]
|
|
25686
25706
|
},] }
|
|
25687
25707
|
];
|
|
25688
25708
|
|
|
25689
|
-
const ErrorCodes = {
|
|
25709
|
+
const ErrorCodes$2 = {
|
|
25690
25710
|
LOAD_PERSONS_ERROR: 100,
|
|
25691
25711
|
SAVE_PERSONS_ERROR: 101,
|
|
25692
25712
|
DELETE_PERSONS_ERROR: 102,
|
|
25693
25713
|
};
|
|
25694
25714
|
|
|
25695
|
-
class EntityTestClass
|
|
25715
|
+
class EntityTestClass {
|
|
25696
25716
|
}
|
|
25697
|
-
const FAKE_ENTITIES
|
|
25717
|
+
const FAKE_ENTITIES = [
|
|
25698
25718
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
25699
25719
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
25700
25720
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
25701
25721
|
];
|
|
25702
|
-
function deepCopy
|
|
25722
|
+
function deepCopy(values, size) {
|
|
25703
25723
|
if (isNil(size)) {
|
|
25704
|
-
return (values || FAKE_ENTITIES
|
|
25724
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
25705
25725
|
}
|
|
25706
25726
|
let result = [];
|
|
25707
25727
|
let i = 1;
|
|
25708
25728
|
while (result.length < size) {
|
|
25709
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
25729
|
+
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
25710
25730
|
const name = entity.name + ' #' + i;
|
|
25711
25731
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
25712
25732
|
}));
|
|
@@ -25716,7 +25736,7 @@ function deepCopy$1(values, size) {
|
|
|
25716
25736
|
class AutocompleteTestPage {
|
|
25717
25737
|
constructor(formBuilder) {
|
|
25718
25738
|
this.formBuilder = formBuilder;
|
|
25719
|
-
this._items = deepCopy
|
|
25739
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
25720
25740
|
this._$items = new BehaviorSubject(undefined);
|
|
25721
25741
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
25722
25742
|
this.memoryHide = false;
|
|
@@ -25760,7 +25780,7 @@ class AutocompleteTestPage {
|
|
|
25760
25780
|
});
|
|
25761
25781
|
// From items
|
|
25762
25782
|
this.autocompleteFields.add('entity-items-large', {
|
|
25763
|
-
items: FAKE_ENTITIES
|
|
25783
|
+
items: FAKE_ENTITIES.slice(),
|
|
25764
25784
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
25765
25785
|
displayWith: this.entityToString
|
|
25766
25786
|
});
|
|
@@ -25770,12 +25790,12 @@ class AutocompleteTestPage {
|
|
|
25770
25790
|
loadData() {
|
|
25771
25791
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25772
25792
|
const data = {
|
|
25773
|
-
entity: deepCopy
|
|
25793
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
25774
25794
|
// This item is NOT in the items list => i should be displayed anyway
|
|
25775
25795
|
missingEntity: {
|
|
25776
25796
|
id: -1, label: '??', name: 'Missing item'
|
|
25777
25797
|
},
|
|
25778
|
-
disableEntity: deepCopy
|
|
25798
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
25779
25799
|
};
|
|
25780
25800
|
this.form.setValue(data);
|
|
25781
25801
|
// Load observables
|
|
@@ -25918,13 +25938,13 @@ LatLongTestPage.ctorParameters = () => [
|
|
|
25918
25938
|
{ type: FormBuilder }
|
|
25919
25939
|
];
|
|
25920
25940
|
|
|
25921
|
-
const moment$
|
|
25941
|
+
const moment$5 = momentImported;
|
|
25922
25942
|
class SwipeTestPage {
|
|
25923
25943
|
constructor(formBuilder, dateFormatPipe) {
|
|
25924
25944
|
this.formBuilder = formBuilder;
|
|
25925
25945
|
this.dateFormatPipe = dateFormatPipe;
|
|
25926
25946
|
this.$dates = new BehaviorSubject(undefined);
|
|
25927
|
-
this._today = moment$
|
|
25947
|
+
this._today = moment$5().startOf('day');
|
|
25928
25948
|
this.form = formBuilder.group({
|
|
25929
25949
|
empty: [null, Validators.required],
|
|
25930
25950
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -25937,7 +25957,7 @@ class SwipeTestPage {
|
|
|
25937
25957
|
ngOnInit() {
|
|
25938
25958
|
const dates = [];
|
|
25939
25959
|
for (let d = 0; d < 7; d++) {
|
|
25940
|
-
dates[d] = moment$
|
|
25960
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
25941
25961
|
}
|
|
25942
25962
|
this.$dates.next(dates);
|
|
25943
25963
|
this.loadData();
|
|
@@ -25978,7 +25998,7 @@ SwipeTestPage.ctorParameters = () => [
|
|
|
25978
25998
|
{ type: DateFormatPipe }
|
|
25979
25999
|
];
|
|
25980
26000
|
|
|
25981
|
-
const moment$
|
|
26001
|
+
const moment$6 = momentImported;
|
|
25982
26002
|
class DateTimeTestPage {
|
|
25983
26003
|
constructor(platform, formBuilder, cd) {
|
|
25984
26004
|
this.platform = platform;
|
|
@@ -26010,7 +26030,7 @@ class DateTimeTestPage {
|
|
|
26010
26030
|
// Load the form with data
|
|
26011
26031
|
loadData() {
|
|
26012
26032
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26013
|
-
const now = moment$
|
|
26033
|
+
const now = moment$6();
|
|
26014
26034
|
const data = {
|
|
26015
26035
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
26016
26036
|
enable: toDateISOString(now),
|
|
@@ -26071,9 +26091,9 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
26071
26091
|
{ type: ChangeDetectorRef }
|
|
26072
26092
|
];
|
|
26073
26093
|
|
|
26074
|
-
class EntityTestClass {
|
|
26094
|
+
class EntityTestClass$1 {
|
|
26075
26095
|
}
|
|
26076
|
-
const FAKE_ENTITIES = [
|
|
26096
|
+
const FAKE_ENTITIES$1 = [
|
|
26077
26097
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
26078
26098
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
26079
26099
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -26082,14 +26102,14 @@ const FAKE_ENTITIES = [
|
|
|
26082
26102
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
26083
26103
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
26084
26104
|
];
|
|
26085
|
-
function deepCopy(values, size) {
|
|
26105
|
+
function deepCopy$1(values, size) {
|
|
26086
26106
|
if (isNil(size)) {
|
|
26087
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
26107
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
26088
26108
|
}
|
|
26089
26109
|
let result = [];
|
|
26090
26110
|
let i = 1;
|
|
26091
26111
|
while (result.length < size) {
|
|
26092
|
-
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
26112
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
|
|
26093
26113
|
const name = entity.name + ' #' + i;
|
|
26094
26114
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
26095
26115
|
}));
|
|
@@ -26099,7 +26119,7 @@ function deepCopy(values, size) {
|
|
|
26099
26119
|
class ChipsTestPage {
|
|
26100
26120
|
constructor(formBuilder) {
|
|
26101
26121
|
this.formBuilder = formBuilder;
|
|
26102
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
26122
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
26103
26123
|
this._$items = new BehaviorSubject(undefined);
|
|
26104
26124
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
26105
26125
|
this.form = formBuilder.group({
|
|
@@ -26138,7 +26158,7 @@ class ChipsTestPage {
|
|
|
26138
26158
|
// Load the form with data
|
|
26139
26159
|
loadData() {
|
|
26140
26160
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26141
|
-
const items = deepCopy(FAKE_ENTITIES);
|
|
26161
|
+
const items = deepCopy$1(FAKE_ENTITIES$1);
|
|
26142
26162
|
const data = {
|
|
26143
26163
|
entity: items.slice(0, 1),
|
|
26144
26164
|
entityInitial: items.slice(1, 2),
|
|
@@ -26254,7 +26274,7 @@ NumpadTestPage.ctorParameters = () => [
|
|
|
26254
26274
|
{ type: FormBuilder }
|
|
26255
26275
|
];
|
|
26256
26276
|
|
|
26257
|
-
const moment = momentImported;
|
|
26277
|
+
const moment$7 = momentImported;
|
|
26258
26278
|
class DateTestPage {
|
|
26259
26279
|
constructor(platform, formBuilder, cd) {
|
|
26260
26280
|
this.platform = platform;
|
|
@@ -26288,7 +26308,7 @@ class DateTestPage {
|
|
|
26288
26308
|
// Load the form with data
|
|
26289
26309
|
loadData() {
|
|
26290
26310
|
return __awaiter(this, void 0, void 0, function* () {
|
|
26291
|
-
const now = moment();
|
|
26311
|
+
const now = moment$7();
|
|
26292
26312
|
const nowAtMahe = now.clone().tz(this.timezone).startOf('day');
|
|
26293
26313
|
const data = {
|
|
26294
26314
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
@@ -26366,7 +26386,7 @@ const SHARED_MATERIAL_TESTING_PAGES = [
|
|
|
26366
26386
|
{ label: 'Shared directives', divider: true },
|
|
26367
26387
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
26368
26388
|
];
|
|
26369
|
-
const routes$
|
|
26389
|
+
const routes$1 = [
|
|
26370
26390
|
{
|
|
26371
26391
|
path: '',
|
|
26372
26392
|
pathMatch: 'full',
|
|
@@ -26423,7 +26443,7 @@ MaterialTestingModule.decorators = [
|
|
|
26423
26443
|
ReactiveFormsModule,
|
|
26424
26444
|
SharedMaterialModule,
|
|
26425
26445
|
TranslateModule.forChild(),
|
|
26426
|
-
RouterModule.forChild(routes$
|
|
26446
|
+
RouterModule.forChild(routes$1)
|
|
26427
26447
|
],
|
|
26428
26448
|
declarations: [
|
|
26429
26449
|
DateTimeTestPage,
|
|
@@ -26484,7 +26504,7 @@ ToastTestingPage.ctorParameters = () => [
|
|
|
26484
26504
|
{ type: TranslateService }
|
|
26485
26505
|
];
|
|
26486
26506
|
|
|
26487
|
-
const routes$
|
|
26507
|
+
const routes$2 = [
|
|
26488
26508
|
{
|
|
26489
26509
|
path: 'toast',
|
|
26490
26510
|
pathMatch: 'full',
|
|
@@ -26499,7 +26519,7 @@ ToastTestingModule.decorators = [
|
|
|
26499
26519
|
CommonModule,
|
|
26500
26520
|
IonicModule,
|
|
26501
26521
|
TranslateModule.forChild(),
|
|
26502
|
-
RouterModule.forChild(routes$
|
|
26522
|
+
RouterModule.forChild(routes$2)
|
|
26503
26523
|
],
|
|
26504
26524
|
declarations: [
|
|
26505
26525
|
ToastTestingPage
|
|
@@ -26562,7 +26582,7 @@ UploadFileTestingPage.ctorParameters = () => [
|
|
|
26562
26582
|
{ type: PopoverController }
|
|
26563
26583
|
];
|
|
26564
26584
|
|
|
26565
|
-
const routes$
|
|
26585
|
+
const routes$3 = [
|
|
26566
26586
|
{
|
|
26567
26587
|
path: 'upload-file',
|
|
26568
26588
|
pathMatch: 'full',
|
|
@@ -26577,7 +26597,7 @@ UploadFileTestingModule.decorators = [
|
|
|
26577
26597
|
CommonModule,
|
|
26578
26598
|
IonicModule,
|
|
26579
26599
|
TranslateModule.forChild(),
|
|
26580
|
-
RouterModule.forChild(routes$
|
|
26600
|
+
RouterModule.forChild(routes$3)
|
|
26581
26601
|
],
|
|
26582
26602
|
declarations: [
|
|
26583
26603
|
UploadFileTestingPage
|
|
@@ -26958,7 +26978,7 @@ TextPopoverTestingPage.ctorParameters = () => [
|
|
|
26958
26978
|
{ type: PopoverController }
|
|
26959
26979
|
];
|
|
26960
26980
|
|
|
26961
|
-
const routes$
|
|
26981
|
+
const routes$4 = [
|
|
26962
26982
|
{
|
|
26963
26983
|
path: 'text-popover',
|
|
26964
26984
|
pathMatch: 'full',
|
|
@@ -26973,7 +26993,7 @@ TextPopoverTestingModule.decorators = [
|
|
|
26973
26993
|
CommonModule,
|
|
26974
26994
|
IonicModule,
|
|
26975
26995
|
TranslateModule.forChild(),
|
|
26976
|
-
RouterModule.forChild(routes$
|
|
26996
|
+
RouterModule.forChild(routes$4)
|
|
26977
26997
|
],
|
|
26978
26998
|
declarations: [
|
|
26979
26999
|
TextPopoverTestingPage
|
|
@@ -26990,7 +27010,7 @@ const CORE_TESTING_PAGES = [
|
|
|
26990
27010
|
{ label: 'Table', page: '/testing/core/table' },
|
|
26991
27011
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
26992
27012
|
];
|
|
26993
|
-
const routes = [
|
|
27013
|
+
const routes$5 = [
|
|
26994
27014
|
{
|
|
26995
27015
|
path: '',
|
|
26996
27016
|
pathMatch: 'full',
|
|
@@ -27014,7 +27034,7 @@ CoreTestingModule.decorators = [
|
|
|
27014
27034
|
imports: [
|
|
27015
27035
|
CommonModule,
|
|
27016
27036
|
TranslateModule.forChild(),
|
|
27017
|
-
RouterModule.forChild(routes),
|
|
27037
|
+
RouterModule.forChild(routes$5),
|
|
27018
27038
|
// Sub modules
|
|
27019
27039
|
TableTestingModule,
|
|
27020
27040
|
TextPopoverTestingModule
|
|
@@ -27034,5 +27054,5 @@ CoreTestingModule.decorators = [
|
|
|
27034
27054
|
* Generated bundle index. Do not edit.
|
|
27035
27055
|
*/
|
|
27036
27056
|
|
|
27037
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$
|
|
27057
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AndroidOsEnvironment, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, FormGetArrayPipe, FormGetControlPipe, FormGetGroupPipe, FormGetPipe, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedAsyncValidators, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrIncludesPipe, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isProgressEvent, isResponseEvent, isTouchUi, isWindows, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$1 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, DateTestPage as ɵj, NumpadTestPage as ɵk, MatBadgeIconTestPage as ɵl, ToastTestingModule as ɵm, ToastTestingPage as ɵn };
|
|
27038
27058
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|