@sumaris-net/ngx-components 1.7.3 → 1.8.2-rc1
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 +279 -291
- package/bundles/sumaris-net.ngx-components.umd.js.map +1 -1
- package/bundles/sumaris-net.ngx-components.umd.min.js +2 -2
- package/bundles/sumaris-net.ngx-components.umd.min.js.map +1 -1
- package/doc/changelog.md +6 -1
- package/esm2015/src/app/core/form/entity-editor.class.js +5 -1
- package/esm2015/src/app/core/services/base-entity-service.class.js +4 -1
- package/esm2015/src/app/core/services/config.service.js +11 -4
- package/esm2015/src/app/core/table/table.class.js +4 -4
- package/esm2015/src/app/shared/material/autocomplete/material.autocomplete.js +2 -2
- package/esm2015/src/app/shared/services/entity-service.class.js +1 -1
- package/fesm2015/sumaris-net.ngx-components.js +272 -275
- package/fesm2015/sumaris-net.ngx-components.js.map +1 -1
- package/package.json +1 -1
- package/src/app/core/form/entity-editor.class.d.ts +1 -1
- package/src/app/core/services/base-entity-service.class.d.ts +1 -0
- package/src/app/core/services/config.service.d.ts +4 -1
- package/src/app/shared/services/entity-service.class.d.ts +1 -0
- package/sumaris-net.ngx-components.metadata.json +1 -1
|
@@ -1,12 +1,9 @@
|
|
|
1
|
-
import
|
|
2
|
-
import { InjectionToken, EventEmitter, Component, forwardRef, ChangeDetectionStrategy, ChangeDetectorRef, Optional, Input, Output, ViewChild, Pipe, Injectable, Directive, Inject, NgModule, ElementRef, TemplateRef, ViewContainerRef, 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) {
|
|
@@ -14801,7 +14786,7 @@ const CacheStatistics = gql `
|
|
|
14801
14786
|
`;
|
|
14802
14787
|
const APP_CONFIG_OPTIONS = new InjectionToken('defaultOptions');
|
|
14803
14788
|
class ConfigService extends BaseGraphqlService {
|
|
14804
|
-
constructor(platform, graphql, storage, network, file, toastController, translate, environment, defaultOptionsMap) {
|
|
14789
|
+
constructor(platform, graphql, storage, network, file, toastController, translate, accountService, environment, defaultOptionsMap) {
|
|
14805
14790
|
super(graphql, environment);
|
|
14806
14791
|
this.platform = platform;
|
|
14807
14792
|
this.graphql = graphql;
|
|
@@ -14810,6 +14795,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14810
14795
|
this.file = file;
|
|
14811
14796
|
this.toastController = toastController;
|
|
14812
14797
|
this.translate = translate;
|
|
14798
|
+
this.accountService = accountService;
|
|
14813
14799
|
this.environment = environment;
|
|
14814
14800
|
this.$data = new BehaviorSubject(null);
|
|
14815
14801
|
this._debug = !environment.production;
|
|
@@ -14837,12 +14823,12 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14837
14823
|
return __awaiter(this, void 0, void 0, function* () {
|
|
14838
14824
|
const now = Date.now();
|
|
14839
14825
|
console.debug('[config] Loading Pod configuration...');
|
|
14840
|
-
const query = opts && opts.query || LoadQuery;
|
|
14826
|
+
const query = opts && opts.query || LoadQuery$1;
|
|
14841
14827
|
const variables = opts && opts.variables || undefined;
|
|
14842
14828
|
const res = yield this.graphql.query({
|
|
14843
14829
|
query,
|
|
14844
14830
|
variables,
|
|
14845
|
-
error: { code: ErrorCodes
|
|
14831
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14846
14832
|
fetchPolicy: opts && opts.fetchPolicy || undefined /*default*/
|
|
14847
14833
|
});
|
|
14848
14834
|
const data = res && res.data ? Configuration.fromObject(res.data) : undefined;
|
|
@@ -14856,6 +14842,9 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14856
14842
|
return this.loadDefault();
|
|
14857
14843
|
});
|
|
14858
14844
|
}
|
|
14845
|
+
canUserWrite(data, opts) {
|
|
14846
|
+
return this.accountService.isAdmin();
|
|
14847
|
+
}
|
|
14859
14848
|
/**
|
|
14860
14849
|
* Save a configuration
|
|
14861
14850
|
*
|
|
@@ -14872,7 +14861,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14872
14861
|
data: json
|
|
14873
14862
|
},
|
|
14874
14863
|
error: {
|
|
14875
|
-
code: ErrorCodes
|
|
14864
|
+
code: ErrorCodes.SAVE_CONFIG_ERROR,
|
|
14876
14865
|
message: 'ERROR.SAVE_CONFIG_ERROR'
|
|
14877
14866
|
}
|
|
14878
14867
|
});
|
|
@@ -14898,7 +14887,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14898
14887
|
const res = yield this.graphql.query({
|
|
14899
14888
|
query: CacheStatistics,
|
|
14900
14889
|
variables: null,
|
|
14901
|
-
error: { code: ErrorCodes
|
|
14890
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14902
14891
|
fetchPolicy: 'network-only'
|
|
14903
14892
|
});
|
|
14904
14893
|
const data = res && res.cacheStatistics || undefined;
|
|
@@ -14914,7 +14903,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
14914
14903
|
const res = yield this.graphql.query({
|
|
14915
14904
|
query: ClearCache,
|
|
14916
14905
|
variables,
|
|
14917
|
-
error: { code: ErrorCodes
|
|
14906
|
+
error: { code: ErrorCodes.LOAD_CONFIG_ERROR, message: 'ERROR.LOAD_CONFIG_ERROR' },
|
|
14918
14907
|
fetchPolicy: 'network-only'
|
|
14919
14908
|
});
|
|
14920
14909
|
const data = res && res.clearCache || undefined;
|
|
@@ -15073,7 +15062,7 @@ class ConfigService extends BaseGraphqlService {
|
|
|
15073
15062
|
});
|
|
15074
15063
|
}
|
|
15075
15064
|
}
|
|
15076
|
-
ConfigService.ɵprov =
|
|
15065
|
+
ConfigService.ɵprov = ɵɵdefineInjectable({ factory: function ConfigService_Factory() { return new ConfigService(ɵɵinject(Platform), ɵɵinject(GraphqlService), ɵɵinject(Storage), ɵɵinject(NetworkService), ɵɵinject(FileService), ɵɵinject(ToastController), ɵɵinject(TranslateService), ɵɵinject(AccountService), ɵɵinject(ENVIRONMENT), ɵɵinject(APP_CONFIG_OPTIONS, 8)); }, token: ConfigService, providedIn: "root" });
|
|
15077
15066
|
ConfigService.decorators = [
|
|
15078
15067
|
{ type: Injectable, args: [{
|
|
15079
15068
|
providedIn: 'root',
|
|
@@ -15088,11 +15077,12 @@ ConfigService.ctorParameters = () => [
|
|
|
15088
15077
|
{ type: FileService },
|
|
15089
15078
|
{ type: ToastController },
|
|
15090
15079
|
{ type: TranslateService },
|
|
15080
|
+
{ type: AccountService },
|
|
15091
15081
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
15092
15082
|
{ type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [APP_CONFIG_OPTIONS,] }] }
|
|
15093
15083
|
];
|
|
15094
15084
|
|
|
15095
|
-
const moment$
|
|
15085
|
+
const moment$4 = momentImported;
|
|
15096
15086
|
class PlatformService extends StartableService {
|
|
15097
15087
|
constructor(platform, cdkPlatform, toastController, translate, dateAdapter, entitiesStorage, settings, networkService, accountService, configService, cache, storage, audioProvider, environment, statusBar, keyboard, splashScreen, browser, downloader) {
|
|
15098
15088
|
super(platform);
|
|
@@ -15296,16 +15286,16 @@ class PlatformService extends StartableService {
|
|
|
15296
15286
|
}
|
|
15297
15287
|
// config moment lib
|
|
15298
15288
|
try {
|
|
15299
|
-
moment$
|
|
15289
|
+
moment$4.locale(event.lang);
|
|
15300
15290
|
console.debug('[platform] Use locale {' + event.lang + '}');
|
|
15301
15291
|
}
|
|
15302
15292
|
// If error, fallback to en
|
|
15303
15293
|
catch (err) {
|
|
15304
|
-
moment$
|
|
15294
|
+
moment$4.locale('en');
|
|
15305
15295
|
console.warn('[platform] Unknown local for moment lib. Using default [en]');
|
|
15306
15296
|
}
|
|
15307
15297
|
// Config date adapter
|
|
15308
|
-
this.dateAdapter.setLocale(moment$
|
|
15298
|
+
this.dateAdapter.setLocale(moment$4.locale());
|
|
15309
15299
|
}
|
|
15310
15300
|
});
|
|
15311
15301
|
this.settings.onChange.subscribe(data => {
|
|
@@ -15439,7 +15429,7 @@ class PlatformService extends StartableService {
|
|
|
15439
15429
|
});
|
|
15440
15430
|
}
|
|
15441
15431
|
}
|
|
15442
|
-
PlatformService.ɵprov =
|
|
15432
|
+
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
15433
|
PlatformService.decorators = [
|
|
15444
15434
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15445
15435
|
];
|
|
@@ -15454,15 +15444,15 @@ PlatformService.ctorParameters = () => [
|
|
|
15454
15444
|
{ type: NetworkService },
|
|
15455
15445
|
{ type: AccountService },
|
|
15456
15446
|
{ type: ConfigService },
|
|
15457
|
-
{ type: CacheService },
|
|
15447
|
+
{ type: CacheService$1 },
|
|
15458
15448
|
{ type: Storage },
|
|
15459
15449
|
{ type: AudioProvider },
|
|
15460
15450
|
{ type: undefined, decorators: [{ type: Inject, args: [ENVIRONMENT,] }] },
|
|
15461
|
-
{ type: StatusBar, decorators: [{ type: Optional }] },
|
|
15451
|
+
{ type: StatusBar$1, decorators: [{ type: Optional }] },
|
|
15462
15452
|
{ type: Keyboard, decorators: [{ type: Optional }] },
|
|
15463
|
-
{ type: SplashScreen, decorators: [{ type: Optional }] },
|
|
15464
|
-
{ type: InAppBrowser, decorators: [{ type: Optional }] },
|
|
15465
|
-
{ type: Downloader, decorators: [{ type: Optional }] }
|
|
15453
|
+
{ type: SplashScreen$1, decorators: [{ type: Optional }] },
|
|
15454
|
+
{ type: InAppBrowser$1, decorators: [{ type: Optional }] },
|
|
15455
|
+
{ type: Downloader$1, decorators: [{ type: Optional }] }
|
|
15466
15456
|
];
|
|
15467
15457
|
|
|
15468
15458
|
class AppHelpModal {
|
|
@@ -15526,7 +15516,7 @@ class MatStepperI18n extends MatStepperIntl {
|
|
|
15526
15516
|
this.optionalLabel = this.translate.instant('COMMON.OPTIONAL');
|
|
15527
15517
|
}
|
|
15528
15518
|
}
|
|
15529
|
-
MatStepperI18n.ɵprov =
|
|
15519
|
+
MatStepperI18n.ɵprov = ɵɵdefineInjectable({ factory: function MatStepperI18n_Factory() { return new MatStepperI18n(ɵɵinject(TranslateService)); }, token: MatStepperI18n, providedIn: "root" });
|
|
15530
15520
|
MatStepperI18n.decorators = [
|
|
15531
15521
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
15532
15522
|
];
|
|
@@ -16528,7 +16518,7 @@ function state2side(state) {
|
|
|
16528
16518
|
return 1;
|
|
16529
16519
|
}
|
|
16530
16520
|
}
|
|
16531
|
-
const ɵ0$
|
|
16521
|
+
const ɵ0$a = (defaultStateSize) => [
|
|
16532
16522
|
Math.round((rgbArrayMap.red[0] - 50) / defaultStateSize),
|
|
16533
16523
|
Math.round((255 - rgbArrayMap.red[1]) / defaultStateSize),
|
|
16534
16524
|
Math.round((255 - rgbArrayMap.red[2]) / defaultStateSize)
|
|
@@ -16536,7 +16526,7 @@ const ɵ0$1 = (defaultStateSize) => [
|
|
|
16536
16526
|
const SCALE_OPTIONS_DEFAULT = {
|
|
16537
16527
|
startColor: rgbArrayMap.red,
|
|
16538
16528
|
startStates: [0, 2, 3],
|
|
16539
|
-
startStepsFn: ɵ0$
|
|
16529
|
+
startStepsFn: ɵ0$a
|
|
16540
16530
|
};
|
|
16541
16531
|
/**
|
|
16542
16532
|
* Internal function, that create a colors scale, using iteration
|
|
@@ -16628,21 +16618,21 @@ function linearColorGradient(count, options) {
|
|
|
16628
16618
|
return result;
|
|
16629
16619
|
}
|
|
16630
16620
|
|
|
16631
|
-
class EntityTestClass
|
|
16621
|
+
class EntityTestClass {
|
|
16632
16622
|
}
|
|
16633
|
-
const FAKE_ENTITIES
|
|
16623
|
+
const FAKE_ENTITIES = [
|
|
16634
16624
|
{ id: 1, label: 'AAA', name: 'Item A', description: 'Very long description A', comments: 'Very very long comments... again for A' },
|
|
16635
16625
|
{ id: 2, label: 'BBB', name: 'Item B', description: 'Very long description B', comments: 'Very very long comments... again for B' },
|
|
16636
16626
|
{ id: 3, label: 'CCC', name: 'Item C', description: 'Very long description C', comments: 'Very very long comments... again for C' }
|
|
16637
16627
|
];
|
|
16638
|
-
function deepCopy
|
|
16628
|
+
function deepCopy(values, size) {
|
|
16639
16629
|
if (isNil(size)) {
|
|
16640
|
-
return (values || FAKE_ENTITIES
|
|
16630
|
+
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
16641
16631
|
}
|
|
16642
16632
|
let result = [];
|
|
16643
16633
|
let i = 1;
|
|
16644
16634
|
while (result.length < size) {
|
|
16645
|
-
result = result.concat((values || FAKE_ENTITIES
|
|
16635
|
+
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
16646
16636
|
const name = entity.name + ' #' + i;
|
|
16647
16637
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
16648
16638
|
}));
|
|
@@ -16652,7 +16642,7 @@ function deepCopy$1(values, size) {
|
|
|
16652
16642
|
class AutocompleteTestPage {
|
|
16653
16643
|
constructor(formBuilder) {
|
|
16654
16644
|
this.formBuilder = formBuilder;
|
|
16655
|
-
this._items = deepCopy
|
|
16645
|
+
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
16656
16646
|
this._$items = new BehaviorSubject(undefined);
|
|
16657
16647
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
16658
16648
|
this.memoryHide = false;
|
|
@@ -16696,7 +16686,7 @@ class AutocompleteTestPage {
|
|
|
16696
16686
|
});
|
|
16697
16687
|
// From items
|
|
16698
16688
|
this.autocompleteFields.add('entity-items-large', {
|
|
16699
|
-
items: FAKE_ENTITIES
|
|
16689
|
+
items: FAKE_ENTITIES.slice(),
|
|
16700
16690
|
attributes: ['label', 'name', 'description', 'comments'],
|
|
16701
16691
|
displayWith: this.entityToString
|
|
16702
16692
|
});
|
|
@@ -16706,12 +16696,12 @@ class AutocompleteTestPage {
|
|
|
16706
16696
|
loadData() {
|
|
16707
16697
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16708
16698
|
const data = {
|
|
16709
|
-
entity: deepCopy
|
|
16699
|
+
entity: deepCopy(FAKE_ENTITIES)[0],
|
|
16710
16700
|
// This item is NOT in the items list => i should be displayed anyway
|
|
16711
16701
|
missingEntity: {
|
|
16712
16702
|
id: -1, label: '??', name: 'Missing item'
|
|
16713
16703
|
},
|
|
16714
|
-
disableEntity: deepCopy
|
|
16704
|
+
disableEntity: deepCopy(FAKE_ENTITIES)[2]
|
|
16715
16705
|
};
|
|
16716
16706
|
this.form.setValue(data);
|
|
16717
16707
|
// Load observables
|
|
@@ -16884,13 +16874,13 @@ MaterialTestingPage.ctorParameters = () => [
|
|
|
16884
16874
|
{ type: Array, decorators: [{ type: Optional }, { type: Inject, args: [APP_TESTING_PAGES,] }] }
|
|
16885
16875
|
];
|
|
16886
16876
|
|
|
16887
|
-
const moment$
|
|
16877
|
+
const moment$5 = momentImported;
|
|
16888
16878
|
class SwipeTestPage {
|
|
16889
16879
|
constructor(formBuilder, dateFormatPipe) {
|
|
16890
16880
|
this.formBuilder = formBuilder;
|
|
16891
16881
|
this.dateFormatPipe = dateFormatPipe;
|
|
16892
16882
|
this.$dates = new BehaviorSubject(undefined);
|
|
16893
|
-
this._today = moment$
|
|
16883
|
+
this._today = moment$5().startOf('day');
|
|
16894
16884
|
this.form = formBuilder.group({
|
|
16895
16885
|
empty: [null, Validators.required],
|
|
16896
16886
|
date: [null, Validators.compose([Validators.required, SharedValidators.validDate])],
|
|
@@ -16903,7 +16893,7 @@ class SwipeTestPage {
|
|
|
16903
16893
|
ngOnInit() {
|
|
16904
16894
|
const dates = [];
|
|
16905
16895
|
for (let d = 0; d < 7; d++) {
|
|
16906
|
-
dates[d] = moment$
|
|
16896
|
+
dates[d] = moment$5(this._today).add(d - 3, 'day');
|
|
16907
16897
|
}
|
|
16908
16898
|
this.$dates.next(dates);
|
|
16909
16899
|
this.loadData();
|
|
@@ -16944,7 +16934,7 @@ SwipeTestPage.ctorParameters = () => [
|
|
|
16944
16934
|
{ type: DateFormatPipe }
|
|
16945
16935
|
];
|
|
16946
16936
|
|
|
16947
|
-
const moment = momentImported;
|
|
16937
|
+
const moment$6 = momentImported;
|
|
16948
16938
|
class DateTimeTestPage {
|
|
16949
16939
|
constructor(platform, formBuilder, cd) {
|
|
16950
16940
|
this.platform = platform;
|
|
@@ -16976,7 +16966,7 @@ class DateTimeTestPage {
|
|
|
16976
16966
|
// Load the form with data
|
|
16977
16967
|
loadData() {
|
|
16978
16968
|
return __awaiter(this, void 0, void 0, function* () {
|
|
16979
|
-
const now = moment();
|
|
16969
|
+
const now = moment$6();
|
|
16980
16970
|
const data = {
|
|
16981
16971
|
empty: toDateISOString(now.clone().add(2, 'hours')),
|
|
16982
16972
|
enable: toDateISOString(now),
|
|
@@ -17037,9 +17027,9 @@ DateTimeTestPage.ctorParameters = () => [
|
|
|
17037
17027
|
{ type: ChangeDetectorRef }
|
|
17038
17028
|
];
|
|
17039
17029
|
|
|
17040
|
-
class EntityTestClass {
|
|
17030
|
+
class EntityTestClass$1 {
|
|
17041
17031
|
}
|
|
17042
|
-
const FAKE_ENTITIES = [
|
|
17032
|
+
const FAKE_ENTITIES$1 = [
|
|
17043
17033
|
{ id: 1, label: 'AAA', name: 'Item A' },
|
|
17044
17034
|
{ id: 2, label: 'BBB', name: 'Item B' },
|
|
17045
17035
|
{ id: 3, label: 'CCC', name: 'Item C' },
|
|
@@ -17048,14 +17038,14 @@ const FAKE_ENTITIES = [
|
|
|
17048
17038
|
{ id: 6, label: 'FFF', name: 'Item F' },
|
|
17049
17039
|
{ id: 7, label: 'GGG', name: 'Item G' }
|
|
17050
17040
|
];
|
|
17051
|
-
function deepCopy(values, size) {
|
|
17041
|
+
function deepCopy$1(values, size) {
|
|
17052
17042
|
if (isNil(size)) {
|
|
17053
|
-
return (values || FAKE_ENTITIES).map(entity => Object.assign({}, entity));
|
|
17043
|
+
return (values || FAKE_ENTITIES$1).map(entity => Object.assign({}, entity));
|
|
17054
17044
|
}
|
|
17055
17045
|
let result = [];
|
|
17056
17046
|
let i = 1;
|
|
17057
17047
|
while (result.length < size) {
|
|
17058
|
-
result = result.concat((values || FAKE_ENTITIES).map(entity => {
|
|
17048
|
+
result = result.concat((values || FAKE_ENTITIES$1).map(entity => {
|
|
17059
17049
|
const name = entity.name + ' #' + i;
|
|
17060
17050
|
return Object.assign(Object.assign({}, entity), { id: i++, name });
|
|
17061
17051
|
}));
|
|
@@ -17065,7 +17055,7 @@ function deepCopy(values, size) {
|
|
|
17065
17055
|
class ChipsTestPage {
|
|
17066
17056
|
constructor(formBuilder) {
|
|
17067
17057
|
this.formBuilder = formBuilder;
|
|
17068
|
-
this._items = deepCopy(FAKE_ENTITIES, 100);
|
|
17058
|
+
this._items = deepCopy$1(FAKE_ENTITIES$1, 100);
|
|
17069
17059
|
this._$items = new BehaviorSubject(undefined);
|
|
17070
17060
|
this.autocompleteFields = new MatAutocompleteConfigHolder();
|
|
17071
17061
|
this.form = formBuilder.group({
|
|
@@ -17104,7 +17094,7 @@ class ChipsTestPage {
|
|
|
17104
17094
|
// Load the form with data
|
|
17105
17095
|
loadData() {
|
|
17106
17096
|
return __awaiter(this, void 0, void 0, function* () {
|
|
17107
|
-
const items = deepCopy(FAKE_ENTITIES);
|
|
17097
|
+
const items = deepCopy$1(FAKE_ENTITIES$1);
|
|
17108
17098
|
const data = {
|
|
17109
17099
|
entity: items.slice(0, 1),
|
|
17110
17100
|
entityInitial: items.slice(1, 2),
|
|
@@ -17180,7 +17170,7 @@ MatBadgeIconTestPage.decorators = [
|
|
|
17180
17170
|
},] }
|
|
17181
17171
|
];
|
|
17182
17172
|
|
|
17183
|
-
const routes
|
|
17173
|
+
const routes = [
|
|
17184
17174
|
{
|
|
17185
17175
|
path: '',
|
|
17186
17176
|
pathMatch: 'full',
|
|
@@ -17232,7 +17222,7 @@ MaterialTestingModule.decorators = [
|
|
|
17232
17222
|
ReactiveFormsModule,
|
|
17233
17223
|
SharedMaterialModule,
|
|
17234
17224
|
TranslateModule.forChild(),
|
|
17235
|
-
RouterModule.forChild(routes
|
|
17225
|
+
RouterModule.forChild(routes)
|
|
17236
17226
|
],
|
|
17237
17227
|
declarations: [
|
|
17238
17228
|
MaterialTestingPage,
|
|
@@ -18247,7 +18237,7 @@ class UserSettingsValidatorService extends AppValidatorService {
|
|
|
18247
18237
|
});
|
|
18248
18238
|
}
|
|
18249
18239
|
}
|
|
18250
|
-
UserSettingsValidatorService.ɵprov =
|
|
18240
|
+
UserSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function UserSettingsValidatorService_Factory() { return new UserSettingsValidatorService(ɵɵinject(FormBuilder)); }, token: UserSettingsValidatorService, providedIn: "root" });
|
|
18251
18241
|
UserSettingsValidatorService.decorators = [
|
|
18252
18242
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18253
18243
|
];
|
|
@@ -18291,7 +18281,7 @@ class AccountValidatorService extends AppValidatorService {
|
|
|
18291
18281
|
return validatorFns.length ? Validators.compose(validatorFns) : validatorFns.length === 1 ? validatorFns[0] : undefined;
|
|
18292
18282
|
}
|
|
18293
18283
|
}
|
|
18294
|
-
AccountValidatorService.ɵprov =
|
|
18284
|
+
AccountValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function AccountValidatorService_Factory() { return new AccountValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountService)); }, token: AccountValidatorService, providedIn: "root" });
|
|
18295
18285
|
AccountValidatorService.decorators = [
|
|
18296
18286
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18297
18287
|
];
|
|
@@ -18856,7 +18846,7 @@ class LocalSettingsValidatorService extends AppValidatorService {
|
|
|
18856
18846
|
});
|
|
18857
18847
|
}
|
|
18858
18848
|
}
|
|
18859
|
-
LocalSettingsValidatorService.ɵprov =
|
|
18849
|
+
LocalSettingsValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function LocalSettingsValidatorService_Factory() { return new LocalSettingsValidatorService(ɵɵinject(FormBuilder), ɵɵinject(NetworkService)); }, token: LocalSettingsValidatorService, providedIn: "root" });
|
|
18860
18850
|
LocalSettingsValidatorService.decorators = [
|
|
18861
18851
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
18862
18852
|
];
|
|
@@ -19475,7 +19465,7 @@ class IsOnFieldModePipe {
|
|
|
19475
19465
|
return value === 'FIELD';
|
|
19476
19466
|
}
|
|
19477
19467
|
}
|
|
19478
|
-
IsOnFieldModePipe.ɵprov =
|
|
19468
|
+
IsOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsOnFieldModePipe_Factory() { return new IsOnFieldModePipe(); }, token: IsOnFieldModePipe, providedIn: "root" });
|
|
19479
19469
|
IsOnFieldModePipe.decorators = [
|
|
19480
19470
|
{ type: Pipe, args: [{
|
|
19481
19471
|
name: 'isOnField'
|
|
@@ -19487,7 +19477,7 @@ class IsNotOnFieldModePipe {
|
|
|
19487
19477
|
return value !== 'FIELD';
|
|
19488
19478
|
}
|
|
19489
19479
|
}
|
|
19490
|
-
IsNotOnFieldModePipe.ɵprov =
|
|
19480
|
+
IsNotOnFieldModePipe.ɵprov = ɵɵdefineInjectable({ factory: function IsNotOnFieldModePipe_Factory() { return new IsNotOnFieldModePipe(); }, token: IsNotOnFieldModePipe, providedIn: "root" });
|
|
19491
19481
|
IsNotOnFieldModePipe.decorators = [
|
|
19492
19482
|
{ type: Pipe, args: [{
|
|
19493
19483
|
name: 'isNotOnField'
|
|
@@ -19502,7 +19492,7 @@ class PersonToStringPipe {
|
|
|
19502
19492
|
return PersonUtils.personToString(value);
|
|
19503
19493
|
}
|
|
19504
19494
|
}
|
|
19505
|
-
PersonToStringPipe.ɵprov =
|
|
19495
|
+
PersonToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function PersonToStringPipe_Factory() { return new PersonToStringPipe(); }, token: PersonToStringPipe, providedIn: "root" });
|
|
19506
19496
|
PersonToStringPipe.decorators = [
|
|
19507
19497
|
{ type: Pipe, args: [{
|
|
19508
19498
|
name: 'personToString'
|
|
@@ -19887,7 +19877,7 @@ class IsLoginAccountPipe {
|
|
|
19887
19877
|
return value && value.pubkey && true;
|
|
19888
19878
|
}
|
|
19889
19879
|
}
|
|
19890
|
-
IsLoginAccountPipe.ɵprov =
|
|
19880
|
+
IsLoginAccountPipe.ɵprov = ɵɵdefineInjectable({ factory: function IsLoginAccountPipe_Factory() { return new IsLoginAccountPipe(); }, token: IsLoginAccountPipe, providedIn: "root" });
|
|
19891
19881
|
IsLoginAccountPipe.decorators = [
|
|
19892
19882
|
{ type: Pipe, args: [{
|
|
19893
19883
|
name: 'isLogin'
|
|
@@ -19899,7 +19889,7 @@ class AccountToStringPipe {
|
|
|
19899
19889
|
return accountToString(value);
|
|
19900
19890
|
}
|
|
19901
19891
|
}
|
|
19902
|
-
AccountToStringPipe.ɵprov =
|
|
19892
|
+
AccountToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function AccountToStringPipe_Factory() { return new AccountToStringPipe(); }, token: AccountToStringPipe, providedIn: "root" });
|
|
19903
19893
|
AccountToStringPipe.decorators = [
|
|
19904
19894
|
{ type: Pipe, args: [{
|
|
19905
19895
|
name: 'accountToString'
|
|
@@ -19914,7 +19904,7 @@ class DepartmentToStringPipe {
|
|
|
19914
19904
|
return departmentToString(value);
|
|
19915
19905
|
}
|
|
19916
19906
|
}
|
|
19917
|
-
DepartmentToStringPipe.ɵprov =
|
|
19907
|
+
DepartmentToStringPipe.ɵprov = ɵɵdefineInjectable({ factory: function DepartmentToStringPipe_Factory() { return new DepartmentToStringPipe(); }, token: DepartmentToStringPipe, providedIn: "root" });
|
|
19918
19908
|
DepartmentToStringPipe.decorators = [
|
|
19919
19909
|
{ type: Pipe, args: [{
|
|
19920
19910
|
name: 'departmentToString'
|
|
@@ -19940,7 +19930,7 @@ class MenuService {
|
|
|
19940
19930
|
this._visibleSubject.next(value);
|
|
19941
19931
|
}
|
|
19942
19932
|
}
|
|
19943
|
-
MenuService.ɵprov =
|
|
19933
|
+
MenuService.ɵprov = ɵɵdefineInjectable({ factory: function MenuService_Factory() { return new MenuService(); }, token: MenuService, providedIn: "root" });
|
|
19944
19934
|
MenuService.decorators = [
|
|
19945
19935
|
{ type: Injectable, args: [{
|
|
19946
19936
|
providedIn: 'root'
|
|
@@ -20464,7 +20454,7 @@ class AuthGuardService {
|
|
|
20464
20454
|
}));
|
|
20465
20455
|
}
|
|
20466
20456
|
}
|
|
20467
|
-
AuthGuardService.ɵprov =
|
|
20457
|
+
AuthGuardService.ɵprov = ɵɵdefineInjectable({ factory: function AuthGuardService_Factory() { return new AuthGuardService(ɵɵinject(AccountService), ɵɵinject(ModalController), ɵɵinject(Router), ɵɵinject(ENVIRONMENT)); }, token: AuthGuardService, providedIn: "root" });
|
|
20468
20458
|
AuthGuardService.decorators = [
|
|
20469
20459
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
20470
20460
|
];
|
|
@@ -20506,7 +20496,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20506
20496
|
query,
|
|
20507
20497
|
variables: { id },
|
|
20508
20498
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20509
|
-
error: { code: ErrorCodes
|
|
20499
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20510
20500
|
})
|
|
20511
20501
|
.pipe(map(({ data }) => (!opts || opts.toEntity !== false)
|
|
20512
20502
|
? (data && this.fromObject(data))
|
|
@@ -20521,7 +20511,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20521
20511
|
query,
|
|
20522
20512
|
variables: { id },
|
|
20523
20513
|
fetchPolicy: opts && opts.fetchPolicy || undefined,
|
|
20524
|
-
error: { code: ErrorCodes
|
|
20514
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' }
|
|
20525
20515
|
});
|
|
20526
20516
|
// Convert to entity
|
|
20527
20517
|
return (!opts || opts.toEntity !== false)
|
|
@@ -20552,7 +20542,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20552
20542
|
totalFieldName: withTotal ? 'total' : undefined,
|
|
20553
20543
|
insertFilterFn: filter && filter.asFilterFn(),
|
|
20554
20544
|
variables,
|
|
20555
|
-
error: { code: ErrorCodes
|
|
20545
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'REFERENTIAL.ERROR.LOAD_DATA_ERROR' },
|
|
20556
20546
|
fetchPolicy: opts && opts.fetchPolicy || undefined
|
|
20557
20547
|
})
|
|
20558
20548
|
.pipe(map(({ data, total }) => {
|
|
@@ -20588,7 +20578,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20588
20578
|
const { data, total } = yield this.graphql.query({
|
|
20589
20579
|
query,
|
|
20590
20580
|
variables,
|
|
20591
|
-
error: { code: ErrorCodes
|
|
20581
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.LOAD_DATA_ERROR' },
|
|
20592
20582
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20593
20583
|
});
|
|
20594
20584
|
const entities = (!opts || opts.toEntity !== false) ?
|
|
@@ -20627,12 +20617,15 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20627
20617
|
variables: {
|
|
20628
20618
|
filter: filter && filter.asPodObject()
|
|
20629
20619
|
},
|
|
20630
|
-
error: { code: ErrorCodes
|
|
20620
|
+
error: { code: ErrorCodes.LOAD_DATA_ERROR, message: 'ERROR.COUNT_DATA_ERROR' },
|
|
20631
20621
|
fetchPolicy: opts && opts.fetchPolicy || 'network-only'
|
|
20632
20622
|
});
|
|
20633
20623
|
return res.total;
|
|
20634
20624
|
});
|
|
20635
20625
|
}
|
|
20626
|
+
canUserWrite(data, opts) {
|
|
20627
|
+
return !!data;
|
|
20628
|
+
}
|
|
20636
20629
|
saveAll(entities, opts) {
|
|
20637
20630
|
return __awaiter(this, void 0, void 0, function* () {
|
|
20638
20631
|
if (isEmptyArray(entities))
|
|
@@ -20660,7 +20653,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20660
20653
|
variables: {
|
|
20661
20654
|
data: json
|
|
20662
20655
|
},
|
|
20663
|
-
error: { code: ErrorCodes
|
|
20656
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20664
20657
|
update: (proxy, { data }) => {
|
|
20665
20658
|
const savedEntities = data && data.data;
|
|
20666
20659
|
if (savedEntities) {
|
|
@@ -20716,7 +20709,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20716
20709
|
variables: {
|
|
20717
20710
|
data: json
|
|
20718
20711
|
},
|
|
20719
|
-
error: { code: ErrorCodes
|
|
20712
|
+
error: { code: ErrorCodes.SAVE_DATA_ERROR, message: 'ERROR.SAVE_DATA_ERROR' },
|
|
20720
20713
|
update: (cache, { data }) => {
|
|
20721
20714
|
// Update entity
|
|
20722
20715
|
const savedEntity = data && data.data;
|
|
@@ -20764,7 +20757,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20764
20757
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20765
20758
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20766
20759
|
variables: { ids },
|
|
20767
|
-
error: { code: ErrorCodes
|
|
20760
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20768
20761
|
update: (cache, res) => {
|
|
20769
20762
|
// Remove from cache
|
|
20770
20763
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -20805,7 +20798,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20805
20798
|
refetchQueries: this.getRefetchQueriesForMutation(opts),
|
|
20806
20799
|
awaitRefetchQueries: opts && opts.awaitRefetchQueries,
|
|
20807
20800
|
variables: { id },
|
|
20808
|
-
error: { code: ErrorCodes
|
|
20801
|
+
error: { code: ErrorCodes.DELETE_DATA_ERROR, message: 'ERROR.DELETE_DATA_ERROR' },
|
|
20809
20802
|
update: (proxy, res) => {
|
|
20810
20803
|
// Remove from cache
|
|
20811
20804
|
if (this.watchQueriesUpdatePolicy === 'update-cache') {
|
|
@@ -20838,7 +20831,7 @@ class BaseEntityService extends BaseGraphqlService {
|
|
|
20838
20831
|
query: opts && opts.query || this.subscriptions.listenChanges,
|
|
20839
20832
|
variables,
|
|
20840
20833
|
error: {
|
|
20841
|
-
code: ErrorCodes
|
|
20834
|
+
code: ErrorCodes.SUBSCRIBE_DATA_ERROR,
|
|
20842
20835
|
message: 'ERROR.SUBSCRIBE_DATA_ERROR'
|
|
20843
20836
|
}
|
|
20844
20837
|
})
|
|
@@ -21024,7 +21017,7 @@ class EntitiesTableDataSource extends TableDataSource {
|
|
|
21024
21017
|
if (this._debug)
|
|
21025
21018
|
invalidRows.forEach(row => AppTableUtils.logRowErrors(row, `[table-datasource] ${this._logTypeName} row #${row.id}`));
|
|
21026
21019
|
// Stop with an error
|
|
21027
|
-
throw { code: ErrorCodes
|
|
21020
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21028
21021
|
}
|
|
21029
21022
|
this._editingRowCount = 0;
|
|
21030
21023
|
let data;
|
|
@@ -21884,18 +21877,18 @@ class AppTable {
|
|
|
21884
21877
|
return true;
|
|
21885
21878
|
}
|
|
21886
21879
|
save(opts) {
|
|
21887
|
-
var _a, _b;
|
|
21880
|
+
var _a, _b, _c;
|
|
21888
21881
|
return __awaiter(this, void 0, void 0, function* () {
|
|
21889
21882
|
opts = Object.assign({ keepEditing: this.keepEditedRowOnSave }, opts);
|
|
21890
21883
|
if (this.readOnly) {
|
|
21891
|
-
throw { code: ErrorCodes
|
|
21884
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
21892
21885
|
}
|
|
21893
21886
|
this.resetError();
|
|
21894
21887
|
// Keep edited row id (should be done BEFORE confirmEditCreate() )
|
|
21895
|
-
this.previouslyEditedRowId = opts.keepEditing && ((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined;
|
|
21896
|
-
const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((
|
|
21888
|
+
this.previouslyEditedRowId = opts.keepEditing && ((((_a = this.editedRow) === null || _a === void 0 ? void 0 : _a.editing) ? this.editedRow.id : undefined) || ((_b = this.singleSelectedRow) === null || _b === void 0 ? void 0 : _b.id));
|
|
21889
|
+
const previouslyEditedData = isNotNil(this.previouslyEditedRowId) && this.editedRow.currentData || ((_c = this.singleSelectedRow) === null || _c === void 0 ? void 0 : _c.currentData);
|
|
21897
21890
|
if (!this.confirmEditCreate()) {
|
|
21898
|
-
throw { code: ErrorCodes
|
|
21891
|
+
throw { code: ErrorCodes.TABLE_INVALID_ROW_ERROR, message: 'ERROR.TABLE_INVALID_ROW_ERROR' };
|
|
21899
21892
|
}
|
|
21900
21893
|
// Mark as saving
|
|
21901
21894
|
this.markAsSaving();
|
|
@@ -22012,7 +22005,7 @@ class AppTable {
|
|
|
22012
22005
|
var _a;
|
|
22013
22006
|
return __awaiter(this, void 0, void 0, function* () {
|
|
22014
22007
|
if (this.readOnly) {
|
|
22015
|
-
throw { code: ErrorCodes
|
|
22008
|
+
throw { code: ErrorCodes.TABLE_READ_ONLY, message: 'ERROR.TABLE_READ_ONLY' };
|
|
22016
22009
|
}
|
|
22017
22010
|
if (event === null || event === void 0 ? void 0 : event.defaultPrevented)
|
|
22018
22011
|
return 0; // SKip
|
|
@@ -23538,7 +23531,7 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23538
23531
|
try {
|
|
23539
23532
|
const data = yield this.dataService.load(id, opts);
|
|
23540
23533
|
if (!data)
|
|
23541
|
-
throw { code: ErrorCodes
|
|
23534
|
+
throw { code: ErrorCodes.DATA_NOT_FOUND_ERROR, message: 'ERROR.DATA_NO_FOUND' };
|
|
23542
23535
|
this._usageMode = this.computeUsageMode(data);
|
|
23543
23536
|
yield this.onEntityLoaded(data, opts);
|
|
23544
23537
|
yield this.updateView(data, opts);
|
|
@@ -23859,6 +23852,10 @@ class AppEntityEditor extends AppTabEditor {
|
|
|
23859
23852
|
if (!opts || opts.emitEvent !== false)
|
|
23860
23853
|
this.markForCheck();
|
|
23861
23854
|
}
|
|
23855
|
+
/* -- public abstract methods (to override) -- */
|
|
23856
|
+
canUserWrite(data, opts) {
|
|
23857
|
+
return this.dataService.canUserWrite(data, opts);
|
|
23858
|
+
}
|
|
23862
23859
|
/* -- protected methods -- */
|
|
23863
23860
|
/**
|
|
23864
23861
|
* Return undefined to keep same tab
|
|
@@ -24461,7 +24458,7 @@ class UserEventService extends BaseGraphqlService {
|
|
|
24461
24458
|
EntityUtils.copyIdAndUpdateDate(source, target);
|
|
24462
24459
|
}
|
|
24463
24460
|
}
|
|
24464
|
-
UserEventService.ɵprov =
|
|
24461
|
+
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
24462
|
UserEventService.decorators = [
|
|
24466
24463
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24467
24464
|
];
|
|
@@ -24846,7 +24843,7 @@ class PersonService extends BaseEntityService {
|
|
|
24846
24843
|
return target;
|
|
24847
24844
|
}
|
|
24848
24845
|
}
|
|
24849
|
-
PersonService.ɵprov =
|
|
24846
|
+
PersonService.ɵprov = ɵɵdefineInjectable({ factory: function PersonService_Factory() { return new PersonService(ɵɵinject(GraphqlService), ɵɵinject(PlatformService), ɵɵinject(NetworkService), ɵɵinject(EntitiesStorage)); }, token: PersonService, providedIn: "root" });
|
|
24850
24847
|
PersonService.decorators = [
|
|
24851
24848
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24852
24849
|
];
|
|
@@ -24877,7 +24874,7 @@ class PersonValidatorService {
|
|
|
24877
24874
|
return this.formBuilder.group(formConfig);
|
|
24878
24875
|
}
|
|
24879
24876
|
}
|
|
24880
|
-
PersonValidatorService.ɵprov =
|
|
24877
|
+
PersonValidatorService.ɵprov = ɵɵdefineInjectable({ factory: function PersonValidatorService_Factory() { return new PersonValidatorService(ɵɵinject(FormBuilder), ɵɵinject(AccountValidatorService)); }, token: PersonValidatorService, providedIn: "root" });
|
|
24881
24878
|
PersonValidatorService.decorators = [
|
|
24882
24879
|
{ type: Injectable, args: [{ providedIn: 'root' },] }
|
|
24883
24880
|
];
|
|
@@ -25083,16 +25080,16 @@ AdminModule.decorators = [
|
|
|
25083
25080
|
];
|
|
25084
25081
|
AdminModule.ctorParameters = () => [];
|
|
25085
25082
|
|
|
25086
|
-
const ɵ0 = {
|
|
25083
|
+
const ɵ0$b = {
|
|
25087
25084
|
profile: 'ADMIN'
|
|
25088
25085
|
};
|
|
25089
|
-
const routes = [
|
|
25086
|
+
const routes$1 = [
|
|
25090
25087
|
{
|
|
25091
25088
|
path: 'users',
|
|
25092
25089
|
pathMatch: 'full',
|
|
25093
25090
|
component: UsersPage,
|
|
25094
25091
|
canActivate: [AuthGuardService],
|
|
25095
|
-
data: ɵ0
|
|
25092
|
+
data: ɵ0$b
|
|
25096
25093
|
}
|
|
25097
25094
|
];
|
|
25098
25095
|
class AdminRoutingModule {
|
|
@@ -25102,13 +25099,13 @@ AdminRoutingModule.decorators = [
|
|
|
25102
25099
|
imports: [
|
|
25103
25100
|
SharedRoutingModule,
|
|
25104
25101
|
AdminModule,
|
|
25105
|
-
RouterModule.forChild(routes)
|
|
25102
|
+
RouterModule.forChild(routes$1)
|
|
25106
25103
|
],
|
|
25107
25104
|
exports: [RouterModule]
|
|
25108
25105
|
},] }
|
|
25109
25106
|
];
|
|
25110
25107
|
|
|
25111
|
-
const ErrorCodes = {
|
|
25108
|
+
const ErrorCodes$2 = {
|
|
25112
25109
|
LOAD_PERSONS_ERROR: 100,
|
|
25113
25110
|
SAVE_PERSONS_ERROR: 101,
|
|
25114
25111
|
DELETE_PERSONS_ERROR: 102,
|
|
@@ -25120,5 +25117,5 @@ const ErrorCodes = {
|
|
|
25120
25117
|
* Generated bundle index. Do not edit.
|
|
25121
25118
|
*/
|
|
25122
25119
|
|
|
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 };
|
|
25120
|
+
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
25121
|
//# sourceMappingURL=sumaris-net.ngx-components.js.map
|