@sumaris-net/ngx-components 0.26.1 → 0.26.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/sumaris-net.ngx-components.umd.js +388 -303
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +1 -0
- package/esm2015/src/app/core/form/entity-editor.class.js +9 -5
- package/esm2015/src/app/core/form/form.class.js +3 -3
- package/esm2015/src/app/core/table/table.class.js +3 -3
- package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +62 -0
- package/esm2015/src/app/shared/material/badge/badge-icon.module.js +23 -0
- package/esm2015/src/app/shared/material/badge/badge-icon.test.js +10 -0
- package/esm2015/src/app/shared/material/material.module.js +4 -2
- package/esm2015/src/app/shared/material/testing/material.testing.module.js +9 -2
- package/esm2015/src/app/shared/material/testing/material.testing.page.js +2 -2
- package/esm2015/src/app/shared/pipes/form.pipes.js +3 -3
- package/esm2015/src/app/shared/validator/form-error-adapter.class.js +5 -5
- package/esm2015/sumaris-net.ngx-components.js +10 -7
- package/fesm2015/sumaris-net.ngx-components.js +368 -284
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/form/entity-editor.class.d.ts +6 -2
- package/src/app/core/form/form.class.d.ts +2 -2
- package/src/app/core/table/table.class.d.ts +2 -2
- package/src/app/shared/material/badge/badge-icon.directive.d.ts +15 -0
- package/src/app/shared/material/badge/badge-icon.module.d.ts +2 -0
- package/src/app/shared/material/badge/badge-icon.test.d.ts +2 -0
- package/src/app/shared/pipes/form.pipes.d.ts +2 -2
- package/src/app/shared/validator/form-error-adapter.class.d.ts +1 -1
- package/sumaris-net.ngx-components.d.ts +9 -6
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2 } from '@angular/core';
|
|
3
|
-
import * as i1$3 from '@angular/common';
|
|
1
|
+
import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Renderer2 } from '@angular/core';
|
|
4
2
|
import { CommonModule, DOCUMENT, Location } from '@angular/common';
|
|
5
3
|
import { CdkTableModule } from '@angular/cdk/table';
|
|
6
4
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
7
5
|
import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
8
6
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
9
|
-
import * as i1$2 from '@angular/material/core';
|
|
10
7
|
import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
|
|
11
8
|
import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
|
|
12
9
|
import { MatSortModule, MatSort } from '@angular/material/sort';
|
|
@@ -30,21 +27,16 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
|
30
27
|
import { MatRadioModule } from '@angular/material/radio';
|
|
31
28
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
32
29
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
33
|
-
import * as i2$1 from '@angular/material/dialog';
|
|
34
30
|
import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
35
31
|
import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
|
|
36
32
|
import { __awaiter, __decorate } from 'tslib';
|
|
37
|
-
import * as i1$6 from '@angular/forms';
|
|
38
33
|
import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
|
|
39
34
|
import { timer, merge, fromEvent, Subscription, BehaviorSubject, Subject, isObservable, of, noop as noop$8, Observable, defer, from, combineLatest, EMPTY } from 'rxjs';
|
|
40
35
|
import { filter, first, map, takeUntil, startWith, debounceTime, takeWhile, switchMap, tap, distinctUntilChanged, mergeMap, catchError, throttleTime } from 'rxjs/operators';
|
|
41
|
-
import * as i1$1 from '@ngx-translate/core';
|
|
42
36
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
43
|
-
import * as i1$4 from '@ionic/angular';
|
|
44
37
|
import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent } from '@ionic/angular';
|
|
45
38
|
import * as momentImported from 'moment';
|
|
46
39
|
import { isMoment } from 'moment';
|
|
47
|
-
import * as i1 from '@angular/material-moment-adapter';
|
|
48
40
|
import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
49
41
|
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
50
42
|
import { TextMaskModule } from 'angular2-text-mask';
|
|
@@ -54,38 +46,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
|
|
|
54
46
|
import { MatDividerModule } from '@angular/material/divider';
|
|
55
47
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
56
48
|
import { MatChipsModule } from '@angular/material/chips';
|
|
57
|
-
import * as i3$3 from '@angular/router';
|
|
58
49
|
import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
|
|
59
|
-
import * as i1$5 from '@angular/platform-browser';
|
|
60
50
|
import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
|
|
61
|
-
import * as i2$2 from '@angular/common/http';
|
|
62
51
|
import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
63
52
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
64
|
-
import { NativeAudio } from '@ionic-native/native-audio/ngx';
|
|
65
|
-
import { Vibration } from '@ionic-native/vibration/ngx';
|
|
53
|
+
import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
|
|
54
|
+
import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
|
|
66
55
|
import { AudioManagement } from '@ionic-native/audio-management/ngx';
|
|
67
|
-
import
|
|
68
|
-
import
|
|
69
|
-
import
|
|
56
|
+
import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
|
|
57
|
+
import { Vibration } from '@ionic-native/vibration/ngx/index';
|
|
58
|
+
import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
|
|
70
59
|
import * as uuidv4Imported from 'uuid/v4';
|
|
71
60
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
72
61
|
import { MarkdownModule } from 'ngx-markdown';
|
|
73
62
|
import { sign, box, hash, verify } from 'tweetnacl';
|
|
74
|
-
import * as i3$1 from '@ionic/storage';
|
|
75
63
|
import { Storage, IonicStorageModule } from '@ionic/storage';
|
|
76
64
|
import 'zone.js/dist/zone-error';
|
|
77
|
-
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
|
|
78
|
-
import { Connection, Network } from '@ionic-native/network/ngx';
|
|
79
|
-
import { CacheService, CacheModule } from 'ionic-cache';
|
|
80
|
-
import
|
|
81
|
-
import
|
|
82
|
-
import
|
|
83
|
-
import { StatusBar } from '@ionic-native/status-bar/ngx';
|
|
84
|
-
import * as i2$4 from '@angular/cdk/platform';
|
|
65
|
+
import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
|
|
66
|
+
import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
|
|
67
|
+
import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
|
|
68
|
+
import { CacheService } from 'ionic-cache/dist/cache.service';
|
|
69
|
+
import { Network } from '@ionic-native/network/ngx/index';
|
|
70
|
+
import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
|
|
71
|
+
import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
|
|
85
72
|
import { Platform as Platform$1 } from '@angular/cdk/platform';
|
|
86
|
-
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
|
73
|
+
import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
|
|
87
74
|
import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
|
|
88
|
-
import * as i2$3 from 'apollo-angular';
|
|
89
75
|
import { Apollo } from 'apollo-angular';
|
|
90
76
|
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
91
77
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
@@ -93,14 +79,13 @@ import { RetryLink } from '@apollo/client/link/retry';
|
|
|
93
79
|
import QueueLink from 'apollo-link-queue';
|
|
94
80
|
import SerializingLink from 'apollo-link-serialize';
|
|
95
81
|
import loggerLink from 'apollo-link-logger';
|
|
96
|
-
import * as i3$2 from 'apollo-angular/http';
|
|
97
82
|
import { HttpLink } from 'apollo-angular/http';
|
|
98
83
|
import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
|
|
99
|
-
import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
|
|
100
|
-
import
|
|
101
|
-
import
|
|
102
|
-
import
|
|
103
|
-
import
|
|
84
|
+
import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
|
|
85
|
+
import { StatusBar } from '@ionic-native/status-bar/ngx/index';
|
|
86
|
+
import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
|
|
87
|
+
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
|
|
88
|
+
import { Downloader } from '@ionic-native/downloader/ngx/index';
|
|
104
89
|
import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
|
|
105
90
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
106
91
|
import { NgxJdenticonModule } from 'ngx-jdenticon';
|
|
@@ -885,19 +870,19 @@ class MatAutocompleteConfigHolder {
|
|
|
885
870
|
return this.fields[fieldName] || this.add(fieldName);
|
|
886
871
|
}
|
|
887
872
|
}
|
|
888
|
-
const DEFAULT_VALUE_ACCESSOR
|
|
873
|
+
const DEFAULT_VALUE_ACCESSOR = {
|
|
889
874
|
provide: NG_VALUE_ACCESSOR,
|
|
890
875
|
useExisting: forwardRef(() => MatAutocompleteField),
|
|
891
876
|
multi: true
|
|
892
877
|
};
|
|
893
|
-
const noop
|
|
894
|
-
const ɵ0
|
|
878
|
+
const noop = () => { };
|
|
879
|
+
const ɵ0 = noop;
|
|
895
880
|
class MatAutocompleteField {
|
|
896
881
|
constructor(cd, formGroupDir) {
|
|
897
882
|
this.cd = cd;
|
|
898
883
|
this.formGroupDir = formGroupDir;
|
|
899
|
-
this._onChangeCallback = noop
|
|
900
|
-
this._onTouchedCallback = noop
|
|
884
|
+
this._onChangeCallback = noop;
|
|
885
|
+
this._onTouchedCallback = noop;
|
|
901
886
|
this._subscription = new Subscription();
|
|
902
887
|
this._filter$ = new BehaviorSubject(undefined);
|
|
903
888
|
this._reload$ = new Subject();
|
|
@@ -1491,7 +1476,7 @@ MatAutocompleteField.decorators = [
|
|
|
1491
1476
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1492
1477
|
selector: 'mat-autocomplete-field',
|
|
1493
1478
|
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <mat-form-field *ngIf=\"_readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n [title]=\"displayValue\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <!-- readonly -->\n <ng-container>\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 <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n\n <ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-disabled]=\"disabled\"\n [title]=\"displayValue\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\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 (keydown.escape)=\"onKeydownEscape.emit($event)\"\n [compareWith]=\"compareWith\"\n [multiple]=\"multiple\"\n [required]=\"required\">\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 <mat-option *ngIf=\"_moreItemsCount\" (ngInit)=\"_initMatSelectInfiniteScroll()\"\n class=\"ion-padding\" disabled>\n <ion-skeleton-text [animated]=\"true\" style=\"width: 100%\"></ion-skeleton-text>\n </mat-option>\n </ng-container>\n </mat-select>\n\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 (keydown.escape)=\"onKeydownEscape.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.opened && 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)=\"_initAutocompleteInfiniteScroll()\"\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 <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\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 </ng-template>\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\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n\n\n<ng-template #matSuffixTemplate>\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 select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
|
|
1494
|
-
providers: [DEFAULT_VALUE_ACCESSOR
|
|
1479
|
+
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
1495
1480
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1496
1481
|
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}"]
|
|
1497
1482
|
},] }
|
|
@@ -1568,7 +1553,7 @@ class DateFormatPipe {
|
|
|
1568
1553
|
return this.dateAdapter.format(date, displayFormat);
|
|
1569
1554
|
}
|
|
1570
1555
|
}
|
|
1571
|
-
DateFormatPipe.ɵprov =
|
|
1556
|
+
DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
1572
1557
|
DateFormatPipe.decorators = [
|
|
1573
1558
|
{ type: Pipe, args: [{
|
|
1574
1559
|
name: 'dateFormat'
|
|
@@ -1580,7 +1565,7 @@ DateFormatPipe.ctorParameters = () => [
|
|
|
1580
1565
|
{ type: TranslateService }
|
|
1581
1566
|
];
|
|
1582
1567
|
|
|
1583
|
-
const moment
|
|
1568
|
+
const moment = momentImported;
|
|
1584
1569
|
class DateDiffDurationPipe {
|
|
1585
1570
|
constructor(dateAdapter, translate) {
|
|
1586
1571
|
this.dateAdapter = dateAdapter;
|
|
@@ -1596,17 +1581,17 @@ class DateDiffDurationPipe {
|
|
|
1596
1581
|
return this.format(startDate, endDate);
|
|
1597
1582
|
}
|
|
1598
1583
|
format(startDate, endDate) {
|
|
1599
|
-
const duration = moment
|
|
1584
|
+
const duration = moment.duration(endDate.diff(startDate));
|
|
1600
1585
|
if (duration.asMinutes() < 0)
|
|
1601
1586
|
return '';
|
|
1602
|
-
const timeDuration = moment
|
|
1587
|
+
const timeDuration = moment(0)
|
|
1603
1588
|
.hour(duration.hours())
|
|
1604
1589
|
.minute(duration.minutes());
|
|
1605
1590
|
const days = Math.floor(duration.asDays());
|
|
1606
1591
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
|
|
1607
1592
|
}
|
|
1608
1593
|
}
|
|
1609
|
-
DateDiffDurationPipe.ɵprov =
|
|
1594
|
+
DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
1610
1595
|
DateDiffDurationPipe.decorators = [
|
|
1611
1596
|
{ type: Pipe, args: [{
|
|
1612
1597
|
name: 'dateDiffDuration'
|
|
@@ -1627,7 +1612,7 @@ class DateFromNowPipe {
|
|
|
1627
1612
|
return date ? date.fromNow(args && args.withoutSuffix) : '';
|
|
1628
1613
|
}
|
|
1629
1614
|
}
|
|
1630
|
-
DateFromNowPipe.ɵprov =
|
|
1615
|
+
DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
1631
1616
|
DateFromNowPipe.decorators = [
|
|
1632
1617
|
{ type: Pipe, args: [{
|
|
1633
1618
|
name: 'dateFromNow'
|
|
@@ -1696,7 +1681,7 @@ function formatToDD(value, opts) {
|
|
|
1696
1681
|
value *= -1;
|
|
1697
1682
|
}
|
|
1698
1683
|
}
|
|
1699
|
-
let degrees = roundFloat
|
|
1684
|
+
let degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
1700
1685
|
// Add sign
|
|
1701
1686
|
let sign = negative ? '-' : '+';
|
|
1702
1687
|
if (opts.placeholderChar) {
|
|
@@ -1747,7 +1732,7 @@ function formatToDDMMSS(value, opts) {
|
|
|
1747
1732
|
}
|
|
1748
1733
|
let degrees = Math.trunc(value);
|
|
1749
1734
|
let minutes = Math.trunc((value - degrees) * 60);
|
|
1750
|
-
let seconds = roundFloat
|
|
1735
|
+
let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1751
1736
|
while (seconds >= 60) {
|
|
1752
1737
|
seconds -= 60;
|
|
1753
1738
|
minutes += 1;
|
|
@@ -1815,7 +1800,7 @@ function formatToDDMM(value, opts) {
|
|
|
1815
1800
|
}
|
|
1816
1801
|
}
|
|
1817
1802
|
let degrees = Math.trunc(value);
|
|
1818
|
-
let minutes = roundFloat
|
|
1803
|
+
let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
1819
1804
|
while (minutes >= 60) {
|
|
1820
1805
|
minutes -= 60;
|
|
1821
1806
|
degrees += 1;
|
|
@@ -1866,15 +1851,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
|
|
|
1866
1851
|
return NaN;
|
|
1867
1852
|
}
|
|
1868
1853
|
if (pattern === 'DD')
|
|
1869
|
-
return roundFloat
|
|
1854
|
+
return roundFloat(degrees, maxDecimals);
|
|
1870
1855
|
const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
1871
1856
|
const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
1872
1857
|
const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
1873
1858
|
const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
1874
1859
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
1875
|
-
return roundFloat
|
|
1860
|
+
return roundFloat(degrees, maxDecimals);
|
|
1876
1861
|
}
|
|
1877
|
-
function roundFloat
|
|
1862
|
+
function roundFloat(input, maxDecimals) {
|
|
1878
1863
|
if (maxDecimals > 0) {
|
|
1879
1864
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
1880
1865
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -1894,7 +1879,7 @@ class LatLongFormatPipe {
|
|
|
1894
1879
|
return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
|
|
1895
1880
|
}
|
|
1896
1881
|
}
|
|
1897
|
-
LatLongFormatPipe.ɵprov =
|
|
1882
|
+
LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
1898
1883
|
LatLongFormatPipe.decorators = [
|
|
1899
1884
|
{ type: Pipe, args: [{
|
|
1900
1885
|
name: 'latLongFormat'
|
|
@@ -1906,7 +1891,7 @@ class LatitudeFormatPipe {
|
|
|
1906
1891
|
this.transform = formatLatitude;
|
|
1907
1892
|
}
|
|
1908
1893
|
}
|
|
1909
|
-
LatitudeFormatPipe.ɵprov =
|
|
1894
|
+
LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
1910
1895
|
LatitudeFormatPipe.decorators = [
|
|
1911
1896
|
{ type: Pipe, args: [{
|
|
1912
1897
|
name: 'latitudeFormat'
|
|
@@ -1918,7 +1903,7 @@ class LongitudeFormatPipe {
|
|
|
1918
1903
|
this.transform = formatLongitude;
|
|
1919
1904
|
}
|
|
1920
1905
|
}
|
|
1921
|
-
LongitudeFormatPipe.ɵprov =
|
|
1906
|
+
LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
1922
1907
|
LongitudeFormatPipe.decorators = [
|
|
1923
1908
|
{ type: Pipe, args: [{
|
|
1924
1909
|
name: 'longitudeFormat'
|
|
@@ -1938,7 +1923,7 @@ class NumberFormatPipe {
|
|
|
1938
1923
|
}
|
|
1939
1924
|
}
|
|
1940
1925
|
}
|
|
1941
|
-
NumberFormatPipe.ɵprov =
|
|
1926
|
+
NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
1942
1927
|
NumberFormatPipe.decorators = [
|
|
1943
1928
|
{ type: Pipe, args: [{
|
|
1944
1929
|
name: 'numberFormat'
|
|
@@ -1978,7 +1963,7 @@ class HighlightPipe {
|
|
|
1978
1963
|
}
|
|
1979
1964
|
}
|
|
1980
1965
|
}
|
|
1981
|
-
HighlightPipe.ɵprov =
|
|
1966
|
+
HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
1982
1967
|
HighlightPipe.decorators = [
|
|
1983
1968
|
{ type: Pipe, args: [{
|
|
1984
1969
|
name: 'highlight'
|
|
@@ -2043,7 +2028,7 @@ FileSizePipe.decorators = [
|
|
|
2043
2028
|
{ type: Pipe, args: [{ name: 'fileSize' },] }
|
|
2044
2029
|
];
|
|
2045
2030
|
|
|
2046
|
-
const moment$
|
|
2031
|
+
const moment$1 = momentImported;
|
|
2047
2032
|
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2048
2033
|
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2049
2034
|
class DateUtils {
|
|
@@ -2077,32 +2062,32 @@ function fromDateISOString(value) {
|
|
|
2077
2062
|
if (!value || isMoment(value))
|
|
2078
2063
|
return value;
|
|
2079
2064
|
// Parse the input value, as a ISO date time
|
|
2080
|
-
const date = moment$
|
|
2065
|
+
const date = moment$1(value, DATE_ISO_PATTERN);
|
|
2081
2066
|
if (date.isValid())
|
|
2082
2067
|
return date;
|
|
2083
2068
|
// Not valid: trying to convert from unix timestamp
|
|
2084
2069
|
if (typeof value === 'string') {
|
|
2085
2070
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2086
2071
|
if (value.length === 10) {
|
|
2087
|
-
return moment$
|
|
2072
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2088
2073
|
}
|
|
2089
2074
|
else if (value.length === 13) {
|
|
2090
|
-
return moment$
|
|
2075
|
+
return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2091
2076
|
}
|
|
2092
2077
|
}
|
|
2093
2078
|
console.warn('Unable to parse date: ' + value);
|
|
2094
2079
|
return undefined;
|
|
2095
2080
|
}
|
|
2096
2081
|
function fromUnixTimestamp(timeInSec) {
|
|
2097
|
-
return moment$
|
|
2082
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2098
2083
|
}
|
|
2099
2084
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2100
|
-
return moment$
|
|
2085
|
+
return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2101
2086
|
}
|
|
2102
2087
|
function toDuration(value, unit) {
|
|
2103
2088
|
if (!value)
|
|
2104
2089
|
return undefined;
|
|
2105
|
-
const duration = moment$
|
|
2090
|
+
const duration = moment$1.duration(value, unit);
|
|
2106
2091
|
// fix 990+ ms
|
|
2107
2092
|
if (duration.milliseconds() >= 990) {
|
|
2108
2093
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2131,7 +2116,7 @@ class DurationPipe {
|
|
|
2131
2116
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
|
|
2132
2117
|
}
|
|
2133
2118
|
}
|
|
2134
|
-
DurationPipe.ɵprov =
|
|
2119
|
+
DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2135
2120
|
DurationPipe.decorators = [
|
|
2136
2121
|
{ type: Pipe, args: [{
|
|
2137
2122
|
name: 'duration'
|
|
@@ -2152,7 +2137,7 @@ class MathAbsPipe {
|
|
|
2152
2137
|
}
|
|
2153
2138
|
}
|
|
2154
2139
|
}
|
|
2155
|
-
MathAbsPipe.ɵprov =
|
|
2140
|
+
MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2156
2141
|
MathAbsPipe.decorators = [
|
|
2157
2142
|
{ type: Pipe, args: [{
|
|
2158
2143
|
name: 'mathAbs'
|
|
@@ -2164,7 +2149,7 @@ class EvenPipe {
|
|
|
2164
2149
|
return val % 2 === 0;
|
|
2165
2150
|
}
|
|
2166
2151
|
}
|
|
2167
|
-
EvenPipe.ɵprov =
|
|
2152
|
+
EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2168
2153
|
EvenPipe.decorators = [
|
|
2169
2154
|
{ type: Pipe, args: [{
|
|
2170
2155
|
name: 'even'
|
|
@@ -2176,7 +2161,7 @@ class OddPipe {
|
|
|
2176
2161
|
return val % 2 !== 0;
|
|
2177
2162
|
}
|
|
2178
2163
|
}
|
|
2179
|
-
OddPipe.ɵprov =
|
|
2164
|
+
OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2180
2165
|
OddPipe.decorators = [
|
|
2181
2166
|
{ type: Pipe, args: [{
|
|
2182
2167
|
name: 'odd'
|
|
@@ -2284,7 +2269,7 @@ class MapGetPipe {
|
|
|
2284
2269
|
return val[key];
|
|
2285
2270
|
}
|
|
2286
2271
|
}
|
|
2287
|
-
MapGetPipe.ɵprov =
|
|
2272
|
+
MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2288
2273
|
MapGetPipe.decorators = [
|
|
2289
2274
|
{ type: Pipe, args: [{
|
|
2290
2275
|
name: 'mapGet'
|
|
@@ -2298,7 +2283,7 @@ class MapKeysPipe {
|
|
|
2298
2283
|
return Object.keys(map);
|
|
2299
2284
|
}
|
|
2300
2285
|
}
|
|
2301
|
-
MapKeysPipe.ɵprov =
|
|
2286
|
+
MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2302
2287
|
MapKeysPipe.decorators = [
|
|
2303
2288
|
{ type: Pipe, args: [{
|
|
2304
2289
|
name: 'mapKeys'
|
|
@@ -2312,7 +2297,7 @@ class MapValuesPipe {
|
|
|
2312
2297
|
return Object.values(map);
|
|
2313
2298
|
}
|
|
2314
2299
|
}
|
|
2315
|
-
MapValuesPipe.ɵprov =
|
|
2300
|
+
MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2316
2301
|
MapValuesPipe.decorators = [
|
|
2317
2302
|
{ type: Pipe, args: [{
|
|
2318
2303
|
name: 'mapValues'
|
|
@@ -2325,7 +2310,7 @@ class IsNotNilOrBlankPipe {
|
|
|
2325
2310
|
return isNotNilOrBlank(value);
|
|
2326
2311
|
}
|
|
2327
2312
|
}
|
|
2328
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
2313
|
+
IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2329
2314
|
IsNotNilOrBlankPipe.decorators = [
|
|
2330
2315
|
{ type: Pipe, args: [{
|
|
2331
2316
|
name: 'isNotNilOrBlank'
|
|
@@ -2337,7 +2322,7 @@ class IsNilOrBlankPipe {
|
|
|
2337
2322
|
return isNilOrBlank(value);
|
|
2338
2323
|
}
|
|
2339
2324
|
}
|
|
2340
|
-
IsNilOrBlankPipe.ɵprov =
|
|
2325
|
+
IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2341
2326
|
IsNilOrBlankPipe.decorators = [
|
|
2342
2327
|
{ type: Pipe, args: [{
|
|
2343
2328
|
name: 'isNilOrBlank'
|
|
@@ -2349,7 +2334,7 @@ class ToStringPipe {
|
|
|
2349
2334
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
2350
2335
|
}
|
|
2351
2336
|
}
|
|
2352
|
-
ToStringPipe.ɵprov =
|
|
2337
|
+
ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2353
2338
|
ToStringPipe.decorators = [
|
|
2354
2339
|
{ type: Pipe, args: [{
|
|
2355
2340
|
name: 'toString'
|
|
@@ -2361,7 +2346,7 @@ class StrLengthPipe {
|
|
|
2361
2346
|
return value && value.length || 0;
|
|
2362
2347
|
}
|
|
2363
2348
|
}
|
|
2364
|
-
StrLengthPipe.ɵprov =
|
|
2349
|
+
StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2365
2350
|
StrLengthPipe.decorators = [
|
|
2366
2351
|
{ type: Pipe, args: [{
|
|
2367
2352
|
name: 'strLength'
|
|
@@ -2412,7 +2397,7 @@ class TranslateContextService {
|
|
|
2412
2397
|
: parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
|
|
2413
2398
|
}
|
|
2414
2399
|
}
|
|
2415
|
-
TranslateContextService.ɵprov =
|
|
2400
|
+
TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
2416
2401
|
TranslateContextService.decorators = [
|
|
2417
2402
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2418
2403
|
];
|
|
@@ -2428,7 +2413,7 @@ class TranslateContextPipe {
|
|
|
2428
2413
|
return this.translateContext.instant(key, context);
|
|
2429
2414
|
}
|
|
2430
2415
|
}
|
|
2431
|
-
TranslateContextPipe.ɵprov =
|
|
2416
|
+
TranslateContextPipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
|
|
2432
2417
|
TranslateContextPipe.decorators = [
|
|
2433
2418
|
{ type: Pipe, args: [{
|
|
2434
2419
|
name: 'translateContext'
|
|
@@ -2445,7 +2430,7 @@ class TranslatablePipe {
|
|
|
2445
2430
|
return (_a = changeCaseToUnderscore(value)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
2446
2431
|
}
|
|
2447
2432
|
}
|
|
2448
|
-
TranslatablePipe.ɵprov =
|
|
2433
|
+
TranslatablePipe.ɵprov = ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
|
|
2449
2434
|
TranslatablePipe.decorators = [
|
|
2450
2435
|
{ type: Pipe, args: [{
|
|
2451
2436
|
name: 'translatable'
|
|
@@ -2462,7 +2447,7 @@ class PropertyGetPipe {
|
|
|
2462
2447
|
args && args.defaultValue);
|
|
2463
2448
|
}
|
|
2464
2449
|
}
|
|
2465
|
-
PropertyGetPipe.ɵprov =
|
|
2450
|
+
PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
2466
2451
|
PropertyGetPipe.decorators = [
|
|
2467
2452
|
{ type: Pipe, args: [{
|
|
2468
2453
|
name: 'propertyGet'
|
|
@@ -2487,12 +2472,12 @@ NgInitDirective.propDecorators = {
|
|
|
2487
2472
|
ngInit: [{ type: Output }]
|
|
2488
2473
|
};
|
|
2489
2474
|
|
|
2490
|
-
const moment$
|
|
2475
|
+
const moment$2 = momentImported;
|
|
2491
2476
|
// @dynamic
|
|
2492
2477
|
class SharedValidators {
|
|
2493
2478
|
static validDate(control) {
|
|
2494
2479
|
const value = control.value;
|
|
2495
|
-
const date = !value || moment$
|
|
2480
|
+
const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
|
|
2496
2481
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
2497
2482
|
return { validDate: true };
|
|
2498
2483
|
}
|
|
@@ -3469,7 +3454,7 @@ class FormArrayHelper {
|
|
|
3469
3454
|
}
|
|
3470
3455
|
|
|
3471
3456
|
const APP_FORM_ERROR_I18N_KEYS = new InjectionToken('appFormErrorKeys');
|
|
3472
|
-
class
|
|
3457
|
+
class FormErrorTranslator {
|
|
3473
3458
|
constructor(translate, errorI18nKeys) {
|
|
3474
3459
|
this.translate = translate;
|
|
3475
3460
|
this.errorI18nKeys = Object.assign(Object.assign({}, SharedValidators.I18N_ERROR_KEYS), errorI18nKeys);
|
|
@@ -3527,11 +3512,11 @@ class FormErrorAdapter {
|
|
|
3527
3512
|
return errorKey;
|
|
3528
3513
|
}
|
|
3529
3514
|
}
|
|
3530
|
-
|
|
3531
|
-
|
|
3515
|
+
FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
3516
|
+
FormErrorTranslator.decorators = [
|
|
3532
3517
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
3533
3518
|
];
|
|
3534
|
-
|
|
3519
|
+
FormErrorTranslator.ctorParameters = () => [
|
|
3535
3520
|
{ type: TranslateService },
|
|
3536
3521
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_FORM_ERROR_I18N_KEYS,] }] }
|
|
3537
3522
|
];
|
|
@@ -3550,7 +3535,7 @@ FormErrorTranslatePipe.decorators = [
|
|
|
3550
3535
|
},] }
|
|
3551
3536
|
];
|
|
3552
3537
|
FormErrorTranslatePipe.ctorParameters = () => [
|
|
3553
|
-
{ type:
|
|
3538
|
+
{ type: FormErrorTranslator }
|
|
3554
3539
|
];
|
|
3555
3540
|
|
|
3556
3541
|
class SharedPipesModule {
|
|
@@ -3796,9 +3781,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
|
|
|
3796
3781
|
const hour = parseInt(durationParts[0] || '0');
|
|
3797
3782
|
const minute = parseInt(durationParts[1] || '0');
|
|
3798
3783
|
const value = hour + (minute + 0.5) / 60;
|
|
3799
|
-
return roundFloat(value, maxDecimals);
|
|
3784
|
+
return roundFloat$1(value, maxDecimals);
|
|
3800
3785
|
}
|
|
3801
|
-
function roundFloat(input, maxDecimals) {
|
|
3786
|
+
function roundFloat$1(input, maxDecimals) {
|
|
3802
3787
|
if (maxDecimals > 0) {
|
|
3803
3788
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
3804
3789
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -3822,9 +3807,9 @@ const MASKS = {
|
|
|
3822
3807
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
3823
3808
|
}
|
|
3824
3809
|
};
|
|
3825
|
-
const noop$
|
|
3810
|
+
const noop$1 = () => {
|
|
3826
3811
|
};
|
|
3827
|
-
const ɵ0$
|
|
3812
|
+
const ɵ0$1 = noop$1;
|
|
3828
3813
|
class MatLatLongField {
|
|
3829
3814
|
constructor(platform, translate, formBuilder, cd, formGroupDir) {
|
|
3830
3815
|
this.platform = platform;
|
|
@@ -3832,8 +3817,8 @@ class MatLatLongField {
|
|
|
3832
3817
|
this.formBuilder = formBuilder;
|
|
3833
3818
|
this.cd = cd;
|
|
3834
3819
|
this.formGroupDir = formGroupDir;
|
|
3835
|
-
this._onChangeCallback = noop$
|
|
3836
|
-
this._onTouchedCallback = noop$
|
|
3820
|
+
this._onChangeCallback = noop$1;
|
|
3821
|
+
this._onTouchedCallback = noop$1;
|
|
3837
3822
|
this._subscription = new Subscription();
|
|
3838
3823
|
this.disabling = false;
|
|
3839
3824
|
this.writing = false;
|
|
@@ -4169,14 +4154,14 @@ SharedMatLatLongModule.decorators = [
|
|
|
4169
4154
|
},] }
|
|
4170
4155
|
];
|
|
4171
4156
|
|
|
4172
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4157
|
+
const DEFAULT_VALUE_ACCESSOR$1 = {
|
|
4173
4158
|
provide: NG_VALUE_ACCESSOR,
|
|
4174
4159
|
useExisting: forwardRef(() => MatDate),
|
|
4175
4160
|
multi: true
|
|
4176
4161
|
};
|
|
4177
|
-
const DAY_MASK
|
|
4178
|
-
const noop$
|
|
4179
|
-
const ɵ0$
|
|
4162
|
+
const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4163
|
+
const noop$2 = () => { };
|
|
4164
|
+
const ɵ0$2 = noop$2;
|
|
4180
4165
|
class MatDate {
|
|
4181
4166
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4182
4167
|
this.dateAdapter = dateAdapter;
|
|
@@ -4185,12 +4170,12 @@ class MatDate {
|
|
|
4185
4170
|
this.cd = cd;
|
|
4186
4171
|
this.keyboard = keyboard;
|
|
4187
4172
|
this.formGroupDir = formGroupDir;
|
|
4188
|
-
this._onChangeCallback = noop$
|
|
4189
|
-
this._onTouchedCallback = noop$
|
|
4173
|
+
this._onChangeCallback = noop$2;
|
|
4174
|
+
this._onTouchedCallback = noop$2;
|
|
4190
4175
|
this._subscription = new Subscription();
|
|
4191
4176
|
this.writing = true;
|
|
4192
4177
|
this.disabling = false;
|
|
4193
|
-
this.dayMask = DAY_MASK
|
|
4178
|
+
this.dayMask = DAY_MASK;
|
|
4194
4179
|
this.disabled = false;
|
|
4195
4180
|
this.floatLabel = 'auto';
|
|
4196
4181
|
this.readonly = false;
|
|
@@ -4427,7 +4412,7 @@ MatDate.decorators = [
|
|
|
4427
4412
|
selector: 'mat-date-field',
|
|
4428
4413
|
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",
|
|
4429
4414
|
providers: [
|
|
4430
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4415
|
+
DEFAULT_VALUE_ACCESSOR$1,
|
|
4431
4416
|
],
|
|
4432
4417
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4433
4418
|
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%}"]
|
|
@@ -4460,17 +4445,17 @@ MatDate.propDecorators = {
|
|
|
4460
4445
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
4461
4446
|
};
|
|
4462
4447
|
|
|
4463
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4448
|
+
const DEFAULT_VALUE_ACCESSOR$2 = {
|
|
4464
4449
|
provide: NG_VALUE_ACCESSOR,
|
|
4465
4450
|
useExisting: forwardRef(() => MatDateTime),
|
|
4466
4451
|
multi: true
|
|
4467
4452
|
};
|
|
4468
4453
|
const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4469
4454
|
const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
4470
|
-
const HOUR_MASK
|
|
4471
|
-
const noop$
|
|
4455
|
+
const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4456
|
+
const noop$3 = () => {
|
|
4472
4457
|
};
|
|
4473
|
-
const ɵ0$
|
|
4458
|
+
const ɵ0$3 = noop$3;
|
|
4474
4459
|
class MatDateTime {
|
|
4475
4460
|
constructor(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
|
|
4476
4461
|
this.platform = platform;
|
|
@@ -4480,14 +4465,14 @@ class MatDateTime {
|
|
|
4480
4465
|
this.keyboard = keyboard;
|
|
4481
4466
|
this.cd = cd;
|
|
4482
4467
|
this.formGroupDir = formGroupDir;
|
|
4483
|
-
this._onChangeCallback = noop$
|
|
4484
|
-
this._onTouchedCallback = noop$
|
|
4468
|
+
this._onChangeCallback = noop$3;
|
|
4469
|
+
this._onTouchedCallback = noop$3;
|
|
4485
4470
|
this._subscription = new Subscription();
|
|
4486
4471
|
this.writing = true;
|
|
4487
4472
|
this.disabling = false;
|
|
4488
4473
|
this._readonly = false;
|
|
4489
4474
|
this.dayMask = DAY_MASK$1;
|
|
4490
|
-
this.hourMask = HOUR_MASK
|
|
4475
|
+
this.hourMask = HOUR_MASK;
|
|
4491
4476
|
this.floatLabel = 'auto';
|
|
4492
4477
|
this.compact = false;
|
|
4493
4478
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -4798,7 +4783,7 @@ MatDateTime.decorators = [
|
|
|
4798
4783
|
selector: 'mat-date-time-field',
|
|
4799
4784
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled\">\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput hidden type=\"text\"\n readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<!-- writable + time -->\n<ng-template #writable >\n <ion-grid class=\"ion-no-padding\">\n <ion-row class=\"ion-no-padding no-wrap\" nowrap>\n\n <!-- day -->\n <ion-col class=\"day ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && formControl.invalid\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dateFormControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker)\"\n (keyup.escape)=\"preventEvent($event)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n [appAutofocus]=\"autofocus\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dateFormControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n <input matInput type=\"text\" [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n <button type=\"button\" mat-icon-button tabindex=\"-1\" matSuffix #datePickerButton2 (click)=\"openDatePicker($event, datePicker)\" [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clear()\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n </mat-form-field>\n <mat-datepicker #datePicker\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n [startAt]=\"startDate\"></mat-datepicker>\n <div class=\"mat-form-field-subscript mat-form-field-subscript-wrapper\" >\n <!-- errors -->\n <ng-container [ngSwitch]=\"formControl.touched && formControl.errors|mapKeys|arrayFirst\">\n <mat-error *ngSwitchCase=\"'required'\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngSwitchCase=\"'validDate'\" translate>ERROR.FIELD_NOT_VALID_DATE_TIME</mat-error>\n <mat-error *ngSwitchCase=\"'dateIsAfter'\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngSwitchCase=\"'dateRange'\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngSwitchCase=\"'dateMaxDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'dateMinDuration'\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngSwitchCase=\"'msg'\">{{(formControl.errors.msg?.key || formControl.errors.msg) | translate: formControl.errors.msg?.params}}</mat-error>\n </ng-container>\n <ng-content select=\"mat-error\"></ng-content>\n\n <!-- mat hint -->\n <div class=\"mat-form-field-hint-wrapper\" [class.cdk-visually-hidden]=\"formControl.invalid\">\n <div class=\"mat-form-field-hint-spacer\"></div>\n <ng-content select=\"mat-hint\"></ng-content>\n </div>\n </div>\n\n </ion-col>\n\n <!-- hour -->\n <ion-col class=\"hour ion-no-padding\">\n <mat-form-field [floatLabel]=\"floatLabel\"\n [class.mat-form-field-invalid]=\"formControl.touched && (timeFormControl.invalid || formControl.invalid)\">\n <mat-label *ngIf=\"placeholder && floatLabel != 'never'\" translate>COMMON.TIME</mat-label>\n <input matInput #matInput type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"timeFormControl\"\n autocomplete=\"off\"\n min=\"0\" max=\"23\"\n [textMask]=\"{mask: hourMask, keepCharPositions: true, placeholderChar: placeholderChar, guide: true}\"\n [placeholder]=\"'COMMON.TIME_PLACEHOLDER'|translate\"\n [required]=\"required\"\n (keyup.arrowdown)=\"openTimePicker($event)\"\n (keyup.escape)=\"preventEvent($event)\"\n (blur)=\"checkIfTouched()\"\n [tabindex]=\"tabindex !== undefined ? tabindex+1 : undefined\">\n\n <input matInput #matInput type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"timeFormControl\"\n (click)=\"openTimePickerIfMobile($event)\"\n readonly>\n\n <input matInput type=\"text\"\n [formControl]=\"timeFormControl\"\n hidden\n [ngxTimepicker]=\"timePicker\"\n [format]=\"24\">\n\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && !mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePicker($event)\" >\n <mat-icon>keyboard_arrow_down</mat-icon>\n </button>\n <button matSuffix type=\"button\" mat-icon-button\n tabindex=\"-1\"\n *ngIf=\"!compact && mobile\"\n [disabled]=\"formControl.disabled\"\n (click)=\"openTimePickerIfMobile($event)\">\n <mat-icon>access_time</mat-icon>\n </button>\n\n <ngx-material-timepicker #timePicker [@.disabled]=\"true\"\n (timeSet)=\"onTimePickerChange($event)\"\n [ESC]=\"!mobile\"\n [defaultTime]=\"'00:00'\"\n [cancelBtnTmpl]=\"timePickerCancelButton\"\n [confirmBtnTmpl]=\"timePickerOkButton\"\n [preventOverlayClick]=\"mobile\"\n [enableKeyboardInput]=\"false\"\n [disableAnimation]=\"true\">\n <!-- cancel button -->\n <ng-template #timePickerCancelButton>\n <ion-button fill=\"clear\" color=\"dark\">\n <ion-label translate>COMMON.BTN_CANCEL</ion-label>\n </ion-button>\n </ng-template>\n\n <!-- confirm button -->\n <ng-template #timePickerOkButton>\n <ion-button fill=\"solid\" color=\"tertiary\">\n <ion-label translate>COMMON.BTN_VALIDATE</ion-label>\n </ion-button>\n </ng-template>\n\n </ngx-material-timepicker>\n </mat-form-field>\n </ion-col>\n </ion-row>\n </ion-grid>\n\n\n</ng-template>\n\n<ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n</ng-template>\n\n<ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n</ng-template>\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n",
|
|
4800
4785
|
providers: [
|
|
4801
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4786
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
4802
4787
|
],
|
|
4803
4788
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4804
4789
|
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%}"]
|
|
@@ -4837,10 +4822,10 @@ const DEFAULT_VALUE_ACCESSOR$3 = {
|
|
|
4837
4822
|
useExisting: forwardRef(() => MatDateShort),
|
|
4838
4823
|
multi: true
|
|
4839
4824
|
};
|
|
4840
|
-
const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
4841
|
-
const noop$
|
|
4825
|
+
const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
|
|
4826
|
+
const noop$4 = () => {
|
|
4842
4827
|
};
|
|
4843
|
-
const ɵ0$
|
|
4828
|
+
const ɵ0$4 = noop$4;
|
|
4844
4829
|
class MatDateShort {
|
|
4845
4830
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4846
4831
|
this.dateAdapter = dateAdapter;
|
|
@@ -4849,11 +4834,11 @@ class MatDateShort {
|
|
|
4849
4834
|
this.cd = cd;
|
|
4850
4835
|
this.keyboard = keyboard;
|
|
4851
4836
|
this.formGroupDir = formGroupDir;
|
|
4852
|
-
this._onChangeCallback = noop$
|
|
4853
|
-
this._onTouchedCallback = noop$
|
|
4837
|
+
this._onChangeCallback = noop$4;
|
|
4838
|
+
this._onTouchedCallback = noop$4;
|
|
4854
4839
|
this.writing = true;
|
|
4855
4840
|
this.disabling = false;
|
|
4856
|
-
this.dayMask = DAY_MASK;
|
|
4841
|
+
this.dayMask = DAY_MASK$2;
|
|
4857
4842
|
this.disabled = false;
|
|
4858
4843
|
this.floatLabel = 'auto';
|
|
4859
4844
|
this.readonly = false;
|
|
@@ -5166,16 +5151,16 @@ SharedMatDateTimeModule.decorators = [
|
|
|
5166
5151
|
},] }
|
|
5167
5152
|
];
|
|
5168
5153
|
|
|
5169
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5154
|
+
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
5170
5155
|
provide: NG_VALUE_ACCESSOR,
|
|
5171
5156
|
useExisting: forwardRef(() => MatDuration),
|
|
5172
5157
|
multi: true
|
|
5173
5158
|
};
|
|
5174
5159
|
const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
5175
|
-
const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5176
|
-
const noop$
|
|
5160
|
+
const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5161
|
+
const noop$5 = () => {
|
|
5177
5162
|
};
|
|
5178
|
-
const ɵ0$5 = noop$
|
|
5163
|
+
const ɵ0$5 = noop$5;
|
|
5179
5164
|
class MatDuration {
|
|
5180
5165
|
constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
5181
5166
|
this.dateAdapter = dateAdapter;
|
|
@@ -5184,11 +5169,11 @@ class MatDuration {
|
|
|
5184
5169
|
this.cd = cd;
|
|
5185
5170
|
this.formGroupDir = formGroupDir;
|
|
5186
5171
|
this._subscription = new Subscription();
|
|
5187
|
-
this._onChangeCallback = noop$
|
|
5188
|
-
this._onTouchedCallback = noop$
|
|
5172
|
+
this._onChangeCallback = noop$5;
|
|
5173
|
+
this._onTouchedCallback = noop$5;
|
|
5189
5174
|
this.writing = true;
|
|
5190
5175
|
this.disabling = false;
|
|
5191
|
-
this.hourMask = HOUR_MASK;
|
|
5176
|
+
this.hourMask = HOUR_MASK$1;
|
|
5192
5177
|
this.disabled = false;
|
|
5193
5178
|
this.floatLabel = 'auto';
|
|
5194
5179
|
this.readonly = false;
|
|
@@ -5368,7 +5353,7 @@ MatDuration.decorators = [
|
|
|
5368
5353
|
selector: 'mat-duration-field',
|
|
5369
5354
|
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",
|
|
5370
5355
|
providers: [
|
|
5371
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5356
|
+
DEFAULT_VALUE_ACCESSOR$4,
|
|
5372
5357
|
],
|
|
5373
5358
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5374
5359
|
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%}"]
|
|
@@ -5425,22 +5410,22 @@ SharedMatDurationModule.decorators = [
|
|
|
5425
5410
|
},] }
|
|
5426
5411
|
];
|
|
5427
5412
|
|
|
5428
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5413
|
+
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
5429
5414
|
provide: NG_VALUE_ACCESSOR,
|
|
5430
5415
|
useExisting: forwardRef(() => MatBooleanField),
|
|
5431
5416
|
multi: true
|
|
5432
5417
|
};
|
|
5433
|
-
const noop$
|
|
5418
|
+
const noop$6 = () => {
|
|
5434
5419
|
};
|
|
5435
|
-
const ɵ0$
|
|
5420
|
+
const ɵ0$6 = noop$6;
|
|
5436
5421
|
class MatBooleanField {
|
|
5437
5422
|
constructor(translate, formBuilder, cd, formGroupDir) {
|
|
5438
5423
|
this.translate = translate;
|
|
5439
5424
|
this.formBuilder = formBuilder;
|
|
5440
5425
|
this.cd = cd;
|
|
5441
5426
|
this.formGroupDir = formGroupDir;
|
|
5442
|
-
this._onChangeCallback = noop$
|
|
5443
|
-
this._onTouchedCallback = noop$
|
|
5427
|
+
this._onChangeCallback = noop$6;
|
|
5428
|
+
this._onTouchedCallback = noop$6;
|
|
5444
5429
|
this._writing = false;
|
|
5445
5430
|
this.showRadio = false;
|
|
5446
5431
|
this.disabled = false;
|
|
@@ -5613,7 +5598,7 @@ MatBooleanField.decorators = [
|
|
|
5613
5598
|
selector: 'mat-boolean-field',
|
|
5614
5599
|
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button> \n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <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 {{classList}}\">\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 {{classList}}\">\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <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",
|
|
5615
5600
|
providers: [
|
|
5616
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5601
|
+
DEFAULT_VALUE_ACCESSOR$5
|
|
5617
5602
|
],
|
|
5618
5603
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5619
5604
|
styles: [":host{width:100%}.mat-form-field.mat-boolean-field-radio{margin-top:-2px}.mat-form-field.mat-boolean-field-button{margin-top:-4px}.mat-form-field .mat-form-field-buttons{width:100%;display:flex;flex-flow:row wrap;justify-content:flex-start;align-items:center}.mat-form-field .mat-form-field-buttons .mat-form-field-button{--flex-basis:calc(100% / var(--buttons-col-count, 2));flex:0 1 var(--flex-basis);max-width:min(var(--flex-basis),150px);white-space:normal;padding:0 2px;height:40px}"]
|
|
@@ -5861,7 +5846,7 @@ class MatNumpadDomService {
|
|
|
5861
5846
|
this.appRef.detachView(this.componentRef.hostView);
|
|
5862
5847
|
}
|
|
5863
5848
|
}
|
|
5864
|
-
MatNumpadDomService.ɵprov =
|
|
5849
|
+
MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
5865
5850
|
MatNumpadDomService.decorators = [
|
|
5866
5851
|
{ type: Injectable, args: [{
|
|
5867
5852
|
providedIn: 'root'
|
|
@@ -6225,7 +6210,7 @@ SharedMatNumpadModule.decorators = [
|
|
|
6225
6210
|
},] }
|
|
6226
6211
|
];
|
|
6227
6212
|
|
|
6228
|
-
const DEFAULT_VALUE_ACCESSOR = {
|
|
6213
|
+
const DEFAULT_VALUE_ACCESSOR$6 = {
|
|
6229
6214
|
provide: NG_VALUE_ACCESSOR,
|
|
6230
6215
|
useExisting: forwardRef(() => MatSwipeField),
|
|
6231
6216
|
multi: true
|
|
@@ -6488,7 +6473,7 @@ MatSwipeField.decorators = [
|
|
|
6488
6473
|
{ type: Component, args: [{
|
|
6489
6474
|
selector: 'mat-swipe-field',
|
|
6490
6475
|
template: "<mat-form-field [floatLabel]=\"showSlides && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n [class]=\"classList\"\n [class.mat-form-field-disabled]=\"disabled\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n </mat-label>\n <input matInput #fakeInput type=\"text\"\n [formControl]=\"formControl\"\n [readonly]=\"true\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showSlides\"\n [tabindex]=\"tabindex\">\n\n <div class=\"slides-container\" [class.hidden]=\"!showSlides\">\n <ion-slides #slides\n [options]=\"slidesOptions\"\n (ionSlidesDidLoad)=\"slidesLoaded()\"\n (ionSlideReachStart)=\"reachStart(true)\"\n (ionSlideReachEnd)=\"reachEnd(true)\"\n (ionSlideNextEnd)=\"reachStart(false)\"\n (ionSlidePrevEnd)=\"reachEnd(false)\"\n (ionSlideDidChange)=\"slideChanged()\"\n >\n <ion-slide *ngFor=\"let item of $items | async\">\n <ion-label>{{ displayWith(item) }}</ion-label>\n </ion-slide>\n\n </ion-slides>\n </div>\n\n <button #prevButton\n mat-icon-button\n type=\"button\"\n class=\"button-prev\"\n [hidden]=\"!showSlides\"\n [disabled]=\"previousDisabled\"\n (click)=\"previous()\">\n <mat-icon>chevron_left</mat-icon>\n </button>\n <button #nextButton\n mat-icon-button\n type=\"button\"\n class=\"button-next\"\n [hidden]=\"!showSlides\"\n [disabled]=\"nextDisabled\"\n (click)=\"next()\">\n <mat-icon>chevron_right</mat-icon>\n </button>\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"clearValue($event)\"\n [hidden]=\"disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('entity')\" translate>ERROR.FIELD_INVALID</mat-error>\n\n</mat-form-field>\n",
|
|
6491
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
6476
|
+
providers: [DEFAULT_VALUE_ACCESSOR$6],
|
|
6492
6477
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6493
6478
|
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}"]
|
|
6494
6479
|
},] }
|
|
@@ -6908,6 +6893,85 @@ MaterialChipsModule.decorators = [
|
|
|
6908
6893
|
},] }
|
|
6909
6894
|
];
|
|
6910
6895
|
|
|
6896
|
+
class MatBadgeIconDirective {
|
|
6897
|
+
constructor(el) {
|
|
6898
|
+
this.el = el;
|
|
6899
|
+
}
|
|
6900
|
+
ngOnInit() {
|
|
6901
|
+
this.size = this.size || 'medium';
|
|
6902
|
+
this.color = this.color || 'primary';
|
|
6903
|
+
if (this.color === 'warn')
|
|
6904
|
+
this.color = 'warning';
|
|
6905
|
+
let fontSize;
|
|
6906
|
+
switch (this.size) {
|
|
6907
|
+
case 'large':
|
|
6908
|
+
fontSize = '24px';
|
|
6909
|
+
break;
|
|
6910
|
+
case 'medium':
|
|
6911
|
+
fontSize = '22px';
|
|
6912
|
+
break;
|
|
6913
|
+
case 'small':
|
|
6914
|
+
fontSize = '16px';
|
|
6915
|
+
break;
|
|
6916
|
+
}
|
|
6917
|
+
const badge = this.el.nativeElement.querySelector('.mat-badge-content');
|
|
6918
|
+
badge.style.display = 'flex';
|
|
6919
|
+
badge.style.alignItems = 'center';
|
|
6920
|
+
badge.style.justifyContent = 'center';
|
|
6921
|
+
// fill: 'clear'
|
|
6922
|
+
if (this.fill === 'clear') {
|
|
6923
|
+
badge.style.color = `var(--ion-color-${this.color})`;
|
|
6924
|
+
badge.style.background = 'transparent';
|
|
6925
|
+
}
|
|
6926
|
+
// fill: 'solid' (default value)
|
|
6927
|
+
else {
|
|
6928
|
+
badge.style.background = `var(--ion-color-${this.color})`;
|
|
6929
|
+
badge.style.color = `var(--ion-color-${this.color}-contrast)`;
|
|
6930
|
+
}
|
|
6931
|
+
if (this.matIcon) {
|
|
6932
|
+
badge.innerHTML = `<i class="material-icons" style="font-size: ${fontSize};">${this.matIcon}</i>`;
|
|
6933
|
+
}
|
|
6934
|
+
else if (this.ionIcon) {
|
|
6935
|
+
badge.innerHTML = `<ion-icon style="font-size: ${fontSize};" name="${this.ionIcon}"></ion-icon>`;
|
|
6936
|
+
}
|
|
6937
|
+
}
|
|
6938
|
+
}
|
|
6939
|
+
MatBadgeIconDirective.decorators = [
|
|
6940
|
+
{ type: Directive, args: [{
|
|
6941
|
+
selector: '[matBadgeIcon], [ionBadgeIcon]',
|
|
6942
|
+
inputs: [
|
|
6943
|
+
'size: matBadgeSize',
|
|
6944
|
+
'color: matBadgeColor',
|
|
6945
|
+
'fill: matBadgeFill',
|
|
6946
|
+
]
|
|
6947
|
+
},] }
|
|
6948
|
+
];
|
|
6949
|
+
MatBadgeIconDirective.ctorParameters = () => [
|
|
6950
|
+
{ type: ElementRef }
|
|
6951
|
+
];
|
|
6952
|
+
MatBadgeIconDirective.propDecorators = {
|
|
6953
|
+
matIcon: [{ type: Input, args: ['matBadgeIcon',] }],
|
|
6954
|
+
ionIcon: [{ type: Input, args: ['ionBadgeIcon',] }]
|
|
6955
|
+
};
|
|
6956
|
+
|
|
6957
|
+
class SharedMatBadgeIconModule {
|
|
6958
|
+
}
|
|
6959
|
+
SharedMatBadgeIconModule.decorators = [
|
|
6960
|
+
{ type: NgModule, args: [{
|
|
6961
|
+
imports: [
|
|
6962
|
+
CommonModule,
|
|
6963
|
+
IonicModule,
|
|
6964
|
+
MatBadgeModule,
|
|
6965
|
+
],
|
|
6966
|
+
exports: [
|
|
6967
|
+
MatBadgeIconDirective
|
|
6968
|
+
],
|
|
6969
|
+
declarations: [
|
|
6970
|
+
MatBadgeIconDirective
|
|
6971
|
+
]
|
|
6972
|
+
},] }
|
|
6973
|
+
];
|
|
6974
|
+
|
|
6911
6975
|
const modules = [
|
|
6912
6976
|
// Angular material components
|
|
6913
6977
|
MatCommonModule,
|
|
@@ -6949,7 +7013,8 @@ const modules = [
|
|
|
6949
7013
|
SharedMatBooleanModule,
|
|
6950
7014
|
SharedMatNumpadModule,
|
|
6951
7015
|
SharedMatSwipeModule,
|
|
6952
|
-
MaterialChipsModule
|
|
7016
|
+
MaterialChipsModule,
|
|
7017
|
+
SharedMatBadgeIconModule
|
|
6953
7018
|
];
|
|
6954
7019
|
class SharedMaterialModule {
|
|
6955
7020
|
}
|
|
@@ -6983,7 +7048,7 @@ class ProgressBarService {
|
|
|
6983
7048
|
}
|
|
6984
7049
|
}
|
|
6985
7050
|
}
|
|
6986
|
-
ProgressBarService.ɵprov =
|
|
7051
|
+
ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
6987
7052
|
ProgressBarService.decorators = [
|
|
6988
7053
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
6989
7054
|
];
|
|
@@ -7027,7 +7092,7 @@ class AppGestureConfig extends HammerGestureConfig {
|
|
|
7027
7092
|
return mc;
|
|
7028
7093
|
}
|
|
7029
7094
|
}
|
|
7030
|
-
AppGestureConfig.ɵprov =
|
|
7095
|
+
AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
7031
7096
|
AppGestureConfig.decorators = [
|
|
7032
7097
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7033
7098
|
];
|
|
@@ -7250,7 +7315,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
|
|
|
7250
7315
|
this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
|
|
7251
7316
|
}
|
|
7252
7317
|
}
|
|
7253
|
-
MatPaginatorI18n.ɵprov =
|
|
7318
|
+
MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
7254
7319
|
MatPaginatorI18n.decorators = [
|
|
7255
7320
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7256
7321
|
];
|
|
@@ -7340,17 +7405,17 @@ function getColorContrast(color, bw) {
|
|
|
7340
7405
|
return rgbArrayToHex(rgb.map(v => 255 - v));
|
|
7341
7406
|
}
|
|
7342
7407
|
|
|
7343
|
-
const noop = () => {
|
|
7408
|
+
const noop$7 = () => {
|
|
7344
7409
|
};
|
|
7345
|
-
const ɵ0$
|
|
7410
|
+
const ɵ0$7 = noop$7;
|
|
7346
7411
|
class AppFormField {
|
|
7347
7412
|
constructor(translate, cd, injector, formGroupDir) {
|
|
7348
7413
|
this.translate = translate;
|
|
7349
7414
|
this.cd = cd;
|
|
7350
7415
|
this.injector = injector;
|
|
7351
7416
|
this.formGroupDir = formGroupDir;
|
|
7352
|
-
this._onChangeCallback = noop;
|
|
7353
|
-
this._onTouchedCallback = noop;
|
|
7417
|
+
this._onChangeCallback = noop$7;
|
|
7418
|
+
this._onTouchedCallback = noop$7;
|
|
7354
7419
|
this.readonly = false;
|
|
7355
7420
|
this.compact = false;
|
|
7356
7421
|
this.floatLabel = 'auto';
|
|
@@ -7766,14 +7831,14 @@ class AudioProvider extends StartableService {
|
|
|
7766
7831
|
});
|
|
7767
7832
|
}
|
|
7768
7833
|
}
|
|
7769
|
-
AudioProvider.ɵprov =
|
|
7834
|
+
AudioProvider.ɵprov = ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(ɵɵinject(Platform), ɵɵinject(NativeAudio, 8), ɵɵinject(Vibration, 8), ɵɵinject(AudioManagement$1, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
7770
7835
|
AudioProvider.decorators = [
|
|
7771
7836
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7772
7837
|
];
|
|
7773
7838
|
AudioProvider.ctorParameters = () => [
|
|
7774
7839
|
{ type: Platform },
|
|
7775
|
-
{ type: NativeAudio, decorators: [{ type: Optional }] },
|
|
7776
|
-
{ type: Vibration, decorators: [{ type: Optional }] },
|
|
7840
|
+
{ type: NativeAudio$1, decorators: [{ type: Optional }] },
|
|
7841
|
+
{ type: Vibration$1, decorators: [{ type: Optional }] },
|
|
7777
7842
|
{ type: AudioManagement, decorators: [{ type: Optional }] }
|
|
7778
7843
|
];
|
|
7779
7844
|
|
|
@@ -7855,7 +7920,7 @@ class Hotkeys {
|
|
|
7855
7920
|
});
|
|
7856
7921
|
}
|
|
7857
7922
|
}
|
|
7858
|
-
Hotkeys.ɵprov =
|
|
7923
|
+
Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
7859
7924
|
Hotkeys.decorators = [
|
|
7860
7925
|
{ type: Injectable, args: [{
|
|
7861
7926
|
providedIn: 'root'
|
|
@@ -8029,7 +8094,7 @@ class Base64ImageReader {
|
|
|
8029
8094
|
}
|
|
8030
8095
|
}
|
|
8031
8096
|
|
|
8032
|
-
const uuidv4
|
|
8097
|
+
const uuidv4 = uuidv4Imported;
|
|
8033
8098
|
class FileService {
|
|
8034
8099
|
constructor(platform,
|
|
8035
8100
|
//private transfer: FileTransfer,
|
|
@@ -8066,7 +8131,7 @@ class FileService {
|
|
|
8066
8131
|
const lastSlashIndex = source.lastIndexOf('/');
|
|
8067
8132
|
if (lastSlashIndex === -1)
|
|
8068
8133
|
throw new Error('Invalid URL: ' + source);
|
|
8069
|
-
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4
|
|
8134
|
+
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
8070
8135
|
// Download into the file system
|
|
8071
8136
|
if (responseType === 'file' && this.canUseFileSystem) {
|
|
8072
8137
|
console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
|
|
@@ -8122,7 +8187,7 @@ class FileService {
|
|
|
8122
8187
|
this._started = true;
|
|
8123
8188
|
}
|
|
8124
8189
|
}
|
|
8125
|
-
FileService.ɵprov =
|
|
8190
|
+
FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
8126
8191
|
FileService.decorators = [
|
|
8127
8192
|
{ type: Injectable, args: [{
|
|
8128
8193
|
providedIn: 'root',
|
|
@@ -8284,7 +8349,7 @@ class Base58 {
|
|
|
8284
8349
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
8285
8350
|
|
|
8286
8351
|
const scrypt = require('scrypt-async');
|
|
8287
|
-
const sha256
|
|
8352
|
+
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
8288
8353
|
const sha512 = require('hash.js/lib/hash/sha/512');
|
|
8289
8354
|
const nacl = {
|
|
8290
8355
|
sign,
|
|
@@ -8388,7 +8453,7 @@ class CryptoService {
|
|
|
8388
8453
|
* Hash (using SHA256) a message
|
|
8389
8454
|
*/
|
|
8390
8455
|
sha256(message) {
|
|
8391
|
-
return sha256
|
|
8456
|
+
return sha256().update(message).digest('hex');
|
|
8392
8457
|
}
|
|
8393
8458
|
/**
|
|
8394
8459
|
* Hash (using SHA512) a message
|
|
@@ -8401,7 +8466,7 @@ class CryptoService {
|
|
|
8401
8466
|
return nacl.util.encodeBase64(m);
|
|
8402
8467
|
}
|
|
8403
8468
|
}
|
|
8404
|
-
CryptoService.ɵprov =
|
|
8469
|
+
CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
8405
8470
|
CryptoService.decorators = [
|
|
8406
8471
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8407
8472
|
];
|
|
@@ -9622,7 +9687,7 @@ class LocalSettingsService extends StartableService {
|
|
|
9622
9687
|
return page;
|
|
9623
9688
|
}
|
|
9624
9689
|
}
|
|
9625
|
-
LocalSettingsService.ɵprov =
|
|
9690
|
+
LocalSettingsService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(ɵɵinject(TranslateService), ɵɵinject(Platform), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_SETTINGS, 8), ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
9626
9691
|
LocalSettingsService.decorators = [
|
|
9627
9692
|
{ type: Injectable, args: [{
|
|
9628
9693
|
providedIn: 'root',
|
|
@@ -10282,7 +10347,7 @@ class NetworkService extends StartableService {
|
|
|
10282
10347
|
});
|
|
10283
10348
|
}
|
|
10284
10349
|
}
|
|
10285
|
-
NetworkService.ɵprov =
|
|
10350
|
+
NetworkService.ɵprov = ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(ModalController), ɵɵinject(CryptoService), ɵɵinject(Storage), ɵɵinject(LocalSettingsService), ɵɵinject(CacheService), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT), ɵɵinject(Network, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
10286
10351
|
NetworkService.decorators = [
|
|
10287
10352
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
10288
10353
|
];
|
|
@@ -10293,16 +10358,16 @@ NetworkService.ctorParameters = () => [
|
|
|
10293
10358
|
{ type: CryptoService },
|
|
10294
10359
|
{ type: Storage },
|
|
10295
10360
|
{ type: LocalSettingsService },
|
|
10296
|
-
{ type: CacheService },
|
|
10361
|
+
{ type: CacheService$1 },
|
|
10297
10362
|
{ type: HttpClient },
|
|
10298
10363
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
10299
|
-
{ type: Network, decorators: [{ type: Optional }] },
|
|
10300
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
10364
|
+
{ type: Network$1, decorators: [{ type: Optional }] },
|
|
10365
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
10301
10366
|
{ type: TranslateService, decorators: [{ type: Optional }] },
|
|
10302
10367
|
{ type: ToastController, decorators: [{ type: Optional }] }
|
|
10303
10368
|
];
|
|
10304
10369
|
|
|
10305
|
-
const ErrorCodes
|
|
10370
|
+
const ErrorCodes = {
|
|
10306
10371
|
UNKNOWN_ERROR: 0,
|
|
10307
10372
|
LOAD_ACCOUNT_ERROR: 1,
|
|
10308
10373
|
BAD_PASSWORD: 2,
|
|
@@ -10649,7 +10714,7 @@ class EntityStore {
|
|
|
10649
10714
|
}
|
|
10650
10715
|
catch (err) {
|
|
10651
10716
|
console.error(err);
|
|
10652
|
-
throw { code: ErrorCodes
|
|
10717
|
+
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
10653
10718
|
}
|
|
10654
10719
|
}
|
|
10655
10720
|
// Emit update event
|
|
@@ -11220,7 +11285,7 @@ class EntitiesStorage extends StartableService {
|
|
|
11220
11285
|
}
|
|
11221
11286
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
11222
11287
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
11223
|
-
EntitiesStorage.ɵprov =
|
|
11288
|
+
EntitiesStorage.ɵprov = ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(ɵɵinject(Platform), ɵɵinject(ProgressBarService), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
11224
11289
|
EntitiesStorage.decorators = [
|
|
11225
11290
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
11226
11291
|
];
|
|
@@ -11320,10 +11385,10 @@ function referentialToString(obj, properties) {
|
|
|
11320
11385
|
function referentialsToString(values, properties, separator) {
|
|
11321
11386
|
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
11322
11387
|
}
|
|
11323
|
-
const ɵ0$
|
|
11388
|
+
const ɵ0$8 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
11324
11389
|
const StatusList = Object.freeze([
|
|
11325
11390
|
{
|
|
11326
|
-
id: ɵ0$
|
|
11391
|
+
id: ɵ0$8,
|
|
11327
11392
|
icon: 'checkmark',
|
|
11328
11393
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
11329
11394
|
},
|
|
@@ -11598,7 +11663,7 @@ function accountToString(data) {
|
|
|
11598
11663
|
(data.lastName || '')) || '';
|
|
11599
11664
|
}
|
|
11600
11665
|
|
|
11601
|
-
const uuidv4 = uuidv4Imported;
|
|
11666
|
+
const uuidv4$1 = uuidv4Imported;
|
|
11602
11667
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
11603
11668
|
const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
11604
11669
|
/**
|
|
@@ -11642,7 +11707,7 @@ function createTrackerLink(opts) {
|
|
|
11642
11707
|
// Skip if not tracked
|
|
11643
11708
|
if (!context || !context.tracked)
|
|
11644
11709
|
return forward(operation);
|
|
11645
|
-
const id = context.serializationKey || uuidv4();
|
|
11710
|
+
const id = context.serializationKey || uuidv4$1();
|
|
11646
11711
|
console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
|
|
11647
11712
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
11648
11713
|
const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -12311,7 +12376,7 @@ class GraphqlService extends StartableService {
|
|
|
12311
12376
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
12312
12377
|
|| this.toAppError(err.networkError)
|
|
12313
12378
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
12314
|
-
|| this.createAppErrorByCode(ErrorCodes
|
|
12379
|
+
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
12315
12380
|
// If graphQL: try to convert the first error found
|
|
12316
12381
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
12317
12382
|
|| this.toAppError(err)
|
|
@@ -12319,7 +12384,7 @@ class GraphqlService extends StartableService {
|
|
|
12319
12384
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
12320
12385
|
|| err;
|
|
12321
12386
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
12322
|
-
if (error && error.code === ErrorCodes
|
|
12387
|
+
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
12323
12388
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
12324
12389
|
this.onNetworkError.next(error);
|
|
12325
12390
|
}
|
|
@@ -12355,7 +12420,7 @@ class GraphqlService extends StartableService {
|
|
|
12355
12420
|
return 'ERROR.UNAUTHORIZED';
|
|
12356
12421
|
case ServerErrorCodes.FORBIDDEN:
|
|
12357
12422
|
return 'ERROR.FORBIDDEN';
|
|
12358
|
-
case ErrorCodes
|
|
12423
|
+
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
12359
12424
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
12360
12425
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
12361
12426
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -12383,7 +12448,7 @@ class GraphqlService extends StartableService {
|
|
|
12383
12448
|
return undefined;
|
|
12384
12449
|
}
|
|
12385
12450
|
}
|
|
12386
|
-
GraphqlService.ɵprov =
|
|
12451
|
+
GraphqlService.ɵprov = ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(ɵɵinject(Platform), ɵɵinject(Apollo), ɵɵinject(HttpLink), ɵɵinject(NetworkService), ɵɵinject(Storage), ɵɵinject(CryptoService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
12387
12452
|
GraphqlService.decorators = [
|
|
12388
12453
|
{ type: Injectable, args: [{
|
|
12389
12454
|
providedIn: 'root'
|
|
@@ -12400,7 +12465,7 @@ GraphqlService.ctorParameters = () => [
|
|
|
12400
12465
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
12401
12466
|
];
|
|
12402
12467
|
|
|
12403
|
-
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
12468
|
+
const sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
12404
12469
|
class BaseGraphqlServiceOptions {
|
|
12405
12470
|
}
|
|
12406
12471
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
@@ -12550,8 +12615,8 @@ class BaseGraphqlService {
|
|
|
12550
12615
|
}
|
|
12551
12616
|
/* -- protected methods -- */
|
|
12552
12617
|
computeMutableWatchQueryId(opts) {
|
|
12553
|
-
const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
12554
|
-
const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
12618
|
+
const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
12619
|
+
const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
12555
12620
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
12556
12621
|
}
|
|
12557
12622
|
findMutableWatchQueries(opts) {
|
|
@@ -12614,7 +12679,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
|
|
|
12614
12679
|
/* ------------------------------------
|
|
12615
12680
|
* GraphQL queries
|
|
12616
12681
|
* ------------------------------------*/
|
|
12617
|
-
const Fragments
|
|
12682
|
+
const Fragments = {
|
|
12618
12683
|
account: gql `
|
|
12619
12684
|
fragment AccountFragment on AccountVO {
|
|
12620
12685
|
id
|
|
@@ -12647,13 +12712,13 @@ const Fragments$1 = {
|
|
|
12647
12712
|
`
|
|
12648
12713
|
};
|
|
12649
12714
|
// Load account query
|
|
12650
|
-
const LoadQuery
|
|
12715
|
+
const LoadQuery = gql `
|
|
12651
12716
|
query Account {
|
|
12652
12717
|
data: account {
|
|
12653
12718
|
...AccountFragment
|
|
12654
12719
|
}
|
|
12655
12720
|
}
|
|
12656
|
-
${Fragments
|
|
12721
|
+
${Fragments.account}
|
|
12657
12722
|
`;
|
|
12658
12723
|
// Check email query
|
|
12659
12724
|
const IsEmailExistsQuery = gql `
|
|
@@ -12662,13 +12727,13 @@ const IsEmailExistsQuery = gql `
|
|
|
12662
12727
|
}
|
|
12663
12728
|
`;
|
|
12664
12729
|
// Save (create or update) account mutation
|
|
12665
|
-
const SaveMutation
|
|
12730
|
+
const SaveMutation = gql `
|
|
12666
12731
|
mutation SaveAccount($data:AccountVOInput){
|
|
12667
12732
|
data: saveAccount(account: $data){
|
|
12668
12733
|
...AccountFragment
|
|
12669
12734
|
}
|
|
12670
12735
|
}
|
|
12671
|
-
${Fragments
|
|
12736
|
+
${Fragments.account}
|
|
12672
12737
|
`;
|
|
12673
12738
|
// Create account mutation
|
|
12674
12739
|
const CreateMutation = gql `
|
|
@@ -12677,7 +12742,7 @@ const CreateMutation = gql `
|
|
|
12677
12742
|
...AccountFragment
|
|
12678
12743
|
}
|
|
12679
12744
|
}
|
|
12680
|
-
${Fragments
|
|
12745
|
+
${Fragments.account}
|
|
12681
12746
|
`;
|
|
12682
12747
|
// Sent confirmation email
|
|
12683
12748
|
const SendConfirmEmailMutation = gql `
|
|
@@ -13015,7 +13080,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13015
13080
|
catch (error) {
|
|
13016
13081
|
console.error(error);
|
|
13017
13082
|
this.resetData();
|
|
13018
|
-
throw { code: ErrorCodes
|
|
13083
|
+
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
13019
13084
|
}
|
|
13020
13085
|
// Store pubkey+keypair
|
|
13021
13086
|
this._data.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -13049,7 +13114,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13049
13114
|
}
|
|
13050
13115
|
catch (err) {
|
|
13051
13116
|
// If account not found, check if email is valid
|
|
13052
|
-
if (err && +(err.code) === ErrorCodes
|
|
13117
|
+
if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
|
|
13053
13118
|
// Check email exists
|
|
13054
13119
|
if (data.username.indexOf('@') !== -1) {
|
|
13055
13120
|
let isEmailExists;
|
|
@@ -13061,11 +13126,11 @@ class AccountService extends BaseGraphqlService {
|
|
|
13061
13126
|
}
|
|
13062
13127
|
// Email not exists (no account)
|
|
13063
13128
|
if (!isEmailExists) {
|
|
13064
|
-
throw { code: ErrorCodes
|
|
13129
|
+
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
13065
13130
|
}
|
|
13066
13131
|
}
|
|
13067
13132
|
// Email exists, so error = 'bad password'
|
|
13068
|
-
throw { code: ErrorCodes
|
|
13133
|
+
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
13069
13134
|
}
|
|
13070
13135
|
throw err; // resend the first error
|
|
13071
13136
|
}
|
|
@@ -13190,8 +13255,8 @@ class AccountService extends BaseGraphqlService {
|
|
|
13190
13255
|
// Load remotely
|
|
13191
13256
|
else {
|
|
13192
13257
|
const { data } = yield this.graphql.query({
|
|
13193
|
-
query: LoadQuery
|
|
13194
|
-
error: { code: ErrorCodes
|
|
13258
|
+
query: LoadQuery,
|
|
13259
|
+
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
13195
13260
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
13196
13261
|
});
|
|
13197
13262
|
json = data;
|
|
@@ -13218,7 +13283,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13218
13283
|
return __awaiter(this, void 0, void 0, function* () {
|
|
13219
13284
|
const isEmailExists = yield this.isEmailExists(email);
|
|
13220
13285
|
if (isEmailExists) {
|
|
13221
|
-
throw { code: ErrorCodes
|
|
13286
|
+
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
13222
13287
|
}
|
|
13223
13288
|
});
|
|
13224
13289
|
}
|
|
@@ -13254,7 +13319,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13254
13319
|
locale
|
|
13255
13320
|
},
|
|
13256
13321
|
error: {
|
|
13257
|
-
code: ErrorCodes
|
|
13322
|
+
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
13258
13323
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
13259
13324
|
}
|
|
13260
13325
|
});
|
|
@@ -13270,7 +13335,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13270
13335
|
code
|
|
13271
13336
|
},
|
|
13272
13337
|
error: {
|
|
13273
|
-
code: ErrorCodes
|
|
13338
|
+
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
13274
13339
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
13275
13340
|
}
|
|
13276
13341
|
});
|
|
@@ -13288,7 +13353,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13288
13353
|
interval: 10
|
|
13289
13354
|
},
|
|
13290
13355
|
error: {
|
|
13291
|
-
code: ErrorCodes
|
|
13356
|
+
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
13292
13357
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
|
|
13293
13358
|
}
|
|
13294
13359
|
}).subscribe({
|
|
@@ -13397,7 +13462,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13397
13462
|
throw error;
|
|
13398
13463
|
console.error(error);
|
|
13399
13464
|
throw {
|
|
13400
|
-
code: ErrorCodes
|
|
13465
|
+
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
13401
13466
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
13402
13467
|
};
|
|
13403
13468
|
}
|
|
@@ -13542,7 +13607,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13542
13607
|
if (!isNew) {
|
|
13543
13608
|
const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
|
|
13544
13609
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
13545
|
-
throw { code: ErrorCodes
|
|
13610
|
+
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
13546
13611
|
}
|
|
13547
13612
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
13548
13613
|
}
|
|
@@ -13551,10 +13616,10 @@ class AccountService extends BaseGraphqlService {
|
|
|
13551
13616
|
delete json.profiles;
|
|
13552
13617
|
// Execute mutation
|
|
13553
13618
|
const { data } = yield this.graphql.mutate({
|
|
13554
|
-
mutation: isNew ? CreateMutation : SaveMutation
|
|
13619
|
+
mutation: isNew ? CreateMutation : SaveMutation,
|
|
13555
13620
|
variables: { data: json },
|
|
13556
13621
|
error: {
|
|
13557
|
-
code: ErrorCodes
|
|
13622
|
+
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
13558
13623
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
13559
13624
|
}
|
|
13560
13625
|
});
|
|
@@ -13574,7 +13639,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13574
13639
|
if (counter > 4) {
|
|
13575
13640
|
if (this._debug)
|
|
13576
13641
|
console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
|
|
13577
|
-
throw { code: ErrorCodes
|
|
13642
|
+
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
13578
13643
|
}
|
|
13579
13644
|
// Check if valid
|
|
13580
13645
|
if (token) {
|
|
@@ -13584,7 +13649,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13584
13649
|
token
|
|
13585
13650
|
},
|
|
13586
13651
|
error: {
|
|
13587
|
-
code: ErrorCodes
|
|
13652
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
13588
13653
|
message: 'ERROR.UNAUTHORIZED'
|
|
13589
13654
|
},
|
|
13590
13655
|
fetchPolicy: 'no-cache'
|
|
@@ -13600,7 +13665,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13600
13665
|
}
|
|
13601
13666
|
// Generate a new token
|
|
13602
13667
|
const challengeError = {
|
|
13603
|
-
code: ErrorCodes
|
|
13668
|
+
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
13604
13669
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
13605
13670
|
};
|
|
13606
13671
|
const data = yield this.graphql.query({
|
|
@@ -13634,7 +13699,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13634
13699
|
target.settings.updateDate = source.settings && source.settings.updateDate || target.settings.updateDate;
|
|
13635
13700
|
}
|
|
13636
13701
|
}
|
|
13637
|
-
AccountService.ɵprov =
|
|
13702
|
+
AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
13638
13703
|
AccountService.decorators = [
|
|
13639
13704
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
13640
13705
|
];
|
|
@@ -13894,7 +13959,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
|
|
|
13894
13959
|
/* ------------------------------------
|
|
13895
13960
|
* GraphQL queries
|
|
13896
13961
|
* ------------------------------------*/
|
|
13897
|
-
const Fragments = {
|
|
13962
|
+
const Fragments$1 = {
|
|
13898
13963
|
config: gql `
|
|
13899
13964
|
fragment ConfigFragment on ConfigurationVO {
|
|
13900
13965
|
id
|
|
@@ -13921,22 +13986,22 @@ const Fragments = {
|
|
|
13921
13986
|
}
|
|
13922
13987
|
`
|
|
13923
13988
|
};
|
|
13924
|
-
const LoadQuery = gql `
|
|
13989
|
+
const LoadQuery$1 = gql `
|
|
13925
13990
|
query Configuration{
|
|
13926
13991
|
data: configuration{
|
|
13927
13992
|
...ConfigFragment
|
|
13928
13993
|
}
|
|
13929
13994
|
}
|
|
13930
|
-
${Fragments.config}
|
|
13995
|
+
${Fragments$1.config}
|
|
13931
13996
|
`;
|
|
13932
13997
|
// Save (create or update) account mutation
|
|
13933
|
-
const SaveMutation = gql `
|
|
13998
|
+
const SaveMutation$1 = gql `
|
|
13934
13999
|
mutation SaveConfiguration($data: ConfigurationVOInput){
|
|
13935
14000
|
data: saveConfiguration(config: $data){
|
|
13936
14001
|
...ConfigFragment
|
|
13937
14002
|
}
|
|
13938
14003
|
}
|
|
13939
|
-
${Fragments.config}
|
|
14004
|
+
${Fragments$1.config}
|
|
13940
14005
|
`;
|
|
13941
14006
|
const ClearCache = gql `
|
|
13942
14007
|
query ClearCache($name: String) {
|
|
@@ -14031,12 +14096,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14031
14096
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14032
14097
|
const now = Date.now();
|
|
14033
14098
|
console.debug('[config] Loading Pod configuration...');
|
|
14034
|
-
const query = opts && opts.query || LoadQuery;
|
|
14099
|
+
const query = opts && opts.query || LoadQuery$1;
|
|
14035
14100
|
const variables = opts && opts.variables || undefined;
|
|
14036
14101
|
const res = yield this.graphql.query({
|
|
14037
14102
|
query,
|
|
14038
14103
|
variables,
|
|
14039
|
-
error: { code: ErrorCodes
|
|
14104
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14040
14105
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
14041
14106
|
});
|
|
14042
14107
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -14061,12 +14126,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14061
14126
|
const json = config.asObject();
|
|
14062
14127
|
// Execute mutation
|
|
14063
14128
|
const res = yield this.graphql.mutate({
|
|
14064
|
-
mutation: SaveMutation,
|
|
14129
|
+
mutation: SaveMutation$1,
|
|
14065
14130
|
variables: {
|
|
14066
14131
|
data: json
|
|
14067
14132
|
},
|
|
14068
14133
|
error: {
|
|
14069
|
-
code: ErrorCodes
|
|
14134
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
14070
14135
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
14071
14136
|
}
|
|
14072
14137
|
});
|
|
@@ -14092,7 +14157,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14092
14157
|
const res = yield this.graphql.query({
|
|
14093
14158
|
query: CacheStatistics,
|
|
14094
14159
|
variables: null,
|
|
14095
|
-
error: { code: ErrorCodes
|
|
14160
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14096
14161
|
fetchPolicy: 'network-only'
|
|
14097
14162
|
});
|
|
14098
14163
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -14108,7 +14173,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14108
14173
|
const res = yield this.graphql.query({
|
|
14109
14174
|
query: ClearCache,
|
|
14110
14175
|
variables,
|
|
14111
|
-
error: { code: ErrorCodes
|
|
14176
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14112
14177
|
fetchPolicy: 'network-only'
|
|
14113
14178
|
});
|
|
14114
14179
|
const data = res && res.clearCache || undefined;
|
|
@@ -14267,7 +14332,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14267
14332
|
});
|
|
14268
14333
|
}
|
|
14269
14334
|
}
|
|
14270
|
-
ConfigService.ɵprov =
|
|
14335
|
+
ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
14271
14336
|
ConfigService.decorators = [
|
|
14272
14337
|
{ type: Injectable, args: [{
|
|
14273
14338
|
providedIn: 'root',
|
|
@@ -14286,7 +14351,7 @@ ConfigService.ctorParameters = () => [
|
|
|
14286
14351
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
14287
14352
|
];
|
|
14288
14353
|
|
|
14289
|
-
const moment$
|
|
14354
|
+
const moment$4 = momentImported;
|
|
14290
14355
|
class PlatformService {
|
|
14291
14356
|
constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
|
|
14292
14357
|
this.platform = platform;
|
|
@@ -14495,16 +14560,16 @@ class PlatformService {
|
|
|
14495
14560
|
}
|
|
14496
14561
|
// config moment lib
|
|
14497
14562
|
try {
|
|
14498
|
-
moment$
|
|
14563
|
+
moment$4.locale(event.lang);
|
|
14499
14564
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
14500
14565
|
}
|
|
14501
14566
|
// If error, fallback to en
|
|
14502
14567
|
catch (err) {
|
|
14503
|
-
moment$
|
|
14568
|
+
moment$4.locale('en');
|
|
14504
14569
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
14505
14570
|
}
|
|
14506
14571
|
// Config date adapter
|
|
14507
|
-
this.dateAdapter.setLocale(moment$
|
|
14572
|
+
this.dateAdapter.setLocale(moment$4.locale());
|
|
14508
14573
|
}
|
|
14509
14574
|
});
|
|
14510
14575
|
this.settings.onChange.subscribe(data => {
|
|
@@ -14642,7 +14707,7 @@ class PlatformService {
|
|
|
14642
14707
|
});
|
|
14643
14708
|
}
|
|
14644
14709
|
}
|
|
14645
|
-
PlatformService.ɵprov =
|
|
14710
|
+
PlatformService.ɵprov = ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(ɵɵinject(Platform), ɵɵinject(Platform$1), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(MomentDateAdapter), ɵɵinject(EntitiesStorage), ɵɵinject(LocalSettingsService), ɵɵinject(NetworkService), ɵɵinject(AccountService), ɵɵinject(ConfigService), ɵɵinject(CacheService), ɵɵinject(Storage), ɵɵinject(AudioProvider), ɵɵinject(ENVIRONMENT), ɵɵinject(StatusBar, 8), ɵɵinject(Keyboard$1, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(InAppBrowser, 8), ɵɵinject(Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
14646
14711
|
PlatformService.decorators = [
|
|
14647
14712
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
14648
14713
|
];
|
|
@@ -14657,15 +14722,15 @@ PlatformService.ctorParameters = () => [
|
|
|
14657
14722
|
{ type: NetworkService },
|
|
14658
14723
|
{ type: AccountService },
|
|
14659
14724
|
{ type: ConfigService },
|
|
14660
|
-
{ type: CacheService },
|
|
14725
|
+
{ type: CacheService$1 },
|
|
14661
14726
|
{ type: Storage },
|
|
14662
14727
|
{ type: AudioProvider },
|
|
14663
14728
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
14664
|
-
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
14729
|
+
{ type: StatusBar$1, decorators: [{ type: Optional }] },
|
|
14665
14730
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
14666
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
14667
|
-
{ type: InAppBrowser, decorators: [{ type: Optional }] },
|
|
14668
|
-
{ type: Downloader, decorators: [{ type: Optional }] }
|
|
14731
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
14732
|
+
{ type: InAppBrowser$1, decorators: [{ type: Optional }] },
|
|
14733
|
+
{ type: Downloader$1, decorators: [{ type: Optional }] }
|
|
14669
14734
|
];
|
|
14670
14735
|
|
|
14671
14736
|
class AppHelpModal {
|
|
@@ -14729,7 +14794,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
14729
14794
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
14730
14795
|
}
|
|
14731
14796
|
}
|
|
14732
|
-
MatStepperI18n.ɵprov =
|
|
14797
|
+
MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
14733
14798
|
MatStepperI18n.decorators = [
|
|
14734
14799
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
14735
14800
|
];
|
|
@@ -15721,7 +15786,7 @@ function state2side(state) {
|
|
|
15721
15786
|
return 1;
|
|
15722
15787
|
}
|
|
15723
15788
|
}
|
|
15724
|
-
const ɵ0$
|
|
15789
|
+
const ɵ0$9 = (defaultStateSize) => [
|
|
15725
15790
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
15726
15791
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
15727
15792
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -15729,7 +15794,7 @@ const ɵ0$1 = (defaultStateSize) => [
|
|
|
15729
15794
|
const SCALE_OPTIONS_DEFAULT = {
|
|
15730
15795
|
startColor: rgbArrayMap.red,
|
|
15731
15796
|
startStates: [0, 2, 3],
|
|
15732
|
-
startStepsFn: ɵ0$
|
|
15797
|
+
startStepsFn: ɵ0$9
|
|
15733
15798
|
};
|
|
15734
15799
|
/**
|
|
15735
15800
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -15821,21 +15886,21 @@ function linearColorGradient(count, options) {
|
|
|
15821
15886
|
return result;
|
|
15822
15887
|
}
|
|
15823
15888
|
|
|
15824
|
-
class EntityTestClass
|
|
15889
|
+
class EntityTestClass {
|
|
15825
15890
|
}
|
|
15826
|
-
const FAKE_ENTITIES
|
|
15891
|
+
const FAKE_ENTITIES = [
|
|
15827
15892
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
15828
15893
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
15829
15894
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
15830
15895
|
];
|
|
15831
|
-
function deepCopy
|
|
15896
|
+
function deepCopy(values, size) {
|
|
15832
15897
|
if (isNil(size)) {
|
|
15833
|
-
return (values || FAKE_ENTITIES
|
|
15898
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
15834
15899
|
}
|
|
15835
15900
|
let result = [];
|
|
15836
15901
|
let i = 1;
|
|
15837
15902
|
while (result.length < size) {
|
|
15838
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
15903
|
+
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
15839
15904
|
const name = entity.name + ' #' + i;
|
|
15840
15905
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
15841
15906
|
}));
|
|
@@ -15845,7 +15910,7 @@ function deepCopy$1(values, size) {
|
|
|
15845
15910
|
class AutocompleteTestPage {
|
|
15846
15911
|
constructor(formBuilder) {
|
|
15847
15912
|
this.formBuilder = formBuilder;
|
|
15848
|
-
this._items = deepCopy
|
|
15913
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
15849
15914
|
this.$items = new BehaviorSubject(undefined);
|
|
15850
15915
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
15851
15916
|
this.memoryHide = false;
|
|
@@ -15889,7 +15954,7 @@ class AutocompleteTestPage {
|
|
|
15889
15954
|
});
|
|
15890
15955
|
// From items
|
|
15891
15956
|
this.autocompleteFields.add('entity-items-large', {
|
|
15892
|
-
items: FAKE_ENTITIES
|
|
15957
|
+
items: FAKE_ENTITIES.slice(),
|
|
15893
15958
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
15894
15959
|
displayWith: this.entityToString
|
|
15895
15960
|
});
|
|
@@ -15899,12 +15964,12 @@ class AutocompleteTestPage {
|
|
|
15899
15964
|
loadData() {
|
|
15900
15965
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15901
15966
|
const data = {
|
|
15902
|
-
entity: deepCopy
|
|
15967
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
15903
15968
|
// This item is NOT in the items list => i should be displayed anyway
|
|
15904
15969
|
missingEntity: {
|
|
15905
15970
|
id: -1, label: '??', name: 'Missing item'
|
|
15906
15971
|
},
|
|
15907
|
-
disableEntity: deepCopy
|
|
15972
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
15908
15973
|
};
|
|
15909
15974
|
this.form.setValue(data);
|
|
15910
15975
|
// Load observables
|
|
@@ -16067,7 +16132,7 @@ class MaterialTestingPage {
|
|
|
16067
16132
|
MaterialTestingPage.decorators = [
|
|
16068
16133
|
{ type: Component, args: [{
|
|
16069
16134
|
selector: 'app-material-testing',
|
|
16070
|
-
template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Material components</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list>\n\n <ion-item-divider>Shared Material components</ion-item-divider>\n\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./datetime')\">\n Date/Time field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./autocomplete')\">\n Autocomplete field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./latlong')\">\n Lat/Long field\n </ion-item>\n<!-- <ion-item tappable class=\"text-1x\" (click)=\"openPage('./numpad')\">-->\n<!-- Numeric pad component-->\n<!-- </ion-item>-->\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./swipe')\">\n Swipe component\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./chips')\">\n Chips component\n </ion-item>\n\n <ng-container *ngIf=\"pages && pages.length\">\n <ion-item-divider>Other components</ion-item-divider>\n\n <ion-item *ngFor=\"let item of pages\"\n tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n\n </ng-container>\n </ion-list>\n\n</ion-content>\n"
|
|
16135
|
+
template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>Material components</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content>\n\n <ion-list>\n\n <ion-item-divider>Shared Material components</ion-item-divider>\n\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./datetime')\">\n Date/Time field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./autocomplete')\">\n Autocomplete field\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./latlong')\">\n Lat/Long field\n </ion-item>\n<!-- <ion-item tappable class=\"text-1x\" (click)=\"openPage('./numpad')\">-->\n<!-- Numeric pad component-->\n<!-- </ion-item>-->\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./swipe')\">\n Swipe component\n </ion-item>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./chips')\">\n Chips component\n </ion-item>\n\n <ion-item-divider>Directive</ion-item-divider>\n <ion-item tappable class=\"text-1x\" (click)=\"openPage('./badge-icon')\">\n Badge icon directive\n </ion-item>\n\n <ng-container *ngIf=\"pages && pages.length\">\n <ion-item-divider>Other components</ion-item-divider>\n\n <ion-item *ngFor=\"let item of pages\"\n tappable class=\"text-1x\"\n (click)=\"openPage(item.page)\">{{item.label}}</ion-item>\n\n </ng-container>\n </ion-list>\n\n</ion-content>\n"
|
|
16071
16136
|
},] }
|
|
16072
16137
|
];
|
|
16073
16138
|
MaterialTestingPage.ctorParameters = () => [
|
|
@@ -16077,13 +16142,13 @@ MaterialTestingPage.ctorParameters = () => [
|
|
|
16077
16142
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
|
|
16078
16143
|
];
|
|
16079
16144
|
|
|
16080
|
-
const moment$
|
|
16145
|
+
const moment$5 = momentImported;
|
|
16081
16146
|
class SwipeTestPage {
|
|
16082
16147
|
constructor(formBuilder, dateFormatPipe) {
|
|
16083
16148
|
this.formBuilder = formBuilder;
|
|
16084
16149
|
this.dateFormatPipe = dateFormatPipe;
|
|
16085
16150
|
this.$dates = new BehaviorSubject(undefined);
|
|
16086
|
-
this._today = moment$
|
|
16151
|
+
this._today = moment$5().startOf('day');
|
|
16087
16152
|
this.form = formBuilder.group({
|
|
16088
16153
|
empty: [null, Validators.required],
|
|
16089
16154
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -16096,7 +16161,7 @@ class SwipeTestPage {
|
|
|
16096
16161
|
ngOnInit() {
|
|
16097
16162
|
const dates = [];
|
|
16098
16163
|
for (let d = 0; d < 7; d++) {
|
|
16099
|
-
dates[d] = moment$
|
|
16164
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
16100
16165
|
}
|
|
16101
16166
|
this.$dates.next(dates);
|
|
16102
16167
|
this.loadData();
|
|
@@ -16137,7 +16202,7 @@ SwipeTestPage.ctorParameters = () => [
|
|
|
16137
16202
|
{ type: DateFormatPipe }
|
|
16138
16203
|
];
|
|
16139
16204
|
|
|
16140
|
-
const moment = momentImported;
|
|
16205
|
+
const moment$6 = momentImported;
|
|
16141
16206
|
class DateTimeTestPage {
|
|
16142
16207
|
constructor(platform, formBuilder, cd) {
|
|
16143
16208
|
this.platform = platform;
|
|
@@ -16169,7 +16234,7 @@ class DateTimeTestPage {
|
|
|
16169
16234
|
// Load the form with data
|
|
16170
16235
|
loadData() {
|
|
16171
16236
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16172
|
-
const now = moment();
|
|
16237
|
+
const now = moment$6();
|
|
16173
16238
|
const data = {
|
|
16174
16239
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
16175
16240
|
enable: toDateISOString(now),
|
|
@@ -16230,20 +16295,20 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
16230
16295
|
{ type: ChangeDetectorRef }
|
|
16231
16296
|
];
|
|
16232
16297
|
|
|
16233
|
-
class EntityTestClass {
|
|
16298
|
+
class EntityTestClass$1 {
|
|
16234
16299
|
}
|
|
16235
|
-
const FAKE_ENTITIES = [
|
|
16300
|
+
const FAKE_ENTITIES$1 = [
|
|
16236
16301
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
16237
16302
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
16238
16303
|
{ id: 3, label: 'CCC', name: 'Item C' }
|
|
16239
16304
|
];
|
|
16240
|
-
function deepCopy(values) {
|
|
16241
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
16305
|
+
function deepCopy$1(values) {
|
|
16306
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
16242
16307
|
}
|
|
16243
16308
|
class ChipsTestPage {
|
|
16244
16309
|
constructor(formBuilder) {
|
|
16245
16310
|
this.formBuilder = formBuilder;
|
|
16246
|
-
this._items = deepCopy(FAKE_ENTITIES);
|
|
16311
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1);
|
|
16247
16312
|
this._$items = new BehaviorSubject(undefined);
|
|
16248
16313
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
16249
16314
|
this.form = formBuilder.group({
|
|
@@ -16262,7 +16327,7 @@ class ChipsTestPage {
|
|
|
16262
16327
|
});
|
|
16263
16328
|
// From items
|
|
16264
16329
|
this.autocompleteFields.add('entity-items', {
|
|
16265
|
-
items: FAKE_ENTITIES.slice(),
|
|
16330
|
+
items: FAKE_ENTITIES$1.slice(),
|
|
16266
16331
|
attributes: ['label', 'name'],
|
|
16267
16332
|
displayWith: this.entityToString
|
|
16268
16333
|
});
|
|
@@ -16283,15 +16348,15 @@ class ChipsTestPage {
|
|
|
16283
16348
|
const data = {
|
|
16284
16349
|
entity: [],
|
|
16285
16350
|
// THis item is NOT in the items list => i should be displayed anyway
|
|
16286
|
-
entityInitial: FAKE_ENTITIES.slice(1, 2),
|
|
16287
|
-
disableEntity: FAKE_ENTITIES.slice(1, 2)
|
|
16351
|
+
entityInitial: FAKE_ENTITIES$1.slice(1, 2),
|
|
16352
|
+
disableEntity: FAKE_ENTITIES$1.slice(1, 2)
|
|
16288
16353
|
};
|
|
16289
16354
|
this.form.setValue(data);
|
|
16290
16355
|
});
|
|
16291
16356
|
}
|
|
16292
16357
|
loadItems() {
|
|
16293
16358
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16294
|
-
this._$items.next(deepCopy(FAKE_ENTITIES));
|
|
16359
|
+
this._$items.next(deepCopy$1(FAKE_ENTITIES$1));
|
|
16295
16360
|
});
|
|
16296
16361
|
}
|
|
16297
16362
|
entityToString(item) {
|
|
@@ -16323,7 +16388,16 @@ ChipsTestPage.ctorParameters = () => [
|
|
|
16323
16388
|
{ type: FormBuilder }
|
|
16324
16389
|
];
|
|
16325
16390
|
|
|
16326
|
-
|
|
16391
|
+
class MatBadgeIconTestPage {
|
|
16392
|
+
}
|
|
16393
|
+
MatBadgeIconTestPage.decorators = [
|
|
16394
|
+
{ type: Component, args: [{
|
|
16395
|
+
selector: 'mat-badge-icon-test',
|
|
16396
|
+
template: "\n<ion-header>\n <ion-toolbar color=\"primary\">\n\n <ion-buttons slot=\"start\">\n <ion-back-button></ion-back-button>\n </ion-buttons>\n\n <ion-title>matBadgeIcon directive</ion-title>\n </ion-toolbar>\n</ion-header>\n\n<ion-content class=\"ion-padding\">\n\n <!-- small badge -->\n <p>\n <ion-text color=\"tertiary\">\n <span matBadge matIcon=\"check\"\n matBadgeSize=\"small\"\n matBadgeColor=\"accent\"\n matBadgeOverlap=\"false\">Small badge</span>\n </ion-text>\n </p>\n\n <!-- medium badge -->\n <p>\n <ion-text matBadge matBadgeIcon=\"check\"\n matBadgeSize=\"medium\"\n matBadgeColor=\"tertiary\"\n matBadgeOverlap=\"false\"\n >Medium badge</ion-text>\n </p>\n\n <!-- small badge -->\n <p>\n <ion-label matBadge matBadgeIcon=\"close\" matBadgeSize=\"large\"\n matBadgeOverlap=\"false\">Large badge</ion-label>\n </p>\n\n <!-- default size badge -->\n <p>\n <ion-label matBadge matBadgeIcon=\"check\" matBadgeColor=\"success\"\n matBadgeOverlap=\"false\">Badge (no size, no color)\n </ion-label>\n </p>\n\n <!-- ion icon -->\n <p>\n <ion-label matBadge\n ionBadgeIcon=\"checkmark\"\n matBadgeColor=\"success\"\n matBadgeOverlap=\"false\">Badge with ion-icon\n </ion-label>\n </p>\n\n <!-- ion icon clear -->\n <p>\n <ion-label matBadge\n ionBadgeIcon=\"checkmark-circle\"\n matBadgeColor=\"tertiary\"\n matBadgeFill=\"clear\"\n matBadgeOverlap=\"false\">Badge with clear icon\n </ion-label>\n </p>\n\n\n</ion-content>\n"
|
|
16397
|
+
},] }
|
|
16398
|
+
];
|
|
16399
|
+
|
|
16400
|
+
const routes = [
|
|
16327
16401
|
{
|
|
16328
16402
|
path: '',
|
|
16329
16403
|
pathMatch: 'full',
|
|
@@ -16358,6 +16432,11 @@ const routes$1 = [
|
|
|
16358
16432
|
path: 'chips',
|
|
16359
16433
|
pathMatch: 'full',
|
|
16360
16434
|
component: ChipsTestPage
|
|
16435
|
+
},
|
|
16436
|
+
{
|
|
16437
|
+
path: 'badge-icon',
|
|
16438
|
+
pathMatch: 'full',
|
|
16439
|
+
component: MatBadgeIconTestPage
|
|
16361
16440
|
}
|
|
16362
16441
|
];
|
|
16363
16442
|
class MaterialTestingModule {
|
|
@@ -16370,7 +16449,7 @@ MaterialTestingModule.decorators = [
|
|
|
16370
16449
|
ReactiveFormsModule,
|
|
16371
16450
|
SharedMaterialModule,
|
|
16372
16451
|
TranslateModule.forChild(),
|
|
16373
|
-
RouterModule.forChild(routes
|
|
16452
|
+
RouterModule.forChild(routes)
|
|
16374
16453
|
],
|
|
16375
16454
|
declarations: [
|
|
16376
16455
|
MaterialTestingPage,
|
|
@@ -16379,7 +16458,8 @@ MaterialTestingModule.decorators = [
|
|
|
16379
16458
|
LatLongTestPage,
|
|
16380
16459
|
// NumpadTestPage,
|
|
16381
16460
|
SwipeTestPage,
|
|
16382
|
-
ChipsTestPage
|
|
16461
|
+
ChipsTestPage,
|
|
16462
|
+
MatBadgeIconTestPage
|
|
16383
16463
|
],
|
|
16384
16464
|
exports: [
|
|
16385
16465
|
SharedMaterialModule,
|
|
@@ -16475,7 +16555,7 @@ class AppForm {
|
|
|
16475
16555
|
if (form)
|
|
16476
16556
|
this.setForm(form);
|
|
16477
16557
|
this.settings = injector.get(LocalSettingsService);
|
|
16478
|
-
this.errorTranslator = injector.get(
|
|
16558
|
+
this.errorTranslator = injector.get(FormErrorTranslator);
|
|
16479
16559
|
this.autocompleteHelper = new MatAutocompleteConfigHolder(this.settings && {
|
|
16480
16560
|
getUserAttributes: (a, b) => this.settings.getFieldDisplayAttributes(a, b)
|
|
16481
16561
|
});
|
|
@@ -17328,7 +17408,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
17328
17408
|
});
|
|
17329
17409
|
}
|
|
17330
17410
|
}
|
|
17331
|
-
UserSettingsValidatorService.ɵprov =
|
|
17411
|
+
UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
17332
17412
|
UserSettingsValidatorService.decorators = [
|
|
17333
17413
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
17334
17414
|
];
|
|
@@ -17372,7 +17452,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
17372
17452
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
17373
17453
|
}
|
|
17374
17454
|
}
|
|
17375
|
-
AccountValidatorService.ɵprov =
|
|
17455
|
+
AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
17376
17456
|
AccountValidatorService.decorators = [
|
|
17377
17457
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
17378
17458
|
];
|
|
@@ -17905,7 +17985,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
17905
17985
|
});
|
|
17906
17986
|
}
|
|
17907
17987
|
}
|
|
17908
|
-
LocalSettingsValidatorService.ɵprov =
|
|
17988
|
+
LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
17909
17989
|
LocalSettingsValidatorService.decorators = [
|
|
17910
17990
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
17911
17991
|
];
|
|
@@ -18523,7 +18603,7 @@ class IsOnFieldModePipe {
|
|
|
18523
18603
|
return value === 'FIELD';
|
|
18524
18604
|
}
|
|
18525
18605
|
}
|
|
18526
|
-
IsOnFieldModePipe.ɵprov =
|
|
18606
|
+
IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
18527
18607
|
IsOnFieldModePipe.decorators = [
|
|
18528
18608
|
{ type: Pipe, args: [{
|
|
18529
18609
|
name: 'isOnField'
|
|
@@ -18535,7 +18615,7 @@ class IsNotOnFieldModePipe {
|
|
|
18535
18615
|
return value !== 'FIELD';
|
|
18536
18616
|
}
|
|
18537
18617
|
}
|
|
18538
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
18618
|
+
IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
18539
18619
|
IsNotOnFieldModePipe.decorators = [
|
|
18540
18620
|
{ type: Pipe, args: [{
|
|
18541
18621
|
name: 'isNotOnField'
|
|
@@ -18550,7 +18630,7 @@ class PersonToStringPipe {
|
|
|
18550
18630
|
return PersonUtils.personToString(value);
|
|
18551
18631
|
}
|
|
18552
18632
|
}
|
|
18553
|
-
PersonToStringPipe.ɵprov =
|
|
18633
|
+
PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
18554
18634
|
PersonToStringPipe.decorators = [
|
|
18555
18635
|
{ type: Pipe, args: [{
|
|
18556
18636
|
name: 'personToString'
|
|
@@ -18896,7 +18976,7 @@ class IsLoginAccountPipe {
|
|
|
18896
18976
|
return value && value.pubkey && true;
|
|
18897
18977
|
}
|
|
18898
18978
|
}
|
|
18899
|
-
IsLoginAccountPipe.ɵprov =
|
|
18979
|
+
IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
18900
18980
|
IsLoginAccountPipe.decorators = [
|
|
18901
18981
|
{ type: Pipe, args: [{
|
|
18902
18982
|
name: 'isLogin'
|
|
@@ -18908,7 +18988,7 @@ class AccountToStringPipe {
|
|
|
18908
18988
|
return accountToString(value);
|
|
18909
18989
|
}
|
|
18910
18990
|
}
|
|
18911
|
-
AccountToStringPipe.ɵprov =
|
|
18991
|
+
AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
18912
18992
|
AccountToStringPipe.decorators = [
|
|
18913
18993
|
{ type: Pipe, args: [{
|
|
18914
18994
|
name: 'accountToString'
|
|
@@ -18923,7 +19003,7 @@ class DepartmentToStringPipe {
|
|
|
18923
19003
|
return departmentToString(value);
|
|
18924
19004
|
}
|
|
18925
19005
|
}
|
|
18926
|
-
DepartmentToStringPipe.ɵprov =
|
|
19006
|
+
DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
18927
19007
|
DepartmentToStringPipe.decorators = [
|
|
18928
19008
|
{ type: Pipe, args: [{
|
|
18929
19009
|
name: 'departmentToString'
|
|
@@ -18949,7 +19029,7 @@ class MenuService {
|
|
|
18949
19029
|
this._visibleSubject.next(value);
|
|
18950
19030
|
}
|
|
18951
19031
|
}
|
|
18952
|
-
MenuService.ɵprov =
|
|
19032
|
+
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
18953
19033
|
MenuService.decorators = [
|
|
18954
19034
|
{ type: Injectable, args: [{
|
|
18955
19035
|
providedIn: 'root'
|
|
@@ -19443,7 +19523,7 @@ class AuthGuardService {
|
|
|
19443
19523
|
}));
|
|
19444
19524
|
}
|
|
19445
19525
|
}
|
|
19446
|
-
AuthGuardService.ɵprov =
|
|
19526
|
+
AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
19447
19527
|
AuthGuardService.decorators = [
|
|
19448
19528
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
19449
19529
|
];
|
|
@@ -19491,7 +19571,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19491
19571
|
query,
|
|
19492
19572
|
variables: { id },
|
|
19493
19573
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
19494
|
-
error: { code: ErrorCodes
|
|
19574
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
19495
19575
|
})
|
|
19496
19576
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
19497
19577
|
? (data && this.fromObject(data))
|
|
@@ -19506,7 +19586,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19506
19586
|
query,
|
|
19507
19587
|
variables: { id },
|
|
19508
19588
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
19509
|
-
error: { code: ErrorCodes
|
|
19589
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
19510
19590
|
});
|
|
19511
19591
|
// Convert to entity
|
|
19512
19592
|
return (!opts || opts.toEntity !== false)
|
|
@@ -19537,7 +19617,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19537
19617
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
19538
19618
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
19539
19619
|
variables,
|
|
19540
|
-
error: { code: ErrorCodes
|
|
19620
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
19541
19621
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
19542
19622
|
})
|
|
19543
19623
|
.pipe(map(({ data, total }) => {
|
|
@@ -19573,7 +19653,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19573
19653
|
const { data, total } = yield this.graphql.query({
|
|
19574
19654
|
query,
|
|
19575
19655
|
variables,
|
|
19576
|
-
error: { code: ErrorCodes
|
|
19656
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
19577
19657
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
19578
19658
|
});
|
|
19579
19659
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -19612,7 +19692,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19612
19692
|
variables: {
|
|
19613
19693
|
filter: filter && filter.asPodObject()
|
|
19614
19694
|
},
|
|
19615
|
-
error: { code: ErrorCodes
|
|
19695
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
19616
19696
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
19617
19697
|
});
|
|
19618
19698
|
return res.total;
|
|
@@ -19645,7 +19725,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19645
19725
|
variables: {
|
|
19646
19726
|
data: json
|
|
19647
19727
|
},
|
|
19648
|
-
error: { code: ErrorCodes
|
|
19728
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19649
19729
|
update: (proxy, { data }) => {
|
|
19650
19730
|
const savedEntities = data && data.data;
|
|
19651
19731
|
if (savedEntities) {
|
|
@@ -19701,7 +19781,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19701
19781
|
variables: {
|
|
19702
19782
|
data: json
|
|
19703
19783
|
},
|
|
19704
|
-
error: { code: ErrorCodes
|
|
19784
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19705
19785
|
update: (cache, { data }) => {
|
|
19706
19786
|
// Update entity
|
|
19707
19787
|
const savedEntity = data && data.data;
|
|
@@ -19749,7 +19829,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19749
19829
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
19750
19830
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
19751
19831
|
variables: { ids },
|
|
19752
|
-
error: { code: ErrorCodes
|
|
19832
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19753
19833
|
update: (cache, res) => {
|
|
19754
19834
|
// Remove from cache
|
|
19755
19835
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -19790,7 +19870,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19790
19870
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
19791
19871
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
19792
19872
|
variables: { id },
|
|
19793
|
-
error: { code: ErrorCodes
|
|
19873
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19794
19874
|
update: (proxy, res) => {
|
|
19795
19875
|
// Remove from cache
|
|
19796
19876
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -19823,7 +19903,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19823
19903
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
19824
19904
|
variables,
|
|
19825
19905
|
error: {
|
|
19826
|
-
code: ErrorCodes
|
|
19906
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
19827
19907
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
19828
19908
|
}
|
|
19829
19909
|
})
|
|
@@ -19998,7 +20078,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
19998
20078
|
if (this._debug)
|
|
19999
20079
|
invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
20000
20080
|
// Stop with an error
|
|
20001
|
-
throw { code: ErrorCodes
|
|
20081
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20002
20082
|
}
|
|
20003
20083
|
this._editingRowCount = 0;
|
|
20004
20084
|
let data;
|
|
@@ -20281,7 +20361,7 @@ class AppTable {
|
|
|
20281
20361
|
this._paginator = null;
|
|
20282
20362
|
this.mobile = this.platform.is('mobile');
|
|
20283
20363
|
this.translate = injector === null || injector === void 0 ? void 0 : injector.get(TranslateService);
|
|
20284
|
-
this.formErrorAdapter = injector === null || injector === void 0 ? void 0 : injector.get(
|
|
20364
|
+
this.formErrorAdapter = injector === null || injector === void 0 ? void 0 : injector.get(FormErrorTranslator);
|
|
20285
20365
|
this.alertCtrl = injector === null || injector === void 0 ? void 0 : injector.get(AlertController);
|
|
20286
20366
|
this.toastController = injector === null || injector === void 0 ? void 0 : injector.get(ToastController);
|
|
20287
20367
|
this._autocompleteConfigHolder = new MatAutocompleteConfigHolder({
|
|
@@ -20820,14 +20900,14 @@ class AppTable {
|
|
|
20820
20900
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20821
20901
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
20822
20902
|
if (this.readOnly) {
|
|
20823
|
-
throw { code: ErrorCodes
|
|
20903
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20824
20904
|
}
|
|
20825
20905
|
this.resetError();
|
|
20826
20906
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
20827
20907
|
this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
|
|
20828
20908
|
const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
|
|
20829
20909
|
if (!this.confirmEditCreate()) {
|
|
20830
|
-
throw { code: ErrorCodes
|
|
20910
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20831
20911
|
}
|
|
20832
20912
|
// Mark as saving
|
|
20833
20913
|
this.markAsSaving();
|
|
@@ -20943,7 +21023,7 @@ class AppTable {
|
|
|
20943
21023
|
deleteRows(event, rows, opts) {
|
|
20944
21024
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20945
21025
|
if (this.readOnly) {
|
|
20946
|
-
throw { code: ErrorCodes
|
|
21026
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20947
21027
|
}
|
|
20948
21028
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
20949
21029
|
return 0; // SKip
|
|
@@ -22230,7 +22310,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22230
22310
|
// Default options
|
|
22231
22311
|
enableListenChanges: (injector.get(ENVIRONMENT).listenRemoteChanges === true), pathIdAttribute: 'id', autoLoad: true, autoUpdateRoute: true, i18nPrefix: '' }, options);
|
|
22232
22312
|
this.settings = injector.get(LocalSettingsService);
|
|
22233
|
-
this.formErrorAdapter = injector.get(
|
|
22313
|
+
this.formErrorAdapter = injector.get(FormErrorTranslator);
|
|
22234
22314
|
this.cd = injector.get(ChangeDetectorRef);
|
|
22235
22315
|
this.dateFormat = injector.get(DateFormatPipe);
|
|
22236
22316
|
this.toastController = injector.get(ToastController);
|
|
@@ -22354,7 +22434,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22354
22434
|
try {
|
|
22355
22435
|
const data = yield this.dataService.load(id, opts);
|
|
22356
22436
|
if (!data)
|
|
22357
|
-
throw { code: ErrorCodes
|
|
22437
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
22358
22438
|
this._usageMode = this.computeUsageMode(data);
|
|
22359
22439
|
yield this.onEntityLoaded(data, opts);
|
|
22360
22440
|
yield this.updateView(data, opts);
|
|
@@ -22398,7 +22478,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22398
22478
|
const idChanged = isNotNil(data.id)
|
|
22399
22479
|
&& this.previousDataId !== undefined // Ignore if first loading (=undefined)
|
|
22400
22480
|
&& this.previousDataId !== data.id;
|
|
22401
|
-
opts = Object.assign({ updateRoute: this._autoUpdateRoute && idChanged && !this.loading, openTabIndex: this._autoOpenNextTab && idChanged && this.computeNextTabIndex() }, opts);
|
|
22481
|
+
opts = Object.assign({ updateRoute: this._autoUpdateRoute && idChanged && !this.loading, openTabIndex: this._autoOpenNextTab && idChanged && isNil(this.previousDataId) && this.computeNextTabIndex() }, opts);
|
|
22402
22482
|
this.data = data;
|
|
22403
22483
|
this.previousDataId = data.id || null;
|
|
22404
22484
|
const promiseOrVoid = this.setValue(data);
|
|
@@ -22657,9 +22737,13 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22657
22737
|
this.error = userMessage;
|
|
22658
22738
|
}
|
|
22659
22739
|
/* -- protected methods -- */
|
|
22740
|
+
/**
|
|
22741
|
+
* Return undefined to keep same tab
|
|
22742
|
+
* @protected
|
|
22743
|
+
*/
|
|
22660
22744
|
computeNextTabIndex() {
|
|
22661
22745
|
const nextTabIndex = this.selectedTabIndex + 1;
|
|
22662
|
-
return nextTabIndex < this.tabCount ? nextTabIndex :
|
|
22746
|
+
return nextTabIndex < this.tabCount ? nextTabIndex : undefined;
|
|
22663
22747
|
}
|
|
22664
22748
|
unload() {
|
|
22665
22749
|
return __awaiter(this, void 0, void 0, function* () {
|
|
@@ -23254,7 +23338,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
23254
23338
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
23255
23339
|
}
|
|
23256
23340
|
}
|
|
23257
|
-
UserEventService.ɵprov =
|
|
23341
|
+
UserEventService.ɵprov = ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(ɵɵinject(GraphqlService), ɵɵinject(AccountService), ɵɵinject(NetworkService), ɵɵinject(TranslateService), ɵɵinject(ToastController), ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
|
|
23258
23342
|
UserEventService.decorators = [
|
|
23259
23343
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23260
23344
|
];
|
|
@@ -23639,7 +23723,7 @@ class PersonService extends BaseEntityService {
|
|
|
23639
23723
|
return target;
|
|
23640
23724
|
}
|
|
23641
23725
|
}
|
|
23642
|
-
PersonService.ɵprov =
|
|
23726
|
+
PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
23643
23727
|
PersonService.decorators = [
|
|
23644
23728
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23645
23729
|
];
|
|
@@ -23670,7 +23754,7 @@ class PersonValidatorService {
|
|
|
23670
23754
|
return this.formBuilder.group(formConfig);
|
|
23671
23755
|
}
|
|
23672
23756
|
}
|
|
23673
|
-
PersonValidatorService.ɵprov =
|
|
23757
|
+
PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
23674
23758
|
PersonValidatorService.decorators = [
|
|
23675
23759
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23676
23760
|
];
|
|
@@ -23876,16 +23960,16 @@ AdminModule.decorators = [
|
|
|
23876
23960
|
];
|
|
23877
23961
|
AdminModule.ctorParameters = () => [];
|
|
23878
23962
|
|
|
23879
|
-
const ɵ0 = {
|
|
23963
|
+
const ɵ0$a = {
|
|
23880
23964
|
profile: 'ADMIN'
|
|
23881
23965
|
};
|
|
23882
|
-
const routes = [
|
|
23966
|
+
const routes$1 = [
|
|
23883
23967
|
{
|
|
23884
23968
|
path: 'users',
|
|
23885
23969
|
pathMatch: 'full',
|
|
23886
23970
|
component: UsersPage,
|
|
23887
23971
|
canActivate: [AuthGuardService],
|
|
23888
|
-
data: ɵ0
|
|
23972
|
+
data: ɵ0$a
|
|
23889
23973
|
}
|
|
23890
23974
|
];
|
|
23891
23975
|
class AdminRoutingModule {
|
|
@@ -23895,13 +23979,13 @@ AdminRoutingModule.decorators = [
|
|
|
23895
23979
|
imports: [
|
|
23896
23980
|
SharedRoutingModule,
|
|
23897
23981
|
AdminModule,
|
|
23898
|
-
RouterModule.forChild(routes)
|
|
23982
|
+
RouterModule.forChild(routes$1)
|
|
23899
23983
|
],
|
|
23900
23984
|
exports: [RouterModule]
|
|
23901
23985
|
},] }
|
|
23902
23986
|
];
|
|
23903
23987
|
|
|
23904
|
-
const ErrorCodes = {
|
|
23988
|
+
const ErrorCodes$2 = {
|
|
23905
23989
|
LOAD_PERSONS_ERROR: 100,
|
|
23906
23990
|
SAVE_PERSONS_ERROR: 101,
|
|
23907
23991
|
DELETE_PERSONS_ERROR: 102,
|
|
@@ -23913,5 +23997,5 @@ const ErrorCodes = {
|
|
|
23913
23997
|
* Generated bundle index. Do not edit.
|
|
23914
23998
|
*/
|
|
23915
23999
|
|
|
23916
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken,
|
|
24000
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, 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, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, 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, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitIdle, waitWhilePending, ɵ0$5 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, RegisterForm as ɵg, AccountValidatorService as ɵh, RegisterModal as ɵi, UserSettingsValidatorService as ɵj, LocalSettingsValidatorService as ɵk };
|
|
23917
24001
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|