@sumaris-net/ngx-components 0.13.14 → 0.14.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/ngx-sumaris-components.umd.js +305 -256
- package/bundles/ngx-sumaris-components.umd.js.map +1 -1
- package/bundles/ngx-sumaris-components.umd.min.js +2 -2
- package/bundles/ngx-sumaris-components.umd.min.js.map +1 -1
- package/esm2015/src/app/admin/users/list/users.js +1 -1
- package/esm2015/src/app/core/auth/form/form-auth.js +4 -9
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +12 -4
- package/esm2015/src/app/shared/material/datetime/material.date.js +2 -2
- package/esm2015/src/app/shared/material/datetime/material.dateshort.js +2 -2
- package/esm2015/src/app/shared/material/datetime/material.datetime.js +2 -2
- package/esm2015/src/app/shared/validator/validators.js +11 -1
- package/esm2015/src/environments/environment.class.js +1 -1
- package/esm2015/src/environments/environment.js +8 -1
- package/fesm2015/ngx-sumaris-components.js +303 -268
- package/fesm2015/ngx-sumaris-components.js.map +1 -1
- package/ngx-sumaris-components.metadata.json +1 -1
- package/package.json +1 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +3 -1
- package/src/app/shared/validator/validators.d.ts +5 -0
- package/src/environments/environment.class.d.ts +4 -0
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, Pipe, Injectable, Directive, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, Injector, Inject, Renderer2 } from '@angular/core';
|
|
3
|
+
import * as i1$3 from '@angular/common';
|
|
2
4
|
import { CommonModule, DOCUMENT, Location } from '@angular/common';
|
|
3
5
|
import { CdkTableModule } from '@angular/cdk/table';
|
|
4
6
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
5
7
|
import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
6
8
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
9
|
+
import * as i1$2 from '@angular/material/core';
|
|
7
10
|
import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
|
|
8
11
|
import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
|
|
9
12
|
import { MatSortModule, MatSort } from '@angular/material/sort';
|
|
@@ -27,16 +30,21 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
|
27
30
|
import { MatRadioModule } from '@angular/material/radio';
|
|
28
31
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
29
32
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
33
|
+
import * as i2$1 from '@angular/material/dialog';
|
|
30
34
|
import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
31
35
|
import { MatAutocompleteModule, MatAutocompleteTrigger, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
|
|
32
36
|
import { __awaiter, __decorate } from 'tslib';
|
|
37
|
+
import * as i1$6 from '@angular/forms';
|
|
33
38
|
import { NG_VALUE_ACCESSOR, FormGroupDirective, ReactiveFormsModule, AbstractControl, Validators, FormBuilder, FormControl, FormGroup, FormArray } from '@angular/forms';
|
|
34
39
|
import { fromEvent, Subscription, BehaviorSubject, Subject, isObservable, merge, of, timer, noop as noop$8, Observable, defer, concat, combineLatest, EMPTY } from 'rxjs';
|
|
35
40
|
import { filter, first, startWith, debounceTime, takeWhile, switchMap, tap, map, distinctUntilChanged, mergeMap, takeUntil, catchError, throttleTime } from 'rxjs/operators';
|
|
41
|
+
import * as i1$1 from '@ngx-translate/core';
|
|
36
42
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
43
|
+
import * as i1$4 from '@ionic/angular';
|
|
37
44
|
import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, IonicRouteStrategy, NavParams, AlertController, MenuController, IonContent } from '@ionic/angular';
|
|
38
45
|
import * as momentImported from 'moment';
|
|
39
46
|
import { isMoment } from 'moment';
|
|
47
|
+
import * as i1 from '@angular/material-moment-adapter';
|
|
40
48
|
import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
41
49
|
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
42
50
|
import { TextMaskModule } from 'angular2-text-mask';
|
|
@@ -46,32 +54,38 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
|
|
|
46
54
|
import { MatDividerModule } from '@angular/material/divider';
|
|
47
55
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
48
56
|
import { MatChipsModule } from '@angular/material/chips';
|
|
57
|
+
import * as i3$3 from '@angular/router';
|
|
49
58
|
import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
|
|
59
|
+
import * as i1$5 from '@angular/platform-browser';
|
|
50
60
|
import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
|
|
61
|
+
import * as i2$2 from '@angular/common/http';
|
|
51
62
|
import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
52
63
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
53
|
-
import { NativeAudio
|
|
54
|
-
import { Vibration
|
|
64
|
+
import { NativeAudio } from '@ionic-native/native-audio/ngx';
|
|
65
|
+
import { Vibration } from '@ionic-native/vibration/ngx';
|
|
55
66
|
import { AudioManagement } from '@ionic-native/audio-management/ngx';
|
|
56
|
-
import
|
|
57
|
-
import
|
|
58
|
-
import
|
|
67
|
+
import * as i2 from '@ionic-native/native-audio/ngx/index';
|
|
68
|
+
import * as i3 from '@ionic-native/vibration/ngx/index';
|
|
69
|
+
import * as i4 from '@ionic-native/audio-management/ngx/index';
|
|
59
70
|
import * as uuidv4Imported from 'uuid/v4';
|
|
60
71
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
61
72
|
import { MarkdownModule } from 'ngx-markdown';
|
|
62
73
|
import { sign, box, hash, verify } from 'tweetnacl';
|
|
74
|
+
import * as i3$1 from '@ionic/storage';
|
|
63
75
|
import { Storage, IonicStorageModule } from '@ionic/storage';
|
|
64
76
|
import 'zone.js/dist/zone-error';
|
|
65
|
-
import { SplashScreen
|
|
66
|
-
import { Connection, Network
|
|
67
|
-
import { CacheService
|
|
68
|
-
import
|
|
69
|
-
import
|
|
70
|
-
import
|
|
71
|
-
import { StatusBar
|
|
77
|
+
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
|
|
78
|
+
import { Connection, Network } from '@ionic-native/network/ngx';
|
|
79
|
+
import { CacheService, CacheModule } from 'ionic-cache';
|
|
80
|
+
import * as i6 from 'ionic-cache/dist/cache.service';
|
|
81
|
+
import * as i9 from '@ionic-native/network/ngx/index';
|
|
82
|
+
import * as i10 from '@ionic-native/splash-screen/ngx/index';
|
|
83
|
+
import { StatusBar } from '@ionic-native/status-bar/ngx';
|
|
84
|
+
import * as i2$4 from '@angular/cdk/platform';
|
|
72
85
|
import { Platform as Platform$1 } from '@angular/cdk/platform';
|
|
73
|
-
import { InAppBrowser
|
|
86
|
+
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
|
74
87
|
import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
|
|
88
|
+
import * as i2$3 from 'apollo-angular';
|
|
75
89
|
import { Apollo } from 'apollo-angular';
|
|
76
90
|
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
77
91
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
@@ -79,11 +93,12 @@ import { RetryLink } from '@apollo/client/link/retry';
|
|
|
79
93
|
import QueueLink from 'apollo-link-queue';
|
|
80
94
|
import SerializingLink from 'apollo-link-serialize';
|
|
81
95
|
import loggerLink from 'apollo-link-logger';
|
|
96
|
+
import * as i3$2 from 'apollo-angular/http';
|
|
82
97
|
import { HttpLink } from 'apollo-angular/http';
|
|
83
98
|
import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
|
|
84
|
-
import
|
|
85
|
-
import
|
|
86
|
-
import
|
|
99
|
+
import * as i14 from '@ionic-native/status-bar/ngx/index';
|
|
100
|
+
import * as i15 from '@ionic-native/keyboard/ngx/index';
|
|
101
|
+
import * as i17 from '@ionic-native/in-app-browser/ngx/index';
|
|
87
102
|
import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
|
|
88
103
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
89
104
|
import { NgxJdenticonModule } from 'ngx-jdenticon';
|
|
@@ -850,22 +865,23 @@ class MatAutocompleteConfigHolder {
|
|
|
850
865
|
return this.fields[fieldName] || this.add(fieldName);
|
|
851
866
|
}
|
|
852
867
|
}
|
|
853
|
-
const DEFAULT_VALUE_ACCESSOR = {
|
|
868
|
+
const DEFAULT_VALUE_ACCESSOR$6 = {
|
|
854
869
|
provide: NG_VALUE_ACCESSOR,
|
|
855
870
|
useExisting: forwardRef(() => MatAutocompleteField),
|
|
856
871
|
multi: true
|
|
857
872
|
};
|
|
858
|
-
const noop = () => { };
|
|
859
|
-
const ɵ0 = noop;
|
|
873
|
+
const noop$7 = () => { };
|
|
874
|
+
const ɵ0$a = noop$7;
|
|
860
875
|
class MatAutocompleteField {
|
|
861
876
|
constructor(cd, formGroupDir) {
|
|
862
877
|
this.cd = cd;
|
|
863
878
|
this.formGroupDir = formGroupDir;
|
|
864
|
-
this._onChangeCallback = noop;
|
|
865
|
-
this._onTouchedCallback = noop;
|
|
879
|
+
this._onChangeCallback = noop$7;
|
|
880
|
+
this._onTouchedCallback = noop$7;
|
|
866
881
|
this._subscription = new Subscription();
|
|
867
882
|
this._filter$ = new BehaviorSubject(undefined);
|
|
868
883
|
this._reload$ = new Subject();
|
|
884
|
+
this._readonly = false;
|
|
869
885
|
this.$inputItems = new BehaviorSubject(undefined);
|
|
870
886
|
this.$filteredItems = new BehaviorSubject(undefined);
|
|
871
887
|
this.displayValue = '';
|
|
@@ -873,7 +889,6 @@ class MatAutocompleteField {
|
|
|
873
889
|
this.logPrefix = '[mat-autocomplete] ';
|
|
874
890
|
this.formControlName = null;
|
|
875
891
|
this.required = false;
|
|
876
|
-
this.readonly = false;
|
|
877
892
|
this.clearable = false;
|
|
878
893
|
this.debounceTime = null;
|
|
879
894
|
this.highlightAccent = false;
|
|
@@ -908,6 +923,13 @@ class MatAutocompleteField {
|
|
|
908
923
|
get filter() {
|
|
909
924
|
return this._filter$.value;
|
|
910
925
|
}
|
|
926
|
+
set readonly(value) {
|
|
927
|
+
this._readonly = value;
|
|
928
|
+
this.markForCheck();
|
|
929
|
+
}
|
|
930
|
+
get readonly() {
|
|
931
|
+
return this._readonly;
|
|
932
|
+
}
|
|
911
933
|
set tabindex(value) {
|
|
912
934
|
this._tabindex = value;
|
|
913
935
|
this.markForCheck();
|
|
@@ -1176,6 +1198,7 @@ class MatAutocompleteField {
|
|
|
1176
1198
|
this._onTouchedCallback = fn;
|
|
1177
1199
|
}
|
|
1178
1200
|
setDisabledState(isDisabled) {
|
|
1201
|
+
this.enabled;
|
|
1179
1202
|
this.cd.markForCheck();
|
|
1180
1203
|
}
|
|
1181
1204
|
focus() {
|
|
@@ -1377,8 +1400,8 @@ MatAutocompleteField.decorators = [
|
|
|
1377
1400
|
{ type: Component, args: [{
|
|
1378
1401
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1379
1402
|
selector: 'mat-autocomplete-field',
|
|
1380
|
-
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <!-- readonly -->\n <ng-container *ngIf=\"
|
|
1381
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
1403
|
+
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <!-- readonly -->\n <ng-container *ngIf=\"_readonly; else writable\">\n <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\n </ng-container>\n\n <ng-template #writable>\n\n <!-- Basic select -->\n <mat-select #matSelect\n *ngIf=\"!searchable; else searchableTemplate\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\"\n [tabindex]=\"_tabindex\"\n [panelClass]=\"classList\"\n [style.width]=\"panelWidth\"\n (focus)=\"filterMatSelectFocusEvent($event)\"\n (blur)=\"filterMatSelectBlurEvent($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\">\n <mat-select-trigger>{{ displayWith(value) }}</mat-select-trigger>\n\n <!-- header -->\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as isLast\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n </ion-col>\n </ion-row>\n\n <!-- None option -->\n <mat-option *ngIf=\"!required\" class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding\">\n <ion-col class=\"ion-no-padding\">\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <ng-container *ngIf=\"$filteredItems | async; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <!-- options -->\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\">\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text>{{item | propertyGet: path }}</ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <a class=\"ion-padding mat-option \"\n *ngIf=\"_moreItemsCount\"\n (click)=\"_fetchMore$.emit($event)\" >\n <ion-label color=\"primary\" style=\"width: 100%;\">\n <span translate>COMMON.BTN_SHOW_MORE</span>\n <mat-icon class=\"ion-color-primary\">expand_more</mat-icon>\n </ion-label>\n </a>\n </ng-container>\n </mat-select>\n </ng-template>\n\n <!--\n NOTE :\n - \"selectInputContent($event) || onFocus.emit($event)\" : call onFocus only when to the input is empty (nothing to select)\n -->\n <ng-template #searchableTemplate>\n <input matInput #matInputText type=\"text\"\n [matAutocomplete]=\"autoComplete\"\n [matAutocompletePosition]=\"matAutocompletePosition\"\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [appAutofocus]=\"autofocus\"\n [tabindex]=\"_tabindex\"\n [required]=\"required\"\n (click)=\"onClick.emit($event)\"\n (focus)=\"filterInputTextFocusInEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keyup.arrowdown)=\"!autoComplete.showPanel && onDropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autoComplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\n [class.cdk-visually-hidden]=\"!searchable\"\n [panelWidth]=\"panelWidth\">\n\n <ion-row class=\"mat-autocomplete-header ion-no-padding\">\n <ion-col *ngFor=\"let attr of displayAttributes; index as i; last as last\" [size]=\"displayColumnSizes[i]\" >\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\n <ion-text color=\"light\" *ngIf=\"last && itemCount; let count \" class=\"ion-float-end ion-padding-end\"><i>{{'COMMON.RESULT_COUNT'|translate: {count: count} }}</i></ion-text>\n </ion-col>\n </ion-row>\n\n <ng-container *ngIf=\"$filteredItems | async; else loadingTemplate; let items\">\n <!-- No item option -->\n <mat-option *ngIf=\"items | isEmptyArray\" class=\"ion-padding text-italic\" disabled>\n <ion-label>{{noResultMessage | translate}}</ion-label>\n </mat-option>\n\n <mat-option *ngFor=\"let item of items\" [value]=\"item\" class=\"ion-no-padding\" >\n <ion-row [classList]=\"item.classList\">\n <ion-col *ngFor=\"let path of displayAttributes; index as i;\"\n [size]=\"displayColumnSizes[i]\">\n <ion-text [innerHTML]=\"item | propertyGet: path | highlight: { search: formControl.value, withAccent: highlightAccent }\"></ion-text>\n </ion-col>\n </ion-row>\n </mat-option>\n\n <!-- More item -->\n <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n\n <!-- Loading spinner -->\n <ng-template #loadingTemplate>\n <mat-option *ngIf=\"(matInputText.value | strLength) >= suggestLengthThreshold; else waitMoreCharacterTemplate\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-template>\n\n <!-- Need more characters -->\n <ng-template #waitMoreCharacterTemplate>\n <mat-option class=\"ion-padding text-italic\" disabled>\n <ion-label>\n {{'INFO.PLEASE_TYPE_MORE_CHARACTERS'|translate:{minLength: suggestLengthThreshold} }}\n </ion-label>\n </mat-option>\n </ng-template>\n </mat-autocomplete>\n\n </ng-template>\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"searchable\"\n (click)=\"onDropButtonClick.emit($event)\"\n [hidden]=\"disabled\">\n <mat-icon class=\"large select-arrow\">arrow_drop_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button tabindex=\"-1\"\n *ngIf=\"enabled && mobile && !searchable && !multiple\"\n [title]=\"'COMMON.BTN_SEARCH'|translate\"\n (click)=\"toggleSearch($event)\">\n <mat-icon>search</mat-icon>\n </button>\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 <ng-content matSuffix select=\"[matSuffix]\"></ng-content>\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 <ng-content select=\"[matError]\"></ng-content>\n\n </mat-form-field>\n </ion-col>\n <ion-col size=\"auto\" class=\"ion-align-self-center\">\n <ng-content select=\"[matAfter]\"></ng-content>\n </ion-col>\n </ion-row>\n\n</ion-grid>\n",
|
|
1404
|
+
providers: [DEFAULT_VALUE_ACCESSOR$6],
|
|
1382
1405
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1383
1406
|
styles: [":host{display:inline-block;position:relative}:host.ion-text-wrap ion-label{white-space:normal!important}button[hidden]{display:none}mat-icon.select-arrow{color:rgba(0,0,0,.47);font-size:150%}.fact-scroll-viewport{height:100%;width:100%}.fact-item{height:54px;display:flex}.fact-item .fact-date{min-width:100px;text-align:center;font-size:24pt}.fact-item .fact-date,.fact-item .fact-text{height:100%;align-items:center;justify-content:center;display:flex}.fact-item .fact-text{border-radius:10px}cdk-virtual-scroll-viewport{border:1px solid #000}cdk-virtual-scroll-viewport li{list-style:none}"]
|
|
1384
1407
|
},] }
|
|
@@ -1397,7 +1420,6 @@ MatAutocompleteField.propDecorators = {
|
|
|
1397
1420
|
suggestFn: [{ type: Input }],
|
|
1398
1421
|
required: [{ type: Input }],
|
|
1399
1422
|
mobile: [{ type: Input }],
|
|
1400
|
-
readonly: [{ type: Input }],
|
|
1401
1423
|
clearable: [{ type: Input }],
|
|
1402
1424
|
debounceTime: [{ type: Input }],
|
|
1403
1425
|
displayWith: [{ type: Input }],
|
|
@@ -1421,6 +1443,7 @@ MatAutocompleteField.propDecorators = {
|
|
|
1421
1443
|
showLoadingSpinner: [{ type: Input }],
|
|
1422
1444
|
animationsDisabled: [{ type: HostBinding, args: ['@.disabled',] }],
|
|
1423
1445
|
filter: [{ type: Input }],
|
|
1446
|
+
readonly: [{ type: Input }],
|
|
1424
1447
|
tabindex: [{ type: Input }],
|
|
1425
1448
|
items: [{ type: Input }],
|
|
1426
1449
|
onClick: [{ type: Output, args: ['click',] }],
|
|
@@ -1452,7 +1475,7 @@ class DateFormatPipe {
|
|
|
1452
1475
|
return this.dateAdapter.format(date, displayFormat);
|
|
1453
1476
|
}
|
|
1454
1477
|
}
|
|
1455
|
-
DateFormatPipe.ɵprov =
|
|
1478
|
+
DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
1456
1479
|
DateFormatPipe.decorators = [
|
|
1457
1480
|
{ type: Pipe, args: [{
|
|
1458
1481
|
name: 'dateFormat'
|
|
@@ -1464,7 +1487,7 @@ DateFormatPipe.ctorParameters = () => [
|
|
|
1464
1487
|
{ type: TranslateService }
|
|
1465
1488
|
];
|
|
1466
1489
|
|
|
1467
|
-
const moment = momentImported;
|
|
1490
|
+
const moment$6 = momentImported;
|
|
1468
1491
|
class DateDiffDurationPipe {
|
|
1469
1492
|
constructor(dateAdapter, translate) {
|
|
1470
1493
|
this.dateAdapter = dateAdapter;
|
|
@@ -1480,17 +1503,17 @@ class DateDiffDurationPipe {
|
|
|
1480
1503
|
return this.format(startDate, endDate);
|
|
1481
1504
|
}
|
|
1482
1505
|
format(startDate, endDate) {
|
|
1483
|
-
const duration = moment.duration(endDate.diff(startDate));
|
|
1506
|
+
const duration = moment$6.duration(endDate.diff(startDate));
|
|
1484
1507
|
if (duration.asMinutes() < 0)
|
|
1485
1508
|
return '';
|
|
1486
|
-
const timeDuration = moment(0)
|
|
1509
|
+
const timeDuration = moment$6(0)
|
|
1487
1510
|
.hour(duration.hours())
|
|
1488
1511
|
.minute(duration.minutes());
|
|
1489
1512
|
const days = Math.floor(duration.asDays());
|
|
1490
1513
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
|
|
1491
1514
|
}
|
|
1492
1515
|
}
|
|
1493
|
-
DateDiffDurationPipe.ɵprov =
|
|
1516
|
+
DateDiffDurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0.ɵɵinject(i1$2.DateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
1494
1517
|
DateDiffDurationPipe.decorators = [
|
|
1495
1518
|
{ type: Pipe, args: [{
|
|
1496
1519
|
name: 'dateDiffDuration'
|
|
@@ -1511,7 +1534,7 @@ class DateFromNowPipe {
|
|
|
1511
1534
|
return date ? date.fromNow(args && args.withoutSuffix) : '';
|
|
1512
1535
|
}
|
|
1513
1536
|
}
|
|
1514
|
-
DateFromNowPipe.ɵprov =
|
|
1537
|
+
DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
1515
1538
|
DateFromNowPipe.decorators = [
|
|
1516
1539
|
{ type: Pipe, args: [{
|
|
1517
1540
|
name: 'dateFromNow'
|
|
@@ -1580,7 +1603,7 @@ function formatToDD(value, opts) {
|
|
|
1580
1603
|
value *= -1;
|
|
1581
1604
|
}
|
|
1582
1605
|
}
|
|
1583
|
-
let degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
1606
|
+
let degrees = roundFloat$1(value, opts.maxDecimals).toString();
|
|
1584
1607
|
// Add sign
|
|
1585
1608
|
let sign = negative ? '-' : '+';
|
|
1586
1609
|
if (opts.placeholderChar) {
|
|
@@ -1631,7 +1654,7 @@ function formatToDDMMSS(value, opts) {
|
|
|
1631
1654
|
}
|
|
1632
1655
|
let degrees = Math.trunc(value);
|
|
1633
1656
|
let minutes = Math.trunc((value - degrees) * 60);
|
|
1634
|
-
let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1657
|
+
let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1635
1658
|
while (seconds >= 60) {
|
|
1636
1659
|
seconds -= 60;
|
|
1637
1660
|
minutes += 1;
|
|
@@ -1699,7 +1722,7 @@ function formatToDDMM(value, opts) {
|
|
|
1699
1722
|
}
|
|
1700
1723
|
}
|
|
1701
1724
|
let degrees = Math.trunc(value);
|
|
1702
|
-
let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
1725
|
+
let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
|
|
1703
1726
|
while (minutes >= 60) {
|
|
1704
1727
|
minutes -= 60;
|
|
1705
1728
|
degrees += 1;
|
|
@@ -1750,15 +1773,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
|
|
|
1750
1773
|
return NaN;
|
|
1751
1774
|
}
|
|
1752
1775
|
if (pattern === 'DD')
|
|
1753
|
-
return roundFloat(degrees, maxDecimals);
|
|
1776
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
1754
1777
|
const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
1755
1778
|
const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
1756
1779
|
const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
1757
1780
|
const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
1758
1781
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
1759
|
-
return roundFloat(degrees, maxDecimals);
|
|
1782
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
1760
1783
|
}
|
|
1761
|
-
function roundFloat(input, maxDecimals) {
|
|
1784
|
+
function roundFloat$1(input, maxDecimals) {
|
|
1762
1785
|
if (maxDecimals > 0) {
|
|
1763
1786
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
1764
1787
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -1778,7 +1801,7 @@ class LatLongFormatPipe {
|
|
|
1778
1801
|
return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
|
|
1779
1802
|
}
|
|
1780
1803
|
}
|
|
1781
|
-
LatLongFormatPipe.ɵprov =
|
|
1804
|
+
LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
1782
1805
|
LatLongFormatPipe.decorators = [
|
|
1783
1806
|
{ type: Pipe, args: [{
|
|
1784
1807
|
name: 'latLongFormat'
|
|
@@ -1790,7 +1813,7 @@ class LatitudeFormatPipe {
|
|
|
1790
1813
|
this.transform = formatLatitude;
|
|
1791
1814
|
}
|
|
1792
1815
|
}
|
|
1793
|
-
LatitudeFormatPipe.ɵprov =
|
|
1816
|
+
LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
1794
1817
|
LatitudeFormatPipe.decorators = [
|
|
1795
1818
|
{ type: Pipe, args: [{
|
|
1796
1819
|
name: 'latitudeFormat'
|
|
@@ -1802,7 +1825,7 @@ class LongitudeFormatPipe {
|
|
|
1802
1825
|
this.transform = formatLongitude;
|
|
1803
1826
|
}
|
|
1804
1827
|
}
|
|
1805
|
-
LongitudeFormatPipe.ɵprov =
|
|
1828
|
+
LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
1806
1829
|
LongitudeFormatPipe.decorators = [
|
|
1807
1830
|
{ type: Pipe, args: [{
|
|
1808
1831
|
name: 'longitudeFormat'
|
|
@@ -1822,7 +1845,7 @@ class NumberFormatPipe {
|
|
|
1822
1845
|
}
|
|
1823
1846
|
}
|
|
1824
1847
|
}
|
|
1825
|
-
NumberFormatPipe.ɵprov =
|
|
1848
|
+
NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
1826
1849
|
NumberFormatPipe.decorators = [
|
|
1827
1850
|
{ type: Pipe, args: [{
|
|
1828
1851
|
name: 'numberFormat'
|
|
@@ -1862,7 +1885,7 @@ class HighlightPipe {
|
|
|
1862
1885
|
}
|
|
1863
1886
|
}
|
|
1864
1887
|
}
|
|
1865
|
-
HighlightPipe.ɵprov =
|
|
1888
|
+
HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
1866
1889
|
HighlightPipe.decorators = [
|
|
1867
1890
|
{ type: Pipe, args: [{
|
|
1868
1891
|
name: 'highlight'
|
|
@@ -1927,7 +1950,7 @@ FileSizePipe.decorators = [
|
|
|
1927
1950
|
{ type: Pipe, args: [{ name: 'fileSize' },] }
|
|
1928
1951
|
];
|
|
1929
1952
|
|
|
1930
|
-
const moment$
|
|
1953
|
+
const moment$5 = momentImported;
|
|
1931
1954
|
const DATE_UNIX_TIMESTAMP = 'X';
|
|
1932
1955
|
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
1933
1956
|
class DateUtils {
|
|
@@ -1961,32 +1984,32 @@ function fromDateISOString(value) {
|
|
|
1961
1984
|
if (!value || isMoment(value))
|
|
1962
1985
|
return value;
|
|
1963
1986
|
// Parse the input value, as a ISO date time
|
|
1964
|
-
const date = moment$
|
|
1987
|
+
const date = moment$5(value, DATE_ISO_PATTERN);
|
|
1965
1988
|
if (date.isValid())
|
|
1966
1989
|
return date;
|
|
1967
1990
|
// Not valid: trying to convert from unix timestamp
|
|
1968
1991
|
if (typeof value === 'string') {
|
|
1969
1992
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
1970
1993
|
if (value.length === 10) {
|
|
1971
|
-
return moment$
|
|
1994
|
+
return moment$5(value, DATE_UNIX_TIMESTAMP);
|
|
1972
1995
|
}
|
|
1973
1996
|
else if (value.length === 13) {
|
|
1974
|
-
return moment$
|
|
1997
|
+
return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
|
|
1975
1998
|
}
|
|
1976
1999
|
}
|
|
1977
2000
|
console.warn('Unable to parse date: ' + value);
|
|
1978
2001
|
return undefined;
|
|
1979
2002
|
}
|
|
1980
2003
|
function fromUnixTimestamp(timeInSec) {
|
|
1981
|
-
return moment$
|
|
2004
|
+
return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
1982
2005
|
}
|
|
1983
2006
|
function fromUnixMsTimestamp(timeInMs) {
|
|
1984
|
-
return moment$
|
|
2007
|
+
return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
1985
2008
|
}
|
|
1986
2009
|
function toDuration(value, unit) {
|
|
1987
2010
|
if (!value)
|
|
1988
2011
|
return undefined;
|
|
1989
|
-
const duration = moment$
|
|
2012
|
+
const duration = moment$5.duration(value, unit);
|
|
1990
2013
|
// fix 990+ ms
|
|
1991
2014
|
if (duration.milliseconds() >= 990) {
|
|
1992
2015
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2015,7 +2038,7 @@ class DurationPipe {
|
|
|
2015
2038
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
|
|
2016
2039
|
}
|
|
2017
2040
|
}
|
|
2018
|
-
DurationPipe.ɵprov =
|
|
2041
|
+
DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2019
2042
|
DurationPipe.decorators = [
|
|
2020
2043
|
{ type: Pipe, args: [{
|
|
2021
2044
|
name: 'duration'
|
|
@@ -2036,7 +2059,7 @@ class MathAbsPipe {
|
|
|
2036
2059
|
}
|
|
2037
2060
|
}
|
|
2038
2061
|
}
|
|
2039
|
-
MathAbsPipe.ɵprov =
|
|
2062
|
+
MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2040
2063
|
MathAbsPipe.decorators = [
|
|
2041
2064
|
{ type: Pipe, args: [{
|
|
2042
2065
|
name: 'mathAbs'
|
|
@@ -2048,7 +2071,7 @@ class EvenPipe {
|
|
|
2048
2071
|
return val % 2 === 0;
|
|
2049
2072
|
}
|
|
2050
2073
|
}
|
|
2051
|
-
EvenPipe.ɵprov =
|
|
2074
|
+
EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2052
2075
|
EvenPipe.decorators = [
|
|
2053
2076
|
{ type: Pipe, args: [{
|
|
2054
2077
|
name: 'even'
|
|
@@ -2060,7 +2083,7 @@ class OddPipe {
|
|
|
2060
2083
|
return val % 2 !== 0;
|
|
2061
2084
|
}
|
|
2062
2085
|
}
|
|
2063
|
-
OddPipe.ɵprov =
|
|
2086
|
+
OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2064
2087
|
OddPipe.decorators = [
|
|
2065
2088
|
{ type: Pipe, args: [{
|
|
2066
2089
|
name: 'odd'
|
|
@@ -2168,7 +2191,7 @@ class MapGetPipe {
|
|
|
2168
2191
|
return val[key];
|
|
2169
2192
|
}
|
|
2170
2193
|
}
|
|
2171
|
-
MapGetPipe.ɵprov =
|
|
2194
|
+
MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2172
2195
|
MapGetPipe.decorators = [
|
|
2173
2196
|
{ type: Pipe, args: [{
|
|
2174
2197
|
name: 'mapGet'
|
|
@@ -2182,7 +2205,7 @@ class MapKeysPipe {
|
|
|
2182
2205
|
return Object.keys(map);
|
|
2183
2206
|
}
|
|
2184
2207
|
}
|
|
2185
|
-
MapKeysPipe.ɵprov =
|
|
2208
|
+
MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2186
2209
|
MapKeysPipe.decorators = [
|
|
2187
2210
|
{ type: Pipe, args: [{
|
|
2188
2211
|
name: 'mapKeys'
|
|
@@ -2196,7 +2219,7 @@ class MapValuesPipe {
|
|
|
2196
2219
|
return Object.values(map);
|
|
2197
2220
|
}
|
|
2198
2221
|
}
|
|
2199
|
-
MapValuesPipe.ɵprov =
|
|
2222
|
+
MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2200
2223
|
MapValuesPipe.decorators = [
|
|
2201
2224
|
{ type: Pipe, args: [{
|
|
2202
2225
|
name: 'mapValues'
|
|
@@ -2209,7 +2232,7 @@ class IsNotNilOrBlankPipe {
|
|
|
2209
2232
|
return isNotNilOrBlank(value);
|
|
2210
2233
|
}
|
|
2211
2234
|
}
|
|
2212
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
2235
|
+
IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2213
2236
|
IsNotNilOrBlankPipe.decorators = [
|
|
2214
2237
|
{ type: Pipe, args: [{
|
|
2215
2238
|
name: 'isNotNilOrBlank'
|
|
@@ -2221,7 +2244,7 @@ class IsNilOrBlankPipe {
|
|
|
2221
2244
|
return isNilOrBlank(value);
|
|
2222
2245
|
}
|
|
2223
2246
|
}
|
|
2224
|
-
IsNilOrBlankPipe.ɵprov =
|
|
2247
|
+
IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2225
2248
|
IsNilOrBlankPipe.decorators = [
|
|
2226
2249
|
{ type: Pipe, args: [{
|
|
2227
2250
|
name: 'isNilOrBlank'
|
|
@@ -2233,7 +2256,7 @@ class ToStringPipe {
|
|
|
2233
2256
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
2234
2257
|
}
|
|
2235
2258
|
}
|
|
2236
|
-
ToStringPipe.ɵprov =
|
|
2259
|
+
ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2237
2260
|
ToStringPipe.decorators = [
|
|
2238
2261
|
{ type: Pipe, args: [{
|
|
2239
2262
|
name: 'toString'
|
|
@@ -2245,7 +2268,7 @@ class StrLengthPipe {
|
|
|
2245
2268
|
return value && value.length || 0;
|
|
2246
2269
|
}
|
|
2247
2270
|
}
|
|
2248
|
-
StrLengthPipe.ɵprov =
|
|
2271
|
+
StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2249
2272
|
StrLengthPipe.decorators = [
|
|
2250
2273
|
{ type: Pipe, args: [{
|
|
2251
2274
|
name: 'strLength'
|
|
@@ -2296,7 +2319,7 @@ class TranslateContextService {
|
|
|
2296
2319
|
: parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
|
|
2297
2320
|
}
|
|
2298
2321
|
}
|
|
2299
|
-
TranslateContextService.ɵprov =
|
|
2322
|
+
TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
2300
2323
|
TranslateContextService.decorators = [
|
|
2301
2324
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2302
2325
|
];
|
|
@@ -2312,7 +2335,7 @@ class TranslateContextPipe {
|
|
|
2312
2335
|
return this.translateContext.instant(key, context);
|
|
2313
2336
|
}
|
|
2314
2337
|
}
|
|
2315
|
-
TranslateContextPipe.ɵprov =
|
|
2338
|
+
TranslateContextPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
|
|
2316
2339
|
TranslateContextPipe.decorators = [
|
|
2317
2340
|
{ type: Pipe, args: [{
|
|
2318
2341
|
name: 'translateContext'
|
|
@@ -2329,7 +2352,7 @@ class TranslatablePipe {
|
|
|
2329
2352
|
return (_a = changeCaseToUnderscore(value)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
2330
2353
|
}
|
|
2331
2354
|
}
|
|
2332
|
-
TranslatablePipe.ɵprov =
|
|
2355
|
+
TranslatablePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
|
|
2333
2356
|
TranslatablePipe.decorators = [
|
|
2334
2357
|
{ type: Pipe, args: [{
|
|
2335
2358
|
name: 'translatable'
|
|
@@ -2346,7 +2369,7 @@ class PropertyGetPipe {
|
|
|
2346
2369
|
args && args.defaultValue);
|
|
2347
2370
|
}
|
|
2348
2371
|
}
|
|
2349
|
-
PropertyGetPipe.ɵprov =
|
|
2372
|
+
PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
2350
2373
|
PropertyGetPipe.decorators = [
|
|
2351
2374
|
{ type: Pipe, args: [{
|
|
2352
2375
|
name: 'propertyGet'
|
|
@@ -2590,12 +2613,12 @@ SharedMatAutocompleteModule.decorators = [
|
|
|
2590
2613
|
},] }
|
|
2591
2614
|
];
|
|
2592
2615
|
|
|
2593
|
-
const moment$
|
|
2616
|
+
const moment$4 = momentImported;
|
|
2594
2617
|
// @dynamic
|
|
2595
2618
|
class SharedValidators {
|
|
2596
2619
|
static validDate(control) {
|
|
2597
2620
|
const value = control.value;
|
|
2598
|
-
const date = !value || moment$
|
|
2621
|
+
const date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
|
|
2599
2622
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
2600
2623
|
return { validDate: true };
|
|
2601
2624
|
}
|
|
@@ -2889,6 +2912,16 @@ class SharedFormGroupValidators {
|
|
|
2889
2912
|
return null;
|
|
2890
2913
|
};
|
|
2891
2914
|
}
|
|
2915
|
+
/**
|
|
2916
|
+
* Same as compose, but keep only the first errors (instead of the union)
|
|
2917
|
+
* @param validators
|
|
2918
|
+
*/
|
|
2919
|
+
first(validators) {
|
|
2920
|
+
return (control) => validators
|
|
2921
|
+
.filter(isNotNil)
|
|
2922
|
+
.map(validator => validator(control))
|
|
2923
|
+
.find(isNotNil) || null;
|
|
2924
|
+
}
|
|
2892
2925
|
}
|
|
2893
2926
|
// @dynamic
|
|
2894
2927
|
class SharedFormArrayValidators {
|
|
@@ -2998,9 +3031,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
|
|
|
2998
3031
|
const hour = parseInt(durationParts[0] || '0');
|
|
2999
3032
|
const minute = parseInt(durationParts[1] || '0');
|
|
3000
3033
|
const value = hour + (minute + 0.5) / 60;
|
|
3001
|
-
return roundFloat
|
|
3034
|
+
return roundFloat(value, maxDecimals);
|
|
3002
3035
|
}
|
|
3003
|
-
function roundFloat
|
|
3036
|
+
function roundFloat(input, maxDecimals) {
|
|
3004
3037
|
if (maxDecimals > 0) {
|
|
3005
3038
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
3006
3039
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -3024,9 +3057,9 @@ const MASKS = {
|
|
|
3024
3057
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
3025
3058
|
}
|
|
3026
3059
|
};
|
|
3027
|
-
const noop$
|
|
3060
|
+
const noop$6 = () => {
|
|
3028
3061
|
};
|
|
3029
|
-
const ɵ0$
|
|
3062
|
+
const ɵ0$9 = noop$6;
|
|
3030
3063
|
class MatLatLongField {
|
|
3031
3064
|
constructor(platform, translate, formBuilder, cd, formGroupDir) {
|
|
3032
3065
|
this.platform = platform;
|
|
@@ -3034,8 +3067,8 @@ class MatLatLongField {
|
|
|
3034
3067
|
this.formBuilder = formBuilder;
|
|
3035
3068
|
this.cd = cd;
|
|
3036
3069
|
this.formGroupDir = formGroupDir;
|
|
3037
|
-
this._onChangeCallback = noop$
|
|
3038
|
-
this._onTouchedCallback = noop$
|
|
3070
|
+
this._onChangeCallback = noop$6;
|
|
3071
|
+
this._onTouchedCallback = noop$6;
|
|
3039
3072
|
this._subscription = new Subscription();
|
|
3040
3073
|
this.disabling = false;
|
|
3041
3074
|
this.writing = false;
|
|
@@ -3376,14 +3409,14 @@ SharedMatLatLongModule.decorators = [
|
|
|
3376
3409
|
},] }
|
|
3377
3410
|
];
|
|
3378
3411
|
|
|
3379
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
3412
|
+
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
3380
3413
|
provide: NG_VALUE_ACCESSOR,
|
|
3381
3414
|
useExisting: forwardRef(() => MatDate),
|
|
3382
3415
|
multi: true
|
|
3383
3416
|
};
|
|
3384
|
-
const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
3385
|
-
const noop$
|
|
3386
|
-
const ɵ0$
|
|
3417
|
+
const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
3418
|
+
const noop$5 = () => { };
|
|
3419
|
+
const ɵ0$8 = noop$5;
|
|
3387
3420
|
class MatDate {
|
|
3388
3421
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
3389
3422
|
this.dateAdapter = dateAdapter;
|
|
@@ -3392,12 +3425,12 @@ class MatDate {
|
|
|
3392
3425
|
this.cd = cd;
|
|
3393
3426
|
this.keyboard = keyboard;
|
|
3394
3427
|
this.formGroupDir = formGroupDir;
|
|
3395
|
-
this._onChangeCallback = noop$
|
|
3396
|
-
this._onTouchedCallback = noop$
|
|
3428
|
+
this._onChangeCallback = noop$5;
|
|
3429
|
+
this._onTouchedCallback = noop$5;
|
|
3397
3430
|
this._subscription = new Subscription();
|
|
3398
3431
|
this.writing = true;
|
|
3399
3432
|
this.disabling = false;
|
|
3400
|
-
this.dayMask = DAY_MASK;
|
|
3433
|
+
this.dayMask = DAY_MASK$2;
|
|
3401
3434
|
this.disabled = false;
|
|
3402
3435
|
this.floatLabel = 'auto';
|
|
3403
3436
|
this.readonly = false;
|
|
@@ -3632,9 +3665,9 @@ class MatDate {
|
|
|
3632
3665
|
MatDate.decorators = [
|
|
3633
3666
|
{ type: Component, args: [{
|
|
3634
3667
|
selector: 'mat-date-field',
|
|
3635
|
-
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors
|
|
3668
|
+
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors.msg}}</mat-error>\n </mat-form-field>\n\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n\n",
|
|
3636
3669
|
providers: [
|
|
3637
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
3670
|
+
DEFAULT_VALUE_ACCESSOR$5,
|
|
3638
3671
|
],
|
|
3639
3672
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
3640
3673
|
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%}"]
|
|
@@ -3667,17 +3700,17 @@ MatDate.propDecorators = {
|
|
|
3667
3700
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
3668
3701
|
};
|
|
3669
3702
|
|
|
3670
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
3703
|
+
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
3671
3704
|
provide: NG_VALUE_ACCESSOR,
|
|
3672
3705
|
useExisting: forwardRef(() => MatDateTime),
|
|
3673
3706
|
multi: true
|
|
3674
3707
|
};
|
|
3675
3708
|
const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
3676
3709
|
const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
3677
|
-
const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
3678
|
-
const noop$
|
|
3710
|
+
const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
3711
|
+
const noop$4 = () => {
|
|
3679
3712
|
};
|
|
3680
|
-
const ɵ0$
|
|
3713
|
+
const ɵ0$7 = noop$4;
|
|
3681
3714
|
class MatDateTime {
|
|
3682
3715
|
constructor(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
|
|
3683
3716
|
this.platform = platform;
|
|
@@ -3687,14 +3720,14 @@ class MatDateTime {
|
|
|
3687
3720
|
this.keyboard = keyboard;
|
|
3688
3721
|
this.cd = cd;
|
|
3689
3722
|
this.formGroupDir = formGroupDir;
|
|
3690
|
-
this._onChangeCallback = noop$
|
|
3691
|
-
this._onTouchedCallback = noop$
|
|
3723
|
+
this._onChangeCallback = noop$4;
|
|
3724
|
+
this._onTouchedCallback = noop$4;
|
|
3692
3725
|
this._subscription = new Subscription();
|
|
3693
3726
|
this.writing = true;
|
|
3694
3727
|
this.disabling = false;
|
|
3695
3728
|
this._onDestroy = new EventEmitter();
|
|
3696
3729
|
this.dayMask = DAY_MASK$1;
|
|
3697
|
-
this.hourMask = HOUR_MASK;
|
|
3730
|
+
this.hourMask = HOUR_MASK$1;
|
|
3698
3731
|
this.floatLabel = 'auto';
|
|
3699
3732
|
this.readonly = false;
|
|
3700
3733
|
this.compact = false;
|
|
@@ -3998,9 +4031,9 @@ class MatDateTime {
|
|
|
3998
4031
|
MatDateTime.decorators = [
|
|
3999
4032
|
{ type: Component, args: [{
|
|
4000
4033
|
selector: 'mat-date-time-field',
|
|
4001
|
-
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\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><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dateFormControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dateFormControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix #datePickerButton2 (click)=\"openDatePicker($event, datePicker)\" [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{formControl.errors.msg}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (timeFormControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"timeFormControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"timeFormControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"timeFormControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n",
|
|
4034
|
+
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\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><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dateFormControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dateFormControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix #datePickerButton2 (click)=\"openDatePicker($event, datePicker)\" [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (timeFormControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"timeFormControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"timeFormControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"timeFormControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n",
|
|
4002
4035
|
providers: [
|
|
4003
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4036
|
+
DEFAULT_VALUE_ACCESSOR$4,
|
|
4004
4037
|
],
|
|
4005
4038
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4006
4039
|
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%}"]
|
|
@@ -4039,10 +4072,10 @@ const DEFAULT_VALUE_ACCESSOR$3 = {
|
|
|
4039
4072
|
useExisting: forwardRef(() => MatDateShort),
|
|
4040
4073
|
multi: true
|
|
4041
4074
|
};
|
|
4042
|
-
const DAY_MASK
|
|
4043
|
-
const noop$
|
|
4075
|
+
const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
4076
|
+
const noop$3 = () => {
|
|
4044
4077
|
};
|
|
4045
|
-
const ɵ0$
|
|
4078
|
+
const ɵ0$6 = noop$3;
|
|
4046
4079
|
class MatDateShort {
|
|
4047
4080
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4048
4081
|
this.dateAdapter = dateAdapter;
|
|
@@ -4051,11 +4084,11 @@ class MatDateShort {
|
|
|
4051
4084
|
this.cd = cd;
|
|
4052
4085
|
this.keyboard = keyboard;
|
|
4053
4086
|
this.formGroupDir = formGroupDir;
|
|
4054
|
-
this._onChangeCallback = noop$
|
|
4055
|
-
this._onTouchedCallback = noop$
|
|
4087
|
+
this._onChangeCallback = noop$3;
|
|
4088
|
+
this._onTouchedCallback = noop$3;
|
|
4056
4089
|
this.writing = true;
|
|
4057
4090
|
this.disabling = false;
|
|
4058
|
-
this.dayMask = DAY_MASK
|
|
4091
|
+
this.dayMask = DAY_MASK;
|
|
4059
4092
|
this.disabled = false;
|
|
4060
4093
|
this.floatLabel = 'auto';
|
|
4061
4094
|
this.readonly = false;
|
|
@@ -4298,7 +4331,7 @@ class MatDateShort {
|
|
|
4298
4331
|
MatDateShort.decorators = [
|
|
4299
4332
|
{ type: Component, args: [{
|
|
4300
4333
|
selector: 'mat-date-short-field',
|
|
4301
|
-
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
|
|
4334
|
+
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",
|
|
4302
4335
|
providers: [
|
|
4303
4336
|
DEFAULT_VALUE_ACCESSOR$3,
|
|
4304
4337
|
],
|
|
@@ -4368,16 +4401,16 @@ SharedMatDateTimeModule.decorators = [
|
|
|
4368
4401
|
},] }
|
|
4369
4402
|
];
|
|
4370
4403
|
|
|
4371
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4404
|
+
const DEFAULT_VALUE_ACCESSOR$2 = {
|
|
4372
4405
|
provide: NG_VALUE_ACCESSOR,
|
|
4373
4406
|
useExisting: forwardRef(() => MatDuration),
|
|
4374
4407
|
multi: true
|
|
4375
4408
|
};
|
|
4376
4409
|
const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
4377
|
-
const HOUR_MASK
|
|
4378
|
-
const noop$
|
|
4410
|
+
const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
4411
|
+
const noop$2 = () => {
|
|
4379
4412
|
};
|
|
4380
|
-
const ɵ0$5 = noop$
|
|
4413
|
+
const ɵ0$5 = noop$2;
|
|
4381
4414
|
class MatDuration {
|
|
4382
4415
|
constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
4383
4416
|
this.dateAdapter = dateAdapter;
|
|
@@ -4386,11 +4419,11 @@ class MatDuration {
|
|
|
4386
4419
|
this.cd = cd;
|
|
4387
4420
|
this.formGroupDir = formGroupDir;
|
|
4388
4421
|
this._subscription = new Subscription();
|
|
4389
|
-
this._onChangeCallback = noop$
|
|
4390
|
-
this._onTouchedCallback = noop$
|
|
4422
|
+
this._onChangeCallback = noop$2;
|
|
4423
|
+
this._onTouchedCallback = noop$2;
|
|
4391
4424
|
this.writing = true;
|
|
4392
4425
|
this.disabling = false;
|
|
4393
|
-
this.hourMask = HOUR_MASK
|
|
4426
|
+
this.hourMask = HOUR_MASK;
|
|
4394
4427
|
this.disabled = false;
|
|
4395
4428
|
this.floatLabel = 'auto';
|
|
4396
4429
|
this.readonly = false;
|
|
@@ -4570,7 +4603,7 @@ MatDuration.decorators = [
|
|
|
4570
4603
|
selector: 'mat-duration-field',
|
|
4571
4604
|
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",
|
|
4572
4605
|
providers: [
|
|
4573
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4606
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
4574
4607
|
],
|
|
4575
4608
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4576
4609
|
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%}"]
|
|
@@ -4627,22 +4660,22 @@ SharedMatDurationModule.decorators = [
|
|
|
4627
4660
|
},] }
|
|
4628
4661
|
];
|
|
4629
4662
|
|
|
4630
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4663
|
+
const DEFAULT_VALUE_ACCESSOR$1 = {
|
|
4631
4664
|
provide: NG_VALUE_ACCESSOR,
|
|
4632
4665
|
useExisting: forwardRef(() => MatBooleanField),
|
|
4633
4666
|
multi: true
|
|
4634
4667
|
};
|
|
4635
|
-
const noop$
|
|
4668
|
+
const noop$1 = () => {
|
|
4636
4669
|
};
|
|
4637
|
-
const ɵ0$
|
|
4670
|
+
const ɵ0$4 = noop$1;
|
|
4638
4671
|
class MatBooleanField {
|
|
4639
4672
|
constructor(translate, formBuilder, cd, formGroupDir) {
|
|
4640
4673
|
this.translate = translate;
|
|
4641
4674
|
this.formBuilder = formBuilder;
|
|
4642
4675
|
this.cd = cd;
|
|
4643
4676
|
this.formGroupDir = formGroupDir;
|
|
4644
|
-
this._onChangeCallback = noop$
|
|
4645
|
-
this._onTouchedCallback = noop$
|
|
4677
|
+
this._onChangeCallback = noop$1;
|
|
4678
|
+
this._onTouchedCallback = noop$1;
|
|
4646
4679
|
this._writing = false;
|
|
4647
4680
|
this.showRadio = false;
|
|
4648
4681
|
this.disabled = false;
|
|
@@ -4806,7 +4839,7 @@ MatBooleanField.decorators = [
|
|
|
4806
4839
|
selector: 'mat-boolean-field',
|
|
4807
4840
|
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value ? 'COMMON.YES' : 'COMMON.NO') | translate }}</ion-text>\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\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{'COMMON.YES'|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n\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 translate>COMMON.YES</span>\n </mat-radio-button> \n <mat-radio-button #noButton [value]=\"false\">\n <span translate>COMMON.NO</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\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\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n\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 <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\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\">\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <ion-grid class=\"ion-no-padding\" *ngIf=\"!formControl.disabled; else disabledLabel\">\n <ion-row class=\"ion-no-padding\">\n <!-- Yes button -->\n <ion-col>\n <ion-button style=\"width: 100%;\"\n class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'danger' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon slot=\"start\" name=\"checkmark\"></ion-icon>\n {{'COMMON.YES'|translate}}\n </ion-button>\n </ion-col>\n <!-- No button -->\n <ion-col>\n <ion-button style=\"width: 100%;\"\n 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 ? 'danger' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon slot=\"start\" name=\"close\"></ion-icon>\n {{'COMMON.NO'|translate}}\n </ion-button>\n </ion-col>\n </ion-row>\n </ion-grid>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <div matSuffix #injectMatSuffix></div>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n </mat-form-field>\n </ng-container>\n\n <div class=\"cdk-visually-hidden\">\n <div #suffix><ng-content select=\"[matSuffix]\"></ng-content></div>\n </div>\n\n</ng-template>\n\n\n",
|
|
4808
4841
|
providers: [
|
|
4809
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4842
|
+
DEFAULT_VALUE_ACCESSOR$1
|
|
4810
4843
|
],
|
|
4811
4844
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4812
4845
|
styles: [":host{width:100%}"]
|
|
@@ -5047,7 +5080,7 @@ class MatNumpadDomService {
|
|
|
5047
5080
|
this.appRef.detachView(this.componentRef.hostView);
|
|
5048
5081
|
}
|
|
5049
5082
|
}
|
|
5050
|
-
MatNumpadDomService.ɵprov =
|
|
5083
|
+
MatNumpadDomService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1$3.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
5051
5084
|
MatNumpadDomService.decorators = [
|
|
5052
5085
|
{ type: Injectable, args: [{
|
|
5053
5086
|
providedIn: 'root'
|
|
@@ -5411,7 +5444,7 @@ SharedMatNumpadModule.decorators = [
|
|
|
5411
5444
|
},] }
|
|
5412
5445
|
];
|
|
5413
5446
|
|
|
5414
|
-
const DEFAULT_VALUE_ACCESSOR
|
|
5447
|
+
const DEFAULT_VALUE_ACCESSOR = {
|
|
5415
5448
|
provide: NG_VALUE_ACCESSOR,
|
|
5416
5449
|
useExisting: forwardRef(() => MatSwipeField),
|
|
5417
5450
|
multi: true
|
|
@@ -5674,7 +5707,7 @@ MatSwipeField.decorators = [
|
|
|
5674
5707
|
{ type: Component, args: [{
|
|
5675
5708
|
selector: 'mat-swipe-field',
|
|
5676
5709
|
template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\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",
|
|
5677
|
-
providers: [DEFAULT_VALUE_ACCESSOR
|
|
5710
|
+
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
5678
5711
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5679
5712
|
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}"]
|
|
5680
5713
|
},] }
|
|
@@ -6169,7 +6202,7 @@ class ProgressBarService {
|
|
|
6169
6202
|
}
|
|
6170
6203
|
}
|
|
6171
6204
|
}
|
|
6172
|
-
ProgressBarService.ɵprov =
|
|
6205
|
+
ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
6173
6206
|
ProgressBarService.decorators = [
|
|
6174
6207
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
6175
6208
|
];
|
|
@@ -6213,7 +6246,7 @@ class AppGestureConfig extends HammerGestureConfig {
|
|
|
6213
6246
|
return mc;
|
|
6214
6247
|
}
|
|
6215
6248
|
}
|
|
6216
|
-
AppGestureConfig.ɵprov =
|
|
6249
|
+
AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
6217
6250
|
AppGestureConfig.decorators = [
|
|
6218
6251
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
6219
6252
|
];
|
|
@@ -6436,7 +6469,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
|
|
|
6436
6469
|
this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
|
|
6437
6470
|
}
|
|
6438
6471
|
}
|
|
6439
|
-
MatPaginatorI18n.ɵprov =
|
|
6472
|
+
MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
6440
6473
|
MatPaginatorI18n.decorators = [
|
|
6441
6474
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
6442
6475
|
];
|
|
@@ -6526,17 +6559,17 @@ function getColorContrast(color, bw) {
|
|
|
6526
6559
|
return rgbArrayToHex(rgb.map(v => 255 - v));
|
|
6527
6560
|
}
|
|
6528
6561
|
|
|
6529
|
-
const noop
|
|
6562
|
+
const noop = () => {
|
|
6530
6563
|
};
|
|
6531
|
-
const ɵ0$
|
|
6564
|
+
const ɵ0$3 = noop;
|
|
6532
6565
|
class AppFormField {
|
|
6533
6566
|
constructor(translate, cd, injector, formGroupDir) {
|
|
6534
6567
|
this.translate = translate;
|
|
6535
6568
|
this.cd = cd;
|
|
6536
6569
|
this.injector = injector;
|
|
6537
6570
|
this.formGroupDir = formGroupDir;
|
|
6538
|
-
this._onChangeCallback = noop
|
|
6539
|
-
this._onTouchedCallback = noop
|
|
6571
|
+
this._onChangeCallback = noop;
|
|
6572
|
+
this._onTouchedCallback = noop;
|
|
6540
6573
|
this.readonly = false;
|
|
6541
6574
|
this.compact = false;
|
|
6542
6575
|
this.floatLabel = 'auto';
|
|
@@ -6907,14 +6940,14 @@ class AudioProvider {
|
|
|
6907
6940
|
});
|
|
6908
6941
|
}
|
|
6909
6942
|
}
|
|
6910
|
-
AudioProvider.ɵprov =
|
|
6943
|
+
AudioProvider.ɵprov = i0.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2.NativeAudio, 8), i0.ɵɵinject(i3.Vibration, 8), i0.ɵɵinject(i4.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
6911
6944
|
AudioProvider.decorators = [
|
|
6912
6945
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
6913
6946
|
];
|
|
6914
6947
|
AudioProvider.ctorParameters = () => [
|
|
6915
6948
|
{ type: Platform },
|
|
6916
|
-
{ type: NativeAudio
|
|
6917
|
-
{ type: Vibration
|
|
6949
|
+
{ type: NativeAudio, decorators: [{ type: Optional }] },
|
|
6950
|
+
{ type: Vibration, decorators: [{ type: Optional }] },
|
|
6918
6951
|
{ type: AudioManagement, decorators: [{ type: Optional }] }
|
|
6919
6952
|
];
|
|
6920
6953
|
|
|
@@ -6996,7 +7029,7 @@ class Hotkeys {
|
|
|
6996
7029
|
});
|
|
6997
7030
|
}
|
|
6998
7031
|
}
|
|
6999
|
-
Hotkeys.ɵprov =
|
|
7032
|
+
Hotkeys.ɵprov = i0.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0.ɵɵinject(i1$5.EventManager), i0.ɵɵinject(i2$1.MatDialog), i0.ɵɵinject(i1$3.DOCUMENT), i0.ɵɵinject(i1$4.ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
7000
7033
|
Hotkeys.decorators = [
|
|
7001
7034
|
{ type: Injectable, args: [{
|
|
7002
7035
|
providedIn: 'root'
|
|
@@ -7170,7 +7203,7 @@ class Base64ImageReader {
|
|
|
7170
7203
|
}
|
|
7171
7204
|
}
|
|
7172
7205
|
|
|
7173
|
-
const uuidv4 = uuidv4Imported;
|
|
7206
|
+
const uuidv4$1 = uuidv4Imported;
|
|
7174
7207
|
class FileService {
|
|
7175
7208
|
constructor(platform,
|
|
7176
7209
|
//private transfer: FileTransfer,
|
|
@@ -7207,7 +7240,7 @@ class FileService {
|
|
|
7207
7240
|
const lastSlashIndex = source.lastIndexOf('/');
|
|
7208
7241
|
if (lastSlashIndex === -1)
|
|
7209
7242
|
throw new Error('Invalid URL: ' + source);
|
|
7210
|
-
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
7243
|
+
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
|
|
7211
7244
|
// Download into the file system
|
|
7212
7245
|
if (responseType === 'file' && this.canUseFileSystem) {
|
|
7213
7246
|
console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
|
|
@@ -7263,7 +7296,7 @@ class FileService {
|
|
|
7263
7296
|
this._started = true;
|
|
7264
7297
|
}
|
|
7265
7298
|
}
|
|
7266
|
-
FileService.ɵprov =
|
|
7299
|
+
FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$2.HttpClient), i0.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
7267
7300
|
FileService.decorators = [
|
|
7268
7301
|
{ type: Injectable, args: [{
|
|
7269
7302
|
providedIn: 'root',
|
|
@@ -7425,7 +7458,7 @@ class Base58 {
|
|
|
7425
7458
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
7426
7459
|
|
|
7427
7460
|
const scrypt = require('scrypt-async');
|
|
7428
|
-
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
7461
|
+
const sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
7429
7462
|
const sha512 = require('hash.js/lib/hash/sha/512');
|
|
7430
7463
|
const nacl = {
|
|
7431
7464
|
sign,
|
|
@@ -7529,7 +7562,7 @@ class CryptoService {
|
|
|
7529
7562
|
* Hash (using SHA256) a message
|
|
7530
7563
|
*/
|
|
7531
7564
|
sha256(message) {
|
|
7532
|
-
return sha256().update(message).digest('hex');
|
|
7565
|
+
return sha256$1().update(message).digest('hex');
|
|
7533
7566
|
}
|
|
7534
7567
|
/**
|
|
7535
7568
|
* Hash (using SHA512) a message
|
|
@@ -7542,7 +7575,7 @@ class CryptoService {
|
|
|
7542
7575
|
return nacl.util.encodeBase64(m);
|
|
7543
7576
|
}
|
|
7544
7577
|
}
|
|
7545
|
-
CryptoService.ɵprov =
|
|
7578
|
+
CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
7546
7579
|
CryptoService.decorators = [
|
|
7547
7580
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7548
7581
|
];
|
|
@@ -7823,6 +7856,13 @@ const environment = Object.freeze({
|
|
|
7823
7856
|
// About
|
|
7824
7857
|
sourceUrl: 'https://gitlab.ifremer.fr/sih-public/sumaris/ngx-sumaris-components',
|
|
7825
7858
|
reportIssueUrl: 'https://gitlab.ifremer.fr/sih-public/sumaris/ngx-sumaris-components/-/issues',
|
|
7859
|
+
// Development
|
|
7860
|
+
defaultAuthValues: {
|
|
7861
|
+
// Basic auth (using Person.username)
|
|
7862
|
+
// username: 'admq2', password: 'q22006'
|
|
7863
|
+
// Token auth (using Person.pubkey)
|
|
7864
|
+
username: 'admin@sumaris.net', password: 'admin',
|
|
7865
|
+
}
|
|
7826
7866
|
});
|
|
7827
7867
|
|
|
7828
7868
|
class EntityClasses {
|
|
@@ -8749,7 +8789,7 @@ class LocalSettingsService {
|
|
|
8749
8789
|
return page;
|
|
8750
8790
|
}
|
|
8751
8791
|
}
|
|
8752
|
-
LocalSettingsService.ɵprov =
|
|
8792
|
+
LocalSettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
8753
8793
|
LocalSettingsService.decorators = [
|
|
8754
8794
|
{ type: Injectable, args: [{
|
|
8755
8795
|
providedIn: 'root',
|
|
@@ -9445,7 +9485,7 @@ class NetworkService {
|
|
|
9445
9485
|
});
|
|
9446
9486
|
}
|
|
9447
9487
|
}
|
|
9448
|
-
NetworkService.ɵprov =
|
|
9488
|
+
NetworkService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0.ɵɵinject(i1$3.DOCUMENT), i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i1$4.ModalController), i0.ɵɵinject(CryptoService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i2$2.HttpClient), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i9.Network, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i1$1.TranslateService, 8), i0.ɵɵinject(i1$4.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
9449
9489
|
NetworkService.decorators = [
|
|
9450
9490
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
9451
9491
|
];
|
|
@@ -9456,16 +9496,16 @@ NetworkService.ctorParameters = () => [
|
|
|
9456
9496
|
{ type: CryptoService },
|
|
9457
9497
|
{ type: Storage },
|
|
9458
9498
|
{ type: LocalSettingsService },
|
|
9459
|
-
{ type: CacheService
|
|
9499
|
+
{ type: CacheService },
|
|
9460
9500
|
{ type: HttpClient },
|
|
9461
9501
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
9462
|
-
{ type: Network
|
|
9463
|
-
{ type: SplashScreen
|
|
9502
|
+
{ type: Network, decorators: [{ type: Optional }] },
|
|
9503
|
+
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
9464
9504
|
{ type: TranslateService, decorators: [{ type: Optional }] },
|
|
9465
9505
|
{ type: ToastController, decorators: [{ type: Optional }] }
|
|
9466
9506
|
];
|
|
9467
9507
|
|
|
9468
|
-
const ErrorCodes = {
|
|
9508
|
+
const ErrorCodes$2 = {
|
|
9469
9509
|
UNKNOWN_ERROR: 0,
|
|
9470
9510
|
LOAD_ACCOUNT_ERROR: 1,
|
|
9471
9511
|
BAD_PASSWORD: 2,
|
|
@@ -9812,7 +9852,7 @@ class EntityStore {
|
|
|
9812
9852
|
}
|
|
9813
9853
|
catch (err) {
|
|
9814
9854
|
console.error(err);
|
|
9815
|
-
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
9855
|
+
throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
9816
9856
|
}
|
|
9817
9857
|
}
|
|
9818
9858
|
// Emit update event
|
|
@@ -10389,7 +10429,7 @@ class EntitiesStorage {
|
|
|
10389
10429
|
}
|
|
10390
10430
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
10391
10431
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
10392
|
-
EntitiesStorage.ɵprov =
|
|
10432
|
+
EntitiesStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(ProgressBarService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
10393
10433
|
EntitiesStorage.decorators = [
|
|
10394
10434
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
10395
10435
|
];
|
|
@@ -10486,10 +10526,10 @@ function referentialToString(obj, properties) {
|
|
|
10486
10526
|
function referentialsToString(values, properties, separator) {
|
|
10487
10527
|
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
10488
10528
|
}
|
|
10489
|
-
const ɵ0$
|
|
10529
|
+
const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
10490
10530
|
const StatusList = Object.freeze([
|
|
10491
10531
|
{
|
|
10492
|
-
id: ɵ0$
|
|
10532
|
+
id: ɵ0$2,
|
|
10493
10533
|
icon: 'checkmark',
|
|
10494
10534
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
10495
10535
|
},
|
|
@@ -10760,7 +10800,7 @@ function accountToString(data) {
|
|
|
10760
10800
|
(data.lastName || '')) || '';
|
|
10761
10801
|
}
|
|
10762
10802
|
|
|
10763
|
-
const uuidv4
|
|
10803
|
+
const uuidv4 = uuidv4Imported;
|
|
10764
10804
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
10765
10805
|
const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
10766
10806
|
/**
|
|
@@ -10804,7 +10844,7 @@ function createTrackerLink(opts) {
|
|
|
10804
10844
|
// Skip if not tracked
|
|
10805
10845
|
if (!context || !context.tracked)
|
|
10806
10846
|
return forward(operation);
|
|
10807
|
-
const id = context.serializationKey || uuidv4
|
|
10847
|
+
const id = context.serializationKey || uuidv4();
|
|
10808
10848
|
console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
|
|
10809
10849
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
10810
10850
|
const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -11512,7 +11552,7 @@ class GraphqlService {
|
|
|
11512
11552
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
11513
11553
|
|| this.toAppError(err.networkError)
|
|
11514
11554
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
11515
|
-
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
11555
|
+
|| this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
|
|
11516
11556
|
// If graphQL: try to convert the first error found
|
|
11517
11557
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
11518
11558
|
|| this.toAppError(err)
|
|
@@ -11520,7 +11560,7 @@ class GraphqlService {
|
|
|
11520
11560
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
11521
11561
|
|| err;
|
|
11522
11562
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
11523
|
-
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
11563
|
+
if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
11524
11564
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
11525
11565
|
this.onNetworkError.next(error);
|
|
11526
11566
|
}
|
|
@@ -11556,7 +11596,7 @@ class GraphqlService {
|
|
|
11556
11596
|
return 'ERROR.UNAUTHORIZED';
|
|
11557
11597
|
case ServerErrorCodes.FORBIDDEN:
|
|
11558
11598
|
return 'ERROR.FORBIDDEN';
|
|
11559
|
-
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
11599
|
+
case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
|
|
11560
11600
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
11561
11601
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
11562
11602
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -11593,7 +11633,7 @@ class GraphqlService {
|
|
|
11593
11633
|
});
|
|
11594
11634
|
}
|
|
11595
11635
|
}
|
|
11596
|
-
GraphqlService.ɵprov =
|
|
11636
|
+
GraphqlService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$3.Apollo), i0.ɵɵinject(i3$2.HttpLink), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(CryptoService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
11597
11637
|
GraphqlService.decorators = [
|
|
11598
11638
|
{ type: Injectable, args: [{
|
|
11599
11639
|
providedIn: 'root'
|
|
@@ -11610,7 +11650,7 @@ GraphqlService.ctorParameters = () => [
|
|
|
11610
11650
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
11611
11651
|
];
|
|
11612
11652
|
|
|
11613
|
-
const sha256
|
|
11653
|
+
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
11614
11654
|
class BaseGraphqlServiceOptions {
|
|
11615
11655
|
}
|
|
11616
11656
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
@@ -11760,8 +11800,8 @@ class BaseGraphqlService {
|
|
|
11760
11800
|
}
|
|
11761
11801
|
/* -- protected methods -- */
|
|
11762
11802
|
computeMutableWatchQueryId(opts) {
|
|
11763
|
-
const queryName = opts.queryName || sha256
|
|
11764
|
-
const variablesKey = opts.variables && sha256
|
|
11803
|
+
const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
11804
|
+
const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
11765
11805
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
11766
11806
|
}
|
|
11767
11807
|
findMutableWatchQueries(opts) {
|
|
@@ -11824,7 +11864,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
|
|
|
11824
11864
|
/* ------------------------------------
|
|
11825
11865
|
* GraphQL queries
|
|
11826
11866
|
* ------------------------------------*/
|
|
11827
|
-
const Fragments = {
|
|
11867
|
+
const Fragments$1 = {
|
|
11828
11868
|
account: gql `
|
|
11829
11869
|
fragment AccountFragment on AccountVO {
|
|
11830
11870
|
id
|
|
@@ -11857,13 +11897,13 @@ const Fragments = {
|
|
|
11857
11897
|
`
|
|
11858
11898
|
};
|
|
11859
11899
|
// Load account query
|
|
11860
|
-
const LoadQuery = gql `
|
|
11900
|
+
const LoadQuery$1 = gql `
|
|
11861
11901
|
query Account {
|
|
11862
11902
|
account {
|
|
11863
11903
|
...AccountFragment
|
|
11864
11904
|
}
|
|
11865
11905
|
}
|
|
11866
|
-
${Fragments.account}
|
|
11906
|
+
${Fragments$1.account}
|
|
11867
11907
|
`;
|
|
11868
11908
|
// Check email query
|
|
11869
11909
|
const IsEmailExistsQuery = gql `
|
|
@@ -11872,13 +11912,13 @@ const IsEmailExistsQuery = gql `
|
|
|
11872
11912
|
}
|
|
11873
11913
|
`;
|
|
11874
11914
|
// Save (create or update) account mutation
|
|
11875
|
-
const SaveMutation = gql `
|
|
11915
|
+
const SaveMutation$1 = gql `
|
|
11876
11916
|
mutation SaveAccount($account:AccountVOInput){
|
|
11877
11917
|
saveAccount(account: $account){
|
|
11878
11918
|
...AccountFragment
|
|
11879
11919
|
}
|
|
11880
11920
|
}
|
|
11881
|
-
${Fragments.account}
|
|
11921
|
+
${Fragments$1.account}
|
|
11882
11922
|
`;
|
|
11883
11923
|
// Create account mutation
|
|
11884
11924
|
const CreateMutation = gql `
|
|
@@ -11887,7 +11927,7 @@ const CreateMutation = gql `
|
|
|
11887
11927
|
...AccountFragment
|
|
11888
11928
|
}
|
|
11889
11929
|
}
|
|
11890
|
-
${Fragments.account}
|
|
11930
|
+
${Fragments$1.account}
|
|
11891
11931
|
`;
|
|
11892
11932
|
// Sent confirmation email
|
|
11893
11933
|
const SendConfirmEmailMutation = gql `
|
|
@@ -12226,7 +12266,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12226
12266
|
catch (error) {
|
|
12227
12267
|
console.error(error);
|
|
12228
12268
|
this.resetData();
|
|
12229
|
-
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
12269
|
+
throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
12230
12270
|
}
|
|
12231
12271
|
// Store pubkey+keypair
|
|
12232
12272
|
this.data.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -12260,7 +12300,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12260
12300
|
}
|
|
12261
12301
|
catch (err) {
|
|
12262
12302
|
// If account not found, check if email is valid
|
|
12263
|
-
if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
|
|
12303
|
+
if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
|
|
12264
12304
|
// Check email exists
|
|
12265
12305
|
if (data.username.indexOf('@') !== -1) {
|
|
12266
12306
|
let isEmailExists;
|
|
@@ -12272,11 +12312,11 @@ class AccountService extends BaseGraphqlService {
|
|
|
12272
12312
|
}
|
|
12273
12313
|
// Email not exists (no account)
|
|
12274
12314
|
if (!isEmailExists) {
|
|
12275
|
-
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
12315
|
+
throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
12276
12316
|
}
|
|
12277
12317
|
}
|
|
12278
12318
|
// Email exists, so error = 'bad password'
|
|
12279
|
-
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
12319
|
+
throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
12280
12320
|
}
|
|
12281
12321
|
throw err; // resend the first error
|
|
12282
12322
|
}
|
|
@@ -12337,7 +12377,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12337
12377
|
throw error;
|
|
12338
12378
|
console.error(error);
|
|
12339
12379
|
throw {
|
|
12340
|
-
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
12380
|
+
code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
|
|
12341
12381
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
12342
12382
|
};
|
|
12343
12383
|
}
|
|
@@ -12549,8 +12589,8 @@ class AccountService extends BaseGraphqlService {
|
|
|
12549
12589
|
}
|
|
12550
12590
|
else {
|
|
12551
12591
|
const res = yield this.graphql.query({
|
|
12552
|
-
query: LoadQuery,
|
|
12553
|
-
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
12592
|
+
query: LoadQuery$1,
|
|
12593
|
+
error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
12554
12594
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
12555
12595
|
});
|
|
12556
12596
|
accountJson = res && res.account;
|
|
@@ -12584,7 +12624,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12584
12624
|
if (!isNew) {
|
|
12585
12625
|
const existingAccount = yield this.loadAccount({ fetchPolicy: 'network-only' });
|
|
12586
12626
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
12587
|
-
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
12627
|
+
throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
12588
12628
|
}
|
|
12589
12629
|
account.updateDate = existingAccount.updateDate || account.updateDate;
|
|
12590
12630
|
if (account.settings && existingAccount.settings) {
|
|
@@ -12597,12 +12637,12 @@ class AccountService extends BaseGraphqlService {
|
|
|
12597
12637
|
delete json.mainProfile; // Not known on server
|
|
12598
12638
|
// Execute mutation
|
|
12599
12639
|
const res = yield this.graphql.mutate({
|
|
12600
|
-
mutation: isNew ? CreateMutation : SaveMutation,
|
|
12640
|
+
mutation: isNew ? CreateMutation : SaveMutation$1,
|
|
12601
12641
|
variables: {
|
|
12602
12642
|
account: json
|
|
12603
12643
|
},
|
|
12604
12644
|
error: {
|
|
12605
|
-
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
12645
|
+
code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
|
|
12606
12646
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
12607
12647
|
}
|
|
12608
12648
|
});
|
|
@@ -12627,7 +12667,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12627
12667
|
return __awaiter(this, void 0, void 0, function* () {
|
|
12628
12668
|
const isEmailExists = yield this.isEmailExists(email);
|
|
12629
12669
|
if (isEmailExists) {
|
|
12630
|
-
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
12670
|
+
throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
12631
12671
|
}
|
|
12632
12672
|
});
|
|
12633
12673
|
}
|
|
@@ -12663,7 +12703,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12663
12703
|
locale
|
|
12664
12704
|
},
|
|
12665
12705
|
error: {
|
|
12666
|
-
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
12706
|
+
code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
12667
12707
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
12668
12708
|
}
|
|
12669
12709
|
});
|
|
@@ -12679,7 +12719,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12679
12719
|
code
|
|
12680
12720
|
},
|
|
12681
12721
|
error: {
|
|
12682
|
-
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
12722
|
+
code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
|
|
12683
12723
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
12684
12724
|
}
|
|
12685
12725
|
});
|
|
@@ -12697,7 +12737,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12697
12737
|
interval: 10
|
|
12698
12738
|
},
|
|
12699
12739
|
error: {
|
|
12700
|
-
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
12740
|
+
code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
|
|
12701
12741
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
|
|
12702
12742
|
}
|
|
12703
12743
|
}).subscribe({
|
|
@@ -12776,7 +12816,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12776
12816
|
if (counter > 4) {
|
|
12777
12817
|
if (this._debug)
|
|
12778
12818
|
console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
|
|
12779
|
-
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
12819
|
+
throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
12780
12820
|
}
|
|
12781
12821
|
// Check if valid
|
|
12782
12822
|
if (token) {
|
|
@@ -12786,7 +12826,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12786
12826
|
token
|
|
12787
12827
|
},
|
|
12788
12828
|
error: {
|
|
12789
|
-
code: ErrorCodes.UNAUTHORIZED,
|
|
12829
|
+
code: ErrorCodes$2.UNAUTHORIZED,
|
|
12790
12830
|
message: 'ERROR.UNAUTHORIZED'
|
|
12791
12831
|
},
|
|
12792
12832
|
fetchPolicy: 'no-cache'
|
|
@@ -12802,7 +12842,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12802
12842
|
}
|
|
12803
12843
|
// Generate a new token
|
|
12804
12844
|
const challengeError = {
|
|
12805
|
-
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
12845
|
+
code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
|
|
12806
12846
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
12807
12847
|
};
|
|
12808
12848
|
const data = yield this.graphql.query({
|
|
@@ -12828,7 +12868,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
12828
12868
|
});
|
|
12829
12869
|
}
|
|
12830
12870
|
}
|
|
12831
|
-
AccountService.ɵprov =
|
|
12871
|
+
AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
12832
12872
|
AccountService.decorators = [
|
|
12833
12873
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
12834
12874
|
];
|
|
@@ -13078,7 +13118,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
|
|
|
13078
13118
|
/* ------------------------------------
|
|
13079
13119
|
* GraphQL queries
|
|
13080
13120
|
* ------------------------------------*/
|
|
13081
|
-
const Fragments
|
|
13121
|
+
const Fragments = {
|
|
13082
13122
|
config: gql `
|
|
13083
13123
|
fragment ConfigFragment on ConfigurationVO {
|
|
13084
13124
|
id
|
|
@@ -13105,22 +13145,22 @@ const Fragments$1 = {
|
|
|
13105
13145
|
}
|
|
13106
13146
|
`
|
|
13107
13147
|
};
|
|
13108
|
-
const LoadQuery
|
|
13148
|
+
const LoadQuery = gql `
|
|
13109
13149
|
query Configuration{
|
|
13110
13150
|
data: configuration{
|
|
13111
13151
|
...ConfigFragment
|
|
13112
13152
|
}
|
|
13113
13153
|
}
|
|
13114
|
-
${Fragments
|
|
13154
|
+
${Fragments.config}
|
|
13115
13155
|
`;
|
|
13116
13156
|
// Save (create or update) account mutation
|
|
13117
|
-
const SaveMutation
|
|
13157
|
+
const SaveMutation = gql `
|
|
13118
13158
|
mutation SaveConfiguration($data: ConfigurationVOInput){
|
|
13119
13159
|
data: saveConfiguration(config: $data){
|
|
13120
13160
|
...ConfigFragment
|
|
13121
13161
|
}
|
|
13122
13162
|
}
|
|
13123
|
-
${Fragments
|
|
13163
|
+
${Fragments.config}
|
|
13124
13164
|
`;
|
|
13125
13165
|
const ClearCache = gql `
|
|
13126
13166
|
query ClearCache($name: String) {
|
|
@@ -13208,12 +13248,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
13208
13248
|
return __awaiter(this, void 0, void 0, function* () {
|
|
13209
13249
|
const now = Date.now();
|
|
13210
13250
|
console.debug('[config] Loading Pod configuration...');
|
|
13211
|
-
const query = opts && opts.query || LoadQuery
|
|
13251
|
+
const query = opts && opts.query || LoadQuery;
|
|
13212
13252
|
const variables = opts && opts.variables || undefined;
|
|
13213
13253
|
const res = yield this.graphql.query({
|
|
13214
13254
|
query,
|
|
13215
13255
|
variables,
|
|
13216
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
13256
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
13217
13257
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
13218
13258
|
});
|
|
13219
13259
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -13238,12 +13278,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
13238
13278
|
const json = config.asObject();
|
|
13239
13279
|
// Execute mutation
|
|
13240
13280
|
const res = yield this.graphql.mutate({
|
|
13241
|
-
mutation: SaveMutation
|
|
13281
|
+
mutation: SaveMutation,
|
|
13242
13282
|
variables: {
|
|
13243
13283
|
data: json
|
|
13244
13284
|
},
|
|
13245
13285
|
error: {
|
|
13246
|
-
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
13286
|
+
code: ErrorCodes$2.SAVE_CONFIG_ERROR,
|
|
13247
13287
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
13248
13288
|
}
|
|
13249
13289
|
});
|
|
@@ -13269,7 +13309,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
13269
13309
|
const res = yield this.graphql.query({
|
|
13270
13310
|
query: CacheStatistics,
|
|
13271
13311
|
variables: null,
|
|
13272
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
13312
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
13273
13313
|
fetchPolicy: 'network-only'
|
|
13274
13314
|
});
|
|
13275
13315
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -13285,7 +13325,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
13285
13325
|
const res = yield this.graphql.query({
|
|
13286
13326
|
query: ClearCache,
|
|
13287
13327
|
variables,
|
|
13288
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
13328
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
13289
13329
|
fetchPolicy: 'network-only'
|
|
13290
13330
|
});
|
|
13291
13331
|
const data = res && res.clearCache || undefined;
|
|
@@ -13444,7 +13484,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
13444
13484
|
});
|
|
13445
13485
|
}
|
|
13446
13486
|
}
|
|
13447
|
-
ConfigService.ɵprov =
|
|
13487
|
+
ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
13448
13488
|
ConfigService.decorators = [
|
|
13449
13489
|
{ type: Injectable, args: [{
|
|
13450
13490
|
providedIn: 'root',
|
|
@@ -13463,7 +13503,7 @@ ConfigService.ctorParameters = () => [
|
|
|
13463
13503
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
13464
13504
|
];
|
|
13465
13505
|
|
|
13466
|
-
const moment$
|
|
13506
|
+
const moment$2 = momentImported;
|
|
13467
13507
|
class PlatformService {
|
|
13468
13508
|
constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser) {
|
|
13469
13509
|
this.platform = platform;
|
|
@@ -13628,16 +13668,16 @@ class PlatformService {
|
|
|
13628
13668
|
}
|
|
13629
13669
|
// config moment lib
|
|
13630
13670
|
try {
|
|
13631
|
-
moment$
|
|
13671
|
+
moment$2.locale(event.lang);
|
|
13632
13672
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
13633
13673
|
}
|
|
13634
13674
|
// If error, fallback to en
|
|
13635
13675
|
catch (err) {
|
|
13636
|
-
moment$
|
|
13676
|
+
moment$2.locale('en');
|
|
13637
13677
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
13638
13678
|
}
|
|
13639
13679
|
// Config date adapter
|
|
13640
|
-
this.dateAdapter.setLocale(moment$
|
|
13680
|
+
this.dateAdapter.setLocale(moment$2.locale());
|
|
13641
13681
|
}
|
|
13642
13682
|
});
|
|
13643
13683
|
this.settings.onChange.subscribe(data => {
|
|
@@ -13774,7 +13814,7 @@ class PlatformService {
|
|
|
13774
13814
|
});
|
|
13775
13815
|
}
|
|
13776
13816
|
}
|
|
13777
|
-
PlatformService.ɵprov =
|
|
13817
|
+
PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8)); }, token: PlatformService, providedIn: "root" });
|
|
13778
13818
|
PlatformService.decorators = [
|
|
13779
13819
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
13780
13820
|
];
|
|
@@ -13789,14 +13829,14 @@ PlatformService.ctorParameters = () => [
|
|
|
13789
13829
|
{ type: NetworkService },
|
|
13790
13830
|
{ type: AccountService },
|
|
13791
13831
|
{ type: ConfigService },
|
|
13792
|
-
{ type: CacheService
|
|
13832
|
+
{ type: CacheService },
|
|
13793
13833
|
{ type: Storage },
|
|
13794
13834
|
{ type: AudioProvider },
|
|
13795
13835
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
13796
|
-
{ type: StatusBar
|
|
13836
|
+
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
13797
13837
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
13798
|
-
{ type: SplashScreen
|
|
13799
|
-
{ type: InAppBrowser
|
|
13838
|
+
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
13839
|
+
{ type: InAppBrowser, decorators: [{ type: Optional }] }
|
|
13800
13840
|
];
|
|
13801
13841
|
|
|
13802
13842
|
class AppHelpModal {
|
|
@@ -13860,7 +13900,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
13860
13900
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
13861
13901
|
}
|
|
13862
13902
|
}
|
|
13863
|
-
MatStepperI18n.ɵprov =
|
|
13903
|
+
MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
13864
13904
|
MatStepperI18n.decorators = [
|
|
13865
13905
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
13866
13906
|
];
|
|
@@ -14768,7 +14808,7 @@ function state2side(state) {
|
|
|
14768
14808
|
return 1;
|
|
14769
14809
|
}
|
|
14770
14810
|
}
|
|
14771
|
-
const ɵ0$
|
|
14811
|
+
const ɵ0$1 = (defaultStateSize) => [
|
|
14772
14812
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
14773
14813
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
14774
14814
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -14776,7 +14816,7 @@ const ɵ0$9 = (defaultStateSize) => [
|
|
|
14776
14816
|
const SCALE_OPTIONS_DEFAULT = {
|
|
14777
14817
|
startColor: rgbArrayMap.red,
|
|
14778
14818
|
startStates: [0, 2, 3],
|
|
14779
|
-
startStepsFn: ɵ0$
|
|
14819
|
+
startStepsFn: ɵ0$1
|
|
14780
14820
|
};
|
|
14781
14821
|
/**
|
|
14782
14822
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -14868,21 +14908,21 @@ function linearColorGradient(count, options) {
|
|
|
14868
14908
|
return result;
|
|
14869
14909
|
}
|
|
14870
14910
|
|
|
14871
|
-
class EntityTestClass {
|
|
14911
|
+
class EntityTestClass$1 {
|
|
14872
14912
|
}
|
|
14873
|
-
const FAKE_ENTITIES = [
|
|
14913
|
+
const FAKE_ENTITIES$1 = [
|
|
14874
14914
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
14875
14915
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
14876
14916
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
14877
14917
|
];
|
|
14878
|
-
function deepCopy(values, size) {
|
|
14918
|
+
function deepCopy$1(values, size) {
|
|
14879
14919
|
if (isNil(size)) {
|
|
14880
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
14920
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
14881
14921
|
}
|
|
14882
14922
|
let result = [];
|
|
14883
14923
|
let i = 1;
|
|
14884
14924
|
while (result.length < size) {
|
|
14885
|
-
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
14925
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
|
|
14886
14926
|
const name = entity.name + ' #' + i;
|
|
14887
14927
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
14888
14928
|
}));
|
|
@@ -14892,7 +14932,7 @@ function deepCopy(values, size) {
|
|
|
14892
14932
|
class AutocompleteTestPage {
|
|
14893
14933
|
constructor(formBuilder) {
|
|
14894
14934
|
this.formBuilder = formBuilder;
|
|
14895
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
14935
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
14896
14936
|
this.$items = new BehaviorSubject(undefined);
|
|
14897
14937
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
14898
14938
|
this.memoryHide = false;
|
|
@@ -14936,7 +14976,7 @@ class AutocompleteTestPage {
|
|
|
14936
14976
|
});
|
|
14937
14977
|
// From items
|
|
14938
14978
|
this.autocompleteFields.add('entity-items-large', {
|
|
14939
|
-
items: FAKE_ENTITIES.slice(),
|
|
14979
|
+
items: FAKE_ENTITIES$1.slice(),
|
|
14940
14980
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
14941
14981
|
displayWith: this.entityToString
|
|
14942
14982
|
});
|
|
@@ -14946,12 +14986,12 @@ class AutocompleteTestPage {
|
|
|
14946
14986
|
loadData() {
|
|
14947
14987
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14948
14988
|
const data = {
|
|
14949
|
-
entity: deepCopy(FAKE_ENTITIES)[1],
|
|
14989
|
+
entity: deepCopy$1(FAKE_ENTITIES$1)[1],
|
|
14950
14990
|
// This item is NOT in the items list => i should be displayed anyway
|
|
14951
14991
|
missingEntity: {
|
|
14952
14992
|
id: -1, label: '??', name: 'Missing item'
|
|
14953
14993
|
},
|
|
14954
|
-
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
14994
|
+
disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
|
|
14955
14995
|
};
|
|
14956
14996
|
this.form.setValue(data);
|
|
14957
14997
|
// Load observables
|
|
@@ -15121,13 +15161,13 @@ MaterialTestingPage.ctorParameters = () => [
|
|
|
15121
15161
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
|
|
15122
15162
|
];
|
|
15123
15163
|
|
|
15124
|
-
const moment$
|
|
15164
|
+
const moment$1 = momentImported;
|
|
15125
15165
|
class SwipeTestPage {
|
|
15126
15166
|
constructor(formBuilder, dateFormatPipe) {
|
|
15127
15167
|
this.formBuilder = formBuilder;
|
|
15128
15168
|
this.dateFormatPipe = dateFormatPipe;
|
|
15129
15169
|
this.$dates = new BehaviorSubject(undefined);
|
|
15130
|
-
this._today = moment$
|
|
15170
|
+
this._today = moment$1().startOf('day');
|
|
15131
15171
|
this.form = formBuilder.group({
|
|
15132
15172
|
empty: [null, Validators.required],
|
|
15133
15173
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -15140,7 +15180,7 @@ class SwipeTestPage {
|
|
|
15140
15180
|
ngOnInit() {
|
|
15141
15181
|
const dates = [];
|
|
15142
15182
|
for (let d = 0; d < 7; d++) {
|
|
15143
|
-
dates[d] = moment$
|
|
15183
|
+
dates[d] = moment$1(this._today).add(d - 3, 'day');
|
|
15144
15184
|
}
|
|
15145
15185
|
this.$dates.next(dates);
|
|
15146
15186
|
this.loadData();
|
|
@@ -15741,7 +15781,7 @@ class FormArrayHelper {
|
|
|
15741
15781
|
}
|
|
15742
15782
|
}
|
|
15743
15783
|
|
|
15744
|
-
const moment
|
|
15784
|
+
const moment = momentImported;
|
|
15745
15785
|
class DateTimeTestPage {
|
|
15746
15786
|
constructor(platform, formBuilder, cd) {
|
|
15747
15787
|
this.platform = platform;
|
|
@@ -15772,7 +15812,7 @@ class DateTimeTestPage {
|
|
|
15772
15812
|
// Load the form with data
|
|
15773
15813
|
loadData() {
|
|
15774
15814
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15775
|
-
const now = moment
|
|
15815
|
+
const now = moment();
|
|
15776
15816
|
const data = {
|
|
15777
15817
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
15778
15818
|
enable: toDateISOString(now),
|
|
@@ -15832,20 +15872,20 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
15832
15872
|
{ type: ChangeDetectorRef }
|
|
15833
15873
|
];
|
|
15834
15874
|
|
|
15835
|
-
class EntityTestClass
|
|
15875
|
+
class EntityTestClass {
|
|
15836
15876
|
}
|
|
15837
|
-
const FAKE_ENTITIES
|
|
15877
|
+
const FAKE_ENTITIES = [
|
|
15838
15878
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
15839
15879
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
15840
15880
|
{ id: 3, label: 'CCC', name: 'Item C' }
|
|
15841
15881
|
];
|
|
15842
|
-
function deepCopy
|
|
15843
|
-
return (values || FAKE_ENTITIES
|
|
15882
|
+
function deepCopy(values) {
|
|
15883
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
15844
15884
|
}
|
|
15845
15885
|
class ChipsTestPage {
|
|
15846
15886
|
constructor(formBuilder) {
|
|
15847
15887
|
this.formBuilder = formBuilder;
|
|
15848
|
-
this._items = deepCopy
|
|
15888
|
+
this._items = deepCopy(FAKE_ENTITIES);
|
|
15849
15889
|
this._$items = new BehaviorSubject(undefined);
|
|
15850
15890
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
15851
15891
|
this.form = formBuilder.group({
|
|
@@ -15864,7 +15904,7 @@ class ChipsTestPage {
|
|
|
15864
15904
|
});
|
|
15865
15905
|
// From items
|
|
15866
15906
|
this.autocompleteFields.add('entity-items', {
|
|
15867
|
-
items: FAKE_ENTITIES
|
|
15907
|
+
items: FAKE_ENTITIES.slice(),
|
|
15868
15908
|
attributes: ['label', 'name'],
|
|
15869
15909
|
displayWith: this.entityToString
|
|
15870
15910
|
});
|
|
@@ -15885,15 +15925,15 @@ class ChipsTestPage {
|
|
|
15885
15925
|
const data = {
|
|
15886
15926
|
entity: [],
|
|
15887
15927
|
// THis item is NOT in the items list => i should be displayed anyway
|
|
15888
|
-
entityInitial: FAKE_ENTITIES
|
|
15889
|
-
disableEntity: FAKE_ENTITIES
|
|
15928
|
+
entityInitial: FAKE_ENTITIES.slice(1, 2),
|
|
15929
|
+
disableEntity: FAKE_ENTITIES.slice(1, 2)
|
|
15890
15930
|
};
|
|
15891
15931
|
this.form.setValue(data);
|
|
15892
15932
|
});
|
|
15893
15933
|
}
|
|
15894
15934
|
loadItems() {
|
|
15895
15935
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15896
|
-
this._$items.next(deepCopy
|
|
15936
|
+
this._$items.next(deepCopy(FAKE_ENTITIES));
|
|
15897
15937
|
});
|
|
15898
15938
|
}
|
|
15899
15939
|
entityToString(item) {
|
|
@@ -15925,7 +15965,7 @@ ChipsTestPage.ctorParameters = () => [
|
|
|
15925
15965
|
{ type: FormBuilder }
|
|
15926
15966
|
];
|
|
15927
15967
|
|
|
15928
|
-
const routes = [
|
|
15968
|
+
const routes$1 = [
|
|
15929
15969
|
{
|
|
15930
15970
|
path: '',
|
|
15931
15971
|
pathMatch: 'full',
|
|
@@ -15972,7 +16012,7 @@ MaterialTestingModule.decorators = [
|
|
|
15972
16012
|
ReactiveFormsModule,
|
|
15973
16013
|
SharedMaterialModule,
|
|
15974
16014
|
TranslateModule.forChild(),
|
|
15975
|
-
RouterModule.forChild(routes)
|
|
16015
|
+
RouterModule.forChild(routes$1)
|
|
15976
16016
|
],
|
|
15977
16017
|
declarations: [
|
|
15978
16018
|
MaterialTestingPage,
|
|
@@ -16284,15 +16324,10 @@ class AuthForm extends AppForm {
|
|
|
16284
16324
|
this.markForCheck();
|
|
16285
16325
|
}));
|
|
16286
16326
|
// For DEV only
|
|
16287
|
-
if (this.environment && this.environment.production === false) {
|
|
16327
|
+
if (this.environment && this.environment.production === false && this.environment.defaultAuthValues) {
|
|
16288
16328
|
// Set the default user, for testing.
|
|
16289
|
-
//
|
|
16290
|
-
this.form.patchValue(
|
|
16291
|
-
// Basic auth (using Person.username)
|
|
16292
|
-
// username: 'admq2', password: 'q22006'
|
|
16293
|
-
// Token auth (using Person.pubkey)
|
|
16294
|
-
username: 'admin@sumaris.net', password: 'admin'
|
|
16295
|
-
});
|
|
16329
|
+
// Override using environment, if any
|
|
16330
|
+
this.form.patchValue(this.environment.defaultAuthValues);
|
|
16296
16331
|
}
|
|
16297
16332
|
}
|
|
16298
16333
|
cancel() {
|
|
@@ -16873,7 +16908,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
16873
16908
|
});
|
|
16874
16909
|
}
|
|
16875
16910
|
}
|
|
16876
|
-
UserSettingsValidatorService.ɵprov =
|
|
16911
|
+
UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
16877
16912
|
UserSettingsValidatorService.decorators = [
|
|
16878
16913
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
16879
16914
|
];
|
|
@@ -16917,7 +16952,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
16917
16952
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
16918
16953
|
}
|
|
16919
16954
|
}
|
|
16920
|
-
AccountValidatorService.ɵprov =
|
|
16955
|
+
AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
16921
16956
|
AccountValidatorService.decorators = [
|
|
16922
16957
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
16923
16958
|
];
|
|
@@ -17446,7 +17481,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
17446
17481
|
});
|
|
17447
17482
|
}
|
|
17448
17483
|
}
|
|
17449
|
-
LocalSettingsValidatorService.ɵprov =
|
|
17484
|
+
LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
17450
17485
|
LocalSettingsValidatorService.decorators = [
|
|
17451
17486
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
17452
17487
|
];
|
|
@@ -18054,7 +18089,7 @@ class IsOnFieldModePipe {
|
|
|
18054
18089
|
return value === 'FIELD';
|
|
18055
18090
|
}
|
|
18056
18091
|
}
|
|
18057
|
-
IsOnFieldModePipe.ɵprov =
|
|
18092
|
+
IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
18058
18093
|
IsOnFieldModePipe.decorators = [
|
|
18059
18094
|
{ type: Pipe, args: [{
|
|
18060
18095
|
name: 'isOnField'
|
|
@@ -18066,7 +18101,7 @@ class IsNotOnFieldModePipe {
|
|
|
18066
18101
|
return value !== 'FIELD';
|
|
18067
18102
|
}
|
|
18068
18103
|
}
|
|
18069
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
18104
|
+
IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
18070
18105
|
IsNotOnFieldModePipe.decorators = [
|
|
18071
18106
|
{ type: Pipe, args: [{
|
|
18072
18107
|
name: 'isNotOnField'
|
|
@@ -18081,7 +18116,7 @@ class PersonToStringPipe {
|
|
|
18081
18116
|
return PersonUtils.personToString(value);
|
|
18082
18117
|
}
|
|
18083
18118
|
}
|
|
18084
|
-
PersonToStringPipe.ɵprov =
|
|
18119
|
+
PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
18085
18120
|
PersonToStringPipe.decorators = [
|
|
18086
18121
|
{ type: Pipe, args: [{
|
|
18087
18122
|
name: 'personToString'
|
|
@@ -18298,7 +18333,7 @@ class IsLoginAccountPipe {
|
|
|
18298
18333
|
return value && value.pubkey && true;
|
|
18299
18334
|
}
|
|
18300
18335
|
}
|
|
18301
|
-
IsLoginAccountPipe.ɵprov =
|
|
18336
|
+
IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
18302
18337
|
IsLoginAccountPipe.decorators = [
|
|
18303
18338
|
{ type: Pipe, args: [{
|
|
18304
18339
|
name: 'isLogin'
|
|
@@ -18310,7 +18345,7 @@ class AccountToStringPipe {
|
|
|
18310
18345
|
return accountToString(value);
|
|
18311
18346
|
}
|
|
18312
18347
|
}
|
|
18313
|
-
AccountToStringPipe.ɵprov =
|
|
18348
|
+
AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
18314
18349
|
AccountToStringPipe.decorators = [
|
|
18315
18350
|
{ type: Pipe, args: [{
|
|
18316
18351
|
name: 'accountToString'
|
|
@@ -18325,7 +18360,7 @@ class DepartmentToStringPipe {
|
|
|
18325
18360
|
return departmentToString(value);
|
|
18326
18361
|
}
|
|
18327
18362
|
}
|
|
18328
|
-
DepartmentToStringPipe.ɵprov =
|
|
18363
|
+
DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
18329
18364
|
DepartmentToStringPipe.decorators = [
|
|
18330
18365
|
{ type: Pipe, args: [{
|
|
18331
18366
|
name: 'departmentToString'
|
|
@@ -18351,7 +18386,7 @@ class MenuService {
|
|
|
18351
18386
|
this._visibleSubject.next(value);
|
|
18352
18387
|
}
|
|
18353
18388
|
}
|
|
18354
|
-
MenuService.ɵprov =
|
|
18389
|
+
MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
18355
18390
|
MenuService.decorators = [
|
|
18356
18391
|
{ type: Injectable, args: [{
|
|
18357
18392
|
providedIn: 'root'
|
|
@@ -18845,7 +18880,7 @@ class AuthGuardService {
|
|
|
18845
18880
|
}));
|
|
18846
18881
|
}
|
|
18847
18882
|
}
|
|
18848
|
-
AuthGuardService.ɵprov =
|
|
18883
|
+
AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(AccountService), i0.ɵɵinject(i1$4.ModalController), i0.ɵɵinject(i3$3.Router), i0.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
18849
18884
|
AuthGuardService.decorators = [
|
|
18850
18885
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18851
18886
|
];
|
|
@@ -18893,7 +18928,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
18893
18928
|
query,
|
|
18894
18929
|
variables: { id },
|
|
18895
18930
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
18896
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
18931
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
18897
18932
|
})
|
|
18898
18933
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
18899
18934
|
? (data && this.fromObject(data))
|
|
@@ -18908,7 +18943,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
18908
18943
|
query,
|
|
18909
18944
|
variables: { id },
|
|
18910
18945
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
18911
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
18946
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
18912
18947
|
});
|
|
18913
18948
|
// Convert to entity
|
|
18914
18949
|
return (!opts || opts.toEntity !== false)
|
|
@@ -18939,7 +18974,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
18939
18974
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
18940
18975
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
18941
18976
|
variables,
|
|
18942
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
18977
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
18943
18978
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
18944
18979
|
})
|
|
18945
18980
|
.pipe(map(({ data, total }) => {
|
|
@@ -18975,7 +19010,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
18975
19010
|
const { data, total } = yield this.graphql.query({
|
|
18976
19011
|
query,
|
|
18977
19012
|
variables,
|
|
18978
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
19013
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
18979
19014
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
18980
19015
|
});
|
|
18981
19016
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -19014,7 +19049,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19014
19049
|
variables: {
|
|
19015
19050
|
filter: filter && filter.asPodObject()
|
|
19016
19051
|
},
|
|
19017
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
19052
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
19018
19053
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
19019
19054
|
});
|
|
19020
19055
|
return res.total;
|
|
@@ -19047,7 +19082,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19047
19082
|
variables: {
|
|
19048
19083
|
data: json
|
|
19049
19084
|
},
|
|
19050
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19085
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19051
19086
|
update: (proxy, { data }) => {
|
|
19052
19087
|
const savedEntities = data && data.data;
|
|
19053
19088
|
if (savedEntities) {
|
|
@@ -19103,7 +19138,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19103
19138
|
variables: {
|
|
19104
19139
|
data: json
|
|
19105
19140
|
},
|
|
19106
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19141
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19107
19142
|
update: (cache, { data }) => {
|
|
19108
19143
|
// Update entity
|
|
19109
19144
|
const savedEntity = data && data.data;
|
|
@@ -19151,7 +19186,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19151
19186
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
19152
19187
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
19153
19188
|
variables: { ids },
|
|
19154
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19189
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19155
19190
|
update: (cache, res) => {
|
|
19156
19191
|
// Remove from cache
|
|
19157
19192
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -19192,7 +19227,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19192
19227
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
19193
19228
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
19194
19229
|
variables: { id },
|
|
19195
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19230
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19196
19231
|
update: (proxy, res) => {
|
|
19197
19232
|
// Remove from cache
|
|
19198
19233
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -19225,7 +19260,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19225
19260
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
19226
19261
|
variables,
|
|
19227
19262
|
error: {
|
|
19228
|
-
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
19263
|
+
code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
|
|
19229
19264
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
19230
19265
|
}
|
|
19231
19266
|
})
|
|
@@ -19387,7 +19422,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
19387
19422
|
if (this._debug)
|
|
19388
19423
|
invalidRows.forEach(this.logRowErrors);
|
|
19389
19424
|
// Stop with an error
|
|
19390
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
19425
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
19391
19426
|
}
|
|
19392
19427
|
this._editingRowCount = 0;
|
|
19393
19428
|
let data;
|
|
@@ -20204,13 +20239,13 @@ class AppTable {
|
|
|
20204
20239
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20205
20240
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
20206
20241
|
if (this.readOnly) {
|
|
20207
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20242
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20208
20243
|
}
|
|
20209
20244
|
this.resetError();
|
|
20210
20245
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
20211
20246
|
this.previouslySavedEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
|
|
20212
20247
|
if (!this.confirmEditCreate()) {
|
|
20213
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20248
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20214
20249
|
}
|
|
20215
20250
|
try {
|
|
20216
20251
|
// Mark as saving
|
|
@@ -20335,7 +20370,7 @@ class AppTable {
|
|
|
20335
20370
|
deleteRows(event, rows, opts) {
|
|
20336
20371
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20337
20372
|
if (this.readOnly) {
|
|
20338
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20373
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20339
20374
|
}
|
|
20340
20375
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
20341
20376
|
return 0; // SKip
|
|
@@ -21734,7 +21769,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
21734
21769
|
try {
|
|
21735
21770
|
const data = yield this.dataService.load(id, opts);
|
|
21736
21771
|
if (!data)
|
|
21737
|
-
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
21772
|
+
throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
21738
21773
|
this._usageMode = this.computeUsageMode(data);
|
|
21739
21774
|
yield this.onEntityLoaded(data, opts);
|
|
21740
21775
|
yield this.updateView(data, opts);
|
|
@@ -22635,7 +22670,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
22635
22670
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
22636
22671
|
}
|
|
22637
22672
|
}
|
|
22638
|
-
UserEventService.ɵprov =
|
|
22673
|
+
UserEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(AccountService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
|
|
22639
22674
|
UserEventService.decorators = [
|
|
22640
22675
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
22641
22676
|
];
|
|
@@ -23017,7 +23052,7 @@ class PersonService extends BaseEntityService {
|
|
|
23017
23052
|
return target;
|
|
23018
23053
|
}
|
|
23019
23054
|
}
|
|
23020
|
-
PersonService.ɵprov =
|
|
23055
|
+
PersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(PlatformService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
23021
23056
|
PersonService.decorators = [
|
|
23022
23057
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23023
23058
|
];
|
|
@@ -23048,7 +23083,7 @@ class PersonValidatorService {
|
|
|
23048
23083
|
return this.formBuilder.group(formConfig);
|
|
23049
23084
|
}
|
|
23050
23085
|
}
|
|
23051
|
-
PersonValidatorService.ɵprov =
|
|
23086
|
+
PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
23052
23087
|
PersonValidatorService.decorators = [
|
|
23053
23088
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23054
23089
|
];
|
|
@@ -23204,7 +23239,7 @@ UsersPage.decorators = [
|
|
|
23204
23239
|
],
|
|
23205
23240
|
animations: [slideUpDownAnimation],
|
|
23206
23241
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
23207
|
-
styles: [".mat-expansion-panel{margin-bottom:5px}.mat-expansion-panel .form-container mat-form-field{width:100%}.mat-expansion-panel mat-action-row ion-label{line-height:36px}.table-container{height:100%}.mat-table .mat-cell .avatar{height:40px;width:40px;margin:2px 0 0;background-size:cover;background-repeat:no-repeat;background-position:50%}.mat-table .mat-column-avatar{min-width:50px}.mat-table .mat-column-profile{min-width:110px}.mat-table .mat-column-status{min-width:130px}.mat-table .mat-column-department{min-width:150px}"]
|
|
23242
|
+
styles: [".mat-expansion-panel{margin-bottom:5px}.mat-expansion-panel .form-container mat-form-field{width:100%}.mat-expansion-panel mat-action-row ion-label{line-height:36px}.table-container{height:calc(100%)}.mat-table .mat-cell .avatar{height:40px;width:40px;margin:2px 0 0;background-size:cover;background-repeat:no-repeat;background-position:50%}.mat-table .mat-column-avatar{min-width:50px}.mat-table .mat-column-profile{min-width:110px}.mat-table .mat-column-status{min-width:130px}.mat-table .mat-column-department{min-width:150px}"]
|
|
23208
23243
|
},] }
|
|
23209
23244
|
];
|
|
23210
23245
|
UsersPage.ctorParameters = () => [
|
|
@@ -23252,16 +23287,16 @@ AdminModule.decorators = [
|
|
|
23252
23287
|
];
|
|
23253
23288
|
AdminModule.ctorParameters = () => [];
|
|
23254
23289
|
|
|
23255
|
-
const ɵ0
|
|
23290
|
+
const ɵ0 = {
|
|
23256
23291
|
profile: 'ADMIN'
|
|
23257
23292
|
};
|
|
23258
|
-
const routes
|
|
23293
|
+
const routes = [
|
|
23259
23294
|
{
|
|
23260
23295
|
path: 'users',
|
|
23261
23296
|
pathMatch: 'full',
|
|
23262
23297
|
component: UsersPage,
|
|
23263
23298
|
canActivate: [AuthGuardService],
|
|
23264
|
-
data: ɵ0
|
|
23299
|
+
data: ɵ0
|
|
23265
23300
|
}
|
|
23266
23301
|
];
|
|
23267
23302
|
class AdminRoutingModule {
|
|
@@ -23271,13 +23306,13 @@ AdminRoutingModule.decorators = [
|
|
|
23271
23306
|
imports: [
|
|
23272
23307
|
SharedRoutingModule,
|
|
23273
23308
|
AdminModule,
|
|
23274
|
-
RouterModule.forChild(routes
|
|
23309
|
+
RouterModule.forChild(routes)
|
|
23275
23310
|
],
|
|
23276
23311
|
exports: [RouterModule]
|
|
23277
23312
|
},] }
|
|
23278
23313
|
];
|
|
23279
23314
|
|
|
23280
|
-
const ErrorCodes
|
|
23315
|
+
const ErrorCodes = {
|
|
23281
23316
|
LOAD_PERSONS_ERROR: 100,
|
|
23282
23317
|
SAVE_PERSONS_ERROR: 101,
|
|
23283
23318
|
DELETE_PERSONS_ERROR: 102,
|
|
@@ -23289,5 +23324,5 @@ const ErrorCodes$2 = {
|
|
|
23289
23324
|
* Generated bundle index. Do not edit.
|
|
23290
23325
|
*/
|
|
23291
23326
|
|
|
23292
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormHolder, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes
|
|
23327
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormHolder, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, copyForm2Entity, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalsePromise, firstNotNil, firstNotNilPromise, 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, isArray, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, 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, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitWhilePending, ɵ0$5 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 };
|
|
23293
23328
|
//# sourceMappingURL=ngx-sumaris-components.js.map
|