@sumaris-net/ngx-components 0.26.5 → 0.26.6
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 +297 -266
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/esm2015/src/app/core/form/entity-editor.class.js +2 -3
- package/esm2015/src/app/core/form/form-buttons-bar.component.js +2 -1
- package/esm2015/src/app/core/form/form.class.js +1 -1
- package/esm2015/src/app/shared/help/help.modal.js +1 -1
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +4 -2
- package/esm2015/src/app/shared/material/badge/badge-icon.directive.js +2 -2
- package/esm2015/src/app/shared/pipes/form.pipes.js +1 -1
- package/esm2015/src/app/shared/toolbar/modal-toolbar.js +6 -1
- package/fesm2015/sumaris-net.ngx-components.js +281 -259
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/shared/help/help.modal.d.ts +7 -1
- package/src/app/shared/material/autocomplete/material.autocomplete.d.ts +1 -0
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,9 +1,12 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { InjectionToken, EventEmitter, forwardRef, Component, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, HostBinding, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, ViewChildren, HostListener, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2 } from '@angular/core';
|
|
3
|
+
import * as i1$3 from '@angular/common';
|
|
2
4
|
import { CommonModule, DOCUMENT, Location } from '@angular/common';
|
|
3
5
|
import { CdkTableModule } from '@angular/cdk/table';
|
|
4
6
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
5
7
|
import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
6
8
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
9
|
+
import * as i1$2 from '@angular/material/core';
|
|
7
10
|
import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
|
|
8
11
|
import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
|
|
9
12
|
import { MatSortModule, MatSort } from '@angular/material/sort';
|
|
@@ -27,16 +30,21 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
|
27
30
|
import { MatRadioModule } from '@angular/material/radio';
|
|
28
31
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
29
32
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
33
|
+
import * as i2$1 from '@angular/material/dialog';
|
|
30
34
|
import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
31
35
|
import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
|
|
32
36
|
import { __awaiter, __decorate } from 'tslib';
|
|
37
|
+
import * as i1$6 from '@angular/forms';
|
|
33
38
|
import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
|
|
34
39
|
import { timer, merge, fromEvent, Subscription, BehaviorSubject, Subject, isObservable, of, noop as noop$8, Observable, defer, from, combineLatest, EMPTY } from 'rxjs';
|
|
35
40
|
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';
|
|
36
42
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
43
|
+
import * as i1$4 from '@ionic/angular';
|
|
37
44
|
import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent } from '@ionic/angular';
|
|
38
45
|
import * as momentImported from 'moment';
|
|
39
46
|
import { isMoment } from 'moment';
|
|
47
|
+
import * as i1 from '@angular/material-moment-adapter';
|
|
40
48
|
import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
41
49
|
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
42
50
|
import { TextMaskModule } from 'angular2-text-mask';
|
|
@@ -46,32 +54,38 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
|
|
|
46
54
|
import { MatDividerModule } from '@angular/material/divider';
|
|
47
55
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
48
56
|
import { MatChipsModule } from '@angular/material/chips';
|
|
57
|
+
import * as i3$3 from '@angular/router';
|
|
49
58
|
import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
|
|
59
|
+
import * as i1$5 from '@angular/platform-browser';
|
|
50
60
|
import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
|
|
61
|
+
import * as i2$2 from '@angular/common/http';
|
|
51
62
|
import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
52
63
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
53
|
-
import { NativeAudio
|
|
54
|
-
import { Vibration
|
|
64
|
+
import { NativeAudio } from '@ionic-native/native-audio/ngx';
|
|
65
|
+
import { Vibration } from '@ionic-native/vibration/ngx';
|
|
55
66
|
import { AudioManagement } from '@ionic-native/audio-management/ngx';
|
|
56
|
-
import
|
|
57
|
-
import
|
|
58
|
-
import
|
|
67
|
+
import * as i2 from '@ionic-native/native-audio/ngx/index';
|
|
68
|
+
import * as i3 from '@ionic-native/vibration/ngx/index';
|
|
69
|
+
import * as i4 from '@ionic-native/audio-management/ngx/index';
|
|
59
70
|
import * as uuidv4Imported from 'uuid/v4';
|
|
60
71
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
61
72
|
import { MarkdownModule } from 'ngx-markdown';
|
|
62
73
|
import { sign, box, hash, verify } from 'tweetnacl';
|
|
74
|
+
import * as i3$1 from '@ionic/storage';
|
|
63
75
|
import { Storage, IonicStorageModule } from '@ionic/storage';
|
|
64
76
|
import 'zone.js/dist/zone-error';
|
|
65
|
-
import { SplashScreen
|
|
66
|
-
import { Connection, Network
|
|
67
|
-
import { CacheService
|
|
68
|
-
import
|
|
69
|
-
import
|
|
70
|
-
import
|
|
71
|
-
import { StatusBar
|
|
77
|
+
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
|
|
78
|
+
import { Connection, Network } from '@ionic-native/network/ngx';
|
|
79
|
+
import { CacheService, CacheModule } from 'ionic-cache';
|
|
80
|
+
import * as i6 from 'ionic-cache/dist/cache.service';
|
|
81
|
+
import * as i9 from '@ionic-native/network/ngx/index';
|
|
82
|
+
import * as i10 from '@ionic-native/splash-screen/ngx/index';
|
|
83
|
+
import { StatusBar } from '@ionic-native/status-bar/ngx';
|
|
84
|
+
import * as i2$4 from '@angular/cdk/platform';
|
|
72
85
|
import { Platform as Platform$1 } from '@angular/cdk/platform';
|
|
73
|
-
import { InAppBrowser
|
|
86
|
+
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
|
74
87
|
import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
|
|
88
|
+
import * as i2$3 from 'apollo-angular';
|
|
75
89
|
import { Apollo } from 'apollo-angular';
|
|
76
90
|
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
77
91
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
@@ -79,13 +93,14 @@ import { RetryLink } from '@apollo/client/link/retry';
|
|
|
79
93
|
import QueueLink from 'apollo-link-queue';
|
|
80
94
|
import SerializingLink from 'apollo-link-serialize';
|
|
81
95
|
import loggerLink from 'apollo-link-logger';
|
|
96
|
+
import * as i3$2 from 'apollo-angular/http';
|
|
82
97
|
import { HttpLink } from 'apollo-angular/http';
|
|
83
98
|
import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
|
|
84
|
-
import { NotificationVisibility, Downloader
|
|
85
|
-
import
|
|
86
|
-
import
|
|
87
|
-
import
|
|
88
|
-
import
|
|
99
|
+
import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
|
|
100
|
+
import * as i14 from '@ionic-native/status-bar/ngx/index';
|
|
101
|
+
import * as i15 from '@ionic-native/keyboard/ngx/index';
|
|
102
|
+
import * as i17 from '@ionic-native/in-app-browser/ngx/index';
|
|
103
|
+
import * as i18 from '@ionic-native/downloader/ngx/index';
|
|
89
104
|
import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
|
|
90
105
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
91
106
|
import { NgxJdenticonModule } from 'ngx-jdenticon';
|
|
@@ -870,19 +885,19 @@ class MatAutocompleteConfigHolder {
|
|
|
870
885
|
return this.fields[fieldName] || this.add(fieldName);
|
|
871
886
|
}
|
|
872
887
|
}
|
|
873
|
-
const DEFAULT_VALUE_ACCESSOR = {
|
|
888
|
+
const DEFAULT_VALUE_ACCESSOR$6 = {
|
|
874
889
|
provide: NG_VALUE_ACCESSOR,
|
|
875
890
|
useExisting: forwardRef(() => MatAutocompleteField),
|
|
876
891
|
multi: true
|
|
877
892
|
};
|
|
878
|
-
const noop = () => { };
|
|
879
|
-
const ɵ0 = noop;
|
|
893
|
+
const noop$7 = () => { };
|
|
894
|
+
const ɵ0$a = noop$7;
|
|
880
895
|
class MatAutocompleteField {
|
|
881
896
|
constructor(cd, formGroupDir) {
|
|
882
897
|
this.cd = cd;
|
|
883
898
|
this.formGroupDir = formGroupDir;
|
|
884
|
-
this._onChangeCallback = noop;
|
|
885
|
-
this._onTouchedCallback = noop;
|
|
899
|
+
this._onChangeCallback = noop$7;
|
|
900
|
+
this._onTouchedCallback = noop$7;
|
|
886
901
|
this._subscription = new Subscription();
|
|
887
902
|
this._filter$ = new BehaviorSubject(undefined);
|
|
888
903
|
this._reload$ = new Subject();
|
|
@@ -912,6 +927,7 @@ class MatAutocompleteField {
|
|
|
912
927
|
this.onDropButtonClick = new EventEmitter(true);
|
|
913
928
|
this.onKeydownEscape = new EventEmitter();
|
|
914
929
|
this.onKeyupEnter = new EventEmitter();
|
|
930
|
+
this.onKeydownTab = new EventEmitter();
|
|
915
931
|
}
|
|
916
932
|
get itemCount() {
|
|
917
933
|
return this._itemCount;
|
|
@@ -1475,8 +1491,8 @@ MatAutocompleteField.decorators = [
|
|
|
1475
1491
|
{ type: Component, args: [{
|
|
1476
1492
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1477
1493
|
selector: 'mat-autocomplete-field',
|
|
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",
|
|
1479
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
1494
|
+
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 (keydown.tab)=\"onKeydownTab.emit($event)\"\n (keyup.enter)=\"onKeyupEnter.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 (keydown.tab)=\"onKeydownTab.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",
|
|
1495
|
+
providers: [DEFAULT_VALUE_ACCESSOR$6],
|
|
1480
1496
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
1481
1497
|
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}"]
|
|
1482
1498
|
},] }
|
|
@@ -1527,6 +1543,7 @@ MatAutocompleteField.propDecorators = {
|
|
|
1527
1543
|
onDropButtonClick: [{ type: Output, args: ['dropButtonClick',] }],
|
|
1528
1544
|
onKeydownEscape: [{ type: Output, args: ['keydown.escape',] }],
|
|
1529
1545
|
onKeyupEnter: [{ type: Output, args: ['keyup.enter',] }],
|
|
1546
|
+
onKeydownTab: [{ type: Output, args: ['keydown.tab',] }],
|
|
1530
1547
|
matSelect: [{ type: ViewChild, args: ['matSelect',] }],
|
|
1531
1548
|
matInputText: [{ type: ViewChild, args: ['matInputText',] }],
|
|
1532
1549
|
matAutocomplete: [{ type: ViewChild, args: [MatAutocomplete,] }],
|
|
@@ -1553,7 +1570,7 @@ class DateFormatPipe {
|
|
|
1553
1570
|
return this.dateAdapter.format(date, displayFormat);
|
|
1554
1571
|
}
|
|
1555
1572
|
}
|
|
1556
|
-
DateFormatPipe.ɵprov =
|
|
1573
|
+
DateFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
1557
1574
|
DateFormatPipe.decorators = [
|
|
1558
1575
|
{ type: Pipe, args: [{
|
|
1559
1576
|
name: 'dateFormat'
|
|
@@ -1565,7 +1582,7 @@ DateFormatPipe.ctorParameters = () => [
|
|
|
1565
1582
|
{ type: TranslateService }
|
|
1566
1583
|
];
|
|
1567
1584
|
|
|
1568
|
-
const moment = momentImported;
|
|
1585
|
+
const moment$6 = momentImported;
|
|
1569
1586
|
class DateDiffDurationPipe {
|
|
1570
1587
|
constructor(dateAdapter, translate) {
|
|
1571
1588
|
this.dateAdapter = dateAdapter;
|
|
@@ -1581,17 +1598,17 @@ class DateDiffDurationPipe {
|
|
|
1581
1598
|
return this.format(startDate, endDate);
|
|
1582
1599
|
}
|
|
1583
1600
|
format(startDate, endDate) {
|
|
1584
|
-
const duration = moment.duration(endDate.diff(startDate));
|
|
1601
|
+
const duration = moment$6.duration(endDate.diff(startDate));
|
|
1585
1602
|
if (duration.asMinutes() < 0)
|
|
1586
1603
|
return '';
|
|
1587
|
-
const timeDuration = moment(0)
|
|
1604
|
+
const timeDuration = moment$6(0)
|
|
1588
1605
|
.hour(duration.hours())
|
|
1589
1606
|
.minute(duration.minutes());
|
|
1590
1607
|
const days = Math.floor(duration.asDays());
|
|
1591
1608
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
|
|
1592
1609
|
}
|
|
1593
1610
|
}
|
|
1594
|
-
DateDiffDurationPipe.ɵprov =
|
|
1611
|
+
DateDiffDurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(i0.ɵɵinject(i1$2.DateAdapter), i0.ɵɵinject(i1$1.TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
1595
1612
|
DateDiffDurationPipe.decorators = [
|
|
1596
1613
|
{ type: Pipe, args: [{
|
|
1597
1614
|
name: 'dateDiffDuration'
|
|
@@ -1612,7 +1629,7 @@ class DateFromNowPipe {
|
|
|
1612
1629
|
return date ? date.fromNow(args && args.withoutSuffix) : '';
|
|
1613
1630
|
}
|
|
1614
1631
|
}
|
|
1615
|
-
DateFromNowPipe.ɵprov =
|
|
1632
|
+
DateFromNowPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(i0.ɵɵinject(i1.MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
1616
1633
|
DateFromNowPipe.decorators = [
|
|
1617
1634
|
{ type: Pipe, args: [{
|
|
1618
1635
|
name: 'dateFromNow'
|
|
@@ -1681,7 +1698,7 @@ function formatToDD(value, opts) {
|
|
|
1681
1698
|
value *= -1;
|
|
1682
1699
|
}
|
|
1683
1700
|
}
|
|
1684
|
-
let degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
1701
|
+
let degrees = roundFloat$1(value, opts.maxDecimals).toString();
|
|
1685
1702
|
// Add sign
|
|
1686
1703
|
let sign = negative ? '-' : '+';
|
|
1687
1704
|
if (opts.placeholderChar) {
|
|
@@ -1732,7 +1749,7 @@ function formatToDDMMSS(value, opts) {
|
|
|
1732
1749
|
}
|
|
1733
1750
|
let degrees = Math.trunc(value);
|
|
1734
1751
|
let minutes = Math.trunc((value - degrees) * 60);
|
|
1735
|
-
let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1752
|
+
let seconds = roundFloat$1(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1736
1753
|
while (seconds >= 60) {
|
|
1737
1754
|
seconds -= 60;
|
|
1738
1755
|
minutes += 1;
|
|
@@ -1800,7 +1817,7 @@ function formatToDDMM(value, opts) {
|
|
|
1800
1817
|
}
|
|
1801
1818
|
}
|
|
1802
1819
|
let degrees = Math.trunc(value);
|
|
1803
|
-
let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
1820
|
+
let minutes = roundFloat$1((value - degrees) * 60, opts.maxDecimals);
|
|
1804
1821
|
while (minutes >= 60) {
|
|
1805
1822
|
minutes -= 60;
|
|
1806
1823
|
degrees += 1;
|
|
@@ -1851,15 +1868,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
|
|
|
1851
1868
|
return NaN;
|
|
1852
1869
|
}
|
|
1853
1870
|
if (pattern === 'DD')
|
|
1854
|
-
return roundFloat(degrees, maxDecimals);
|
|
1871
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
1855
1872
|
const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
1856
1873
|
const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
1857
1874
|
const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
1858
1875
|
const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
1859
1876
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
1860
|
-
return roundFloat(degrees, maxDecimals);
|
|
1877
|
+
return roundFloat$1(degrees, maxDecimals);
|
|
1861
1878
|
}
|
|
1862
|
-
function roundFloat(input, maxDecimals) {
|
|
1879
|
+
function roundFloat$1(input, maxDecimals) {
|
|
1863
1880
|
if (maxDecimals > 0) {
|
|
1864
1881
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
1865
1882
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -1879,7 +1896,7 @@ class LatLongFormatPipe {
|
|
|
1879
1896
|
return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
|
|
1880
1897
|
}
|
|
1881
1898
|
}
|
|
1882
|
-
LatLongFormatPipe.ɵprov =
|
|
1899
|
+
LatLongFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
1883
1900
|
LatLongFormatPipe.decorators = [
|
|
1884
1901
|
{ type: Pipe, args: [{
|
|
1885
1902
|
name: 'latLongFormat'
|
|
@@ -1891,7 +1908,7 @@ class LatitudeFormatPipe {
|
|
|
1891
1908
|
this.transform = formatLatitude;
|
|
1892
1909
|
}
|
|
1893
1910
|
}
|
|
1894
|
-
LatitudeFormatPipe.ɵprov =
|
|
1911
|
+
LatitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
1895
1912
|
LatitudeFormatPipe.decorators = [
|
|
1896
1913
|
{ type: Pipe, args: [{
|
|
1897
1914
|
name: 'latitudeFormat'
|
|
@@ -1903,7 +1920,7 @@ class LongitudeFormatPipe {
|
|
|
1903
1920
|
this.transform = formatLongitude;
|
|
1904
1921
|
}
|
|
1905
1922
|
}
|
|
1906
|
-
LongitudeFormatPipe.ɵprov =
|
|
1923
|
+
LongitudeFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
1907
1924
|
LongitudeFormatPipe.decorators = [
|
|
1908
1925
|
{ type: Pipe, args: [{
|
|
1909
1926
|
name: 'longitudeFormat'
|
|
@@ -1923,7 +1940,7 @@ class NumberFormatPipe {
|
|
|
1923
1940
|
}
|
|
1924
1941
|
}
|
|
1925
1942
|
}
|
|
1926
|
-
NumberFormatPipe.ɵprov =
|
|
1943
|
+
NumberFormatPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
1927
1944
|
NumberFormatPipe.decorators = [
|
|
1928
1945
|
{ type: Pipe, args: [{
|
|
1929
1946
|
name: 'numberFormat'
|
|
@@ -1963,7 +1980,7 @@ class HighlightPipe {
|
|
|
1963
1980
|
}
|
|
1964
1981
|
}
|
|
1965
1982
|
}
|
|
1966
|
-
HighlightPipe.ɵprov =
|
|
1983
|
+
HighlightPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
1967
1984
|
HighlightPipe.decorators = [
|
|
1968
1985
|
{ type: Pipe, args: [{
|
|
1969
1986
|
name: 'highlight'
|
|
@@ -2028,7 +2045,7 @@ FileSizePipe.decorators = [
|
|
|
2028
2045
|
{ type: Pipe, args: [{ name: 'fileSize' },] }
|
|
2029
2046
|
];
|
|
2030
2047
|
|
|
2031
|
-
const moment$
|
|
2048
|
+
const moment$5 = momentImported;
|
|
2032
2049
|
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2033
2050
|
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2034
2051
|
class DateUtils {
|
|
@@ -2062,32 +2079,32 @@ function fromDateISOString(value) {
|
|
|
2062
2079
|
if (!value || isMoment(value))
|
|
2063
2080
|
return value;
|
|
2064
2081
|
// Parse the input value, as a ISO date time
|
|
2065
|
-
const date = moment$
|
|
2082
|
+
const date = moment$5(value, DATE_ISO_PATTERN);
|
|
2066
2083
|
if (date.isValid())
|
|
2067
2084
|
return date;
|
|
2068
2085
|
// Not valid: trying to convert from unix timestamp
|
|
2069
2086
|
if (typeof value === 'string') {
|
|
2070
2087
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2071
2088
|
if (value.length === 10) {
|
|
2072
|
-
return moment$
|
|
2089
|
+
return moment$5(value, DATE_UNIX_TIMESTAMP);
|
|
2073
2090
|
}
|
|
2074
2091
|
else if (value.length === 13) {
|
|
2075
|
-
return moment$
|
|
2092
|
+
return moment$5(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2076
2093
|
}
|
|
2077
2094
|
}
|
|
2078
2095
|
console.warn('Unable to parse date: ' + value);
|
|
2079
2096
|
return undefined;
|
|
2080
2097
|
}
|
|
2081
2098
|
function fromUnixTimestamp(timeInSec) {
|
|
2082
|
-
return moment$
|
|
2099
|
+
return moment$5(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2083
2100
|
}
|
|
2084
2101
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2085
|
-
return moment$
|
|
2102
|
+
return moment$5(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2086
2103
|
}
|
|
2087
2104
|
function toDuration(value, unit) {
|
|
2088
2105
|
if (!value)
|
|
2089
2106
|
return undefined;
|
|
2090
|
-
const duration = moment$
|
|
2107
|
+
const duration = moment$5.duration(value, unit);
|
|
2091
2108
|
// fix 990+ ms
|
|
2092
2109
|
if (duration.milliseconds() >= 990) {
|
|
2093
2110
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2116,7 +2133,7 @@ class DurationPipe {
|
|
|
2116
2133
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
|
|
2117
2134
|
}
|
|
2118
2135
|
}
|
|
2119
|
-
DurationPipe.ɵprov =
|
|
2136
|
+
DurationPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(i0.ɵɵinject(i1$1.TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2120
2137
|
DurationPipe.decorators = [
|
|
2121
2138
|
{ type: Pipe, args: [{
|
|
2122
2139
|
name: 'duration'
|
|
@@ -2137,7 +2154,7 @@ class MathAbsPipe {
|
|
|
2137
2154
|
}
|
|
2138
2155
|
}
|
|
2139
2156
|
}
|
|
2140
|
-
MathAbsPipe.ɵprov =
|
|
2157
|
+
MathAbsPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2141
2158
|
MathAbsPipe.decorators = [
|
|
2142
2159
|
{ type: Pipe, args: [{
|
|
2143
2160
|
name: 'mathAbs'
|
|
@@ -2149,7 +2166,7 @@ class EvenPipe {
|
|
|
2149
2166
|
return val % 2 === 0;
|
|
2150
2167
|
}
|
|
2151
2168
|
}
|
|
2152
|
-
EvenPipe.ɵprov =
|
|
2169
|
+
EvenPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2153
2170
|
EvenPipe.decorators = [
|
|
2154
2171
|
{ type: Pipe, args: [{
|
|
2155
2172
|
name: 'even'
|
|
@@ -2161,7 +2178,7 @@ class OddPipe {
|
|
|
2161
2178
|
return val % 2 !== 0;
|
|
2162
2179
|
}
|
|
2163
2180
|
}
|
|
2164
|
-
OddPipe.ɵprov =
|
|
2181
|
+
OddPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2165
2182
|
OddPipe.decorators = [
|
|
2166
2183
|
{ type: Pipe, args: [{
|
|
2167
2184
|
name: 'odd'
|
|
@@ -2269,7 +2286,7 @@ class MapGetPipe {
|
|
|
2269
2286
|
return val[key];
|
|
2270
2287
|
}
|
|
2271
2288
|
}
|
|
2272
|
-
MapGetPipe.ɵprov =
|
|
2289
|
+
MapGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2273
2290
|
MapGetPipe.decorators = [
|
|
2274
2291
|
{ type: Pipe, args: [{
|
|
2275
2292
|
name: 'mapGet'
|
|
@@ -2283,7 +2300,7 @@ class MapKeysPipe {
|
|
|
2283
2300
|
return Object.keys(map);
|
|
2284
2301
|
}
|
|
2285
2302
|
}
|
|
2286
|
-
MapKeysPipe.ɵprov =
|
|
2303
|
+
MapKeysPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2287
2304
|
MapKeysPipe.decorators = [
|
|
2288
2305
|
{ type: Pipe, args: [{
|
|
2289
2306
|
name: 'mapKeys'
|
|
@@ -2297,7 +2314,7 @@ class MapValuesPipe {
|
|
|
2297
2314
|
return Object.values(map);
|
|
2298
2315
|
}
|
|
2299
2316
|
}
|
|
2300
|
-
MapValuesPipe.ɵprov =
|
|
2317
|
+
MapValuesPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2301
2318
|
MapValuesPipe.decorators = [
|
|
2302
2319
|
{ type: Pipe, args: [{
|
|
2303
2320
|
name: 'mapValues'
|
|
@@ -2310,7 +2327,7 @@ class IsNotNilOrBlankPipe {
|
|
|
2310
2327
|
return isNotNilOrBlank(value);
|
|
2311
2328
|
}
|
|
2312
2329
|
}
|
|
2313
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
2330
|
+
IsNotNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2314
2331
|
IsNotNilOrBlankPipe.decorators = [
|
|
2315
2332
|
{ type: Pipe, args: [{
|
|
2316
2333
|
name: 'isNotNilOrBlank'
|
|
@@ -2322,7 +2339,7 @@ class IsNilOrBlankPipe {
|
|
|
2322
2339
|
return isNilOrBlank(value);
|
|
2323
2340
|
}
|
|
2324
2341
|
}
|
|
2325
|
-
IsNilOrBlankPipe.ɵprov =
|
|
2342
|
+
IsNilOrBlankPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2326
2343
|
IsNilOrBlankPipe.decorators = [
|
|
2327
2344
|
{ type: Pipe, args: [{
|
|
2328
2345
|
name: 'isNilOrBlank'
|
|
@@ -2334,7 +2351,7 @@ class ToStringPipe {
|
|
|
2334
2351
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
2335
2352
|
}
|
|
2336
2353
|
}
|
|
2337
|
-
ToStringPipe.ɵprov =
|
|
2354
|
+
ToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2338
2355
|
ToStringPipe.decorators = [
|
|
2339
2356
|
{ type: Pipe, args: [{
|
|
2340
2357
|
name: 'toString'
|
|
@@ -2346,7 +2363,7 @@ class StrLengthPipe {
|
|
|
2346
2363
|
return value && value.length || 0;
|
|
2347
2364
|
}
|
|
2348
2365
|
}
|
|
2349
|
-
StrLengthPipe.ɵprov =
|
|
2366
|
+
StrLengthPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2350
2367
|
StrLengthPipe.decorators = [
|
|
2351
2368
|
{ type: Pipe, args: [{
|
|
2352
2369
|
name: 'strLength'
|
|
@@ -2397,7 +2414,7 @@ class TranslateContextService {
|
|
|
2397
2414
|
: parts.slice(0, parts.length - 1).concat(context + parts[parts.length - 1]).join('.');
|
|
2398
2415
|
}
|
|
2399
2416
|
}
|
|
2400
|
-
TranslateContextService.ɵprov =
|
|
2417
|
+
TranslateContextService.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(i0.ɵɵinject(i1$1.TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
2401
2418
|
TranslateContextService.decorators = [
|
|
2402
2419
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2403
2420
|
];
|
|
@@ -2413,7 +2430,7 @@ class TranslateContextPipe {
|
|
|
2413
2430
|
return this.translateContext.instant(key, context);
|
|
2414
2431
|
}
|
|
2415
2432
|
}
|
|
2416
|
-
TranslateContextPipe.ɵprov =
|
|
2433
|
+
TranslateContextPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslateContextPipe_Factory() { return new TranslateContextPipe(i0.ɵɵinject(TranslateContextService)); }, token: TranslateContextPipe, providedIn: "root" });
|
|
2417
2434
|
TranslateContextPipe.decorators = [
|
|
2418
2435
|
{ type: Pipe, args: [{
|
|
2419
2436
|
name: 'translateContext'
|
|
@@ -2430,7 +2447,7 @@ class TranslatablePipe {
|
|
|
2430
2447
|
return (_a = changeCaseToUnderscore(value)) === null || _a === void 0 ? void 0 : _a.toUpperCase();
|
|
2431
2448
|
}
|
|
2432
2449
|
}
|
|
2433
|
-
TranslatablePipe.ɵprov =
|
|
2450
|
+
TranslatablePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function TranslatablePipe_Factory() { return new TranslatablePipe(); }, token: TranslatablePipe, providedIn: "root" });
|
|
2434
2451
|
TranslatablePipe.decorators = [
|
|
2435
2452
|
{ type: Pipe, args: [{
|
|
2436
2453
|
name: 'translatable'
|
|
@@ -2447,7 +2464,7 @@ class PropertyGetPipe {
|
|
|
2447
2464
|
args && args.defaultValue);
|
|
2448
2465
|
}
|
|
2449
2466
|
}
|
|
2450
|
-
PropertyGetPipe.ɵprov =
|
|
2467
|
+
PropertyGetPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
2451
2468
|
PropertyGetPipe.decorators = [
|
|
2452
2469
|
{ type: Pipe, args: [{
|
|
2453
2470
|
name: 'propertyGet'
|
|
@@ -2472,12 +2489,12 @@ NgInitDirective.propDecorators = {
|
|
|
2472
2489
|
ngInit: [{ type: Output }]
|
|
2473
2490
|
};
|
|
2474
2491
|
|
|
2475
|
-
const moment$
|
|
2492
|
+
const moment$4 = momentImported;
|
|
2476
2493
|
// @dynamic
|
|
2477
2494
|
class SharedValidators {
|
|
2478
2495
|
static validDate(control) {
|
|
2479
2496
|
const value = control.value;
|
|
2480
|
-
const date = !value || moment$
|
|
2497
|
+
const date = !value || moment$4.isMoment(value) ? value : moment$4(control.value, DATE_ISO_PATTERN);
|
|
2481
2498
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
2482
2499
|
return { validDate: true };
|
|
2483
2500
|
}
|
|
@@ -3512,7 +3529,7 @@ class FormErrorTranslator {
|
|
|
3512
3529
|
return errorKey;
|
|
3513
3530
|
}
|
|
3514
3531
|
}
|
|
3515
|
-
FormErrorTranslator.ɵprov =
|
|
3532
|
+
FormErrorTranslator.ɵprov = i0.ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
3516
3533
|
FormErrorTranslator.decorators = [
|
|
3517
3534
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
3518
3535
|
];
|
|
@@ -3781,9 +3798,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
|
|
|
3781
3798
|
const hour = parseInt(durationParts[0] || '0');
|
|
3782
3799
|
const minute = parseInt(durationParts[1] || '0');
|
|
3783
3800
|
const value = hour + (minute + 0.5) / 60;
|
|
3784
|
-
return roundFloat
|
|
3801
|
+
return roundFloat(value, maxDecimals);
|
|
3785
3802
|
}
|
|
3786
|
-
function roundFloat
|
|
3803
|
+
function roundFloat(input, maxDecimals) {
|
|
3787
3804
|
if (maxDecimals > 0) {
|
|
3788
3805
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
3789
3806
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -3807,9 +3824,9 @@ const MASKS = {
|
|
|
3807
3824
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
3808
3825
|
}
|
|
3809
3826
|
};
|
|
3810
|
-
const noop$
|
|
3827
|
+
const noop$6 = () => {
|
|
3811
3828
|
};
|
|
3812
|
-
const ɵ0$
|
|
3829
|
+
const ɵ0$9 = noop$6;
|
|
3813
3830
|
class MatLatLongField {
|
|
3814
3831
|
constructor(platform, translate, formBuilder, cd, formGroupDir) {
|
|
3815
3832
|
this.platform = platform;
|
|
@@ -3817,8 +3834,8 @@ class MatLatLongField {
|
|
|
3817
3834
|
this.formBuilder = formBuilder;
|
|
3818
3835
|
this.cd = cd;
|
|
3819
3836
|
this.formGroupDir = formGroupDir;
|
|
3820
|
-
this._onChangeCallback = noop$
|
|
3821
|
-
this._onTouchedCallback = noop$
|
|
3837
|
+
this._onChangeCallback = noop$6;
|
|
3838
|
+
this._onTouchedCallback = noop$6;
|
|
3822
3839
|
this._subscription = new Subscription();
|
|
3823
3840
|
this.disabling = false;
|
|
3824
3841
|
this.writing = false;
|
|
@@ -4154,14 +4171,14 @@ SharedMatLatLongModule.decorators = [
|
|
|
4154
4171
|
},] }
|
|
4155
4172
|
];
|
|
4156
4173
|
|
|
4157
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4174
|
+
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
4158
4175
|
provide: NG_VALUE_ACCESSOR,
|
|
4159
4176
|
useExisting: forwardRef(() => MatDate),
|
|
4160
4177
|
multi: true
|
|
4161
4178
|
};
|
|
4162
|
-
const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4163
|
-
const noop$
|
|
4164
|
-
const ɵ0$
|
|
4179
|
+
const DAY_MASK$2 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4180
|
+
const noop$5 = () => { };
|
|
4181
|
+
const ɵ0$8 = noop$5;
|
|
4165
4182
|
class MatDate {
|
|
4166
4183
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4167
4184
|
this.dateAdapter = dateAdapter;
|
|
@@ -4170,12 +4187,12 @@ class MatDate {
|
|
|
4170
4187
|
this.cd = cd;
|
|
4171
4188
|
this.keyboard = keyboard;
|
|
4172
4189
|
this.formGroupDir = formGroupDir;
|
|
4173
|
-
this._onChangeCallback = noop$
|
|
4174
|
-
this._onTouchedCallback = noop$
|
|
4190
|
+
this._onChangeCallback = noop$5;
|
|
4191
|
+
this._onTouchedCallback = noop$5;
|
|
4175
4192
|
this._subscription = new Subscription();
|
|
4176
4193
|
this.writing = true;
|
|
4177
4194
|
this.disabling = false;
|
|
4178
|
-
this.dayMask = DAY_MASK;
|
|
4195
|
+
this.dayMask = DAY_MASK$2;
|
|
4179
4196
|
this.disabled = false;
|
|
4180
4197
|
this.floatLabel = 'auto';
|
|
4181
4198
|
this.readonly = false;
|
|
@@ -4412,7 +4429,7 @@ MatDate.decorators = [
|
|
|
4412
4429
|
selector: 'mat-date-field',
|
|
4413
4430
|
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",
|
|
4414
4431
|
providers: [
|
|
4415
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4432
|
+
DEFAULT_VALUE_ACCESSOR$5,
|
|
4416
4433
|
],
|
|
4417
4434
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4418
4435
|
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%}"]
|
|
@@ -4445,17 +4462,17 @@ MatDate.propDecorators = {
|
|
|
4445
4462
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
4446
4463
|
};
|
|
4447
4464
|
|
|
4448
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4465
|
+
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
4449
4466
|
provide: NG_VALUE_ACCESSOR,
|
|
4450
4467
|
useExisting: forwardRef(() => MatDateTime),
|
|
4451
4468
|
multi: true
|
|
4452
4469
|
};
|
|
4453
4470
|
const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4454
4471
|
const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
4455
|
-
const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4456
|
-
const noop$
|
|
4472
|
+
const HOUR_MASK$1 = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4473
|
+
const noop$4 = () => {
|
|
4457
4474
|
};
|
|
4458
|
-
const ɵ0$
|
|
4475
|
+
const ɵ0$7 = noop$4;
|
|
4459
4476
|
class MatDateTime {
|
|
4460
4477
|
constructor(platform, dateAdapter, translate, formBuilder, keyboard, cd, formGroupDir) {
|
|
4461
4478
|
this.platform = platform;
|
|
@@ -4465,14 +4482,14 @@ class MatDateTime {
|
|
|
4465
4482
|
this.keyboard = keyboard;
|
|
4466
4483
|
this.cd = cd;
|
|
4467
4484
|
this.formGroupDir = formGroupDir;
|
|
4468
|
-
this._onChangeCallback = noop$
|
|
4469
|
-
this._onTouchedCallback = noop$
|
|
4485
|
+
this._onChangeCallback = noop$4;
|
|
4486
|
+
this._onTouchedCallback = noop$4;
|
|
4470
4487
|
this._subscription = new Subscription();
|
|
4471
4488
|
this.writing = true;
|
|
4472
4489
|
this.disabling = false;
|
|
4473
4490
|
this._readonly = false;
|
|
4474
4491
|
this.dayMask = DAY_MASK$1;
|
|
4475
|
-
this.hourMask = HOUR_MASK;
|
|
4492
|
+
this.hourMask = HOUR_MASK$1;
|
|
4476
4493
|
this.floatLabel = 'auto';
|
|
4477
4494
|
this.compact = false;
|
|
4478
4495
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -4783,7 +4800,7 @@ MatDateTime.decorators = [
|
|
|
4783
4800
|
selector: 'mat-date-time-field',
|
|
4784
4801
|
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",
|
|
4785
4802
|
providers: [
|
|
4786
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
4803
|
+
DEFAULT_VALUE_ACCESSOR$4,
|
|
4787
4804
|
],
|
|
4788
4805
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4789
4806
|
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%}"]
|
|
@@ -4822,10 +4839,10 @@ const DEFAULT_VALUE_ACCESSOR$3 = {
|
|
|
4822
4839
|
useExisting: forwardRef(() => MatDateShort),
|
|
4823
4840
|
multi: true
|
|
4824
4841
|
};
|
|
4825
|
-
const DAY_MASK
|
|
4826
|
-
const noop$
|
|
4842
|
+
const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
4843
|
+
const noop$3 = () => {
|
|
4827
4844
|
};
|
|
4828
|
-
const ɵ0$
|
|
4845
|
+
const ɵ0$6 = noop$3;
|
|
4829
4846
|
class MatDateShort {
|
|
4830
4847
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4831
4848
|
this.dateAdapter = dateAdapter;
|
|
@@ -4834,11 +4851,11 @@ class MatDateShort {
|
|
|
4834
4851
|
this.cd = cd;
|
|
4835
4852
|
this.keyboard = keyboard;
|
|
4836
4853
|
this.formGroupDir = formGroupDir;
|
|
4837
|
-
this._onChangeCallback = noop$
|
|
4838
|
-
this._onTouchedCallback = noop$
|
|
4854
|
+
this._onChangeCallback = noop$3;
|
|
4855
|
+
this._onTouchedCallback = noop$3;
|
|
4839
4856
|
this.writing = true;
|
|
4840
4857
|
this.disabling = false;
|
|
4841
|
-
this.dayMask = DAY_MASK
|
|
4858
|
+
this.dayMask = DAY_MASK;
|
|
4842
4859
|
this.disabled = false;
|
|
4843
4860
|
this.floatLabel = 'auto';
|
|
4844
4861
|
this.readonly = false;
|
|
@@ -5151,16 +5168,16 @@ SharedMatDateTimeModule.decorators = [
|
|
|
5151
5168
|
},] }
|
|
5152
5169
|
];
|
|
5153
5170
|
|
|
5154
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5171
|
+
const DEFAULT_VALUE_ACCESSOR$2 = {
|
|
5155
5172
|
provide: NG_VALUE_ACCESSOR,
|
|
5156
5173
|
useExisting: forwardRef(() => MatDuration),
|
|
5157
5174
|
multi: true
|
|
5158
5175
|
};
|
|
5159
5176
|
const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
5160
|
-
const HOUR_MASK
|
|
5161
|
-
const noop$
|
|
5177
|
+
const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5178
|
+
const noop$2 = () => {
|
|
5162
5179
|
};
|
|
5163
|
-
const ɵ0$5 = noop$
|
|
5180
|
+
const ɵ0$5 = noop$2;
|
|
5164
5181
|
class MatDuration {
|
|
5165
5182
|
constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
5166
5183
|
this.dateAdapter = dateAdapter;
|
|
@@ -5169,11 +5186,11 @@ class MatDuration {
|
|
|
5169
5186
|
this.cd = cd;
|
|
5170
5187
|
this.formGroupDir = formGroupDir;
|
|
5171
5188
|
this._subscription = new Subscription();
|
|
5172
|
-
this._onChangeCallback = noop$
|
|
5173
|
-
this._onTouchedCallback = noop$
|
|
5189
|
+
this._onChangeCallback = noop$2;
|
|
5190
|
+
this._onTouchedCallback = noop$2;
|
|
5174
5191
|
this.writing = true;
|
|
5175
5192
|
this.disabling = false;
|
|
5176
|
-
this.hourMask = HOUR_MASK
|
|
5193
|
+
this.hourMask = HOUR_MASK;
|
|
5177
5194
|
this.disabled = false;
|
|
5178
5195
|
this.floatLabel = 'auto';
|
|
5179
5196
|
this.readonly = false;
|
|
@@ -5353,7 +5370,7 @@ MatDuration.decorators = [
|
|
|
5353
5370
|
selector: 'mat-duration-field',
|
|
5354
5371
|
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",
|
|
5355
5372
|
providers: [
|
|
5356
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5373
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
5357
5374
|
],
|
|
5358
5375
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5359
5376
|
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%}"]
|
|
@@ -5410,22 +5427,22 @@ SharedMatDurationModule.decorators = [
|
|
|
5410
5427
|
},] }
|
|
5411
5428
|
];
|
|
5412
5429
|
|
|
5413
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5430
|
+
const DEFAULT_VALUE_ACCESSOR$1 = {
|
|
5414
5431
|
provide: NG_VALUE_ACCESSOR,
|
|
5415
5432
|
useExisting: forwardRef(() => MatBooleanField),
|
|
5416
5433
|
multi: true
|
|
5417
5434
|
};
|
|
5418
|
-
const noop$
|
|
5435
|
+
const noop$1 = () => {
|
|
5419
5436
|
};
|
|
5420
|
-
const ɵ0$
|
|
5437
|
+
const ɵ0$4 = noop$1;
|
|
5421
5438
|
class MatBooleanField {
|
|
5422
5439
|
constructor(translate, formBuilder, cd, formGroupDir) {
|
|
5423
5440
|
this.translate = translate;
|
|
5424
5441
|
this.formBuilder = formBuilder;
|
|
5425
5442
|
this.cd = cd;
|
|
5426
5443
|
this.formGroupDir = formGroupDir;
|
|
5427
|
-
this._onChangeCallback = noop$
|
|
5428
|
-
this._onTouchedCallback = noop$
|
|
5444
|
+
this._onChangeCallback = noop$1;
|
|
5445
|
+
this._onTouchedCallback = noop$1;
|
|
5429
5446
|
this._writing = false;
|
|
5430
5447
|
this.showRadio = false;
|
|
5431
5448
|
this.disabled = false;
|
|
@@ -5598,7 +5615,7 @@ MatBooleanField.decorators = [
|
|
|
5598
5615
|
selector: 'mat-boolean-field',
|
|
5599
5616
|
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",
|
|
5600
5617
|
providers: [
|
|
5601
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5618
|
+
DEFAULT_VALUE_ACCESSOR$1
|
|
5602
5619
|
],
|
|
5603
5620
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5604
5621
|
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}"]
|
|
@@ -5846,7 +5863,7 @@ class MatNumpadDomService {
|
|
|
5846
5863
|
this.appRef.detachView(this.componentRef.hostView);
|
|
5847
5864
|
}
|
|
5848
5865
|
}
|
|
5849
|
-
MatNumpadDomService.ɵprov =
|
|
5866
|
+
MatNumpadDomService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(i0.ɵɵinject(i0.ComponentFactoryResolver), i0.ɵɵinject(i0.ApplicationRef), i0.ɵɵinject(i0.INJECTOR), i0.ɵɵinject(i1$3.DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
5850
5867
|
MatNumpadDomService.decorators = [
|
|
5851
5868
|
{ type: Injectable, args: [{
|
|
5852
5869
|
providedIn: 'root'
|
|
@@ -6210,7 +6227,7 @@ SharedMatNumpadModule.decorators = [
|
|
|
6210
6227
|
},] }
|
|
6211
6228
|
];
|
|
6212
6229
|
|
|
6213
|
-
const DEFAULT_VALUE_ACCESSOR
|
|
6230
|
+
const DEFAULT_VALUE_ACCESSOR = {
|
|
6214
6231
|
provide: NG_VALUE_ACCESSOR,
|
|
6215
6232
|
useExisting: forwardRef(() => MatSwipeField),
|
|
6216
6233
|
multi: true
|
|
@@ -6473,7 +6490,7 @@ MatSwipeField.decorators = [
|
|
|
6473
6490
|
{ type: Component, args: [{
|
|
6474
6491
|
selector: 'mat-swipe-field',
|
|
6475
6492
|
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",
|
|
6476
|
-
providers: [DEFAULT_VALUE_ACCESSOR
|
|
6493
|
+
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
6477
6494
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6478
6495
|
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}"]
|
|
6479
6496
|
},] }
|
|
@@ -6932,7 +6949,7 @@ class MatBadgeIconDirective {
|
|
|
6932
6949
|
badge.innerHTML = `<i class="material-icons" style="font-size: ${fontSize};">${this.matIcon}</i>`;
|
|
6933
6950
|
}
|
|
6934
6951
|
else if (this.ionIcon) {
|
|
6935
|
-
badge.innerHTML = `<ion-icon style="font-size: ${fontSize};" name="${this.ionIcon}"></ion-icon>`;
|
|
6952
|
+
badge.innerHTML = `<ion-icon style="font-size: ${fontSize}; pointer-events: none;" name="${this.ionIcon}"></ion-icon>`;
|
|
6936
6953
|
}
|
|
6937
6954
|
}
|
|
6938
6955
|
}
|
|
@@ -7048,7 +7065,7 @@ class ProgressBarService {
|
|
|
7048
7065
|
}
|
|
7049
7066
|
}
|
|
7050
7067
|
}
|
|
7051
|
-
ProgressBarService.ɵprov =
|
|
7068
|
+
ProgressBarService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
7052
7069
|
ProgressBarService.decorators = [
|
|
7053
7070
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7054
7071
|
];
|
|
@@ -7092,7 +7109,7 @@ class AppGestureConfig extends HammerGestureConfig {
|
|
|
7092
7109
|
return mc;
|
|
7093
7110
|
}
|
|
7094
7111
|
}
|
|
7095
|
-
AppGestureConfig.ɵprov =
|
|
7112
|
+
AppGestureConfig.ɵprov = i0.ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
7096
7113
|
AppGestureConfig.decorators = [
|
|
7097
7114
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7098
7115
|
];
|
|
@@ -7315,7 +7332,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
|
|
|
7315
7332
|
this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
|
|
7316
7333
|
}
|
|
7317
7334
|
}
|
|
7318
|
-
MatPaginatorI18n.ɵprov =
|
|
7335
|
+
MatPaginatorI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
7319
7336
|
MatPaginatorI18n.decorators = [
|
|
7320
7337
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7321
7338
|
];
|
|
@@ -7405,17 +7422,17 @@ function getColorContrast(color, bw) {
|
|
|
7405
7422
|
return rgbArrayToHex(rgb.map(v => 255 - v));
|
|
7406
7423
|
}
|
|
7407
7424
|
|
|
7408
|
-
const noop
|
|
7425
|
+
const noop = () => {
|
|
7409
7426
|
};
|
|
7410
|
-
const ɵ0$
|
|
7427
|
+
const ɵ0$3 = noop;
|
|
7411
7428
|
class AppFormField {
|
|
7412
7429
|
constructor(translate, cd, injector, formGroupDir) {
|
|
7413
7430
|
this.translate = translate;
|
|
7414
7431
|
this.cd = cd;
|
|
7415
7432
|
this.injector = injector;
|
|
7416
7433
|
this.formGroupDir = formGroupDir;
|
|
7417
|
-
this._onChangeCallback = noop
|
|
7418
|
-
this._onTouchedCallback = noop
|
|
7434
|
+
this._onChangeCallback = noop;
|
|
7435
|
+
this._onTouchedCallback = noop;
|
|
7419
7436
|
this.readonly = false;
|
|
7420
7437
|
this.compact = false;
|
|
7421
7438
|
this.floatLabel = 'auto';
|
|
@@ -7831,14 +7848,14 @@ class AudioProvider extends StartableService {
|
|
|
7831
7848
|
});
|
|
7832
7849
|
}
|
|
7833
7850
|
}
|
|
7834
|
-
AudioProvider.ɵprov =
|
|
7851
|
+
AudioProvider.ɵprov = i0.ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2.NativeAudio, 8), i0.ɵɵinject(i3.Vibration, 8), i0.ɵɵinject(i4.AudioManagement, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
7835
7852
|
AudioProvider.decorators = [
|
|
7836
7853
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7837
7854
|
];
|
|
7838
7855
|
AudioProvider.ctorParameters = () => [
|
|
7839
7856
|
{ type: Platform },
|
|
7840
|
-
{ type: NativeAudio
|
|
7841
|
-
{ type: Vibration
|
|
7857
|
+
{ type: NativeAudio, decorators: [{ type: Optional }] },
|
|
7858
|
+
{ type: Vibration, decorators: [{ type: Optional }] },
|
|
7842
7859
|
{ type: AudioManagement, decorators: [{ type: Optional }] }
|
|
7843
7860
|
];
|
|
7844
7861
|
|
|
@@ -7920,7 +7937,7 @@ class Hotkeys {
|
|
|
7920
7937
|
});
|
|
7921
7938
|
}
|
|
7922
7939
|
}
|
|
7923
|
-
Hotkeys.ɵprov =
|
|
7940
|
+
Hotkeys.ɵprov = i0.ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(i0.ɵɵinject(i1$5.EventManager), i0.ɵɵinject(i2$1.MatDialog), i0.ɵɵinject(i1$3.DOCUMENT), i0.ɵɵinject(i1$4.ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
7924
7941
|
Hotkeys.decorators = [
|
|
7925
7942
|
{ type: Injectable, args: [{
|
|
7926
7943
|
providedIn: 'root'
|
|
@@ -8094,7 +8111,7 @@ class Base64ImageReader {
|
|
|
8094
8111
|
}
|
|
8095
8112
|
}
|
|
8096
8113
|
|
|
8097
|
-
const uuidv4 = uuidv4Imported;
|
|
8114
|
+
const uuidv4$1 = uuidv4Imported;
|
|
8098
8115
|
class FileService {
|
|
8099
8116
|
constructor(platform,
|
|
8100
8117
|
//private transfer: FileTransfer,
|
|
@@ -8131,7 +8148,7 @@ class FileService {
|
|
|
8131
8148
|
const lastSlashIndex = source.lastIndexOf('/');
|
|
8132
8149
|
if (lastSlashIndex === -1)
|
|
8133
8150
|
throw new Error('Invalid URL: ' + source);
|
|
8134
|
-
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
8151
|
+
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4$1();
|
|
8135
8152
|
// Download into the file system
|
|
8136
8153
|
if (responseType === 'file' && this.canUseFileSystem) {
|
|
8137
8154
|
console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
|
|
@@ -8187,7 +8204,7 @@ class FileService {
|
|
|
8187
8204
|
this._started = true;
|
|
8188
8205
|
}
|
|
8189
8206
|
}
|
|
8190
|
-
FileService.ɵprov =
|
|
8207
|
+
FileService.ɵprov = i0.ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$2.HttpClient), i0.ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
8191
8208
|
FileService.decorators = [
|
|
8192
8209
|
{ type: Injectable, args: [{
|
|
8193
8210
|
providedIn: 'root',
|
|
@@ -8217,6 +8234,10 @@ class ModalToolbarComponent {
|
|
|
8217
8234
|
}
|
|
8218
8235
|
ngOnInit() {
|
|
8219
8236
|
this.canValidate = toBoolean(this.canValidate, this.validate.observers.length > 0);
|
|
8237
|
+
// Ctrl+S
|
|
8238
|
+
this._subscription.add(this.hotkeys.addShortcut({ keys: 'control.s', description: 'COMMON.BTN_VALIDATE', elementName: this.modalName })
|
|
8239
|
+
.pipe(filter(() => this.canValidate))
|
|
8240
|
+
.subscribe((event) => this.validate.emit(event)));
|
|
8220
8241
|
// Escape
|
|
8221
8242
|
this._subscription.add(this.hotkeys.addShortcut({ keys: 'escape', description: 'COMMON.BTN_CLOSE', elementName: this.modalName })
|
|
8222
8243
|
.subscribe((event) => this.cancel.emit(event)));
|
|
@@ -8349,7 +8370,7 @@ class Base58 {
|
|
|
8349
8370
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
8350
8371
|
|
|
8351
8372
|
const scrypt = require('scrypt-async');
|
|
8352
|
-
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
8373
|
+
const sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
8353
8374
|
const sha512 = require('hash.js/lib/hash/sha/512');
|
|
8354
8375
|
const nacl = {
|
|
8355
8376
|
sign,
|
|
@@ -8453,7 +8474,7 @@ class CryptoService {
|
|
|
8453
8474
|
* Hash (using SHA256) a message
|
|
8454
8475
|
*/
|
|
8455
8476
|
sha256(message) {
|
|
8456
|
-
return sha256().update(message).digest('hex');
|
|
8477
|
+
return sha256$1().update(message).digest('hex');
|
|
8457
8478
|
}
|
|
8458
8479
|
/**
|
|
8459
8480
|
* Hash (using SHA512) a message
|
|
@@ -8466,7 +8487,7 @@ class CryptoService {
|
|
|
8466
8487
|
return nacl.util.encodeBase64(m);
|
|
8467
8488
|
}
|
|
8468
8489
|
}
|
|
8469
|
-
CryptoService.ɵprov =
|
|
8490
|
+
CryptoService.ɵprov = i0.ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
8470
8491
|
CryptoService.decorators = [
|
|
8471
8492
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8472
8493
|
];
|
|
@@ -9687,7 +9708,7 @@ class LocalSettingsService extends StartableService {
|
|
|
9687
9708
|
return page;
|
|
9688
9709
|
}
|
|
9689
9710
|
}
|
|
9690
|
-
LocalSettingsService.ɵprov =
|
|
9711
|
+
LocalSettingsService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_SETTINGS, 8), i0.ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
9691
9712
|
LocalSettingsService.decorators = [
|
|
9692
9713
|
{ type: Injectable, args: [{
|
|
9693
9714
|
providedIn: 'root',
|
|
@@ -10347,7 +10368,7 @@ class NetworkService extends StartableService {
|
|
|
10347
10368
|
});
|
|
10348
10369
|
}
|
|
10349
10370
|
}
|
|
10350
|
-
NetworkService.ɵprov =
|
|
10371
|
+
NetworkService.ɵprov = i0.ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(i0.ɵɵinject(i1$3.DOCUMENT), i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i1$4.ModalController), i0.ɵɵinject(CryptoService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i2$2.HttpClient), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i9.Network, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i1$1.TranslateService, 8), i0.ɵɵinject(i1$4.ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
10351
10372
|
NetworkService.decorators = [
|
|
10352
10373
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
10353
10374
|
];
|
|
@@ -10358,16 +10379,16 @@ NetworkService.ctorParameters = () => [
|
|
|
10358
10379
|
{ type: CryptoService },
|
|
10359
10380
|
{ type: Storage },
|
|
10360
10381
|
{ type: LocalSettingsService },
|
|
10361
|
-
{ type: CacheService
|
|
10382
|
+
{ type: CacheService },
|
|
10362
10383
|
{ type: HttpClient },
|
|
10363
10384
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
10364
|
-
{ type: Network
|
|
10365
|
-
{ type: SplashScreen
|
|
10385
|
+
{ type: Network, decorators: [{ type: Optional }] },
|
|
10386
|
+
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
10366
10387
|
{ type: TranslateService, decorators: [{ type: Optional }] },
|
|
10367
10388
|
{ type: ToastController, decorators: [{ type: Optional }] }
|
|
10368
10389
|
];
|
|
10369
10390
|
|
|
10370
|
-
const ErrorCodes = {
|
|
10391
|
+
const ErrorCodes$2 = {
|
|
10371
10392
|
UNKNOWN_ERROR: 0,
|
|
10372
10393
|
LOAD_ACCOUNT_ERROR: 1,
|
|
10373
10394
|
BAD_PASSWORD: 2,
|
|
@@ -10714,7 +10735,7 @@ class EntityStore {
|
|
|
10714
10735
|
}
|
|
10715
10736
|
catch (err) {
|
|
10716
10737
|
console.error(err);
|
|
10717
|
-
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
10738
|
+
throw { code: ErrorCodes$2.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
10718
10739
|
}
|
|
10719
10740
|
}
|
|
10720
10741
|
// Emit update event
|
|
@@ -11285,7 +11306,7 @@ class EntitiesStorage extends StartableService {
|
|
|
11285
11306
|
}
|
|
11286
11307
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
11287
11308
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
11288
|
-
EntitiesStorage.ɵprov =
|
|
11309
|
+
EntitiesStorage.ɵprov = i0.ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(ProgressBarService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
11289
11310
|
EntitiesStorage.decorators = [
|
|
11290
11311
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
11291
11312
|
];
|
|
@@ -11385,10 +11406,10 @@ function referentialToString(obj, properties) {
|
|
|
11385
11406
|
function referentialsToString(values, properties, separator) {
|
|
11386
11407
|
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
11387
11408
|
}
|
|
11388
|
-
const ɵ0$
|
|
11409
|
+
const ɵ0$2 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
11389
11410
|
const StatusList = Object.freeze([
|
|
11390
11411
|
{
|
|
11391
|
-
id: ɵ0$
|
|
11412
|
+
id: ɵ0$2,
|
|
11392
11413
|
icon: 'checkmark',
|
|
11393
11414
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
11394
11415
|
},
|
|
@@ -11663,7 +11684,7 @@ function accountToString(data) {
|
|
|
11663
11684
|
(data.lastName || '')) || '';
|
|
11664
11685
|
}
|
|
11665
11686
|
|
|
11666
|
-
const uuidv4
|
|
11687
|
+
const uuidv4 = uuidv4Imported;
|
|
11667
11688
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
11668
11689
|
const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
11669
11690
|
/**
|
|
@@ -11707,7 +11728,7 @@ function createTrackerLink(opts) {
|
|
|
11707
11728
|
// Skip if not tracked
|
|
11708
11729
|
if (!context || !context.tracked)
|
|
11709
11730
|
return forward(operation);
|
|
11710
|
-
const id = context.serializationKey || uuidv4
|
|
11731
|
+
const id = context.serializationKey || uuidv4();
|
|
11711
11732
|
console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
|
|
11712
11733
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
11713
11734
|
const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -12376,7 +12397,7 @@ class GraphqlService extends StartableService {
|
|
|
12376
12397
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
12377
12398
|
|| this.toAppError(err.networkError)
|
|
12378
12399
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
12379
|
-
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
12400
|
+
|| this.createAppErrorByCode(ErrorCodes$2.UNKNOWN_NETWORK_ERROR)))
|
|
12380
12401
|
// If graphQL: try to convert the first error found
|
|
12381
12402
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
12382
12403
|
|| this.toAppError(err)
|
|
@@ -12384,7 +12405,7 @@ class GraphqlService extends StartableService {
|
|
|
12384
12405
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
12385
12406
|
|| err;
|
|
12386
12407
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
12387
|
-
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
12408
|
+
if (error && error.code === ErrorCodes$2.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
12388
12409
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
12389
12410
|
this.onNetworkError.next(error);
|
|
12390
12411
|
}
|
|
@@ -12420,7 +12441,7 @@ class GraphqlService extends StartableService {
|
|
|
12420
12441
|
return 'ERROR.UNAUTHORIZED';
|
|
12421
12442
|
case ServerErrorCodes.FORBIDDEN:
|
|
12422
12443
|
return 'ERROR.FORBIDDEN';
|
|
12423
|
-
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
12444
|
+
case ErrorCodes$2.UNKNOWN_NETWORK_ERROR:
|
|
12424
12445
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
12425
12446
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
12426
12447
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -12448,7 +12469,7 @@ class GraphqlService extends StartableService {
|
|
|
12448
12469
|
return undefined;
|
|
12449
12470
|
}
|
|
12450
12471
|
}
|
|
12451
|
-
GraphqlService.ɵprov =
|
|
12472
|
+
GraphqlService.ɵprov = i0.ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$3.Apollo), i0.ɵɵinject(i3$2.HttpLink), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(CryptoService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
12452
12473
|
GraphqlService.decorators = [
|
|
12453
12474
|
{ type: Injectable, args: [{
|
|
12454
12475
|
providedIn: 'root'
|
|
@@ -12465,7 +12486,7 @@ GraphqlService.ctorParameters = () => [
|
|
|
12465
12486
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
12466
12487
|
];
|
|
12467
12488
|
|
|
12468
|
-
const sha256
|
|
12489
|
+
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
12469
12490
|
class BaseGraphqlServiceOptions {
|
|
12470
12491
|
}
|
|
12471
12492
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
@@ -12615,8 +12636,8 @@ class BaseGraphqlService {
|
|
|
12615
12636
|
}
|
|
12616
12637
|
/* -- protected methods -- */
|
|
12617
12638
|
computeMutableWatchQueryId(opts) {
|
|
12618
|
-
const queryName = opts.queryName || sha256
|
|
12619
|
-
const variablesKey = opts.variables && sha256
|
|
12639
|
+
const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
12640
|
+
const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
12620
12641
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
12621
12642
|
}
|
|
12622
12643
|
findMutableWatchQueries(opts) {
|
|
@@ -12679,7 +12700,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
|
|
|
12679
12700
|
/* ------------------------------------
|
|
12680
12701
|
* GraphQL queries
|
|
12681
12702
|
* ------------------------------------*/
|
|
12682
|
-
const Fragments = {
|
|
12703
|
+
const Fragments$1 = {
|
|
12683
12704
|
account: gql `
|
|
12684
12705
|
fragment AccountFragment on AccountVO {
|
|
12685
12706
|
id
|
|
@@ -12712,13 +12733,13 @@ const Fragments = {
|
|
|
12712
12733
|
`
|
|
12713
12734
|
};
|
|
12714
12735
|
// Load account query
|
|
12715
|
-
const LoadQuery = gql `
|
|
12736
|
+
const LoadQuery$1 = gql `
|
|
12716
12737
|
query Account {
|
|
12717
12738
|
data: account {
|
|
12718
12739
|
...AccountFragment
|
|
12719
12740
|
}
|
|
12720
12741
|
}
|
|
12721
|
-
${Fragments.account}
|
|
12742
|
+
${Fragments$1.account}
|
|
12722
12743
|
`;
|
|
12723
12744
|
// Check email query
|
|
12724
12745
|
const IsEmailExistsQuery = gql `
|
|
@@ -12727,13 +12748,13 @@ const IsEmailExistsQuery = gql `
|
|
|
12727
12748
|
}
|
|
12728
12749
|
`;
|
|
12729
12750
|
// Save (create or update) account mutation
|
|
12730
|
-
const SaveMutation = gql `
|
|
12751
|
+
const SaveMutation$1 = gql `
|
|
12731
12752
|
mutation SaveAccount($data:AccountVOInput){
|
|
12732
12753
|
data: saveAccount(account: $data){
|
|
12733
12754
|
...AccountFragment
|
|
12734
12755
|
}
|
|
12735
12756
|
}
|
|
12736
|
-
${Fragments.account}
|
|
12757
|
+
${Fragments$1.account}
|
|
12737
12758
|
`;
|
|
12738
12759
|
// Create account mutation
|
|
12739
12760
|
const CreateMutation = gql `
|
|
@@ -12742,7 +12763,7 @@ const CreateMutation = gql `
|
|
|
12742
12763
|
...AccountFragment
|
|
12743
12764
|
}
|
|
12744
12765
|
}
|
|
12745
|
-
${Fragments.account}
|
|
12766
|
+
${Fragments$1.account}
|
|
12746
12767
|
`;
|
|
12747
12768
|
// Sent confirmation email
|
|
12748
12769
|
const SendConfirmEmailMutation = gql `
|
|
@@ -13080,7 +13101,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13080
13101
|
catch (error) {
|
|
13081
13102
|
console.error(error);
|
|
13082
13103
|
this.resetData();
|
|
13083
|
-
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
13104
|
+
throw { code: ErrorCodes$2.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
13084
13105
|
}
|
|
13085
13106
|
// Store pubkey+keypair
|
|
13086
13107
|
this._data.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -13114,7 +13135,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13114
13135
|
}
|
|
13115
13136
|
catch (err) {
|
|
13116
13137
|
// If account not found, check if email is valid
|
|
13117
|
-
if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
|
|
13138
|
+
if (err && +(err.code) === ErrorCodes$2.LOAD_ACCOUNT_ERROR) {
|
|
13118
13139
|
// Check email exists
|
|
13119
13140
|
if (data.username.indexOf('@') !== -1) {
|
|
13120
13141
|
let isEmailExists;
|
|
@@ -13126,11 +13147,11 @@ class AccountService extends BaseGraphqlService {
|
|
|
13126
13147
|
}
|
|
13127
13148
|
// Email not exists (no account)
|
|
13128
13149
|
if (!isEmailExists) {
|
|
13129
|
-
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
13150
|
+
throw { code: ErrorCodes$2.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
13130
13151
|
}
|
|
13131
13152
|
}
|
|
13132
13153
|
// Email exists, so error = 'bad password'
|
|
13133
|
-
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
13154
|
+
throw { code: ErrorCodes$2.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
13134
13155
|
}
|
|
13135
13156
|
throw err; // resend the first error
|
|
13136
13157
|
}
|
|
@@ -13255,8 +13276,8 @@ class AccountService extends BaseGraphqlService {
|
|
|
13255
13276
|
// Load remotely
|
|
13256
13277
|
else {
|
|
13257
13278
|
const { data } = yield this.graphql.query({
|
|
13258
|
-
query: LoadQuery,
|
|
13259
|
-
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
13279
|
+
query: LoadQuery$1,
|
|
13280
|
+
error: { code: ErrorCodes$2.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
13260
13281
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
13261
13282
|
});
|
|
13262
13283
|
json = data;
|
|
@@ -13283,7 +13304,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13283
13304
|
return __awaiter(this, void 0, void 0, function* () {
|
|
13284
13305
|
const isEmailExists = yield this.isEmailExists(email);
|
|
13285
13306
|
if (isEmailExists) {
|
|
13286
|
-
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
13307
|
+
throw { code: ErrorCodes$2.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
13287
13308
|
}
|
|
13288
13309
|
});
|
|
13289
13310
|
}
|
|
@@ -13319,7 +13340,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13319
13340
|
locale
|
|
13320
13341
|
},
|
|
13321
13342
|
error: {
|
|
13322
|
-
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
13343
|
+
code: ErrorCodes$2.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
13323
13344
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
13324
13345
|
}
|
|
13325
13346
|
});
|
|
@@ -13335,7 +13356,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13335
13356
|
code
|
|
13336
13357
|
},
|
|
13337
13358
|
error: {
|
|
13338
|
-
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
13359
|
+
code: ErrorCodes$2.CONFIRM_EMAIL_FAILED,
|
|
13339
13360
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
13340
13361
|
}
|
|
13341
13362
|
});
|
|
@@ -13353,7 +13374,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13353
13374
|
interval: 10
|
|
13354
13375
|
},
|
|
13355
13376
|
error: {
|
|
13356
|
-
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
13377
|
+
code: ErrorCodes$2.SUBSCRIBE_ACCOUNT_ERROR,
|
|
13357
13378
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
|
|
13358
13379
|
}
|
|
13359
13380
|
}).subscribe({
|
|
@@ -13462,7 +13483,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13462
13483
|
throw error;
|
|
13463
13484
|
console.error(error);
|
|
13464
13485
|
throw {
|
|
13465
|
-
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
13486
|
+
code: ErrorCodes$2.LOAD_ACCOUNT_ERROR,
|
|
13466
13487
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
13467
13488
|
};
|
|
13468
13489
|
}
|
|
@@ -13607,7 +13628,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13607
13628
|
if (!isNew) {
|
|
13608
13629
|
const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
|
|
13609
13630
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
13610
|
-
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
13631
|
+
throw { code: ErrorCodes$2.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
13611
13632
|
}
|
|
13612
13633
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
13613
13634
|
}
|
|
@@ -13616,10 +13637,10 @@ class AccountService extends BaseGraphqlService {
|
|
|
13616
13637
|
delete json.profiles;
|
|
13617
13638
|
// Execute mutation
|
|
13618
13639
|
const { data } = yield this.graphql.mutate({
|
|
13619
|
-
mutation: isNew ? CreateMutation : SaveMutation,
|
|
13640
|
+
mutation: isNew ? CreateMutation : SaveMutation$1,
|
|
13620
13641
|
variables: { data: json },
|
|
13621
13642
|
error: {
|
|
13622
|
-
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
13643
|
+
code: ErrorCodes$2.SAVE_ACCOUNT_ERROR,
|
|
13623
13644
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
13624
13645
|
}
|
|
13625
13646
|
});
|
|
@@ -13639,7 +13660,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13639
13660
|
if (counter > 4) {
|
|
13640
13661
|
if (this._debug)
|
|
13641
13662
|
console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
|
|
13642
|
-
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
13663
|
+
throw { code: ErrorCodes$2.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
13643
13664
|
}
|
|
13644
13665
|
// Check if valid
|
|
13645
13666
|
if (token) {
|
|
@@ -13649,7 +13670,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13649
13670
|
token
|
|
13650
13671
|
},
|
|
13651
13672
|
error: {
|
|
13652
|
-
code: ErrorCodes.UNAUTHORIZED,
|
|
13673
|
+
code: ErrorCodes$2.UNAUTHORIZED,
|
|
13653
13674
|
message: 'ERROR.UNAUTHORIZED'
|
|
13654
13675
|
},
|
|
13655
13676
|
fetchPolicy: 'no-cache'
|
|
@@ -13665,7 +13686,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13665
13686
|
}
|
|
13666
13687
|
// Generate a new token
|
|
13667
13688
|
const challengeError = {
|
|
13668
|
-
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
13689
|
+
code: ErrorCodes$2.AUTH_CHALLENGE_ERROR,
|
|
13669
13690
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
13670
13691
|
};
|
|
13671
13692
|
const data = yield this.graphql.query({
|
|
@@ -13699,7 +13720,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13699
13720
|
target.settings.updateDate = source.settings && source.settings.updateDate || target.settings.updateDate;
|
|
13700
13721
|
}
|
|
13701
13722
|
}
|
|
13702
|
-
AccountService.ɵprov =
|
|
13723
|
+
AccountService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(i0.ɵɵinject(CryptoService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(FileService), i0.ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
13703
13724
|
AccountService.decorators = [
|
|
13704
13725
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
13705
13726
|
];
|
|
@@ -13959,7 +13980,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
|
|
|
13959
13980
|
/* ------------------------------------
|
|
13960
13981
|
* GraphQL queries
|
|
13961
13982
|
* ------------------------------------*/
|
|
13962
|
-
const Fragments
|
|
13983
|
+
const Fragments = {
|
|
13963
13984
|
config: gql `
|
|
13964
13985
|
fragment ConfigFragment on ConfigurationVO {
|
|
13965
13986
|
id
|
|
@@ -13986,22 +14007,22 @@ const Fragments$1 = {
|
|
|
13986
14007
|
}
|
|
13987
14008
|
`
|
|
13988
14009
|
};
|
|
13989
|
-
const LoadQuery
|
|
14010
|
+
const LoadQuery = gql `
|
|
13990
14011
|
query Configuration{
|
|
13991
14012
|
data: configuration{
|
|
13992
14013
|
...ConfigFragment
|
|
13993
14014
|
}
|
|
13994
14015
|
}
|
|
13995
|
-
${Fragments
|
|
14016
|
+
${Fragments.config}
|
|
13996
14017
|
`;
|
|
13997
14018
|
// Save (create or update) account mutation
|
|
13998
|
-
const SaveMutation
|
|
14019
|
+
const SaveMutation = gql `
|
|
13999
14020
|
mutation SaveConfiguration($data: ConfigurationVOInput){
|
|
14000
14021
|
data: saveConfiguration(config: $data){
|
|
14001
14022
|
...ConfigFragment
|
|
14002
14023
|
}
|
|
14003
14024
|
}
|
|
14004
|
-
${Fragments
|
|
14025
|
+
${Fragments.config}
|
|
14005
14026
|
`;
|
|
14006
14027
|
const ClearCache = gql `
|
|
14007
14028
|
query ClearCache($name: String) {
|
|
@@ -14096,12 +14117,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14096
14117
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14097
14118
|
const now = Date.now();
|
|
14098
14119
|
console.debug('[config] Loading Pod configuration...');
|
|
14099
|
-
const query = opts && opts.query || LoadQuery
|
|
14120
|
+
const query = opts && opts.query || LoadQuery;
|
|
14100
14121
|
const variables = opts && opts.variables || undefined;
|
|
14101
14122
|
const res = yield this.graphql.query({
|
|
14102
14123
|
query,
|
|
14103
14124
|
variables,
|
|
14104
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14125
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14105
14126
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
14106
14127
|
});
|
|
14107
14128
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -14126,12 +14147,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14126
14147
|
const json = config.asObject();
|
|
14127
14148
|
// Execute mutation
|
|
14128
14149
|
const res = yield this.graphql.mutate({
|
|
14129
|
-
mutation: SaveMutation
|
|
14150
|
+
mutation: SaveMutation,
|
|
14130
14151
|
variables: {
|
|
14131
14152
|
data: json
|
|
14132
14153
|
},
|
|
14133
14154
|
error: {
|
|
14134
|
-
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
14155
|
+
code: ErrorCodes$2.SAVE_CONFIG_ERROR,
|
|
14135
14156
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
14136
14157
|
}
|
|
14137
14158
|
});
|
|
@@ -14157,7 +14178,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14157
14178
|
const res = yield this.graphql.query({
|
|
14158
14179
|
query: CacheStatistics,
|
|
14159
14180
|
variables: null,
|
|
14160
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14181
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14161
14182
|
fetchPolicy: 'network-only'
|
|
14162
14183
|
});
|
|
14163
14184
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -14173,7 +14194,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14173
14194
|
const res = yield this.graphql.query({
|
|
14174
14195
|
query: ClearCache,
|
|
14175
14196
|
variables,
|
|
14176
|
-
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14197
|
+
error: { code: ErrorCodes$2.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14177
14198
|
fetchPolicy: 'network-only'
|
|
14178
14199
|
});
|
|
14179
14200
|
const data = res && res.clearCache || undefined;
|
|
@@ -14332,7 +14353,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14332
14353
|
});
|
|
14333
14354
|
}
|
|
14334
14355
|
}
|
|
14335
|
-
ConfigService.ɵprov =
|
|
14356
|
+
ConfigService.ɵprov = i0.ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(GraphqlService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(NetworkService), i0.ɵɵinject(FileService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
14336
14357
|
ConfigService.decorators = [
|
|
14337
14358
|
{ type: Injectable, args: [{
|
|
14338
14359
|
providedIn: 'root',
|
|
@@ -14351,7 +14372,7 @@ ConfigService.ctorParameters = () => [
|
|
|
14351
14372
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
14352
14373
|
];
|
|
14353
14374
|
|
|
14354
|
-
const moment$
|
|
14375
|
+
const moment$2 = momentImported;
|
|
14355
14376
|
class PlatformService {
|
|
14356
14377
|
constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
|
|
14357
14378
|
this.platform = platform;
|
|
@@ -14560,16 +14581,16 @@ class PlatformService {
|
|
|
14560
14581
|
}
|
|
14561
14582
|
// config moment lib
|
|
14562
14583
|
try {
|
|
14563
|
-
moment$
|
|
14584
|
+
moment$2.locale(event.lang);
|
|
14564
14585
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
14565
14586
|
}
|
|
14566
14587
|
// If error, fallback to en
|
|
14567
14588
|
catch (err) {
|
|
14568
|
-
moment$
|
|
14589
|
+
moment$2.locale('en');
|
|
14569
14590
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
14570
14591
|
}
|
|
14571
14592
|
// Config date adapter
|
|
14572
|
-
this.dateAdapter.setLocale(moment$
|
|
14593
|
+
this.dateAdapter.setLocale(moment$2.locale());
|
|
14573
14594
|
}
|
|
14574
14595
|
});
|
|
14575
14596
|
this.settings.onChange.subscribe(data => {
|
|
@@ -14707,7 +14728,7 @@ class PlatformService {
|
|
|
14707
14728
|
});
|
|
14708
14729
|
}
|
|
14709
14730
|
}
|
|
14710
|
-
PlatformService.ɵprov =
|
|
14731
|
+
PlatformService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(i0.ɵɵinject(i1$4.Platform), i0.ɵɵinject(i2$4.Platform), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1.MomentDateAdapter), i0.ɵɵinject(EntitiesStorage), i0.ɵɵinject(LocalSettingsService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(AccountService), i0.ɵɵinject(ConfigService), i0.ɵɵinject(i6.CacheService), i0.ɵɵinject(i3$1.Storage), i0.ɵɵinject(AudioProvider), i0.ɵɵinject(ENVIRONMENT), i0.ɵɵinject(i14.StatusBar, 8), i0.ɵɵinject(i15.Keyboard, 8), i0.ɵɵinject(i10.SplashScreen, 8), i0.ɵɵinject(i17.InAppBrowser, 8), i0.ɵɵinject(i18.Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
14711
14732
|
PlatformService.decorators = [
|
|
14712
14733
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
14713
14734
|
];
|
|
@@ -14722,15 +14743,15 @@ PlatformService.ctorParameters = () => [
|
|
|
14722
14743
|
{ type: NetworkService },
|
|
14723
14744
|
{ type: AccountService },
|
|
14724
14745
|
{ type: ConfigService },
|
|
14725
|
-
{ type: CacheService
|
|
14746
|
+
{ type: CacheService },
|
|
14726
14747
|
{ type: Storage },
|
|
14727
14748
|
{ type: AudioProvider },
|
|
14728
14749
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
14729
|
-
{ type: StatusBar
|
|
14750
|
+
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
14730
14751
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
14731
|
-
{ type: SplashScreen
|
|
14732
|
-
{ type: InAppBrowser
|
|
14733
|
-
{ type: Downloader
|
|
14752
|
+
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
14753
|
+
{ type: InAppBrowser, decorators: [{ type: Optional }] },
|
|
14754
|
+
{ type: Downloader, decorators: [{ type: Optional }] }
|
|
14734
14755
|
];
|
|
14735
14756
|
|
|
14736
14757
|
class AppHelpModal {
|
|
@@ -14794,7 +14815,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
14794
14815
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
14795
14816
|
}
|
|
14796
14817
|
}
|
|
14797
|
-
MatStepperI18n.ɵprov =
|
|
14818
|
+
MatStepperI18n.ɵprov = i0.ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(i0.ɵɵinject(i1$1.TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
14798
14819
|
MatStepperI18n.decorators = [
|
|
14799
14820
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
14800
14821
|
];
|
|
@@ -15786,7 +15807,7 @@ function state2side(state) {
|
|
|
15786
15807
|
return 1;
|
|
15787
15808
|
}
|
|
15788
15809
|
}
|
|
15789
|
-
const ɵ0$
|
|
15810
|
+
const ɵ0$1 = (defaultStateSize) => [
|
|
15790
15811
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
15791
15812
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
15792
15813
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -15794,7 +15815,7 @@ const ɵ0$9 = (defaultStateSize) => [
|
|
|
15794
15815
|
const SCALE_OPTIONS_DEFAULT = {
|
|
15795
15816
|
startColor: rgbArrayMap.red,
|
|
15796
15817
|
startStates: [0, 2, 3],
|
|
15797
|
-
startStepsFn: ɵ0$
|
|
15818
|
+
startStepsFn: ɵ0$1
|
|
15798
15819
|
};
|
|
15799
15820
|
/**
|
|
15800
15821
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -15886,21 +15907,21 @@ function linearColorGradient(count, options) {
|
|
|
15886
15907
|
return result;
|
|
15887
15908
|
}
|
|
15888
15909
|
|
|
15889
|
-
class EntityTestClass {
|
|
15910
|
+
class EntityTestClass$1 {
|
|
15890
15911
|
}
|
|
15891
|
-
const FAKE_ENTITIES = [
|
|
15912
|
+
const FAKE_ENTITIES$1 = [
|
|
15892
15913
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
15893
15914
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
15894
15915
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
15895
15916
|
];
|
|
15896
|
-
function deepCopy(values, size) {
|
|
15917
|
+
function deepCopy$1(values, size) {
|
|
15897
15918
|
if (isNil(size)) {
|
|
15898
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
15919
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
15899
15920
|
}
|
|
15900
15921
|
let result = [];
|
|
15901
15922
|
let i = 1;
|
|
15902
15923
|
while (result.length < size) {
|
|
15903
|
-
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
15924
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
|
|
15904
15925
|
const name = entity.name + ' #' + i;
|
|
15905
15926
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
15906
15927
|
}));
|
|
@@ -15910,7 +15931,7 @@ function deepCopy(values, size) {
|
|
|
15910
15931
|
class AutocompleteTestPage {
|
|
15911
15932
|
constructor(formBuilder) {
|
|
15912
15933
|
this.formBuilder = formBuilder;
|
|
15913
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
15934
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
15914
15935
|
this.$items = new BehaviorSubject(undefined);
|
|
15915
15936
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
15916
15937
|
this.memoryHide = false;
|
|
@@ -15954,7 +15975,7 @@ class AutocompleteTestPage {
|
|
|
15954
15975
|
});
|
|
15955
15976
|
// From items
|
|
15956
15977
|
this.autocompleteFields.add('entity-items-large', {
|
|
15957
|
-
items: FAKE_ENTITIES.slice(),
|
|
15978
|
+
items: FAKE_ENTITIES$1.slice(),
|
|
15958
15979
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
15959
15980
|
displayWith: this.entityToString
|
|
15960
15981
|
});
|
|
@@ -15964,12 +15985,12 @@ class AutocompleteTestPage {
|
|
|
15964
15985
|
loadData() {
|
|
15965
15986
|
return __awaiter(this, void 0, void 0, function* () {
|
|
15966
15987
|
const data = {
|
|
15967
|
-
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
15988
|
+
entity: deepCopy$1(FAKE_ENTITIES$1)[0],
|
|
15968
15989
|
// This item is NOT in the items list => i should be displayed anyway
|
|
15969
15990
|
missingEntity: {
|
|
15970
15991
|
id: -1, label: '??', name: 'Missing item'
|
|
15971
15992
|
},
|
|
15972
|
-
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
15993
|
+
disableEntity: deepCopy$1(FAKE_ENTITIES$1)[2]
|
|
15973
15994
|
};
|
|
15974
15995
|
this.form.setValue(data);
|
|
15975
15996
|
// Load observables
|
|
@@ -16142,13 +16163,13 @@ MaterialTestingPage.ctorParameters = () => [
|
|
|
16142
16163
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
|
|
16143
16164
|
];
|
|
16144
16165
|
|
|
16145
|
-
const moment$
|
|
16166
|
+
const moment$1 = momentImported;
|
|
16146
16167
|
class SwipeTestPage {
|
|
16147
16168
|
constructor(formBuilder, dateFormatPipe) {
|
|
16148
16169
|
this.formBuilder = formBuilder;
|
|
16149
16170
|
this.dateFormatPipe = dateFormatPipe;
|
|
16150
16171
|
this.$dates = new BehaviorSubject(undefined);
|
|
16151
|
-
this._today = moment$
|
|
16172
|
+
this._today = moment$1().startOf('day');
|
|
16152
16173
|
this.form = formBuilder.group({
|
|
16153
16174
|
empty: [null, Validators.required],
|
|
16154
16175
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -16161,7 +16182,7 @@ class SwipeTestPage {
|
|
|
16161
16182
|
ngOnInit() {
|
|
16162
16183
|
const dates = [];
|
|
16163
16184
|
for (let d = 0; d < 7; d++) {
|
|
16164
|
-
dates[d] = moment$
|
|
16185
|
+
dates[d] = moment$1(this._today).add(d - 3, 'day');
|
|
16165
16186
|
}
|
|
16166
16187
|
this.$dates.next(dates);
|
|
16167
16188
|
this.loadData();
|
|
@@ -16202,7 +16223,7 @@ SwipeTestPage.ctorParameters = () => [
|
|
|
16202
16223
|
{ type: DateFormatPipe }
|
|
16203
16224
|
];
|
|
16204
16225
|
|
|
16205
|
-
const moment
|
|
16226
|
+
const moment = momentImported;
|
|
16206
16227
|
class DateTimeTestPage {
|
|
16207
16228
|
constructor(platform, formBuilder, cd) {
|
|
16208
16229
|
this.platform = platform;
|
|
@@ -16234,7 +16255,7 @@ class DateTimeTestPage {
|
|
|
16234
16255
|
// Load the form with data
|
|
16235
16256
|
loadData() {
|
|
16236
16257
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16237
|
-
const now = moment
|
|
16258
|
+
const now = moment();
|
|
16238
16259
|
const data = {
|
|
16239
16260
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
16240
16261
|
enable: toDateISOString(now),
|
|
@@ -16295,20 +16316,20 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
16295
16316
|
{ type: ChangeDetectorRef }
|
|
16296
16317
|
];
|
|
16297
16318
|
|
|
16298
|
-
class EntityTestClass
|
|
16319
|
+
class EntityTestClass {
|
|
16299
16320
|
}
|
|
16300
|
-
const FAKE_ENTITIES
|
|
16321
|
+
const FAKE_ENTITIES = [
|
|
16301
16322
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
16302
16323
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
16303
16324
|
{ id: 3, label: 'CCC', name: 'Item C' }
|
|
16304
16325
|
];
|
|
16305
|
-
function deepCopy
|
|
16306
|
-
return (values || FAKE_ENTITIES
|
|
16326
|
+
function deepCopy(values) {
|
|
16327
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
16307
16328
|
}
|
|
16308
16329
|
class ChipsTestPage {
|
|
16309
16330
|
constructor(formBuilder) {
|
|
16310
16331
|
this.formBuilder = formBuilder;
|
|
16311
|
-
this._items = deepCopy
|
|
16332
|
+
this._items = deepCopy(FAKE_ENTITIES);
|
|
16312
16333
|
this._$items = new BehaviorSubject(undefined);
|
|
16313
16334
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
16314
16335
|
this.form = formBuilder.group({
|
|
@@ -16327,7 +16348,7 @@ class ChipsTestPage {
|
|
|
16327
16348
|
});
|
|
16328
16349
|
// From items
|
|
16329
16350
|
this.autocompleteFields.add('entity-items', {
|
|
16330
|
-
items: FAKE_ENTITIES
|
|
16351
|
+
items: FAKE_ENTITIES.slice(),
|
|
16331
16352
|
attributes: ['label', 'name'],
|
|
16332
16353
|
displayWith: this.entityToString
|
|
16333
16354
|
});
|
|
@@ -16348,15 +16369,15 @@ class ChipsTestPage {
|
|
|
16348
16369
|
const data = {
|
|
16349
16370
|
entity: [],
|
|
16350
16371
|
// THis item is NOT in the items list => i should be displayed anyway
|
|
16351
|
-
entityInitial: FAKE_ENTITIES
|
|
16352
|
-
disableEntity: FAKE_ENTITIES
|
|
16372
|
+
entityInitial: FAKE_ENTITIES.slice(1, 2),
|
|
16373
|
+
disableEntity: FAKE_ENTITIES.slice(1, 2)
|
|
16353
16374
|
};
|
|
16354
16375
|
this.form.setValue(data);
|
|
16355
16376
|
});
|
|
16356
16377
|
}
|
|
16357
16378
|
loadItems() {
|
|
16358
16379
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16359
|
-
this._$items.next(deepCopy
|
|
16380
|
+
this._$items.next(deepCopy(FAKE_ENTITIES));
|
|
16360
16381
|
});
|
|
16361
16382
|
}
|
|
16362
16383
|
entityToString(item) {
|
|
@@ -16397,7 +16418,7 @@ MatBadgeIconTestPage.decorators = [
|
|
|
16397
16418
|
},] }
|
|
16398
16419
|
];
|
|
16399
16420
|
|
|
16400
|
-
const routes = [
|
|
16421
|
+
const routes$1 = [
|
|
16401
16422
|
{
|
|
16402
16423
|
path: '',
|
|
16403
16424
|
pathMatch: 'full',
|
|
@@ -16449,7 +16470,7 @@ MaterialTestingModule.decorators = [
|
|
|
16449
16470
|
ReactiveFormsModule,
|
|
16450
16471
|
SharedMaterialModule,
|
|
16451
16472
|
TranslateModule.forChild(),
|
|
16452
|
-
RouterModule.forChild(routes)
|
|
16473
|
+
RouterModule.forChild(routes$1)
|
|
16453
16474
|
],
|
|
16454
16475
|
declarations: [
|
|
16455
16476
|
MaterialTestingPage,
|
|
@@ -17408,7 +17429,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
17408
17429
|
});
|
|
17409
17430
|
}
|
|
17410
17431
|
}
|
|
17411
|
-
UserSettingsValidatorService.ɵprov =
|
|
17432
|
+
UserSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
17412
17433
|
UserSettingsValidatorService.decorators = [
|
|
17413
17434
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
17414
17435
|
];
|
|
@@ -17452,7 +17473,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
17452
17473
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
17453
17474
|
}
|
|
17454
17475
|
}
|
|
17455
|
-
AccountValidatorService.ɵprov =
|
|
17476
|
+
AccountValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
17456
17477
|
AccountValidatorService.decorators = [
|
|
17457
17478
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
17458
17479
|
];
|
|
@@ -17671,6 +17692,7 @@ class FormButtonsBarComponent {
|
|
|
17671
17692
|
this.onSave = new EventEmitter();
|
|
17672
17693
|
this.onNext = new EventEmitter();
|
|
17673
17694
|
this.onBack = new EventEmitter();
|
|
17695
|
+
// Ctrl+S
|
|
17674
17696
|
this._subscription.add(hotkeys.addShortcut({ keys: 'control.s', description: 'COMMON.BTN_SAVE' })
|
|
17675
17697
|
.pipe(filter(e => !this.disabled))
|
|
17676
17698
|
.subscribe((event) => this.onSave.emit(event)));
|
|
@@ -17985,7 +18007,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
17985
18007
|
});
|
|
17986
18008
|
}
|
|
17987
18009
|
}
|
|
17988
|
-
LocalSettingsValidatorService.ɵprov =
|
|
18010
|
+
LocalSettingsValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
17989
18011
|
LocalSettingsValidatorService.decorators = [
|
|
17990
18012
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
17991
18013
|
];
|
|
@@ -18603,7 +18625,7 @@ class IsOnFieldModePipe {
|
|
|
18603
18625
|
return value === 'FIELD';
|
|
18604
18626
|
}
|
|
18605
18627
|
}
|
|
18606
|
-
IsOnFieldModePipe.ɵprov =
|
|
18628
|
+
IsOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
18607
18629
|
IsOnFieldModePipe.decorators = [
|
|
18608
18630
|
{ type: Pipe, args: [{
|
|
18609
18631
|
name: 'isOnField'
|
|
@@ -18615,7 +18637,7 @@ class IsNotOnFieldModePipe {
|
|
|
18615
18637
|
return value !== 'FIELD';
|
|
18616
18638
|
}
|
|
18617
18639
|
}
|
|
18618
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
18640
|
+
IsNotOnFieldModePipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
18619
18641
|
IsNotOnFieldModePipe.decorators = [
|
|
18620
18642
|
{ type: Pipe, args: [{
|
|
18621
18643
|
name: 'isNotOnField'
|
|
@@ -18630,7 +18652,7 @@ class PersonToStringPipe {
|
|
|
18630
18652
|
return PersonUtils.personToString(value);
|
|
18631
18653
|
}
|
|
18632
18654
|
}
|
|
18633
|
-
PersonToStringPipe.ɵprov =
|
|
18655
|
+
PersonToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
18634
18656
|
PersonToStringPipe.decorators = [
|
|
18635
18657
|
{ type: Pipe, args: [{
|
|
18636
18658
|
name: 'personToString'
|
|
@@ -18976,7 +18998,7 @@ class IsLoginAccountPipe {
|
|
|
18976
18998
|
return value && value.pubkey && true;
|
|
18977
18999
|
}
|
|
18978
19000
|
}
|
|
18979
|
-
IsLoginAccountPipe.ɵprov =
|
|
19001
|
+
IsLoginAccountPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
18980
19002
|
IsLoginAccountPipe.decorators = [
|
|
18981
19003
|
{ type: Pipe, args: [{
|
|
18982
19004
|
name: 'isLogin'
|
|
@@ -18988,7 +19010,7 @@ class AccountToStringPipe {
|
|
|
18988
19010
|
return accountToString(value);
|
|
18989
19011
|
}
|
|
18990
19012
|
}
|
|
18991
|
-
AccountToStringPipe.ɵprov =
|
|
19013
|
+
AccountToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
18992
19014
|
AccountToStringPipe.decorators = [
|
|
18993
19015
|
{ type: Pipe, args: [{
|
|
18994
19016
|
name: 'accountToString'
|
|
@@ -19003,7 +19025,7 @@ class DepartmentToStringPipe {
|
|
|
19003
19025
|
return departmentToString(value);
|
|
19004
19026
|
}
|
|
19005
19027
|
}
|
|
19006
|
-
DepartmentToStringPipe.ɵprov =
|
|
19028
|
+
DepartmentToStringPipe.ɵprov = i0.ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
19007
19029
|
DepartmentToStringPipe.decorators = [
|
|
19008
19030
|
{ type: Pipe, args: [{
|
|
19009
19031
|
name: 'departmentToString'
|
|
@@ -19029,7 +19051,7 @@ class MenuService {
|
|
|
19029
19051
|
this._visibleSubject.next(value);
|
|
19030
19052
|
}
|
|
19031
19053
|
}
|
|
19032
|
-
MenuService.ɵprov =
|
|
19054
|
+
MenuService.ɵprov = i0.ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
19033
19055
|
MenuService.decorators = [
|
|
19034
19056
|
{ type: Injectable, args: [{
|
|
19035
19057
|
providedIn: 'root'
|
|
@@ -19523,7 +19545,7 @@ class AuthGuardService {
|
|
|
19523
19545
|
}));
|
|
19524
19546
|
}
|
|
19525
19547
|
}
|
|
19526
|
-
AuthGuardService.ɵprov =
|
|
19548
|
+
AuthGuardService.ɵprov = i0.ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(i0.ɵɵinject(AccountService), i0.ɵɵinject(i1$4.ModalController), i0.ɵɵinject(i3$3.Router), i0.ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
19527
19549
|
AuthGuardService.decorators = [
|
|
19528
19550
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
19529
19551
|
];
|
|
@@ -19571,7 +19593,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19571
19593
|
query,
|
|
19572
19594
|
variables: { id },
|
|
19573
19595
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
19574
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
19596
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
19575
19597
|
})
|
|
19576
19598
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
19577
19599
|
? (data && this.fromObject(data))
|
|
@@ -19586,7 +19608,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19586
19608
|
query,
|
|
19587
19609
|
variables: { id },
|
|
19588
19610
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
19589
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
19611
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
19590
19612
|
});
|
|
19591
19613
|
// Convert to entity
|
|
19592
19614
|
return (!opts || opts.toEntity !== false)
|
|
@@ -19617,7 +19639,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19617
19639
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
19618
19640
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
19619
19641
|
variables,
|
|
19620
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
19642
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
19621
19643
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
19622
19644
|
})
|
|
19623
19645
|
.pipe(map(({ data, total }) => {
|
|
@@ -19653,7 +19675,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19653
19675
|
const { data, total } = yield this.graphql.query({
|
|
19654
19676
|
query,
|
|
19655
19677
|
variables,
|
|
19656
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
19678
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
19657
19679
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
19658
19680
|
});
|
|
19659
19681
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -19692,7 +19714,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19692
19714
|
variables: {
|
|
19693
19715
|
filter: filter && filter.asPodObject()
|
|
19694
19716
|
},
|
|
19695
|
-
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
19717
|
+
error: { code: ErrorCodes$2.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
19696
19718
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
19697
19719
|
});
|
|
19698
19720
|
return res.total;
|
|
@@ -19725,7 +19747,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19725
19747
|
variables: {
|
|
19726
19748
|
data: json
|
|
19727
19749
|
},
|
|
19728
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19750
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19729
19751
|
update: (proxy, { data }) => {
|
|
19730
19752
|
const savedEntities = data && data.data;
|
|
19731
19753
|
if (savedEntities) {
|
|
@@ -19781,7 +19803,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19781
19803
|
variables: {
|
|
19782
19804
|
data: json
|
|
19783
19805
|
},
|
|
19784
|
-
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19806
|
+
error: { code: ErrorCodes$2.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
19785
19807
|
update: (cache, { data }) => {
|
|
19786
19808
|
// Update entity
|
|
19787
19809
|
const savedEntity = data && data.data;
|
|
@@ -19829,7 +19851,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19829
19851
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
19830
19852
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
19831
19853
|
variables: { ids },
|
|
19832
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19854
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19833
19855
|
update: (cache, res) => {
|
|
19834
19856
|
// Remove from cache
|
|
19835
19857
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -19870,7 +19892,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19870
19892
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
19871
19893
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
19872
19894
|
variables: { id },
|
|
19873
|
-
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19895
|
+
error: { code: ErrorCodes$2.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
19874
19896
|
update: (proxy, res) => {
|
|
19875
19897
|
// Remove from cache
|
|
19876
19898
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -19903,7 +19925,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
19903
19925
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
19904
19926
|
variables,
|
|
19905
19927
|
error: {
|
|
19906
|
-
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
19928
|
+
code: ErrorCodes$2.SUBSCRIBE_DATA_ERROR,
|
|
19907
19929
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
19908
19930
|
}
|
|
19909
19931
|
})
|
|
@@ -20078,7 +20100,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
20078
20100
|
if (this._debug)
|
|
20079
20101
|
invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
20080
20102
|
// Stop with an error
|
|
20081
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20103
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20082
20104
|
}
|
|
20083
20105
|
this._editingRowCount = 0;
|
|
20084
20106
|
let data;
|
|
@@ -20900,14 +20922,14 @@ class AppTable {
|
|
|
20900
20922
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20901
20923
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
20902
20924
|
if (this.readOnly) {
|
|
20903
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20925
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
20904
20926
|
}
|
|
20905
20927
|
this.resetError();
|
|
20906
20928
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
20907
20929
|
this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
|
|
20908
20930
|
const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
|
|
20909
20931
|
if (!this.confirmEditCreate()) {
|
|
20910
|
-
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20932
|
+
throw { code: ErrorCodes$2.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
20911
20933
|
}
|
|
20912
20934
|
// Mark as saving
|
|
20913
20935
|
this.markAsSaving();
|
|
@@ -21023,7 +21045,7 @@ class AppTable {
|
|
|
21023
21045
|
deleteRows(event, rows, opts) {
|
|
21024
21046
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21025
21047
|
if (this.readOnly) {
|
|
21026
|
-
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
21048
|
+
throw { code: ErrorCodes$2.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
21027
21049
|
}
|
|
21028
21050
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
21029
21051
|
return 0; // SKip
|
|
@@ -22434,7 +22456,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
22434
22456
|
try {
|
|
22435
22457
|
const data = yield this.dataService.load(id, opts);
|
|
22436
22458
|
if (!data)
|
|
22437
|
-
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
22459
|
+
throw { code: ErrorCodes$2.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
22438
22460
|
this._usageMode = this.computeUsageMode(data);
|
|
22439
22461
|
yield this.onEntityLoaded(data, opts);
|
|
22440
22462
|
yield this.updateView(data, opts);
|
|
@@ -23338,7 +23360,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
23338
23360
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
23339
23361
|
}
|
|
23340
23362
|
}
|
|
23341
|
-
UserEventService.ɵprov =
|
|
23363
|
+
UserEventService.ɵprov = i0.ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(AccountService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(i1$1.TranslateService), i0.ɵɵinject(i1$4.ToastController), i0.ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
|
|
23342
23364
|
UserEventService.decorators = [
|
|
23343
23365
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23344
23366
|
];
|
|
@@ -23723,7 +23745,7 @@ class PersonService extends BaseEntityService {
|
|
|
23723
23745
|
return target;
|
|
23724
23746
|
}
|
|
23725
23747
|
}
|
|
23726
|
-
PersonService.ɵprov =
|
|
23748
|
+
PersonService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(i0.ɵɵinject(GraphqlService), i0.ɵɵinject(PlatformService), i0.ɵɵinject(NetworkService), i0.ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
23727
23749
|
PersonService.decorators = [
|
|
23728
23750
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23729
23751
|
];
|
|
@@ -23754,7 +23776,7 @@ class PersonValidatorService {
|
|
|
23754
23776
|
return this.formBuilder.group(formConfig);
|
|
23755
23777
|
}
|
|
23756
23778
|
}
|
|
23757
|
-
PersonValidatorService.ɵprov =
|
|
23779
|
+
PersonValidatorService.ɵprov = i0.ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(i0.ɵɵinject(i1$6.FormBuilder), i0.ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
23758
23780
|
PersonValidatorService.decorators = [
|
|
23759
23781
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
23760
23782
|
];
|
|
@@ -23960,16 +23982,16 @@ AdminModule.decorators = [
|
|
|
23960
23982
|
];
|
|
23961
23983
|
AdminModule.ctorParameters = () => [];
|
|
23962
23984
|
|
|
23963
|
-
const ɵ0
|
|
23985
|
+
const ɵ0 = {
|
|
23964
23986
|
profile: 'ADMIN'
|
|
23965
23987
|
};
|
|
23966
|
-
const routes
|
|
23988
|
+
const routes = [
|
|
23967
23989
|
{
|
|
23968
23990
|
path: 'users',
|
|
23969
23991
|
pathMatch: 'full',
|
|
23970
23992
|
component: UsersPage,
|
|
23971
23993
|
canActivate: [AuthGuardService],
|
|
23972
|
-
data: ɵ0
|
|
23994
|
+
data: ɵ0
|
|
23973
23995
|
}
|
|
23974
23996
|
];
|
|
23975
23997
|
class AdminRoutingModule {
|
|
@@ -23979,13 +24001,13 @@ AdminRoutingModule.decorators = [
|
|
|
23979
24001
|
imports: [
|
|
23980
24002
|
SharedRoutingModule,
|
|
23981
24003
|
AdminModule,
|
|
23982
|
-
RouterModule.forChild(routes
|
|
24004
|
+
RouterModule.forChild(routes)
|
|
23983
24005
|
],
|
|
23984
24006
|
exports: [RouterModule]
|
|
23985
24007
|
},] }
|
|
23986
24008
|
];
|
|
23987
24009
|
|
|
23988
|
-
const ErrorCodes
|
|
24010
|
+
const ErrorCodes = {
|
|
23989
24011
|
LOAD_PERSONS_ERROR: 100,
|
|
23990
24012
|
SAVE_PERSONS_ERROR: 101,
|
|
23991
24013
|
DELETE_PERSONS_ERROR: 102,
|
|
@@ -23997,5 +24019,5 @@ const ErrorCodes$2 = {
|
|
|
23997
24019
|
* Generated bundle index. Do not edit.
|
|
23998
24020
|
*/
|
|
23999
24021
|
|
|
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
|
|
24022
|
+
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, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, 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 };
|
|
24001
24023
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|