@sumaris-net/ngx-components 1.7.3 → 1.7.4
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 +263 -287
- 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 +1 -1
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +2 -2
- package/fesm2015/sumaris-net.ngx-components.js +256 -271
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- 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, ViewChildren, HostListener, 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, ViewChildren, HostListener, 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, 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, AlertController, IonicRouteStrategy, NavParams, MenuController, IonContent } from '@ionic/angular';
|
|
45
38
|
import * as momentImported from 'moment';
|
|
46
39
|
import { isMoment } from 'moment';
|
|
47
|
-
import * as i1 from '@angular/material-moment-adapter';
|
|
48
40
|
import { MomentDateAdapter, MatMomentDateModule } from '@angular/material-moment-adapter';
|
|
49
41
|
import { Keyboard } from '@ionic-native/keyboard/ngx';
|
|
50
42
|
import { TextMaskModule } from 'angular2-text-mask';
|
|
@@ -54,38 +46,32 @@ import { trigger, state, style, transition, animate } from '@angular/animations'
|
|
|
54
46
|
import { MatDividerModule } from '@angular/material/divider';
|
|
55
47
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
56
48
|
import { MatChipsModule } from '@angular/material/chips';
|
|
57
|
-
import * as i3$3 from '@angular/router';
|
|
58
49
|
import { Router, RouterModule, RouteReuseStrategy, ActivatedRoute } from '@angular/router';
|
|
59
|
-
import * as i1$5 from '@angular/platform-browser';
|
|
60
50
|
import { HammerGestureConfig, EventManager } from '@angular/platform-browser';
|
|
61
|
-
import * as i2$2 from '@angular/common/http';
|
|
62
51
|
import { HttpResponse, HttpClient, HttpHeaders, HTTP_INTERCEPTORS, HttpClientModule } from '@angular/common/http';
|
|
63
52
|
import { ColorPickerModule } from 'ngx-color-picker';
|
|
64
|
-
import { NativeAudio } from '@ionic-native/native-audio/ngx';
|
|
65
|
-
import { Vibration } from '@ionic-native/vibration/ngx';
|
|
53
|
+
import { NativeAudio as NativeAudio$1 } from '@ionic-native/native-audio/ngx';
|
|
54
|
+
import { Vibration as Vibration$1 } from '@ionic-native/vibration/ngx';
|
|
66
55
|
import { AudioManagement } from '@ionic-native/audio-management/ngx';
|
|
67
|
-
import
|
|
68
|
-
import
|
|
69
|
-
import
|
|
56
|
+
import { NativeAudio } from '@ionic-native/native-audio/ngx/index';
|
|
57
|
+
import { Vibration } from '@ionic-native/vibration/ngx/index';
|
|
58
|
+
import { AudioManagement as AudioManagement$1 } from '@ionic-native/audio-management/ngx/index';
|
|
70
59
|
import * as uuidv4Imported from 'uuid/v4';
|
|
71
60
|
import { DragDropModule } from '@angular/cdk/drag-drop';
|
|
72
61
|
import { MarkdownModule } from 'ngx-markdown';
|
|
73
62
|
import { sign, box, hash, verify } from 'tweetnacl';
|
|
74
|
-
import * as i3$1 from '@ionic/storage';
|
|
75
63
|
import { Storage, IonicStorageModule } from '@ionic/storage';
|
|
76
64
|
import 'zone.js/dist/zone-error';
|
|
77
|
-
import { SplashScreen } from '@ionic-native/splash-screen/ngx';
|
|
78
|
-
import { Connection, Network } from '@ionic-native/network/ngx';
|
|
79
|
-
import { CacheService, CacheModule } from 'ionic-cache';
|
|
80
|
-
import
|
|
81
|
-
import
|
|
82
|
-
import
|
|
83
|
-
import { StatusBar } from '@ionic-native/status-bar/ngx';
|
|
84
|
-
import * as i2$4 from '@angular/cdk/platform';
|
|
65
|
+
import { SplashScreen as SplashScreen$1 } from '@ionic-native/splash-screen/ngx';
|
|
66
|
+
import { Connection, Network as Network$1 } from '@ionic-native/network/ngx';
|
|
67
|
+
import { CacheService as CacheService$1, CacheModule } from 'ionic-cache';
|
|
68
|
+
import { CacheService } from 'ionic-cache/dist/cache.service';
|
|
69
|
+
import { Network } from '@ionic-native/network/ngx/index';
|
|
70
|
+
import { SplashScreen } from '@ionic-native/splash-screen/ngx/index';
|
|
71
|
+
import { StatusBar as StatusBar$1 } from '@ionic-native/status-bar/ngx';
|
|
85
72
|
import { Platform as Platform$1 } from '@angular/cdk/platform';
|
|
86
|
-
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx';
|
|
73
|
+
import { InAppBrowser as InAppBrowser$1 } from '@ionic-native/in-app-browser/ngx';
|
|
87
74
|
import { ApolloLink, NetworkStatus, InMemoryCache, ApolloClient, gql } from '@apollo/client/core';
|
|
88
|
-
import * as i2$3 from 'apollo-angular';
|
|
89
75
|
import { Apollo } from 'apollo-angular';
|
|
90
76
|
import { WebSocketLink } from '@apollo/client/link/ws';
|
|
91
77
|
import { getMainDefinition } from '@apollo/client/utilities';
|
|
@@ -93,14 +79,13 @@ import { RetryLink } from '@apollo/client/link/retry';
|
|
|
93
79
|
import QueueLink from 'apollo-link-queue';
|
|
94
80
|
import SerializingLink from 'apollo-link-serialize';
|
|
95
81
|
import loggerLink from 'apollo-link-logger';
|
|
96
|
-
import * as i3$2 from 'apollo-angular/http';
|
|
97
82
|
import { HttpLink } from 'apollo-angular/http';
|
|
98
83
|
import { IonicStorageWrapper, persistCache } from 'apollo3-cache-persist';
|
|
99
|
-
import { NotificationVisibility, Downloader } from '@ionic-native/downloader/ngx';
|
|
100
|
-
import
|
|
101
|
-
import
|
|
102
|
-
import
|
|
103
|
-
import
|
|
84
|
+
import { NotificationVisibility, Downloader as Downloader$1 } from '@ionic-native/downloader/ngx';
|
|
85
|
+
import { StatusBar } from '@ionic-native/status-bar/ngx/index';
|
|
86
|
+
import { Keyboard as Keyboard$1 } from '@ionic-native/keyboard/ngx/index';
|
|
87
|
+
import { InAppBrowser } from '@ionic-native/in-app-browser/ngx/index';
|
|
88
|
+
import { Downloader } from '@ionic-native/downloader/ngx/index';
|
|
104
89
|
import { ValidatorService, TableDataSource } from '@e-is/ngx-material-table';
|
|
105
90
|
import { SelectionModel } from '@angular/cdk/collections';
|
|
106
91
|
import { NgxJdenticonModule } from 'ngx-jdenticon';
|
|
@@ -991,14 +976,14 @@ class MatAutocompleteConfigHolder {
|
|
|
991
976
|
return this.fields[fieldName] || this.add(fieldName);
|
|
992
977
|
}
|
|
993
978
|
}
|
|
994
|
-
const noop
|
|
995
|
-
const ɵ0
|
|
979
|
+
const noop = (_) => { };
|
|
980
|
+
const ɵ0 = noop;
|
|
996
981
|
class MatAutocompleteField {
|
|
997
982
|
constructor(cd, formGroupDir) {
|
|
998
983
|
this.cd = cd;
|
|
999
984
|
this.formGroupDir = formGroupDir;
|
|
1000
|
-
this._onChangeCallback = noop
|
|
1001
|
-
this._onTouchedCallback = noop
|
|
985
|
+
this._onChangeCallback = noop;
|
|
986
|
+
this._onTouchedCallback = noop;
|
|
1002
987
|
this.logPrefix = '[mat-autocomplete] ';
|
|
1003
988
|
this.formControlName = null;
|
|
1004
989
|
this.required = false;
|
|
@@ -1636,7 +1621,7 @@ MatAutocompleteField.decorators = [
|
|
|
1636
1621
|
{ type: Component, args: [{
|
|
1637
1622
|
// eslint-disable-next-line @angular-eslint/component-selector
|
|
1638
1623
|
selector: 'mat-autocomplete-field',
|
|
1639
|
-
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)=\"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",
|
|
1624
|
+
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",
|
|
1640
1625
|
providers: [{
|
|
1641
1626
|
provide: NG_VALUE_ACCESSOR,
|
|
1642
1627
|
multi: true,
|
|
@@ -1718,7 +1703,7 @@ class DateFormatPipe {
|
|
|
1718
1703
|
return this.dateAdapter.format(date, displayFormat);
|
|
1719
1704
|
}
|
|
1720
1705
|
}
|
|
1721
|
-
DateFormatPipe.ɵprov =
|
|
1706
|
+
DateFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFormatPipe_Factory() { return new DateFormatPipe(ɵɵinject(MomentDateAdapter), ɵɵinject(TranslateService)); }, token: DateFormatPipe, providedIn: "root" });
|
|
1722
1707
|
DateFormatPipe.decorators = [
|
|
1723
1708
|
{ type: Pipe, args: [{
|
|
1724
1709
|
name: 'dateFormat'
|
|
@@ -1730,7 +1715,7 @@ DateFormatPipe.ctorParameters = () => [
|
|
|
1730
1715
|
{ type: TranslateService }
|
|
1731
1716
|
];
|
|
1732
1717
|
|
|
1733
|
-
const moment
|
|
1718
|
+
const moment = momentImported;
|
|
1734
1719
|
class DateDiffDurationPipe {
|
|
1735
1720
|
constructor(dateAdapter, translate) {
|
|
1736
1721
|
this.dateAdapter = dateAdapter;
|
|
@@ -1746,17 +1731,17 @@ class DateDiffDurationPipe {
|
|
|
1746
1731
|
return this.format(startDate, endDate);
|
|
1747
1732
|
}
|
|
1748
1733
|
format(startDate, endDate) {
|
|
1749
|
-
const duration = moment
|
|
1734
|
+
const duration = moment.duration(endDate.diff(startDate));
|
|
1750
1735
|
if (duration.asMinutes() < 0)
|
|
1751
1736
|
return '';
|
|
1752
|
-
const timeDuration = moment
|
|
1737
|
+
const timeDuration = moment(0)
|
|
1753
1738
|
.hour(duration.hours())
|
|
1754
1739
|
.minute(duration.minutes());
|
|
1755
1740
|
const days = Math.floor(duration.asDays());
|
|
1756
1741
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + timeDuration.format('HH:mm');
|
|
1757
1742
|
}
|
|
1758
1743
|
}
|
|
1759
|
-
DateDiffDurationPipe.ɵprov =
|
|
1744
|
+
DateDiffDurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateDiffDurationPipe_Factory() { return new DateDiffDurationPipe(ɵɵinject(DateAdapter), ɵɵinject(TranslateService)); }, token: DateDiffDurationPipe, providedIn: "root" });
|
|
1760
1745
|
DateDiffDurationPipe.decorators = [
|
|
1761
1746
|
{ type: Pipe, args: [{
|
|
1762
1747
|
name: 'dateDiffDuration'
|
|
@@ -1777,7 +1762,7 @@ class DateFromNowPipe {
|
|
|
1777
1762
|
return date ? date.fromNow(args && args.withoutSuffix) : '';
|
|
1778
1763
|
}
|
|
1779
1764
|
}
|
|
1780
|
-
DateFromNowPipe.ɵprov =
|
|
1765
|
+
DateFromNowPipe.ɵprov = ɵɵdefineInjectable({ factory: function DateFromNowPipe_Factory() { return new DateFromNowPipe(ɵɵinject(MomentDateAdapter)); }, token: DateFromNowPipe, providedIn: "root" });
|
|
1781
1766
|
DateFromNowPipe.decorators = [
|
|
1782
1767
|
{ type: Pipe, args: [{
|
|
1783
1768
|
name: 'dateFromNow'
|
|
@@ -1846,7 +1831,7 @@ function formatToDD(value, opts) {
|
|
|
1846
1831
|
value *= -1;
|
|
1847
1832
|
}
|
|
1848
1833
|
}
|
|
1849
|
-
let degrees = roundFloat
|
|
1834
|
+
let degrees = roundFloat(value, opts.maxDecimals).toString();
|
|
1850
1835
|
// Add sign
|
|
1851
1836
|
let sign = negative ? '-' : '+';
|
|
1852
1837
|
if (opts.placeholderChar) {
|
|
@@ -1897,7 +1882,7 @@ function formatToDDMMSS(value, opts) {
|
|
|
1897
1882
|
}
|
|
1898
1883
|
let degrees = Math.trunc(value);
|
|
1899
1884
|
let minutes = Math.trunc((value - degrees) * 60);
|
|
1900
|
-
let seconds = roundFloat
|
|
1885
|
+
let seconds = roundFloat(((value - degrees) * 60 - minutes) * 60, opts.maxDecimals);
|
|
1901
1886
|
while (seconds >= 60) {
|
|
1902
1887
|
seconds -= 60;
|
|
1903
1888
|
minutes += 1;
|
|
@@ -1965,7 +1950,7 @@ function formatToDDMM(value, opts) {
|
|
|
1965
1950
|
}
|
|
1966
1951
|
}
|
|
1967
1952
|
let degrees = Math.trunc(value);
|
|
1968
|
-
let minutes = roundFloat
|
|
1953
|
+
let minutes = roundFloat((value - degrees) * 60, opts.maxDecimals);
|
|
1969
1954
|
while (minutes >= 60) {
|
|
1970
1955
|
minutes -= 60;
|
|
1971
1956
|
degrees += 1;
|
|
@@ -2016,15 +2001,15 @@ function parseLatitudeOrLongitude(input, pattern, maxDecimals, placeholderChar)
|
|
|
2016
2001
|
return NaN;
|
|
2017
2002
|
}
|
|
2018
2003
|
if (pattern === 'DD')
|
|
2019
|
-
return roundFloat
|
|
2004
|
+
return roundFloat(degrees, maxDecimals);
|
|
2020
2005
|
const minutes = (pattern === 'DDMMSS' || pattern === 'DDMM') && parts[1] && parseFloat(parts[1].replace(/,/g, '.')) || 0;
|
|
2021
2006
|
const seconds = (pattern === 'DDMMSS') && parts[2] && parseFloat(parts[2].replace(/,/g, '.')) || 0;
|
|
2022
2007
|
const direction = ((pattern === 'DDMMSS') && parts[3]) || ((pattern === 'DDMM') && parts[2]) || undefined;
|
|
2023
2008
|
const sign = (direction && (direction === 's' || direction === 'S' || direction === 'w' || direction === 'W')) ? -1 : 1;
|
|
2024
2009
|
degrees = sign * (degrees + minutes / 60 + seconds / (60 * 60));
|
|
2025
|
-
return roundFloat
|
|
2010
|
+
return roundFloat(degrees, maxDecimals);
|
|
2026
2011
|
}
|
|
2027
|
-
function roundFloat
|
|
2012
|
+
function roundFloat(input, maxDecimals) {
|
|
2028
2013
|
if (maxDecimals > 0) {
|
|
2029
2014
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
2030
2015
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -2044,7 +2029,7 @@ class LatLongFormatPipe {
|
|
|
2044
2029
|
return ((!args.type || args.type !== 'latitude') ? formatLongitude : formatLatitude)(value, args);
|
|
2045
2030
|
}
|
|
2046
2031
|
}
|
|
2047
|
-
LatLongFormatPipe.ɵprov =
|
|
2032
|
+
LatLongFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatLongFormatPipe_Factory() { return new LatLongFormatPipe(); }, token: LatLongFormatPipe, providedIn: "root" });
|
|
2048
2033
|
LatLongFormatPipe.decorators = [
|
|
2049
2034
|
{ type: Pipe, args: [{
|
|
2050
2035
|
name: 'latLongFormat'
|
|
@@ -2056,7 +2041,7 @@ class LatitudeFormatPipe {
|
|
|
2056
2041
|
this.transform = formatLatitude;
|
|
2057
2042
|
}
|
|
2058
2043
|
}
|
|
2059
|
-
LatitudeFormatPipe.ɵprov =
|
|
2044
|
+
LatitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LatitudeFormatPipe_Factory() { return new LatitudeFormatPipe(); }, token: LatitudeFormatPipe, providedIn: "root" });
|
|
2060
2045
|
LatitudeFormatPipe.decorators = [
|
|
2061
2046
|
{ type: Pipe, args: [{
|
|
2062
2047
|
name: 'latitudeFormat'
|
|
@@ -2068,7 +2053,7 @@ class LongitudeFormatPipe {
|
|
|
2068
2053
|
this.transform = formatLongitude;
|
|
2069
2054
|
}
|
|
2070
2055
|
}
|
|
2071
|
-
LongitudeFormatPipe.ɵprov =
|
|
2056
|
+
LongitudeFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function LongitudeFormatPipe_Factory() { return new LongitudeFormatPipe(); }, token: LongitudeFormatPipe, providedIn: "root" });
|
|
2072
2057
|
LongitudeFormatPipe.decorators = [
|
|
2073
2058
|
{ type: Pipe, args: [{
|
|
2074
2059
|
name: 'longitudeFormat'
|
|
@@ -2088,7 +2073,7 @@ class NumberFormatPipe {
|
|
|
2088
2073
|
}
|
|
2089
2074
|
}
|
|
2090
2075
|
}
|
|
2091
|
-
NumberFormatPipe.ɵprov =
|
|
2076
|
+
NumberFormatPipe.ɵprov = ɵɵdefineInjectable({ factory: function NumberFormatPipe_Factory() { return new NumberFormatPipe(); }, token: NumberFormatPipe, providedIn: "root" });
|
|
2092
2077
|
NumberFormatPipe.decorators = [
|
|
2093
2078
|
{ type: Pipe, args: [{
|
|
2094
2079
|
name: 'numberFormat'
|
|
@@ -2128,7 +2113,7 @@ class HighlightPipe {
|
|
|
2128
2113
|
}
|
|
2129
2114
|
}
|
|
2130
2115
|
}
|
|
2131
|
-
HighlightPipe.ɵprov =
|
|
2116
|
+
HighlightPipe.ɵprov = ɵɵdefineInjectable({ factory: function HighlightPipe_Factory() { return new HighlightPipe(); }, token: HighlightPipe, providedIn: "root" });
|
|
2132
2117
|
HighlightPipe.decorators = [
|
|
2133
2118
|
{ type: Pipe, args: [{
|
|
2134
2119
|
name: 'highlight'
|
|
@@ -2193,7 +2178,7 @@ FileSizePipe.decorators = [
|
|
|
2193
2178
|
{ type: Pipe, args: [{ name: 'fileSize' },] }
|
|
2194
2179
|
];
|
|
2195
2180
|
|
|
2196
|
-
const moment$
|
|
2181
|
+
const moment$1 = momentImported;
|
|
2197
2182
|
const DATE_UNIX_TIMESTAMP = 'X';
|
|
2198
2183
|
const DATE_UNIX_MS_TIMESTAMP = 'x';
|
|
2199
2184
|
class DateUtils {
|
|
@@ -2235,32 +2220,32 @@ function fromDateISOString(value) {
|
|
|
2235
2220
|
if (!value || isMoment(value))
|
|
2236
2221
|
return value;
|
|
2237
2222
|
// Parse the input value, as a ISO date time
|
|
2238
|
-
const date = moment$
|
|
2223
|
+
const date = moment$1(value, DATE_ISO_PATTERN);
|
|
2239
2224
|
if (date.isValid())
|
|
2240
2225
|
return date;
|
|
2241
2226
|
// Not valid: trying to convert from unix timestamp
|
|
2242
2227
|
if (typeof value === 'string') {
|
|
2243
2228
|
console.warn('Wrong date format - Trying to convert from local time: ' + value);
|
|
2244
2229
|
if (value.length === 10) {
|
|
2245
|
-
return moment$
|
|
2230
|
+
return moment$1(value, DATE_UNIX_TIMESTAMP);
|
|
2246
2231
|
}
|
|
2247
2232
|
else if (value.length === 13) {
|
|
2248
|
-
return moment$
|
|
2233
|
+
return moment$1(value, DATE_UNIX_MS_TIMESTAMP);
|
|
2249
2234
|
}
|
|
2250
2235
|
}
|
|
2251
2236
|
console.warn('Unable to parse date: ' + value);
|
|
2252
2237
|
return undefined;
|
|
2253
2238
|
}
|
|
2254
2239
|
function fromUnixTimestamp(timeInSec) {
|
|
2255
|
-
return moment$
|
|
2240
|
+
return moment$1(timeInSec, DATE_UNIX_TIMESTAMP);
|
|
2256
2241
|
}
|
|
2257
2242
|
function fromUnixMsTimestamp(timeInMs) {
|
|
2258
|
-
return moment$
|
|
2243
|
+
return moment$1(timeInMs, DATE_UNIX_MS_TIMESTAMP);
|
|
2259
2244
|
}
|
|
2260
2245
|
function toDuration(value, unit) {
|
|
2261
2246
|
if (!value)
|
|
2262
2247
|
return undefined;
|
|
2263
|
-
const duration = moment$
|
|
2248
|
+
const duration = moment$1.duration(value, unit);
|
|
2264
2249
|
// fix 990+ ms
|
|
2265
2250
|
if (duration.milliseconds() >= 990) {
|
|
2266
2251
|
duration.add(1000 - duration.milliseconds(), 'ms');
|
|
@@ -2289,7 +2274,7 @@ class DurationPipe {
|
|
|
2289
2274
|
return (days > 0 ? days.toString() + (this.dayUnit + ' ') : '') + hour + ':' + minute;
|
|
2290
2275
|
}
|
|
2291
2276
|
}
|
|
2292
|
-
DurationPipe.ɵprov =
|
|
2277
|
+
DurationPipe.ɵprov = ɵɵdefineInjectable({ factory: function DurationPipe_Factory() { return new DurationPipe(ɵɵinject(TranslateService)); }, token: DurationPipe, providedIn: "root" });
|
|
2293
2278
|
DurationPipe.decorators = [
|
|
2294
2279
|
{ type: Pipe, args: [{
|
|
2295
2280
|
name: 'duration'
|
|
@@ -2310,7 +2295,7 @@ class MathAbsPipe {
|
|
|
2310
2295
|
}
|
|
2311
2296
|
}
|
|
2312
2297
|
}
|
|
2313
|
-
MathAbsPipe.ɵprov =
|
|
2298
|
+
MathAbsPipe.ɵprov = ɵɵdefineInjectable({ factory: function MathAbsPipe_Factory() { return new MathAbsPipe(); }, token: MathAbsPipe, providedIn: "root" });
|
|
2314
2299
|
MathAbsPipe.decorators = [
|
|
2315
2300
|
{ type: Pipe, args: [{
|
|
2316
2301
|
name: 'mathAbs'
|
|
@@ -2322,7 +2307,7 @@ class EvenPipe {
|
|
|
2322
2307
|
return val % 2 === 0;
|
|
2323
2308
|
}
|
|
2324
2309
|
}
|
|
2325
|
-
EvenPipe.ɵprov =
|
|
2310
|
+
EvenPipe.ɵprov = ɵɵdefineInjectable({ factory: function EvenPipe_Factory() { return new EvenPipe(); }, token: EvenPipe, providedIn: "root" });
|
|
2326
2311
|
EvenPipe.decorators = [
|
|
2327
2312
|
{ type: Pipe, args: [{
|
|
2328
2313
|
name: 'even'
|
|
@@ -2334,7 +2319,7 @@ class OddPipe {
|
|
|
2334
2319
|
return val % 2 !== 0;
|
|
2335
2320
|
}
|
|
2336
2321
|
}
|
|
2337
|
-
OddPipe.ɵprov =
|
|
2322
|
+
OddPipe.ɵprov = ɵɵdefineInjectable({ factory: function OddPipe_Factory() { return new OddPipe(); }, token: OddPipe, providedIn: "root" });
|
|
2338
2323
|
OddPipe.decorators = [
|
|
2339
2324
|
{ type: Pipe, args: [{
|
|
2340
2325
|
name: 'odd'
|
|
@@ -2442,7 +2427,7 @@ class MapGetPipe {
|
|
|
2442
2427
|
return val[key];
|
|
2443
2428
|
}
|
|
2444
2429
|
}
|
|
2445
|
-
MapGetPipe.ɵprov =
|
|
2430
|
+
MapGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapGetPipe_Factory() { return new MapGetPipe(); }, token: MapGetPipe, providedIn: "root" });
|
|
2446
2431
|
MapGetPipe.decorators = [
|
|
2447
2432
|
{ type: Pipe, args: [{
|
|
2448
2433
|
name: 'mapGet'
|
|
@@ -2456,7 +2441,7 @@ class MapKeysPipe {
|
|
|
2456
2441
|
return Object.keys(map);
|
|
2457
2442
|
}
|
|
2458
2443
|
}
|
|
2459
|
-
MapKeysPipe.ɵprov =
|
|
2444
|
+
MapKeysPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapKeysPipe_Factory() { return new MapKeysPipe(); }, token: MapKeysPipe, providedIn: "root" });
|
|
2460
2445
|
MapKeysPipe.decorators = [
|
|
2461
2446
|
{ type: Pipe, args: [{
|
|
2462
2447
|
name: 'mapKeys'
|
|
@@ -2470,7 +2455,7 @@ class MapValuesPipe {
|
|
|
2470
2455
|
return Object.values(map);
|
|
2471
2456
|
}
|
|
2472
2457
|
}
|
|
2473
|
-
MapValuesPipe.ɵprov =
|
|
2458
|
+
MapValuesPipe.ɵprov = ɵɵdefineInjectable({ factory: function MapValuesPipe_Factory() { return new MapValuesPipe(); }, token: MapValuesPipe, providedIn: "root" });
|
|
2474
2459
|
MapValuesPipe.decorators = [
|
|
2475
2460
|
{ type: Pipe, args: [{
|
|
2476
2461
|
name: 'mapValues'
|
|
@@ -2483,7 +2468,7 @@ class IsNotNilOrBlankPipe {
|
|
|
2483
2468
|
return isNotNilOrBlank(value);
|
|
2484
2469
|
}
|
|
2485
2470
|
}
|
|
2486
|
-
IsNotNilOrBlankPipe.ɵprov =
|
|
2471
|
+
IsNotNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotNilOrBlankPipe_Factory() { return new IsNotNilOrBlankPipe(); }, token: IsNotNilOrBlankPipe, providedIn: "root" });
|
|
2487
2472
|
IsNotNilOrBlankPipe.decorators = [
|
|
2488
2473
|
{ type: Pipe, args: [{
|
|
2489
2474
|
name: 'isNotNilOrBlank'
|
|
@@ -2495,7 +2480,7 @@ class IsNilOrBlankPipe {
|
|
|
2495
2480
|
return isNilOrBlank(value);
|
|
2496
2481
|
}
|
|
2497
2482
|
}
|
|
2498
|
-
IsNilOrBlankPipe.ɵprov =
|
|
2483
|
+
IsNilOrBlankPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNilOrBlankPipe_Factory() { return new IsNilOrBlankPipe(); }, token: IsNilOrBlankPipe, providedIn: "root" });
|
|
2499
2484
|
IsNilOrBlankPipe.decorators = [
|
|
2500
2485
|
{ type: Pipe, args: [{
|
|
2501
2486
|
name: 'isNilOrBlank'
|
|
@@ -2507,7 +2492,7 @@ class ToStringPipe {
|
|
|
2507
2492
|
return (value !== null && value !== undefined) ? value.toString() : '';
|
|
2508
2493
|
}
|
|
2509
2494
|
}
|
|
2510
|
-
ToStringPipe.ɵprov =
|
|
2495
|
+
ToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function ToStringPipe_Factory() { return new ToStringPipe(); }, token: ToStringPipe, providedIn: "root" });
|
|
2511
2496
|
ToStringPipe.decorators = [
|
|
2512
2497
|
{ type: Pipe, args: [{
|
|
2513
2498
|
name: 'toString'
|
|
@@ -2519,7 +2504,7 @@ class StrLengthPipe {
|
|
|
2519
2504
|
return value && value.length || 0;
|
|
2520
2505
|
}
|
|
2521
2506
|
}
|
|
2522
|
-
StrLengthPipe.ɵprov =
|
|
2507
|
+
StrLengthPipe.ɵprov = ɵɵdefineInjectable({ factory: function StrLengthPipe_Factory() { return new StrLengthPipe(); }, token: StrLengthPipe, providedIn: "root" });
|
|
2523
2508
|
StrLengthPipe.decorators = [
|
|
2524
2509
|
{ type: Pipe, args: [{
|
|
2525
2510
|
name: 'strLength'
|
|
@@ -2596,7 +2581,7 @@ class TranslateContextService {
|
|
|
2596
2581
|
return translations[keys[keys.length - 1]]; // Return the last keys translation
|
|
2597
2582
|
}
|
|
2598
2583
|
}
|
|
2599
|
-
TranslateContextService.ɵprov =
|
|
2584
|
+
TranslateContextService.ɵprov = ɵɵdefineInjectable({ factory: function TranslateContextService_Factory() { return new TranslateContextService(ɵɵinject(TranslateService)); }, token: TranslateContextService, providedIn: "root" });
|
|
2600
2585
|
TranslateContextService.decorators = [
|
|
2601
2586
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
2602
2587
|
];
|
|
@@ -2646,7 +2631,7 @@ class PropertyGetPipe {
|
|
|
2646
2631
|
args && args.defaultValue);
|
|
2647
2632
|
}
|
|
2648
2633
|
}
|
|
2649
|
-
PropertyGetPipe.ɵprov =
|
|
2634
|
+
PropertyGetPipe.ɵprov = ɵɵdefineInjectable({ factory: function PropertyGetPipe_Factory() { return new PropertyGetPipe(); }, token: PropertyGetPipe, providedIn: "root" });
|
|
2650
2635
|
PropertyGetPipe.decorators = [
|
|
2651
2636
|
{ type: Pipe, args: [{
|
|
2652
2637
|
name: 'propertyGet'
|
|
@@ -2671,7 +2656,7 @@ NgInitDirective.propDecorators = {
|
|
|
2671
2656
|
ngInit: [{ type: Output }]
|
|
2672
2657
|
};
|
|
2673
2658
|
|
|
2674
|
-
const moment$
|
|
2659
|
+
const moment$2 = momentImported;
|
|
2675
2660
|
// @dynamic
|
|
2676
2661
|
class SharedValidators {
|
|
2677
2662
|
static getDoubleRegexp(maxDecimals) {
|
|
@@ -2688,7 +2673,7 @@ class SharedValidators {
|
|
|
2688
2673
|
}
|
|
2689
2674
|
static validDate(control) {
|
|
2690
2675
|
const value = control.value;
|
|
2691
|
-
const date = !value || moment$
|
|
2676
|
+
const date = !value || moment$2.isMoment(value) ? value : moment$2(control.value, DATE_ISO_PATTERN);
|
|
2692
2677
|
if (date && (!date.isValid() || date.year() < 1970)) {
|
|
2693
2678
|
return { validDate: true };
|
|
2694
2679
|
}
|
|
@@ -3762,7 +3747,7 @@ class FormErrorTranslator {
|
|
|
3762
3747
|
return errorKey;
|
|
3763
3748
|
}
|
|
3764
3749
|
}
|
|
3765
|
-
FormErrorTranslator.ɵprov =
|
|
3750
|
+
FormErrorTranslator.ɵprov = ɵɵdefineInjectable({ factory: function FormErrorTranslator_Factory() { return new FormErrorTranslator(ɵɵinject(TranslateService), ɵɵinject(APP_FORM_ERROR_I18N_KEYS, 8)); }, token: FormErrorTranslator, providedIn: "root" });
|
|
3766
3751
|
FormErrorTranslator.decorators = [
|
|
3767
3752
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
3768
3753
|
];
|
|
@@ -4114,9 +4099,9 @@ function parseDuration(input, maxDecimals, placeholderChar) {
|
|
|
4114
4099
|
const hour = parseInt(durationParts[0] || '0');
|
|
4115
4100
|
const minute = parseInt(durationParts[1] || '0');
|
|
4116
4101
|
const value = hour + (minute + 0.5) / 60;
|
|
4117
|
-
return roundFloat(value, maxDecimals);
|
|
4102
|
+
return roundFloat$1(value, maxDecimals);
|
|
4118
4103
|
}
|
|
4119
|
-
function roundFloat(input, maxDecimals) {
|
|
4104
|
+
function roundFloat$1(input, maxDecimals) {
|
|
4120
4105
|
if (maxDecimals > 0) {
|
|
4121
4106
|
const powDecimal = Math.pow(10, maxDecimals);
|
|
4122
4107
|
return Math.trunc(input * powDecimal + 0.5) / powDecimal;
|
|
@@ -4140,9 +4125,9 @@ const MASKS = {
|
|
|
4140
4125
|
DD: [/[+-]/, /\d/, /\d/, /\d/, '.', /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, /\d/, '°']
|
|
4141
4126
|
}
|
|
4142
4127
|
};
|
|
4143
|
-
const noop$
|
|
4128
|
+
const noop$1 = () => {
|
|
4144
4129
|
};
|
|
4145
|
-
const ɵ0$
|
|
4130
|
+
const ɵ0$1 = noop$1;
|
|
4146
4131
|
class MatLatLongField {
|
|
4147
4132
|
constructor(platform, translate, formBuilder, cd, formGroupDir) {
|
|
4148
4133
|
this.platform = platform;
|
|
@@ -4150,8 +4135,8 @@ class MatLatLongField {
|
|
|
4150
4135
|
this.formBuilder = formBuilder;
|
|
4151
4136
|
this.cd = cd;
|
|
4152
4137
|
this.formGroupDir = formGroupDir;
|
|
4153
|
-
this._onChangeCallback = noop$
|
|
4154
|
-
this._onTouchedCallback = noop$
|
|
4138
|
+
this._onChangeCallback = noop$1;
|
|
4139
|
+
this._onTouchedCallback = noop$1;
|
|
4155
4140
|
this._subscription = new Subscription();
|
|
4156
4141
|
this.disabling = false;
|
|
4157
4142
|
this.writing = false;
|
|
@@ -4488,14 +4473,14 @@ SharedMatLatLongModule.decorators = [
|
|
|
4488
4473
|
},] }
|
|
4489
4474
|
];
|
|
4490
4475
|
|
|
4491
|
-
const DEFAULT_VALUE_ACCESSOR
|
|
4476
|
+
const DEFAULT_VALUE_ACCESSOR = {
|
|
4492
4477
|
provide: NG_VALUE_ACCESSOR,
|
|
4493
4478
|
useExisting: forwardRef(() => MatDate),
|
|
4494
4479
|
multi: true
|
|
4495
4480
|
};
|
|
4496
|
-
const DAY_MASK
|
|
4497
|
-
const noop$
|
|
4498
|
-
const ɵ0$
|
|
4481
|
+
const DAY_MASK = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4482
|
+
const noop$2 = () => { };
|
|
4483
|
+
const ɵ0$2 = noop$2;
|
|
4499
4484
|
class MatDate {
|
|
4500
4485
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4501
4486
|
this.dateAdapter = dateAdapter;
|
|
@@ -4504,12 +4489,12 @@ class MatDate {
|
|
|
4504
4489
|
this.cd = cd;
|
|
4505
4490
|
this.keyboard = keyboard;
|
|
4506
4491
|
this.formGroupDir = formGroupDir;
|
|
4507
|
-
this._onChangeCallback = noop$
|
|
4508
|
-
this._onTouchedCallback = noop$
|
|
4492
|
+
this._onChangeCallback = noop$2;
|
|
4493
|
+
this._onTouchedCallback = noop$2;
|
|
4509
4494
|
this._subscription = new Subscription();
|
|
4510
4495
|
this.writing = true;
|
|
4511
4496
|
this.disabling = false;
|
|
4512
|
-
this.dayMask = DAY_MASK
|
|
4497
|
+
this.dayMask = DAY_MASK;
|
|
4513
4498
|
this.disabled = false;
|
|
4514
4499
|
this.floatLabel = 'auto';
|
|
4515
4500
|
this.readonly = false;
|
|
@@ -4746,7 +4731,7 @@ MatDate.decorators = [
|
|
|
4746
4731
|
selector: 'mat-date-field',
|
|
4747
4732
|
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",
|
|
4748
4733
|
providers: [
|
|
4749
|
-
DEFAULT_VALUE_ACCESSOR
|
|
4734
|
+
DEFAULT_VALUE_ACCESSOR,
|
|
4750
4735
|
],
|
|
4751
4736
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
4752
4737
|
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%}"]
|
|
@@ -4779,17 +4764,17 @@ MatDate.propDecorators = {
|
|
|
4779
4764
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
4780
4765
|
};
|
|
4781
4766
|
|
|
4782
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
4767
|
+
const DEFAULT_VALUE_ACCESSOR$1 = {
|
|
4783
4768
|
provide: NG_VALUE_ACCESSOR,
|
|
4784
4769
|
useExisting: forwardRef(() => MatDateTime),
|
|
4785
4770
|
multi: true
|
|
4786
4771
|
};
|
|
4787
4772
|
const DAY_MASK$1 = [/\d/, /\d/, '/', /\d/, /\d/, '/', /\d/, /\d/, /\d/, /\d/];
|
|
4788
4773
|
const HOUR_REGEXP = /^[012][0-9][:][012345][0-9]$/;
|
|
4789
|
-
const HOUR_MASK
|
|
4790
|
-
const noop$
|
|
4774
|
+
const HOUR_MASK = [/[012]/, /\d/, ':', /[012345]/, /\d/];
|
|
4775
|
+
const noop$3 = () => {
|
|
4791
4776
|
};
|
|
4792
|
-
const ɵ0$
|
|
4777
|
+
const ɵ0$3 = noop$3;
|
|
4793
4778
|
class MatDateTime {
|
|
4794
4779
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
4795
4780
|
this.platform = platform;
|
|
@@ -4799,14 +4784,14 @@ class MatDateTime {
|
|
|
4799
4784
|
this.cd = cd;
|
|
4800
4785
|
this.keyboard = keyboard;
|
|
4801
4786
|
this.formGroupDir = formGroupDir;
|
|
4802
|
-
this._onChangeCallback = noop$
|
|
4803
|
-
this._onTouchedCallback = noop$
|
|
4787
|
+
this._onChangeCallback = noop$3;
|
|
4788
|
+
this._onTouchedCallback = noop$3;
|
|
4804
4789
|
this._subscription = new Subscription();
|
|
4805
4790
|
this.writing = true;
|
|
4806
4791
|
this.disabling = false;
|
|
4807
4792
|
this._readonly = false;
|
|
4808
4793
|
this.dayMask = DAY_MASK$1;
|
|
4809
|
-
this.hourMask = HOUR_MASK
|
|
4794
|
+
this.hourMask = HOUR_MASK;
|
|
4810
4795
|
this.floatLabel = 'auto';
|
|
4811
4796
|
this.compact = false;
|
|
4812
4797
|
this.placeholderChar = DEFAULT_PLACEHOLDER_CHAR;
|
|
@@ -5118,7 +5103,7 @@ MatDateTime.decorators = [
|
|
|
5118
5103
|
selector: 'mat-date-time-field',
|
|
5119
5104
|
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",
|
|
5120
5105
|
providers: [
|
|
5121
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5106
|
+
DEFAULT_VALUE_ACCESSOR$1,
|
|
5122
5107
|
],
|
|
5123
5108
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5124
5109
|
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%}"]
|
|
@@ -5152,15 +5137,15 @@ MatDateTime.propDecorators = {
|
|
|
5152
5137
|
matInputs: [{ type: ViewChildren, args: ['matInput',] }]
|
|
5153
5138
|
};
|
|
5154
5139
|
|
|
5155
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5140
|
+
const DEFAULT_VALUE_ACCESSOR$2 = {
|
|
5156
5141
|
provide: NG_VALUE_ACCESSOR,
|
|
5157
5142
|
useExisting: forwardRef(() => MatDateShort),
|
|
5158
5143
|
multi: true
|
|
5159
5144
|
};
|
|
5160
|
-
const DAY_MASK = [/\d/, /\d/, /\d/, /\d/];
|
|
5145
|
+
const DAY_MASK$2 = [/\d/, /\d/, /\d/, /\d/];
|
|
5161
5146
|
const noop$4 = () => {
|
|
5162
5147
|
};
|
|
5163
|
-
const ɵ0$
|
|
5148
|
+
const ɵ0$4 = noop$4;
|
|
5164
5149
|
class MatDateShort {
|
|
5165
5150
|
constructor(platform, dateAdapter, translate, formBuilder, cd, keyboard, formGroupDir) {
|
|
5166
5151
|
this.dateAdapter = dateAdapter;
|
|
@@ -5173,7 +5158,7 @@ class MatDateShort {
|
|
|
5173
5158
|
this._onTouchedCallback = noop$4;
|
|
5174
5159
|
this.writing = true;
|
|
5175
5160
|
this.disabling = false;
|
|
5176
|
-
this.dayMask = DAY_MASK;
|
|
5161
|
+
this.dayMask = DAY_MASK$2;
|
|
5177
5162
|
this.disabled = false;
|
|
5178
5163
|
this.floatLabel = 'auto';
|
|
5179
5164
|
this.readonly = false;
|
|
@@ -5418,7 +5403,7 @@ MatDateShort.decorators = [
|
|
|
5418
5403
|
selector: 'mat-date-short-field',
|
|
5419
5404
|
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",
|
|
5420
5405
|
providers: [
|
|
5421
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5406
|
+
DEFAULT_VALUE_ACCESSOR$2,
|
|
5422
5407
|
],
|
|
5423
5408
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5424
5409
|
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%}"]
|
|
@@ -5486,16 +5471,16 @@ SharedMatDateTimeModule.decorators = [
|
|
|
5486
5471
|
},] }
|
|
5487
5472
|
];
|
|
5488
5473
|
|
|
5489
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5474
|
+
const DEFAULT_VALUE_ACCESSOR$3 = {
|
|
5490
5475
|
provide: NG_VALUE_ACCESSOR,
|
|
5491
5476
|
useExisting: forwardRef(() => MatDuration),
|
|
5492
5477
|
multi: true
|
|
5493
5478
|
};
|
|
5494
5479
|
const HOUR_TIME_PATTERN = /[0-9]\d\d:[0-5]\d/;
|
|
5495
|
-
const HOUR_MASK = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5496
|
-
const noop$
|
|
5480
|
+
const HOUR_MASK$1 = [/\d/, /\d/, /\d/, ':', /[0-5]/, /\d/];
|
|
5481
|
+
const noop$5 = () => {
|
|
5497
5482
|
};
|
|
5498
|
-
const ɵ0$
|
|
5483
|
+
const ɵ0$5 = noop$5;
|
|
5499
5484
|
class MatDuration {
|
|
5500
5485
|
constructor(platform, dateAdapter, translate, formBuilder, cd, formGroupDir) {
|
|
5501
5486
|
this.dateAdapter = dateAdapter;
|
|
@@ -5504,11 +5489,11 @@ class MatDuration {
|
|
|
5504
5489
|
this.cd = cd;
|
|
5505
5490
|
this.formGroupDir = formGroupDir;
|
|
5506
5491
|
this._subscription = new Subscription();
|
|
5507
|
-
this._onChangeCallback = noop$
|
|
5508
|
-
this._onTouchedCallback = noop$
|
|
5492
|
+
this._onChangeCallback = noop$5;
|
|
5493
|
+
this._onTouchedCallback = noop$5;
|
|
5509
5494
|
this.writing = true;
|
|
5510
5495
|
this.disabling = false;
|
|
5511
|
-
this.hourMask = HOUR_MASK;
|
|
5496
|
+
this.hourMask = HOUR_MASK$1;
|
|
5512
5497
|
this.disabled = false;
|
|
5513
5498
|
this.floatLabel = 'auto';
|
|
5514
5499
|
this.readonly = false;
|
|
@@ -5688,7 +5673,7 @@ MatDuration.decorators = [
|
|
|
5688
5673
|
selector: 'mat-duration-field',
|
|
5689
5674
|
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",
|
|
5690
5675
|
providers: [
|
|
5691
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5676
|
+
DEFAULT_VALUE_ACCESSOR$3,
|
|
5692
5677
|
],
|
|
5693
5678
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5694
5679
|
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%}"]
|
|
@@ -5745,22 +5730,22 @@ SharedMatDurationModule.decorators = [
|
|
|
5745
5730
|
},] }
|
|
5746
5731
|
];
|
|
5747
5732
|
|
|
5748
|
-
const DEFAULT_VALUE_ACCESSOR$
|
|
5733
|
+
const DEFAULT_VALUE_ACCESSOR$4 = {
|
|
5749
5734
|
provide: NG_VALUE_ACCESSOR,
|
|
5750
5735
|
useExisting: forwardRef(() => MatBooleanField),
|
|
5751
5736
|
multi: true
|
|
5752
5737
|
};
|
|
5753
|
-
const noop$
|
|
5738
|
+
const noop$6 = () => {
|
|
5754
5739
|
};
|
|
5755
|
-
const ɵ0$
|
|
5740
|
+
const ɵ0$6 = noop$6;
|
|
5756
5741
|
class MatBooleanField {
|
|
5757
5742
|
constructor(translate, formBuilder, cd, formGroupDir) {
|
|
5758
5743
|
this.translate = translate;
|
|
5759
5744
|
this.formBuilder = formBuilder;
|
|
5760
5745
|
this.cd = cd;
|
|
5761
5746
|
this.formGroupDir = formGroupDir;
|
|
5762
|
-
this._onChangeCallback = noop$
|
|
5763
|
-
this._onTouchedCallback = noop$
|
|
5747
|
+
this._onChangeCallback = noop$6;
|
|
5748
|
+
this._onTouchedCallback = noop$6;
|
|
5764
5749
|
this._writing = false;
|
|
5765
5750
|
this.showRadio = false;
|
|
5766
5751
|
this.disabled = false;
|
|
@@ -5923,7 +5908,7 @@ MatBooleanField.decorators = [
|
|
|
5923
5908
|
selector: 'mat-boolean-field',
|
|
5924
5909
|
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",
|
|
5925
5910
|
providers: [
|
|
5926
|
-
DEFAULT_VALUE_ACCESSOR$
|
|
5911
|
+
DEFAULT_VALUE_ACCESSOR$4
|
|
5927
5912
|
],
|
|
5928
5913
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
5929
5914
|
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}"]
|
|
@@ -6169,7 +6154,7 @@ class MatNumpadDomService {
|
|
|
6169
6154
|
this.appRef.detachView(this.componentRef.hostView);
|
|
6170
6155
|
}
|
|
6171
6156
|
}
|
|
6172
|
-
MatNumpadDomService.ɵprov =
|
|
6157
|
+
MatNumpadDomService.ɵprov = ɵɵdefineInjectable({ factory: function MatNumpadDomService_Factory() { return new MatNumpadDomService(ɵɵinject(ComponentFactoryResolver), ɵɵinject(ApplicationRef), ɵɵinject(INJECTOR), ɵɵinject(DOCUMENT, 8)); }, token: MatNumpadDomService, providedIn: "root" });
|
|
6173
6158
|
MatNumpadDomService.decorators = [
|
|
6174
6159
|
{ type: Injectable, args: [{
|
|
6175
6160
|
providedIn: 'root'
|
|
@@ -6533,7 +6518,7 @@ SharedMatNumpadModule.decorators = [
|
|
|
6533
6518
|
},] }
|
|
6534
6519
|
];
|
|
6535
6520
|
|
|
6536
|
-
const DEFAULT_VALUE_ACCESSOR = {
|
|
6521
|
+
const DEFAULT_VALUE_ACCESSOR$5 = {
|
|
6537
6522
|
provide: NG_VALUE_ACCESSOR,
|
|
6538
6523
|
useExisting: forwardRef(() => MatSwipeField),
|
|
6539
6524
|
multi: true
|
|
@@ -6796,7 +6781,7 @@ MatSwipeField.decorators = [
|
|
|
6796
6781
|
{ type: Component, args: [{
|
|
6797
6782
|
selector: 'mat-swipe-field',
|
|
6798
6783
|
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",
|
|
6799
|
-
providers: [DEFAULT_VALUE_ACCESSOR],
|
|
6784
|
+
providers: [DEFAULT_VALUE_ACCESSOR$5],
|
|
6800
6785
|
changeDetection: ChangeDetectionStrategy.OnPush,
|
|
6801
6786
|
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}"]
|
|
6802
6787
|
},] }
|
|
@@ -6854,14 +6839,14 @@ SharedMatSwipeModule.decorators = [
|
|
|
6854
6839
|
},] }
|
|
6855
6840
|
];
|
|
6856
6841
|
|
|
6857
|
-
const noop$
|
|
6858
|
-
const ɵ0$
|
|
6842
|
+
const noop$7 = () => { };
|
|
6843
|
+
const ɵ0$7 = noop$7;
|
|
6859
6844
|
class MatChipsField {
|
|
6860
6845
|
constructor(cd, formGroupDir) {
|
|
6861
6846
|
this.cd = cd;
|
|
6862
6847
|
this.formGroupDir = formGroupDir;
|
|
6863
|
-
this._onChangeCallback = noop$
|
|
6864
|
-
this._onTouchedCallback = noop$
|
|
6848
|
+
this._onChangeCallback = noop$7;
|
|
6849
|
+
this._onTouchedCallback = noop$7;
|
|
6865
6850
|
this.logPrefix = '[mat-chips] ';
|
|
6866
6851
|
this.formControlName = null;
|
|
6867
6852
|
this.required = false;
|
|
@@ -7730,7 +7715,7 @@ class ProgressBarService {
|
|
|
7730
7715
|
}
|
|
7731
7716
|
}
|
|
7732
7717
|
}
|
|
7733
|
-
ProgressBarService.ɵprov =
|
|
7718
|
+
ProgressBarService.ɵprov = ɵɵdefineInjectable({ factory: function ProgressBarService_Factory() { return new ProgressBarService(); }, token: ProgressBarService, providedIn: "root" });
|
|
7734
7719
|
ProgressBarService.decorators = [
|
|
7735
7720
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7736
7721
|
];
|
|
@@ -7774,7 +7759,7 @@ class AppGestureConfig extends HammerGestureConfig {
|
|
|
7774
7759
|
return mc;
|
|
7775
7760
|
}
|
|
7776
7761
|
}
|
|
7777
|
-
AppGestureConfig.ɵprov =
|
|
7762
|
+
AppGestureConfig.ɵprov = ɵɵdefineInjectable({ factory: function AppGestureConfig_Factory() { return new AppGestureConfig(); }, token: AppGestureConfig, providedIn: "root" });
|
|
7778
7763
|
AppGestureConfig.decorators = [
|
|
7779
7764
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
7780
7765
|
];
|
|
@@ -7999,7 +7984,7 @@ class MatPaginatorI18n extends MatPaginatorIntl {
|
|
|
7999
7984
|
this.previousPageLabel = this.translate.instant('COMMON.PAGINATOR.PREVIOUS_PAGE');
|
|
8000
7985
|
}
|
|
8001
7986
|
}
|
|
8002
|
-
MatPaginatorI18n.ɵprov =
|
|
7987
|
+
MatPaginatorI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatPaginatorI18n_Factory() { return new MatPaginatorI18n(ɵɵinject(TranslateService)); }, token: MatPaginatorI18n, providedIn: "root" });
|
|
8003
7988
|
MatPaginatorI18n.decorators = [
|
|
8004
7989
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8005
7990
|
];
|
|
@@ -8089,17 +8074,17 @@ function getColorContrast(color, bw) {
|
|
|
8089
8074
|
return rgbArrayToHex(rgb.map(v => 255 - v));
|
|
8090
8075
|
}
|
|
8091
8076
|
|
|
8092
|
-
const noop = () => {
|
|
8077
|
+
const noop$8 = () => {
|
|
8093
8078
|
};
|
|
8094
|
-
const ɵ0$
|
|
8079
|
+
const ɵ0$8 = noop$8;
|
|
8095
8080
|
class AppFormField {
|
|
8096
8081
|
constructor(translate, cd, injector, formGroupDir) {
|
|
8097
8082
|
this.translate = translate;
|
|
8098
8083
|
this.cd = cd;
|
|
8099
8084
|
this.injector = injector;
|
|
8100
8085
|
this.formGroupDir = formGroupDir;
|
|
8101
|
-
this._onChangeCallback = noop;
|
|
8102
|
-
this._onTouchedCallback = noop;
|
|
8086
|
+
this._onChangeCallback = noop$8;
|
|
8087
|
+
this._onTouchedCallback = noop$8;
|
|
8103
8088
|
this.readonly = false;
|
|
8104
8089
|
this.compact = false;
|
|
8105
8090
|
this.floatLabel = 'auto';
|
|
@@ -8532,14 +8517,14 @@ class AudioProvider extends StartableService {
|
|
|
8532
8517
|
});
|
|
8533
8518
|
}
|
|
8534
8519
|
}
|
|
8535
|
-
AudioProvider.ɵprov =
|
|
8520
|
+
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" });
|
|
8536
8521
|
AudioProvider.decorators = [
|
|
8537
8522
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
8538
8523
|
];
|
|
8539
8524
|
AudioProvider.ctorParameters = () => [
|
|
8540
8525
|
{ type: Platform },
|
|
8541
|
-
{ type: NativeAudio, decorators: [{ type: Optional }] },
|
|
8542
|
-
{ type: Vibration, decorators: [{ type: Optional }] },
|
|
8526
|
+
{ type: NativeAudio$1, decorators: [{ type: Optional }] },
|
|
8527
|
+
{ type: Vibration$1, decorators: [{ type: Optional }] },
|
|
8543
8528
|
{ type: AudioManagement, decorators: [{ type: Optional }] }
|
|
8544
8529
|
];
|
|
8545
8530
|
|
|
@@ -8621,7 +8606,7 @@ class Hotkeys {
|
|
|
8621
8606
|
});
|
|
8622
8607
|
}
|
|
8623
8608
|
}
|
|
8624
|
-
Hotkeys.ɵprov =
|
|
8609
|
+
Hotkeys.ɵprov = ɵɵdefineInjectable({ factory: function Hotkeys_Factory() { return new Hotkeys(ɵɵinject(EventManager), ɵɵinject(MatDialog), ɵɵinject(DOCUMENT), ɵɵinject(ModalController)); }, token: Hotkeys, providedIn: "root" });
|
|
8625
8610
|
Hotkeys.decorators = [
|
|
8626
8611
|
{ type: Injectable, args: [{
|
|
8627
8612
|
providedIn: 'root'
|
|
@@ -8795,7 +8780,7 @@ class Base64ImageReader {
|
|
|
8795
8780
|
}
|
|
8796
8781
|
}
|
|
8797
8782
|
|
|
8798
|
-
const uuidv4
|
|
8783
|
+
const uuidv4 = uuidv4Imported;
|
|
8799
8784
|
class FileService {
|
|
8800
8785
|
constructor(platform,
|
|
8801
8786
|
//private transfer: FileTransfer,
|
|
@@ -8832,7 +8817,7 @@ class FileService {
|
|
|
8832
8817
|
const lastSlashIndex = source.lastIndexOf('/');
|
|
8833
8818
|
if (lastSlashIndex === -1)
|
|
8834
8819
|
throw new Error('Invalid URL: ' + source);
|
|
8835
|
-
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4
|
|
8820
|
+
const fileName = lastSlashIndex < (source.length - 1) && source.substring(lastSlashIndex + 1) || uuidv4();
|
|
8836
8821
|
// Download into the file system
|
|
8837
8822
|
if (responseType === 'file' && this.canUseFileSystem) {
|
|
8838
8823
|
console.warn(`WARN: [file] Fetching image {${source}} in local file...`);
|
|
@@ -8888,7 +8873,7 @@ class FileService {
|
|
|
8888
8873
|
this._started = true;
|
|
8889
8874
|
}
|
|
8890
8875
|
}
|
|
8891
|
-
FileService.ɵprov =
|
|
8876
|
+
FileService.ɵprov = ɵɵdefineInjectable({ factory: function FileService_Factory() { return new FileService(ɵɵinject(Platform), ɵɵinject(HttpClient), ɵɵinject(ENVIRONMENT)); }, token: FileService, providedIn: "root" });
|
|
8892
8877
|
FileService.decorators = [
|
|
8893
8878
|
{ type: Injectable, args: [{
|
|
8894
8879
|
providedIn: 'root',
|
|
@@ -9054,7 +9039,7 @@ class Base58 {
|
|
|
9054
9039
|
Base58.alphabet = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz';
|
|
9055
9040
|
|
|
9056
9041
|
const scrypt = require('scrypt-async');
|
|
9057
|
-
const sha256
|
|
9042
|
+
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
9058
9043
|
const sha512 = require('hash.js/lib/hash/sha/512');
|
|
9059
9044
|
const nacl = {
|
|
9060
9045
|
sign,
|
|
@@ -9158,7 +9143,7 @@ class CryptoService {
|
|
|
9158
9143
|
* Hash (using SHA256) a message
|
|
9159
9144
|
*/
|
|
9160
9145
|
sha256(message) {
|
|
9161
|
-
return sha256
|
|
9146
|
+
return sha256().update(message).digest('hex');
|
|
9162
9147
|
}
|
|
9163
9148
|
/**
|
|
9164
9149
|
* Hash (using SHA512) a message
|
|
@@ -9171,7 +9156,7 @@ class CryptoService {
|
|
|
9171
9156
|
return nacl.util.encodeBase64(m);
|
|
9172
9157
|
}
|
|
9173
9158
|
}
|
|
9174
|
-
CryptoService.ɵprov =
|
|
9159
|
+
CryptoService.ɵprov = ɵɵdefineInjectable({ factory: function CryptoService_Factory() { return new CryptoService(); }, token: CryptoService, providedIn: "root" });
|
|
9175
9160
|
CryptoService.decorators = [
|
|
9176
9161
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
9177
9162
|
];
|
|
@@ -10399,7 +10384,7 @@ class LocalSettingsService extends StartableService {
|
|
|
10399
10384
|
return page;
|
|
10400
10385
|
}
|
|
10401
10386
|
}
|
|
10402
|
-
LocalSettingsService.ɵprov =
|
|
10387
|
+
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" });
|
|
10403
10388
|
LocalSettingsService.decorators = [
|
|
10404
10389
|
{ type: Injectable, args: [{
|
|
10405
10390
|
providedIn: 'root',
|
|
@@ -11057,7 +11042,7 @@ class NetworkService extends StartableService {
|
|
|
11057
11042
|
});
|
|
11058
11043
|
}
|
|
11059
11044
|
}
|
|
11060
|
-
NetworkService.ɵprov =
|
|
11045
|
+
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" });
|
|
11061
11046
|
NetworkService.decorators = [
|
|
11062
11047
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
11063
11048
|
];
|
|
@@ -11068,16 +11053,16 @@ NetworkService.ctorParameters = () => [
|
|
|
11068
11053
|
{ type: CryptoService },
|
|
11069
11054
|
{ type: Storage },
|
|
11070
11055
|
{ type: LocalSettingsService },
|
|
11071
|
-
{ type: CacheService },
|
|
11056
|
+
{ type: CacheService$1 },
|
|
11072
11057
|
{ type: HttpClient },
|
|
11073
11058
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
11074
|
-
{ type: Network, decorators: [{ type: Optional }] },
|
|
11075
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
11059
|
+
{ type: Network$1, decorators: [{ type: Optional }] },
|
|
11060
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
11076
11061
|
{ type: TranslateService, decorators: [{ type: Optional }] },
|
|
11077
11062
|
{ type: ToastController, decorators: [{ type: Optional }] }
|
|
11078
11063
|
];
|
|
11079
11064
|
|
|
11080
|
-
const ErrorCodes
|
|
11065
|
+
const ErrorCodes = {
|
|
11081
11066
|
UNKNOWN_ERROR: 0,
|
|
11082
11067
|
LOAD_ACCOUNT_ERROR: 1,
|
|
11083
11068
|
BAD_PASSWORD: 2,
|
|
@@ -11429,7 +11414,7 @@ class EntityStore {
|
|
|
11429
11414
|
}
|
|
11430
11415
|
catch (err) {
|
|
11431
11416
|
console.error(err);
|
|
11432
|
-
throw { code: ErrorCodes
|
|
11417
|
+
throw { code: ErrorCodes.ENTITY_STORAGE_MIGRATION_FAILED, message: 'ERROR.ENTITY_STORAGE_MIGRATION_FAILED', details: err };
|
|
11433
11418
|
}
|
|
11434
11419
|
}
|
|
11435
11420
|
// Emit update event
|
|
@@ -12003,7 +11988,7 @@ class EntitiesStorage extends StartableService {
|
|
|
12003
11988
|
}
|
|
12004
11989
|
EntitiesStorage.TRASH_PREFIX = 'Trash#';
|
|
12005
11990
|
EntitiesStorage.REMOTE_PREFIX = 'Remote#';
|
|
12006
|
-
EntitiesStorage.ɵprov =
|
|
11991
|
+
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" });
|
|
12007
11992
|
EntitiesStorage.decorators = [
|
|
12008
11993
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
12009
11994
|
];
|
|
@@ -12140,10 +12125,10 @@ function referentialToString(obj, properties) {
|
|
|
12140
12125
|
function referentialsToString(values, properties, separator) {
|
|
12141
12126
|
return (values || []).map(v => referentialToString(v, properties)).join(separator || ', ');
|
|
12142
12127
|
}
|
|
12143
|
-
const ɵ0$
|
|
12128
|
+
const ɵ0$9 = StatusIds.ENABLE, ɵ1 = StatusIds.DISABLE, ɵ2 = StatusIds.TEMPORARY;
|
|
12144
12129
|
const StatusList = Object.freeze([
|
|
12145
12130
|
{
|
|
12146
|
-
id: ɵ0$
|
|
12131
|
+
id: ɵ0$9,
|
|
12147
12132
|
icon: 'checkmark',
|
|
12148
12133
|
label: 'REFERENTIAL.STATUS_ENUM.ENABLE'
|
|
12149
12134
|
},
|
|
@@ -12418,7 +12403,7 @@ function accountToString(data) {
|
|
|
12418
12403
|
(data.lastName || '')) || '';
|
|
12419
12404
|
}
|
|
12420
12405
|
|
|
12421
|
-
const uuidv4 = uuidv4Imported;
|
|
12406
|
+
const uuidv4$1 = uuidv4Imported;
|
|
12422
12407
|
const _global = typeof global !== 'undefined' ? global : (typeof window !== 'undefined' ? window : {});
|
|
12423
12408
|
const NativeWebSocket = _global.WebSocket || _global.MozWebSocket;
|
|
12424
12409
|
/**
|
|
@@ -12462,7 +12447,7 @@ function createTrackerLink(opts) {
|
|
|
12462
12447
|
// Skip if not tracked
|
|
12463
12448
|
if (!context || !context.tracked)
|
|
12464
12449
|
return forward(operation);
|
|
12465
|
-
const id = context.serializationKey || uuidv4();
|
|
12450
|
+
const id = context.serializationKey || uuidv4$1();
|
|
12466
12451
|
console.debug(`[apollo-tracker-link] Watching tracked query {${operation.operationName}#${id}}`);
|
|
12467
12452
|
// Clean context, before calling JSON.stringify (remove unused attributes)
|
|
12468
12453
|
const cleanContext = Object.assign(Object.assign({}, context), { optimisticResponse: null, cache: null });
|
|
@@ -13127,7 +13112,7 @@ class GraphqlService extends StartableService {
|
|
|
13127
13112
|
(err.networkError && ((err.networkError.error && this.toAppError(err.networkError.error))
|
|
13128
13113
|
|| this.toAppError(err.networkError)
|
|
13129
13114
|
|| (err.networkError.error && this.createAppErrorByCode(err.networkError.error.status))
|
|
13130
|
-
|| this.createAppErrorByCode(ErrorCodes
|
|
13115
|
+
|| this.createAppErrorByCode(ErrorCodes.UNKNOWN_NETWORK_ERROR)))
|
|
13131
13116
|
// If graphQL: try to convert the first error found
|
|
13132
13117
|
|| (err.graphQLErrors && err.graphQLErrors.length && this.toAppError(err.graphQLErrors[0]))
|
|
13133
13118
|
|| this.toAppError(err)
|
|
@@ -13135,7 +13120,7 @@ class GraphqlService extends StartableService {
|
|
|
13135
13120
|
|| (err.graphQLErrors && err.graphQLErrors[0])
|
|
13136
13121
|
|| err;
|
|
13137
13122
|
console.error('[graphql] ' + (error && error.message || error), error.stack || '');
|
|
13138
|
-
if (error && error.code === ErrorCodes
|
|
13123
|
+
if (error && error.code === ErrorCodes.UNKNOWN_NETWORK_ERROR && err.networkError && err.networkError.message) {
|
|
13139
13124
|
console.error('[graphql] original error: ' + err.networkError.message);
|
|
13140
13125
|
this.onNetworkError.next(error);
|
|
13141
13126
|
}
|
|
@@ -13171,7 +13156,7 @@ class GraphqlService extends StartableService {
|
|
|
13171
13156
|
return 'ERROR.UNAUTHORIZED';
|
|
13172
13157
|
case ServerErrorCodes.FORBIDDEN:
|
|
13173
13158
|
return 'ERROR.FORBIDDEN';
|
|
13174
|
-
case ErrorCodes
|
|
13159
|
+
case ErrorCodes.UNKNOWN_NETWORK_ERROR:
|
|
13175
13160
|
return 'ERROR.UNKNOWN_NETWORK_ERROR';
|
|
13176
13161
|
case ServerErrorCodes.BAD_UPDATE_DATE:
|
|
13177
13162
|
return 'ERROR.BAD_UPDATE_DATE';
|
|
@@ -13202,7 +13187,7 @@ class GraphqlService extends StartableService {
|
|
|
13202
13187
|
return undefined;
|
|
13203
13188
|
}
|
|
13204
13189
|
}
|
|
13205
|
-
GraphqlService.ɵprov =
|
|
13190
|
+
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" });
|
|
13206
13191
|
GraphqlService.decorators = [
|
|
13207
13192
|
{ type: Injectable, args: [{
|
|
13208
13193
|
providedIn: 'root'
|
|
@@ -13219,7 +13204,7 @@ GraphqlService.ctorParameters = () => [
|
|
|
13219
13204
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_GRAPHQL_TYPE_POLICIES,] }] }
|
|
13220
13205
|
];
|
|
13221
13206
|
|
|
13222
|
-
const sha256 = require('hash.js/lib/hash/sha/256');
|
|
13207
|
+
const sha256$1 = require('hash.js/lib/hash/sha/256');
|
|
13223
13208
|
class BaseGraphqlServiceOptions {
|
|
13224
13209
|
}
|
|
13225
13210
|
// eslint-disable-next-line @angular-eslint/directive-class-suffix
|
|
@@ -13370,8 +13355,8 @@ class BaseGraphqlService extends StartableService {
|
|
|
13370
13355
|
}
|
|
13371
13356
|
/* -- protected methods -- */
|
|
13372
13357
|
computeMutableWatchQueryId(opts) {
|
|
13373
|
-
const queryName = opts.queryName || sha256().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13374
|
-
const variablesKey = opts.variables && sha256().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
13358
|
+
const queryName = opts.queryName || sha256$1().update(JSON.stringify(opts.query)).digest('hex').substring(0, 8);
|
|
13359
|
+
const variablesKey = opts.variables && sha256$1().update(JSON.stringify(opts.variables)).digest('hex').substring(0, 8) || '';
|
|
13375
13360
|
return [queryName, opts.arrayFieldName, variablesKey].join('|');
|
|
13376
13361
|
}
|
|
13377
13362
|
findMutableWatchQueries(opts) {
|
|
@@ -13437,7 +13422,7 @@ const DEFAULT_AVATAR_IMAGE = 'assets/img/person.png';
|
|
|
13437
13422
|
/* ------------------------------------
|
|
13438
13423
|
* GraphQL queries
|
|
13439
13424
|
* ------------------------------------*/
|
|
13440
|
-
const Fragments
|
|
13425
|
+
const Fragments = {
|
|
13441
13426
|
account: gql `
|
|
13442
13427
|
fragment AccountFragment on AccountVO {
|
|
13443
13428
|
id
|
|
@@ -13472,14 +13457,14 @@ const Fragments$1 = {
|
|
|
13472
13457
|
}`
|
|
13473
13458
|
};
|
|
13474
13459
|
// Load account query
|
|
13475
|
-
const LoadQuery
|
|
13460
|
+
const LoadQuery = gql `
|
|
13476
13461
|
query Account {
|
|
13477
13462
|
data: account {
|
|
13478
13463
|
...AccountFragment
|
|
13479
13464
|
}
|
|
13480
13465
|
}
|
|
13481
|
-
${Fragments
|
|
13482
|
-
${Fragments
|
|
13466
|
+
${Fragments.account}
|
|
13467
|
+
${Fragments.settings}
|
|
13483
13468
|
`;
|
|
13484
13469
|
// Check email query
|
|
13485
13470
|
const IsEmailExistsQuery = gql `
|
|
@@ -13494,21 +13479,21 @@ const AccountMutations = {
|
|
|
13494
13479
|
...AccountFragment
|
|
13495
13480
|
}
|
|
13496
13481
|
}
|
|
13497
|
-
${Fragments
|
|
13498
|
-
${Fragments
|
|
13482
|
+
${Fragments.account}
|
|
13483
|
+
${Fragments.settings}`,
|
|
13499
13484
|
create: gql `mutation CreateAccount($data:AccountVOInput){
|
|
13500
13485
|
data: createAccount(account: $data){
|
|
13501
13486
|
...AccountFragment
|
|
13502
13487
|
}
|
|
13503
13488
|
}
|
|
13504
|
-
${Fragments
|
|
13505
|
-
${Fragments
|
|
13489
|
+
${Fragments.account}
|
|
13490
|
+
${Fragments.settings}`,
|
|
13506
13491
|
saveSettings: gql `mutation SaveSettings($data:UserSettingsVOInput){
|
|
13507
13492
|
data: saveSettings(settings: $data){
|
|
13508
13493
|
...UserSettingsFragment
|
|
13509
13494
|
}
|
|
13510
13495
|
}
|
|
13511
|
-
${Fragments
|
|
13496
|
+
${Fragments.settings}`
|
|
13512
13497
|
};
|
|
13513
13498
|
// Sent confirmation email
|
|
13514
13499
|
const SendConfirmEmailMutation = gql `
|
|
@@ -13817,7 +13802,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13817
13802
|
catch (error) {
|
|
13818
13803
|
console.error(error);
|
|
13819
13804
|
this.resetData();
|
|
13820
|
-
throw { code: ErrorCodes
|
|
13805
|
+
throw { code: ErrorCodes.UNKNOWN_ERROR, message: 'ERROR.SCRYPT_ERROR' };
|
|
13821
13806
|
}
|
|
13822
13807
|
// Store pubkey+keypair
|
|
13823
13808
|
this._cache.pubkey = Base58.encode(keypair.publicKey);
|
|
@@ -13851,7 +13836,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
13851
13836
|
}
|
|
13852
13837
|
catch (err) {
|
|
13853
13838
|
// If account not found, check if email is valid
|
|
13854
|
-
if (err && +(err.code) === ErrorCodes
|
|
13839
|
+
if (err && +(err.code) === ErrorCodes.LOAD_ACCOUNT_ERROR) {
|
|
13855
13840
|
// Check email exists
|
|
13856
13841
|
if (data.username.indexOf('@') !== -1) {
|
|
13857
13842
|
let isEmailExists;
|
|
@@ -13863,11 +13848,11 @@ class AccountService extends BaseGraphqlService {
|
|
|
13863
13848
|
}
|
|
13864
13849
|
// Email not exists (no account)
|
|
13865
13850
|
if (!isEmailExists) {
|
|
13866
|
-
throw { code: ErrorCodes
|
|
13851
|
+
throw { code: ErrorCodes.UNKNOWN_ACCOUNT_EMAIL, message: 'ERROR.UNKNOWN_ACCOUNT_EMAIL' };
|
|
13867
13852
|
}
|
|
13868
13853
|
}
|
|
13869
13854
|
// Email exists, so error = 'bad password'
|
|
13870
|
-
throw { code: ErrorCodes
|
|
13855
|
+
throw { code: ErrorCodes.BAD_PASSWORD, message: 'ERROR.BAD_PASSWORD' };
|
|
13871
13856
|
}
|
|
13872
13857
|
throw err; // resend the first error
|
|
13873
13858
|
}
|
|
@@ -13992,8 +13977,8 @@ class AccountService extends BaseGraphqlService {
|
|
|
13992
13977
|
// Load remotely
|
|
13993
13978
|
else {
|
|
13994
13979
|
const { data } = yield this.graphql.query({
|
|
13995
|
-
query: LoadQuery
|
|
13996
|
-
error: { code: ErrorCodes
|
|
13980
|
+
query: LoadQuery,
|
|
13981
|
+
error: { code: ErrorCodes.LOAD_ACCOUNT_ERROR, message: 'ERROR.LOAD_ACCOUNT_ERROR' },
|
|
13997
13982
|
fetchPolicy: opts && opts.fetchPolicy || 'no-cache' || undefined
|
|
13998
13983
|
});
|
|
13999
13984
|
json = data;
|
|
@@ -14020,7 +14005,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14020
14005
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14021
14006
|
const isEmailExists = yield this.isEmailExists(email);
|
|
14022
14007
|
if (isEmailExists) {
|
|
14023
|
-
throw { code: ErrorCodes
|
|
14008
|
+
throw { code: ErrorCodes.EMAIL_ALREADY_REGISTERED, message: 'ERROR.EMAIL_ALREADY_REGISTERED' };
|
|
14024
14009
|
}
|
|
14025
14010
|
});
|
|
14026
14011
|
}
|
|
@@ -14056,7 +14041,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14056
14041
|
locale
|
|
14057
14042
|
},
|
|
14058
14043
|
error: {
|
|
14059
|
-
code: ErrorCodes
|
|
14044
|
+
code: ErrorCodes.SENT_CONFIRMATION_EMAIL_FAILED,
|
|
14060
14045
|
message: 'ERROR.SENT_ACCOUNT_CONFIRMATION_EMAIL_FAILED'
|
|
14061
14046
|
}
|
|
14062
14047
|
});
|
|
@@ -14072,7 +14057,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14072
14057
|
code
|
|
14073
14058
|
},
|
|
14074
14059
|
error: {
|
|
14075
|
-
code: ErrorCodes
|
|
14060
|
+
code: ErrorCodes.CONFIRM_EMAIL_FAILED,
|
|
14076
14061
|
message: 'ERROR.CONFIRM_ACCOUNT_EMAIL_FAILED'
|
|
14077
14062
|
}
|
|
14078
14063
|
});
|
|
@@ -14090,7 +14075,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14090
14075
|
interval: 10
|
|
14091
14076
|
},
|
|
14092
14077
|
error: {
|
|
14093
|
-
code: ErrorCodes
|
|
14078
|
+
code: ErrorCodes.SUBSCRIBE_ACCOUNT_ERROR,
|
|
14094
14079
|
message: 'ERROR.ACCOUNT.SUBSCRIBE_ACCOUNT_ERROR'
|
|
14095
14080
|
}
|
|
14096
14081
|
}).subscribe({
|
|
@@ -14191,7 +14176,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14191
14176
|
throw error;
|
|
14192
14177
|
console.error(error);
|
|
14193
14178
|
throw {
|
|
14194
|
-
code: ErrorCodes
|
|
14179
|
+
code: ErrorCodes.LOAD_ACCOUNT_ERROR,
|
|
14195
14180
|
message: 'ERROR.LOAD_ACCOUNT_ERROR'
|
|
14196
14181
|
};
|
|
14197
14182
|
}
|
|
@@ -14359,7 +14344,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14359
14344
|
if (!isNew) {
|
|
14360
14345
|
const existingAccount = yield this.load({ fetchPolicy: 'network-only' });
|
|
14361
14346
|
if (!existingAccount || !existingAccount.updateDate) {
|
|
14362
|
-
throw { code: ErrorCodes
|
|
14347
|
+
throw { code: ErrorCodes.ACCOUNT_NOT_EXISTS, message: 'ERROR.ACCOUNT_NOT_EXISTS' };
|
|
14363
14348
|
}
|
|
14364
14349
|
this.copyIdAndUpdateDate(existingAccount, account);
|
|
14365
14350
|
}
|
|
@@ -14371,7 +14356,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14371
14356
|
mutation: isNew ? AccountMutations.create : AccountMutations.save,
|
|
14372
14357
|
variables: { data: json },
|
|
14373
14358
|
error: {
|
|
14374
|
-
code: ErrorCodes
|
|
14359
|
+
code: ErrorCodes.SAVE_ACCOUNT_ERROR,
|
|
14375
14360
|
message: 'ERROR.SAVE_ACCOUNT_ERROR'
|
|
14376
14361
|
}
|
|
14377
14362
|
});
|
|
@@ -14398,7 +14383,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14398
14383
|
mutation: AccountMutations.saveSettings,
|
|
14399
14384
|
variables: { data: json },
|
|
14400
14385
|
error: {
|
|
14401
|
-
code: ErrorCodes
|
|
14386
|
+
code: ErrorCodes.SAVE_SETTINGS_ERROR,
|
|
14402
14387
|
message: 'ERROR.SAVE_SETTINGS_ERROR'
|
|
14403
14388
|
}
|
|
14404
14389
|
});
|
|
@@ -14420,7 +14405,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14420
14405
|
if (counter > 4) {
|
|
14421
14406
|
if (this._debug)
|
|
14422
14407
|
console.debug(`[account] Failed to authentication on pod (after ${counter} attempts)`);
|
|
14423
|
-
throw { code: ErrorCodes
|
|
14408
|
+
throw { code: ErrorCodes.AUTH_SERVER_ERROR, message: 'ERROR.AUTH_SERVER_ERROR' };
|
|
14424
14409
|
}
|
|
14425
14410
|
// Check if valid
|
|
14426
14411
|
if (token) {
|
|
@@ -14430,7 +14415,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14430
14415
|
token
|
|
14431
14416
|
},
|
|
14432
14417
|
error: {
|
|
14433
|
-
code: ErrorCodes
|
|
14418
|
+
code: ErrorCodes.UNAUTHORIZED,
|
|
14434
14419
|
message: 'ERROR.UNAUTHORIZED'
|
|
14435
14420
|
},
|
|
14436
14421
|
fetchPolicy: 'no-cache'
|
|
@@ -14446,7 +14431,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14446
14431
|
}
|
|
14447
14432
|
// Generate a new token
|
|
14448
14433
|
const challengeError = {
|
|
14449
|
-
code: ErrorCodes
|
|
14434
|
+
code: ErrorCodes.AUTH_CHALLENGE_ERROR,
|
|
14450
14435
|
message: 'ERROR.AUTH_CHALLENGE_ERROR'
|
|
14451
14436
|
};
|
|
14452
14437
|
const data = yield this.graphql.query({
|
|
@@ -14485,7 +14470,7 @@ class AccountService extends BaseGraphqlService {
|
|
|
14485
14470
|
target.updateDate = source.updateDate || target.updateDate;
|
|
14486
14471
|
}
|
|
14487
14472
|
}
|
|
14488
|
-
AccountService.ɵprov =
|
|
14473
|
+
AccountService.ɵprov = ɵɵdefineInjectable({ factory: function AccountService_Factory() { return new AccountService(ɵɵinject(CryptoService), ɵɵinject(NetworkService), ɵɵinject(GraphqlService), ɵɵinject(LocalSettingsService), ɵɵinject(Storage), ɵɵinject(FileService), ɵɵinject(ENVIRONMENT)); }, token: AccountService, providedIn: "root" });
|
|
14489
14474
|
AccountService.decorators = [
|
|
14490
14475
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
14491
14476
|
];
|
|
@@ -14745,7 +14730,7 @@ const CONFIGURATION_STORAGE_KEY = 'configuration';
|
|
|
14745
14730
|
/* ------------------------------------
|
|
14746
14731
|
* GraphQL queries
|
|
14747
14732
|
* ------------------------------------*/
|
|
14748
|
-
const Fragments = {
|
|
14733
|
+
const Fragments$1 = {
|
|
14749
14734
|
config: gql `
|
|
14750
14735
|
fragment ConfigFragment on ConfigurationVO {
|
|
14751
14736
|
id
|
|
@@ -14772,13 +14757,13 @@ const Fragments = {
|
|
|
14772
14757
|
}
|
|
14773
14758
|
`
|
|
14774
14759
|
};
|
|
14775
|
-
const LoadQuery = gql `
|
|
14760
|
+
const LoadQuery$1 = gql `
|
|
14776
14761
|
query Configuration{
|
|
14777
14762
|
data: configuration{
|
|
14778
14763
|
...ConfigFragment
|
|
14779
14764
|
}
|
|
14780
14765
|
}
|
|
14781
|
-
${Fragments.config}
|
|
14766
|
+
${Fragments$1.config}
|
|
14782
14767
|
`;
|
|
14783
14768
|
// Save (create or update) account mutation
|
|
14784
14769
|
const SaveMutation = gql `
|
|
@@ -14787,7 +14772,7 @@ const SaveMutation = gql `
|
|
|
14787
14772
|
...ConfigFragment
|
|
14788
14773
|
}
|
|
14789
14774
|
}
|
|
14790
|
-
${Fragments.config}
|
|
14775
|
+
${Fragments$1.config}
|
|
14791
14776
|
`;
|
|
14792
14777
|
const ClearCache = gql `
|
|
14793
14778
|
query ClearCache($name: String) {
|
|
@@ -14837,12 +14822,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14837
14822
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14838
14823
|
const now = Date.now();
|
|
14839
14824
|
console.debug('[config] Loading Pod configuration...');
|
|
14840
|
-
const query = opts && opts.query || LoadQuery;
|
|
14825
|
+
const query = opts && opts.query || LoadQuery$1;
|
|
14841
14826
|
const variables = opts && opts.variables || undefined;
|
|
14842
14827
|
const res = yield this.graphql.query({
|
|
14843
14828
|
query,
|
|
14844
14829
|
variables,
|
|
14845
|
-
error: { code: ErrorCodes
|
|
14830
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14846
14831
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
14847
14832
|
});
|
|
14848
14833
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -14872,7 +14857,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14872
14857
|
data: json
|
|
14873
14858
|
},
|
|
14874
14859
|
error: {
|
|
14875
|
-
code: ErrorCodes
|
|
14860
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
14876
14861
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
14877
14862
|
}
|
|
14878
14863
|
});
|
|
@@ -14898,7 +14883,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14898
14883
|
const res = yield this.graphql.query({
|
|
14899
14884
|
query: CacheStatistics,
|
|
14900
14885
|
variables: null,
|
|
14901
|
-
error: { code: ErrorCodes
|
|
14886
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14902
14887
|
fetchPolicy: 'network-only'
|
|
14903
14888
|
});
|
|
14904
14889
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -14914,7 +14899,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14914
14899
|
const res = yield this.graphql.query({
|
|
14915
14900
|
query: ClearCache,
|
|
14916
14901
|
variables,
|
|
14917
|
-
error: { code: ErrorCodes
|
|
14902
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14918
14903
|
fetchPolicy: 'network-only'
|
|
14919
14904
|
});
|
|
14920
14905
|
const data = res && res.clearCache || undefined;
|
|
@@ -15073,7 +15058,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15073
15058
|
});
|
|
15074
15059
|
}
|
|
15075
15060
|
}
|
|
15076
|
-
ConfigService.ɵprov =
|
|
15061
|
+
ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
15077
15062
|
ConfigService.decorators = [
|
|
15078
15063
|
{ type: Injectable, args: [{
|
|
15079
15064
|
providedIn: 'root',
|
|
@@ -15092,7 +15077,7 @@ ConfigService.ctorParameters = () => [
|
|
|
15092
15077
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
15093
15078
|
];
|
|
15094
15079
|
|
|
15095
|
-
const moment$
|
|
15080
|
+
const moment$4 = momentImported;
|
|
15096
15081
|
class PlatformService extends StartableService {
|
|
15097
15082
|
constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
|
|
15098
15083
|
super(platform);
|
|
@@ -15296,16 +15281,16 @@ class PlatformService extends StartableService {
|
|
|
15296
15281
|
}
|
|
15297
15282
|
// config moment lib
|
|
15298
15283
|
try {
|
|
15299
|
-
moment$
|
|
15284
|
+
moment$4.locale(event.lang);
|
|
15300
15285
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
15301
15286
|
}
|
|
15302
15287
|
// If error, fallback to en
|
|
15303
15288
|
catch (err) {
|
|
15304
|
-
moment$
|
|
15289
|
+
moment$4.locale('en');
|
|
15305
15290
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
15306
15291
|
}
|
|
15307
15292
|
// Config date adapter
|
|
15308
|
-
this.dateAdapter.setLocale(moment$
|
|
15293
|
+
this.dateAdapter.setLocale(moment$4.locale());
|
|
15309
15294
|
}
|
|
15310
15295
|
});
|
|
15311
15296
|
this.settings.onChange.subscribe(data => {
|
|
@@ -15439,7 +15424,7 @@ class PlatformService extends StartableService {
|
|
|
15439
15424
|
});
|
|
15440
15425
|
}
|
|
15441
15426
|
}
|
|
15442
|
-
PlatformService.ɵprov =
|
|
15427
|
+
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" });
|
|
15443
15428
|
PlatformService.decorators = [
|
|
15444
15429
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15445
15430
|
];
|
|
@@ -15454,15 +15439,15 @@ PlatformService.ctorParameters = () => [
|
|
|
15454
15439
|
{ type: NetworkService },
|
|
15455
15440
|
{ type: AccountService },
|
|
15456
15441
|
{ type: ConfigService },
|
|
15457
|
-
{ type: CacheService },
|
|
15442
|
+
{ type: CacheService$1 },
|
|
15458
15443
|
{ type: Storage },
|
|
15459
15444
|
{ type: AudioProvider },
|
|
15460
15445
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
15461
|
-
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
15446
|
+
{ type: StatusBar$1, decorators: [{ type: Optional }] },
|
|
15462
15447
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
15463
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
15464
|
-
{ type: InAppBrowser, decorators: [{ type: Optional }] },
|
|
15465
|
-
{ type: Downloader, decorators: [{ type: Optional }] }
|
|
15448
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
15449
|
+
{ type: InAppBrowser$1, decorators: [{ type: Optional }] },
|
|
15450
|
+
{ type: Downloader$1, decorators: [{ type: Optional }] }
|
|
15466
15451
|
];
|
|
15467
15452
|
|
|
15468
15453
|
class AppHelpModal {
|
|
@@ -15526,7 +15511,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
15526
15511
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
15527
15512
|
}
|
|
15528
15513
|
}
|
|
15529
|
-
MatStepperI18n.ɵprov =
|
|
15514
|
+
MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
15530
15515
|
MatStepperI18n.decorators = [
|
|
15531
15516
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15532
15517
|
];
|
|
@@ -16528,7 +16513,7 @@ function state2side(state) {
|
|
|
16528
16513
|
return 1;
|
|
16529
16514
|
}
|
|
16530
16515
|
}
|
|
16531
|
-
const ɵ0$
|
|
16516
|
+
const ɵ0$a = (defaultStateSize) => [
|
|
16532
16517
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
16533
16518
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
16534
16519
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -16536,7 +16521,7 @@ const ɵ0$1 = (defaultStateSize) => [
|
|
|
16536
16521
|
const SCALE_OPTIONS_DEFAULT = {
|
|
16537
16522
|
startColor: rgbArrayMap.red,
|
|
16538
16523
|
startStates: [0, 2, 3],
|
|
16539
|
-
startStepsFn: ɵ0$
|
|
16524
|
+
startStepsFn: ɵ0$a
|
|
16540
16525
|
};
|
|
16541
16526
|
/**
|
|
16542
16527
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -16628,21 +16613,21 @@ function linearColorGradient(count, options) {
|
|
|
16628
16613
|
return result;
|
|
16629
16614
|
}
|
|
16630
16615
|
|
|
16631
|
-
class EntityTestClass
|
|
16616
|
+
class EntityTestClass {
|
|
16632
16617
|
}
|
|
16633
|
-
const FAKE_ENTITIES
|
|
16618
|
+
const FAKE_ENTITIES = [
|
|
16634
16619
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
16635
16620
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
16636
16621
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
16637
16622
|
];
|
|
16638
|
-
function deepCopy
|
|
16623
|
+
function deepCopy(values, size) {
|
|
16639
16624
|
if (isNil(size)) {
|
|
16640
|
-
return (values || FAKE_ENTITIES
|
|
16625
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
16641
16626
|
}
|
|
16642
16627
|
let result = [];
|
|
16643
16628
|
let i = 1;
|
|
16644
16629
|
while (result.length < size) {
|
|
16645
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
16630
|
+
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
16646
16631
|
const name = entity.name + ' #' + i;
|
|
16647
16632
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
16648
16633
|
}));
|
|
@@ -16652,7 +16637,7 @@ function deepCopy$1(values, size) {
|
|
|
16652
16637
|
class AutocompleteTestPage {
|
|
16653
16638
|
constructor(formBuilder) {
|
|
16654
16639
|
this.formBuilder = formBuilder;
|
|
16655
|
-
this._items = deepCopy
|
|
16640
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
16656
16641
|
this._$items = new BehaviorSubject(undefined);
|
|
16657
16642
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
16658
16643
|
this.memoryHide = false;
|
|
@@ -16696,7 +16681,7 @@ class AutocompleteTestPage {
|
|
|
16696
16681
|
});
|
|
16697
16682
|
// From items
|
|
16698
16683
|
this.autocompleteFields.add('entity-items-large', {
|
|
16699
|
-
items: FAKE_ENTITIES
|
|
16684
|
+
items: FAKE_ENTITIES.slice(),
|
|
16700
16685
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
16701
16686
|
displayWith: this.entityToString
|
|
16702
16687
|
});
|
|
@@ -16706,12 +16691,12 @@ class AutocompleteTestPage {
|
|
|
16706
16691
|
loadData() {
|
|
16707
16692
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16708
16693
|
const data = {
|
|
16709
|
-
entity: deepCopy
|
|
16694
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
16710
16695
|
// This item is NOT in the items list => i should be displayed anyway
|
|
16711
16696
|
missingEntity: {
|
|
16712
16697
|
id: -1, label: '??', name: 'Missing item'
|
|
16713
16698
|
},
|
|
16714
|
-
disableEntity: deepCopy
|
|
16699
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
16715
16700
|
};
|
|
16716
16701
|
this.form.setValue(data);
|
|
16717
16702
|
// Load observables
|
|
@@ -16884,13 +16869,13 @@ MaterialTestingPage.ctorParameters = () => [
|
|
|
16884
16869
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
|
|
16885
16870
|
];
|
|
16886
16871
|
|
|
16887
|
-
const moment$
|
|
16872
|
+
const moment$5 = momentImported;
|
|
16888
16873
|
class SwipeTestPage {
|
|
16889
16874
|
constructor(formBuilder, dateFormatPipe) {
|
|
16890
16875
|
this.formBuilder = formBuilder;
|
|
16891
16876
|
this.dateFormatPipe = dateFormatPipe;
|
|
16892
16877
|
this.$dates = new BehaviorSubject(undefined);
|
|
16893
|
-
this._today = moment$
|
|
16878
|
+
this._today = moment$5().startOf('day');
|
|
16894
16879
|
this.form = formBuilder.group({
|
|
16895
16880
|
empty: [null, Validators.required],
|
|
16896
16881
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -16903,7 +16888,7 @@ class SwipeTestPage {
|
|
|
16903
16888
|
ngOnInit() {
|
|
16904
16889
|
const dates = [];
|
|
16905
16890
|
for (let d = 0; d < 7; d++) {
|
|
16906
|
-
dates[d] = moment$
|
|
16891
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
16907
16892
|
}
|
|
16908
16893
|
this.$dates.next(dates);
|
|
16909
16894
|
this.loadData();
|
|
@@ -16944,7 +16929,7 @@ SwipeTestPage.ctorParameters = () => [
|
|
|
16944
16929
|
{ type: DateFormatPipe }
|
|
16945
16930
|
];
|
|
16946
16931
|
|
|
16947
|
-
const moment = momentImported;
|
|
16932
|
+
const moment$6 = momentImported;
|
|
16948
16933
|
class DateTimeTestPage {
|
|
16949
16934
|
constructor(platform, formBuilder, cd) {
|
|
16950
16935
|
this.platform = platform;
|
|
@@ -16976,7 +16961,7 @@ class DateTimeTestPage {
|
|
|
16976
16961
|
// Load the form with data
|
|
16977
16962
|
loadData() {
|
|
16978
16963
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16979
|
-
const now = moment();
|
|
16964
|
+
const now = moment$6();
|
|
16980
16965
|
const data = {
|
|
16981
16966
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
16982
16967
|
enable: toDateISOString(now),
|
|
@@ -17037,9 +17022,9 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
17037
17022
|
{ type: ChangeDetectorRef }
|
|
17038
17023
|
];
|
|
17039
17024
|
|
|
17040
|
-
class EntityTestClass {
|
|
17025
|
+
class EntityTestClass$1 {
|
|
17041
17026
|
}
|
|
17042
|
-
const FAKE_ENTITIES = [
|
|
17027
|
+
const FAKE_ENTITIES$1 = [
|
|
17043
17028
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
17044
17029
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
17045
17030
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -17048,14 +17033,14 @@ const FAKE_ENTITIES = [
|
|
|
17048
17033
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
17049
17034
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
17050
17035
|
];
|
|
17051
|
-
function deepCopy(values, size) {
|
|
17036
|
+
function deepCopy$1(values, size) {
|
|
17052
17037
|
if (isNil(size)) {
|
|
17053
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
17038
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
17054
17039
|
}
|
|
17055
17040
|
let result = [];
|
|
17056
17041
|
let i = 1;
|
|
17057
17042
|
while (result.length < size) {
|
|
17058
|
-
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
17043
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
|
|
17059
17044
|
const name = entity.name + ' #' + i;
|
|
17060
17045
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
17061
17046
|
}));
|
|
@@ -17065,7 +17050,7 @@ function deepCopy(values, size) {
|
|
|
17065
17050
|
class ChipsTestPage {
|
|
17066
17051
|
constructor(formBuilder) {
|
|
17067
17052
|
this.formBuilder = formBuilder;
|
|
17068
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
17053
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
17069
17054
|
this._$items = new BehaviorSubject(undefined);
|
|
17070
17055
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
17071
17056
|
this.form = formBuilder.group({
|
|
@@ -17104,7 +17089,7 @@ class ChipsTestPage {
|
|
|
17104
17089
|
// Load the form with data
|
|
17105
17090
|
loadData() {
|
|
17106
17091
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17107
|
-
const items = deepCopy(FAKE_ENTITIES);
|
|
17092
|
+
const items = deepCopy$1(FAKE_ENTITIES$1);
|
|
17108
17093
|
const data = {
|
|
17109
17094
|
entity: items.slice(0, 1),
|
|
17110
17095
|
entityInitial: items.slice(1, 2),
|
|
@@ -17180,7 +17165,7 @@ MatBadgeIconTestPage.decorators = [
|
|
|
17180
17165
|
},] }
|
|
17181
17166
|
];
|
|
17182
17167
|
|
|
17183
|
-
const routes
|
|
17168
|
+
const routes = [
|
|
17184
17169
|
{
|
|
17185
17170
|
path: '',
|
|
17186
17171
|
pathMatch: 'full',
|
|
@@ -17232,7 +17217,7 @@ MaterialTestingModule.decorators = [
|
|
|
17232
17217
|
ReactiveFormsModule,
|
|
17233
17218
|
SharedMaterialModule,
|
|
17234
17219
|
TranslateModule.forChild(),
|
|
17235
|
-
RouterModule.forChild(routes
|
|
17220
|
+
RouterModule.forChild(routes)
|
|
17236
17221
|
],
|
|
17237
17222
|
declarations: [
|
|
17238
17223
|
MaterialTestingPage,
|
|
@@ -18247,7 +18232,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
18247
18232
|
});
|
|
18248
18233
|
}
|
|
18249
18234
|
}
|
|
18250
|
-
UserSettingsValidatorService.ɵprov =
|
|
18235
|
+
UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
18251
18236
|
UserSettingsValidatorService.decorators = [
|
|
18252
18237
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18253
18238
|
];
|
|
@@ -18291,7 +18276,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
18291
18276
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
18292
18277
|
}
|
|
18293
18278
|
}
|
|
18294
|
-
AccountValidatorService.ɵprov =
|
|
18279
|
+
AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
18295
18280
|
AccountValidatorService.decorators = [
|
|
18296
18281
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18297
18282
|
];
|
|
@@ -18856,7 +18841,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
18856
18841
|
});
|
|
18857
18842
|
}
|
|
18858
18843
|
}
|
|
18859
|
-
LocalSettingsValidatorService.ɵprov =
|
|
18844
|
+
LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
18860
18845
|
LocalSettingsValidatorService.decorators = [
|
|
18861
18846
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18862
18847
|
];
|
|
@@ -19475,7 +19460,7 @@ class IsOnFieldModePipe {
|
|
|
19475
19460
|
return value === 'FIELD';
|
|
19476
19461
|
}
|
|
19477
19462
|
}
|
|
19478
|
-
IsOnFieldModePipe.ɵprov =
|
|
19463
|
+
IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
19479
19464
|
IsOnFieldModePipe.decorators = [
|
|
19480
19465
|
{ type: Pipe, args: [{
|
|
19481
19466
|
name: 'isOnField'
|
|
@@ -19487,7 +19472,7 @@ class IsNotOnFieldModePipe {
|
|
|
19487
19472
|
return value !== 'FIELD';
|
|
19488
19473
|
}
|
|
19489
19474
|
}
|
|
19490
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
19475
|
+
IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
19491
19476
|
IsNotOnFieldModePipe.decorators = [
|
|
19492
19477
|
{ type: Pipe, args: [{
|
|
19493
19478
|
name: 'isNotOnField'
|
|
@@ -19502,7 +19487,7 @@ class PersonToStringPipe {
|
|
|
19502
19487
|
return PersonUtils.personToString(value);
|
|
19503
19488
|
}
|
|
19504
19489
|
}
|
|
19505
|
-
PersonToStringPipe.ɵprov =
|
|
19490
|
+
PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
19506
19491
|
PersonToStringPipe.decorators = [
|
|
19507
19492
|
{ type: Pipe, args: [{
|
|
19508
19493
|
name: 'personToString'
|
|
@@ -19887,7 +19872,7 @@ class IsLoginAccountPipe {
|
|
|
19887
19872
|
return value && value.pubkey && true;
|
|
19888
19873
|
}
|
|
19889
19874
|
}
|
|
19890
|
-
IsLoginAccountPipe.ɵprov =
|
|
19875
|
+
IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
19891
19876
|
IsLoginAccountPipe.decorators = [
|
|
19892
19877
|
{ type: Pipe, args: [{
|
|
19893
19878
|
name: 'isLogin'
|
|
@@ -19899,7 +19884,7 @@ class AccountToStringPipe {
|
|
|
19899
19884
|
return accountToString(value);
|
|
19900
19885
|
}
|
|
19901
19886
|
}
|
|
19902
|
-
AccountToStringPipe.ɵprov =
|
|
19887
|
+
AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
19903
19888
|
AccountToStringPipe.decorators = [
|
|
19904
19889
|
{ type: Pipe, args: [{
|
|
19905
19890
|
name: 'accountToString'
|
|
@@ -19914,7 +19899,7 @@ class DepartmentToStringPipe {
|
|
|
19914
19899
|
return departmentToString(value);
|
|
19915
19900
|
}
|
|
19916
19901
|
}
|
|
19917
|
-
DepartmentToStringPipe.ɵprov =
|
|
19902
|
+
DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
19918
19903
|
DepartmentToStringPipe.decorators = [
|
|
19919
19904
|
{ type: Pipe, args: [{
|
|
19920
19905
|
name: 'departmentToString'
|
|
@@ -19940,7 +19925,7 @@ class MenuService {
|
|
|
19940
19925
|
this._visibleSubject.next(value);
|
|
19941
19926
|
}
|
|
19942
19927
|
}
|
|
19943
|
-
MenuService.ɵprov =
|
|
19928
|
+
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
19944
19929
|
MenuService.decorators = [
|
|
19945
19930
|
{ type: Injectable, args: [{
|
|
19946
19931
|
providedIn: 'root'
|
|
@@ -20464,7 +20449,7 @@ class AuthGuardService {
|
|
|
20464
20449
|
}));
|
|
20465
20450
|
}
|
|
20466
20451
|
}
|
|
20467
|
-
AuthGuardService.ɵprov =
|
|
20452
|
+
AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
20468
20453
|
AuthGuardService.decorators = [
|
|
20469
20454
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
20470
20455
|
];
|
|
@@ -20506,7 +20491,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20506
20491
|
query,
|
|
20507
20492
|
variables: { id },
|
|
20508
20493
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20509
|
-
error: { code: ErrorCodes
|
|
20494
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20510
20495
|
})
|
|
20511
20496
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
20512
20497
|
? (data && this.fromObject(data))
|
|
@@ -20521,7 +20506,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20521
20506
|
query,
|
|
20522
20507
|
variables: { id },
|
|
20523
20508
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20524
|
-
error: { code: ErrorCodes
|
|
20509
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20525
20510
|
});
|
|
20526
20511
|
// Convert to entity
|
|
20527
20512
|
return (!opts || opts.toEntity !== false)
|
|
@@ -20552,7 +20537,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20552
20537
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
20553
20538
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
20554
20539
|
variables,
|
|
20555
|
-
error: { code: ErrorCodes
|
|
20540
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
20556
20541
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
20557
20542
|
})
|
|
20558
20543
|
.pipe(map(({ data, total }) => {
|
|
@@ -20588,7 +20573,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20588
20573
|
const { data, total } = yield this.graphql.query({
|
|
20589
20574
|
query,
|
|
20590
20575
|
variables,
|
|
20591
|
-
error: { code: ErrorCodes
|
|
20576
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
20592
20577
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20593
20578
|
});
|
|
20594
20579
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -20627,7 +20612,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20627
20612
|
variables: {
|
|
20628
20613
|
filter: filter && filter.asPodObject()
|
|
20629
20614
|
},
|
|
20630
|
-
error: { code: ErrorCodes
|
|
20615
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
20631
20616
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20632
20617
|
});
|
|
20633
20618
|
return res.total;
|
|
@@ -20660,7 +20645,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20660
20645
|
variables: {
|
|
20661
20646
|
data: json
|
|
20662
20647
|
},
|
|
20663
|
-
error: { code: ErrorCodes
|
|
20648
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20664
20649
|
update: (proxy, { data }) => {
|
|
20665
20650
|
const savedEntities = data && data.data;
|
|
20666
20651
|
if (savedEntities) {
|
|
@@ -20716,7 +20701,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20716
20701
|
variables: {
|
|
20717
20702
|
data: json
|
|
20718
20703
|
},
|
|
20719
|
-
error: { code: ErrorCodes
|
|
20704
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20720
20705
|
update: (cache, { data }) => {
|
|
20721
20706
|
// Update entity
|
|
20722
20707
|
const savedEntity = data && data.data;
|
|
@@ -20764,7 +20749,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20764
20749
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20765
20750
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20766
20751
|
variables: { ids },
|
|
20767
|
-
error: { code: ErrorCodes
|
|
20752
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20768
20753
|
update: (cache, res) => {
|
|
20769
20754
|
// Remove from cache
|
|
20770
20755
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -20805,7 +20790,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20805
20790
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20806
20791
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20807
20792
|
variables: { id },
|
|
20808
|
-
error: { code: ErrorCodes
|
|
20793
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20809
20794
|
update: (proxy, res) => {
|
|
20810
20795
|
// Remove from cache
|
|
20811
20796
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -20838,7 +20823,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20838
20823
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
20839
20824
|
variables,
|
|
20840
20825
|
error: {
|
|
20841
|
-
code: ErrorCodes
|
|
20826
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
20842
20827
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
20843
20828
|
}
|
|
20844
20829
|
})
|
|
@@ -21024,7 +21009,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21024
21009
|
if (this._debug)
|
|
21025
21010
|
invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
21026
21011
|
// Stop with an error
|
|
21027
|
-
throw { code: ErrorCodes
|
|
21012
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21028
21013
|
}
|
|
21029
21014
|
this._editingRowCount = 0;
|
|
21030
21015
|
let data;
|
|
@@ -21888,14 +21873,14 @@ class AppTable {
|
|
|
21888
21873
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21889
21874
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
21890
21875
|
if (this.readOnly) {
|
|
21891
|
-
throw { code: ErrorCodes
|
|
21876
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
21892
21877
|
}
|
|
21893
21878
|
this.resetError();
|
|
21894
21879
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
21895
21880
|
this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
|
|
21896
21881
|
const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.currentData);
|
|
21897
21882
|
if (!this.confirmEditCreate()) {
|
|
21898
|
-
throw { code: ErrorCodes
|
|
21883
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21899
21884
|
}
|
|
21900
21885
|
// Mark as saving
|
|
21901
21886
|
this.markAsSaving();
|
|
@@ -22012,7 +21997,7 @@ class AppTable {
|
|
|
22012
21997
|
var _a;
|
|
22013
21998
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22014
21999
|
if (this.readOnly) {
|
|
22015
|
-
throw { code: ErrorCodes
|
|
22000
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
22016
22001
|
}
|
|
22017
22002
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
22018
22003
|
return 0; // SKip
|
|
@@ -23538,7 +23523,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23538
23523
|
try {
|
|
23539
23524
|
const data = yield this.dataService.load(id, opts);
|
|
23540
23525
|
if (!data)
|
|
23541
|
-
throw { code: ErrorCodes
|
|
23526
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
23542
23527
|
this._usageMode = this.computeUsageMode(data);
|
|
23543
23528
|
yield this.onEntityLoaded(data, opts);
|
|
23544
23529
|
yield this.updateView(data, opts);
|
|
@@ -24461,7 +24446,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
24461
24446
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
24462
24447
|
}
|
|
24463
24448
|
}
|
|
24464
|
-
UserEventService.ɵprov =
|
|
24449
|
+
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" });
|
|
24465
24450
|
UserEventService.decorators = [
|
|
24466
24451
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24467
24452
|
];
|
|
@@ -24846,7 +24831,7 @@ class PersonService extends BaseEntityService {
|
|
|
24846
24831
|
return target;
|
|
24847
24832
|
}
|
|
24848
24833
|
}
|
|
24849
|
-
PersonService.ɵprov =
|
|
24834
|
+
PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
24850
24835
|
PersonService.decorators = [
|
|
24851
24836
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24852
24837
|
];
|
|
@@ -24877,7 +24862,7 @@ class PersonValidatorService {
|
|
|
24877
24862
|
return this.formBuilder.group(formConfig);
|
|
24878
24863
|
}
|
|
24879
24864
|
}
|
|
24880
|
-
PersonValidatorService.ɵprov =
|
|
24865
|
+
PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
24881
24866
|
PersonValidatorService.decorators = [
|
|
24882
24867
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24883
24868
|
];
|
|
@@ -25083,16 +25068,16 @@ AdminModule.decorators = [
|
|
|
25083
25068
|
];
|
|
25084
25069
|
AdminModule.ctorParameters = () => [];
|
|
25085
25070
|
|
|
25086
|
-
const ɵ0 = {
|
|
25071
|
+
const ɵ0$b = {
|
|
25087
25072
|
profile: 'ADMIN'
|
|
25088
25073
|
};
|
|
25089
|
-
const routes = [
|
|
25074
|
+
const routes$1 = [
|
|
25090
25075
|
{
|
|
25091
25076
|
path: 'users',
|
|
25092
25077
|
pathMatch: 'full',
|
|
25093
25078
|
component: UsersPage,
|
|
25094
25079
|
canActivate: [AuthGuardService],
|
|
25095
|
-
data: ɵ0
|
|
25080
|
+
data: ɵ0$b
|
|
25096
25081
|
}
|
|
25097
25082
|
];
|
|
25098
25083
|
class AdminRoutingModule {
|
|
@@ -25102,13 +25087,13 @@ AdminRoutingModule.decorators = [
|
|
|
25102
25087
|
imports: [
|
|
25103
25088
|
SharedRoutingModule,
|
|
25104
25089
|
AdminModule,
|
|
25105
|
-
RouterModule.forChild(routes)
|
|
25090
|
+
RouterModule.forChild(routes$1)
|
|
25106
25091
|
],
|
|
25107
25092
|
exports: [RouterModule]
|
|
25108
25093
|
},] }
|
|
25109
25094
|
];
|
|
25110
25095
|
|
|
25111
|
-
const ErrorCodes = {
|
|
25096
|
+
const ErrorCodes$2 = {
|
|
25112
25097
|
LOAD_PERSONS_ERROR: 100,
|
|
25113
25098
|
SAVE_PERSONS_ERROR: 101,
|
|
25114
25099
|
DELETE_PERSONS_ERROR: 102,
|
|
@@ -25120,5 +25105,5 @@ const ErrorCodes = {
|
|
|
25120
25105
|
* Generated bundle index. Do not edit.
|
|
25121
25106
|
*/
|
|
25122
25107
|
|
|
25123
|
-
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, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, 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, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, 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, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, RegisterForm as ɵg, AccountValidatorService as ɵh, RegisterModal as ɵi, UserSettingsValidatorService as ɵj, LocalSettingsValidatorService as ɵk, AppIconComponent as ɵl };
|
|
25108
|
+
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, CellValueChangeListener, ChipsTestPage, Color, ColorScale, ComponentDirtyGuard, ConfigService, Configuration, CoreModule, CryptoService, DATE_ISO_PATTERN, DATE_UNIX_MS_TIMESTAMP, DATE_UNIX_TIMESTAMP, DEFAULT_PAGE_SIZE, DEFAULT_PAGE_SIZE_OPTIONS, DEFAULT_PLACEHOLDER_CHAR, DEFAULT_REQUIRED_COLUMNS, DateDiffDurationPipe, DateFormatPipe, DateFromNowPipe, DateTimeTestPage, DateUtils, Department, DepartmentToStringPipe, DurationPipe, ENTITIES_STORAGE_KEY_PREFIX, ENVIRONMENT, EmptyArrayPipe, EntitiesService, EntitiesStorage, EntitiesTableDataSource, Entity, EntityClass, EntityClasses, EntityFilter, EntityFilterUtils, EntityMetadataComponent, EntityStore, EntityUtils, Environment, ErrorCodes$2 as ErrorCodes, EvenPipe, FileService, FileSizePipe, FormArrayHelper, FormButtonsBarComponent, FormButtonsBarToken, FormErrorTranslatePipe, FormErrorTranslator, FormFieldValuesHolder, Fragments$1 as Fragments, GraphqlService, HAMMER_PRESS_TIME, HAMMER_TAP_TIME, HighlightPipe, HomePage, Hotkeys, HotkeysDialogComponent, InMemoryEntitiesService, IsLoginAccountPipe, IsNilOrBlankPipe, IsNotNilOrBlankPipe, IsNotOnFieldModePipe, IsOnFieldModePipe, JobUtils, KEYBOARD_HIDE_DELAY_MS, LAT_LONG_DEFAULT_MAX_DECIMALS, LAT_LONG_PATTERNS, LatLongFormatPipe, LatLongTestPage, LatitudeFormatPipe, LocalSettingsService, LongitudeFormatPipe, MINIFY_ENTITY_FOR_LOCAL_STORAGE, MINIFY_ENTITY_FOR_POD, MapGetPipe, MapKeysPipe, MapValuesPipe, MatAutocompleteConfigHolder, MatAutocompleteField, MatBooleanField, MatChipsField, MatDate, MatDateShort, MatDateTime, MatDuration, MatLatLongField, MatNumpadComponent, MatNumpadContainerComponent, MatNumpadContent, MatPaginatorI18n, MatStepperI18n, MatSwipeField, MaterialChipsModule, MaterialTestingModule, MaterialTestingPage, MathAbsPipe, MenuComponent, MenuItems, MenuService, ModalToolbarComponent, NetworkService, NgInitDirective, 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, ReferentialRef, ReferentialUtils, RegisterConfirmPage, SETTINGS_DISPLAY_COLUMNS, SETTINGS_FILTER, SETTINGS_PAGE_SIZE, SETTINGS_SORTED_COLUMN, SETTINGS_STORAGE_KEY, SETTINGS_TRANSIENT_PROPERTIES, SPACE_PLACEHOLDER_CHAR, SelectPeerModal, SettingsPage, SharedDirectivesModule, SharedFormArrayValidators, SharedFormGroupValidators, SharedHotkeysModule, SharedMatAutocompleteModule, SharedMatBooleanModule, SharedMatDateTimeModule, SharedMatDurationModule, SharedMatLatLongModule, SharedMatNumpadModule, SharedMatSwipeModule, SharedMaterialModule, SharedModule, SharedPipesModule, SharedRoutingModule, SharedTestingModule, SharedValidators, SocialModule, Software, StartableService, StatusById, StatusIds, StatusList, StrLengthPipe, SwipeTestPage, TableSelectColumnsComponent, ToStringPipe, Toasts, ToolbarComponent, ToolbarToken, TranslatablePipe, TranslateContextPipe, TranslateContextService, UserEvent, UserEventFilter, UserEventService, UserEventTypes, UserEventsTable, UserSettings, UsersPage, accountToString, adaptValueToControl, addValueInArray, arrayDistinct, arrayGroupBy, arraySize, asInputElement, canHaveFocus, capitalizeFirstLetter, chainPromises, changeCaseToUnderscore, clearValueInArray, copyEntity2Form, createPromiseEvent, createPromiseEventEmitter, departmentToString, departmentsToString, disableControls, emitPromiseEvent, entityToString, 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, isControlHasInput, isEmptyArray, isInputElement, isInstanceOf, isInt, isNil, isNilOrBlank, isNilOrNaN, isNotEmptyArray, isNotNil, isNotNilOrBlank, isNotNilOrNaN, isNotNilString, isNumber, isNumberRange, joinProperties, joinPropertiesPath, logFormErrors, markAllAsTouched, markAsUntouched, markControlAsTouched, markFormGroupAsTouched, matchUpperCase, mergeLoadResult, mixHex, moveInputCaretToSeparator, noTrailingSlash, notNilOrDefault, nullIfUndefined, parseLatitudeOrLongitude, propertiesPathComparator, propertyComparator, propertyPathComparator, referentialToString, referentialsToString, remove, removeAll, removeDiacritics, removeDuplicatesFromArray, removeEnd, removeValueInArray, replaceAll, resetCalculatedValue, resizeArray, rgbArrayToHex, rgbToHex, round, scrollFactory, selectInputContent, selectInputRange, setCalculatedValue, setTabIndex, sleep, slideInOutAnimation, slideUpDownAnimation, sort, splitById, splitByProperty, startsWithUpperCase, suggestFromArray, suggestFromStringArray, tabindexComparator, toBoolean, toDateISOString, toDuration, toFloat, toInt, toNotNil, toNumber, trimEmptyToNull, uncapitalizeFirstLetter, updateValueAndValidity, waitFor, waitForTrue, waitIdle, waitWhilePending, CustomReuseStrategy as ɵa, MatNumpadDomService as ɵb, SharedMatBadgeIconModule as ɵc, MatBadgeIconDirective as ɵd, isFocusableElement as ɵe, MatBadgeIconTestPage as ɵf, RegisterForm as ɵg, AccountValidatorService as ɵh, RegisterModal as ɵi, UserSettingsValidatorService as ɵj, LocalSettingsValidatorService as ɵk, AppIconComponent as ɵl };
|
|
25124
25109
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|