@sumaris-net/ngx-components 1.11.13 → 1.12.1
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 +282 -300
- 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 -2
- package/esm2015/src/app/core/services/model/entity.model.js +8 -2
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +2 -2
- package/fesm2015/sumaris-net.ngx-components.js +273 -282
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/theme/_ngx-components.scss +22 -0
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
3
|
-
import * as i1$3 from '@angular/common';
|
|
1
|
+
import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, ɵɵdefineInjectable, ɵɵinject, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, HostBinding, HostListener, ViewChildren, ComponentFactoryResolver, ApplicationRef, INJECTOR, Injector, Renderer2, ViewEncapsulation } from '@angular/core';
|
|
4
2
|
import { CommonModule, DOCUMENT, Location } from '@angular/common';
|
|
5
3
|
import { CdkTableModule } from '@angular/cdk/table';
|
|
6
4
|
import { A11yModule } from '@angular/cdk/a11y';
|
|
7
5
|
import { OverlayModule, OverlayContainer, FullscreenOverlayContainer, Overlay } from '@angular/cdk/overlay';
|
|
8
6
|
import { ScrollingModule } from '@angular/cdk/scrolling';
|
|
9
|
-
import * as i1$2 from '@angular/material/core';
|
|
10
7
|
import { DateAdapter, MatCommonModule, MatRippleModule } from '@angular/material/core';
|
|
11
8
|
import { MatTableModule, MatTable, MatColumnDef } from '@angular/material/table';
|
|
12
9
|
import { MatSortModule, MatSort } from '@angular/material/sort';
|
|
@@ -30,21 +27,16 @@ import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
|
30
27
|
import { MatRadioModule } from '@angular/material/radio';
|
|
31
28
|
import { MatBadgeModule } from '@angular/material/badge';
|
|
32
29
|
import { MatSlideToggleModule } from '@angular/material/slide-toggle';
|
|
33
|
-
import * as i2$1 from '@angular/material/dialog';
|
|
34
30
|
import { MatDialogModule, MAT_DIALOG_DATA, MatDialog } from '@angular/material/dialog';
|
|
35
31
|
import { MatAutocomplete, MatAutocompleteTrigger, MatAutocompleteModule, MAT_AUTOCOMPLETE_SCROLL_STRATEGY, MAT_AUTOCOMPLETE_DEFAULT_OPTIONS } from '@angular/material/autocomplete';
|
|
36
32
|
import { __awaiter, __decorate } from 'tslib';
|
|
37
|
-
import * as i1$6 from '@angular/forms';
|
|
38
33
|
import { NG_VALUE_ACCESSOR, FormGroupDirective, AbstractControl, FormGroup, FormArray, FormControl, ReactiveFormsModule, Validators, FormBuilder } from '@angular/forms';
|
|
39
34
|
import { timer, merge, fromEvent, BehaviorSubject, Subscription, Subject, isObservable, noop as noop$9, Observable, defer, of, from, forkJoin, combineLatest, EMPTY } from 'rxjs';
|
|
40
35
|
import { filter, first, map, takeUntil, switchMap, startWith, debounceTime, takeWhile, tap, distinctUntilChanged, mergeMap, catchError, throttleTime, skip } from 'rxjs/operators';
|
|
41
|
-
import * as i1$1 from '@ngx-translate/core';
|
|
42
36
|
import { TranslateService, TranslateModule } from '@ngx-translate/core';
|
|
43
|
-
import * as i1$4 from '@ionic/angular';
|
|
44
37
|
import { IonicModule, Platform, IonRouterOutlet, ModalController, IonicSafeString, createAnimation, ToastController, PopoverController, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent, IonInfiniteScroll } from '@ionic/angular';
|
|
45
38
|
import * as momentImported from 'moment';
|
|
46
39
|
import { isMoment } from 'moment';
|
|
47
|
-
import * as i1 from '@angular/material-moment-adapter';
|
|
48
40
|
import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
49
41
|
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
50
42
|
import { TextMaskModule } from 'angular2-text-mask';
|
|
@@ -54,38 +46,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
|
|
|
54
46
|
import { MatDividerModule } from '@angular/material/divider';
|
|
55
47
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
56
48
|
import { MatChipsModule } from '@angular/material/chips';
|
|
57
|
-
import * as i3$3 from '@angular/router';
|
|
58
49
|
import { Router, ActivatedRoute, RouterModule, RouteReuseStrategy } from '@angular/router';
|
|
59
|
-
import * as i1$5 from '@angular/platform-browser';
|
|
60
50
|
import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
|
|
61
|
-
import * as i2$2 from '@angular/common/http';
|
|
62
51
|
import { HttpResponse, HttpClient, HttpHeaders, HttpEventType, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
63
52
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
64
|
-
import { NativeAudio } from '@ionic-native/native-audio/ngx';
|
|
65
|
-
import { Vibration } from '@ionic-native/vibration/ngx';
|
|
53
|
+
import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
|
|
54
|
+
import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
|
|
66
55
|
import { AudioManagement } from '@ionic-native/audio-management/ngx';
|
|
67
|
-
import
|
|
68
|
-
import
|
|
69
|
-
import
|
|
56
|
+
import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
|
|
57
|
+
import { Vibration } from '@ionic-native/vibration/ngx/index';
|
|
58
|
+
import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
|
|
70
59
|
import * as uuidv4Imported from 'uuid/v4';
|
|
71
60
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
72
61
|
import { MarkdownModule } from 'ngx-markdown';
|
|
73
62
|
import { sign, box, hash, verify } from 'tweetnacl';
|
|
74
|
-
import * as i3$1 from '@ionic/storage';
|
|
75
63
|
import { Storage, IonicStorageModule } from '@ionic/storage';
|
|
76
64
|
import 'zone.js/dist/zone-error';
|
|
77
|
-
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
|
|
78
|
-
import { Connection, Network } from '@ionic-native/network/ngx';
|
|
79
|
-
import { CacheService, CacheModule } from 'ionic-cache';
|
|
80
|
-
import
|
|
81
|
-
import
|
|
82
|
-
import
|
|
83
|
-
import { StatusBar } from '@ionic-native/status-bar/ngx';
|
|
84
|
-
import * as i2$4 from '@angular/cdk/platform';
|
|
65
|
+
import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
|
|
66
|
+
import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
|
|
67
|
+
import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
|
|
68
|
+
import { CacheService } from 'ionic-cache/dist/cache.service';
|
|
69
|
+
import { Network } from '@ionic-native/network/ngx/index';
|
|
70
|
+
import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
|
|
71
|
+
import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
|
|
85
72
|
import { Platform as Platform$1 } from '@angular/cdk/platform';
|
|
86
|
-
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
|
73
|
+
import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
|
|
87
74
|
import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
|
|
88
|
-
import * as i2$3 from 'apollo-angular';
|
|
89
75
|
import { Apollo } from 'apollo-angular';
|
|
90
76
|
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
91
77
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
@@ -93,14 +79,13 @@ import { RetryLink } from '@apollo/client/link/retry';
|
|
|
93
79
|
import QueueLink from 'apollo-link-queue';
|
|
94
80
|
import SerializingLink from 'apollo-link-serialize';
|
|
95
81
|
import loggerLink from 'apollo-link-logger';
|
|
96
|
-
import * as i3$2 from 'apollo-angular/http';
|
|
97
82
|
import { HttpLink } from 'apollo-angular/http';
|
|
98
83
|
import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
|
|
99
|
-
import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
|
|
100
|
-
import
|
|
101
|
-
import
|
|
102
|
-
import
|
|
103
|
-
import
|
|
84
|
+
import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
|
|
85
|
+
import { StatusBar } from '@ionic-native/status-bar/ngx/index';
|
|
86
|
+
import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
|
|
87
|
+
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
|
|
88
|
+
import { Downloader } from '@ionic-native/downloader/ngx/index';
|
|
104
89
|
import { CdkTextareaAutosize } from '@angular/cdk/text-field';
|
|
105
90
|
import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
|
|
106
91
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
@@ -992,14 +977,14 @@ class MatAutocompleteConfigHolder {
|
|
|
992
977
|
return this.fields[fieldName] || this.add(fieldName);
|
|
993
978
|
}
|
|
994
979
|
}
|
|
995
|
-
const noop
|
|
996
|
-
const ɵ0
|
|
980
|
+
const noop = (_) => { };
|
|
981
|
+
const ɵ0 = noop;
|
|
997
982
|
class MatAutocompleteField {
|
|
998
983
|
constructor(cd, formGroupDir) {
|
|
999
984
|
this.cd = cd;
|
|
1000
985
|
this.formGroupDir = formGroupDir;
|
|
1001
|
-
this._onChangeCallback = noop
|
|
1002
|
-
this._onTouchedCallback = noop
|
|
986
|
+
this._onChangeCallback = noop;
|
|
987
|
+
this._onTouchedCallback = noop;
|
|
1003
988
|
this.logPrefix = '[mat-autocomplete] ';
|
|
1004
989
|
this.formControlName = null;
|
|
1005
990
|
this.required = false;
|
|
@@ -1637,7 +1622,7 @@ MatAutocompleteField.decorators = [
|
|
|
1637
1622
|
{ type: Component, args: [{
|
|
1638
1623
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1639
1624
|
selector: 'mat-autocomplete-field',
|
|
1640
|
-
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <!-- readonly -->\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 <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\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)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n [compareWith]=\"equals\"\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)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\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><i>{{noResultMessage | translate}}</i></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</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)=\"dropButtonClick.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",
|
|
1625
|
+
template: "<ion-grid class=\"ion-no-padding\">\n <ion-row>\n <ion-col class=\"ion-no-padding\">\n <!-- readonly -->\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 <input matInput hidden type=\"text\"\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\" readonly>\n <ion-text>{{displayWith(value)}}</ion-text>\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)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n [compareWith]=\"equals\"\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\" [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\n <ion-row class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text *ngIf=\"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 </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)=\"clicked.emit($event)\"\n (focus)=\"filterInputTextFocusEvent($event)\"\n (blur)=\"filterInputTextBlurEvent($event)\"\n (keydown.escape)=\"keydownEscape.emit($event)\"\n (keyup.enter)=\"keyupEnter.emit($event)\"\n (keyup.arrowdown)=\"!autocomplete.showPanel && dropButtonClick.emit($event)\">\n\n <!-- autocomplete -->\n <mat-autocomplete #autocomplete=\"matAutocomplete\"\n autoActiveFirstOption\n [displayWith]=\"displayWith\"\n [class]=\"classList\"\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\" [size]=\"displayColumnSizes[i]\">\n <ion-label [innerHTML]=\"displayColumnNames[i] | translate\"></ion-label>\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><i>{{noResultMessage | translate}}</i></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\n <ion-row class=\"mat-autocomplete-footer ion-no-padding\">\n <ion-col>\n <ion-text *ngIf=\"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 </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</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)=\"dropButtonClick.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",
|
|
1641
1626
|
providers: [{
|
|
1642
1627
|
provide: NG_VALUE_ACCESSOR,
|
|
1643
1628
|
multi: true,
|
|
@@ -1719,7 +1704,7 @@ class DateFormatPipe {
|
|
|
1719
1704
|
return this.dateAdapter.format(date, displayFormat);
|
|
1720
1705
|
}
|
|
1721
1706
|
}
|
|
1722
|
-
DateFormatPipe.ɵprov =
|
|
1707
|
+
DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
1723
1708
|
DateFormatPipe.decorators = [
|
|
1724
1709
|
{ type: Pipe, args: [{
|
|
1725
1710
|
name: 'dateFormat'
|
|
@@ -1731,7 +1716,7 @@ DateFormatPipe.ctorParameters = () => [
|
|
|
1731
1716
|
{ type: TranslateService }
|
|
1732
1717
|
];
|
|
1733
1718
|
|
|
1734
|
-
const moment
|
|
1719
|
+
const moment = momentImported;
|
|
1735
1720
|
class DateDiffDurationPipe {
|
|
1736
1721
|
constructor(dateAdapter, translate) {
|
|
1737
1722
|
this.dateAdapter = dateAdapter;
|
|
@@ -1747,17 +1732,17 @@ class DateDiffDurationPipe {
|
|
|
1747
1732
|
return this.format(startDate, endDate);
|
|
1748
1733
|
}
|
|
1749
1734
|
format(startDate, endDate) {
|
|
1750
|
-
const duration = moment
|
|
1735
|
+
const duration = moment.duration(endDate.diff(startDate));
|
|
1751
1736
|
if (duration.asMinutes() < 0)
|
|
1752
1737
|
return '';
|
|
1753
|
-
const timeDuration = moment
|
|
1738
|
+
const timeDuration = moment(0)
|
|
1754
1739
|
.hour(duration.hours())
|
|
1755
1740
|
.minute(duration.minutes());
|
|
1756
1741
|
const days = Math.floor(duration.asDays());
|
|
1757
1742
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
|
|
1758
1743
|
}
|
|
1759
1744
|
}
|
|
1760
|
-
DateDiffDurationPipe.ɵprov =
|
|
1745
|
+
DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
1761
1746
|
DateDiffDurationPipe.decorators = [
|
|
1762
1747
|
{ type: Pipe, args: [{
|
|
1763
1748
|
name: 'dateDiffDuration'
|
|
@@ -1778,7 +1763,7 @@ class DateFromNowPipe {
|
|
|
1778
1763
|
return date ? date.fromNow(args && args.withoutSuffix) : '';
|
|
1779
1764
|
}
|
|
1780
1765
|
}
|
|
1781
|
-
DateFromNowPipe.ɵprov =
|
|
1766
|
+
DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
1782
1767
|
DateFromNowPipe.decorators = [
|
|
1783
1768
|
{ type: Pipe, args: [{
|
|
1784
1769
|
name: 'dateFromNow'
|
|
@@ -1847,7 +1832,7 @@ function formatToDD(value, opts) {
|
|
|
1847
1832
|
value *= -1;
|
|
1848
1833
|
}
|
|
1849
1834
|
}
|
|
1850
|
-
let degrees = roundFloat
|
|
1835
|
+
let degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
1851
1836
|
// Add sign
|
|
1852
1837
|
let sign = negative ? '-' : '+';
|
|
1853
1838
|
if (opts.placeholderChar) {
|
|
@@ -1898,7 +1883,7 @@ function formatToDDMMSS(value, opts) {
|
|
|
1898
1883
|
}
|
|
1899
1884
|
let degrees = Math.trunc(value);
|
|
1900
1885
|
let minutes = Math.trunc((value - degrees) * 60);
|
|
1901
|
-
let seconds = roundFloat
|
|
1886
|
+
let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1902
1887
|
while (seconds >= 60) {
|
|
1903
1888
|
seconds -= 60;
|
|
1904
1889
|
minutes += 1;
|
|
@@ -1966,7 +1951,7 @@ function formatToDDMM(value, opts) {
|
|
|
1966
1951
|
}
|
|
1967
1952
|
}
|
|
1968
1953
|
let degrees = Math.trunc(value);
|
|
1969
|
-
let minutes = roundFloat
|
|
1954
|
+
let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
1970
1955
|
while (minutes >= 60) {
|
|
1971
1956
|
minutes -= 60;
|
|
1972
1957
|
degrees += 1;
|
|
@@ -2017,15 +2002,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
|
|
|
2017
2002
|
return NaN;
|
|
2018
2003
|
}
|
|
2019
2004
|
if (pattern === 'DD')
|
|
2020
|
-
return roundFloat
|
|
2005
|
+
return roundFloat(degrees, maxDecimals);
|
|
2021
2006
|
const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2022
2007
|
const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2023
2008
|
const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2024
2009
|
const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2025
2010
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2026
|
-
return roundFloat
|
|
2011
|
+
return roundFloat(degrees, maxDecimals);
|
|
2027
2012
|
}
|
|
2028
|
-
function roundFloat
|
|
2013
|
+
function roundFloat(input, maxDecimals) {
|
|
2029
2014
|
if (maxDecimals > 0) {
|
|
2030
2015
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
2031
2016
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2045,7 +2030,7 @@ class LatLongFormatPipe {
|
|
|
2045
2030
|
return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
|
|
2046
2031
|
}
|
|
2047
2032
|
}
|
|
2048
|
-
LatLongFormatPipe.ɵprov =
|
|
2033
|
+
LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2049
2034
|
LatLongFormatPipe.decorators = [
|
|
2050
2035
|
{ type: Pipe, args: [{
|
|
2051
2036
|
name: 'latLongFormat'
|
|
@@ -2057,7 +2042,7 @@ class LatitudeFormatPipe {
|
|
|
2057
2042
|
this.transform = formatLatitude;
|
|
2058
2043
|
}
|
|
2059
2044
|
}
|
|
2060
|
-
LatitudeFormatPipe.ɵprov =
|
|
2045
|
+
LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2061
2046
|
LatitudeFormatPipe.decorators = [
|
|
2062
2047
|
{ type: Pipe, args: [{
|
|
2063
2048
|
name: 'latitudeFormat'
|
|
@@ -2069,7 +2054,7 @@ class LongitudeFormatPipe {
|
|
|
2069
2054
|
this.transform = formatLongitude;
|
|
2070
2055
|
}
|
|
2071
2056
|
}
|
|
2072
|
-
LongitudeFormatPipe.ɵprov =
|
|
2057
|
+
LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2073
2058
|
LongitudeFormatPipe.decorators = [
|
|
2074
2059
|
{ type: Pipe, args: [{
|
|
2075
2060
|
name: 'longitudeFormat'
|
|
@@ -2089,7 +2074,7 @@ class NumberFormatPipe {
|
|
|
2089
2074
|
}
|
|
2090
2075
|
}
|
|
2091
2076
|
}
|
|
2092
|
-
NumberFormatPipe.ɵprov =
|
|
2077
|
+
NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2093
2078
|
NumberFormatPipe.decorators = [
|
|
2094
2079
|
{ type: Pipe, args: [{
|
|
2095
2080
|
name: 'numberFormat'
|
|
@@ -2129,7 +2114,7 @@ class HighlightPipe {
|
|
|
2129
2114
|
}
|
|
2130
2115
|
}
|
|
2131
2116
|
}
|
|
2132
|
-
HighlightPipe.ɵprov =
|
|
2117
|
+
HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2133
2118
|
HighlightPipe.decorators = [
|
|
2134
2119
|
{ type: Pipe, args: [{
|
|
2135
2120
|
name: 'highlight'
|
|
@@ -2194,7 +2179,7 @@ FileSizePipe.decorators = [
|
|
|
2194
2179
|
{ type: Pipe, args: [{ name: 'fileSize' },] }
|
|
2195
2180
|
];
|
|
2196
2181
|
|
|
2197
|
-
const moment$
|
|
2182
|
+
const moment$1 = momentImported;
|
|
2198
2183
|
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2199
2184
|
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2200
2185
|
class DateUtils {
|
|
@@ -2236,32 +2221,32 @@ function fromDateISOString(value) {
|
|
|
2236
2221
|
if (!value || isMoment(value))
|
|
2237
2222
|
return value;
|
|
2238
2223
|
// Parse the input value, as a ISO date time
|
|
2239
|
-
const date = moment$
|
|
2224
|
+
const date = moment$1(value, DATE_ISO_PATTERN);
|
|
2240
2225
|
if (date.isValid())
|
|
2241
2226
|
return date;
|
|
2242
2227
|
// Not valid: trying to convert from unix timestamp
|
|
2243
2228
|
if (typeof value === 'string') {
|
|
2244
2229
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2245
2230
|
if (value.length === 10) {
|
|
2246
|
-
return moment$
|
|
2231
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2247
2232
|
}
|
|
2248
2233
|
else if (value.length === 13) {
|
|
2249
|
-
return moment$
|
|
2234
|
+
return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2250
2235
|
}
|
|
2251
2236
|
}
|
|
2252
2237
|
console.warn('Unable to parse date: ' + value);
|
|
2253
2238
|
return undefined;
|
|
2254
2239
|
}
|
|
2255
2240
|
function fromUnixTimestamp(timeInSec) {
|
|
2256
|
-
return moment$
|
|
2241
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2257
2242
|
}
|
|
2258
2243
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2259
|
-
return moment$
|
|
2244
|
+
return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2260
2245
|
}
|
|
2261
2246
|
function toDuration(value, unit) {
|
|
2262
2247
|
if (!value)
|
|
2263
2248
|
return undefined;
|
|
2264
|
-
const duration = moment$
|
|
2249
|
+
const duration = moment$1.duration(value, unit);
|
|
2265
2250
|
// fix 990+ ms
|
|
2266
2251
|
if (duration.milliseconds() >= 990) {
|
|
2267
2252
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2290,7 +2275,7 @@ class DurationPipe {
|
|
|
2290
2275
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
|
|
2291
2276
|
}
|
|
2292
2277
|
}
|
|
2293
|
-
DurationPipe.ɵprov =
|
|
2278
|
+
DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2294
2279
|
DurationPipe.decorators = [
|
|
2295
2280
|
{ type: Pipe, args: [{
|
|
2296
2281
|
name: 'duration'
|
|
@@ -2311,7 +2296,7 @@ class MathAbsPipe {
|
|
|
2311
2296
|
}
|
|
2312
2297
|
}
|
|
2313
2298
|
}
|
|
2314
|
-
MathAbsPipe.ɵprov =
|
|
2299
|
+
MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2315
2300
|
MathAbsPipe.decorators = [
|
|
2316
2301
|
{ type: Pipe, args: [{
|
|
2317
2302
|
name: 'mathAbs'
|
|
@@ -2323,7 +2308,7 @@ class EvenPipe {
|
|
|
2323
2308
|
return val % 2 === 0;
|
|
2324
2309
|
}
|
|
2325
2310
|
}
|
|
2326
|
-
EvenPipe.ɵprov =
|
|
2311
|
+
EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2327
2312
|
EvenPipe.decorators = [
|
|
2328
2313
|
{ type: Pipe, args: [{
|
|
2329
2314
|
name: 'even'
|
|
@@ -2335,7 +2320,7 @@ class OddPipe {
|
|
|
2335
2320
|
return val % 2 !== 0;
|
|
2336
2321
|
}
|
|
2337
2322
|
}
|
|
2338
|
-
OddPipe.ɵprov =
|
|
2323
|
+
OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2339
2324
|
OddPipe.decorators = [
|
|
2340
2325
|
{ type: Pipe, args: [{
|
|
2341
2326
|
name: 'odd'
|
|
@@ -2443,7 +2428,7 @@ class MapGetPipe {
|
|
|
2443
2428
|
return val[key];
|
|
2444
2429
|
}
|
|
2445
2430
|
}
|
|
2446
|
-
MapGetPipe.ɵprov =
|
|
2431
|
+
MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2447
2432
|
MapGetPipe.decorators = [
|
|
2448
2433
|
{ type: Pipe, args: [{
|
|
2449
2434
|
name: 'mapGet'
|
|
@@ -2457,7 +2442,7 @@ class MapKeysPipe {
|
|
|
2457
2442
|
return Object.keys(map);
|
|
2458
2443
|
}
|
|
2459
2444
|
}
|
|
2460
|
-
MapKeysPipe.ɵprov =
|
|
2445
|
+
MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2461
2446
|
MapKeysPipe.decorators = [
|
|
2462
2447
|
{ type: Pipe, args: [{
|
|
2463
2448
|
name: 'mapKeys'
|
|
@@ -2471,7 +2456,7 @@ class MapValuesPipe {
|
|
|
2471
2456
|
return Object.values(map);
|
|
2472
2457
|
}
|
|
2473
2458
|
}
|
|
2474
|
-
MapValuesPipe.ɵprov =
|
|
2459
|
+
MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2475
2460
|
MapValuesPipe.decorators = [
|
|
2476
2461
|
{ type: Pipe, args: [{
|
|
2477
2462
|
name: 'mapValues'
|
|
@@ -2484,7 +2469,7 @@ class IsNotNilOrBlankPipe {
|
|
|
2484
2469
|
return isNotNilOrBlank(value);
|
|
2485
2470
|
}
|
|
2486
2471
|
}
|
|
2487
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
2472
|
+
IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2488
2473
|
IsNotNilOrBlankPipe.decorators = [
|
|
2489
2474
|
{ type: Pipe, args: [{
|
|
2490
2475
|
name: 'isNotNilOrBlank'
|
|
@@ -2496,7 +2481,7 @@ class IsNilOrBlankPipe {
|
|
|
2496
2481
|
return isNilOrBlank(value);
|
|
2497
2482
|
}
|
|
2498
2483
|
}
|
|
2499
|
-
IsNilOrBlankPipe.ɵprov =
|
|
2484
|
+
IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2500
2485
|
IsNilOrBlankPipe.decorators = [
|
|
2501
2486
|
{ type: Pipe, args: [{
|
|
2502
2487
|
name: 'isNilOrBlank'
|
|
@@ -2508,7 +2493,7 @@ class ToStringPipe {
|
|
|
2508
2493
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
2509
2494
|
}
|
|
2510
2495
|
}
|
|
2511
|
-
ToStringPipe.ɵprov =
|
|
2496
|
+
ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2512
2497
|
ToStringPipe.decorators = [
|
|
2513
2498
|
{ type: Pipe, args: [{
|
|
2514
2499
|
name: 'toString'
|
|
@@ -2520,7 +2505,7 @@ class StrLengthPipe {
|
|
|
2520
2505
|
return value && value.length || 0;
|
|
2521
2506
|
}
|
|
2522
2507
|
}
|
|
2523
|
-
StrLengthPipe.ɵprov =
|
|
2508
|
+
StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2524
2509
|
StrLengthPipe.decorators = [
|
|
2525
2510
|
{ type: Pipe, args: [{
|
|
2526
2511
|
name: 'strLength'
|
|
@@ -2597,7 +2582,7 @@ class TranslateContextService {
|
|
|
2597
2582
|
return translations[keys[keys.length - 1]]; // Return the last keys translation
|
|
2598
2583
|
}
|
|
2599
2584
|
}
|
|
2600
|
-
TranslateContextService.ɵprov =
|
|
2585
|
+
TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
2601
2586
|
TranslateContextService.decorators = [
|
|
2602
2587
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2603
2588
|
];
|
|
@@ -2647,7 +2632,7 @@ class PropertyGetPipe {
|
|
|
2647
2632
|
args && args.defaultValue);
|
|
2648
2633
|
}
|
|
2649
2634
|
}
|
|
2650
|
-
PropertyGetPipe.ɵprov =
|
|
2635
|
+
PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
2651
2636
|
PropertyGetPipe.decorators = [
|
|
2652
2637
|
{ type: Pipe, args: [{
|
|
2653
2638
|
name: 'propertyGet'
|
|
@@ -2672,7 +2657,7 @@ NgInitDirective.propDecorators = {
|
|
|
2672
2657
|
ngInit: [{ type: Output }]
|
|
2673
2658
|
};
|
|
2674
2659
|
|
|
2675
|
-
const moment$
|
|
2660
|
+
const moment$2 = momentImported;
|
|
2676
2661
|
// @dynamic
|
|
2677
2662
|
class SharedValidators {
|
|
2678
2663
|
static getDoubleRegexp(maxDecimals) {
|
|
@@ -2689,7 +2674,7 @@ class SharedValidators {
|
|
|
2689
2674
|
}
|
|
2690
2675
|
static validDate(control) {
|
|
2691
2676
|
const value = control.value;
|
|
2692
|
-
const date = !value || moment$
|
|
2677
|
+
const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
|
|
2693
2678
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
2694
2679
|
return { validDate: true };
|
|
2695
2680
|
}
|
|
@@ -3764,7 +3749,7 @@ class FormErrorTranslator {
|
|
|
3764
3749
|
return errorKey;
|
|
3765
3750
|
}
|
|
3766
3751
|
}
|
|
3767
|
-
FormErrorTranslator.ɵprov =
|
|
3752
|
+
FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
3768
3753
|
FormErrorTranslator.decorators = [
|
|
3769
3754
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
3770
3755
|
];
|
|
@@ -3950,7 +3935,7 @@ const isIpad = (win) => {
|
|
|
3950
3935
|
}
|
|
3951
3936
|
return false;
|
|
3952
3937
|
};
|
|
3953
|
-
const ɵ0$
|
|
3938
|
+
const ɵ0$1 = isIpad;
|
|
3954
3939
|
const isIOS = (win) => testUserAgent(win, /iPhone|iPod/i) || isIpad(win);
|
|
3955
3940
|
const isAndroid = (win) => testUserAgent(win, /android|sink/i);
|
|
3956
3941
|
const isCordova = (win) => !!(win['cordova'] || win['phonegap'] || win['PhoneGap']);
|
|
@@ -4185,9 +4170,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
|
|
|
4185
4170
|
const hour = parseInt(durationParts[0] || '0');
|
|
4186
4171
|
const minute = parseInt(durationParts[1] || '0');
|
|
4187
4172
|
const value = hour + (minute + 0.5) / 60;
|
|
4188
|
-
return roundFloat(value, maxDecimals);
|
|
4173
|
+
return roundFloat$1(value, maxDecimals);
|
|
4189
4174
|
}
|
|
4190
|
-
function roundFloat(input, maxDecimals) {
|
|
4175
|
+
function roundFloat$1(input, maxDecimals) {
|
|
4191
4176
|
if (maxDecimals > 0) {
|
|
4192
4177
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
4193
4178
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -4211,9 +4196,9 @@ const MASKS = {
|
|
|
4211
4196
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
4212
4197
|
}
|
|
4213
4198
|
};
|
|
4214
|
-
const noop$
|
|
4199
|
+
const noop$1 = () => {
|
|
4215
4200
|
};
|
|
4216
|
-
const ɵ0$
|
|
4201
|
+
const ɵ0$2 = noop$1;
|
|
4217
4202
|
class MatLatLongField {
|
|
4218
4203
|
constructor(platform, translate, formBuilder, cd, formGroupDir) {
|
|
4219
4204
|
this.platform = platform;
|
|
@@ -4221,8 +4206,8 @@ class MatLatLongField {
|
|
|
4221
4206
|
this.formBuilder = formBuilder;
|
|
4222
4207
|
this.cd = cd;
|
|
4223
4208
|
this.formGroupDir = formGroupDir;
|
|
4224
|
-
this._onChangeCallback = noop$
|
|
4225
|
-
this._onTouchedCallback = noop$
|
|
4209
|
+
this._onChangeCallback = noop$1;
|
|
4210
|
+
this._onTouchedCallback = noop$1;
|
|
4226
4211
|
this._subscription = new Subscription();
|
|
4227
4212
|
this.disabling = false;
|
|
4228
4213
|
this.writing = false;
|
|
@@ -4559,14 +4544,14 @@ SharedMatLatLongModule.decorators = [
|
|
|
4559
4544
|
},] }
|
|
4560
4545
|
];
|
|
4561
4546
|
|
|
4562
|
-
const DEFAULT_VALUE_ACCESSOR
|
|
4547
|
+
const DEFAULT_VALUE_ACCESSOR = {
|
|
4563
4548
|
provide: NG_VALUE_ACCESSOR,
|
|
4564
4549
|
useExisting: forwardRef(() => MatDate),
|
|
4565
4550
|
multi: true
|
|
4566
4551
|
};
|
|
4567
|
-
const DAY_MASK
|
|
4568
|
-
const noop$
|
|
4569
|
-
const ɵ0$
|
|
4552
|
+
const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4553
|
+
const noop$2 = () => { };
|
|
4554
|
+
const ɵ0$3 = noop$2;
|
|
4570
4555
|
class MatDate {
|
|
4571
4556
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4572
4557
|
this.dateAdapter = dateAdapter;
|
|
@@ -4575,12 +4560,12 @@ class MatDate {
|
|
|
4575
4560
|
this.cd = cd;
|
|
4576
4561
|
this.keyboard = keyboard;
|
|
4577
4562
|
this.formGroupDir = formGroupDir;
|
|
4578
|
-
this._onChangeCallback = noop$
|
|
4579
|
-
this._onTouchedCallback = noop$
|
|
4563
|
+
this._onChangeCallback = noop$2;
|
|
4564
|
+
this._onTouchedCallback = noop$2;
|
|
4580
4565
|
this._subscription = new Subscription();
|
|
4581
4566
|
this.writing = true;
|
|
4582
4567
|
this.disabling = false;
|
|
4583
|
-
this.dayMask = DAY_MASK
|
|
4568
|
+
this.dayMask = DAY_MASK;
|
|
4584
4569
|
this.disabled = false;
|
|
4585
4570
|
this.floatLabel = 'auto';
|
|
4586
4571
|
this.readonly = false;
|
|
@@ -4817,7 +4802,7 @@ MatDate.decorators = [
|
|
|
4817
4802
|
selector: 'mat-date-field',
|
|
4818
4803
|
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",
|
|
4819
4804
|
providers: [
|
|
4820
|
-
DEFAULT_VALUE_ACCESSOR
|
|
4805
|
+
DEFAULT_VALUE_ACCESSOR,
|
|
4821
4806
|
],
|
|
4822
4807
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4823
4808
|
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%}"]
|
|
@@ -4850,17 +4835,17 @@ MatDate.propDecorators = {
|
|
|
4850
4835
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
4851
4836
|
};
|
|
4852
4837
|
|
|
4853
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4838
|
+
const DEFAULT_VALUE_ACCESSOR$1 = {
|
|
4854
4839
|
provide: NG_VALUE_ACCESSOR,
|
|
4855
4840
|
useExisting: forwardRef(() => MatDateTime),
|
|
4856
4841
|
multi: true
|
|
4857
4842
|
};
|
|
4858
4843
|
const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4859
4844
|
const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
4860
|
-
const HOUR_MASK
|
|
4861
|
-
const noop$
|
|
4845
|
+
const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4846
|
+
const noop$3 = () => {
|
|
4862
4847
|
};
|
|
4863
|
-
const ɵ0$
|
|
4848
|
+
const ɵ0$4 = noop$3;
|
|
4864
4849
|
class MatDateTime {
|
|
4865
4850
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4866
4851
|
this.platform = platform;
|
|
@@ -4870,14 +4855,14 @@ class MatDateTime {
|
|
|
4870
4855
|
this.cd = cd;
|
|
4871
4856
|
this.keyboard = keyboard;
|
|
4872
4857
|
this.formGroupDir = formGroupDir;
|
|
4873
|
-
this._onChangeCallback = noop$
|
|
4874
|
-
this._onTouchedCallback = noop$
|
|
4858
|
+
this._onChangeCallback = noop$3;
|
|
4859
|
+
this._onTouchedCallback = noop$3;
|
|
4875
4860
|
this._subscription = new Subscription();
|
|
4876
4861
|
this.writing = true;
|
|
4877
4862
|
this.disabling = false;
|
|
4878
4863
|
this._readonly = false;
|
|
4879
4864
|
this.dayMask = DAY_MASK$1;
|
|
4880
|
-
this.hourMask = HOUR_MASK
|
|
4865
|
+
this.hourMask = HOUR_MASK;
|
|
4881
4866
|
this.floatLabel = 'auto';
|
|
4882
4867
|
this.compact = false;
|
|
4883
4868
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5189,7 +5174,7 @@ MatDateTime.decorators = [
|
|
|
5189
5174
|
selector: 'mat-date-time-field',
|
|
5190
5175
|
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",
|
|
5191
5176
|
providers: [
|
|
5192
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5177
|
+
DEFAULT_VALUE_ACCESSOR$1,
|
|
5193
5178
|
],
|
|
5194
5179
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5195
5180
|
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%}"]
|
|
@@ -5223,15 +5208,15 @@ MatDateTime.propDecorators = {
|
|
|
5223
5208
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
5224
5209
|
};
|
|
5225
5210
|
|
|
5226
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5211
|
+
const DEFAULT_VALUE_ACCESSOR$2 = {
|
|
5227
5212
|
provide: NG_VALUE_ACCESSOR,
|
|
5228
5213
|
useExisting: forwardRef(() => MatDateShort),
|
|
5229
5214
|
multi: true
|
|
5230
5215
|
};
|
|
5231
|
-
const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
5216
|
+
const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
|
|
5232
5217
|
const noop$4 = () => {
|
|
5233
5218
|
};
|
|
5234
|
-
const ɵ0$
|
|
5219
|
+
const ɵ0$5 = noop$4;
|
|
5235
5220
|
class MatDateShort {
|
|
5236
5221
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5237
5222
|
this.dateAdapter = dateAdapter;
|
|
@@ -5244,7 +5229,7 @@ class MatDateShort {
|
|
|
5244
5229
|
this._onTouchedCallback = noop$4;
|
|
5245
5230
|
this.writing = true;
|
|
5246
5231
|
this.disabling = false;
|
|
5247
|
-
this.dayMask = DAY_MASK;
|
|
5232
|
+
this.dayMask = DAY_MASK$2;
|
|
5248
5233
|
this.disabled = false;
|
|
5249
5234
|
this.floatLabel = 'auto';
|
|
5250
5235
|
this.readonly = false;
|
|
@@ -5489,7 +5474,7 @@ MatDateShort.decorators = [
|
|
|
5489
5474
|
selector: 'mat-date-short-field',
|
|
5490
5475
|
template: "<!-- readonly -->\n<mat-form-field *ngIf=\"readonly else writable\">\n <input matInput hidden type=\"text\" readonly=\"true\" [formControl]=\"formControl\">\n <ion-text>{{formControl.value|dateFormat: {pattern: displayPattern} }}</ion-text>\n</mat-form-field>\n\n<ng-template #writable>\n <mat-form-field [floatLabel]=\"floatLabel\">\n\n <mat-label>{{placeholder}}</mat-label>\n\n <div matPrefix><ng-content select=\"[matPrefix]\"></ng-content></div>\n\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"!mobile\"\n [formControl]=\"dayControl\"\n [textMask]=\"{mask: dayMask, keepCharPositions: true, placeholderChar: placeholderChar}\"\n [placeholder]=\"'COMMON.DATE_YEAR_PLACEHOLDER'|translate\"\n (blur)=\"checkIfTouched()\"\n (keyup.arrowdown)=\"openDatePicker($event, datePicker1)\"\n (keyup.escape)=\"preventEvent($event)\"\n (click)=\"matInput.select()\"\n [required]=\"required\"\n [tabindex]=\"tabindex\">\n <input matInput #matInput autocomplete=\"off\" type=\"text\"\n *ngIf=\"mobile\"\n [formControl]=\"dayControl\"\n (click)=\"openDatePickerIfMobile($event, datePicker1)\"\n [required]=\"required\"\n [tabindex]=\"tabindex\"\n readonly>\n\n <!-- Hide the final control -->\n <input matInput type=\"text\"\n [formControl]=\"formControl\"\n hidden\n [matDatepicker]=\"datePicker1\"\n (dateChange)=\"onDatePickerChange($event)\">\n\n\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n (click)=\"openDatePicker($event, datePicker1)\"\n [disabled]=\"formControl.disabled\">\n <div *ngIf=\"mobile; then iconDate; else iconDesktop\"></div>\n </button>\n <button matSuffix mat-icon-button tabindex=\"-1\"\n type=\"button\"\n *ngIf=\"clearable\"\n (click)=\"writeValue(null)\"\n [hidden]=\"formControl.disabled || !formControl.value\">\n <mat-icon>close</mat-icon>\n </button>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <mat-error *ngIf=\"formControl.hasError('validDate')\" translate>ERROR.FIELD_NOT_VALID_DATE</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateIsAfter')\">{{'ERROR.FIELD_NOT_VALID_DATE_AFTER' | translate: formControl.errors.dateIsAfter }}</mat-error>\n <mat-error *ngIf=\"formControl.hasError('dateRange')\" translate>ERROR.FIELD_NOT_VALID_DATE_RANGE</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMaxDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MAX_DURATION</mat-error>\n <mat-error *ngIf=\"!formControl.hasError('dateRange') && formControl.hasError('dateMinDuration')\" translate>ERROR.FIELD_NOT_VALID_DATE_MIN_DURATION</mat-error>\n <mat-error *ngIf=\"formControl.hasError('msg')\">{{formControl.errors.msg}}</mat-error>\n <ng-content select=\"mat-error\"></ng-content>\n </mat-form-field>\n\n <mat-datepicker #datePicker1\n startView=\"multi-year\"\n [touchUi]=\"mobile\"\n [disabled]=\"formControl.disabled\"\n (yearSelected)=\"closeDatePicker($event, datePicker1)\"\n [startAt]=\"startDate\"></mat-datepicker>\n\n <ng-template #iconDesktop>\n <mat-icon>keyboard_arrow_down</mat-icon>\n </ng-template>\n\n <ng-template #iconDate>\n <mat-icon>date_range</mat-icon>\n </ng-template>\n\n</ng-template>\n",
|
|
5491
5476
|
providers: [
|
|
5492
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5477
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
5493
5478
|
],
|
|
5494
5479
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5495
5480
|
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%}"]
|
|
@@ -5557,16 +5542,16 @@ SharedMatDateTimeModule.decorators = [
|
|
|
5557
5542
|
},] }
|
|
5558
5543
|
];
|
|
5559
5544
|
|
|
5560
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5545
|
+
const DEFAULT_VALUE_ACCESSOR$3 = {
|
|
5561
5546
|
provide: NG_VALUE_ACCESSOR,
|
|
5562
5547
|
useExisting: forwardRef(() => MatDuration),
|
|
5563
5548
|
multi: true
|
|
5564
5549
|
};
|
|
5565
5550
|
const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
5566
|
-
const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5567
|
-
const noop$
|
|
5551
|
+
const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5552
|
+
const noop$5 = () => {
|
|
5568
5553
|
};
|
|
5569
|
-
const ɵ0$6 = noop$
|
|
5554
|
+
const ɵ0$6 = noop$5;
|
|
5570
5555
|
class MatDuration {
|
|
5571
5556
|
constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
5572
5557
|
this.dateAdapter = dateAdapter;
|
|
@@ -5575,11 +5560,11 @@ class MatDuration {
|
|
|
5575
5560
|
this.cd = cd;
|
|
5576
5561
|
this.formGroupDir = formGroupDir;
|
|
5577
5562
|
this._subscription = new Subscription();
|
|
5578
|
-
this._onChangeCallback = noop$
|
|
5579
|
-
this._onTouchedCallback = noop$
|
|
5563
|
+
this._onChangeCallback = noop$5;
|
|
5564
|
+
this._onTouchedCallback = noop$5;
|
|
5580
5565
|
this.writing = true;
|
|
5581
5566
|
this.disabling = false;
|
|
5582
|
-
this.hourMask = HOUR_MASK;
|
|
5567
|
+
this.hourMask = HOUR_MASK$1;
|
|
5583
5568
|
this.disabled = false;
|
|
5584
5569
|
this.floatLabel = 'auto';
|
|
5585
5570
|
this.readonly = false;
|
|
@@ -5759,7 +5744,7 @@ MatDuration.decorators = [
|
|
|
5759
5744
|
selector: 'mat-duration-field',
|
|
5760
5745
|
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",
|
|
5761
5746
|
providers: [
|
|
5762
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5747
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
5763
5748
|
],
|
|
5764
5749
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5765
5750
|
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%}"]
|
|
@@ -5816,22 +5801,22 @@ SharedMatDurationModule.decorators = [
|
|
|
5816
5801
|
},] }
|
|
5817
5802
|
];
|
|
5818
5803
|
|
|
5819
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5804
|
+
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
5820
5805
|
provide: NG_VALUE_ACCESSOR,
|
|
5821
5806
|
useExisting: forwardRef(() => MatBooleanField),
|
|
5822
5807
|
multi: true
|
|
5823
5808
|
};
|
|
5824
|
-
const noop$
|
|
5809
|
+
const noop$6 = () => {
|
|
5825
5810
|
};
|
|
5826
|
-
const ɵ0$
|
|
5811
|
+
const ɵ0$7 = noop$6;
|
|
5827
5812
|
class MatBooleanField {
|
|
5828
5813
|
constructor(translate, formBuilder, cd, formGroupDir) {
|
|
5829
5814
|
this.translate = translate;
|
|
5830
5815
|
this.formBuilder = formBuilder;
|
|
5831
5816
|
this.cd = cd;
|
|
5832
5817
|
this.formGroupDir = formGroupDir;
|
|
5833
|
-
this._onChangeCallback = noop$
|
|
5834
|
-
this._onTouchedCallback = noop$
|
|
5818
|
+
this._onChangeCallback = noop$6;
|
|
5819
|
+
this._onTouchedCallback = noop$6;
|
|
5835
5820
|
this._writing = false;
|
|
5836
5821
|
this.showRadio = false;
|
|
5837
5822
|
this.disabled = false;
|
|
@@ -5994,7 +5979,7 @@ MatBooleanField.decorators = [
|
|
|
5994
5979
|
selector: 'mat-boolean-field',
|
|
5995
5980
|
template: "<mat-form-field *ngIf=\"readonly; else writable\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-form-field-disabled {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput hidden type=\"text\" readonly\n [placeholder]=\"placeholder\"\n [formControl]=\"formControl\">\n <ion-text>{{(formControl.value == null && 'COMMON.EMPTY_OPTION' || (formControl.value === true && yesLabel) || noLabel) | translate }}</ion-text>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n</mat-form-field>\n\n<ng-template #writable>\n <ng-container [ngSwitch]=\"style\">\n\n <!-- Radio -->\n <mat-form-field *ngSwitchCase=\"'radio'\"\n [floatLabel]=\"showRadio && (!floatLabel || floatLabel === 'auto') ? 'always': floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-radio {{classList}}\">\n <mat-label *ngIf=\"placeholder && floatLabel!=='never'\">\n {{placeholder}}\n <span [hidden]=\"showRadio\">({{yesLabel|translate}}/{{'COMMON.NO'|translate}})</span>\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #fakeInput type=\"text\" readonly=\"true\"\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <!-- radio button -->\n <mat-radio-group [hidden]=\"!showRadio\"\n [formControl]=\"formControl\"\n (change)=\"onRadioValueChanged($event)\">\n <mat-radio-button #yesButton [value]=\"true\">\n <span>{{yesLabel|translate}}</span>\n </mat-radio-button> \n <mat-radio-button #noButton [value]=\"false\">\n <span>{{noLabel|translate}}</span>\n </mat-radio-button>\n </mat-radio-group>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Checkbox -->\n <mat-form-field *ngSwitchCase=\"'checkbox'\"\n [floatLabel]=\"floatLabel\"\n class=\"mat-boolean-field mat-boolean-field-checkbox {{classList}}\">\n <mat-label *ngIf=\"placeholder && !showRadio\">\n {{placeholder}}\n </mat-label>\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput #matInput\n [formControl]=\"formControl\"\n (focus)=\"_onFocusFakeInput($event)\"\n [required]=\"required\"\n [class.cdk-visually-hidden]=\"showRadio\"\n [tabindex]=\"tabindex\">\n\n <ion-label> </ion-label>\n\n <!-- checkbox, when compact -->\n <mat-checkbox #checkboxButton\n [formControl]=\"formControl\"\n (change)=\"onCheckboxValueChanged($event)\"\n [indeterminate]=\"value===undefined\"\n [hidden]=\"!showRadio\"\n [tabindex]=\"tabindex\">\n </mat-checkbox>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n </mat-form-field>\n\n <!-- Buttons -->\n <mat-form-field *ngSwitchCase=\"'button'\"\n [floatLabel]=\"floatLabel === 'never' ? 'never' : 'always'\"\n class=\"mat-boolean-field mat-boolean-field-button {{classList}}\">\n <div matPrefix>\n <ng-container *ngTemplateOutlet=\"matPrefixTemplate\"></ng-container>\n </div>\n <input matInput type=\"text\" hidden\n [formControl]=\"formControl\"\n [placeholder]=\"placeholder\"\n [required]=\"required\">\n <div class=\"mat-form-field-buttons\"\n [style.--buttons-col-count]=\"buttonsColCount\"\n *ngIf=\"!formControl.disabled; else disabledLabel\">\n <!-- yes -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex\"\n (click)=\"writeValue(true, $event)\"\n (keyup.enter)=\"writeValue(true, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === true) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && yesIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{yesLabel|translate}}\n </ion-button>\n\n <!-- No button -->\n <ion-button class=\"mat-form-field-button\"\n [tabindex]=\"_tabindex !== undefined ? (_tabindex + 1) : undefined\"\n (click)=\"writeValue(false, $event)\"\n (keyup.enter)=\"writeValue(false, $event)\"\n [color]=\"_value == null ? 'tertiary' : (_value === false) ? 'accent' : 'light'\">\n <ion-icon *ngIf=\"showButtonIcons && noIcon; let icon\" slot=\"start\" [name]=\"icon\"></ion-icon>\n {{noLabel|translate}}\n </ion-button>\n </div>\n <ng-template #disabledLabel>\n <ion-label><i translate>COMMON.EMPTY_OPTION</i></ion-label>\n </ng-template>\n\n <mat-error *ngIf=\"formControl.hasError('required')\" translate>ERROR.FIELD_REQUIRED</mat-error>\n <div matSuffix>\n <ng-container *ngTemplateOutlet=\"matSuffixTemplate\"></ng-container>\n </div>\n\n </mat-form-field>\n </ng-container>\n\n</ng-template>\n\n\n<ng-template #matPrefixTemplate>\n <ng-content select=\"[matPrefix]\"></ng-content>\n</ng-template>\n<ng-template #matSuffixTemplate>\n <ng-content select=\"[matSuffix]\"></ng-content>\n</ng-template>\n",
|
|
5996
5981
|
providers: [
|
|
5997
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5982
|
+
DEFAULT_VALUE_ACCESSOR$4
|
|
5998
5983
|
],
|
|
5999
5984
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6000
5985
|
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}"]
|
|
@@ -6240,7 +6225,7 @@ class MatNumpadDomService {
|
|
|
6240
6225
|
this.appRef.detachView(this.componentRef.hostView);
|
|
6241
6226
|
}
|
|
6242
6227
|
}
|
|
6243
|
-
MatNumpadDomService.ɵprov =
|
|
6228
|
+
MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
6244
6229
|
MatNumpadDomService.decorators = [
|
|
6245
6230
|
{ type: Injectable, args: [{
|
|
6246
6231
|
providedIn: 'root'
|
|
@@ -6604,7 +6589,7 @@ SharedMatNumpadModule.decorators = [
|
|
|
6604
6589
|
},] }
|
|
6605
6590
|
];
|
|
6606
6591
|
|
|
6607
|
-
const DEFAULT_VALUE_ACCESSOR = {
|
|
6592
|
+
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
6608
6593
|
provide: NG_VALUE_ACCESSOR,
|
|
6609
6594
|
useExisting: forwardRef(() => MatSwipeField),
|
|
6610
6595
|
multi: true
|
|
@@ -6867,7 +6852,7 @@ MatSwipeField.decorators = [
|
|
|
6867
6852
|
{ type: Component, args: [{
|
|
6868
6853
|
selector: 'mat-swipe-field',
|
|
6869
6854
|
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",
|
|
6870
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
6855
|
+
providers: [DEFAULT_VALUE_ACCESSOR$5],
|
|
6871
6856
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6872
6857
|
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}"]
|
|
6873
6858
|
},] }
|
|
@@ -6925,14 +6910,14 @@ SharedMatSwipeModule.decorators = [
|
|
|
6925
6910
|
},] }
|
|
6926
6911
|
];
|
|
6927
6912
|
|
|
6928
|
-
const noop$
|
|
6929
|
-
const ɵ0$
|
|
6913
|
+
const noop$7 = () => { };
|
|
6914
|
+
const ɵ0$8 = noop$7;
|
|
6930
6915
|
class MatChipsField {
|
|
6931
6916
|
constructor(cd, formGroupDir) {
|
|
6932
6917
|
this.cd = cd;
|
|
6933
6918
|
this.formGroupDir = formGroupDir;
|
|
6934
|
-
this._onChangeCallback = noop$
|
|
6935
|
-
this._onTouchedCallback = noop$
|
|
6919
|
+
this._onChangeCallback = noop$7;
|
|
6920
|
+
this._onTouchedCallback = noop$7;
|
|
6936
6921
|
this.logPrefix = '[mat-chips] ';
|
|
6937
6922
|
this.formControlName = null;
|
|
6938
6923
|
this.required = false;
|
|
@@ -7801,7 +7786,7 @@ class ProgressBarService {
|
|
|
7801
7786
|
}
|
|
7802
7787
|
}
|
|
7803
7788
|
}
|
|
7804
|
-
ProgressBarService.ɵprov =
|
|
7789
|
+
ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
7805
7790
|
ProgressBarService.decorators = [
|
|
7806
7791
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7807
7792
|
];
|
|
@@ -7845,7 +7830,7 @@ class AppGestureConfig extends HammerGestureConfig {
|
|
|
7845
7830
|
return mc;
|
|
7846
7831
|
}
|
|
7847
7832
|
}
|
|
7848
|
-
AppGestureConfig.ɵprov =
|
|
7833
|
+
AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
7849
7834
|
AppGestureConfig.decorators = [
|
|
7850
7835
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7851
7836
|
];
|
|
@@ -8070,7 +8055,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
|
|
|
8070
8055
|
this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
|
|
8071
8056
|
}
|
|
8072
8057
|
}
|
|
8073
|
-
MatPaginatorI18n.ɵprov =
|
|
8058
|
+
MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
8074
8059
|
MatPaginatorI18n.decorators = [
|
|
8075
8060
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8076
8061
|
];
|
|
@@ -8160,17 +8145,17 @@ function getColorContrast(color, bw) {
|
|
|
8160
8145
|
return rgbArrayToHex(rgb.map(v => 255 - v));
|
|
8161
8146
|
}
|
|
8162
8147
|
|
|
8163
|
-
const noop = () => {
|
|
8148
|
+
const noop$8 = () => {
|
|
8164
8149
|
};
|
|
8165
|
-
const ɵ0$
|
|
8150
|
+
const ɵ0$9 = noop$8;
|
|
8166
8151
|
class AppFormField {
|
|
8167
8152
|
constructor(translate, cd, injector, formGroupDir) {
|
|
8168
8153
|
this.translate = translate;
|
|
8169
8154
|
this.cd = cd;
|
|
8170
8155
|
this.injector = injector;
|
|
8171
8156
|
this.formGroupDir = formGroupDir;
|
|
8172
|
-
this._onChangeCallback = noop;
|
|
8173
|
-
this._onTouchedCallback = noop;
|
|
8157
|
+
this._onChangeCallback = noop$8;
|
|
8158
|
+
this._onTouchedCallback = noop$8;
|
|
8174
8159
|
this.readonly = false;
|
|
8175
8160
|
this.compact = false;
|
|
8176
8161
|
this.floatLabel = 'auto';
|
|
@@ -8606,14 +8591,14 @@ class AudioProvider extends StartableService {
|
|
|
8606
8591
|
});
|
|
8607
8592
|
}
|
|
8608
8593
|
}
|
|
8609
|
-
AudioProvider.ɵprov =
|
|
8594
|
+
AudioProvider.ɵprov = ɵɵdefineInjectable({ factory: function AudioProvider_Factory() { return new AudioProvider(ɵɵinject(Platform), ɵɵinject(NativeAudio, 8), ɵɵinject(Vibration, 8), ɵɵinject(AudioManagement$1, 8)); }, token: AudioProvider, providedIn: "root" });
|
|
8610
8595
|
AudioProvider.decorators = [
|
|
8611
8596
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8612
8597
|
];
|
|
8613
8598
|
AudioProvider.ctorParameters = () => [
|
|
8614
8599
|
{ type: Platform },
|
|
8615
|
-
{ type: NativeAudio, decorators: [{ type: Optional }] },
|
|
8616
|
-
{ type: Vibration, decorators: [{ type: Optional }] },
|
|
8600
|
+
{ type: NativeAudio$1, decorators: [{ type: Optional }] },
|
|
8601
|
+
{ type: Vibration$1, decorators: [{ type: Optional }] },
|
|
8617
8602
|
{ type: AudioManagement, decorators: [{ type: Optional }] }
|
|
8618
8603
|
];
|
|
8619
8604
|
|
|
@@ -8695,7 +8680,7 @@ class Hotkeys {
|
|
|
8695
8680
|
});
|
|
8696
8681
|
}
|
|
8697
8682
|
}
|
|
8698
|
-
Hotkeys.ɵprov =
|
|
8683
|
+
Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
8699
8684
|
Hotkeys.decorators = [
|
|
8700
8685
|
{ type: Injectable, args: [{
|
|
8701
8686
|
providedIn: 'root'
|
|
@@ -8869,7 +8854,7 @@ class Base64ImageReader {
|
|
|
8869
8854
|
}
|
|
8870
8855
|
}
|
|
8871
8856
|
|
|
8872
|
-
const uuidv4
|
|
8857
|
+
const uuidv4 = uuidv4Imported;
|
|
8873
8858
|
class FileService {
|
|
8874
8859
|
constructor(platform,
|
|
8875
8860
|
//private transfer: FileTransfer,
|
|
@@ -8906,7 +8891,7 @@ class FileService {
|
|
|
8906
8891
|
const lastSlashIndex = source.lastIndexOf('/');
|
|
8907
8892
|
if (lastSlashIndex === -1)
|
|
8908
8893
|
throw new Error('Invalid URL: ' + source);
|
|
8909
|
-
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4
|
|
8894
|
+
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
8910
8895
|
// Download into the file system
|
|
8911
8896
|
if (responseType === 'file' && this.canUseFileSystem) {
|
|
8912
8897
|
console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
|
|
@@ -8962,7 +8947,7 @@ class FileService {
|
|
|
8962
8947
|
this._started = true;
|
|
8963
8948
|
}
|
|
8964
8949
|
}
|
|
8965
|
-
FileService.ɵprov =
|
|
8950
|
+
FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
8966
8951
|
FileService.decorators = [
|
|
8967
8952
|
{ type: Injectable, args: [{
|
|
8968
8953
|
providedIn: 'root',
|
|
@@ -9128,7 +9113,7 @@ class Base58 {
|
|
|
9128
9113
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
9129
9114
|
|
|
9130
9115
|
const scrypt = require('scrypt-async');
|
|
9131
|
-
const sha256
|
|
9116
|
+
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
9132
9117
|
const sha512 = require('hash.js/lib/hash/sha/512');
|
|
9133
9118
|
const nacl = {
|
|
9134
9119
|
sign,
|
|
@@ -9232,7 +9217,7 @@ class CryptoService {
|
|
|
9232
9217
|
* Hash (using SHA256) a message
|
|
9233
9218
|
*/
|
|
9234
9219
|
sha256(message) {
|
|
9235
|
-
return sha256
|
|
9220
|
+
return sha256().update(message).digest('hex');
|
|
9236
9221
|
}
|
|
9237
9222
|
/**
|
|
9238
9223
|
* Hash (using SHA512) a message
|
|
@@ -9245,7 +9230,7 @@ class CryptoService {
|
|
|
9245
9230
|
return nacl.util.encodeBase64(m);
|
|
9246
9231
|
}
|
|
9247
9232
|
}
|
|
9248
|
-
CryptoService.ɵprov =
|
|
9233
|
+
CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
9249
9234
|
CryptoService.decorators = [
|
|
9250
9235
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
9251
9236
|
];
|
|
@@ -9410,7 +9395,13 @@ class EntityUtils {
|
|
|
9410
9395
|
static searchTextFilter(searchAttribute, searchText) {
|
|
9411
9396
|
if (isNilOrBlank(searchAttribute) || isNilOrBlank(searchText))
|
|
9412
9397
|
return undefined; // filter not need
|
|
9413
|
-
const searchRegexp = searchText
|
|
9398
|
+
const searchRegexp = searchText
|
|
9399
|
+
// Escape special characters
|
|
9400
|
+
.replace(/[-\/\\^$+.()|[\]{}]/g, '\\$&')
|
|
9401
|
+
// Interpret * as any text
|
|
9402
|
+
.replace(/[*]+/g, '.*')
|
|
9403
|
+
// Interpret ? as one character
|
|
9404
|
+
.replace(/[?]/g, '.');
|
|
9414
9405
|
if (searchRegexp === '.*')
|
|
9415
9406
|
return undefined; // filter not need
|
|
9416
9407
|
const flags = 'i'; // don't use global regex search
|
|
@@ -10486,7 +10477,7 @@ class LocalSettingsService extends StartableService {
|
|
|
10486
10477
|
return page;
|
|
10487
10478
|
}
|
|
10488
10479
|
}
|
|
10489
|
-
LocalSettingsService.ɵprov =
|
|
10480
|
+
LocalSettingsService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsService_Factory() { return new LocalSettingsService(ɵɵinject(TranslateService), ɵɵinject(Platform), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_SETTINGS, 8), ɵɵinject(APP_LOCAL_SETTINGS_OPTIONS, 8)); }, token: LocalSettingsService, providedIn: "root" });
|
|
10490
10481
|
LocalSettingsService.decorators = [
|
|
10491
10482
|
{ type: Injectable, args: [{
|
|
10492
10483
|
providedIn: 'root',
|
|
@@ -11144,7 +11135,7 @@ class NetworkService extends StartableService {
|
|
|
11144
11135
|
});
|
|
11145
11136
|
}
|
|
11146
11137
|
}
|
|
11147
|
-
NetworkService.ɵprov =
|
|
11138
|
+
NetworkService.ɵprov = ɵɵdefineInjectable({ factory: function NetworkService_Factory() { return new NetworkService(ɵɵinject(DOCUMENT), ɵɵinject(Platform), ɵɵinject(ModalController), ɵɵinject(CryptoService), ɵɵinject(Storage), ɵɵinject(LocalSettingsService), ɵɵinject(CacheService), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT), ɵɵinject(Network, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8)); }, token: NetworkService, providedIn: "root" });
|
|
11148
11139
|
NetworkService.decorators = [
|
|
11149
11140
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
11150
11141
|
];
|
|
@@ -11155,16 +11146,16 @@ NetworkService.ctorParameters = () => [
|
|
|
11155
11146
|
{ type: CryptoService },
|
|
11156
11147
|
{ type: Storage },
|
|
11157
11148
|
{ type: LocalSettingsService },
|
|
11158
|
-
{ type: CacheService },
|
|
11149
|
+
{ type: CacheService$1 },
|
|
11159
11150
|
{ type: HttpClient },
|
|
11160
11151
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
11161
|
-
{ type: Network, decorators: [{ type: Optional }] },
|
|
11162
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
11152
|
+
{ type: Network$1, decorators: [{ type: Optional }] },
|
|
11153
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
11163
11154
|
{ type: TranslateService, decorators: [{ type: Optional }] },
|
|
11164
11155
|
{ type: ToastController, decorators: [{ type: Optional }] }
|
|
11165
11156
|
];
|
|
11166
11157
|
|
|
11167
|
-
const ErrorCodes
|
|
11158
|
+
const ErrorCodes = {
|
|
11168
11159
|
UNKNOWN_ERROR: 0,
|
|
11169
11160
|
LOAD_ACCOUNT_ERROR: 1,
|
|
11170
11161
|
BAD_PASSWORD: 2,
|
|
@@ -11516,7 +11507,7 @@ class EntityStore {
|
|
|
11516
11507
|
}
|
|
11517
11508
|
catch (err) {
|
|
11518
11509
|
console.error(err);
|
|
11519
|
-
throw { code: ErrorCodes
|
|
11510
|
+
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
11520
11511
|
}
|
|
11521
11512
|
}
|
|
11522
11513
|
// Emit update event
|
|
@@ -12090,7 +12081,7 @@ class EntitiesStorage extends StartableService {
|
|
|
12090
12081
|
}
|
|
12091
12082
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
12092
12083
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
12093
|
-
EntitiesStorage.ɵprov =
|
|
12084
|
+
EntitiesStorage.ɵprov = ɵɵdefineInjectable({ factory: function EntitiesStorage_Factory() { return new EntitiesStorage(ɵɵinject(Platform), ɵɵinject(ProgressBarService), ɵɵinject(Storage), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_LOCAL_STORAGE_TYPE_POLICIES, 8)); }, token: EntitiesStorage, providedIn: "root" });
|
|
12094
12085
|
EntitiesStorage.decorators = [
|
|
12095
12086
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
12096
12087
|
];
|
|
@@ -12227,10 +12218,10 @@ function referentialToString(obj, properties) {
|
|
|
12227
12218
|
function referentialsToString(values, properties, separator) {
|
|
12228
12219
|
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
12229
12220
|
}
|
|
12230
|
-
const ɵ0$
|
|
12221
|
+
const ɵ0$a = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
12231
12222
|
const StatusList = Object.freeze([
|
|
12232
12223
|
{
|
|
12233
|
-
id: ɵ0$
|
|
12224
|
+
id: ɵ0$a,
|
|
12234
12225
|
icon: 'checkmark',
|
|
12235
12226
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
12236
12227
|
},
|
|
@@ -12505,7 +12496,7 @@ function accountToString(data) {
|
|
|
12505
12496
|
(data.lastName || '')) || '';
|
|
12506
12497
|
}
|
|
12507
12498
|
|
|
12508
|
-
const uuidv4 = uuidv4Imported;
|
|
12499
|
+
const uuidv4$1 = uuidv4Imported;
|
|
12509
12500
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
12510
12501
|
const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
12511
12502
|
/**
|
|
@@ -12549,7 +12540,7 @@ function createTrackerLink(opts) {
|
|
|
12549
12540
|
// Skip if not tracked
|
|
12550
12541
|
if (!context || !context.tracked)
|
|
12551
12542
|
return forward(operation);
|
|
12552
|
-
const id = context.serializationKey || uuidv4();
|
|
12543
|
+
const id = context.serializationKey || uuidv4$1();
|
|
12553
12544
|
console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
|
|
12554
12545
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
12555
12546
|
const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -13212,7 +13203,7 @@ class GraphqlService extends StartableService {
|
|
|
13212
13203
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
13213
13204
|
|| this.toAppError(err.networkError)
|
|
13214
13205
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
13215
|
-
|| this.createAppErrorByCode(ErrorCodes
|
|
13206
|
+
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
13216
13207
|
// If graphQL: try to convert the first error found
|
|
13217
13208
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
13218
13209
|
|| this.toAppError(err)
|
|
@@ -13220,7 +13211,7 @@ class GraphqlService extends StartableService {
|
|
|
13220
13211
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
13221
13212
|
|| err;
|
|
13222
13213
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
13223
|
-
if (error && error.code === ErrorCodes
|
|
13214
|
+
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
13224
13215
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
13225
13216
|
this.onNetworkError.next(error);
|
|
13226
13217
|
}
|
|
@@ -13256,7 +13247,7 @@ class GraphqlService extends StartableService {
|
|
|
13256
13247
|
return 'ERROR.UNAUTHORIZED';
|
|
13257
13248
|
case ServerErrorCodes.FORBIDDEN:
|
|
13258
13249
|
return 'ERROR.FORBIDDEN';
|
|
13259
|
-
case ErrorCodes
|
|
13250
|
+
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
13260
13251
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
13261
13252
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
13262
13253
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -13287,7 +13278,7 @@ class GraphqlService extends StartableService {
|
|
|
13287
13278
|
return undefined;
|
|
13288
13279
|
}
|
|
13289
13280
|
}
|
|
13290
|
-
GraphqlService.ɵprov =
|
|
13281
|
+
GraphqlService.ɵprov = ɵɵdefineInjectable({ factory: function GraphqlService_Factory() { return new GraphqlService(ɵɵinject(Platform), ɵɵinject(Apollo), ɵɵinject(HttpLink), ɵɵinject(NetworkService), ɵɵinject(Storage), ɵɵinject(CryptoService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_GRAPHQL_TYPE_POLICIES, 8)); }, token: GraphqlService, providedIn: "root" });
|
|
13291
13282
|
GraphqlService.decorators = [
|
|
13292
13283
|
{ type: Injectable, args: [{
|
|
13293
13284
|
providedIn: 'root'
|
|
@@ -13304,7 +13295,7 @@ GraphqlService.ctorParameters = () => [
|
|
|
13304
13295
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
13305
13296
|
];
|
|
13306
13297
|
|
|
13307
|
-
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
13298
|
+
const sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
13308
13299
|
class BaseGraphqlServiceOptions {
|
|
13309
13300
|
}
|
|
13310
13301
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
@@ -13455,8 +13446,8 @@ class BaseGraphqlService extends StartableService {
|
|
|
13455
13446
|
}
|
|
13456
13447
|
/* -- protected methods -- */
|
|
13457
13448
|
computeMutableWatchQueryId(opts) {
|
|
13458
|
-
const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13459
|
-
const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
13449
|
+
const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13450
|
+
const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
13460
13451
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
13461
13452
|
}
|
|
13462
13453
|
findMutableWatchQueries(opts) {
|
|
@@ -13522,7 +13513,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
|
|
|
13522
13513
|
/* ------------------------------------
|
|
13523
13514
|
* GraphQL queries
|
|
13524
13515
|
* ------------------------------------*/
|
|
13525
|
-
const Fragments
|
|
13516
|
+
const Fragments = {
|
|
13526
13517
|
account: gql `
|
|
13527
13518
|
fragment AccountFragment on AccountVO {
|
|
13528
13519
|
id
|
|
@@ -13557,14 +13548,14 @@ const Fragments$1 = {
|
|
|
13557
13548
|
}`
|
|
13558
13549
|
};
|
|
13559
13550
|
// Load account query
|
|
13560
|
-
const LoadQuery
|
|
13551
|
+
const LoadQuery = gql `
|
|
13561
13552
|
query Account {
|
|
13562
13553
|
data: account {
|
|
13563
13554
|
...AccountFragment
|
|
13564
13555
|
}
|
|
13565
13556
|
}
|
|
13566
|
-
${Fragments
|
|
13567
|
-
${Fragments
|
|
13557
|
+
${Fragments.account}
|
|
13558
|
+
${Fragments.settings}
|
|
13568
13559
|
`;
|
|
13569
13560
|
// Check email query
|
|
13570
13561
|
const IsEmailExistsQuery = gql `
|
|
@@ -13579,21 +13570,21 @@ const AccountMutations = {
|
|
|
13579
13570
|
...AccountFragment
|
|
13580
13571
|
}
|
|
13581
13572
|
}
|
|
13582
|
-
${Fragments
|
|
13583
|
-
${Fragments
|
|
13573
|
+
${Fragments.account}
|
|
13574
|
+
${Fragments.settings}`,
|
|
13584
13575
|
create: gql `mutation CreateAccount($data:AccountVOInput){
|
|
13585
13576
|
data: createAccount(account: $data){
|
|
13586
13577
|
...AccountFragment
|
|
13587
13578
|
}
|
|
13588
13579
|
}
|
|
13589
|
-
${Fragments
|
|
13590
|
-
${Fragments
|
|
13580
|
+
${Fragments.account}
|
|
13581
|
+
${Fragments.settings}`,
|
|
13591
13582
|
saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
|
|
13592
13583
|
data: saveSettings(settings: $data){
|
|
13593
13584
|
...UserSettingsFragment
|
|
13594
13585
|
}
|
|
13595
13586
|
}
|
|
13596
|
-
${Fragments
|
|
13587
|
+
${Fragments.settings}`
|
|
13597
13588
|
};
|
|
13598
13589
|
// Sent confirmation email
|
|
13599
13590
|
const SendConfirmEmailMutation = gql `
|
|
@@ -13910,7 +13901,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13910
13901
|
catch (error) {
|
|
13911
13902
|
console.error(error);
|
|
13912
13903
|
this.resetData();
|
|
13913
|
-
throw { code: ErrorCodes
|
|
13904
|
+
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
13914
13905
|
}
|
|
13915
13906
|
// Store pubkey+keypair
|
|
13916
13907
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -13944,7 +13935,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13944
13935
|
}
|
|
13945
13936
|
catch (err) {
|
|
13946
13937
|
// If account not found, check if email is valid
|
|
13947
|
-
if (err && +(err.code) === ErrorCodes
|
|
13938
|
+
if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
|
|
13948
13939
|
// Check email exists
|
|
13949
13940
|
if (data.username.indexOf('@') !== -1) {
|
|
13950
13941
|
let isEmailExists;
|
|
@@ -13956,11 +13947,11 @@ class AccountService extends BaseGraphqlService {
|
|
|
13956
13947
|
}
|
|
13957
13948
|
// Email not exists (no account)
|
|
13958
13949
|
if (!isEmailExists) {
|
|
13959
|
-
throw { code: ErrorCodes
|
|
13950
|
+
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
13960
13951
|
}
|
|
13961
13952
|
}
|
|
13962
13953
|
// Email exists, so error = 'bad password'
|
|
13963
|
-
throw { code: ErrorCodes
|
|
13954
|
+
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
13964
13955
|
}
|
|
13965
13956
|
throw err; // resend the first error
|
|
13966
13957
|
}
|
|
@@ -14106,8 +14097,8 @@ class AccountService extends BaseGraphqlService {
|
|
|
14106
14097
|
// Load remotely
|
|
14107
14098
|
else {
|
|
14108
14099
|
const { data } = yield this.graphql.query({
|
|
14109
|
-
query: LoadQuery
|
|
14110
|
-
error: { code: ErrorCodes
|
|
14100
|
+
query: LoadQuery,
|
|
14101
|
+
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
14111
14102
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
14112
14103
|
});
|
|
14113
14104
|
json = data;
|
|
@@ -14134,7 +14125,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14134
14125
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14135
14126
|
const isEmailExists = yield this.isEmailExists(email);
|
|
14136
14127
|
if (isEmailExists) {
|
|
14137
|
-
throw { code: ErrorCodes
|
|
14128
|
+
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
14138
14129
|
}
|
|
14139
14130
|
});
|
|
14140
14131
|
}
|
|
@@ -14170,7 +14161,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14170
14161
|
locale
|
|
14171
14162
|
},
|
|
14172
14163
|
error: {
|
|
14173
|
-
code: ErrorCodes
|
|
14164
|
+
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
14174
14165
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
14175
14166
|
}
|
|
14176
14167
|
});
|
|
@@ -14186,7 +14177,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14186
14177
|
code
|
|
14187
14178
|
},
|
|
14188
14179
|
error: {
|
|
14189
|
-
code: ErrorCodes
|
|
14180
|
+
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
14190
14181
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
14191
14182
|
}
|
|
14192
14183
|
});
|
|
@@ -14265,7 +14256,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14265
14256
|
throw error;
|
|
14266
14257
|
console.error(error);
|
|
14267
14258
|
throw {
|
|
14268
|
-
code: ErrorCodes
|
|
14259
|
+
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
14269
14260
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
14270
14261
|
};
|
|
14271
14262
|
}
|
|
@@ -14435,7 +14426,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14435
14426
|
if (!isNew) {
|
|
14436
14427
|
const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
|
|
14437
14428
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
14438
|
-
throw { code: ErrorCodes
|
|
14429
|
+
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
14439
14430
|
}
|
|
14440
14431
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
14441
14432
|
}
|
|
@@ -14447,7 +14438,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14447
14438
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
14448
14439
|
variables: { data: json },
|
|
14449
14440
|
error: {
|
|
14450
|
-
code: ErrorCodes
|
|
14441
|
+
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
14451
14442
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
14452
14443
|
}
|
|
14453
14444
|
});
|
|
@@ -14474,7 +14465,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14474
14465
|
mutation: AccountMutations.saveSettings,
|
|
14475
14466
|
variables: { data: json },
|
|
14476
14467
|
error: {
|
|
14477
|
-
code: ErrorCodes
|
|
14468
|
+
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
14478
14469
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
14479
14470
|
}
|
|
14480
14471
|
});
|
|
@@ -14496,7 +14487,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14496
14487
|
if (counter > 4) {
|
|
14497
14488
|
if (this._debug)
|
|
14498
14489
|
console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
|
|
14499
|
-
throw { code: ErrorCodes
|
|
14490
|
+
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
14500
14491
|
}
|
|
14501
14492
|
// Check if valid
|
|
14502
14493
|
if (token) {
|
|
@@ -14506,7 +14497,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14506
14497
|
token
|
|
14507
14498
|
},
|
|
14508
14499
|
error: {
|
|
14509
|
-
code: ErrorCodes
|
|
14500
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
14510
14501
|
message: 'ERROR.UNAUTHORIZED'
|
|
14511
14502
|
},
|
|
14512
14503
|
fetchPolicy: 'no-cache'
|
|
@@ -14522,7 +14513,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14522
14513
|
}
|
|
14523
14514
|
// Generate a new token
|
|
14524
14515
|
const challengeError = {
|
|
14525
|
-
code: ErrorCodes
|
|
14516
|
+
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
14526
14517
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
14527
14518
|
};
|
|
14528
14519
|
const data = yield this.graphql.query({
|
|
@@ -14600,7 +14591,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14600
14591
|
query: AccountSubscriptions.listenChanges,
|
|
14601
14592
|
variables,
|
|
14602
14593
|
error: {
|
|
14603
|
-
code: ErrorCodes
|
|
14594
|
+
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
14604
14595
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ERROR'
|
|
14605
14596
|
}
|
|
14606
14597
|
}).pipe(map(({ data }) => data),
|
|
@@ -14629,7 +14620,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14629
14620
|
return Toasts.show(this.toastController, this.translate, opts);
|
|
14630
14621
|
}
|
|
14631
14622
|
}
|
|
14632
|
-
AccountService.ɵprov =
|
|
14623
|
+
AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(TranslateService, 8), ɵɵinject(ToastController, 8), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
14633
14624
|
AccountService.decorators = [
|
|
14634
14625
|
{ type: Injectable, args: [{ providedIn: 'root', deps: [ENVIRONMENT] },] }
|
|
14635
14626
|
];
|
|
@@ -14891,7 +14882,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
|
|
|
14891
14882
|
/* ------------------------------------
|
|
14892
14883
|
* GraphQL queries
|
|
14893
14884
|
* ------------------------------------*/
|
|
14894
|
-
const Fragments = {
|
|
14885
|
+
const Fragments$1 = {
|
|
14895
14886
|
config: gql `
|
|
14896
14887
|
fragment ConfigFragment on ConfigurationVO {
|
|
14897
14888
|
id
|
|
@@ -14918,13 +14909,13 @@ const Fragments = {
|
|
|
14918
14909
|
}
|
|
14919
14910
|
`
|
|
14920
14911
|
};
|
|
14921
|
-
const LoadQuery = gql `
|
|
14912
|
+
const LoadQuery$1 = gql `
|
|
14922
14913
|
query Configuration{
|
|
14923
14914
|
data: configuration{
|
|
14924
14915
|
...ConfigFragment
|
|
14925
14916
|
}
|
|
14926
14917
|
}
|
|
14927
|
-
${Fragments.config}
|
|
14918
|
+
${Fragments$1.config}
|
|
14928
14919
|
`;
|
|
14929
14920
|
// Save (create or update) account mutation
|
|
14930
14921
|
const SaveMutation = gql `
|
|
@@ -14933,7 +14924,7 @@ const SaveMutation = gql `
|
|
|
14933
14924
|
...ConfigFragment
|
|
14934
14925
|
}
|
|
14935
14926
|
}
|
|
14936
|
-
${Fragments.config}
|
|
14927
|
+
${Fragments$1.config}
|
|
14937
14928
|
`;
|
|
14938
14929
|
const ClearCache = gql `
|
|
14939
14930
|
query ClearCache($name: String) {
|
|
@@ -14984,12 +14975,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14984
14975
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14985
14976
|
const now = Date.now();
|
|
14986
14977
|
console.debug('[config] Loading Pod configuration...');
|
|
14987
|
-
const query = opts && opts.query || LoadQuery;
|
|
14978
|
+
const query = opts && opts.query || LoadQuery$1;
|
|
14988
14979
|
const variables = opts && opts.variables || undefined;
|
|
14989
14980
|
const res = yield this.graphql.query({
|
|
14990
14981
|
query,
|
|
14991
14982
|
variables,
|
|
14992
|
-
error: { code: ErrorCodes
|
|
14983
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14993
14984
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
14994
14985
|
});
|
|
14995
14986
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -15022,7 +15013,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15022
15013
|
data: json
|
|
15023
15014
|
},
|
|
15024
15015
|
error: {
|
|
15025
|
-
code: ErrorCodes
|
|
15016
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
15026
15017
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
15027
15018
|
}
|
|
15028
15019
|
});
|
|
@@ -15048,7 +15039,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15048
15039
|
const res = yield this.graphql.query({
|
|
15049
15040
|
query: CacheStatistics,
|
|
15050
15041
|
variables: null,
|
|
15051
|
-
error: { code: ErrorCodes
|
|
15042
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15052
15043
|
fetchPolicy: 'network-only'
|
|
15053
15044
|
});
|
|
15054
15045
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -15064,7 +15055,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15064
15055
|
const res = yield this.graphql.query({
|
|
15065
15056
|
query: ClearCache,
|
|
15066
15057
|
variables,
|
|
15067
|
-
error: { code: ErrorCodes
|
|
15058
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
15068
15059
|
fetchPolicy: 'network-only'
|
|
15069
15060
|
});
|
|
15070
15061
|
const data = res && res.clearCache || undefined;
|
|
@@ -15223,7 +15214,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15223
15214
|
});
|
|
15224
15215
|
}
|
|
15225
15216
|
}
|
|
15226
|
-
ConfigService.ɵprov =
|
|
15217
|
+
ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(AccountService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
15227
15218
|
ConfigService.decorators = [
|
|
15228
15219
|
{ type: Injectable, args: [{
|
|
15229
15220
|
providedIn: 'root',
|
|
@@ -15243,7 +15234,7 @@ ConfigService.ctorParameters = () => [
|
|
|
15243
15234
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
15244
15235
|
];
|
|
15245
15236
|
|
|
15246
|
-
const moment$
|
|
15237
|
+
const moment$4 = momentImported;
|
|
15247
15238
|
class PlatformService extends StartableService {
|
|
15248
15239
|
constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
|
|
15249
15240
|
super(platform);
|
|
@@ -15450,16 +15441,16 @@ class PlatformService extends StartableService {
|
|
|
15450
15441
|
}
|
|
15451
15442
|
// config moment lib
|
|
15452
15443
|
try {
|
|
15453
|
-
moment$
|
|
15444
|
+
moment$4.locale(event.lang);
|
|
15454
15445
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
15455
15446
|
}
|
|
15456
15447
|
// If error, fallback to en
|
|
15457
15448
|
catch (err) {
|
|
15458
|
-
moment$
|
|
15449
|
+
moment$4.locale('en');
|
|
15459
15450
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
15460
15451
|
}
|
|
15461
15452
|
// Config date adapter
|
|
15462
|
-
this.dateAdapter.setLocale(moment$
|
|
15453
|
+
this.dateAdapter.setLocale(moment$4.locale());
|
|
15463
15454
|
}
|
|
15464
15455
|
});
|
|
15465
15456
|
this.settings.onChange.subscribe(data => {
|
|
@@ -15592,7 +15583,7 @@ class PlatformService extends StartableService {
|
|
|
15592
15583
|
});
|
|
15593
15584
|
}
|
|
15594
15585
|
}
|
|
15595
|
-
PlatformService.ɵprov =
|
|
15586
|
+
PlatformService.ɵprov = ɵɵdefineInjectable({ factory: function PlatformService_Factory() { return new PlatformService(ɵɵinject(Platform), ɵɵinject(Platform$1), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(MomentDateAdapter), ɵɵinject(EntitiesStorage), ɵɵinject(LocalSettingsService), ɵɵinject(NetworkService), ɵɵinject(AccountService), ɵɵinject(ConfigService), ɵɵinject(CacheService), ɵɵinject(Storage), ɵɵinject(AudioProvider), ɵɵinject(ENVIRONMENT), ɵɵinject(StatusBar, 8), ɵɵinject(Keyboard$1, 8), ɵɵinject(SplashScreen, 8), ɵɵinject(InAppBrowser, 8), ɵɵinject(Downloader, 8)); }, token: PlatformService, providedIn: "root" });
|
|
15596
15587
|
PlatformService.decorators = [
|
|
15597
15588
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15598
15589
|
];
|
|
@@ -15607,15 +15598,15 @@ PlatformService.ctorParameters = () => [
|
|
|
15607
15598
|
{ type: NetworkService },
|
|
15608
15599
|
{ type: AccountService },
|
|
15609
15600
|
{ type: ConfigService },
|
|
15610
|
-
{ type: CacheService },
|
|
15601
|
+
{ type: CacheService$1 },
|
|
15611
15602
|
{ type: Storage },
|
|
15612
15603
|
{ type: AudioProvider },
|
|
15613
15604
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
15614
|
-
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
15605
|
+
{ type: StatusBar$1, decorators: [{ type: Optional }] },
|
|
15615
15606
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
15616
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
15617
|
-
{ type: InAppBrowser, decorators: [{ type: Optional }] },
|
|
15618
|
-
{ type: Downloader, decorators: [{ type: Optional }] }
|
|
15607
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
15608
|
+
{ type: InAppBrowser$1, decorators: [{ type: Optional }] },
|
|
15609
|
+
{ type: Downloader$1, decorators: [{ type: Optional }] }
|
|
15619
15610
|
];
|
|
15620
15611
|
|
|
15621
15612
|
class AppHelpModal {
|
|
@@ -15679,7 +15670,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
15679
15670
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
15680
15671
|
}
|
|
15681
15672
|
}
|
|
15682
|
-
MatStepperI18n.ɵprov =
|
|
15673
|
+
MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
15683
15674
|
MatStepperI18n.decorators = [
|
|
15684
15675
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15685
15676
|
];
|
|
@@ -17490,7 +17481,7 @@ function state2side(state) {
|
|
|
17490
17481
|
return 1;
|
|
17491
17482
|
}
|
|
17492
17483
|
}
|
|
17493
|
-
const ɵ0$
|
|
17484
|
+
const ɵ0$b = (defaultStateSize) => [
|
|
17494
17485
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
17495
17486
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
17496
17487
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -17498,7 +17489,7 @@ const ɵ0$1 = (defaultStateSize) => [
|
|
|
17498
17489
|
const SCALE_OPTIONS_DEFAULT = {
|
|
17499
17490
|
startColor: rgbArrayMap.red,
|
|
17500
17491
|
startStates: [0, 2, 3],
|
|
17501
|
-
startStepsFn: ɵ0$
|
|
17492
|
+
startStepsFn: ɵ0$b
|
|
17502
17493
|
};
|
|
17503
17494
|
/**
|
|
17504
17495
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -18295,7 +18286,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
18295
18286
|
});
|
|
18296
18287
|
}
|
|
18297
18288
|
}
|
|
18298
|
-
UserSettingsValidatorService.ɵprov =
|
|
18289
|
+
UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
18299
18290
|
UserSettingsValidatorService.decorators = [
|
|
18300
18291
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18301
18292
|
];
|
|
@@ -18339,7 +18330,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
18339
18330
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
18340
18331
|
}
|
|
18341
18332
|
}
|
|
18342
|
-
AccountValidatorService.ɵprov =
|
|
18333
|
+
AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
18343
18334
|
AccountValidatorService.decorators = [
|
|
18344
18335
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18345
18336
|
];
|
|
@@ -18904,7 +18895,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
18904
18895
|
});
|
|
18905
18896
|
}
|
|
18906
18897
|
}
|
|
18907
|
-
LocalSettingsValidatorService.ɵprov =
|
|
18898
|
+
LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
18908
18899
|
LocalSettingsValidatorService.decorators = [
|
|
18909
18900
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18910
18901
|
];
|
|
@@ -19523,7 +19514,7 @@ class IsOnFieldModePipe {
|
|
|
19523
19514
|
return value === 'FIELD';
|
|
19524
19515
|
}
|
|
19525
19516
|
}
|
|
19526
|
-
IsOnFieldModePipe.ɵprov =
|
|
19517
|
+
IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
19527
19518
|
IsOnFieldModePipe.decorators = [
|
|
19528
19519
|
{ type: Pipe, args: [{
|
|
19529
19520
|
name: 'isOnField'
|
|
@@ -19535,7 +19526,7 @@ class IsNotOnFieldModePipe {
|
|
|
19535
19526
|
return value !== 'FIELD';
|
|
19536
19527
|
}
|
|
19537
19528
|
}
|
|
19538
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
19529
|
+
IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
19539
19530
|
IsNotOnFieldModePipe.decorators = [
|
|
19540
19531
|
{ type: Pipe, args: [{
|
|
19541
19532
|
name: 'isNotOnField'
|
|
@@ -19550,7 +19541,7 @@ class PersonToStringPipe {
|
|
|
19550
19541
|
return PersonUtils.personToString(value);
|
|
19551
19542
|
}
|
|
19552
19543
|
}
|
|
19553
|
-
PersonToStringPipe.ɵprov =
|
|
19544
|
+
PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
19554
19545
|
PersonToStringPipe.decorators = [
|
|
19555
19546
|
{ type: Pipe, args: [{
|
|
19556
19547
|
name: 'personToString'
|
|
@@ -19935,7 +19926,7 @@ class IsLoginAccountPipe {
|
|
|
19935
19926
|
return value && value.pubkey && true;
|
|
19936
19927
|
}
|
|
19937
19928
|
}
|
|
19938
|
-
IsLoginAccountPipe.ɵprov =
|
|
19929
|
+
IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
19939
19930
|
IsLoginAccountPipe.decorators = [
|
|
19940
19931
|
{ type: Pipe, args: [{
|
|
19941
19932
|
name: 'isLogin'
|
|
@@ -19947,7 +19938,7 @@ class AccountToStringPipe {
|
|
|
19947
19938
|
return accountToString(value);
|
|
19948
19939
|
}
|
|
19949
19940
|
}
|
|
19950
|
-
AccountToStringPipe.ɵprov =
|
|
19941
|
+
AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
19951
19942
|
AccountToStringPipe.decorators = [
|
|
19952
19943
|
{ type: Pipe, args: [{
|
|
19953
19944
|
name: 'accountToString'
|
|
@@ -19962,7 +19953,7 @@ class DepartmentToStringPipe {
|
|
|
19962
19953
|
return departmentToString(value);
|
|
19963
19954
|
}
|
|
19964
19955
|
}
|
|
19965
|
-
DepartmentToStringPipe.ɵprov =
|
|
19956
|
+
DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
19966
19957
|
DepartmentToStringPipe.decorators = [
|
|
19967
19958
|
{ type: Pipe, args: [{
|
|
19968
19959
|
name: 'departmentToString'
|
|
@@ -20058,7 +20049,7 @@ class MenuService {
|
|
|
20058
20049
|
this._visibleSubject.next(value);
|
|
20059
20050
|
}
|
|
20060
20051
|
}
|
|
20061
|
-
MenuService.ɵprov =
|
|
20052
|
+
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
20062
20053
|
MenuService.decorators = [
|
|
20063
20054
|
{ type: Injectable, args: [{
|
|
20064
20055
|
providedIn: 'root'
|
|
@@ -20520,7 +20511,7 @@ class AuthGuardService {
|
|
|
20520
20511
|
}));
|
|
20521
20512
|
}
|
|
20522
20513
|
}
|
|
20523
|
-
AuthGuardService.ɵprov =
|
|
20514
|
+
AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
20524
20515
|
AuthGuardService.decorators = [
|
|
20525
20516
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
20526
20517
|
];
|
|
@@ -20562,7 +20553,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20562
20553
|
query,
|
|
20563
20554
|
variables: { id },
|
|
20564
20555
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20565
|
-
error: { code: ErrorCodes
|
|
20556
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20566
20557
|
})
|
|
20567
20558
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
20568
20559
|
? (data && this.fromObject(data))
|
|
@@ -20577,7 +20568,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20577
20568
|
query,
|
|
20578
20569
|
variables: { id },
|
|
20579
20570
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20580
|
-
error: { code: ErrorCodes
|
|
20571
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20581
20572
|
});
|
|
20582
20573
|
// Convert to entity
|
|
20583
20574
|
return (!opts || opts.toEntity !== false)
|
|
@@ -20608,7 +20599,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20608
20599
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
20609
20600
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
20610
20601
|
variables,
|
|
20611
|
-
error: { code: ErrorCodes
|
|
20602
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
20612
20603
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
20613
20604
|
})
|
|
20614
20605
|
.pipe(map(({ data, total }) => {
|
|
@@ -20644,7 +20635,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20644
20635
|
const { data, total } = yield this.graphql.query({
|
|
20645
20636
|
query,
|
|
20646
20637
|
variables,
|
|
20647
|
-
error: { code: ErrorCodes
|
|
20638
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
20648
20639
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20649
20640
|
});
|
|
20650
20641
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -20683,7 +20674,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20683
20674
|
variables: {
|
|
20684
20675
|
filter: filter && filter.asPodObject()
|
|
20685
20676
|
},
|
|
20686
|
-
error: { code: ErrorCodes
|
|
20677
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
20687
20678
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20688
20679
|
});
|
|
20689
20680
|
return res.total;
|
|
@@ -20719,7 +20710,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20719
20710
|
variables: {
|
|
20720
20711
|
data: json
|
|
20721
20712
|
},
|
|
20722
|
-
error: { code: ErrorCodes
|
|
20713
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20723
20714
|
update: (proxy, { data }) => {
|
|
20724
20715
|
const savedEntities = data && data.data;
|
|
20725
20716
|
if (savedEntities) {
|
|
@@ -20775,7 +20766,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20775
20766
|
variables: {
|
|
20776
20767
|
data: json
|
|
20777
20768
|
},
|
|
20778
|
-
error: { code: ErrorCodes
|
|
20769
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20779
20770
|
update: (cache, { data }) => {
|
|
20780
20771
|
// Update entity
|
|
20781
20772
|
const savedEntity = data && data.data;
|
|
@@ -20823,7 +20814,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20823
20814
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20824
20815
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20825
20816
|
variables: { ids },
|
|
20826
|
-
error: { code: ErrorCodes
|
|
20817
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20827
20818
|
update: (cache, res) => {
|
|
20828
20819
|
// Remove from cache
|
|
20829
20820
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -20864,7 +20855,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20864
20855
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20865
20856
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20866
20857
|
variables: { id },
|
|
20867
|
-
error: { code: ErrorCodes
|
|
20858
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20868
20859
|
update: (proxy, res) => {
|
|
20869
20860
|
// Remove from cache
|
|
20870
20861
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -20897,7 +20888,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20897
20888
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
20898
20889
|
variables,
|
|
20899
20890
|
error: {
|
|
20900
|
-
code: ErrorCodes
|
|
20891
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
20901
20892
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
20902
20893
|
}
|
|
20903
20894
|
})
|
|
@@ -21083,7 +21074,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21083
21074
|
if (this._debug)
|
|
21084
21075
|
invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
21085
21076
|
// Stop with an error
|
|
21086
|
-
throw { code: ErrorCodes
|
|
21077
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21087
21078
|
}
|
|
21088
21079
|
this._editingRowCount = 0;
|
|
21089
21080
|
let data;
|
|
@@ -21948,14 +21939,14 @@ class AppTable {
|
|
|
21948
21939
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21949
21940
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
21950
21941
|
if (this.readOnly) {
|
|
21951
|
-
throw { code: ErrorCodes
|
|
21942
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
21952
21943
|
}
|
|
21953
21944
|
this.resetError();
|
|
21954
21945
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
21955
21946
|
this.previouslyEditedRowId = opts.keepEditing ? ((((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined) || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.id)) : undefined;
|
|
21956
21947
|
const previouslyEditedData = opts.keepEditing ? (isNotNil(this.previouslyEditedRowId) && ((_c = this.editedRow) === null || _c === void 0 ? void 0 : _c.currentData) || ((_d = this.singleSelectedRow) === null || _d === void 0 ? void 0 : _d.currentData)) : undefined;
|
|
21957
21948
|
if (!this.confirmEditCreate()) {
|
|
21958
|
-
throw { code: ErrorCodes
|
|
21949
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21959
21950
|
}
|
|
21960
21951
|
// Mark as saving
|
|
21961
21952
|
this.markAsSaving();
|
|
@@ -22072,7 +22063,7 @@ class AppTable {
|
|
|
22072
22063
|
var _a;
|
|
22073
22064
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22074
22065
|
if (this.readOnly) {
|
|
22075
|
-
throw { code: ErrorCodes
|
|
22066
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
22076
22067
|
}
|
|
22077
22068
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
22078
22069
|
return 0; // SKip
|
|
@@ -23606,7 +23597,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23606
23597
|
try {
|
|
23607
23598
|
const data = yield this.dataService.load(id, opts);
|
|
23608
23599
|
if (!data)
|
|
23609
|
-
throw { code: ErrorCodes
|
|
23600
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
23610
23601
|
this._usageMode = this.computeUsageMode(data);
|
|
23611
23602
|
yield this.onEntityLoaded(data, opts);
|
|
23612
23603
|
yield this.updateView(data, opts);
|
|
@@ -23637,7 +23628,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23637
23628
|
if (!this.dirty) {
|
|
23638
23629
|
if (this.debug)
|
|
23639
23630
|
console.debug(`[data-editor] Changes detected on server, at {${data.updateDate}}: reloading page...`);
|
|
23640
|
-
this.
|
|
23631
|
+
this.updateView(data);
|
|
23641
23632
|
}
|
|
23642
23633
|
else {
|
|
23643
23634
|
if (this.debug)
|
|
@@ -24544,7 +24535,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
24544
24535
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
24545
24536
|
}
|
|
24546
24537
|
}
|
|
24547
|
-
UserEventService.ɵprov =
|
|
24538
|
+
UserEventService.ɵprov = ɵɵdefineInjectable({ factory: function UserEventService_Factory() { return new UserEventService(ɵɵinject(GraphqlService), ɵɵinject(AccountService), ɵɵinject(NetworkService), ɵɵinject(TranslateService), ɵɵinject(ToastController), ɵɵinject(ENVIRONMENT)); }, token: UserEventService, providedIn: "root" });
|
|
24548
24539
|
UserEventService.decorators = [
|
|
24549
24540
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24550
24541
|
];
|
|
@@ -24928,7 +24919,7 @@ class PersonService extends BaseEntityService {
|
|
|
24928
24919
|
return target;
|
|
24929
24920
|
}
|
|
24930
24921
|
}
|
|
24931
|
-
PersonService.ɵprov =
|
|
24922
|
+
PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
24932
24923
|
PersonService.decorators = [
|
|
24933
24924
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24934
24925
|
];
|
|
@@ -24959,7 +24950,7 @@ class PersonValidatorService {
|
|
|
24959
24950
|
return this.formBuilder.group(formConfig);
|
|
24960
24951
|
}
|
|
24961
24952
|
}
|
|
24962
|
-
PersonValidatorService.ɵprov =
|
|
24953
|
+
PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
24963
24954
|
PersonValidatorService.decorators = [
|
|
24964
24955
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24965
24956
|
];
|
|
@@ -25153,16 +25144,16 @@ AdminModule.decorators = [
|
|
|
25153
25144
|
];
|
|
25154
25145
|
AdminModule.ctorParameters = () => [];
|
|
25155
25146
|
|
|
25156
|
-
const ɵ0 = {
|
|
25147
|
+
const ɵ0$c = {
|
|
25157
25148
|
profile: 'ADMIN'
|
|
25158
25149
|
};
|
|
25159
|
-
const routes
|
|
25150
|
+
const routes = [
|
|
25160
25151
|
{
|
|
25161
25152
|
path: 'users',
|
|
25162
25153
|
pathMatch: 'full',
|
|
25163
25154
|
component: UsersPage,
|
|
25164
25155
|
canActivate: [AuthGuardService],
|
|
25165
|
-
data: ɵ0
|
|
25156
|
+
data: ɵ0$c
|
|
25166
25157
|
}
|
|
25167
25158
|
];
|
|
25168
25159
|
class AdminRoutingModule {
|
|
@@ -25172,33 +25163,33 @@ AdminRoutingModule.decorators = [
|
|
|
25172
25163
|
imports: [
|
|
25173
25164
|
SharedRoutingModule,
|
|
25174
25165
|
AdminModule,
|
|
25175
|
-
RouterModule.forChild(routes
|
|
25166
|
+
RouterModule.forChild(routes)
|
|
25176
25167
|
],
|
|
25177
25168
|
exports: [RouterModule]
|
|
25178
25169
|
},] }
|
|
25179
25170
|
];
|
|
25180
25171
|
|
|
25181
|
-
const ErrorCodes = {
|
|
25172
|
+
const ErrorCodes$2 = {
|
|
25182
25173
|
LOAD_PERSONS_ERROR: 100,
|
|
25183
25174
|
SAVE_PERSONS_ERROR: 101,
|
|
25184
25175
|
DELETE_PERSONS_ERROR: 102,
|
|
25185
25176
|
};
|
|
25186
25177
|
|
|
25187
|
-
class EntityTestClass
|
|
25178
|
+
class EntityTestClass {
|
|
25188
25179
|
}
|
|
25189
|
-
const FAKE_ENTITIES
|
|
25180
|
+
const FAKE_ENTITIES = [
|
|
25190
25181
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
25191
25182
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
25192
25183
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
25193
25184
|
];
|
|
25194
|
-
function deepCopy
|
|
25185
|
+
function deepCopy(values, size) {
|
|
25195
25186
|
if (isNil(size)) {
|
|
25196
|
-
return (values || FAKE_ENTITIES
|
|
25187
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
25197
25188
|
}
|
|
25198
25189
|
let result = [];
|
|
25199
25190
|
let i = 1;
|
|
25200
25191
|
while (result.length < size) {
|
|
25201
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
25192
|
+
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
25202
25193
|
const name = entity.name + ' #' + i;
|
|
25203
25194
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
25204
25195
|
}));
|
|
@@ -25208,7 +25199,7 @@ function deepCopy$1(values, size) {
|
|
|
25208
25199
|
class AutocompleteTestPage {
|
|
25209
25200
|
constructor(formBuilder) {
|
|
25210
25201
|
this.formBuilder = formBuilder;
|
|
25211
|
-
this._items = deepCopy
|
|
25202
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
25212
25203
|
this._$items = new BehaviorSubject(undefined);
|
|
25213
25204
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
25214
25205
|
this.memoryHide = false;
|
|
@@ -25252,7 +25243,7 @@ class AutocompleteTestPage {
|
|
|
25252
25243
|
});
|
|
25253
25244
|
// From items
|
|
25254
25245
|
this.autocompleteFields.add('entity-items-large', {
|
|
25255
|
-
items: FAKE_ENTITIES
|
|
25246
|
+
items: FAKE_ENTITIES.slice(),
|
|
25256
25247
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
25257
25248
|
displayWith: this.entityToString
|
|
25258
25249
|
});
|
|
@@ -25262,12 +25253,12 @@ class AutocompleteTestPage {
|
|
|
25262
25253
|
loadData() {
|
|
25263
25254
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25264
25255
|
const data = {
|
|
25265
|
-
entity: deepCopy
|
|
25256
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
25266
25257
|
// This item is NOT in the items list => i should be displayed anyway
|
|
25267
25258
|
missingEntity: {
|
|
25268
25259
|
id: -1, label: '??', name: 'Missing item'
|
|
25269
25260
|
},
|
|
25270
|
-
disableEntity: deepCopy
|
|
25261
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
25271
25262
|
};
|
|
25272
25263
|
this.form.setValue(data);
|
|
25273
25264
|
// Load observables
|
|
@@ -25410,13 +25401,13 @@ LatLongTestPage.ctorParameters = () => [
|
|
|
25410
25401
|
{ type: FormBuilder }
|
|
25411
25402
|
];
|
|
25412
25403
|
|
|
25413
|
-
const moment$
|
|
25404
|
+
const moment$5 = momentImported;
|
|
25414
25405
|
class SwipeTestPage {
|
|
25415
25406
|
constructor(formBuilder, dateFormatPipe) {
|
|
25416
25407
|
this.formBuilder = formBuilder;
|
|
25417
25408
|
this.dateFormatPipe = dateFormatPipe;
|
|
25418
25409
|
this.$dates = new BehaviorSubject(undefined);
|
|
25419
|
-
this._today = moment$
|
|
25410
|
+
this._today = moment$5().startOf('day');
|
|
25420
25411
|
this.form = formBuilder.group({
|
|
25421
25412
|
empty: [null, Validators.required],
|
|
25422
25413
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -25429,7 +25420,7 @@ class SwipeTestPage {
|
|
|
25429
25420
|
ngOnInit() {
|
|
25430
25421
|
const dates = [];
|
|
25431
25422
|
for (let d = 0; d < 7; d++) {
|
|
25432
|
-
dates[d] = moment$
|
|
25423
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
25433
25424
|
}
|
|
25434
25425
|
this.$dates.next(dates);
|
|
25435
25426
|
this.loadData();
|
|
@@ -25470,7 +25461,7 @@ SwipeTestPage.ctorParameters = () => [
|
|
|
25470
25461
|
{ type: DateFormatPipe }
|
|
25471
25462
|
];
|
|
25472
25463
|
|
|
25473
|
-
const moment = momentImported;
|
|
25464
|
+
const moment$6 = momentImported;
|
|
25474
25465
|
class DateTimeTestPage {
|
|
25475
25466
|
constructor(platform, formBuilder, cd) {
|
|
25476
25467
|
this.platform = platform;
|
|
@@ -25502,7 +25493,7 @@ class DateTimeTestPage {
|
|
|
25502
25493
|
// Load the form with data
|
|
25503
25494
|
loadData() {
|
|
25504
25495
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25505
|
-
const now = moment();
|
|
25496
|
+
const now = moment$6();
|
|
25506
25497
|
const data = {
|
|
25507
25498
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
25508
25499
|
enable: toDateISOString(now),
|
|
@@ -25563,9 +25554,9 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
25563
25554
|
{ type: ChangeDetectorRef }
|
|
25564
25555
|
];
|
|
25565
25556
|
|
|
25566
|
-
class EntityTestClass {
|
|
25557
|
+
class EntityTestClass$1 {
|
|
25567
25558
|
}
|
|
25568
|
-
const FAKE_ENTITIES = [
|
|
25559
|
+
const FAKE_ENTITIES$1 = [
|
|
25569
25560
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
25570
25561
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
25571
25562
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -25574,14 +25565,14 @@ const FAKE_ENTITIES = [
|
|
|
25574
25565
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
25575
25566
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
25576
25567
|
];
|
|
25577
|
-
function deepCopy(values, size) {
|
|
25568
|
+
function deepCopy$1(values, size) {
|
|
25578
25569
|
if (isNil(size)) {
|
|
25579
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
25570
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
25580
25571
|
}
|
|
25581
25572
|
let result = [];
|
|
25582
25573
|
let i = 1;
|
|
25583
25574
|
while (result.length < size) {
|
|
25584
|
-
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
25575
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
|
|
25585
25576
|
const name = entity.name + ' #' + i;
|
|
25586
25577
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
25587
25578
|
}));
|
|
@@ -25591,7 +25582,7 @@ function deepCopy(values, size) {
|
|
|
25591
25582
|
class ChipsTestPage {
|
|
25592
25583
|
constructor(formBuilder) {
|
|
25593
25584
|
this.formBuilder = formBuilder;
|
|
25594
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
25585
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
25595
25586
|
this._$items = new BehaviorSubject(undefined);
|
|
25596
25587
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
25597
25588
|
this.form = formBuilder.group({
|
|
@@ -25630,7 +25621,7 @@ class ChipsTestPage {
|
|
|
25630
25621
|
// Load the form with data
|
|
25631
25622
|
loadData() {
|
|
25632
25623
|
return __awaiter(this, void 0, void 0, function* () {
|
|
25633
|
-
const items = deepCopy(FAKE_ENTITIES);
|
|
25624
|
+
const items = deepCopy$1(FAKE_ENTITIES$1);
|
|
25634
25625
|
const data = {
|
|
25635
25626
|
entity: items.slice(0, 1),
|
|
25636
25627
|
entityInitial: items.slice(1, 2),
|
|
@@ -25757,7 +25748,7 @@ const SHARED_MATERIAL_TESTING_PAGES = [
|
|
|
25757
25748
|
{ label: 'Shared directives', divider: true },
|
|
25758
25749
|
{ label: 'Badge icon directive', page: '/testing/shared/badge-icon' }
|
|
25759
25750
|
];
|
|
25760
|
-
const routes$
|
|
25751
|
+
const routes$1 = [
|
|
25761
25752
|
{
|
|
25762
25753
|
path: '',
|
|
25763
25754
|
pathMatch: 'full',
|
|
@@ -25809,7 +25800,7 @@ MaterialTestingModule.decorators = [
|
|
|
25809
25800
|
ReactiveFormsModule,
|
|
25810
25801
|
SharedMaterialModule,
|
|
25811
25802
|
TranslateModule.forChild(),
|
|
25812
|
-
RouterModule.forChild(routes$
|
|
25803
|
+
RouterModule.forChild(routes$1)
|
|
25813
25804
|
],
|
|
25814
25805
|
declarations: [
|
|
25815
25806
|
DateTimeTestPage,
|
|
@@ -25868,7 +25859,7 @@ ToastTestingPage.ctorParameters = () => [
|
|
|
25868
25859
|
{ type: TranslateService }
|
|
25869
25860
|
];
|
|
25870
25861
|
|
|
25871
|
-
const routes$
|
|
25862
|
+
const routes$2 = [
|
|
25872
25863
|
{
|
|
25873
25864
|
path: 'toast',
|
|
25874
25865
|
pathMatch: 'full',
|
|
@@ -25883,7 +25874,7 @@ ToastTestingModule.decorators = [
|
|
|
25883
25874
|
CommonModule,
|
|
25884
25875
|
IonicModule,
|
|
25885
25876
|
TranslateModule.forChild(),
|
|
25886
|
-
RouterModule.forChild(routes$
|
|
25877
|
+
RouterModule.forChild(routes$2)
|
|
25887
25878
|
],
|
|
25888
25879
|
declarations: [
|
|
25889
25880
|
ToastTestingPage
|
|
@@ -25946,7 +25937,7 @@ UploadFileTestingPage.ctorParameters = () => [
|
|
|
25946
25937
|
{ type: PopoverController }
|
|
25947
25938
|
];
|
|
25948
25939
|
|
|
25949
|
-
const routes$
|
|
25940
|
+
const routes$3 = [
|
|
25950
25941
|
{
|
|
25951
25942
|
path: 'upload-file',
|
|
25952
25943
|
pathMatch: 'full',
|
|
@@ -25961,7 +25952,7 @@ UploadFileTestingModule.decorators = [
|
|
|
25961
25952
|
CommonModule,
|
|
25962
25953
|
IonicModule,
|
|
25963
25954
|
TranslateModule.forChild(),
|
|
25964
|
-
RouterModule.forChild(routes$
|
|
25955
|
+
RouterModule.forChild(routes$3)
|
|
25965
25956
|
],
|
|
25966
25957
|
declarations: [
|
|
25967
25958
|
UploadFileTestingPage
|
|
@@ -26342,7 +26333,7 @@ TextPopoverTestingPage.ctorParameters = () => [
|
|
|
26342
26333
|
{ type: PopoverController }
|
|
26343
26334
|
];
|
|
26344
26335
|
|
|
26345
|
-
const routes$
|
|
26336
|
+
const routes$4 = [
|
|
26346
26337
|
{
|
|
26347
26338
|
path: 'text-popover',
|
|
26348
26339
|
pathMatch: 'full',
|
|
@@ -26357,7 +26348,7 @@ TextPopoverTestingModule.decorators = [
|
|
|
26357
26348
|
CommonModule,
|
|
26358
26349
|
IonicModule,
|
|
26359
26350
|
TranslateModule.forChild(),
|
|
26360
|
-
RouterModule.forChild(routes$
|
|
26351
|
+
RouterModule.forChild(routes$4)
|
|
26361
26352
|
],
|
|
26362
26353
|
declarations: [
|
|
26363
26354
|
TextPopoverTestingPage
|
|
@@ -26374,7 +26365,7 @@ const CORE_TESTING_PAGES = [
|
|
|
26374
26365
|
{ label: 'Table', page: '/testing/core/table' },
|
|
26375
26366
|
{ label: 'Text popover', page: '/testing/core/text-popover' }
|
|
26376
26367
|
];
|
|
26377
|
-
const routes = [
|
|
26368
|
+
const routes$5 = [
|
|
26378
26369
|
{
|
|
26379
26370
|
path: '',
|
|
26380
26371
|
pathMatch: 'full',
|
|
@@ -26398,7 +26389,7 @@ CoreTestingModule.decorators = [
|
|
|
26398
26389
|
imports: [
|
|
26399
26390
|
CommonModule,
|
|
26400
26391
|
TranslateModule.forChild(),
|
|
26401
|
-
RouterModule.forChild(routes),
|
|
26392
|
+
RouterModule.forChild(routes$5),
|
|
26402
26393
|
// Sub modules
|
|
26403
26394
|
TableTestingModule,
|
|
26404
26395
|
TextPopoverTestingModule
|
|
@@ -26418,5 +26409,5 @@ CoreTestingModule.decorators = [
|
|
|
26418
26409
|
* Generated bundle index. Do not edit.
|
|
26419
26410
|
*/
|
|
26420
26411
|
|
|
26421
|
-
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isDesktop, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isTouchUi, isWindow, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$
|
|
26412
|
+
export { APP_ABOUT_DEVELOPERS, APP_ABOUT_PARTNERS, APP_CONFIG_OPTIONS, APP_FORM_ERROR_I18N_KEYS, APP_GRAPHQL_TYPE_POLICIES, APP_HOME_BUTTONS, APP_LOCALES, APP_LOCAL_SETTINGS, APP_LOCAL_SETTINGS_OPTIONS, APP_LOCAL_STORAGE_TYPE_POLICIES, APP_MENU_ITEMS, APP_TESTING_PAGES, AboutModal, Account, AccountPage, AccountService, AccountToStringPipe, ActionsColumnComponent, AdminModule, AdminRoutingModule, Alerts, AnimationState, AppEditor, AppEditorOptions, AppEntityEditor, AppForm, AppFormField, AppFormProvider, AppFormUtils, AppGestureConfig, AppGraphQLModule, AppHelpModal, AppInMemoryTable, AppInstallUpgradeCard, AppListForm, AppLoadingSpinner, AppMenuModule, AppNullForm, AppPropertiesForm, AppTabEditor, AppTabEditorOptions, AppTable, AppTableDataSourceOptions, AppTableUtils, AppValidatorService, AppendToInputDirective, ArrayFilterPipe, ArrayFirstPipe, ArrayIncludesPipe, ArrayLengthPipe, ArrayPluckPipe, AudioProvider, AuthForm, AuthGuardService, AuthModal, AutocompleteTestPage, AutofocusDirective, Base58, BaseEntityService, BaseGraphqlService, BaseGraphqlServiceOptions, BaseReferential, Beans, CORE_CONFIG_OPTIONS, CORE_TESTING_PAGES, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CoreTestingModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DragAndDropDirective, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileResponse, FileService, FileSizePipe, FilesUtils, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBadgeIconDirective, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialTestingModule, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, NgVarDirective, NotEmptyArrayPipe, NumberFormatPipe, NumpadDirective, OddPipe, PRIORITIZED_AUTHORITIES, PUBKEY_REGEXP, Peer, Person, PersonFilter, PersonFragments, PersonService, PersonToStringPipe, PersonUtils, PersonValidatorService, PlatformService, ProgressBarService, ProgressInterceptor, PropertyGetPipe, RESERVED_END_COLUMNS, RESERVED_START_COLUMNS, Referential, ReferentialFilter, ReferentialRef, ReferentialUtils, ReferentialValidatorService, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SHARED_MATERIAL_TESTING_PAGES, SHARED_TESTING_PAGES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBadgeIconModule, SharedMatBooleanModule, SharedMatChipsModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedTestsPage, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, TableTestPage, TableTestingModule, TextForm, TextPopover, TextPopoverTestingModule, TextPopoverTestingPage, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UploadFile, UploadFileComponent, UploadFilePopover, UploadFileTestingModule, UploadFileTestingPage, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, equals, equalsOrNil, fadeInAnimation, fadeInOutAnimation, filterFalse, filterNotNil, filterNumberInput, filterTrue, firstArrayValue, firstFalse, firstFalsePromise, firstNotNil, firstNotNilPromise, firstTrue, firstTruePromise, focusInput, focusNextInput, focusPreviousInput, formatLatitude, formatLongitude, fromDateISOString, fromScrollEndEvent, fromUnixMsTimestamp, fromUnixTimestamp, getCaretPosition, getColorContrast, getColorShade, getColorTint, getConnectionType, getControlFromPath, getFocusableInputElements, getFormErrors, getFormValueFromEntity, getProperty, getPropertyByPath, getPropertyByPathAsString, getRandomImage, hexToRgb, hexToRgbArray, isAndroid, isControlHasInput, isCordova, isDesktop, isEmptyArray, isIOS, isInputElement, isInstanceOf, isInt, isMobile, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, isTouchUi, isWindow, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchMedia, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, testUserAgent, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, ɵ0$1 as ɵ0, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, isFocusableElement as ɵc, RegisterForm as ɵd, AccountValidatorService as ɵe, RegisterModal as ɵf, UserSettingsValidatorService as ɵg, LocalSettingsValidatorService as ɵh, AppIconComponent as ɵi, NumpadTestPage as ɵj, MatBadgeIconTestPage as ɵk, ToastTestingModule as ɵl, ToastTestingPage as ɵm };
|
|
26422
26413
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|